Skip to content

concussious/libxkbcommon

 
 

Repository files navigation

libxkbcommon

libxkbcommon is a keyboard keymap compiler and support library which processes a reduced subset of keymaps as defined by the XKB (X Keyboard Extension) specification. It also contains a module for handling Compose and dead keys, a separate registry library for listing available keyboard layouts and a fair set of CLI tools.

Quick Guide

Building

libxkbcommon is built with Meson:

meson setup build
meson compile -C build
meson test -C build # Run the tests.

To build for use with Wayland, you can disable X11 support while still using the X11 keyboard configuration resource files thusly:

meson setup build \
      -Denable-x11=false \
      -Dxkb-config-root=/usr/share/X11/xkb \
      -Dx-locale-root=/usr/share/X11/locale
meson compile -C build
Complete list of user options @include meson_options.txt

API

While libxkbcommon’s API is somewhat derived from the classic XKB API as found in X11/extensions/XKB.h and friends, it has been substantially reworked to expose fewer internal details to clients.

See the API Documentation.

Tools

Libxkbcommon has a fair set of CLI tools, grouped under the xkbcli application:

xkbcli compile-keymap
Compile an XKB keymap
xkbcli compile-compose
Compile a compose file
xkbcli how-to-type
Show how to type a given Unicode codepoint
xkbcli interactive-wayland
Interactive debugger for XKB keymaps for Wayland
xkbcli interactive-x11
Interactive debugger for XKB keymaps for X11
xkbcli interactive-evdev
Interactive debugger for XKB keymaps for evdev
xkbcli dump-keymap-wayland
Dump a XKB keymap from a Wayland compositor
xkbcli dump-keymap-x11
Dump a XKB keymap from a X server
xkbcli list
List available layouts and more

It may require the installation of the package libxkbcommon-tools or similar name.

Dataset

libxkbcommon does not distribute a keyboard layout dataset itself, other than for testing purposes. The most common dataset is xkeyboard-config, which is used by all current distributions for their X11 XKB data. Further information on xkeyboard-config is available at its homepage and at its repository.

The dataset for Compose is distributed in libX11, as part of the X locale data.

Relation to X11

See Compatibility notes.

Development

An project’s homepage can be found at https://xkbcommon.org.

xkbcommon is maintained in git at: https://github.com/xkbcommon/libxkbcommon

Patches are always welcome, and may be sent to either xorg-devel@lists.x.org or wayland-devel@lists.freedesktop.org or in a GitHub pull request.

Bug reports (and usage questions) are also welcome, and may be filed at GitHub.

The maintainers are:

License

See the LICENSE file.

Credits

Many thanks are due to Dan Nicholson for his heroic work in getting xkbcommon off the ground initially.

About

keymap handling library for toolkits and window systems

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 85.1%
  • Python 9.8%
  • Meson 1.5%
  • Yacc 1.5%
  • Jinja 1.3%
  • Roff 0.5%
  • Shell 0.3%