summaryrefslogtreecommitdiff
path: root/data/Init.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/Init.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/Init.in')
-rw-r--r--data/Init.in89
1 files changed, 89 insertions, 0 deletions
diff --git a/data/Init.in b/data/Init.in
new file mode 100644
index 00000000..16ba078b
--- /dev/null
+++ b/data/Init.in
@@ -0,0 +1,89 @@
+#!/bin/sh
+# Stolen from the debian kdm setup, aren't I sneaky
+# Plus a lot of fun stuff added
+# -George
+
+PATH=@X_PATH@:$PATH
+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"
+}
+
+sysresources=/etc/X11/Xresources
+
+# merge in defaults
+if [ -f "$sysresources" ]; then
+ xrdb -merge "$sysresources"
+fi
+
+sysmodmap=/etc/X11/Xmodmap
+
+XMODMAP=`gdmwhich xmodmap`
+if [ x$XMODMAP != x ] ; then
+ if [ x$GDM_PARENT_DISPLAY = x ]; then
+ if [ -f $sysmodmap ]; then
+ $XMODMAP $sysmodmap
+ fi
+ else
+ ( DISPLAY=$GDM_PARENT_DISPLAY XAUTHORITY=$GDM_PARENT_XAUTHORITY $XMODMAP -pke ) | $XMODMAP -
+ fi
+
+ #
+ # Switch Sun's Alt and Meta mod mappings
+ #
+
+ UNAME=`gdmwhich uname`
+ PROCESSOR=`$UNAME -p`
+ if [ x$PROCESSOR = xsparc ]; then
+ if $XMODMAP | /usr/bin/grep mod4 | /usr/bin/grep Alt > /dev/null 2>/dev/null
+ then
+ $XMODMAP -e "clear Mod1" \
+ -e "clear Mod4" \
+ -e "add Mod1 = Alt_L" \
+ -e "add Mod1 = Alt_R" \
+ -e "add Mod4 = Meta_L" \
+ -e "add Mod4 = Meta_R"
+ fi
+ fi
+fi
+
+SETXKBMAP=`gdmwhich setxkbmap`
+if [ x$SETXKBMAP != x ] ; then
+ # FIXME: is this all right? Is this completely on crack?
+ # What this does is move the xkb configuration from the GDM_PARENT_DISPLAY
+ # FIXME: This should be done in code. Or there must be an easier way ...
+ if [ -n "$GDM_PARENT_DISPLAY" ]; then
+ XKBSETUP=`( DISPLAY=$GDM_PARENT_DISPLAY XAUTHORITY=$GDM_PARENT_XAUTHORITY $SETXKBMAP -v )`
+ if [ -n "$XKBSETUP" ]; then
+ XKBKEYMAP=`echo "$XKBSETUP" | grep '^keymap' | awk '{ print $2 }'`
+ XKBTYPES=`echo "$XKBSETUP" | grep '^types' | awk '{ print $2 }'`
+ XKBCOMPAT=`echo "$XKBSETUP" | grep '^compat' | awk '{ print $2 }'`
+ XKBSYMBOLS=`echo "$XKBSETUP" | grep '^symbols' | awk '{ print $2 }'`
+ XKBGEOMETRY=`echo "$XKBSETUP" | grep '^geometry' | awk '{ print $2 }'`
+ if [ -n "$XKBKEYMAP" ]; then
+ $SETXKBMAP -keymap "$XKBKEYMAP"
+ elif [ -n "$XKBTYPES" -a -n "$XKBCOMPAT" -a -n "$XKBSYMBOLS" -a -n "$XKBGEOMETRY" ]; then
+ $SETXKBMAP -types "$XKBTYPES" -compat "$XKBCOMPAT" -symbols "$XKBSYMBOLS" -geometry "$XKBGEOMETRY"
+ elif [ -n "$XKBTYPES" -a -n "$XKBCOMPAT" -a -n "$XKBSYMBOLS" ]; then
+ $SETXKBMAP -types "$XKBTYPES" -compat "$XKBCOMPAT" -symbols "$XKBSYMBOLS"
+ elif [ -n "$XKBSYMBOLS" ]; then
+ $SETXKBMAP -symbols "$XKBSYMBOLS"
+ fi
+ fi
+ fi
+fi
+
+exit 0