#!/bin/bash # Set the Control/Win key swap state. This is a hack of a script. # If the CM Storm keyboard is present, swap Control and Win (Super) keys. If # this keyboard is not present, unswap. Steve's CM Storm keyboard has had its # Control and Win keycaps swapped, as the proper Control key locations are, on # this keyboard, where the Windows keys are by default. swapctrl() { xmodmap -e "clear Control" xmodmap -e "clear Mod4" xmodmap -e "keycode 133 = Control_L NoSymbol Control_L" xmodmap -e "keycode 37 = Super_L NoSymbol Super_L" xmodmap -e "keycode 134 = Control_R NoSymbol Control_R" xmodmap -e "keycode 105 = Super_R NoSymbol Super_R" xmodmap -e "keycode 206 =" xmodmap -e "add Control = Control_L Control_R" xmodmap -e "add Mod4 = Super_L Super_R" } unswapctrl() { xmodmap -e "clear Control" xmodmap -e "clear Mod4" xmodmap -e "keycode 37 = Control_L NoSymbol Control_L" xmodmap -e "keycode 133 = Super_L NoSymbol Super_L" xmodmap -e "keycode 206 = NoSymbol Super_L NoSymbol Super_L" xmodmap -e "keycode 105 = Control_R NoSymbol Control_R" xmodmap -e "keycode 134 = Super_R NoSymbol Super_R" xmodmap -e "add Control = Control_L Control_R" xmodmap -e "add Mod4 = Super_L Super_R" } if xinput --list --name-only | grep -q "CM Storm"; then echo 'Swapping Control and Windows/Super keys' swapctrl else echo 'Restoring Control and Windows/Super keys' unswapctrl fi exit 0