XkbGetNames retrieves symbolic names for the components of the keyboard extension from the X server. The
which parameter specifies the name components to be updated in the xkb parameter, and is the bitwise
inclusive OR of the valid names mask bits defined in Table 1.
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
If the names field of the keyboard description xkb is NULL, XkbGetNames allocates and initializes the
names component of the keyboard description before obtaining the values specified by which. If the namesfieldofxkb is not NULL, XkbGetNames obtains the values specified by which and copies them into the
keyboard description Xkb.
If the map component of the xkb parameter is NULL, XkbGetNames does not retrieve type or shift level
names, even if XkbKeyTypeNamesMask or XkbKTLevelNamesMask are set in which.XkbGetNames can return Success, or BadAlloc, BadLength, BadMatch, and BadImplementation errors.
To free symbolic names, use XkbFreeNames.