Estoy usando st, el terminal simple o suckless-terminal, que es un terminal con soporte Unicode.
Tengo dos máquinas, ambas ejecuto Arch Linux con básicamente la misma configuración del sistema, ¡pero solo recibo soporte Unicode en la máquina vieja!
Después de investigar un poco, creo que tiene algo que ver con mis locales, pero no estoy completamente seguro.
locale
da:
[tim@x1carbon: ~]$ locale
LANG=en_DE.UTF-8
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=C
desde mi punto de vista, eso significa que todo lo que está escrito "..."
se establece implícitamente, por lo que las únicas configuraciones regionales explícitamente serían LANG
y LC_ALL
.
Me he fijado LANG=de_DE.UTF-8
en /etc/locale.conf
.
[tim@x1carbon: ~]$ cat /etc/locale.conf
LANG=de_DE.UTF-8
LC_COLLATE=C
LANGUAGE=en_US.UTF-8
¡pero no recuerdo haber configurado LC_ALL
(en mi máquina anterior esa variable está vacía cuando ejecuto locale
)!
Ejecuté sudo grep -rnw '/usr/' -e 'LC_.*=C'
(un patrón de búsqueda que revisa todos los archivos en /usr/
-directory) que genera muchos scripts y archivos que contienen LC_ALL=C
, pero en la mayoría de los casos supongo que los programas existentes solo estaban leyendo mi LC_ALL
variable de conjunto y agregando variables coincidentes a sus scripts.
No puedo encontrar, donde realmente configuré esta variable y podría estar equivocado con mi comprensión, que esa es la razón de la representación falsa, pero aún así: LC_ALL
creo que una configuración regional falsa puede causar muchos otros problemas.
Además, localectl status
saca:
[tim@x1carbon: ~]$ localectl status
System Locale: LANG=de_DE.UTF-8
LANGUAGE=en_US.UTF-8
LC_COLLATE=C
VC Keymap: de-latin1
X11 Layout: n/a
... que es la misma salida que en la máquina de trabajo.
He canalizado la salida del grep
comando a un archivo de registro y puedo cargar este archivo en algún lugar, pero no sé cómo hacerlo correctamente ya que todavía no había razón para hacerlo.