#14015 closed enhancement (fixed)

libxkbcommon-1.0.0

Reported by: Bruce Dubbs Owned by: Bruce Dubbs
Priority: normal Milestone: 10.1
Component: BOOK Version: SVN
Severity: normal Keywords:
Cc:

Description

New major version.

Change History (3)

comment:1 by Bruce Dubbs, 11 months ago

Owner: changed from blfs-book to Bruce Dubbs
Status: newassigned

comment:2 by Bruce Dubbs, 11 months ago

libxkbcommon 1.0.0 - 2020-09-05

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.
  • 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.
  • 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.

  • 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.
  • Add xkb_keymap_key_get_mods_for_level() which retrieves sets of modifiers which produce a given shift level in a given key+layout.
  • 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.

  • Bump meson requirement to >= 0.49.0.
  • Fix build with byacc.
  • Fix building X11 tests on PE targets.
  • 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

comment:3 by Bruce Dubbs, 11 months ago

Resolution: fixed
Status: assignedclosed

Fixed at revision 23694.

Note: See TracTickets for help on using tickets.