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.