Keysyms: Update using latest xorgproto
For the sake of compatibility, this reintroduce some deleted keysyms and postpone the effective deprecation of others. xorgproto commit: fe12c5102762afcbf852e50dcbbdea2ef625570c Also added tests for some canonical names.master
parent
efdb05d193
commit
382f6d2d5e
|
@ -115,6 +115,7 @@ SOFTWARE.
|
|||
* that match one of these Perl regular expressions:
|
||||
*
|
||||
* /^\#define XKB_KEY_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*\/\* U\+([0-9A-F]{4,6}) (.*) \*\/\s*$/
|
||||
* /^\#define XKB_KEY_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*\/\*<U\+([0-9A-F]{4,6}) (.*)>\*\/\s*$/
|
||||
* /^\#define XKB_KEY_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*\/\*\(U\+([0-9A-F]{4,6}) (.*)\)\*\/\s*$/
|
||||
* /^\#define XKB_KEY_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*(\/\*\s*(.*)\s*\*\/)?\s*$/
|
||||
*
|
||||
|
@ -138,6 +139,24 @@ SOFTWARE.
|
|||
* - the protocol specification in specs/keysyms.xml in this repo
|
||||
* https://gitlab.freedesktop.org/xorg/proto/xorgproto
|
||||
*
|
||||
* Before removing or changing the order of the keysyms, please consider
|
||||
* the following: it is very difficult to know what keysyms are used and
|
||||
* how.
|
||||
*
|
||||
* - A sandboxed application may have incompatibilities with the host
|
||||
* system. For example, if new keysym name is introduced and is made
|
||||
* the canonical name, then an application with an older keysym parser
|
||||
* will not be able to parse the new name.
|
||||
* - Customization of keyboard layout and Compose files are two popular
|
||||
* use cases. Checking the standard keyboard layout database xkeyboard-config
|
||||
* https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config
|
||||
* and the standard Compose files in libx11
|
||||
* https://gitlab.freedesktop.org/xorg/lib/libx11 is a mandatory
|
||||
* step, but may *not* be enough for a proper impact assessment for
|
||||
* e.g. keysyms removals.
|
||||
*
|
||||
* Therefore, it is advised to proceed to no removal and to make a new
|
||||
* name canonical only 10 years after its introduction.
|
||||
*/
|
||||
|
||||
#define XKB_KEY_VoidSymbol 0xffffff /* Void symbol */
|
||||
|
@ -439,6 +458,12 @@ SOFTWARE.
|
|||
#define XKB_KEY_dead_belowcomma 0xfe6e
|
||||
#define XKB_KEY_dead_currency 0xfe6f
|
||||
|
||||
/* extra dead elements for German T3 layout */
|
||||
#define XKB_KEY_dead_lowline 0xfe90
|
||||
#define XKB_KEY_dead_aboveverticalline 0xfe91
|
||||
#define XKB_KEY_dead_belowverticalline 0xfe92
|
||||
#define XKB_KEY_dead_longsolidusoverlay 0xfe93
|
||||
|
||||
/* dead vowels for universal syllable entry */
|
||||
#define XKB_KEY_dead_a 0xfe80
|
||||
#define XKB_KEY_dead_A 0xfe81
|
||||
|
@ -450,10 +475,10 @@ SOFTWARE.
|
|||
#define XKB_KEY_dead_O 0xfe87
|
||||
#define XKB_KEY_dead_u 0xfe88
|
||||
#define XKB_KEY_dead_U 0xfe89
|
||||
#define XKB_KEY_dead_small_schwa 0xfe8a /* deprecated, use dead_schwa instead */
|
||||
#define XKB_KEY_dead_capital_schwa 0xfe8b /* deprecated, use dead_SCHWA instead */
|
||||
#define XKB_KEY_dead_schwa 0xfe8a
|
||||
#define XKB_KEY_dead_SCHWA 0xfe8b
|
||||
#define XKB_KEY_dead_small_schwa 0xfe8a /* deprecated, remove in 2025 */
|
||||
#define XKB_KEY_dead_capital_schwa 0xfe8b /* deprecated, remove in 2025 */
|
||||
|
||||
#define XKB_KEY_dead_greek 0xfe8c
|
||||
#define XKB_KEY_dead_hamza 0xfe8d
|
||||
|
@ -668,8 +693,8 @@ SOFTWARE.
|
|||
#define XKB_KEY_diaeresis 0x00a8 /* U+00A8 DIAERESIS */
|
||||
#define XKB_KEY_copyright 0x00a9 /* U+00A9 COPYRIGHT SIGN */
|
||||
#define XKB_KEY_ordfeminine 0x00aa /* U+00AA FEMININE ORDINAL INDICATOR */
|
||||
#define XKB_KEY_guillemotleft 0x00ab /* deprecated misspelling. Use guillemetleft instead. */
|
||||
#define XKB_KEY_guillemetleft 0x00ab /* U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */
|
||||
#define XKB_KEY_guillemotleft 0x00ab /* deprecated misspelling */
|
||||
#define XKB_KEY_notsign 0x00ac /* U+00AC NOT SIGN */
|
||||
#define XKB_KEY_hyphen 0x00ad /* U+00AD SOFT HYPHEN */
|
||||
#define XKB_KEY_registered 0x00ae /* U+00AE REGISTERED SIGN */
|
||||
|
@ -684,10 +709,10 @@ SOFTWARE.
|
|||
#define XKB_KEY_periodcentered 0x00b7 /* U+00B7 MIDDLE DOT */
|
||||
#define XKB_KEY_cedilla 0x00b8 /* U+00B8 CEDILLA */
|
||||
#define XKB_KEY_onesuperior 0x00b9 /* U+00B9 SUPERSCRIPT ONE */
|
||||
#define XKB_KEY_masculine 0x00ba /* deprecated inconsistent name (see ordfeminine), use ordmasculine instead */
|
||||
#define XKB_KEY_ordmasculine 0x00ba /* U+00BA MASCULINE ORDINAL INDICATOR */
|
||||
#define XKB_KEY_masculine 0x00ba /* deprecated inconsistent name */
|
||||
#define XKB_KEY_guillemotright 0x00bb /* deprecated misspelling. Use guillemotright instead. */
|
||||
#define XKB_KEY_guillemetright 0x00bb /* U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */
|
||||
#define XKB_KEY_guillemotright 0x00bb /* deprecated misspelling */
|
||||
#define XKB_KEY_onequarter 0x00bc /* U+00BC VULGAR FRACTION ONE QUARTER */
|
||||
#define XKB_KEY_onehalf 0x00bd /* U+00BD VULGAR FRACTION ONE HALF */
|
||||
#define XKB_KEY_threequarters 0x00be /* U+00BE VULGAR FRACTION THREE QUARTERS */
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
/** Maximum keysym value with explicit name */
|
||||
#define XKB_KEYSYM_MAX_EXPLICIT 0x1008ffb8
|
||||
/** Count of keysym value with explicit name */
|
||||
#define XKB_KEYSYM_COUNT_EXPLICIT 2442
|
||||
#define XKB_KEYSYM_COUNT_EXPLICIT 2446
|
||||
/** Offset to use when converting a Unicode code point to a keysym */
|
||||
#define XKB_KEYSYM_UNICODE_OFFSET 0x01000000
|
||||
/** Minimum Unicode keysym. NOTE: code points in 0..0xff cannot be converted. */
|
||||
|
|
7706
src/ks_tables.h
7706
src/ks_tables.h
File diff suppressed because it is too large
Load Diff
|
@ -1093,7 +1093,7 @@ xkb_symbols "pc_us_ru_2_ca(multix)_3_de(neo)_4_inet(evdev)" {
|
|||
symbols[Group1]= [ 2, at ],
|
||||
symbols[Group2]= [ 2, quotedbl ],
|
||||
symbols[Group3]= [ 2, at, at, NoSymbol, twosuperior, NoSymbol, NoSymbol, NoSymbol ],
|
||||
symbols[Group4]= [ 2, section, twosuperior, twosubscript, ordmasculine, NoSymbol, logicalor, NoSymbol ]
|
||||
symbols[Group4]= [ 2, section, twosuperior, twosubscript, masculine, NoSymbol, logicalor, NoSymbol ]
|
||||
};
|
||||
key <AE03> {
|
||||
type[Group3]= "EIGHT_LEVEL_SEMIALPHABETIC",
|
||||
|
@ -1109,7 +1109,7 @@ xkb_symbols "pc_us_ru_2_ca(multix)_3_de(neo)_4_inet(evdev)" {
|
|||
symbols[Group1]= [ 4, dollar ],
|
||||
symbols[Group2]= [ 4, semicolon ],
|
||||
symbols[Group3]= [ 4, dollar, cent, NoSymbol, onequarter, currency, NoSymbol, NoSymbol ],
|
||||
symbols[Group4]= [ 4, guillemetright, U203A, femalesymbol, NoSymbol, NoSymbol, U22A5, NoSymbol ]
|
||||
symbols[Group4]= [ 4, guillemotright, U203A, femalesymbol, NoSymbol, NoSymbol, U22A5, NoSymbol ]
|
||||
};
|
||||
key <AE05> {
|
||||
type[Group3]= "EIGHT_LEVEL_SEMIALPHABETIC",
|
||||
|
@ -1117,7 +1117,7 @@ xkb_symbols "pc_us_ru_2_ca(multix)_3_de(neo)_4_inet(evdev)" {
|
|||
symbols[Group1]= [ 5, percent ],
|
||||
symbols[Group2]= [ 5, percent ],
|
||||
symbols[Group3]= [ 5, percent, currency, NoSymbol, onehalf, threeeighths, NoSymbol, NoSymbol ],
|
||||
symbols[Group4]= [ 5, guillemetleft, U2039, malesymbol, periodcentered, NoSymbol, U2221, NoSymbol ]
|
||||
symbols[Group4]= [ 5, guillemotleft, U2039, malesymbol, periodcentered, NoSymbol, U2221, NoSymbol ]
|
||||
};
|
||||
key <AE06> {
|
||||
type[Group3]= "EIGHT_LEVEL_SEMIALPHABETIC",
|
||||
|
@ -1442,7 +1442,7 @@ xkb_symbols "pc_us_ru_2_ca(multix)_3_de(neo)_4_inet(evdev)" {
|
|||
type[Group4]= "EIGHT_LEVEL_SEMIALPHABETIC",
|
||||
symbols[Group1]= [ z, Z ],
|
||||
symbols[Group2]= [ Cyrillic_ya, Cyrillic_YA ],
|
||||
symbols[Group3]= [ z, Z, guillemetleft, NoSymbol ],
|
||||
symbols[Group3]= [ z, Z, guillemotleft, NoSymbol ],
|
||||
symbols[Group4]= [ udiaeresis, Udiaeresis, numbersign, NoSymbol, Escape, Escape, union, NoSymbol ]
|
||||
};
|
||||
key <AB02> {
|
||||
|
@ -1452,7 +1452,7 @@ xkb_symbols "pc_us_ru_2_ca(multix)_3_de(neo)_4_inet(evdev)" {
|
|||
type[Group4]= "EIGHT_LEVEL_SEMIALPHABETIC",
|
||||
symbols[Group1]= [ x, X ],
|
||||
symbols[Group2]= [ Cyrillic_che, Cyrillic_CHE ],
|
||||
symbols[Group3]= [ x, X, guillemetright, NoSymbol ],
|
||||
symbols[Group3]= [ x, X, guillemotright, NoSymbol ],
|
||||
symbols[Group4]= [ odiaeresis, Odiaeresis, dollar, U03F5, Tab, Tab, intersection, NoSymbol ]
|
||||
};
|
||||
key <AB03> {
|
||||
|
@ -1502,7 +1502,7 @@ xkb_symbols "pc_us_ru_2_ca(multix)_3_de(neo)_4_inet(evdev)" {
|
|||
type[Group4]= "EIGHT_LEVEL_SEMIALPHABETIC",
|
||||
symbols[Group1]= [ m, M ],
|
||||
symbols[Group2]= [ Cyrillic_softsign, Cyrillic_SOFTSIGN ],
|
||||
symbols[Group3]= [ m, M, mu, NoSymbol, mu, ordmasculine, NoSymbol, NoSymbol ],
|
||||
symbols[Group3]= [ m, M, mu, NoSymbol, mu, masculine, NoSymbol, NoSymbol ],
|
||||
symbols[Group4]= [ m, M, percent, Greek_mu, KP_1, KP_1, ifonlyif, NoSymbol ]
|
||||
};
|
||||
key <AB08> {
|
||||
|
|
|
@ -464,6 +464,13 @@ main(void)
|
|||
assert(test_keysym(0x0, "NoSymbol"));
|
||||
assert(test_keysym(0x1008FE20, "XF86Ungrab"));
|
||||
assert(test_keysym(XKB_KEYSYM_UNICODE_OFFSET, "0x01000000"));
|
||||
/* Canonical names */
|
||||
assert(test_keysym(XKB_KEY_Henkan, "Henkan_Mode"));
|
||||
assert(test_keysym(XKB_KEY_ISO_Group_Shift, "Mode_switch"));
|
||||
assert(test_keysym(XKB_KEY_dead_perispomeni, "dead_tilde"));
|
||||
assert(test_keysym(XKB_KEY_guillemetleft, "guillemotleft"));
|
||||
assert(test_keysym(XKB_KEY_ordmasculine, "masculine"));
|
||||
assert(test_keysym(XKB_KEY_Greek_lambda, "Greek_lamda"));
|
||||
/* Min Unicode */
|
||||
assert(test_keysym(XKB_KEYSYM_UNICODE_MIN, "U0100"));
|
||||
assert(test_keysym(0x01001234, "U1234"));
|
||||
|
|
Loading…
Reference in New Issue