Lines Matching +full:input +full:- +full:only

1 .. _input-event-codes:
4 Input event codes
8 The input protocol uses a map of types and codes to express input device values
12 A single hardware event generates multiple input events. Each input event
14 used to separate input events into packets of input data changes occurring at
16 input event encompassing a type, code, and value.
18 The input protocol is a stateful protocol. Events are emitted only when values
20 input subsystem; drivers do not need to maintain the state and may attempt to
22 event code values using the EVIOCG* ioctls defined in linux/input.h. The event
24 class/input/event*/device/capabilities/, and the properties of a device are
25 provided in class/input/event*/device/properties.
30 Event types are groupings of codes under a logical input construct. Each
36 - Used as markers to separate events. Events may be separated in time or in
41 - Used to describe state changes of keyboards, buttons, or other key-like
46 - Used to describe relative axis value changes, e.g. moving the mouse 5 units
51 - Used to describe absolute axis value changes, e.g. describing the
56 - Used to describe miscellaneous input data that do not fit into other types.
60 - Used to describe binary state input switches.
64 - Used to turn LEDs on devices on and off.
68 - Used to output sound to devices.
72 - Used for autorepeating devices.
76 - Used to send force feedback commands to an input device.
80 - A special type for power button and switch input.
84 - Used to receive force feedback device status.
92 ------
94 EV_SYN event values are undefined. Their usage is defined only by when they are
99 - Used to synchronize and separate events into packets of input data changes
106 - TBD
110 - Used to synchronize and separate touch events. See the
111 multi-touch-protocol.txt document for more information.
115 - Used to indicate buffer overrun in the evdev client's event queue.
121 ------
134 - These codes are used in conjunction with input trackpads, tablets, and
138 with the input device, the BTN_TOOL_<name> code should be reset to 0. All
141 touchscreens should export only one BTN_TOOL_<name> at a time. To not break
148 BTN_TOUCH is used for touch contact. While an input tool is determined to be
152 touchpad may set the value to 1 only when the touch pressure rises above a
165 EVIOCGPROP, defined in linux/input.h, will be used to convey the device type.
169 - These codes denote one, two, three, and four finger interaction on a
175 for one code from each group. At most only one of these BTN_TOOL_<name>
182 be used to emit these codes. Please see multi-touch-protocol.txt for details.
185 ------
196 - These codes are used for vertical and horizontal scroll wheels,
198 physical size of which varies by device. For high-resolution wheels
199 this may be an approximation based on the high-resolution scroll events,
206 - High-resolution scroll wheel data. The accumulated value 120 represents
207 movement by one detent. For devices that do not provide high-resolution
209 high-resolution scrolling, the value may be a fraction of 120.
211 If a vertical scroll wheel supports high-resolution scrolling, this code
213 and REL_HWHEEL may be an approximation based on the high-resolution
214 scroll events. There is no guarantee that the high-resolution data
219 ------
228 - Used to describe the distance of a tool from an interaction surface. This
229 event should only be emitted while the tool is hovering, meaning in close
231 the input device may be used freely in three dimensions, consider ABS_Z
233 - BTN_TOOL_<name> should be set to 1 when the tool comes into detectable
240 - Used to describe the state of a multi-value profile switch. An event is
241 emitted only when the selected profile changes, indicating the newly
246 - Used to describe multitouch input events. Please see
247 multi-touch-protocol.txt for details.
251 - For touch devices, many devices converted contact size into pressure.
259 pressure data is in arbitrary units. If the resolution is non-zero, the
265 -----
274 Upon resume, if the switch state is the same as before suspend, then the input
279 ------
281 EV_MSC events are used for input and output events that do not fall under other
288 - Used to report the number of microseconds since the last reset. This event
297 ------
299 EV_LED events are used for input and output to set and query the state of
303 ------
308 ------
314 -----
320 ------
328 Normally, userspace sets up an input device based on the data it emits,
334 --------------------------------------
338 transformations, such as scaling, flipping and rotating). Non-direct input
339 devices require non-trivial transformation, such as absolute to relative
340 transformation for touchpads. Typical direct input devices: touchscreens,
341 drawing tablets; non-direct devices: touchpads, mice.
344 on the screen and thus requires use of an on-screen pointer to trace user's
345 movements. Typical pointer devices: touchpads, tablets, mice; non-pointer
353 --------------------
364 ------------------
367 of multiple contacts without resolving the individual positions; only the
380 -----------------------
394 ------------------------
406 The guidelines below ensure proper single-touch and multi-finger functionality.
407 For multi-touch functionality, see the multi-touch-protocol.rst document for
411 ----
419 ------------
429 ---------
431 Legacy trackpads that only provide relative position information must report
436 on the trackpad. Where multi-finger support is available, BTN_TOOL_<name> should
442 -------