This document is one of those annoying things that you write because, try as you might, you just can't find any documentation on something.2It all started when I wanted to use my beloved ``Happy Hacking Keyboard''[4] with the A$^+$ language[1]. After a little futile hacking, I realised that, in order to use the funny A$^+$ symbols, I would need to properly map the HHK keyboard so that I could use the various meta-keys. Thus began my descent into hell.

The XKB protocol and library are quite well documented. However, there appears to be next to no information on the various files contained in /usr/X11R6/lib/X11/xkb/. These files are used by XFree86[8] (and others) to provide XKB information. They appear to follow, more or less, the conventions described in the XKB protocol document[3] but there are a number of bits and pieces that don't have any clear meaning.

This document is a result of hacking through the thickets of the XKB configuration files, the protocol documentation and the (undocumented) source of xkbcomp in a bout of reverse-engineering.3I can't pretend that it's complete or even correct. Any comments or corrections are most welcome.

Doug Palmer 2004-10-11