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

# XkbKeySymEntry(3)

Returns the keysym corresponding to shift level shift and group grp from the two-dimensional array of keysyms for the key corresponding to keycode

## NAME

XkbKeySymEntry -  Returns the keysym corresponding to shift level *shift* and group *grp* from the two-dimensional array of keysyms for the key corresponding to *keycode*

## SYNOPSIS

**KeySym XkbKeySymEntry** **(XkbDescPtr** *xkb***,** **KeyCode** *keycode***,** **int** *shift***,** **int** *grp***);**

## ARGUMENTS

- *xkb*

  Xkb description of interest

- *keycode*

  keycode of interest

- *shift*

  shift level of interest

- *grp*

  group of interest

## DESCRIPTION

The key width and number of groups associated with a key are used to form a small two-dimensional array of KeySyms for a key. This array may be different sizes for different keys. The array for a single key is stored as a linear list, in row-major order. The arrays for all of the keys are stored in the *syms* field of the client map. There is one row for each group associated with a key and one column for each level. The index corresponding to a given group and shift level is computed as:

```
     idx = group_index * key_width + shift_level
```

The *offset* field of the *key\_sym\_map* entry for a key is used to access the beginning of the array.

*XkbKeySymEntry* returns the keysym corresponding to shift level *shift* and group *grp* from the two-dimensional array of keysyms for the key corresponding to *keycode.*
