Notes for the uninitiated: Creating custom keyboards
Printing geometry
xkbprint reads .xkm files, which are generated by xkbcomp.
xkbcomp reads .xkb files, which are located in the keymap directory. An example of printing a geometry is:
cd /usr/share/X11/xkb/keymap xkbcomp xfree86 -m dvorak xkbprint dvorak.xkm
This creates the files dvorak.xkm and dvorak.ps.
You may get an error such as:
Error: No Symbols named "pc105" in the include file "us" Exiting Abandoning symbols file "us"
This is because keymaps are an obsolete technique for specifying your keyboard to X. As such they have not been maintained as the other directories have evolved. You will have to either track down how the keymap names have changed in the other directories and update the keymap file (usually easy to do with a quick inspection and grep) or write your own little .xkb file (also not too hard to do).
showkey codes are different than xkb keycodes
showkey is used to display keyboard scancodes on the console, for use when creating keymaps for loadkeys. However the scancodes reported by showkey are different than the keycodes xkb reads. To inspect the keycodes as seen by xkb for individual keypresses, use xev from inside X.