• Show log

    Commit

  • Hash : 9b0b8c68
    Author : Pierre Le Marre
    Date : 2025-04-15T19:53:28

    xkbcomp: Stricter handling of default map include
    
    Before this commit, including a *default* map, i.e. without an explicit
    section name (e.g. `include "au"` vs `include "au(basic)"`) would match
    the first section of the first matching file in the XKB include paths,
    even if this section is not an *explicit* default map (i.e. tagged with
    `default`) but an *implicit* default map (i.e. the first map of the
    file, i.e. a weak match).
    
    It makes user configuration risky: say a user wants to create a custom
    version `au(custom)` of the `au` layout:
    - `./config/xkb/symbols/au`: custom layout in section “custom”.
    - `/usr/share/X11/xkb/symbols/au`: system layout, with *default* section
      “basic”.
    
    In this setup *any* layout that imports the default map from `au` would
    in fact import the *implicit* default map `au(custom)` instead of the
    *explicit* default map `au(basic)`.
    
    This incorrect behavior may thus break setups with multiple layouts.
    This is especially true for symbols files such as: `pc`, `us` or `latin`.
    
    Fixed by trying harder to found the exact default map, defaulting to the
    old behavior (weak match) only if no *explicit* default map (exact match)
    has been found in the XKB include paths.
    

  • Properties

  • Git HTTP https://git.kmx.io/kc3-lang/libxkbcommon.git
    Git SSH git@git.kmx.io:kc3-lang/libxkbcommon.git
    Public access ? public
    Description

    keymap handling library for toolkits and window systems

    Users
    thodg_m kc3_lang_org thodg_w www_kmx_io thodg thodg_l
    Tags

  • README.md

  • Fragments for the changelog

    This directory contains fragments for the future NEWS file.

    Introduction

    We use <code>towncrier</code> to produce useful, summarized news files.

    There are 3 sections types:

    • API: changes/api
    • Tools: changes/tools
    • Build System: changes/build

    There are 3 news fragments types:

    • Breaking changes: .breaking
    • New: .feature
    • Fixes: .bugfix

    Adding a fragment

    Add a short description of the change in a file changes/SECTION/ID.FRAGMENT.md, where:

    • SECTION and FRAGMENT values are described in the previous section.
    • ID is the corresponding issue identifier on Github, if relevant. If there is no such issue, then ID should start with + and some identifier that make the file unique in the directory.

    Examples:

    • A bug fix for the issue #463 is an API change, so the corresponding file should be named changes/api/463.bugfix.md.
    • A new feature for tools like #448 corresponds to e.g. changes/tools/+add-verbose-opt.feature.md.

    Guidelines for the fragment files:

    • Use the Markdown markup.
    • Use past tense, e.g. “Fixed a segfault”.
    • Look at the previous releases NEWS file for further examples.

    Build the changelog

    Install <code>towncrier</code> from Pypi:

    python3 -m pip install towncrier

    Then build the changelog:

    # Only check the result. Useful after adding a new fragment.
    towncrier build --draft --version 1.8.0
    # Write the changelog & delete the news fragments
    towncrier build --yes --version 1.8.0