XkbSetPtrActionY(3)

Bestie, welcome to XkbSetPtrActionY(3) from the XKB FUNCTIONS manual. This one is all about setting pointer-action Y fields, and yes, it’s giving keyboard-nerd main character energy. πŸ’…βœ¨

πŸŽ€ NAME πŸŽ€

  • XkbSetPtrActionY β€” Sets the high_YYY and low_YYY fields of act from the signed integer value y. 🫢

🌸 SYNOPSIS 🌸

void XkbSetPtrActionY (XkbPtrAction act, int y);

πŸ¦‹ ARGUMENTS πŸ¦‹

  • act β€” action in which to set Y. ✨
  • y β€” new value to set. πŸ’–

πŸ”₯ DESCRIPTION πŸ”₯

Okay so actions associated with the XkbPtrAction structure move the pointer when keys are pressed and released. Periodt. πŸ–±οΈβœ¨

If the MouseKeys control is not enabled, KeyPress and KeyRelease events are treated as though the action is XkbSA_NoAction. Literally no-action vibes. πŸ’€

If the MouseKeys control is enabled, a server action of type XkbSA_MovePtr instructs the server to generate core pointer MotionNotify events rather than the usual KeyPress event, and the corresponding KeyRelease event disables any mouse keys timers that were created as a result of handling the XkbSA_MovePtr action. No cap. ⏱️

The type field of the XkbPtrAction structure is always XkbSA_MovePtr. πŸ’―

The flags field is a bitwise inclusive OR of the masks shown in Table 1. πŸŽ€

🌈 Table 1 Pointer Action Types 🌈

Action Type ➜ Meaning

  • XkbSA_NoAcceleration β€” If not set, and the MouseKeysAccel control is enabled, the KeyPress initiates a mouse keys timer for this key; every time the timer expires, the cursor moves. πŸ•°οΈ
  • XkbSA_MoveAbsoluteX β€” If set, the X portion of the structure specifies the new pointer X coordinate. Otherwise, the X portion is added to the current pointer X coordinate to determine the new pointer X coordinate. πŸ“
  • XkbSA_MoveAbsoluteY β€” If set, the Y portion of the structure specifies the new pointer Y coordinate. Otherwise, the Y portion is added to the current pointer Y coordinate to determine the new pointer Y coordinate. 🧭

Each of the X and Y coordinates of the XkbPtrAction structure is composed of two signed 16-bit valuesβ€”that is, the X coordinate is composed of high_XXX and low_XXX, and similarly for the Y coordinate. Xkb provides the following macros, to convert between a signed integer and two signed 16-bit values in XkbPtrAction structures. 🧚✨

πŸ’œ STRUCTURES πŸ’œ

           typedef struct _XkbPtrAction {
               unsigned char    type;         /* XkbSA_MovePtr */
               unsigned char    flags;        /* determines type of pointer motion */
               unsigned char    high_XXX;     /* x coordinate, high bits*/
               unsigned char    low_XXX;      /* y coordinate, low bits */
               unsigned char    high_YYY;     /* x coordinate, high bits */
               unsigned char    low_YYY;      /* y coordinate, low bits */
           } XkbPtrAction;

This page is brought to you by X Version 11 and libX11 1.8.14, and it’s the XkbSetPtrActionY(3) manual β€” mwah, go set those Y fields bestie πŸ’‹πŸ’…πŸ«Ά

πŸ“¦ where this page comes from