2009-08-26 17:00:38 +02:00
|
|
|
#!/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
|
2011-04-25 15:37:00 +02:00
|
|
|
# Changed /usr/lib/X11/xinit/ paths to /etc/X11/xinit/ 2011-01-23 rworkman
|
2009-08-26 17:00:38 +02:00
|
|
|
|
|
|
|
# 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
|
2011-04-25 15:37:00 +02:00
|
|
|
sysresources=/etc/X11/xinit/.Xresources
|
|
|
|
sysmodmap=/etc/X11/xinit/.Xmodmap
|
2009-08-26 17:00:38 +02:00
|
|
|
|
|
|
|
# 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
|
|
|
|
|