The X Keyboard (XKB) Extension essentially replaces the core protocol definition of a keyboard. The extension makes it possible to specify clearly and explicitly most aspects of keyboard behaviour on a per-key basis, and to track more closely the logical and physical state of a keyboard. It also includes a number of keyboard controls designed to make keyboards more accessible to people with physical impairments.
There are five components that define a complete keyboard mapping: symbols, geometry, keycodes, compat, and types; these five components can be combined together using the 'rules' component of the database provided by this project, xkeyboard-config.
The complete specification for the XKB Extension can be found here:
http://xfree86.org/current/XKBproto.pdf
This project provides a consistent, well-structured, frequently released, open source database of keyboard configuration data. The project is targeted to XKB-based systems.
For XKB configuration information, see:
docs/README.config
For information on how to enhance the database itself, see:
docs/README.enhancing
For information on how to replace an older XKB configuration database with the one provided by this project, see:
docs/HOWTO.transition
For guidelines to making contributions to this project, see:
http://www.freedesktop.org/wiki/Software/XKeyboardConfig/Rules
To submit bug reports (and patches), please use the issue system in freedesktop.org's gitlab instance:
https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/issues