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

# XkbKeyKeyType(3)

Obtain the index of a key type or the pointer to a key type

## NAME

XkbKeyKeyType - Obtain the index of a key type or the pointer to a key type

## SYNOPSIS

**XkbKeyTypePtr XkbKeyKeyType** **(XkbDescPtr** *xkb***,** **KeyCode** *keycode***,** **int** *group***);**

## ARGUMENTS

- *xkb*

  Xkb description of interest

- *keycode*

  keycode of interest

- *group*

  group index

## DESCRIPTION

*XkbKeyKeyType* returns a pointer to the key type in the *types* vector of the client map in *xkb* corresponding to the given *keycode* and *group* index.

## STRUCTURES

```
typedef struct {                             /* Key Type */
	XkbModsRec              mods;           /* modifiers used to compute shift level */
	unsigned char           num_levels;     /* total # shift levels, do not modify directly */
	unsigned char           map_count;      /* # entries in map, preserve (if non-NULL) */
	XkbKTMapEntryPtr        map;            /* vector of modifiers for each shift level */
	XkbModsPtr              preserve;       /* mods to preserve for corresponding map entry */
	Atom                    name;           /* name of key type */
	Atom *                  level_names;    /* array of names of each shift level */
} XkbKeyTypeRec, *XkbKeyTypePtr;
```
