XkbChangeMap(3)
π NAME π
okay bestie, meet XkbChangeMap(3) from the XKB FUNCTIONS crew β¨ This one is for updating only partial components of a keyboard description β you modify the appropriate fields in the server and map components of a local copy of the keyboard description. It's giving βsurgical little keyboard updateβ energy, no cap π
π¦ SYNOPSIS π¦
Bool XkbChangeMap (Display *dpy, XkbDescPtr xkb, XkbMapChangesPtr
changes);
πΈ ARGUMENTS πΈ
dpyβ connection to X server. The server girlie you're talking to, periodt.xkbβ description from which new values are taken. This is where the fresh components come from.changesβ identifies component parts to update. The little map of what changed, iykyk.
β¨ DESCRIPTION β¨
To update only partial components of a keyboard description, modify the appropriate fields in the server and map components of a local copy of the keyboard description, then call XkbChangeMap with an XkbMapChangesRec structure indicating which components have changed. Lowkey iconic: it's the βdon't resend the whole keyboard, just the changed bitsβ move π«Ά
XkbChangeMap copies any components specified by the changes structure from the keyboard description, xkb, to the X server specified by dpy. Slay.
If any components specified by changes are not present in the xkb parameter, XkbChangeMap returns False. Otherwise, it sends a request to the server and returns True. π
heads up bestie:XkbChangeMapcan generateBadAlloc,BadLength, andBadValueprotocol errors. Not me being dramatic β that's literally in the diagnostics π
π RETURN VALUES π
Trueβ TheXkbChangeMapfunction returnsTrueif the components specified bychangesare present in thexkbparameter. βFalseβ TheXkbChangeMapfunction returnsFalseif the components specified bychangesare not present in thexkbparameter. π
π STRUCTURES π
Use the XkbMapChangesRec structure to identify and track partial modifications to the mapping components and to reduce the amount of traffic between the server and clients. Basically: the receipts for what changed, so we don't spam the server. π
typedef struct _XkbMapChanges {
unsigned short changed; /* identifies valid components in structure */
KeyCode min_key_code; /* lowest numbered keycode for device */
KeyCode max_key_code; /* highest numbered keycode for device */
unsigned char first_type; /* index of first key type modified */
unsigned char num_types; /* # types modified */
KeyCode first_key_sym; /* first key whose key_sym_map changed */
unsigned char num_key_syms; /* # key_sym_map entries changed */
KeyCode first_key_act; /* first key whose key_acts entry changed */
unsigned char num_key_acts; /* # key_acts entries changed */
KeyCode first_key_behavior; /* first key whose behaviors changed */
unsigned char num_key_behaviors; /* # behaviors entries changed */
KeyCode first_key_explicit; /* first key whose explicit entry changed */
unsigned char num_key_explicit; /* # explicit entries changed */
KeyCode first_modmap_key; /* first key whose modmap entry changed */
unsigned char num_modmap_keys; /* # modmap entries changed */
KeyCode first_vmodmap_key; /* first key whose vmodmap changed */
unsigned char num_vmodmap_keys; /* # vmodmap entries changed */
unsigned char pad1; /* reserved */
unsigned short vmods; /* mask indicating which vmods changed */
} XkbMapChangesRec,*XkbMapChangesPtr;
π DIAGNOSTICS π
BadAllocβ Unable to allocate storage. RIP to the memory, literally πBadLengthβ The length of a request is shorter or longer than that required to minimally contain the arguments. The request is doing too much or not enough, and the server is side-eyeing it.BadValueβ An argument is out of range. Bestie, that value is not invited to this range party π«
okay bye bestie π This has been XkbChangeMap(3), XKB FUNCTIONS edition, brought to you by X Version 11 and libX11 1.8.14. The footer didn't give me a date, so no cap, we're not inventing one β 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