summaryrefslogtreecommitdiff
path: root/source/x/x11/post-install/xdm/Xsession
diff options
context:
space:
mode:
Diffstat (limited to 'source/x/x11/post-install/xdm/Xsession')
-rwxr-xr-xsource/x/x11/post-install/xdm/Xsession203
1 files changed, 203 insertions, 0 deletions
diff --git a/source/x/x11/post-install/xdm/Xsession b/source/x/x11/post-install/xdm/Xsession
new file mode 100755
index 00000000..6484b096
--- /dev/null
+++ b/source/x/x11/post-install/xdm/Xsession
@@ -0,0 +1,203 @@
+#!/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
+