summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'x11-apps/xdm/files/Xsession')
-rw-r--r--x11-apps/xdm/files/Xsession73
1 files changed, 73 insertions, 0 deletions
diff --git a/x11-apps/xdm/files/Xsession b/x11-apps/xdm/files/Xsession
new file mode 100644
index 000000000000..ffeef4c87420
--- /dev/null
+++ b/x11-apps/xdm/files/Xsession
@@ -0,0 +1,73 @@
+#!/bin/bash --login
+#
+# $Xorg: Xsession,v 1.4 2000/08/17 19:54:17 cpqbld Exp $
+#
+#
+#
+#
+# $XFree86: xc/programs/xdm/config/Xsession,v 1.3 2001/01/17 23:45:24 dawes Exp $
+
+# redirect errors to a file in user's home directory if we can
+for errfile in "$HOME/.xsession-errors" "${TMPDIR-/tmp}/xses-$USER" "/tmp/xses-$USER"
+do
+ if ( cp /dev/null "$errfile" 2> /dev/null )
+ then
+ chmod 600 "$errfile"
+ exec > "$errfile" 2>&1
+ break
+ fi
+done
+
+# handle KDM
+if [ -n "$1" ]; then
+ export XSESSION="$1"
+fi
+
+xinitdir=/usr/X11R6/lib/X11/xinit
+startup=$HOME/.xsession
+userresources=$HOME/.Xresources
+usermodmap=$HOME/.Xmodmap
+sysresources=$xinitdir/.Xresources
+sysmodmap=$xinitdir/.Xmodmap
+
+# First run the system default. Because KDE uses this
+# to switch sessions, we MUST first check the system
+# default, and then ~/.xsession. If the user Do not
+# want this, he should override XSESSION, or at least
+# clear it.
+if [ -n "`/etc/X11/chooser.sh`" ]; then
+ exec "`/etc/X11/chooser.sh`"
+# If not defined, try the user's ~/.xsession
+elif [ -s "$startup" ]; then
+
+ # merge in defaults and keymaps
+
+ if [ -f $sysresources ]; then
+ xrdb -merge $sysresources
+ fi
+
+ if [ -f $sysmodmap ]; then
+ xmodmap $sysmodmap
+ fi
+
+ if [ -f $userresources ]; then
+ xrdb -merge $userresources
+ fi
+
+ if [ -f $usermodmap ]; then
+ xmodmap $usermodmap
+ fi
+
+ if [ -x "$startup" ]; then
+ exec "$startup"
+ else
+ exec /bin/sh "$startup"
+ fi
+# Lastly, xsm as failsafe
+else
+ if [ -r "$userresources" ]; then
+ xrdb -load "$userresources"
+ fi
+ exec xsm
+fi
+