[ANNOUNCE] libxkbcommon 1.0.0
Ran Benita
ran at unusedvar.com
Sun Sep 6 19:18:39 UTC 2020
xkbcommon had its first commit on Jan 13, 2009, and its first release
with the current API on Oct 24, 2012. Since then, the API and ABI have
been stable. So it seems about time to call it 1.0.0!
This release contains a lot of work by Peter to start and fix a longstanding
deficiency of XKB -- that making any local customizations to the keyboard
layout required changing system-managed files. Now it is possible to add
custom layouts and options at the system (/etc) and user (~/.config) level,
at least when libxkbcommon is in use.
You can read more about it here:
https://xkbcommon.org/doc/current/md_doc_user-configuration.html
A new component library, libxkbregistry, makes part of this possible. Its
API is described here:
https://xkbcommon.org/doc/current/group__registry.html
We also have a new `xkbcli` command-line tool which makes it easy to debug
layouts and various other utilities.
See the full NEWS and tarball below.
libxkbcommon 1.0.0
==================
Note: this release is API and ABI compatible with previous releases -- the
major version bump is only an indication of stability.
- Add libxkbregistry as configure-time optional library. libxkbregistry is a C
library that lists available XKB models, layouts and variants for a given
ruleset. This is a separate library (libxkbregistry.so, pkgconfig file
xkbregistry.pc) and aimed at tools that provide a listing of available
keyboard layouts to the user. See the Documentation for details on the API.
Contributed by Peter Hutterer <@who-t.net>.
- Better support custom user configuration:
* Allow including XKB files from other paths.
Previously, a 'symbols/us' file in path A would shadow the same file in
path B. This is suboptimal, we rarely need to hide the system files - we
care mostly about *extending* them. By continuing to check other lookup
paths, we make it possible for a XDG_CONFIG_HOME/xkb/symbols/us file to
have sections including those from /usr/share/X11/xkb/symbols/us.
Note that this is not possible for rules files, which need to be manually
controlled to get the right bits resolved.
* Add /etc/xkb as extra lookup path for system data files.
This completes the usual triplet of configuration locations available for
most processes:
- vendor-provided data files in /usr/share/X11/xkb
- system-specific data files in /etc/xkb
- user-specific data files in $XDG_CONFIG_HOME/xkb
The default lookup order user, system, vendor, just like everything else
that uses these conventions.
For include directives in rules files, the '%E' resolves to that path.
* Add a new section to the documentation for custom user configuration.
Contributed by Peter Hutterer <@who-t.net>.
- Add an `xkbcli` command-line utility.
This tool offers various subcommands for introspection and debugging.
Currently the available subcommands are:
list
List available rules, models, layouts, variants and options
interactive-wayland
Interactive debugger for XKB keymaps for Wayland
interactive-x11
Interactive debugger for XKB keymaps for X11
interactive-evdev
Interactive debugger for XKB keymaps for evdev (Linux)
compile-keymap
Compile an XKB keymap
how-to-type
See separate entry below.
See the manpages for usage information.
Contributed by Peter Hutterer <@who-t.net>.
- Add `xkb_utf32_to_keysym()` to translate a Unicode codepoint to a keysym.
When a special keysym (`XKB_KEY_` constant) for the codepoint exists, it is
returned, otherwise the direct encoding is used, if permissible.
Contributed by Jaroslaw Kubik <@froglogic.com>.
- Add `xkb_keymap_key_get_mods_for_level()` which retrieves sets of modifiers
which produce a given shift level in a given key+layout.
Contributed by Jaroslaw Kubik <@froglogic.com>.
- Add `xkbcli how-to-type` command, which, using `xkb_utf32_to_keysym()`
and `xkb_keymap_key_get_mods_for_level()` and other APIs, prints out all
the ways to produce a given keysym.
For example, how to type `?` (codepoint 63) in a us,de keymap?
$ xkbcli how-to-type --layout us,de 63 | column -ts $'\t'
keysym: question (0x3f)
KEYCODE KEY NAME LAYOUT# LAYOUT NAME LEVEL# MODIFIERS
20 AE11 2 German 2 [ Shift ]
20 AE11 2 German 2 [ Shift Lock ]
61 AB10 1 English (US) 2 [ Shift ]
- Add a new section to the documentation describing the format of the XKB
rules file.
- Search for Compose in $XDG_CONFIG_HOME/XCompose (fallback to
~/.config/XCompose) before trying $HOME/.XCompose.
Note that libX11 still only searches in $HOME/.XCompose.
Contributed by Emmanuel Gil Peyrot <@linkmauve.fr>.
- Bump meson requirement to >= 0.49.0.
- Fix build with byacc.
- Fix building X11 tests on PE targets.
Contributed by Jon Turney <@dronecode.org.uk>
- The tests no longer rely on bash, only Python (which is already used by
meson).
- New API:
xkb_utf32_to_keysym
xkb_keymap_key_get_mods_for_level
XKB_KEY_XF86FullScreen
Tarball:
--------
git tag: xkbcommon-1.0.0
https://xkbcommon.org/download/libxkbcommon-1.0.0.tar.xz
SHA256: 41411ad253b99f59978b4c7b369ba0979b2301c0499a105a399445a56eb7621f libxkbcommon-1.0.0.tar.xz
Ran
More information about the wayland-devel
mailing list