#!/bin/sh # Stolen from the debian kdm setup, aren't I sneaky # Plus a lot of fun stuff added # -George PATH="/usr/bin:$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 | grep mod4 | 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 # Hurray for awk XKBARGS=$( (DISPLAY=$GDM_PARENT_DISPLAY XAUTHORITY=$GDM_PARENT_XAUTHORITY $SETXKBMAP -v -v) | awk '/^model:/ { printf "-model %s ", $2 } /^layout:/ { printf "-layout %s ", $2 } /^variant:/ { printf "-variant %s ", $2 } /^options:/ { printf "-option %s ", $2}' ) XKBSETUP=`( DISPLAY=$GDM_PARENT_DISPLAY XAUTHORITY=$GDM_PARENT_XAUTHORITY $SETXKBMAP -v )` if [ -n "$XKBARGS" ]; then $SETXKBMAP $XKBARGS fi fi fi exit 0