XkbAllocNames3
Allocate symbolic names structures
Arguments
- xkb
-
keyboard description for which names are to be allocated
- which
-
mask of names to be allocated
- num_rg
-
total number of radio group names needed
- num_key_aliases
-
total number of key aliases needed
Overview
Most applications do not need to directly allocate symbolic names structures. Do not allocate a names structure directly using malloc or Xmalloc if your application changes the number of key aliases or radio groups or constructs a symbolic names structure without loading the necessary components from the X server. Instead use XkbAllocNames.
XkbAllocNames can return BadAlloc, BadMatch, and BadValue errors. The which parameter 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 |
Do not free symbolic names structures directly using free or XFree. Use XkbFreeNames instead.
Diagnostics
BadAlloc-
Unable to allocate storage
BadMatch-
A compatible version of Xkb was not available in the server or an argument has correct type and range, but is otherwise invalid
BadValue-
An argument is out of range
History
- Arch Linux 2026-11-01: the text shown here
- Debian 13 (Trixie)
- Debian 12 (Bookworm)
- Debian 11 (Bullseye)
- Debian 10 (Buster)
- Debian 9 (Stretch)
- Debian 8 (Jessie)
- Debian 7 (Wheezy)
- Debian 6.0 (Squeeze)
- Debian 5.0 (Lenny)