Search code examples
linuxlocalemanjaro

How to find out what messes up my locale-settings?


something messes up my locale settings and I can't find out where and why this happens. I am on a Manjaro system, but installed Ubuntu a couple of days ago with dual-boot option. The problems started then.

/etc/locale.gen

...
#en_BW ISO-8859-1  
#en_CA.UTF-8 UTF-8  
#en_CA ISO-8859-1  
en_DK.UTF-8 UTF-8  
#en_DK ISO-8859-1  
#en_GB.UTF-8 UTF-8 
...

sudo locale-gen was called

/etc/default/locale

LANG=en_DK.utf8
LC_CTYPE="en_DK.utf8"
LC_NUMERIC=en_DK.UTF-8
LC_TIME=en_DK.UTF-8
LC_COLLATE="en_DK.utf8"
LC_MONETARY=en_DK.UTF-8
LC_MESSAGES="en_DK.utf8"
LC_PAPER=en_DK.UTF-8
LC_NAME=en_DK.UTF-8
LC_ADDRESS=en_DK.UTF-8
LC_TELEPHONE=en_DK.UTF-8
LC_MEASUREMENT=en_DK.UTF-8
LC_IDENTIFICATION=en_DK.UTF-8
LC_ALL=

/etc/locale.conf

LANG=en_DK.UTF-8

manjaro-settings-manager:

everything set to en_DK.UTF-8

no further exports in bashrc, zshrc, ~/.profile

output locale:

locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_DK.UTF-8
LC_CTYPE="en_DK.UTF-8"
LC_NUMERIC=en_GB.UTF-8
LC_TIME=en_GB.UTF-8
LC_COLLATE="en_DK.UTF-8"
LC_MONETARY=en_GB.UTF-8
LC_MESSAGES="en_DK.UTF-8"
LC_PAPER=en_GB.UTF-8
LC_NAME=en_GB.UTF-8
LC_ADDRESS=en_GB.UTF-8
LC_TELEPHONE=en_GB.UTF-8
LC_MEASUREMENT=en_GB.UTF-8
LC_IDENTIFICATION=en_GB.UTF-8
LC_ALL=

Solution

  • Solved this by using

    grep -rnw '.' -e 'en_GB.UTF-8'
    

    to find out that Ubuntu set locales in ~/.pam_environment that somehow overwrote the system defaults. After replacing those, everything was fine.

    Maybe this will save someone some trouble.