Blame | Last modification | View Log | RSS feed
#!/bin/sh# Stolen from the debian kdm setup, aren't I sneaky# Plus a lot of fun stuff added# -GeorgePATH="/usr/bin:$PATH"OLD_IFS=$IFSgdmwhich () {COMMAND="$1"OUTPUT=IFS=:for dir in $PATHdoif test -x "$dir/$COMMAND" ; thenif test "x$OUTPUT" = "x" ; thenOUTPUT="$dir/$COMMAND"fifidoneIFS=$OLD_IFSecho "$OUTPUT"}sysresources=/etc/X11/Xresources# merge in defaultsif [ -f "$sysresources" ]; thenxrdb -merge "$sysresources"fisysmodmap=/etc/X11/XmodmapXMODMAP=`gdmwhich xmodmap`if [ "x$XMODMAP" != "x" ] ; thenif [ "x$GDM_PARENT_DISPLAY" = "x" ]; thenif [ -f $sysmodmap ]; then$XMODMAP $sysmodmapfielse( 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" ]; thenif $XMODMAP | /usr/bin/grep mod4 | /usr/bin/grep Alt > /dev/null 2>/dev/nullthen$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"fififiSETXKBMAP=`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" ]; thenXKBSETUP=`( DISPLAY=$GDM_PARENT_DISPLAY XAUTHORITY=$GDM_PARENT_XAUTHORITY $SETXKBMAP -v )`if [ -n "$XKBSETUP" ]; thenXKBKEYMAP=`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"fifififiexit 0