Skip to content

Instantly share code, notes, and snippets.

@gdamjan
Created November 9, 2012 01:41

Revisions

  1. gdamjan revised this gist Dec 17, 2012. 1 changed file with 13 additions and 0 deletions.
    13 changes: 13 additions & 0 deletions xsession.patch
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,13 @@
    --- /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
  2. gdamjan created this gist Nov 9, 2012.
    72 changes: 72 additions & 0 deletions xsession
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,72 @@
    #!/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