When your application receives a XkbNamesNotify event, you can note the changed names in a changes structure using XkbNoteNameChanges.
The wanted parameter is the bitwise inclusive OR of the valid names mask bits shown in Table 1. XkbNoteNameChanges copies any changes that are reported in new and specified in wanted into the changes record specified by old.
Table 1 Symbolic Names Masks |
Mask Bit Value Keyboard Field |
Component |
XkbKeycodesNameMask (1<<0) Xkb->names keycodes |
XkbGeometryNameMask (1<<1) Xkb->names geometry |
XkbSymbolsNameMask (1<<2) Xkb->names symbols |
XkbPhysSymbolsNameMask (1<<3) Xkb->names phys_symbols |
XkbTypesNameMask (1<<4) Xkb->names type |
XkbCompatNameMask (1<<5) Xkb->names compat |
XkbKeyTypeNamesMask (1<<6) Xkb->map type[*].name |
XkbKTLevelNamesMask (1<<7) Xkb->map type[*].lvl_names[*] |
XkbIndicatorNamesMask (1<<8) Xkb->names indicators[*] |
XkbKeyNamesMask (1<<9) Xkb->names keys[*], num_keys |
XkbKeyAliasesMask (1<<10) Xkb->names key_aliases[*], num_key_aliases |
XkbVirtualModNamesMask (1<<11) Xkb->names vmods[*] |
XkbGroupNamesMask (1<<12) Xkb->names groups[*] |
XkbRGNamesMask (1<<13) Xkb->names radio_groups[*], num_rg |
XkbComponentNamesMask (0x3f) Xkb->names keycodes, |
geometry, |
symbols, |
physical symbols, |
types, and |
compatibility map |
XkbAllNamesMask (0x3fff) Xkb->names all name components |