xref: /aosp_15_r20/external/libxkbcommon/doc/compat.md (revision 2b949d0487e80d67f1fda82db69e101e761f8064)
1*2b949d04SAndroid Build Coastguard Worker# Compatibility
2*2b949d04SAndroid Build Coastguard Worker
3*2b949d04SAndroid Build Coastguard WorkerRelative to the XKB 1.0 specification implemented in current X servers,
4*2b949d04SAndroid Build Coastguard Workerxkbcommon has removed support for some parts of the specification which
5*2b949d04SAndroid Build Coastguard Workerintroduced unnecessary complications.  Many of these removals were in fact
6*2b949d04SAndroid Build Coastguard Workernot implemented, or half-implemented at best, as well as being totally
7*2b949d04SAndroid Build Coastguard Workerunused in the standard dataset.
8*2b949d04SAndroid Build Coastguard Worker
9*2b949d04SAndroid Build Coastguard WorkerNotable removals:
10*2b949d04SAndroid Build Coastguard Worker- geometry support
11*2b949d04SAndroid Build Coastguard Worker  + there were very few geometry definitions available, and while
12*2b949d04SAndroid Build Coastguard Worker    xkbcommon was responsible for parsing this insanely complex format,
13*2b949d04SAndroid Build Coastguard Worker    it never actually did anything with it
14*2b949d04SAndroid Build Coastguard Worker  + hopefully someone will develop a companion library which supports
15*2b949d04SAndroid Build Coastguard Worker    keyboard geometries in a more useful format
16*2b949d04SAndroid Build Coastguard Worker- KcCGST (keycodes/compat/geometry/symbols/types) API
17*2b949d04SAndroid Build Coastguard Worker  + use RMLVO instead; KcCGST is now an implementation detail
18*2b949d04SAndroid Build Coastguard Worker  + including pre-defined keymap files
19*2b949d04SAndroid Build Coastguard Worker- XKM support
20*2b949d04SAndroid Build Coastguard Worker  + may come in an optional X11 support/compatibility library
21*2b949d04SAndroid Build Coastguard Worker- around half of the interpret actions
22*2b949d04SAndroid Build Coastguard Worker  + pointer device, message and redirect actions in particular
23*2b949d04SAndroid Build Coastguard Worker- non-virtual modifiers
24*2b949d04SAndroid Build Coastguard Worker  + core and virtual modifiers have been collapsed into the same
25*2b949d04SAndroid Build Coastguard Worker    namespace, with a 'significant' flag that largely parallels the
26*2b949d04SAndroid Build Coastguard Worker    core/virtual split
27*2b949d04SAndroid Build Coastguard Worker- radio groups
28*2b949d04SAndroid Build Coastguard Worker  + completely unused in current keymaps, never fully implemented
29*2b949d04SAndroid Build Coastguard Worker- overlays
30*2b949d04SAndroid Build Coastguard Worker  + almost completely unused in current keymaps
31*2b949d04SAndroid Build Coastguard Worker- key behaviors
32*2b949d04SAndroid Build Coastguard Worker  + used to implement radio groups and overlays, and to deal with things
33*2b949d04SAndroid Build Coastguard Worker    like keys that physically lock; unused in current keymaps
34*2b949d04SAndroid Build Coastguard Worker- indicator behaviours such as LED-controls-key
35*2b949d04SAndroid Build Coastguard Worker  + the only supported LED behaviour is key-controls-LED; again this
36*2b949d04SAndroid Build Coastguard Worker    was never really used in current keymaps
37*2b949d04SAndroid Build Coastguard Worker
38*2b949d04SAndroid Build Coastguard WorkerOn the other hand, some features and extensions were added.
39*2b949d04SAndroid Build Coastguard Worker
40*2b949d04SAndroid Build Coastguard WorkerNotable additions:
41*2b949d04SAndroid Build Coastguard Worker- 32-bit keycodes
42*2b949d04SAndroid Build Coastguard Worker- extended number of modifiers (planned)
43*2b949d04SAndroid Build Coastguard Worker- extended number of groups (planned)
44*2b949d04SAndroid Build Coastguard Worker- multiple keysyms per level
45*2b949d04SAndroid Build Coastguard Worker  + such levels are ignored by x11/xkbcomp.
46*2b949d04SAndroid Build Coastguard Worker- key names (e.g. `<AE11>`) can be longer than 4 characters.
47*2b949d04SAndroid Build Coastguard Worker
48*2b949d04SAndroid Build Coastguard Worker## Compose support
49*2b949d04SAndroid Build Coastguard Worker
50*2b949d04SAndroid Build Coastguard WorkerRelative to the standard implementation in libX11 (described in the
51*2b949d04SAndroid Build Coastguard WorkerCompose(5) man-page), some features are not supported:
52*2b949d04SAndroid Build Coastguard Worker
53*2b949d04SAndroid Build Coastguard Worker- the (! MODIFIER) syntax
54*2b949d04SAndroid Build Coastguard Worker    + parsed correctly but ignored.
55*2b949d04SAndroid Build Coastguard Worker- using modifier keysyms in Compose sequences
56*2b949d04SAndroid Build Coastguard Worker- several interactions with Braille keysyms
57