Edit

kc3-lang/libxkbcommon/changes/+keysyms-string.feature.md

Branch :

  • Show log

    Commit

  • Author : Pierre Le Marre
    Date : 2025-03-31 08:01:29
    Hash : 66f71890
    Message : symbols: Enable writing keysyms list as UTF-8 strings Each Unicode code point of the string will be translated to their respective keysym, if possible. An empty string denotes `NoSymbol`. When such conversion is not possible, this will raise a syntax error. This introduces the following syntax: ```c // Empty string = `NoSymbol` key <1> {[""]}; // NoSymbol // Single code point = single keysym key <2> {["é"]}; // eacute // String = translate each code point to their respective keysym key <3> {["sßξك🎺"]}; // {s, ssharp, Greek_xi, Arabic_kaf, U1F3BA} // Mix string and keysyms key <4> {[{"ξ", Greek_kappa, "β"}]}; // { Greek_xi, Greek_kappa, Greek_beta} ``` It can also be used wherever a keysym is required, e.g. in `interpret` and `modifier_map` statements. In these cases a single keysym is expected, so the string should contain *exactly one* Unicode code point.

  • changes/+keysyms-string.feature.md
  • Enable to write keysyms as UTF-8-encoded strings:
    - *Single* Unicode code point `U+1F3BA` (TRUMPET) `"🎺"` is converted into a
      single keysym: `U1F3BA`.
    - *Multiple* Unicode code points are converted to a keysym *list* where it is
      allowed (i.e. in key symbols). E.g. `"J́"` is converted to U+004A LATIN CAPITAL
      LETTER J plus U+0301 COMBINING ACUTE ACCENT: `{J, U0301}`.
    - An empty string `""` denotes the keysym `NoSymbol`.