1
0
Fork 0
mirror of git://slackware.nl/current.git synced 2025-01-17 18:12:36 +01:00
slackware-current/source/x/x11/post-install/xdm/Xsession
Patrick J Volkerding 5a12e7c134 Slackware 13.0
Wed Aug 26 10:00:38 CDT 2009
Slackware 13.0 x86_64 is released as stable!  Thanks to everyone who
helped make this release possible -- see the RELEASE_NOTES for the
credits.  The ISOs are off to the replicator.  This time it will be a
6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD.
We're taking pre-orders now at store.slackware.com.  Please consider
picking up a copy to help support the project.  Once again, thanks to
the entire Slackware community for all the help testing and fixing
things and offering suggestions during this development cycle.
As always, have fun and enjoy!  -P.
2018-05-31 22:41:17 +02:00

203 lines
5.3 KiB
Bash
Executable file

#!/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
# 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=/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
# 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