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