carta
XkbAllocNames(3)

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 BitValueKeyboardField
Component
XkbKeycodesNameMask(1<<0)Xkb->nameskeycodes
XkbGeometryNameMask(1<<1)Xkb->namesgeometry
XkbSymbolsNameMask(1<<2)Xkb->namessymbols
XkbPhysSymbolsNameMask(1<<3)Xkb->namesphys_symbols
XkbTypesNameMask(1<<4)Xkb->namestype
XkbCompatNameMask(1<<5)Xkb->namescompat
XkbKeyTypeNamesMask(1<<6)Xkb->maptype[*].name
XkbKTLevelNamesMask(1<<7)Xkb->maptype[*].lvl_names[*]
XkbIndicatorNamesMask(1<<8)Xkb->namesindicators[*]
XkbKeyNamesMask(1<<9)Xkb->nameskeys[*], num_keys
XkbKeyAliasesMask(1<<10)Xkb->nameskey_aliases[*], num_key_aliases
XkbVirtualModNamesMask(1<<11)Xkb->namesvmods[*]
XkbGroupNamesMask(1<<12)Xkb->namesgroups[*]
XkbRGNamesMask(1<<13)Xkb->namesradio_groups[*], num_rg
XkbComponentNamesMask(0x3f)Xkb->nameskeycodes,
geometry,
symbols,
physical symbols,
types, and
compatibility map
XkbAllNamesMask(0x3fff)Xkb->namesall 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)

From libx11 1.8.14-1 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.