---
name: "XkbKeySymsOffset"
section: "3"
platform: "linux"
package: "libx11-doc"
version: "2:1.8.4-2+deb12u2"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/XkbKeySymsOffset"
---

# XkbKeySymsOffset(3)

Returns the offset of the two-dimensional array of keysyms for the key corresponding to keycode

## NAME

XkbKeySymsOffset - Returns the offset of the two-dimensional array of keysyms  for the key corresponding to  *keycode*

## SYNOPSIS

**int XkbKeySymsOffset** **(XkbDescPtr** *xkb***,** **KeyCode** *keycode***);**

## ARGUMENTS

- *xkb*

  Xkb description of interest

- *keycode*

  keycode 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.

*XkbKeySymsOffset* returns the offset of the two-dimensional array of keysyms for the key  corresponding to  *keycode.*
