XKM files do not keep the information regarding the explicit vmodmap mask
Submitted by Sergey V. Udaltsov
Assigned to Xorg Project Team
Description
The server map of explicit components may contain:
- types (per group)
- action
- autorepeat
- behaviour
- vmodmask
In XKB.h: #define XkbExplicitKeyType1Mask (1<<0) #define XkbExplicitKeyType2Mask (1<<1) #define XkbExplicitKeyType3Mask (1<<2) #define XkbExplicitKeyType4Mask (1<<3) #define XkbExplicitInterpretMask (1<<4) #define XkbExplicitAutoRepeatMask (1<<5) #define XkbExplicitBehaviorMask (1<<6) #define XkbExplicitVModMapMask (1<<7)
But in XKM files, there is no place to store explicit vmodmap mask: #define XkmKeyHasGroup1Type (1<<0) #define XkmKeyHasGroup2Type (1<<1) #define XkmKeyHasGroup3Type (1<<2) #define XkmKeyHasGroup4Type (1<<3) #define XkmKeyHasActions (1<<4) #define XkmKeyHasBehavior (1<<5) #define XkmRepeatingKey (1<<6) #define XkmNonRepeatingKey (1<<7)
So it is not an issue in the input-output code, it is a bigger issue - in the XKM format. This causes problems when configuration is passed through binary files.
To demonstrate this problem, create any textual XKB file with explicit vmodmap, then convert it to XKM and back to XKB - the information will be lost.
Version: 6.8.2