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

# XkbGetKeyTypes(3)

Obtain the list of available key types in the server's keyboard mapping

## NAME

XkbGetKeyTypes - Obtain the list of available key types in the server's keyboard mapping

## SYNOPSIS

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

## ARGUMENTS

- *dpy*

  connection to X server

- *first*

  index to first type to get, 0 =\> 1st type

- *num*

  number of key types to be returned

- *xkb*

  keyboard description containing client map to update

## DESCRIPTION

*XkbGetKeyTypes* queries the server for the desired types, waits for a reply, and returns the desired types in the *xkb-\>map-\>types.* If successful, it returns Success.

*XkbGetKeyTypes* returns BadAccess if the Xkb extension has not been properly initialized and BadValue if the combination of *first* and *num* results in numbers out of valid range.

**NOTE:** *XkbGetKeyTypes* is used to obtain descriptions of the key types themselves, not the key types bound to individual keys. To obtain the key types bound to an individual key, refer to the *key\_sym\_map* field of the client map.

## DIAGNOSTICS

- **BadAccess**

  The Xkb extension has not been properly initialized

- **BadValue**

  An argument is out of range

## SEE ALSO

[**XkbKeyKeyType**(3)](/XkbKeyKeyType/3.md), [**XkbKeyKeyTypeIndex**(3)](/XkbKeyKeyTypeIndex/3.md)
