xcb_xkb_list_components(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_list_components β€” bestie, it's the XCB request that lists your XKB components. That's it, that's the whole vibe πŸ’… (the original manpage literally left this blank, so we're keeping it mysterious on purpose πŸŽ€)


🌸 SYNOPSIS 🌸

#include <xcb/xkb.h>

πŸ’– Request function

xcb_xkb_list_components_cookie_t
       xcb_xkb_list_components(xcb_connection_t *conn,
       xcb_xkb_device_spec_t deviceSpec, uint16_t maxNames);

πŸ¦‹ Reply datastructure

typedef struct xcb_xkb_list_components_reply_t {
    uint8_t  response_type;
    uint8_t  deviceID;
    uint16_t sequence;
    uint32_t length;
    uint16_t nKeymaps;
    uint16_t nKeycodes;
    uint16_t nTypes;
    uint16_t nCompatMaps;
    uint16_t nSymbols;
    uint16_t nGeometries;
    uint16_t extra;
    uint8_t  pad0[10];
} xcb_xkb_list_components_reply_t;

🧚 Reply function

xcb_xkb_list_components_reply_t
       *xcb_xkb_list_components_reply(xcb_connection_t *conn,
       xcb_xkb_list_components_cookie_t cookie,
       xcb_generic_error_t **e);

πŸ‘‘ Reply accessors

Like, there are so many of these and they all follow the same pattern β€” one length getter and one iterator per component type. Here they all are, no skips, no cap:

int xcb_xkb_list_components_keymaps_length(const
       xcb_xkb_list_components_reply_t *reply);

xcb_xkb_listing_iterator_t
       xcb_xkb_list_components_keymaps_iterator(const
       xcb_xkb_list_components_reply_t *reply);

int xcb_xkb_list_components_keycodes_length(const
       xcb_xkb_list_components_reply_t *reply);

xcb_xkb_listing_iterator_t
       xcb_xkb_list_components_keycodes_iterator(const
       xcb_xkb_list_components_reply_t *reply);

int xcb_xkb_list_components_types_length(const
       xcb_xkb_list_components_reply_t *reply);

xcb_xkb_listing_iterator_t xcb_xkb_list_components_types_iterator(const
       xcb_xkb_list_components_reply_t *reply);

int xcb_xkb_list_components_compat_maps_length(const
       xcb_xkb_list_components_reply_t *reply);

xcb_xkb_listing_iterator_t
       xcb_xkb_list_components_compat_maps_iterator(const
       xcb_xkb_list_components_reply_t *reply);

int xcb_xkb_list_components_symbols_length(const
       xcb_xkb_list_components_reply_t *reply);

xcb_xkb_listing_iterator_t
       xcb_xkb_list_components_symbols_iterator(const
       xcb_xkb_list_components_reply_t *reply);

int xcb_xkb_list_components_geometries_length(const
       xcb_xkb_list_components_reply_t *reply);

xcb_xkb_listing_iterator_t
       xcb_xkb_list_components_geometries_iterator(const
       xcb_xkb_list_components_reply_t *reply);

πŸ’œ REQUEST ARGUMENTS πŸ’œ

  • conn β€” the XCB connection to X11. Your lil hotline to the server, slay πŸ”₯
  • deviceSpec β€” TODO: NOT YET DOCUMENTED. Yeah bestie, they just… didn't write it. Not me being unhelpful, it's literally blank in the source πŸ™ˆ
  • maxNames β€” TODO: NOT YET DOCUMENTED. Same situation, iconic in its emptiness 😭

🌈 REPLY FIELDS 🌈

  • response_type β€” the type of this reply, in this case XCB_XKB_LIST_COMPONENTS. This field is also present in the xcb_generic_reply_t and can be used to tell replies apart from each other. It's giving ID badge at the club door πŸŽ€
  • sequence β€” the sequence number of the last request processed by the X11 server.
  • length β€” the length of the reply, in words (a word is 4 bytes). Math girlies rise ✨
  • deviceID β€” TODO: NOT YET DOCUMENTED. πŸ’€
  • nKeymaps β€” TODO: NOT YET DOCUMENTED. πŸ’€
  • nKeycodes β€” TODO: NOT YET DOCUMENTED. πŸ’€
  • nTypes β€” TODO: NOT YET DOCUMENTED. πŸ’€
  • nCompatMaps β€” TODO: NOT YET DOCUMENTED. πŸ’€
  • nSymbols β€” TODO: NOT YET DOCUMENTED. πŸ’€
  • nGeometries β€” TODO: NOT YET DOCUMENTED. πŸ’€
  • extra β€” TODO: NOT YET DOCUMENTED. πŸ’€
Okay so half this struct is a mystery. The docs said "we'll get to it" and then never did. We still love her 🫢

πŸ“ DESCRIPTION πŸ“

(There is genuinely nothing here in the original. Not a single word. It's giving empty group chat, main character energy with zero lines 🌸)


⭐ RETURN VALUE ⭐

Returns an xcb_xkb_list_components_cookie_t. Errors have to be handled when calling the reply function xcb_xkb_list_components_reply.

If you want to handle errors in the event loop instead, use xcb_xkb_list_components_unchecked. See xcb-requests(3) for details. Two paths, pick your fighter πŸ’…


πŸ”₯ ERRORS πŸ”₯

This request does never generate any errors. Zero drama, no notes, periodt. πŸ‘‘


πŸ’– SEE ALSO πŸ’–

(Blank in the original β€” no cross-references listed at all, so we're leaving this section as a cute lil empty shelf πŸŽ€)


🌸 AUTHOR 🌸

Generated from xkb.xml. Contact xcb@lists.freedesktop.org for corrections and improvements. If you spot a typo, be a doll and email the list, iykyk πŸ’œ


X Version 11 Β· libxcb 1.17.0 Β· xcb_xkb_list_components(3) β€” that's the whole page bestie, thanks for reading, you ate 🫢✨πŸ’