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.
The server map of explicit components may contain:
- types (per group)
- action
- autorepeat
- behaviour
- vmodmask
In XKB.h: ype1Mask (1<<0) ype2Mask (1<<1) ype3Mask (1<<2) ype4Mask (1<<3) rpretMask (1<<4) RepeatMask (1<<5) viorMask (1<<6) MapMask (1<<7)
#define XkbExplicitKeyT
#define XkbExplicitKeyT
#define XkbExplicitKeyT
#define XkbExplicitKeyT
#define XkbExplicitInte
#define XkbExplicitAuto
#define XkbExplicitBeha
#define XkbExplicitVMod
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.