---
name: "XkbFreeNames"
section: "3"
platform: "linux"
package: "libx11"
version: "1.8.14-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/XkbFreeNames"
---

# XkbFreeNames(3)

Free symbolic names structures

## NAME

XkbFreeNames - Free symbolic names structures

## SYNOPSIS

**void XkbFreeNames** **(XkbDescPtr** *xkb***,** **unsigned int** *which***,** **Bool** *free\_map***);**

## ARGUMENTS

- *xkb*

  keyboard description for which names are to be freed

- *which*

  mask of names components to be freed

- *free\_map*

  True =\> XkbNamesRec structure itself should be freed

## DESCRIPTION

Do not free symbolic names structures directly using *free* or *XFree.* Use *XkbFreeNames* instead.

The *which* parameter is the bitwise inclusive OR of the valid names mask bits defined in Table 1.

Xkb provides several functions that work with symbolic names. Each of these functions uses a mask to specify individual fields of the structures described above. These masks and their relationships to the fields in a keyboard description are shown 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 |
