XCB_XKB_CONTROLS_NOTIFY_EVENT_T(3)
π xcb_xkb_controls_notify_event_t β bestie's guide to the XKB controls notify event π
okay so real talk, this is a page from the XCB Events manual, and the star of the show is xcb_xkb_controls_notify_event_t. it's a struct, it's an event, it's lowkey iconic, and we're gonna go through every single field together, no skipping, no cap. π
β¨ NAME β¨
xcb_xkb_controls_notify_event_t β literally just the name, bestie. that's it. that's the name. π¦
β¨ SYNOPSIS β¨
first things first, you gotta include the header or none of this works:
#include <xcb/xkb.h>
π§ Event datastructure
here's the whole struct, copied exactly, don't touch a single character or the compiler will simply end you:
typedef struct xcb_xkb_controls_notify_event_t {
uint8_t response_type;
uint8_t xkbType;
uint16_t sequence;
xcb_timestamp_t time;
uint8_t deviceID;
uint8_t numGroups;
uint8_t pad0[2];
uint32_t changedControls;
uint32_t enabledControls;
uint32_t enabledControlChanges;
xcb_keycode_t keycode;
uint8_t eventType;
uint8_t requestMajor;
uint8_t requestMinor;
uint8_t pad1[4];
} xcb_xkb_controls_notify_event_t;
look at those pad0[2] and pad1[4] just vibing in there. they're padding. they're doing nothing. main character energy honestly. π
β¨ EVENT FIELDS β¨
okay bestie, field by field, let's go. πΈ
response_typeβ the type of this event, and in this specific case it'sXCB_XKB_CONTROLS_NOTIFY. this same field also shows up inxcb_generic_event_t, which is how you tell your events apart from each other when they're all just hanging out in the same queue. very "how do you do, fellow events" of it. β¨sequenceβ the sequence number of the last request processed by the X11 server. that's it. that's the whole thing. it's the receipt number basically. π§ΎxkbTypeβNOT YET DOCUMENTED.timeβNOT YET DOCUMENTED.deviceIDβNOT YET DOCUMENTED.numGroupsβNOT YET DOCUMENTED.changedControlsβNOT YET DOCUMENTED.enabledControlsβNOT YET DOCUMENTED.enabledControlChangesβNOT YET DOCUMENTED.keycodeβNOT YET DOCUMENTED.eventTypeβNOT YET DOCUMENTED.requestMajorβNOT YET DOCUMENTED.requestMinorβNOT YET DOCUMENTED.
not me reading "NOT YET DOCUMENTED" twelve times in a row π that's the whole field description, babes. the docs said "we'll get to it" and then never got to it. it's giving unfinished homework. but fr fr, that IS what the page says, so that's what you get. π«Ά
β¨ DESCRIPTION β¨
there is literally no description. the section exists. it is empty. it's giving "showed up to the group project and contributed nothing" π
β¨ SEE ALSO β¨
also empty, bestie. nothing to see here. nothing to also see. π
β¨ AUTHOR β¨
this page was generated from xkb.xml. if you spot something wrong or wanna suggest corrections and improvements, hit up xcb@lists.freedesktop.org β they're literally asking for it, in a nice way. π
warning bestie: every one of those NOT YET DOCUMENTED fields is a real gap in the docs, not a vibe I'm adding. don't go inventing behaviour for them and then blaming me. π€
okay that's the whole page!! you read the entire struct, every field, the empty sections, the whole thing. slay. β¨
this one came from X Version 11, libxcb 1.17, and that's the version-and-date sign-off, mwah π go forth and handle your events, bestie. π¦ππ
π¦ where this page comes from
- alpine 3.22: libxcb-doc 1.17.0-r0 Β· MIT
- alpine 3.23: libxcb-doc 1.17.0-r1 Β· MIT
- alpine 3.24: libxcb-doc 1.17.0-r2 Β· MIT
- arch rolling: libxcb 1.17.0-1 Β· X11
- centos-stream 10: libxcb-devel 1.17.0-3.el10 Β· X11
- debian trixie: libxcb-doc 1.17.0-2
- fedora 43: libxcb-devel 1.17.0-6.fc43 Β· X11
- fedora 43: libxcb-devel 1.17.0-6.fc43 Β· X11
- fedora 44: libxcb-devel 1.17.0-7.fc44 Β· X11
- fedora 44: libxcb-devel 1.17.0-7.fc44 Β· X11
- nixpkgs unstable: libxcb 1.17.0
- opensuse-leap 16.0: libxcb-devel-doc 1.17.0-160000.2.2 Β· MIT
- ubuntu questing: libxcb-doc 1.17.0-2build1
- ubuntu resolute: libxcb-doc 1.17.0-2ubuntu1
- ubuntu stonking: libxcb-doc 1.17.0-2ubuntu1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms