#!/bin/bash

# electric modmap file

# autodetect
if [ -z "$1" ]; then
    LSUSB=`lsusb | grep 05a4:9861`
    LSUSB2=`lsusb | grep 05ac:0205`
    if [ -n "$LSUSB" ]; then
	KEYBOARD=usbmac
    elif [ -n "$LSUSB2" ]; then
	KEYBOARD=usbmac2
    elif [ "$HOSTNAME" == del ]; then
	KEYBOARD=windows
    elif [ "$HOSTNAME" == acer ]; then
	KEYBOARD=windows
    else
	KEYBOARD=pc
    fi
else
    KEYBOARD=$1
fi


# log
echo using $KEYBOARD keyboard


if [ "$KEYBOARD" == usbmac ]; then
    # usb mac keyboard
    ALT_L=115
    ALT_R=116
    SUPER_L=64
    MENU=113
elif [ "$KEYBOARD" == usbmac2 ]; then
    # usb mac keyboard
    ALT_L=64
    ALT_R=113
    SUPER_L=115
    MENU=117
elif [ "$KEYBOARD" == pc ]; then
    ALT_L=64
    ALT_R=108
    SUPER_L=37
    MENU=135
## this changed after some Xorg upgrade
#    ALT_R=113
#    MENU=117    
else
    # windows keyboard
    ALT_L=64
    ALT_R=113
    SUPER_L=37
    MENU=117    
fi

cat <<EOF | xmodmap -verbose -

! make caps lock == Control_L
clear Lock
clear Control
keycode 66 = Control_L
add Control = Control_L

! disable numlock
clear Mod2

! clear meta and super modifiers
clear mod1
clear mod2


keycode $ALT_L = Alt_L
keycode $ALT_R = Alt_R
keycode $SUPER_L = Super_L
keycode $MENU = Menu

add mod1 = Alt_L
add mod1 = Alt_R
add mod2 = Super_L


EOF

