I‘m using st, the simple-terminal or suckless-terminal, which is a terminal with Unicode-support.
I have two machines, both run Arch Linux with basically the same system settings but i only get Unicode-support on the old machine!
After some investigation i think that it has something to do with my locales, but i‘m not entirely sure.
locale
gives:
[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
from my understanding, that means, everything that is wrote in "..."
is set implicitly, so the only explicitly set locales would be LANG
and LC_ALL
.
I've set LANG=de_DE.UTF-8
in /etc/locale.conf
.
[tim@x1carbon: ~]$ cat /etc/locale.conf
LANG=de_DE.UTF-8
LC_COLLATE=C
LANGUAGE=en_US.UTF-8
but i don't remember setting LC_ALL
at all (on my old machine that variable is just empty when i run locale
)!
I ran sudo grep -rnw '/usr/' -e 'LC_.*=C'
(a search pattern that looks through every file in /usr/
-directory) which outputs a lot of scripts and files containing LC_ALL=C
, but in most cases i guess the existing programs were just reading my set LC_ALL
-variable and adding matching variables to their scripts.
I can't find, where i have actually set this variable and i might be mistaken with my understanding, that that's the reason of the false rendering but still: Setting LC_ALL
to a false locale can cause a lot of other issues i think.
Furthermore, localectl status
puts out:
[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
...which is the same ouput as on the working machine.
I have piped the output of the grep
-command to a log file and i can upload this file somewhere, but i don't know how to do that properly since there was no reason for me to do so yet.