#! /bin/sh # Xsession - run as user # Merged in parts of the old Xsession to load defaults from # Xresources and Xmodmap files, 2006-02-09 volkerdi # Merged with the new Xsession (original) from KDE4, 20071220 rworkman session=$1 # This section is borrowed from the old X11 Xsession file: userresources=$HOME/.Xresources usermodmap=$HOME/.Xmodmap sysresources=/usr/lib/X11/xinit/.Xresources sysmodmap=/usr/lib/X11/xinit/.Xmodmap # merge in defaults and keymaps if [ -r $sysresources ]; then /usr/bin/xrdb -merge $sysresources fi if [ -r $sysmodmap ]; then /usr/bin/xmodmap $sysmodmap fi if [ -r $userresources ]; then /usr/bin/xrdb -merge $userresources fi if [ -r $usermodmap ]; then /usr/bin/xmodmap $usermodmap fi # Note that the respective logout scripts are not sourced. case $SHELL in */bash) [ -z "$BASH" ] && exec $SHELL $0 "$@" set +o posix [ -f /etc/profile ] && . /etc/profile if [ -f $HOME/.bash_profile ]; then . $HOME/.bash_profile elif [ -f $HOME/.bash_login ]; then . $HOME/.bash_login elif [ -f $HOME/.profile ]; then . $HOME/.profile fi ;; */zsh) [ -z "$ZSH_NAME" ] && exec $SHELL $0 "$@" emulate -R zsh [ -d /etc/zsh ] && zdir=/etc/zsh || zdir=/etc zhome=${ZDOTDIR:-$HOME} # zshenv is always sourced automatically. [ -f $zdir/zprofile ] && . $zdir/zprofile [ -f $zhome/.zprofile ] && . $zhome/.zprofile [ -f $zdir/zlogin ] && . $zdir/zlogin [ -f $zhome/.zlogin ] && . $zhome/.zlogin ;; */csh|*/tcsh) # [t]cshrc is always sourced automatically. # Note that sourcing csh.login after .cshrc is non-standard. xsess_tmp=`mktemp /tmp/xsess-env-XXXXXX` $SHELL -c "if (-f /etc/csh.login) source /etc/csh.login; if (-f ~/.login) source ~/.login; /bin/sh -c export -p >! $xsess_tmp" . $xsess_tmp rm -f $xsess_tmp ;; *) # Plain sh, ksh, and anything we do not know. [ -f /etc/profile ] && . /etc/profile [ -f $HOME/.profile ] && . $HOME/.profile ;; esac [ -f /etc/xprofile ] && . /etc/xprofile [ -f $HOME/.xprofile ] && . $HOME/.xprofile case $session in "") exec xmessage -center -buttons OK:0 -default OK "Sorry, $DESKTOP_SESSION is no valid session." ;; failsafe) exec xterm -geometry 80x24-0-0 ;; custom) exec $HOME/.xsession ;; default) exec /usr/bin/startkde ;; *) eval exec "$session" ;; esac exec xmessage -center -buttons OK:0 -default OK "Sorry, cannot execute $session. Check $DESKTOP_SESSION.desktop."