#!/bin/sh # Stolen from the debian kdm setup, aren't I sneaky # Plus a lot of fun stuff added # -George PATH=/usr/bin/X11:/usr/X11R6/bin:/opt/X11R6/bin:$PATH 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 unset IFS echo "$OUTPUT" } 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 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 if [ -x /usr/bin/numlockx ]; then /usr/bin/numlockx on fi exit 0