diff options
Diffstat (limited to 'kde/kdebase-workspace/Xsession.kde4')
-rwxr-xr-x | kde/kdebase-workspace/Xsession.kde4 | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/kde/kdebase-workspace/Xsession.kde4 b/kde/kdebase-workspace/Xsession.kde4 new file mode 100755 index 000000000..742344b9b --- /dev/null +++ b/kde/kdebase-workspace/Xsession.kde4 @@ -0,0 +1,71 @@ +#! /bin/sh +# Xsession - run as user + +session=$1 + +# 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 + +if [ "$UID" = "0" ]; then + exec /usr/bin/startede +else + + +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 /opt/kde4/bin/startkde + ;; + *) + eval exec "$session" + ;; +esac +fi +exec xmessage -center -buttons OK:0 -default OK "Sorry, cannot execute $session. Check $DESKTOP_SESSION.desktop." |