[ANNOUNCE] libxkbcommon 1.10.0
Pierre Le Marre
dev at wismill.eu
Wed May 21 18:46:53 UTC 2025
Dear all,
I am pleased to announce the release of libxkbcommon 1.10.0:
https://github.com/xkbcommon/libxkbcommon/tree/xkbcommon-1.10.0
Changelog
---------
## API
### Breaking changes
- *Modifiers masks* handling has been refactored to properly handle virtual
modifiers. Modifier masks are now always considered as an *opaque encoding* of
the modifiers state:
- Modifiers masks should not be interpreted by other means than the provided API.
In particular, one should not assume that modifiers masks always denote the
modifiers *indexes* of the keymap.
- It enables using virtual modifiers with arbitrary mappings. E.g. one can now
reliably create virtual modifiers without relying on the legacy X11 mechanism,
that requires a careful use of keys’ real and virtual modmaps.
- It enables *interoperability* with further implementations of XKB.
- Changed *Compose* behavior so that sequences defined later always override
ones defined earlier, even if the new sequence is shorter.
Contributed by Jules Bertholet
### Deprecated
- Server applications using `xkb_state_update_mask()` should migrate to using
`xkb_state_update_latched_locked()` instead, for proper handling of the keyboard
state. ([#310](https://github.com/xkbcommon/libxkbcommon/issues/310))
- The following modifiers names in `xkbcommon/xkbcommon-names.h` are now deprecated
and will be removed in a future version:
- `XKB_MOD_NAME_ALT`: use `XKB_VMOD_NAME_ALT` instead.
- `XKB_MOD_NAME_LOGO`: use `XKB_VMOD_NAME_SUPER` instead.
- `XKB_MOD_NAME_NUM`: use `XKB_VMOD_NAME_NUM` instead.
([#538](https://github.com/xkbcommon/libxkbcommon/issues/538))
### New
- Added `xkb_state_update_latched_locked()` to update the keyboard state to change
the latched and locked state of the modifiers and layout.
This entry point is intended for *server* applications and should not be used
by *client* applications. This can be use for e.g. a GUI layout switcher.
([#310](https://github.com/xkbcommon/libxkbcommon/issues/310))
- Added `xkb_keymap_mod_get_mask()` to query the mapping of a modifier.
- Added `VoidAction()` action to match the keysym pair `NoSymbol`/`VoidSymbol`.
It enables erasing a previous action and breaks latches.
This is a libxkbcommon extension. When serializing it will be converted to
`LockControls(controls=none,affect=neither)` for backward compatibility.
([#622](https://github.com/xkbcommon/libxkbcommon/issues/622))
- Improved syntax errors in XKB files to include the expected/got tokens.
([#644](https://github.com/xkbcommon/libxkbcommon/issues/644))
### Fixes
- *Compose*: fixed sequence not fully overriden if the new sequence has no
keysym or string.
## Tools
### New
- `xkbcli-compile-keymap`: Added option `--modmaps` that prints modifiers mappings.
This is similar to the legacy `xmodmap -pm`.
## Build system
### Breaking changes
- Removed support for byacc -- use bison instead.
([#644](https://github.com/xkbcommon/libxkbcommon/issues/644))
Git tag:
--------
git tag: xkbcommon-1.10.0
git commit: 7888474d0296dcad50c9ba4adfdfdf2be02d35e1
Cheers,
Pierre Le Marre (aka Wismill)
More information about the wayland-devel
mailing list