Skip to content

Instantly share code, notes, and snippets.

@ndgnuh
Forked from gdamjan/xsession
Created November 19, 2020 04:52
Show Gist options
  • Save ndgnuh/b75ca0ff70cf48bb9a5820a4eb216e97 to your computer and use it in GitHub Desktop.
Save ndgnuh/b75ca0ff70cf48bb9a5820a4eb216e97 to your computer and use it in GitHub Desktop.
improved lightdm xsession (for Archlinux)
#!/bin/sh
#
# LightDM wrapper to run around X sessions.
echo "Running X session wrapper"
# Load profile
for file in "/etc/profile" "$HOME/.profile" "/etc/xprofile" "$HOME/.xprofile"; do
if [ -f "$file" ]; then
echo "Loading profile from $file";
. "$file"
fi
done
# Load resources
for file in "/etc/X11/Xresources" "$HOME/.Xresources"; do
if [ -f "$file" ]; then
echo "Loading resource: $file"
xrdb -nocpp -merge "$file"
fi
done
# Load keymaps
for file in "/etc/X11/Xkbmap" "$HOME/.Xkbmap"; do
if [ -f "$file" ]; then
echo "Loading keymap: $file"
setxkbmap `cat "$file"`
XKB_IN_USE=yes
fi
done
# Load xmodmap if not using XKB
if [ -z "$XKB_IN_USE" ]; then
for file in "/etc/X11/Xmodmap" "$HOME/.Xmodmap"; do
if [ -f "$file" ]; then
echo "Loading modmap: $file"
xmodmap "$file"
fi
done
fi
unset XKB_IN_USE
# Run all system xinitrc shell scripts.
xinitdir="/etc/X11/xinit/xinitrc.d"
if [ -d "$xinitdir" ]; then
for script in $xinitdir/*; do
echo "Loading xinit script $script"
if [ -x "$script" -a ! -d "$script" ]; then
. "$script"
fi
done
fi
# Load Xsession scripts
xsessionddir="/etc/X11/Xsession.d"
if [ -d "$xsessionddir" ]; then
for i in `ls $xsessionddir`; do
script="$xsessionddir/$i"
echo "Loading X session script $script"
if [ -r "$script" -a -f "$script" ] && expr "$i" : '^[[:alnum:]_-]\+$' > /dev/null; then
. "$script"
fi
done
fi
echo "X session wrapper complete, running session $@"
if [ -x $HOME/.xsession -a -f $HOME/.xsession ]; then
exec $HOME/.xsession $@
else
exec $@
fi
--- /etc/lightdm/xsession~ 2012-11-26 19:40:23.000000000 +0100
+++ /etc/lightdm/xsession 2012-09-30 17:44:03.284312754 +0200
@@ -65,5 +65,8 @@
fi
echo "X session wrapper complete, running session $@"
-
-exec $@
+if [ -x $HOME/.xsession -a -f $HOME/.xsession ]; then
+ exec $HOME/.xsession $@
+else
+ exec $@
+fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment