Xmonad/Key codes

From HaskellWiki

Haskell Graphics.X11 keysym definitions[edit]

First look to see if the XMonad.Util.EZConfig module supports the key you are binding. EZConfig bindings use a more human friendly syntax than the default raw haskell bindings. An example is:

-- See xmonad-extras for mpd and volume tools nicer
-- than a collection of shell scripts.
  ("M-S-<XF86AudioMute>", spawn "mute-it.sh")
Here is the xmonad-extras package referred to in the comments above.

If you need something EZConfig doesn't provide, see the hackage X11 package page has links to the current Types and ExtraTypes.* modules where keysyms are defined. Types contains the basics, media keys are in ExtraTypes.XF86, and international keyboard symbols are in Extra.Types.XorgDefault

You can also search in /usr/include/X11/keysymdef.h and lower-case the first character (XK* becomes xK*).