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

# XkbGetDeviceButtonActions(3)

Query the button actions associated with an X Input Extension device

## NAME

XkbGetDeviceButtonActions - Query the button actions associated with an X Input Extension device

## SYNOPSIS

**Status XkbGetDeviceButtonActions** **(Display \****dpy***,** **XkbDeviceInfoPtr** *device\_info***,** **Bool** *all\_buttons***,** **unsigned int** *first\_button***,** **unsigned int** *num\_buttons***);**

## ARGUMENTS

- *dpy*

  connection to X server

- *device\_info*

  structure to update with results

- *all\_buttons*

  True =\> get information for all buttons

- *first\_button*

  number of first button for which info is desired

- *num\_buttons*

  number of buttons for which info is desired

## DESCRIPTION

*XkbGetDeviceButtonActions* queries the server for the desired button information for the device indicated by the *device\_spec* field of *device\_info* and waits for a reply. If successful, *XkbGetDeviceButtonActions* backfills the button actions *(btn\_acts* field of *device\_info)* for only the requested buttons, updates the *name, type, supported,* and *unsupported* fields, and returns Success.

*all\_buttons, first\_button* and *num\_buttons* specify the device buttons for which actions should be returned. Setting *all\_buttons* to True requests actions for all device buttons; if *all\_buttons* is False, *first\_button* and *num\_buttons* specify a range of buttons for which actions are requested.

If a compatible version of Xkb is not available in the server or the Xkb extension has not been properly initialized, *XkbGetDeviceButtonActions* returns BadAccess. If allocation errors occur, a BadAlloc status is returned. If the specified device *(device\_info-\>device\_spec)* is invalid, a BadKeyboard status is returned. If the device has no buttons, a BadMatch status is returned. If *first\_button* and *num\_buttons* specify illegal buttons, a BadValue status is returned.

## DIAGNOSTICS

- **BadAccess**

  The Xkb extension has not been properly initialized

- **BadAlloc**

  Unable to allocate storage

- **BadKeyboard**

  The device specified was not a valid core or input extension device

- **BadMatch**

  A compatible version of Xkb was not available in the server or an argument has correct type and range, but is otherwise invalid

- **BadValue**

  An argument is out of range
