xcb_xkb_get_controls(3)

πŸ“¦
version 1.17.0 Β· 4 versions
, in alpine 3.22, alpine 3.23, alpine 3.24, arch rolling, centos-stream 10, debian trixie, fedora 43, fedora 44, nixpkgs unstable, opensuse-leap 16.0, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– xcb_xkb_get_controls β€” bestie, we're pulling XKB controls πŸ’–

okay so this one's from libxcb, section 3 of the manual, and it's called xcb_xkb_get_controls. The original page literally leaves the one-line description blank (iconic of it, honestly), so there's no tagline to give you. We're just here, we're asking the X server for its keyboard controls, and we're thriving. ✨


✨ SYNOPSIS ✨

First things first, you gotta bring in the header:

#include <xcb/xkb.h>

πŸŽ€ Request function

xcb_xkb_get_controls_cookie_t
       xcb_xkb_get_controls(xcb_connection_t *conn,
       xcb_xkb_device_spec_t deviceSpec);

πŸ¦‹ Reply datastructure

typedef struct xcb_xkb_get_controls_reply_t {
    uint8_t  response_type;
    uint8_t  deviceID;
    uint16_t sequence;
    uint32_t length;
    uint8_t  mouseKeysDfltBtn;
    uint8_t  numGroups;
    uint8_t  groupsWrap;
    uint8_t  internalModsMask;
    uint8_t  ignoreLockModsMask;
    uint8_t  internalModsRealMods;
    uint8_t  ignoreLockModsRealMods;
    uint8_t  pad0;
    uint16_t internalModsVmods;
    uint16_t ignoreLockModsVmods;
    uint16_t repeatDelay;
    uint16_t repeatInterval;
    uint16_t slowKeysDelay;
    uint16_t debounceDelay;
    uint16_t mouseKeysDelay;
    uint16_t mouseKeysInterval;
    uint16_t mouseKeysTimeToMax;
    uint16_t mouseKeysMaxSpeed;
    int16_t  mouseKeysCurve;
    uint16_t accessXOption;
    uint16_t accessXTimeout;
    uint16_t accessXTimeoutOptionsMask;
    uint16_t accessXTimeoutOptionsValues;
    uint8_t  pad1[2];
    uint32_t accessXTimeoutMask;
    uint32_t accessXTimeoutValues;
    uint32_t enabledControls;
    uint8_t  perKeyRepeat[32];
} xcb_xkb_get_controls_reply_t;

🌸 Reply function

xcb_xkb_get_controls_reply_t
       *xcb_xkb_get_controls_reply(xcb_connection_t *conn,
       xcb_xkb_get_controls_cookie_t cookie, xcb_generic_error_t **e);

πŸ’… REQUEST ARGUMENTS πŸ’…

  • conn β€” the XCB connection to X11. your lil hotline to the server, bestie 🫢
  • deviceSpec β€” TODO: NOT YET DOCUMENTED. yeah… the docs just left us on read for this one πŸ™ˆ that's literally what it says, no cap.

🌈 REPLY FIELDS 🌈

  • response_type β€” the type of this reply, which in this case is XCB_XKB_GET_CONTROLS. this field is also chillin' in the xcb_generic_reply_t, so you can use it to tell your replies apart from each other. so useful, so iconic πŸ‘‘
  • sequence β€” the sequence number of the last request the X11 server processed.
  • length β€” how long the reply is, in words (and a word here is 4 bytes, fyi).
  • deviceID β€” TODO: NOT YET DOCUMENTED.
  • mouseKeysDfltBtn β€” TODO: NOT YET DOCUMENTED.
  • numGroups β€” TODO: NOT YET DOCUMENTED.
  • groupsWrap β€” TODO: NOT YET DOCUMENTED.
  • internalModsMask β€” TODO: NOT YET DOCUMENTED.
  • ignoreLockModsMask β€” TODO: NOT YET DOCUMENTED.
  • internalModsRealMods β€” TODO: NOT YET DOCUMENTED.
  • ignoreLockModsRealMods β€” TODO: NOT YET DOCUMENTED.
  • internalModsVmods β€” TODO: NOT YET DOCUMENTED.
  • ignoreLockModsVmods β€” TODO: NOT YET DOCUMENTED.
  • repeatDelay β€” TODO: NOT YET DOCUMENTED.
  • repeatInterval β€” TODO: NOT YET DOCUMENTED.
  • slowKeysDelay β€” TODO: NOT YET DOCUMENTED.
  • debounceDelay β€” TODO: NOT YET DOCUMENTED.
  • mouseKeysDelay β€” TODO: NOT YET DOCUMENTED.
  • mouseKeysInterval β€” TODO: NOT YET DOCUMENTED.
  • mouseKeysTimeToMax β€” TODO: NOT YET DOCUMENTED.
  • mouseKeysMaxSpeed β€” TODO: NOT YET DOCUMENTED.
  • mouseKeysCurve β€” TODO: NOT YET DOCUMENTED.
  • accessXOption β€” TODO: NOT YET DOCUMENTED.
  • accessXTimeout β€” TODO: NOT YET DOCUMENTED.
  • accessXTimeoutOptionsMask β€” TODO: NOT YET DOCUMENTED.
  • accessXTimeoutOptionsValues β€” TODO: NOT YET DOCUMENTED.
  • accessXTimeoutMask β€” TODO: NOT YET DOCUMENTED.
  • accessXTimeoutValues β€” TODO: NOT YET DOCUMENTED.
  • enabledControls β€” TODO: NOT YET DOCUMENTED.
  • perKeyRepeat β€” TODO: NOT YET DOCUMENTED.
not me listing a whole struct of TODOs πŸ’€ the docs really said "figure it out bestie". but hey, every field is named exactly as it appears, so you're not missing anything that was actually written down. fr fr.

🫢 DESCRIPTION 🫢

(empty. the original says nothing here. it's giving mysterious. πŸ™ˆ)


⭐ RETURN VALUE ⭐

You get back an xcb_xkb_get_controls_cookie_t. Errors? Those get handled when you call the reply function xcb_xkb_get_controls_reply. That's the deal. πŸ’–

If you'd rather catch your errors in the event loop instead, use xcb_xkb_get_controls_unchecked. And if you want the whole rundown, go look at xcb-requests(3). iykyk ✨


πŸ’€ ERRORS πŸ’€

This request never generates any errors. like, not even one. slay, honestly. zero drama, main character energy. πŸ‘‘


πŸŽ€ SEE ALSO πŸŽ€

(nothing listed here either. the original just moves right along. respect. πŸ¦‹)


🌸 AUTHOR 🌸

Generated from xkb.xml. Wanna send corrections or improvements? Contact xcb@lists.freedesktop.org β€” they're the ones who'd love to hear from you. πŸ’Œ


and that's a wrap, bestie! this page came to you courtesy of X Version 11 and libxcb 1.17.0 β€” the exact version the original footer was reppin'. go forth and get those controls. periodt. πŸ’…βœ¨πŸŽ€