From c8adc26ff6476beec4e50698575a34bdeb0164e8 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Thu, 2 Jun 2016 16:57:09 +0200 Subject: fix locales not set correct in a X Session The locales are still not correct on tty. But this is intentional by systemd because of problems handling some locales. For further explanation see the comment in xinitrc. --- xinitrc | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/xinitrc b/xinitrc index 554c938..8352544 100644 --- a/xinitrc +++ b/xinitrc @@ -1,4 +1,6 @@ #!/bin/bash + +# Set my favorite terminal if type urxvt >/dev/null 2>/dev/null then export TERMINAL=urxvt @@ -8,6 +10,40 @@ then export TERMINAL=terminator fi +# agetty unsets passed locale vars. +# See: +# /etc/systemd/system/getty.target.wants/getty@tty1.service +# /usr/lib/systemd/system/getty@.service +# Because of problems with some locales. +# See: +# https://github.com/fish-shell/fish-shell/issues/3092#issuecomment-223154845 +# => Set correct locale. Copied from arch's /etc/profile.d/locale.sh + +if [ -z "$LANG" ]; then + if [ -n "$XDG_CONFIG_HOME" ] && [ -r "$XDG_CONFIG_HOME/locale.conf" ]; then + . "$XDG_CONFIG_HOME/locale.conf" + elif [ -n "$HOME" ] && [ -r "$HOME/.config/locale.conf" ]; then + . "$HOME/.config/locale.conf" + elif [ -r /etc/locale.conf ]; then + . /etc/locale.conf + fi +fi + +LANG=${LANG:-C} +export LANG +[ -n "$LC_CTYPE" ] && export LC_CTYPE +[ -n "$LC_NUMERIC" ] && export LC_NUMERIC +[ -n "$LC_TIME" ] && export LC_TIME +[ -n "$LC_COLLATE" ] && export LC_COLLATE +[ -n "$LC_MONETARY" ] && export LC_MONETARY +[ -n "$LC_MESSAGES" ] && export LC_MESSAGES +[ -n "$LC_PAPER" ] && export LC_PAPER +[ -n "$LC_NAME" ] && export LC_NAME +[ -n "$LC_ADDRESS" ] && export LC_ADDRESS +[ -n "$LC_TELEPHONE" ] && export LC_TELEPHONE +[ -n "$LC_MEASUREMENT" ] && export LC_MEASUREMENT +[ -n "$LC_IDENTIFICATION" ] && export LC_IDENTIFICATION + eval $(ssh-agent -s -a ~/.ssh/agent.sock) [[ -f $HOME/.Xresources ]] && xrdb -merge $HOME/.Xresources -- cgit v1.2.3