xcb_xkb_get_map(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

✨ NAME ✨

xcb_xkb_get_map β€” okay so the manual name is XCB Requests, and honestly bestie, the original NAME line just says xcb_xkb_get_map - and then… nothing. No description. Iconic of it to show up with no caption. πŸ’… Anyway, this is a libxcb page, section 3, and it's all about asking the X server for a keyboard map.


πŸ¦‹ SYNOPSIS πŸ¦‹

#include <xcb/xkb.h>

πŸ’– Request function πŸ’–

xcb_xkb_get_map_cookie_t xcb_xkb_get_map(xcb_connection_t *conn,
       xcb_xkb_device_spec_t deviceSpec, uint16_t full,
       uint16_t partial, uint8_t firstType, uint8_t nTypes,
       xcb_keycode_t firstKeySym, uint8_t nKeySyms,
       xcb_keycode_t firstKeyAction, uint8_t nKeyActions,
       xcb_keycode_t firstKeyBehavior, uint8_t nKeyBehaviors,
       uint16_t virtualMods, xcb_keycode_t firstKeyExplicit,
       uint8_t nKeyExplicit, xcb_keycode_t firstModMapKey,
       uint8_t nModMapKeys, xcb_keycode_t firstVModMapKey,
       uint8_t nVModMapKeys);

πŸŽ€ Reply datastructure πŸŽ€

typedef struct xcb_xkb_get_map_reply_t {
    uint8_t       response_type;
    uint8_t       deviceID;
    uint16_t      sequence;
    uint32_t      length;
    uint8_t       pad0[2];
    xcb_keycode_t minKeyCode;
    xcb_keycode_t maxKeyCode;
    uint16_t      present;
    uint8_t       firstType;
    uint8_t       nTypes;
    uint8_t       totalTypes;
    xcb_keycode_t firstKeySym;
    uint16_t      totalSyms;
    uint8_t       nKeySyms;
    xcb_keycode_t firstKeyAction;
    uint16_t      totalActions;
    uint8_t       nKeyActions;
    xcb_keycode_t firstKeyBehavior;
    uint8_t       nKeyBehaviors;
    uint8_t       totalKeyBehaviors;
    xcb_keycode_t firstKeyExplicit;
    uint8_t       nKeyExplicit;
    uint8_t       totalKeyExplicit;
    xcb_keycode_t firstModMapKey;
    uint8_t       nModMapKeys;
    uint8_t       totalModMapKeys;
    xcb_keycode_t firstVModMapKey;
    uint8_t       nVModMapKeys;
    uint8_t       totalVModMapKeys;
    uint8_t       pad1;
    uint16_t      virtualMods;
} xcb_xkb_get_map_reply_t;

🌈 Reply function 🌈

xcb_xkb_get_map_reply_t *xcb_xkb_get_map_reply(xcb_connection_t *conn,
       xcb_xkb_get_map_cookie_t cookie, xcb_generic_error_t **e);

🌸 Reply accessors 🌸

xcb_xkb_get_map_map_t *xcb_xkb_get_map_map (const
xcb_xkb_get_map_request_t *reply)

πŸ’… REQUEST ARGUMENTS πŸ’…

  • conn β€” the XCB connection to X11. That's your link to the server, your little red string to the X11 universe, no cap.
  • deviceSpec β€” TODO: NOT YET DOCUMENTED. bestie the docs did not show up for this one 😭
  • full β€” TODO: NOT YET DOCUMENTED. fr fr nobody wrote it down.
  • partial β€” TODO: NOT YET DOCUMENTED. the lore is missing.
  • firstType β€” TODO: NOT YET DOCUMENTED. undocumented, we simply don't know.
  • nTypes β€” TODO: NOT YET DOCUMENTED. not a single word.
  • firstKeySym β€” TODO: NOT YET DOCUMENTED. the docs ghosted us.
  • nKeySyms β€” TODO: NOT YET DOCUMENTED. same energy.
  • firstKeyAction β€” TODO: NOT YET DOCUMENTED. no notes left behind.
  • nKeyActions β€” TODO: NOT YET DOCUMENTED. absent, like my will to study.
  • firstKeyBehavior β€” TODO: NOT YET DOCUMENTED. still waiting on that explanation.
  • nKeyBehaviors β€” TODO: NOT YET DOCUMENTED. never documented.
  • virtualMods β€” TODO: NOT YET DOCUMENTED. the mystery continues.
  • firstKeyExplicit β€” TODO: NOT YET DOCUMENTED. blank.
  • nKeyExplicit β€” TODO: NOT YET DOCUMENTED. blank too.
  • firstModMapKey β€” TODO: NOT YET DOCUMENTED. nope.
  • nModMapKeys β€” TODO: NOT YET DOCUMENTED. nope nope.
  • firstVModMapKey β€” TODO: NOT YET DOCUMENTED. nothing here either.
  • nVModMapKeys β€” TODO: NOT YET DOCUMENTED. and we close the list on the same note πŸ’€

πŸ‘‘ REPLY FIELDS πŸ‘‘

  • response_type β€” the type of this reply, which in this case is XCB_XKB_GET_MAP. This field is also present in the xcb_generic_reply_t, so you can use it to tell your replies apart from each other. Vibe check for packets ✨
  • sequence β€” the sequence number of the last request processed by the X11 server. Your little receipt number 🧾
  • length β€” the length of the reply, in words (and a word is 4 bytes, remember that bestie).
  • deviceID β€” TODO: NOT YET DOCUMENTED. 😭
  • minKeyCode β€” TODO: NOT YET DOCUMENTED. no notes.
  • maxKeyCode β€” TODO: NOT YET DOCUMENTED. no notes.
  • present β€” TODO: NOT YET DOCUMENTED. undoc'd.
  • firstType β€” TODO: NOT YET DOCUMENTED. undoc'd.
  • nTypes β€” TODO: NOT YET DOCUMENTED. undoc'd.
  • totalTypes β€” TODO: NOT YET DOCUMENTED. undoc'd.
  • firstKeySym β€” TODO: NOT YET DOCUMENTED. undoc'd.
  • totalSyms β€” TODO: NOT YET DOCUMENTED. undoc'd.
  • nKeySyms β€” TODO: NOT YET DOCUMENTED. undoc'd.
  • firstKeyAction β€” TODO: NOT YET DOCUMENTED. undoc'd.
  • totalActions β€” TODO: NOT YET DOCUMENTED. undoc'd.
  • nKeyActions β€” TODO: NOT YET DOCUMENTED. undoc'd.
  • firstKeyBehavior β€” TODO: NOT YET DOCUMENTED. undoc'd.
  • nKeyBehaviors β€” TODO: NOT YET DOCUMENTED. undoc'd.
  • totalKeyBehaviors β€” TODO: NOT YET DOCUMENTED. undoc'd.
  • firstKeyExplicit β€” TODO: NOT YET DOCUMENTED. undoc'd.
  • nKeyExplicit β€” TODO: NOT YET DOCUMENTED. undoc'd.
  • totalKeyExplicit β€” TODO: NOT YET DOCUMENTED. undoc'd.
  • firstModMapKey β€” TODO: NOT YET DOCUMENTED. undoc'd.
  • nModMapKeys β€” TODO: NOT YET DOCUMENTED. undoc'd.
  • totalModMapKeys β€” TODO: NOT YET DOCUMENTED. undoc'd.
  • firstVModMapKey β€” TODO: NOT YET DOCUMENTED. undoc'd.
  • nVModMapKeys β€” TODO: NOT YET DOCUMENTED. undoc'd.
  • totalVModMapKeys β€” TODO: NOT YET DOCUMENTED. undoc'd.
  • virtualMods β€” TODO: NOT YET DOCUMENTED. undoc'd.
bestie the reply fields really said "figure it out" πŸ™ˆ that's just how the original is, I'm not making it up, promise.

🌈 DESCRIPTION 🌈

Okay so. The DESCRIPTION section in the original is… empty. Nothing. A whole heading with no thoughts behind it. The silence is deafening πŸ¦‹


🫢 RETURN VALUE 🫢

It returns an xcb_xkb_get_map_cookie_t. And listen β€” errors have to be handled when you call the reply function xcb_xkb_get_map_reply.

But if you'd rather handle errors in the event loop instead, use xcb_xkb_get_map_unchecked. See xcb-requests(3) for the details, iykyk πŸ’œ


πŸ’€ ERRORS πŸ’€

This request does never generate any errors. Not one. Zero. Clean sheet, flawless, ate and left no crumbs πŸ‘‘


⭐ SEE ALSO ⭐

Nothing listed here in the original β€” the section exists and it's just vibes and blank space. 🌸


πŸŽ€ AUTHOR πŸŽ€

Generated from xkb.xml. Contact xcb@lists.freedesktop.org for corrections and improvements. (They really said "email us if it's wrong" and honestly, respect. 🫢)


And that's the whole page, bestie! This one comes from X Version 11, libxcb 1.17.0, and it lives in the manual as xcb_xkb_get_map(3). Go forth and map those keys, you absolute icon πŸ’–βœ¨πŸŽ€πŸ¦‹