1# libxkbcommon 2 3libxkbcommon is a keyboard keymap compiler and support library which 4processes a reduced subset of keymaps as defined by the XKB (X Keyboard 5Extension) specification. It also contains a module for handling Compose 6and dead keys and a separate library for listing available keyboard layouts. 7 8## Quick Guide 9 10See [Quick Guide](doc/quick-guide.md). 11 12## Building 13 14libxkbcommon is built with [Meson](http://mesonbuild.com/): 15 16 meson setup build 17 ninja -C build 18 ninja -C build test # Run the tests. 19 20To build for use with Wayland, you can disable X11 support while still 21using the X11 keyboard configuration resource files thusly: 22 23 meson setup build \ 24 -Denable-x11=false \ 25 -Dxkb-config-root=/usr/share/X11/xkb \ 26 -Dx-locale-root=/usr/share/X11/locale 27 ninja -C build 28 29## API 30 31While libxkbcommon's API is somewhat derived from the classic XKB API as found 32in X11/extensions/XKB.h and friends, it has been substantially reworked to 33expose fewer internal details to clients. 34 35See the [API Documentation](https://xkbcommon.org/doc/current/modules.html). 36 37## Dataset 38 39libxkbcommon does not distribute a keymap dataset itself, other than for 40testing purposes. The most common dataset is xkeyboard-config, which is used 41by all current distributions for their X11 XKB data. More information on 42xkeyboard-config is available here: 43 https://www.freedesktop.org/wiki/Software/XKeyboardConfig 44 45The dataset for Compose is distributed in libX11, as part of the X locale 46data. 47 48## Relation to X11 49 50See [Compatibility](doc/compat.md) notes. 51 52## Development 53 54An extremely rudimentary homepage can be found at 55 https://xkbcommon.org 56 57xkbcommon is maintained in git at 58 https://github.com/xkbcommon/libxkbcommon 59 60Patches are always welcome, and may be sent to either 61 <[email protected]> or <[email protected]> 62or in a [GitHub](https://github.com/xkbcommon/libxkbcommon) pull request. 63 64Bug reports (and usage questions) are also welcome, and may be filed at 65[GitHub](https://github.com/xkbcommon/libxkbcommon/issues). 66 67The maintainers are 68- Daniel Stone <[email protected]> 69- Ran Benita <[email protected]> 70 71## Credits 72 73Many thanks are due to Dan Nicholson for his heroic work in getting xkbcommon 74off the ground initially. 75