https://www.bandshed.net/avlinux/
y al cerrar sesión seleccionas otro idioma en el gestor de inicio de sesión, pero al entrar al escritorio el sistema continúa utilizando el idioma anterior, en este tutorial veremos cómo solucionarlo.
Esta solución fue probada en AV Linux MXe 25, utilizando LightDM como gestor de inicio de sesión y una sesión de Fluxbox.
El problema
En mi caso, AV Linux estaba configurado originalmente en Español - Ecuador.
Al cerrar sesión, LightDM me permitía seleccionar:
American English - Estados Unidos
Sin embargo, después de iniciar sesión, las aplicaciones y el sistema continuaban apareciendo en español.
Para comprobar qué idioma estaba utilizando realmente la sesión ejecuté:
El resultado mostraba:
LANG=es_EC.UTF-8
LANGUAGE=
LC_ALL=
y el resto de las variables regionales también utilizaban:
es_EC.UTF-8
Por tanto, aunque había seleccionado inglés en LightDM, la sesión continuaba iniciándose con el locale de Ecuador.
1. Comprobar el locale predeterminado
Primero podemos comprobar la configuración general del sistema:
En mi caso aparecía:
# File generated by update-locale
LANG=es_EC.UTF-8
Esto indicaba que el locale predeterminado del sistema era español de Ecuador.
También podemos comprobar qué locales están instalados:
En mi instalación estaban disponibles, entre otros:
en_AU.utf8
en_CA.utf8
en_GB.utf8
en_IE.utf8
en_NZ.utf8
en_US.utf8
es_AR.utf8
es_BO.utf8
es_CO.utf8
es_EC.utf8
es_ES.utf8
es_MX.utf8
es_PE.utf8
es_US.utf8
es_UY.utf8
es_VE.utf8
Por tanto, en_US.utf8 ya estaba instalado y el problema
no era la ausencia del locale inglés.
2. Comprobar LightDM y la sesión
Podemos saber qué sesión estamos utilizando con:
Y comprobar el gestor de inicio de sesión mediante:
En mi caso obtuve:
fluxbox
/usr/sbin/lightdm
Es decir:
Sesión: Fluxbox
Display Manager: LightDM
3. Comprobar si LightDM recuerda el idioma seleccionado
Aquí encontramos una pista muy importante.
Después de cerrar sesión y seleccionar:
American English - Estados Unidos
LightDM guardaba correctamente la selección en:
~/.dmrc
Podemos comprobarlo mediante:
En mi caso mostraba:
Esto significa que LightDM sí estaba registrando correctamente que yo había seleccionado inglés.
Sin embargo:
continuaba mostrando:
es_EC.UTF-8
Teníamos entonces esta contradicción:
LightDM:
Language=en_US.utf8
Sesión Fluxbox:
LANG=es_EC.UTF-8
4. Encontrar el origen del problema
Revisando la configuración PAM utilizada por LightDM:
encontramos estas líneas:
session required pam_env.so readenv=1
session required pam_env.so readenv=1 envfile=/etc/default/locale
La segunda línea hace que durante el inicio de sesión se lea:
/etc/default/locale
que en mi sistema contiene:
LANG=es_EC.UTF-8
El resultado práctico era que LightDM guardaba:
Language=en_US.utf8
pero la sesión Fluxbox terminaba utilizando:
LANG=es_EC.UTF-8
5. Solución
En lugar de modificar permanentemente
/etc/default/locale, podemos hacer que la sesión X utilice
el idioma seleccionado en LightDM.
Crearemos un pequeño script dentro de:
/etc/X11/Xsession.d/
Ejecutamos:
Dentro pegamos lo siguiente:
Guardamos el archivo.
En Nano podemos hacerlo con:
Ctrl + O
Enter
Ctrl + X
Ahora damos permisos de ejecución al script:
6. Cerrar sesión y seleccionar inglés
Ahora cerramos completamente nuestra sesión.
Cuando aparezca LightDM seleccionamos:
American English - Estados Unidos
y volvemos a entrar en Fluxbox.
En mi caso, inmediatamente todo el escritorio y las aplicaciones comenzaron a aparecer correctamente en inglés.
7. Comprobar que funcionó
Abrimos una terminal y ejecutamos:
Después de aplicar la solución obtuve:
en_US.utf8
en_US:en
y locale mostró:
LANG=en_US.utf8
LANGUAGE=en_US:en
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=
Especialmente importante es:
LC_MESSAGES="en_US.utf8"
porque confirma que las aplicaciones reciben el locale inglés para los mensajes de su interfaz.
¿Qué hace exactamente esta solución?
El funcionamiento queda aproximadamente así:
LightDM
│
│ seleccionamos idioma
▼
~/.dmrc
│
│
Language=en_US.utf8
│
▼
/etc/X11/Xsession.d/
39-lightdm-dmrc-language
│
├── LANG=en_US.utf8
│
└── LANGUAGE=en_US:en
│
▼
Fluxbox
│
▼
Aplicaciones en inglés
Si posteriormente seleccionamos un locale español disponible en
LightDM, el mismo mecanismo puede utilizar el valor que LightDM guarde
en ~/.dmrc.
Por tanto, no estamos fijando permanentemente el sistema a inglés.
¿Por qué no
cambiar simplemente /etc/default/locale?
Podríamos cambiar globalmente:
LANG=es_EC.UTF-8
por:
LANG=en_US.UTF-8
pero eso no soluciona realmente el problema de querer seleccionar el idioma desde LightDM.
Con el método de este tutorial podemos conservar el locale predeterminado del sistema y permitir que la sesión utilice el idioma elegido en el login manager.
Tampoco es necesario eliminar las líneas pam_env.so
de:
/etc/pam.d/lightdm
Es preferible no alterar innecesariamente la configuración PAM del sistema.
Cómo deshacer la solución
Si posteriormente queremos volver al comportamiento original, simplemente eliminamos el archivo que creamos:
Cerramos sesión y volvemos a entrar.
No hemos modificado /etc/default/locale, por lo que el
cambio es fácil de revertir.
Conclusión
En AV Linux MXe puede ocurrir que LightDM guarde correctamente el idioma seleccionado en:
~/.dmrc
por ejemplo:
pero la sesión termine utilizando el locale establecido en:
/etc/default/locale
En mi caso:
LANG=es_EC.UTF-8
La solución consistió en crear:
/etc/X11/Xsession.d/39-lightdm-dmrc-language
para aplicar a la sesión el idioma que LightDM había guardado en
~/.dmrc.
Después de cerrar sesión y seleccionar American English - Estados Unidos, AV Linux inició correctamente en inglés:
LANG=en_US.utf8
LANGUAGE=en_US:en
La ventaja de este método es que podemos seguir utilizando el selector de idiomas de LightDM sin tener que cambiar permanentemente el locale predeterminado de todo el sistema.
Sistema donde fue probado
Esta solución fue comprobada en:
AV Linux MX Edition 25
Base: MX Linux 25 / Debian 13 (Trixie)
Display Manager: LightDM
Sesión utilizada: Fluxbox
AV Linux MX Edition es una distribución orientada especialmente a la creación de contenido multimedia y está basada actualmente en MX Linux 25 / Debian Trixie.
Página oficial de AV Linux:

Comentarios
Publicar un comentario