Xmonad/Key codes
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*).