aboutsummaryrefslogtreecommitdiff
path: root/xinitrc
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 /xinitrc
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.
Diffstat (limited to '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