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

# XkbSetNamedIndicator(3)

Names an indicator if it is not already named; toggles the state of the indicator; sets the indicator to a specified state and sets the indicator map for the indicator

## NAME

XkbSetNamedIndicator - Names an indicator if it is not already named; toggles the state of the indicator; sets the indicator to a specified state and sets the indicator map for the indicator

## SYNOPSIS

**Bool XkbSetNamedDeviceIndicator** **(Display \****dpy***,** **unsigned int** *device\_spec***,** **unsigned int** *led\_class***,** **unsigned int** *led\_id***,** **Atom** *name***,** **Bool** *change\_state***,** **Bool** *state***,** **Bool** *create\_new***,** **XkbIndicatorMapPtr** *map***);** **Bool XkbSetNamedIndicator** **(Display \****dpy***,** **Atom** *name***,** **Bool** *change\_state***,** **Bool** *state***,** **Bool** *create\_new***,** **XkbIndicatorMapPtr** *map***);**

## ARGUMENTS

- *dpy*

  connection to the X server

- *device\_spec*

  device ID, or XkbUseCoreKbd

- *led\_class*

  feedback class, or XkbDfltXIClass

- *led\_id*

  feedback ID, or XkbDfltXIId

- *name*

  name of the indicator to change

- *change\_state*

  whether to change the indicator state or not

- *state*

  desired new state for the indicator

- *create\_new*

  whether a new indicator with the specified name should be created when necessary

- *map*

  new map for the indicator

## DESCRIPTION

If a compatible version of the Xkb extension is not available in the server, *XkbSetNamedDeviceIndicator* returns False. Otherwise, it sends a request to the X server to change the indicator specified by *name* and returns True.

If *change\_state* is True, *XkbSetNamedDeviceIndicator* tells the server to change the state of the named indicator to the value specified by *state*. If *change\_state* is False, then *state* is not used.

If an indicator with the name specified by *name* does not already exist, the *create\_new* parameter tells the server whether it should create a new named indicator. If *create\_new* is True, the server finds the first indicator that doesn't have a name and gives it the name specified by *name*. If the optional parameter, *map*, is not NULL, *XkbSetNamedDeviceIndicator* tells the server to change the indicator's map to the values specified in *map*.

In addition, it can also generate XkbIndicatorStateNotify, XkbIndicatorMapNotify, and XkbNamesNotify events.

*XkbSetNamedIndicator* is a convenience function that calls *XkbSetNamedDeviceIndicator* with a *device\_spec* of **XkbUseCoreKbd**, a *led\_class* of **XkbDfltXIClass**, and a *led\_id* of **XkbDfltXIId**. It returns the return value from *XkbSetNamedDeviceIndicator*.

## RETURN VALUES

- True

  The *XkbSetNamedIndicator* and *XkbSetNamedDeviceIndicator* functions return True if a compatible version of the Xkb extension is available in the server.

- False

  The *XkbSetNamedIndicator* and *XkbSetNamedDeviceIndicator* functions return False if a compatible version of the Xkb extension is not available in the server.

## DIAGNOSTICS

- **BadAtom**

  A name is neither a valid Atom or None

- **BadImplementation**

  Invalid reply from server

- **BadKeyboard**

  *device\_spec* does not specify a device with indicators.

- **BadMatch**

  *led\_id* is not **DfltXIId** and does not specify a feedback of the class specified by *led\_class* on the device specified by *device\_spec*.

- **BadValue**

  *led\_class* does not specify **DfltXIClass**, **LedFeedbackClass**, or **KbdFeedbackClass**.

## SEE ALSO

**XkbIndicatorMapNotify**(3), **XkbIndicatorStateNotify**(3), **XkbNamesNotify**(3)
