xcb_xkb_get_compat_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

🌸 xcb_xkb_get_compat_map 🌸

okay bestie, welcome to the xcb_xkb_get_compat_map(3) page πŸ’– this one lives in the XCB Requests section of the manual, and it's giving ✨keyboard compatibility map✨ energy. buckle up, we're going in 🫢


✨ NAME ✨

xcb_xkb_get_compat_map -

no cap, the description here is literally blank 😭 the original manpage just leaves it empty after the dash. we move πŸ’…


✨ SYNOPSIS ✨

First things first, you gotta bring in the header, periodt:

#include <xcb/xkb.h>

πŸ¦‹ Request function

xcb_xkb_get_compat_map_cookie_t
       xcb_xkb_get_compat_map(xcb_connection_t *conn,
       xcb_xkb_device_spec_t deviceSpec, uint8_t groups,
       uint8_t getAllSI, uint16_t firstSI, uint16_t nSI);

πŸ¦‹ Reply datastructure

this is the struct you get back, and it is iconic:

typedef struct xcb_xkb_get_compat_map_reply_t {
           uint8_t  response_type;
           uint8_t  deviceID;
           uint16_t sequence;
           uint32_t length;
           uint8_t  groupsRtrn;
           uint8_t  pad0;
           uint16_t firstSIRtrn;
           uint16_t nSIRtrn;
           uint16_t nTotalSI;
           uint8_t  pad1[16];
       } xcb_xkb_get_compat_map_reply_t;

πŸ¦‹ Reply function

xcb_xkb_get_compat_map_reply_t
       *xcb_xkb_get_compat_map_reply(xcb_connection_t *conn,
       xcb_xkb_get_compat_map_cookie_t cookie, xcb_generic_error_t **e);

πŸ¦‹ Reply accessors

the little helper girlies that dig stuff out of your reply πŸŽ€:

xcb_xkb_sym_interpret_t *xcb_xkb_get_compat_map_si_rtrn(const
       xcb_xkb_get_compat_map_request_t *reply);
int xcb_xkb_get_compat_map_si_rtrn_length(const
       xcb_xkb_get_compat_map_reply_t *reply);
xcb_xkb_sym_interpret_iterator_t
       xcb_xkb_get_compat_map_si_rtrn_iterator(const
       xcb_xkb_get_compat_map_reply_t *reply);
xcb_xkb_mod_def_t *xcb_xkb_get_compat_map_group_rtrn(const
       xcb_xkb_get_compat_map_request_t *reply);
int xcb_xkb_get_compat_map_group_rtrn_length(const
       xcb_xkb_get_compat_map_reply_t *reply);
xcb_xkb_mod_def_iterator_t
       xcb_xkb_get_compat_map_group_rtrn_iterator(const
       xcb_xkb_get_compat_map_reply_t *reply);

πŸ’œ REQUEST ARGUMENTS πŸ’œ

  • conn β€” The XCB connection to X11. your link to the server, your main character connection fr fr 🌈
  • deviceSpec β€” TODO: NOT YET DOCUMENTED. yeah bestie, the docs just never got filled in 😭 it's literally just sitting there as a TODO.
  • groups β€” TODO: NOT YET DOCUMENTED.
  • getAllSI β€” TODO: NOT YET DOCUMENTED.
  • firstSI β€” TODO: NOT YET DOCUMENTED.
  • nSI β€” TODO: NOT YET DOCUMENTED.
lowkey a whole mood that half this page is TODOs but we're keeping every single one of them, no skipping πŸ’…

πŸŽ€ REPLY FIELDS πŸŽ€

  • response_type β€” The type of this reply, in this case XCB_XKB_GET_COMPAT_MAP. This field is also present in the xcb_generic_reply_t and can be used to tell replies apart from each other. it's the vibe check that tells you which reply you're looking at ✨
  • sequence β€” The sequence number of the last request processed by the X11 server. your lil receipt number, iykyk 🧾
  • length β€” The length of the reply, in words (a word is 4 bytes). remember bestie: one word = 4 bytes, don't let anyone tell you otherwise.
  • deviceID β€” TODO: NOT YET DOCUMENTED.
  • groupsRtrn β€” TODO: NOT YET DOCUMENTED.
  • firstSIRtrn β€” TODO: NOT YET DOCUMENTED.
  • nSIRtrn β€” TODO: NOT YET DOCUMENTED.
  • nTotalSI β€” TODO: NOT YET DOCUMENTED.

🌈 DESCRIPTION 🌈

so… there is genuinely nothing here. the DESCRIPTION section is empty in the original. it's giving silent but mysterious πŸ™ˆ we respect it, we leave it blank, we move on.


⭐ RETURN VALUE ⭐

Returns an xcb_xkb_get_compat_map_cookie_t. Errors have to be handled when calling the reply function xcb_xkb_get_compat_map_reply.

If you want to handle errors in the event loop instead, use xcb_xkb_get_compat_map_unchecked. See xcb-requests(3) for details.

so like: you get a cookie πŸͺ, and if you want the actual tea you go call the reply function. or if you're an event-loop girly, go unchecked mode instead. either way, slay.

πŸ’€ ERRORS πŸ’€

This request does never generate any errors.

not a single one. zero. none. the drama-free request of the century πŸ‘‘


πŸ¦‹ SEE ALSO πŸ¦‹

…yeah bestie, it's empty. nothing to see here. literally. we still list it because we keep the sections in order, periodt πŸ’…


πŸ’– AUTHOR πŸ’–

Generated from xkb.xml. Contact xcb@lists.freedesktop.org for corrections and improvements.


okay that's the whole page!! and for the cute lil sign-off β€” this came out of X Version 11, libxcb 1.17.0, and it's xcb_xkb_get_compat_map(3) 🫢 go forth and read your keyboard compat maps, bestie, you're gonna ate βœ¨πŸ‘‘