XkbAddDeviceLedInfo(3)
okay so this is the XkbAddDeviceLedInfo(3) page from the XKB FUNCTIONS manual section β yes, bestie, we're doing LED info records today, and it's gonna be cute and correct. π
β¨
π NAME π
XkbAddDeviceLedInfo β initialize an XkbDeviceLedInfoRec structure. It's giving "set up the LED info corner" energy, and honestly? iconic. π
β¨ SYNOPSIS β¨
XkbDeviceLedInfoPtr XkbAddDeviceLedInfo (XkbDeviceInfoPtr device_info,
unsigned int led_class, unsigned int led_id);
πΈ ARGUMENTS πΈ
device_infoβ the structure where you're adding the LED info. That's the whole vibe: put it in here. π«Άled_classβ the input extension class for the LED device of interest. ikk what you're into, boo. πled_idβ the input extension ID for the LED device of interest. the specific one, fr fr. π¦
π« DESCRIPTION π«
First thing it does: XkbAddDeviceLedInfo checks whether an entry matching led_class and led_id already exists in the device_info->leds array. If it finds a matching entry, it returns a pointer to that entry. no cap, it's not gonna duplicate your fave. π
Otherwise, it checks to be sure there is at least one empty entry in device_info->leds, and extends it if there is not enough room. Then it increments device_info->num_leds and fills in the next available entry in device_info->leds with led_class and led_id. That's the whole glow-up: find it, or make room for it, then add it. β¨
If successful, XkbAddDeviceLedInfo returns a pointer to the XkbDeviceLedInfoRec structure that was initialized. If unable to allocate sufficient storage, or if device_info points to an invalid XkbDeviceInfoRec structure, or if led_class or led_id are inappropriate, XkbAddDeviceLedInfo returns NULL. that's the fail state, bestie β no pointer for you. π
To allocate additional space for button actions in an XkbDeviceInfoRec structure, use XkbResizeDeviceButtonActions. different mission, same universe. π
π§ STRUCTURES π§
Information about X Input Extension devices is transferred between a client program and the Xkb extension in an XkbDeviceInfoRec structure. Here's the whole fit, comments and all β code is code, don't come for me: π
typedef struct {
char * name; /* name for device */
Atom type; /* name for class of devices */
unsigned short device_spec; /* device of interest */
Bool has_own_state; /* True=>this device has its own state */
unsigned short supported; /* bits indicating supported capabilities */
unsigned short unsupported; /* bits indicating unsupported capabilities */
unsigned short num_btns; /* number of entries in btn_acts */
XkbAction * btn_acts; /* button actions */
unsigned short sz_leds; /* total number of entries in LEDs vector */
unsigned short num_leds; /* number of valid entries in LEDs vector */
unsigned short dflt_kbd_fb; /* input extension ID of default (core kbd) indicator */
unsigned short dflt_led_fb; /* input extension ID of default indicator feedback */
XkbDeviceLedInfoPtr leds; /* LED descriptions */
} XkbDeviceInfoRec, *XkbDeviceInfoPtr;
typedef struct {
unsigned short led_class; /* class for this LED device*/
unsigned short led_id; /* ID for this LED device */
unsigned int phys_indicators; /* bits for which LEDs physically present */
unsigned int maps_present; /* bits for which LEDs have maps in maps */
unsigned int names_present; /* bits for which LEDs are in names */
unsigned int state; /* 1 bit => corresponding LED is on */
Atom names[XkbNumIndicators]; /* names for LEDs */
XkbIndicatorMapRec maps; /* indicator maps for each LED */
} XkbDeviceLedInfoRec, *XkbDeviceLedInfoPtr;
π SEE ALSO π
XkbResizeDeviceButtonActions(3)β the other page to check when you need more room for button actions, iykyk. π
footer sign-off, bestie: source/version/page tag is X Version 11 / libX11 1.8.14 / XkbAddDeviceLedInfo(3) β and that's the whole cute little footer moment. mwah ππ«Άπ
π¦ where this page comes from
- alpine 3.24: libx11-doc 1.8.14-r0 Β· X11
- arch rolling: libx11 1.8.14-1 Β· MIT AND X11
- nixos 26.05: libx11 1.8.14
- nixpkgs unstable: libx11 1.8.14
- Copyright (c) 1999, Oracle and/or its affiliates
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms