X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;ds=sidebyside;f=kdebase-kdm.Xsession;h=52cc604c10231b9c15351fcaf303d0b4d32aa1b9;hb=8161cb68e5b59246a25cb57608b89d8ba8a1d9cc;hp=a91a95d549e23839efbc7c6e0b3921f12c0dfb4d;hpb=e9ab9dfb6e8dc16d273a7ba8acb1b7a630bcada5;p=packages%2Fkde4-kdebase-workspace.git diff --git a/kdebase-kdm.Xsession b/kdebase-kdm.Xsession index a91a95d..52cc604 100644 --- a/kdebase-kdm.Xsession +++ b/kdebase-kdm.Xsession @@ -1,121 +1,43 @@ #!/bin/sh -# Copyright (c) 1999, 2000 Red Hat, Inc. -# redirect errors to a file in user's home directory if we can -for errfile in "${TMPDIR-/tmp}/.xsession-$USER" \ - "/tmp/.xsession-$USER" \ - "$HOME/.xsession-errors" -do - if cp /dev/null "$errfile" 2> /dev/null ; then - chmod 600 "$errfile" - exec > "$errfile" 2>&1 - break - fi -done - -[ "`echo $PATH | grep -q /usr/X11R6/bin`" = "" ] && PATH="${PATH}:/usr/X11R6/bin" -[ "`echo $PATH | grep -q "$HOME/bin"`" = "" ] && PATH="$PATH:$HOME/bin" - -test -f /etc/profile && . /etc/profile -test -f $HOME/.profile && . $HOME/.profile - -if [ ! -f $HOME/.profile ] && echo $SHELL |grep -q "bash"; then - test -f $HOME/.bash_profile && . $HOME/.bash_profile -fi - -userresources=$HOME/.Xresources -usermodmap=$HOME/.Xmodmap -userxkbmap=$HOME/.Xkbmap - -sysresources=/etc/X11/Xresources -sysmodmap=/etc/X11/Xmodmap -sysxkbmap=/etc/X11/Xkbmap - -# merge in defaults -[ -f "$sysresources" ] && xrdb -merge "$sysresources" -[ -f "$userresources" ] && xrdb -merge "$userresources" - -# merge in keymaps -if [ -f "$sysxkbmap" ]; then - setxkbmap `cat "$sysxkbmap"` - XKB_IN_USE=yes +# Make it login shell +if [ "$HAVE_LOGIN_SHELL" != "yes" ]; then + export HAVE_LOGIN_SHELL=yes + case $SHELL in + */csh|*/tcsh) + # [t]cshrc is always sourced automatically. + # Note that sourcing csh.login after .cshrc is non-standard. + exec $SHELL -c "if (-f /etc/csh.login) source /etc/csh.login; if (-f ~/.login) source ~/.login; exec $0 $*" + ;; + *) + exec $SHELL -l $0 $* + esac fi +unset HAVE_LOGIN_SHELL -if [ -f "$userxkbmap" ]; then - setxkbmap `cat "$userxkbmap"` - XKB_IN_USE=yes -fi +# Call standard xinit actions +. /etc/X11/xinit/xinitdefs -if [ -z "$XKB_IN_USE" -a ! -L /etc/X11/X ]; then - if grep '^exec.*/Xsun' /etc/X11/X > /dev/null 2>&1 \ - && [ -f /etc/X11/XF86Config ]; then - xkbsymbols=`sed -n -e 's/^[ ]*XkbSymbols[ ]*"\(.*\)".*$/\1/p' /etc/X11/XF86Config` - if [ -n "$xkbsymbols" ]; then - setxkbmap -symbols "$xkbsymbols" - XKB_IN_USE=yes - fi - fi -fi - -# xkb and xmodmap don't play nice together -if [ -z "$XKB_IN_USE" ]; then - [ -f "$sysmodmap" ] && xmodmap "$sysmodmap" - [ -f "$usermodmap" ] && xmodmap "$usermodmap" -fi - -unset XKB_IN_USE - -# run all system xinitrc shell scripts. -for i in /etc/X11/xinit/xinitrc.d/* ; do - if [ -x "$i" ]; then - . "$i" - fi -done - -# exec specified session or tell user if not found -loadsess() -{ - [ `/usr/bin/which $sess` ] && exec $sess || exec xmessage -center -buttons OK:0 \ - -default OK "Sorry, $sess not found." -} - -# now, we see if xdm/gdm/kdm has asked for a specific environment case $1 in failsafe) exec xterm -geometry 80x24-0-0 ;; - gnome) - sess=gnome-session - loadsess - ;; - kde) - sess=startkde - loadsess - ;; - windowmaker) - sess=wmaker - loadsess - ;; - xfce) - sess=startxfce - loadsess - ;; ""|default) # take default action - if [ -f "$HOME/.xsession" ]; then - exec "$HOME/.xsession" - elif [ -f "$HOME/.Xclients" ]; then + if [ -x "$HOME/.Xclients" ]; then exec "$HOME/.Xclients" else exec /etc/X11/xinit/Xclients fi ;; - *) - sess=$* - if [ -f "$HOME/bin/$sess.sh" ]; then - exec "$HOME/bin/$sess.sh" + custom) + if [ -x "$HOME/.xsession" ]; then + exec "$HOME/.xsession" else - loadsess - fi - ;; + exec xmessage -center -buttons OK:0 -default OK \ + "Sorry, $HOME/.xsession not found." + fi + ;; + *) + exec /etc/X11/xinit/Xclients $1 esac