XkbKeyGroupsWidth(3)

πŸ’… XkbKeyGroupsWidth(3) β€” XKB FUNCTIONS πŸ’…

okay bestie, welcome to XkbKeyGroupsWidth(3), a lil page from the XKB FUNCTIONS section. she's here to compute a width, and honestly? she ate. ✨


🌸 NAME 🌸

XkbKeyGroupsWidth β€” computes the maximum width associated with the key corresponding to keycode.


✨ SYNOPSIS ✨

int XkbKeyGroupsWidth (XkbDescPtr xkb, KeyCode keycode);

πŸŽ€ ARGUMENTS πŸŽ€

  • xkb β€” the Xkb description of interest, aka the vibe we're inspecting 🫢
  • keycode β€” the keycode of interest, aka the specific key we're asking about πŸ’…

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so imagine this, bestie: the key width and the number of groups associated with a key are used to form a small two-dimensional array of KeySyms for a key. and like, this array may be different sizes for different keys β€” no cap, every key can have its own situation going on. πŸ”₯

The array for a single key is stored as a linear list, in row-major order. The arrays for all of the keys are stored in the syms field of the client map. There is one row for each group associated with a key and one column for each level. it's giving tiny grid energy, but make it linear. πŸ’€

The index corresponding to a given group and shift level is computed as:

idx = group_index * key_width + shift_level

The offset field of the key_sym_map entry for a key is used to access the beginning of the array. very "start here, bestie" of it. πŸŽ€

And finally: XkbKeyGroupsWidth computes the maximum width associated with the key corresponding to keycode. periodt. πŸ‘‘


k bye bestie!! this page is from X Version 11, libX11 1.8.14, and it's the XkbKeyGroupsWidth(3) page β€” mwah πŸ’‹πŸ’–

πŸ“¦ where this page comes from