USBHotkey allows you to catch USB keyboard events (key press and release
events) and transform them into X11 keyboard events using a ruby script.
This provides a mechanism for creating keymaps that can be more
complicated than the standard table-based keymap approach of X11.


WWW: http://usbhotkey.sourceforge.net/