Estou usando st, o terminal simples ou terminal suckless, que é um terminal com suporte a Unicode.
Eu tenho duas máquinas, ambas executam o Arch Linux com basicamente as mesmas configurações do sistema, mas eu só obtenho suporte a Unicode na máquina antiga!
Após algumas investigações, acho que tem algo a ver com minhas localidades, mas não tenho certeza.
locale
dá:
[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
pelo que entendi, isso significa que tudo o que é escrito em "..."
é definido implicitamente, portanto, os únicos locais explicitamente definidos seriam LANG
e LC_ALL
.
Eu configurei LANG=de_DE.UTF-8
em /etc/locale.conf
.
[tim@x1carbon: ~]$ cat /etc/locale.conf
LANG=de_DE.UTF-8
LC_COLLATE=C
LANGUAGE=en_US.UTF-8
mas não me lembro de definir LC_ALL
(na minha máquina antiga, essa variável está vazia quando eu corro locale
)!
Eu executei sudo grep -rnw '/usr/' -e 'LC_.*=C'
(um padrão de pesquisa que examina todos os arquivos em /usr/
-directory) que gera muitos scripts e arquivos contendo LC_ALL=C
, mas na maioria dos casos eu acho que os programas existentes estavam lendo meu defina LC_ALL
-variable e adicione variáveis correspondentes aos seus scripts.
Não consigo encontrar, onde eu realmente defini essa variável e posso estar enganado com o meu entendimento, que essa é a razão da renderização falsa, mas ainda: Configurar LC_ALL
para uma localidade falsa pode causar muitos outros questões que eu penso.
Além disso, localectl status
coloca:
[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 é a mesma saída da máquina em funcionamento.
Eu canalizei a saída do grep
-command para um arquivo de log e posso fazer o upload desse arquivo em algum lugar, mas não sei como fazer isso corretamente, pois ainda não havia motivo para fazê-lo.