Да в чем виновата-то системная локаль-то?! Ее в юзерском сеансе преопределяют все кому не лень от ~/.config/locate.conf до связки accountsservice с ДМ или, скажем, если шелл tcsh, то там придется указывать setenv-ы.
Locale.conf, у меня очепятка выше.
Но всяческие дисплей менеджеры кладут на него с прибором если работает accountsservice. Тогда настройки хранятся в самом очевидном месте: /var/lib/AccountsService/users/$USER. Эта мерзость переопределяет настройки, явным образом заданные в locale.conf. Хоть системном, хоть позьзовательском.
Все, которые умеют взаимодействовать с accountsservice. То есть, разумеется, GDM (вероятно, его форки тоже) и LightDM. В последнем есть даже специальная переключалка языков, но работает она через /dev/ass.
Нашел тут еще один НЕ МЕНЕЕ ОЧЕВИДНЫЙ метод:
busctl call org.freedesktop.Accounts /org/freedesktop/Accounts/User$UID org.freedesktop.Accounts.User SetLanguage s your_locale
Наиболее простое и элегантное решение — выкинуть гномоподелие под названием AccountsService на мороз. После этого все работает очевидным образом. При условии что все настроено корректно, разумеется.
8 комментариев
Пусть покажет сперва вывод или заново сгенерирует её.
Но всяческие дисплей менеджеры кладут на него с прибором если работает accountsservice. Тогда настройки хранятся в самом очевидном месте: /var/lib/AccountsService/users/$USER. Эта мерзость переопределяет настройки, явным образом заданные в locale.conf. Хоть системном, хоть позьзовательском.
это интересно какие менеджеры такое делают?
Нашел тут еще один НЕ МЕНЕЕ ОЧЕВИДНЫЙ метод:
Наиболее простое и элегантное решение — выкинуть гномоподелие под названием AccountsService на мороз. После этого все работает очевидным образом. При условии что все настроено корректно, разумеется.