1# Compatibility 2 3Relative to the XKB 1.0 specification implemented in current X servers, 4xkbcommon has removed support for some parts of the specification which 5introduced unnecessary complications. Many of these removals were in fact 6not implemented, or half-implemented at best, as well as being totally 7unused in the standard dataset. 8 9Notable 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 38On the other hand, some features and extensions were added. 39 40Notable additions: 41- 32-bit keycodes 42- extended number of modifiers (planned) 43- extended number of groups (planned) 44- multiple keysyms per level 45 + such levels are ignored by x11/xkbcomp. 46- key names (e.g. `<AE11>`) can be longer than 4 characters. 47 48## Compose support 49 50Relative to the standard implementation in libX11 (described in the 51Compose(5) man-page), some features are not supported: 52 53- the (! MODIFIER) syntax 54 + parsed correctly but ignored. 55- using modifier keysyms in Compose sequences 56- several interactions with Braille keysyms 57