aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fl.fischer@fau.de>2016-06-02 16:57:09 +0200
committerFlorian Fischer <florian.fl.fischer@fau.de>2016-06-06 13:03:36 +0200
commitc8adc26ff6476beec4e50698575a34bdeb0164e8 (patch)
treef3c010c311f3a469f05065fefb49e8d6870f015a
parentc2689b60788487c724bf0c8caee016712ffbcacf (diff)
downloaddotfiles-c8adc26ff6476beec4e50698575a34bdeb0164e8.tar.gz
dotfiles-c8adc26ff6476beec4e50698575a34bdeb0164e8.zip
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.
-rw-r--r--xinitrc36
1 files changed, 36 insertions, 0 deletions
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