diff options
author | William Jon McCann <mccann@jhu.edu> | 2007-11-01 18:03:28 +0000 |
---|---|---|
committer | William Jon McCann <mccann@src.gnome.org> | 2007-11-01 18:03:28 +0000 |
commit | c478401c3251b5a65dd37a890f886bcf4a5f25be (patch) | |
tree | b7a0e2c7b3d8e58a141e7a369373b3ec771e3868 /data/PreSession.in | |
parent | 3edf90cd18f2affe3027e2bc43bc611bd350d13f (diff) | |
download | gdm-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-x | data/PreSession.in | 84 |
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 |