XkbGetNames(3) XKB FUNCTIONS XkbGetNames(3)

# [NAME](#NAME)

XkbGetNames - Obtain symbolic names from the server

# [SYNOPSIS](#SYNOPSIS)

**Status XkbGetNames** **(Display \*dpy,** **unsigned int which,** **XkbDescPtr xkb);**

# [ARGUMENTS](#ARGUMENTS)

[*dpy*](#dpy)

connection to the X server

[*which*](#which)

mask of names or map components to be updated

[*xkb*](#xkb)

keyboard description to be updated

# [DESCRIPTION](#DESCRIPTION)

*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&lt;&lt;0) Xkb-&gt;names keycodes XkbGeometryNameMask (1&lt;&lt;1) Xkb-&gt;names geometry XkbSymbolsNameMask (1&lt;&lt;2) Xkb-&gt;names symbols XkbPhysSymbolsNameMask (1&lt;&lt;3) Xkb-&gt;names phys\_symbols XkbTypesNameMask (1&lt;&lt;4) Xkb-&gt;names type XkbCompatNameMask (1&lt;&lt;5) Xkb-&gt;names compat XkbKeyTypeNamesMask (1&lt;&lt;6) Xkb-&gt;map type\[\*].name XkbKTLevelNamesMask (1&lt;&lt;7) Xkb-&gt;map type\[\*].lvl\_names\[\*] XkbIndicatorNamesMask (1&lt;&lt;8) Xkb-&gt;names indicators\[\*] XkbKeyNamesMask (1&lt;&lt;9) Xkb-&gt;names keys\[\*], num\_keys XkbKeyAliasesMask (1&lt;&lt;10) Xkb-&gt;names key\_aliases\[\*], num\_key\_aliases XkbVirtualModNamesMask (1&lt;&lt;11) Xkb-&gt;names vmods\[\*] XkbGroupNamesMask (1&lt;&lt;12) Xkb-&gt;names groups\[\*] XkbRGNamesMask (1&lt;&lt;13) Xkb-&gt;names radio\_groups\[\*], num\_rg XkbComponentNamesMask (0x3f) Xkb-&gt;names keycodes, geometry, symbols, physical symbols, types, and compatibility map XkbAllNamesMask (0x3fff) Xkb-&gt;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 *names field of* *xkb* 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.*

# [DIAGNOSTICS](#DIAGNOSTICS)

[**BadAlloc**](#BadAlloc)

Unable to allocate storage

[**BadImplementation**](#BadImplementation)

Invalid reply from server

[**BadLength**](#BadLength)

The length of a request is shorter or longer than that required to minimally contain the arguments

[**BadMatch**](#BadMatch)

A compatible version of Xkb was not available in the server or an argument has correct type and range, but is otherwise invalid

# [SEE ALSO](#SEE_ALSO)

[**XkbFreeNames**(3)](/man/os/libx11/XkbFreeNames.3)

libX11 1.8.14 X Version 11

---

Document: XkbGetNames(3) from libx11 1.8.14-r0 (Chainguard OS)
Source: https://gitlab.freedesktop.org/xorg/lib/libx11.git
