X-Git-Url: https://git.madduck.net/etc/xsession.git/blobdiff_plain/5cfa61ab264605b5449871c4374b189502d1862b..ae1c961c048e6325b1640f67384d33e2e06341ff:/.xsession?ds=sidebyside diff --git a/.xsession b/.xsession index bbe6b6e..ea1683e 100755 --- a/.xsession +++ b/.xsession @@ -1,8 +1,28 @@ #!/bin/zsh --login -set -u +RUNDIR="/run/user/$(id -u)" +mkdir -m700 -p "$RUNDIR" +NEW_ERRFILE=$RUNDIR/xsession-errors +if [ -f "$ERRFILE" ]; then + mv "$ERRFILE" $NEW_ERRFILE +elif [ -L /tmp/xsession-$LOGNAME ]; then + mv $(readlink -f /tmp/xsession-$LOGNAME) $NEW_ERRFILE + rm /tmp/xsession-$LOGNAME +fi +chmod 600 $NEW_ERRFILE +ln -sf $NEW_ERRFILE $HOME/.xsession-errors + +TRAPS="0 1 2 3 4 5 6 7 8 10 11 12 13 14 15" +cleanup() { + rm -f $HOME/.xsession-errors + mv $NEW_ERRFILE $HOME/.xsession-errors + trap - $TRAPS +} +trap cleanup $TRAPS -SHLVL=0 +exec >>$NEW_ERRFILE 2>&1 + +set -u while :; do for script in $(run-parts --list $HOME/.xsession.d); do