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

# XkbGetKeySyms(3)

Obtain the symbols for a subset of the keys in a keyboard description

## NAME

XkbGetKeySyms - Obtain the symbols for a subset of the keys in a keyboard description

## SYNOPSIS

**Status XkbGetKeySyms** **(Display \****dpy***,** **unsigned int** *first***,** **unsigned int** *num***,** **XkbDescPtr** *xkb***);**

## ARGUMENTS

- *dpy*

  connection to X server

- *first*

  keycode of first key to get

- *num*

  number of keycodes for which syms desired

- *xkb*

  Xkb description to be updated

## DESCRIPTION

*XkbGetKeySyms* sends a request to the server to obtain the set of keysyms bound to *num* keys starting with the key whose keycode is *first.* It waits for a reply and returns the keysyms in the *map.syms* field of *xkb.* If successful, *XkbGetKeySyms* returns Success. The *xkb* parameter must be a pointer to a valid Xkb keyboard description.

If the client *map* in the xkb parameter has not been allocated, *XkbGetKeySyms* allocates and initializes it before obtaining the symbols.

If a compatible version of Xkb is not available in the server or the Xkb extension has not been properly initialized, *XkbGetKeySyms* returns BadAccess. If *num* is less than 1 or greater than XkbMaxKeyCount, *XkbGetKeySyms* returns BadValue. If any allocation errors occur, *XkbGetKeySyms* returns BadAlloc.

## RETURN VALUES

- Success

  The *XkbGetKeySyms* function returns Success if it gets a reply to a request to the server to obtain the set of keysyms bound to *num* keys starting with the key whose keycode is *first.*

## DIAGNOSTICS

- **BadAccess**

  The Xkb extension has not been properly initialized

- **BadAlloc**

  Unable to allocate storage

- **BadValue**

  An argument is out of range
