xcb_xkb_list_components(3)
β¨ 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 caseXCB_XKB_LIST_COMPONENTS. This field is also present in thexcb_generic_reply_tand 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 π«Άβ¨π
π¦ 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