summaryrefslogtreecommitdiff
path: root/data/PreSession.in
diff options
context:
space:
mode:
authorWilliam Jon McCann <mccann@jhu.edu>2007-11-01 18:03:28 +0000
committerWilliam Jon McCann <mccann@src.gnome.org>2007-11-01 18:03:28 +0000
commitc478401c3251b5a65dd37a890f886bcf4a5f25be (patch)
treeb7a0e2c7b3d8e58a141e7a369373b3ec771e3868 /data/PreSession.in
parent3edf90cd18f2affe3027e2bc43bc611bd350d13f (diff)
downloadgdm-c478401c3251b5a65dd37a890f886bcf4a5f25be.tar.gz
Move stuff from config to data.
2007-11-01 William Jon McCann <mccann@jhu.edu> * config/Init.in: * config/Makefile.am: * config/PostLogin: * config/PostSession.in: * config/PreSession.in: * config/Xsession.in: * config/gdm: * config/gdm-autologin: * config/gdm.conf-custom.in: * configure.ac: * data/Makefile.am: Move stuff from config to data. svn path=/trunk/; revision=5483
Diffstat (limited to 'data/PreSession.in')
-rwxr-xr-xdata/PreSession.in84
1 files changed, 84 insertions, 0 deletions
diff --git a/data/PreSession.in b/data/PreSession.in
new file mode 100755
index 00000000..7f444b6e
--- /dev/null
+++ b/data/PreSession.in
@@ -0,0 +1,84 @@
+#!/bin/sh
+#
+# Note that any setup should come before the sessreg command as
+# that must be 'exec'ed for the pid to be correct (sessreg uses the parent
+# pid)
+#
+# Note that output goes into the .xsession-errors file for easy debugging
+#
+PATH="@X_PATH@:$PATH:/bin:/usr/bin"
+OLD_IFS=$IFS
+
+gdmwhich () {
+ COMMAND="$1"
+ OUTPUT=
+ IFS=:
+ for dir in $PATH
+ do
+ if test -x "$dir/$COMMAND" ; then
+ if test "x$OUTPUT" = "x" ; then
+ OUTPUT="$dir/$COMMAND"
+ fi
+ fi
+ done
+ IFS=$OLD_IFS
+ echo "$OUTPUT"
+}
+
+# Set background color
+XSETROOT=`gdmwhich xsetroot`
+if [ "x$XSETROOT" != "x" ] ; then
+
+ CHECKBACKCOLOR="OK"
+ if [ "x$GDM_GREETER_TYPE" = "xTHEMED" ]; then
+ BACKCOLOR=`gdmflexiserver --command="GET_CONFIG greeter/GraphicalThemedColor $DISPLAY"`
+
+ CHECKBACKCOLOR=`echo $BACKCOLOR | sed 's/^\([^ ]*\) .*$/\1/'`
+ if [ "x$CHECKBACKCOLOR" = "xOK" ]; then
+ BACKCOLOR=`echo $BACKCOLOR | sed 's/^.* \(.*\)$/\1/'`
+ else
+ BACKCOLOR=""
+ fi
+ fi
+
+ # If we tried to load the themed backgroundcolor, but failed, then try loading plain color
+ if [ "x$CHECKBACKCOLOR" != "xOK" ] || [ "x$GDM_GREETER_TYPE" = "xPLAIN" ]; then
+
+ # Background type can be 0=None, 1=Image & Color, 2=Color, or 3=Image
+ BACKTYPE=`gdmflexiserver --command="GET_CONFIG greeter/BackgroundType $DISPLAY"`
+
+ # Skip if background type does not include a color
+ if [ "x$BACKTYPE" = "xOK 1" ] || [ "x$BACKTYPE" = "xOK 2" ]; then
+ BACKCOLOR=`gdmflexiserver --command="GET_CONFIG greeter/BackgroundColor $DISPLAY"`
+
+ CHECKBACKCOLOR=`echo $BACKCOLOR | sed 's/^\([^ ]*\) .*$/\1/'`
+ if [ "x$CHECKBACKCOLOR" = "xOK" ]; then
+ BACKCOLOR=`echo $BACKCOLOR | sed 's/^.* \(.*\)$/\1/'`
+ else
+ BACKCOLOR=""
+ fi
+ fi
+ fi
+
+ # Default value
+ if [ "x$BACKCOLOR" = "x" ]; then
+ BACKCOLOR="#76848F"
+ fi
+
+ "$XSETROOT" -cursor_name left_ptr -solid "$BACKCOLOR"
+fi
+
+
+SESSREG=`gdmwhich sessreg`
+if [ "x$SESSREG" != "x" ] ; then
+ # some output for easy debugging
+ echo "$0: Registering your session with wtmp and utmp"
+ echo "$0: running: $SESSREG -a -w /var/log/wtmp -u /var/run/utmp -x \"$X_SERVERS\" -h \"$REMOTE_HOST\" -l \"$DISPLAY\" \"$USER\""
+
+ exec "$SESSREG" -a -w /var/log/wtmp -u /var/run/utmp -x "$X_SERVERS" -h "$REMOTE_HOST" -l "$DISPLAY" "$USER"
+ # this is not reached
+fi
+
+# some output for easy debugging
+echo "$0: could not find the sessreg utility, cannot update wtmp and utmp"
+exit 0