summaryrefslogblamecommitdiffstats
path: root/source/x/x11/post-install/xdm/Xsession
blob: 22fcde8fbf4a7a76d197100aa5474a4baeae01ea (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12











                                                                                                   
                                                                            





















                                                                               

                                       






































































































































































                                                                                        
#!/bin/sh
# $XConsortium: Xsession /main/10 1995/12/18 18:21:28 gildea $
#
#
# $XFree86: xc/programs/xdm/config/Xsession,v 1.2 1998/01/11 03:48:32 dawes Exp $
# Modified for Slackware-3.5, 28-Mar-98 volkerdi
# Extensively rewritten for Slackware 7.0, 03-Oct-1999 volkerdi
# Patched to give priority to $HOME/.xsession, 10-Oct-1999 volkerdi
# Merged changes into upstream (XFree86-4.0.2) version, 17-Feb-2001 volkerdi
# Fixes for $PATH (from Jim Diamond), GDM/KDM/XDM, 2003-02-07 volkerdi
# Use absolute paths until $PATH is set, 2006-01-11 (Al's 100th :-) volkerdi
# merged changes from # $Xorg: Xsession,v 1.4 2000/08/17 19:54:17 cpqbld Exp $, 2007-02-13 volkerdi
# Changed /usr/lib/X11/xinit/ paths to /etc/X11/xinit/   2011-01-23 rworkman

# redirect errors to a file in user's home directory if we can
errfile="$HOME/.xsession-errors"
if ( umask 077 && cp /dev/null "$errfile" 2> /dev/null )
then
        exec > "$errfile" 2>&1
else

        mktemp=/usr/bin/mktemp
        for errfile in "${TMPDIR-/tmp}/xses-$USER" "/tmp/xses-$USER"
        do
                if ef="$( umask 077 && $mktemp "$errfile.XXXXXX" 2> /dev/null)"
                then
                        exec > "$ef" 2>&1
                        mv "$ef" "$errfile" 2> /dev/null
                        break
                fi
        done
fi

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/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

# Since xdm doesn't run a bash -login shell (or any other login shell)
# we should source these files to set up the user's environment.
profile=/etc/profile
userprofile=~/.profile

if [ -r $profile ]; then
        source $profile 1> /dev/null 2> /dev/null
fi
if [ -r $userprofile ]; then
        source $userprofile 1> /dev/null 2> /dev/null
fi

# Set the $PATH through the user's preferred shell.
case `basename "$SHELL"` in
bash|sh|ash)
	PATH="`( echo 'echo $PATH' | bash --login ) | tail -1`"
	;;
csh|tcsh)
	PATH="`( echo 'echo $PATH' | tcsh -l ) | tail -1`"
	;;
ksh)
	PATH="`( cat /etc/profile ; echo 'echo $PATH' ) | ksh | tail -1`"
	;;
zsh)
	PATH="`( echo 'echo $PATH' | zsh -l ) | tail -1`"
    	;;
*)
	# We don't know your shell, so we'll set up reasonable defaults.
     	if [ "`whoami`" = "root" ]; then
		PATH=$PATH:/usr/local/sbin:/sbin:/usr/sbin:/usr/local/bin:/bin:/usr/bin
     	else
		PATH=$PATH:/usr/local/bin:/bin:/usr/bin
       	fi
     	;;
esac

# These files (if they exist) are used to set up the X related environment.  We used to
# exec .xsession at this location, but that can interfere with choosing a session type
# through XDM/KDM/GDM so it was moved to after a requested session is started.  Since
# that means that .xsession might never be run at all when using XDM/KDM/GDM, support
# for the xprofile was added to allow a way for the user to customize the X environment.
if [ -r /etc/xprofile ]; then
	source /etc/xprofile
fi
if [ -r ~/.xprofile ]; then
	source ~/.xprofile
fi

# Some people say that an .xsession file should always be given priority, even if a
# different window manager was requested in $1.  If you want that behavior, uncomment
# the lines below.  This is not recommended (nor, in general, is the use of an
# .xsession file as a default... it should be left for the advanced users).
#if [ -x $HOME/.xsession ]; then
#        exec $HOME/.xsession $@
#fi

# If a particular session type was requested in $1, start that session:
case "$1" in
failsafe)
	xsetroot -solid SteelBlue
	exec xterm -geometry 80x24-0-0
	;;
kde)
	exec startkde
	;;
gnome)
	exec gnome-session
	;;
openwin)
	exec olvwm
	;;
fluxbox)
	exec fluxbox
	;;
fvwm2)
	xsetroot -solid SteelBlue
	exec fvwm2
	;;
fvwm95)
	xsetroot -solid SteelBlue
	exec fvwm95
	;;
blackbox)
	exec blackbox
	;;
xfce)
	exec /etc/X11/xinit/xinitrc.xfce
	;;
windowmaker)
	exec /etc/X11/xinit/xinitrc.wmaker
	;;
afterstep)
	exec afterstep
	;;
enlightenment)
	exec enlightenment
	;;
twm)
	#xclock -geometry 50x50-1+1 &
	#xterm -geometry 80x50+494+51 &
	#xterm -geometry 80x20+494-0 &
	#xterm -geometry 80x66+0+0 -name login &
	xsetroot -solid SteelBlue
	exec twm
	;;
esac

# If we aren't running from XDM/KDM/GDM and no window manager was
# specified, then we'll run the user's $HOME/.xsession if it's
# executable.  This must be set up to run the user's window manager.
if [ -x $HOME/.xsession ]; then
        exec $HOME/.xsession $@
fi

# If the user doesn't have their own xsession and none was specified in
# $1, then run the system default session type:
if [ -r /etc/X11/xinit/xinitrc ]; then
	exec /etc/X11/xinit/xinitrc
fi

# If a $startup variable is set to define the window or session manager,
# then run that:
if [ -s "$startup" -a -x "$startup" ]; then
	exec "$startup"
else
	if [ -r "$resources" ]; then
		/usr/bin/xrdb -load "$resources"
	fi
	# Run xsm as a failsafe.
	exec xsm
fi

startup=$HOME/.xsession
resources=$HOME/.Xresources

if [ -s "$startup" ]; then
        if [ -x "$startup" ]; then
                exec "$startup"
        else
                exec /bin/sh "$startup"
        fi
else
        if [ -r "$resources" ]; then
                /usr/bin/xrdb -load "$resources"
        fi
        exec /usr/bin/xsm
fi