XkbGetDeviceButtonActions(3)

XkbGetDeviceButtonActions(3) β€” XKB FUNCTIONS ✨

okay so bestie, this is the XKB FUNCTIONS page for XkbGetDeviceButtonActions, and it’s literally the β€œask the server about device button actions” girlie πŸ’…

✨ NAME ✨

XkbGetDeviceButtonActions β€” query the button actions associated with an X Input Extension device πŸŽ€

✨ SYNOPSIS ✨

       Status XkbGetDeviceButtonActions (Display *dpy, XkbDeviceInfoPtr
              device_info, Bool all_buttons, unsigned int first_button,
              unsigned int num_buttons);

✨ ARGUMENTS ✨

  • dpy β€” connection to X server
  • device_info β€” structure to update with results
  • all_buttons β€” True => get information for all buttons
  • first_button β€” number of first button for which info is desired
  • num_buttons β€” number of buttons for which info is desired

✨ DESCRIPTION ✨

Okay so XkbGetDeviceButtonActions queries the server for the desired button information for the device indicated by the device_spec field of device_info, and then it waits for a reply 😌. If successful, XkbGetDeviceButtonActions backfills the button actions β€” that’s the btn_acts field of device_info β€” for only the requested buttons. It also updates the name, type, supported, and unsupported fields, and returns Success. Slay.

all_buttons, first_button, and num_buttons specify the device buttons for which actions should be returned. Setting all_buttons to True requests actions for all device buttons; if all_buttons is False, first_button and num_buttons specify a range of buttons for which actions are requested. No cap.

Now the vibe checks that can fail: if a compatible version of Xkb is not available in the server, or the Xkb extension has not been properly initialized, XkbGetDeviceButtonActions returns BadAccess. If allocation errors occur, a BadAlloc status is returned. If the specified device (device_info->device_spec) is invalid, a BadKeyboard status is returned. If the device has no buttons, a BadMatch status is returned. If first_button and num_buttons specify illegal buttons, a BadValue status is returned. Periodt πŸ’€

✨ DIAGNOSTICS ✨

  • BadAccess β€” The Xkb extension has not been properly initialized
  • BadAlloc β€” Unable to allocate storage
  • BadKeyboard β€” The device specified was not a valid core or input extension device
  • BadMatch β€” A compatible version of Xkb was not available in the server or an argument has correct type and range, but is otherwise invalid
  • BadValue β€” An argument is out of range

Sign-off from X Version 11 and libX11 1.8.14 β€” the original footer isn’t giving a date, so I’m not inventing one, bestie 😭🫢

πŸ“¦ where this page comes from