Go to file
Ran Benita 18d6aebec0 keysym: add xkb_keysym_to_{lower,upper} to public API
These can be useful in some odd cases.

There is already an implementation (+ tests) for internal use, so all
that's needed is to export them.

If xkbcommon were to provide a way to convert a Unicode codepoint to a
keysym, this could have been implemented externally as follows:

    uint32_t codepoint = xkb_keysym_to_utf32(keysym);
    uint32_t upper_codepoint = my_unicode_library_to_upper(codepoint);
    xkb_keysym_t upper_keysym = theoretical_xkb_keysym_from_utf32(upper_codepoint);

However keysym -> codepoint is not injective so such a function is not
possible strictly speaking.

Signed-off-by: Ran Benita <ran234@gmail.com>
2017-12-11 23:01:18 +02:00
bench build: remove unneeded preprocessor include flags 2017-07-31 15:55:48 +03:00
doc build: make doxygen run from the source tree 2017-08-01 23:32:15 +03:00
m4 Remove m4/.gitkeep 2014-02-08 22:44:59 +02:00
scripts build: make doxygen run from the source tree 2017-08-01 23:32:15 +03:00
src keysym: add xkb_keysym_to_{lower,upper} to public API 2017-12-11 23:01:18 +02:00
test test/data: sync with xkeyboard-config 2.22 2017-12-03 13:07:21 +02:00
xkbcommon keysym: add xkb_keysym_to_{lower,upper} to public API 2017-12-11 23:01:18 +02:00
.autom4te.cfg build: use build-aux as autom4te cache directory 2013-08-15 09:58:50 +03:00
.gitignore build: add meson build system 2017-07-31 20:53:39 +03:00
.travis.yml build: add meson build system 2017-07-31 20:53:39 +03:00
.uncrustify.cfg Run source tree through uncrustify 2012-07-17 10:20:15 +01:00
LICENSE test: Add interactive-wayland 2016-04-12 12:15:04 +01:00
Makefile.am build/autotools: fix doc installation 2017-08-04 15:43:13 +03:00
NEWS keysym: add xkb_keysym_to_{lower,upper} to public API 2017-12-11 23:01:18 +02:00
PACKAGING build: add meson build system 2017-07-31 20:53:39 +03:00
README.md build: add meson build system 2017-07-31 20:53:39 +03:00
autogen.sh autogen: use --force instead of --symlink 2012-10-24 00:59:37 +11:00
configure.ac build: add missing configure function checks for test/interactive-wayland 2017-08-16 20:23:54 +03:00
meson.build build/meson: require meson >= 0.41.0 2017-09-10 09:18:54 +03:00
meson_options.txt build: add meson build system 2017-07-31 20:53:39 +03:00
xkbcommon-x11.map Change initial symbol file versions to V_0.5.0 2014-10-18 16:40:59 +03:00
xkbcommon-x11.pc.in x11: add XKB protocol keymap and state creation support 2014-02-02 11:16:40 +02:00
xkbcommon.map keysym: add xkb_keysym_to_{lower,upper} to public API 2017-12-11 23:01:18 +02:00
xkbcommon.pc.in Remove xproto and kbproto from pkg-config file 2012-04-09 14:04:25 +01:00

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 with Meson:

meson build
ninja -C build

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

meson build \
    -Denable-x11=false \
    -Dxkb-config-root=/usr/share/X11/xkb \
    -Dx-locale-root=/usr/share/X11/locale
ninja -C build

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.