From 529178006ebfb2cab34fc109f794c36bfc19e136 Mon Sep 17 00:00:00 2001 From: Gwilherm Folliot Date: Wed, 25 Sep 2024 17:59:31 +0200 Subject: [PATCH] input-capture: impl keyboard, mouse button & mouse wheel --- protocols/hyprland-input-capture-v1.xml | 132 ++++++++++++++++++++++++ 1 file changed, 132 insertions(+) diff --git a/protocols/hyprland-input-capture-v1.xml b/protocols/hyprland-input-capture-v1.xml index abf8e10..c5c26e3 100644 --- a/protocols/hyprland-input-capture-v1.xml +++ b/protocols/hyprland-input-capture-v1.xml @@ -73,5 +73,137 @@ summary="the y component of the motion vector" /> + + + Describes the physical state of a key that produced the key event. + + + + + + + + A key was pressed or released. + The key is a platform-specific key code that can be interpreted + by feeding it to the keyboard mapping (see the keymap event). + + + + + + + + Describes the physical state of a button that produced the button + event. + + + + + + + + Mouse button click and release notifications. + + The location of the click is given by the last motion or + enter event. + + The button is a button code as defined in the Linux kernel's + linux/input-event-codes.h header file, e.g. BTN_LEFT. + + + + + + + + Describes the axis types of scroll events. + + + + + + + + Scroll and other axis notifications. + + For scroll events (vertical and horizontal scroll axes), the + value parameter is the length of a vector along the specified + axis in a coordinate space identical to those of motion events, + representing a relative movement along the specified axis. + + For devices that support movements non-parallel to axes multiple + axis events will be emitted. + + When applicable, for example for touch pads, the server can + choose to emit scroll events where the motion vector is + equivalent to a motion event vector. + + When applicable, a client can transform its content relative to the + scroll distance. + + + + + + + + Discrete high-resolution scroll information. + + This event carries high-resolution wheel scroll information, + with each multiple of 120 representing one logical scroll step + (a wheel detent). For example, an axis_value120 of 30 is one quarter of + a logical scroll step in the positive direction, a value120 of + -240 are two logical scroll steps in the negative direction within the + same hardware event. + Clients that rely on discrete scrolling should accumulate the + value120 to multiples of 120 before processing the event. + + The value120 must not be zero. + + + + + + + + Stop notification for scroll and other axes. + + A axis_stop event can be sent to notify a client that the + axis sequence has terminated. + This enables the client to implement kinetic scrolling. + + The timestamp is to be interpreted identical to the timestamp in the + axis event. The timestamp value may be the same as a + preceding axis event. + + + + + + + Indicates the end of a set of events that logically belong together. + A client is expected to accumulate the data in all events within the + frame before proceeding. + + All wl_pointer events before a frame event belong + logically together. For example, in a diagonal scroll motion the + compositor will two axis events (horizontal and vertical) and + a frame event. The client may use this information to + calculate a diagonal vector for scrolling. + + When multiple axis events occur within the same frame, + the motion vector is the combined motion of all events. + When a axis and a wl_pointer.axis_stop event occur within + the same frame, this indicates that axis movement in one axis has + stopped but continues in the other axis. + When multiple axis_stop events occur within the same + frame, this indicates that these axes stopped in the same instance. + + A frame event is sent for every logical event group, + even if the group only contains a single wl_pointer event. + Specifically, a client may get a sequence: motion, frame, button, + frame, axis, frame, axis_stop, frame. + +