-----Original Message-----
From: Dave Howorth <dhoworth@mrc-lmb.cam.ac.uk>
Its list of keyboards is not very up to date, so special keys like "Mail" and "WWW" (on my Logitech keyboard) aren't handled.
That's bizarre isn't it? You'd think it would show you the keypress and say something like "unexpected keypress ....
Actually, that is exactly what happens, but the message comes from the kernel and not the tool. If you look in the log file with dmesg you will see a message indicating that the kernel has detected an unknown keypress, and then it tells you how to make the keypress known to the kernel with setkeycodes. Usually, the message will say that an escaped key e0xx was not known. Take the last two digits of that code, convert from hex to dec, and add 128. An example: Unknown keypress e006. use setkeycodes like this: setkeycodes e006 134 Take the code you get from dmesg (e006), take the 06 (is 6 dec) and add 128 to get 134. See the man page for setkeycodes. Once the kernel knows about the keypress you'll see it in showkey, and xev. However, you'll still need to map the keycode from xev to a valid X keysym. You will notice that the X xev maps the key differently than the kernel... in other words the kernel will showkey 134, and the xev will maybe show a keycode of 166 (or whatever). This is because X maps to a different keytable than the kernel does. Anyway you'll need a .Xmodmap file that has a line like: keycode xxx = XF86WWW (or whatever).... The xxx comes from xev, and the XF86WWW (or whatever symbol) comes from /etc/X11/XKeysymDB