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
144 BTN_TOUCH is used for touch contact. While an input tool is determined to be
148 touchpad may set the value to 1 only when the touch pressure rises above a
161 EVIOCGPROP, defined in linux/input.h, will be used to convey the device type.
165 - These codes denote one, two, three, and four finger interaction on a
171 for one code from each group. At most only one of these BTN_TOOL_<name>
178 be used to emit these codes. Please see multi-touch-protocol.txt for details.
181 ------
192 - These codes are used for vertical and horizontal scroll wheels,
194 physical size of which varies by device. For high-resolution wheels
195 this may be an approximation based on the high-resolution scroll events,
202 - High-resolution scroll wheel data. The accumulated value 120 represents
203 movement by one detent. For devices that do not provide high-resolution
205 high-resolution scrolling, the value may be a fraction of 120.
207 If a vertical scroll wheel supports high-resolution scrolling, this code
209 and REL_HWHEEL may be an approximation based on the high-resolution
210 scroll events. There is no guarantee that the high-resolution data
215 ------
224 - Used to describe the distance of a tool from an interaction surface. This
225 event should only be emitted while the tool is hovering, meaning in close
227 the input device may be used freely in three dimensions, consider ABS_Z
229 - BTN_TOOL_<name> should be set to 1 when the tool comes into detectable
236 - Used to describe multitouch input events. Please see
237 multi-touch-protocol.txt for details.
240 -----
249 Upon resume, if the switch state is the same as before suspend, then the input
254 ------
256 EV_MSC events are used for input and output events that do not fall under other
263 - Used to report the number of microseconds since the last reset. This event
272 ------
274 EV_LED events are used for input and output to set and query the state of
278 ------
283 ------
289 -----
295 ------
303 Normally, userspace sets up an input device based on the data it emits,
309 --------------------------------------
313 transformations, such as scaling, flipping and rotating). Non-direct input
314 devices require non-trivial transformation, such as absolute to relative
315 transformation for touchpads. Typical direct input devices: touchscreens,
316 drawing tablets; non-direct devices: touchpads, mice.
319 on the screen and thus requires use of an on-screen pointer to trace user's
320 movements. Typical pointer devices: touchpads, tablets, mice; non-pointer
328 --------------------
339 ------------------
342 of multiple contacts without resolving the individual positions; only the
344 touchpads, the semi-mt property should be set.
355 -----------------------
369 ------------------------
381 The guidelines below ensure proper single-touch and multi-finger functionality.
382 For multi-touch functionality, see the multi-touch-protocol.txt document for
386 ----
394 ------------
404 ---------
406 Legacy trackpads that only provide relative position information must report
411 on the trackpad. Where multi-finger support is available, BTN_TOOL_<name> should
417 -------