/etc/gdm/PreSession

From Earlham CS Department
Jump to navigation Jump to search
  1. !/bin/sh
  2. Note that output goes into the .xsession-errors file for easy debugging

PATH="/usr/bin:$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"

}

  1. 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

exit 0