keymap handling library for toolkits and window systems
C C++ Yacc M4 Makefile Shell Python
Latest commit 877fe59 Jan 18, 2017 @bluetech bluetech Bump version to 0.7.1
Signed-off-by: Ran Benita <ran234@gmail.com>
Permalink
Failed to load latest commit information.
bench bench: fix compilation on hurd Sep 19, 2016
doc doc/compat: (! MODIFIER) syntax is parsed but ignored Sep 1, 2016
m4 Remove m4/.gitkeep Feb 8, 2014
src compose: remove the keysym_from_name cache Dec 2, 2016
test keysym: fix locale dependence in xkb_keysym_from_name() Dec 2, 2016
xkbcommon compose/doc: note that it is safe to pass the result of getenv() as l… Jan 15, 2017
.autom4te.cfg build: use build-aux as autom4te cache directory Aug 15, 2013
.gitignore gitignore: ignore generated wayland protocol stubs Apr 19, 2016
.travis.yml travis: remove --disable-x11 Mar 15, 2016
.uncrustify.cfg Run source tree through uncrustify Jul 17, 2012
Android.mk Android.mk: Remove unnecessary for loop Sep 11, 2012
LICENSE test: Add interactive-wayland Apr 12, 2016
Makefile.am test: Add interactive-wayland Apr 12, 2016
NEWS Update NEWS Jan 18, 2017
PACKAGING PACKAGING: Update for interactive-wayland Jun 21, 2016
README.md README: Add basic build directions Sep 16, 2016
autogen.sh autogen: use --force instead of --symlink Oct 23, 2012
configure.ac Bump version to 0.7.1 Jan 18, 2017
makekeys.py makekeys: mark keysym_names as static Jan 10, 2014
xkbcommon-uninstalled.pc.in build: drop the include/ directory Jul 22, 2012
xkbcommon-x11-uninstalled.pc.in x11: add XKB protocol keymap and state creation support Feb 2, 2014
xkbcommon-x11.map Change initial symbol file versions to V_0.5.0 Oct 18, 2014
xkbcommon-x11.pc.in x11: add XKB protocol keymap and state creation support Feb 2, 2014
xkbcommon.map state: allow different modes for calculating consumed modifiers Oct 31, 2016
xkbcommon.pc.in Remove xproto and kbproto from pkg-config file Apr 9, 2012

README.md

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.

Quick Guide

See Quick Guide.

Building

libxkbcommon is built the typical autoconf way:

./autogen.sh
make

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

./autogen.sh --disable-x11 \
    --with-xkb-config-root=/usr/share/X11/xkb \
    --with-x-locale-root=/usr/share/X11/locale
make

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.

Dataset

libxkbcommon does not distribute a keymap 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. More information on xkeyboard-config is available here: http://www.freedesktop.org/wiki/Software/XKeyboardConfig

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

Relation to X11

See Compatibility notes.

Development

An extremely rudimentary homepage can be found at http://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 through github.

Bug reports are also welcome, and may be filed either at Bugzilla https://bugs.freedesktop.org/describecomponents.cgi?product=libxkbcommon or Github https://github.com/xkbcommon/libxkbcommon/issues

The maintainers are

Credits

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