--- /dev/null
+#!/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