XkbSetPtrActionX(3)
π XkbSetPtrActionX(3) π
Okay bestie, this one is from the XKB FUNCTIONS manual β and itβs literally about tucking an X coordinate into an action struct. Cute, tiny, very βI know what Iβm doingβ energy. π
β¨ NAME β¨
XkbSetPtrActionX β sets the high_XXX and low_XXX fields of act from the signed integer value x. Slay. π
π¦ SYNOPSIS π¦
void XkbSetPtrActionX (XkbPtrAction act, int x);
πΈ ARGUMENTS πΈ
actβ the action where weβre setting X. Main character struct, honestly.xβ the new value to set. Fresh coordinate fuel. β¨
π DESCRIPTION π
Actions associated with the XkbPtrAction structure move the pointer when keys are pressed and released. Pointer-moving keys, periodt.
If the MouseKeys control is not enabled, KeyPress and KeyRelease events are treated as though the action is XkbSA_NoAction. So yeah β no MouseKeys, no pointer-move party. π
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. Thatβs the whole timer cleanup tea. π«Ά
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 π
XkbSA_NoAccelerationβ if not set, and theMouseKeysAccelcontrol is enabled, theKeyPressinitiates 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;
π Sign-off: this page came from X Version 11, libX11 1.8.14, and XkbSetPtrActionX(3) β the footer didnβt print a separate date, so thatβs the whole source/version/date situation, bestie. π«Άβ¨
π¦ where this page comes from
- alpine 3.24: libx11-doc 1.8.14-r0 Β· X11
- arch rolling: libx11 1.8.14-1 Β· MIT AND X11
- nixos 26.05: libx11 1.8.14
- nixpkgs unstable: libx11 1.8.14
- Copyright (c) 1999, Oracle and/or its affiliates
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms