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

# XkbLockModifiers(3)

Locks and unlocks any of the eight real keyboard modifiers

## NAME

XkbLockModifiers -  Locks and unlocks any of the eight real keyboard modifiers

## SYNOPSIS

**Bool XkbLockModifiers** **(Display \****display***,** **unsigned int** *device\_spec***,** **unsigned int** *affect***,** **unsigned int** *values***);**

## ARGUMENTS

- *display*

  connection to the X server

- *device\_spec*

  device ID, or XkbUseCoreKbd

- *affect*

  mask of real modifiers whose lock state is to change

- *values*

  1 =\> lock, 0 =\> unlock; only for modifiers selected by affect

## DESCRIPTION

*XkbLockModifiers* sends a request to the server to lock the real modifiers selected by both *affect* and *values* and to unlock the real modifiers selected by *affect,* but not selected by *values. XkbLockModifiers* does not wait for a reply from the server. It returns True if the request was sent, and False otherwise.

The functions in this section that change the use of modifiers use a mask in the parameter affect. It is a bitwise inclusive OR of the legal modifier masks:

| |
| --- |
| Table 1 Real Modifier Masks |
| Mask |
| ShiftMask |
| LockMask |
| ControlMask |
| Mod1Mask |
| Mod2Mask |
| Mod3Mask |
| Mod4Mask |
| Mod5Mask |

## RETURN VALUES

- True

  The *XkbLockModifiers* function returns True if a request is sent to the server to lock the real modifiers selected by both *affect* and *values* and to unlock the real modifiers selected by *affect,* but not selected by *values.*

- False

  The *XkbLockModifiers* function returns False if the request was not sent.
