1EVDEV(4) Kernel Interfaces Manual EVDEV(4)
2
3
4
6 evdev - Generic Linux input driver
7
9 Section "InputDevice"
10 Identifier "devname"
11 Driver "evdev"
12 Option "Device" "devpath"
13 Option "Emulate3Buttons" "True"
14 Option "Emulate3Timeout" "50"
15 Option "GrabDevice" "False"
16 ...
17 EndSection
18
20 evdev is an Xorg input driver for Linux´s generic event devices. It
21 therefore supports all input devices that the kernel knows about,
22 including most mice, keyboards, tablets and touchscreens. evdev is the
23 default driver on the major Linux distributions.
24
25 The evdev driver can serve as both a pointer and a keyboard input
26 device. Multiple input devices are supported by multiple instances of
27 this driver, with one InputDevice section of your xorg.conf for each
28 input device that will use this driver.
29
30 It is recommended that evdev devices are configured through the Input‐
31 Class directive (refer to xorg.conf(5)) instead of manual per-device
32 configuration. Devices configured in the xorg.conf(5) are not hot-plug
33 capable.
34
36 In general, any input device that the kernel has a driver for can be
37 accessed through the evdev driver. See the Linux kernel documentation
38 for a complete list.
39
41 Please refer to xorg.conf(5) for general configuration details and for
42 options that can be used with all input drivers. This section only
43 covers configuration details specific to this driver.
44
45 The following driver Options are supported:
46
47 Option "ButtonMapping" "string"
48 Sets the button mapping for this device. The mapping is a space-
49 separated list of button mappings that correspond in order to
50 the physical buttons on the device (i.e. the first number is the
51 mapping for button 1, etc.). The default mapping is "1 2 3 ...
52 32". A mapping of 0 deactivates the button. Multiple buttons can
53 have the same mapping. For example, a left-handed mouse with
54 deactivated scroll-wheel would use a mapping of "3 2 1 0 0".
55 Invalid mappings are ignored and the default mapping is used.
56 Buttons not specified in the user's mapping use the default map‐
57 ping.
58
59 Option "Device" "string"
60 Specifies the device through which the device can be accessed.
61 This will generally be of the form "/dev/input/eventX", where X
62 is some integer. The mapping from device node to hardware is
63 system-dependent. Property: "Device Node" (read-only).
64
65 Option "DragLockButtons" "L1 B2 L3 B4"
66 Sets "drag lock buttons" that simulate holding a button down, so
67 that low dexterity people do not have to hold a button down at
68 the same time they move a mouse cursor. Button numbers occur in
69 pairs, with the lock button number occurring first, followed by
70 the button number that is the target of the lock button. Prop‐
71 erty: "Evdev Drag Lock Buttons".
72
73 Option "DragLockButtons" "M1"
74 Sets a "master drag lock button" that acts as a "Meta Key" indi‐
75 cating that the next button pressed is to be "drag locked".
76 Property: "Evdev Drag Lock Buttons".
77
78
79 Option "Emulate3Buttons" "boolean"
80 Enable/disable the emulation of the third (middle) mouse
81 button for mice which only have two physical buttons.
82 The third button is emulated by pressing both buttons
83 simultaneously. Default: off for touchscreens, otherwise
84 on until a middle mouse button event is registered. Prop‐
85 erty: "Evdev Middle Button Emulation".
86
87 Option "Emulate3Timeout" "integer"
88 Sets the timeout (in milliseconds) that the driver waits
89 before deciding if two buttons where pressed "simultane‐
90 ously" when 3 button emulation is enabled. Default: 50.
91 Property: "Evdev Middle Button Timeout".
92
93 Option "EmulateWheel" "boolean"
94 Enable/disable "wheel" emulation. Wheel emulation means
95 emulating button press/release events when the mouse is
96 moved while a specific real button is pressed. Wheel
97 button events (typically buttons 4 and 5) are usually
98 used for scrolling. Wheel emulation is useful for get‐
99 ting wheel-like behaviour with trackballs. It can also
100 be useful for mice with 4 or more buttons but no wheel.
101 See the description of the EmulateWheelButton, Emulate‐
102 WheelInertia, EmulateWheelTimeout, XAxisMapping, and YAx‐
103 isMapping options. Default: off. Property "Evdev Wheel
104 Emulation".
105
106 Option "EmulateWheelButton" "integer"
107 Specifies which button must be held down to enable wheel
108 emulation mode. While this button is down, X and/or Y
109 pointer movement will generate button press/release
110 events as specified for the XAxisMapping and YAxisMapping
111 settings. If the button is 0 and EmulateWheel is on, any
112 motion of the device is converted into wheel events.
113 Default: 4. Property: "Evdev Wheel Emulation Button".
114
115 Option "EmulateWheelInertia" "integer"
116 Specifies how far (in pixels) the pointer must move to
117 generate button press/release events in wheel emulation
118 mode. Default: 10. Property: "Evdev Wheel Emulation
119 Inertia".
120
121 Option "EmulateWheelTimeout" "integer"
122 Specifies the time in milliseconds the EmulateWheelButton
123 must be pressed before wheel emulation is started. If the
124 EmulateWheelButton is released before this timeout, the
125 original button press/release event is sent. Default:
126 200. Property: "Evdev Wheel Emulation Timeout".
127
128 Option "EmulateThirdButton" "boolean"
129 Enable third button emulation. Third button emulation
130 emits a right button event (by default) by pressing and
131 holding the first button. The first button must be held
132 down for the configured timeout and must not move more
133 than the configured threshold for the emulation to acti‐
134 vate. Otherwise, the first button event is posted as nor‐
135 mal. Default: off. Property: "Evdev Third Button Emula‐
136 tion".
137
138 Option "EmulateThirdButtonTimeout" "integer"
139 Specifies the timeout in milliseconds between the initial
140 button press and the generation of the emulated button
141 event. Default: 1000. Property: "Evdev Third Button Emu‐
142 lation Timeout".
143
144 Option "EmulateThirdButtonButton" "integer"
145 Specifies the physical button number to be emitted if
146 third button emulation is triggered. Default: 3. Prop‐
147 erty: "Evdev Third Button Button".
148
149 Option "EmulateThirdButtonMoveThreshold" "integer"
150 Specifies the maximum move fuzz in device coordinates for
151 third button emulation. If the device moves by more than
152 this threshold before the third button emulation is trig‐
153 gered, the emulation is cancelled and a first button
154 event is generated as normal. Default: 20. Property:
155 "Evdev Third Button Emulation Threshold".
156
157 Option "GrabDevice" "boolean"
158 Force a grab on the event device. Doing so will ensure
159 that no other driver can initialise the same device and
160 it will also stop the device from sending events to
161 /dev/kbd or /dev/input/mice. Events from this device will
162 not be sent to virtual devices (e.g. rfkill or the Macin‐
163 tosh mouse button emulation). Default: disabled.
164
165 Option "InvertX" "Bool"
166
167 Option "InvertY" "Bool"
168 Invert the given axis. Default: off. Property: "Evdev
169 Axis Inversion".
170
171 Option "IgnoreRelativeAxes" "Bool"
172
173 Option "IgnoreAbsoluteAxes" "Bool"
174 Ignore the specified type of axis. Default: unset. The X
175 server cannot deal with devices that have both relative
176 and absolute axes. Evdev tries to guess wich axes to
177 ignore given the device type and disables absolute axes
178 for mice and relative axes for tablets, touchscreens and
179 touchpad. These options allow to forcibly disable an axis
180 type. Mouse wheel axes are exempt and will work even if
181 relative axes are ignored. No property, this configura‐
182 tion must be set in the configuration.
183 If either option is set to False, the driver will not
184 ignore the specified axes regardless of the presence of
185 other axes. This may trigger buggy behavior and events
186 from this axis are always forwarded. Users are discour‐
187 aged from setting this option.
188
189 Option "Calibration" "min-x max-x min-y max-y"
190 Calibrates the X and Y axes for devices that need to
191 scale to a different coordinate system than reported to
192 the X server. This feature is required for devices that
193 need to scale to a different coordinate system than orig‐
194 inally reported by the kernel (e.g. touchscreens). The
195 scaling to the custom coordinate system is done in-driver
196 and the X server is unaware of the transformation. Prop‐
197 erty: "Evdev Axis Calibration".
198
199 Option "Mode" "Relative"|"Absolute"
200 Sets the mode of the device if device has absolute axes.
201 The default value for touchpads is relative, for other
202 absolute. This option has no effect on devices without
203 absolute axes.
204
205 Option "SwapAxes" "Bool"
206 Swap x/y axes. Default: off. Property: "Evdev Axes Swap".
207
208 Option "XAxisMapping" "N1 N2"
209 Specifies which buttons are mapped to motion in the X
210 direction in wheel emulation mode. Button number N1 is
211 mapped to the negative X axis motion and button number N2
212 is mapped to the positive X axis motion. Default: no
213 mapping. Property: "Evdev Wheel Emulation Axes".
214
215 Option "YAxisMapping" "N1 N2"
216 Specifies which buttons are mapped to motion in the Y
217 direction in wheel emulation mode. Button number N1 is
218 mapped to the negative Y axis motion and button number N2
219 is mapped to the positive Y axis motion. Default: "4 5".
220 Property: "Evdev Wheel Emulation Axes".
221
222 Option "TypeName" "type""
223 Specify the X Input 1.x type (see XListInputDevices(3)).
224 There is rarely a need to use this option, evdev will
225 guess the device type based on the device's capabilities.
226 This option is provided for devices that need quirks.
227
228 Option "VertScrollDelta" "integer"
229 The amount of motion considered one unit of scrolling
230 vertically. Default: "1". Property: "Evdev Scrolling
231 Distance".
232
233 Option "HorizScrollDelta" "integer"
234 The amount of motion considered one unit of scrolling
235 horizontally. Default: "1". Property: "Evdev Scrolling
236 Distance".
237
238 Option "DialDelta" "integer"
239 The amount of motion considered one unit of turning the
240 dial. Default: "1". Property: "Evdev Scrolling Dis‐
241 tance".
242
243
245 The following properties are provided by the evdev driver.
246
247 Evdev Axis Calibration
248 4 32-bit values, order min-x, max-x, min-y, max-y or 0
249 values to disable in-driver axis calibration.
250
251 Evdev Axis Inversion
252 2 boolean values (8 bit, 0 or 1), order X, Y. 1 inverts
253 the axis.
254
255 Evdev Axes Swap
256 1 boolean value (8 bit, 0 or 1). 1 swaps x/y axes.
257
258 Evdev Drag Lock Buttons
259 8-bit. Either 1 value or pairs of values. Value range
260 0-32, 0 disables a value.
261
262 Evdev Middle Button Emulation
263 1 boolean value (8 bit, 0 or 1).
264
265 Evdev Middle Button Timeout
266 1 16-bit positive value.
267
268 Evdev Wheel Emulation
269 1 boolean value (8 bit, 0 or 1).
270
271 Evdev Wheel Emulation Axes
272 4 8-bit values, order X up, X down, Y up, Y down. 0 dis‐
273 ables a value.
274
275 Evdev Wheel Emulation Button
276 1 8-bit value, allowed range 0-32, 0 disables the button.
277
278 Evdev Wheel Emulation Inertia
279 1 16-bit positive value.
280
281 Evdev Wheel Emulation Timeout
282 1 16-bit positive value.
283
284 Evdev Scrolling Distance
285 3 32-bit values: vertical, horizontal and dial.
286
287
289 Kristian Høgsberg, Peter Hutterer
290
292 Xorg(1), xorg.conf(5), Xserver(1), X(7)
293
294
295
296X Version 11 xf86-input-evdev 2.9.2 EVDEV(4)