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. Property: "Evdev Middle
84 Button Emulation".
85
86 Option "Emulate3Timeout" "integer"
87 Sets the timeout (in milliseconds) that the driver waits
88 before deciding if two buttons where pressed "simultane‐
89 ously" when 3 button emulation is enabled. Default: 50.
90 Property: "Evdev Middle Button Timeout".
91
92 Option "Emulate3Button" "integer"
93 Specifies the physical button number to be emitted if
94 middle button emulation is triggered. Default: 2. Prop‐
95 erty: "Evdev Middle Button Button".
96
97 Option "EmulateWheel" "boolean"
98 Enable/disable "wheel" emulation. Wheel emulation means
99 emulating button press/release events when the mouse is
100 moved while a specific real button is pressed. Wheel
101 button events (typically buttons 4 and 5) are usually
102 used for scrolling. Wheel emulation is useful for get‐
103 ting wheel-like behaviour with trackballs. It can also
104 be useful for mice with 4 or more buttons but no wheel.
105 See the description of the EmulateWheelButton, Emulate‐
106 WheelInertia, EmulateWheelTimeout, XAxisMapping, and YAx‐
107 isMapping options. Default: off. Property "Evdev Wheel
108 Emulation".
109
110 Option "EmulateWheelButton" "integer"
111 Specifies which button must be held down to enable wheel
112 emulation mode. While this button is down, X and/or Y
113 pointer movement will generate button press/release
114 events as specified for the XAxisMapping and YAxisMapping
115 settings. If the button is 0 and EmulateWheel is on, any
116 motion of the device is converted into wheel events.
117 Default: 4. Property: "Evdev Wheel Emulation Button".
118
119 Option "EmulateWheelInertia" "integer"
120 Specifies how far (in pixels) the pointer must move to
121 generate button press/release events in wheel emulation
122 mode. Default: 10. Property: "Evdev Wheel Emulation
123 Inertia".
124
125 This value must be set for any device does not resemble a
126 standard mouse. Specifically, on absolute devices such
127 as tablets the value should be set to a reasonable frac‐
128 tion of the expected movement to avoid excess scroll
129 events.
130
131 WARNING: the name "inertia" is a misnomer. This option
132 defines the distance required to generate one scroll
133 event similar to the VertScrollDelta and HorizScrollDelta
134 options. It does not enable inertia in the physical
135 sense, scrolling stops immediately once the movement has
136 stopped.
137
138 Option "EmulateWheelTimeout" "integer"
139 Specifies the time in milliseconds the EmulateWheelButton
140 must be pressed before wheel emulation is started. If the
141 EmulateWheelButton is released before this timeout, the
142 original button press/release event is sent. Default:
143 200. Property: "Evdev Wheel Emulation Timeout".
144
145 Option "EmulateThirdButton" "boolean"
146 Enable third button emulation. Third button emulation
147 emits a right button event (by default) by pressing and
148 holding the first button. The first button must be held
149 down for the configured timeout and must not move more
150 than the configured threshold for the emulation to acti‐
151 vate. Otherwise, the first button event is posted as nor‐
152 mal. Default: off. Property: "Evdev Third Button Emula‐
153 tion".
154
155 Option "EmulateThirdButtonTimeout" "integer"
156 Specifies the timeout in milliseconds between the initial
157 button press and the generation of the emulated button
158 event. Default: 1000. Property: "Evdev Third Button Emu‐
159 lation Timeout".
160
161 Option "EmulateThirdButtonButton" "integer"
162 Specifies the physical button number to be emitted if
163 third button emulation is triggered. Default: 3. Prop‐
164 erty: "Evdev Third Button Button".
165
166 Option "EmulateThirdButtonMoveThreshold" "integer"
167 Specifies the maximum move fuzz in device coordinates for
168 third button emulation. If the device moves by more than
169 this threshold before the third button emulation is trig‐
170 gered, the emulation is cancelled and a first button
171 event is generated as normal. Default: 20. Property:
172 "Evdev Third Button Emulation Threshold".
173
174 Option "GrabDevice" "boolean"
175 Force a grab on the event device. Doing so will ensure
176 that no other driver can initialise the same device and
177 it will also stop the device from sending events to
178 /dev/kbd or /dev/input/mice. Events from this device will
179 not be sent to virtual devices (e.g. rfkill or the Macin‐
180 tosh mouse button emulation). Default: disabled.
181
182 Option "InvertX" "Bool"
183
184 Option "InvertY" "Bool"
185 Invert the given axis. Default: off. Property: "Evdev
186 Axis Inversion".
187
188 Option "IgnoreRelativeAxes" "Bool"
189
190 Option "IgnoreAbsoluteAxes" "Bool"
191 Ignore the specified type of axis. Default: unset. The X
192 server cannot deal with devices that have both relative
193 and absolute axes. Evdev tries to guess wich axes to
194 ignore given the device type and disables absolute axes
195 for mice and relative axes for tablets, touchscreens and
196 touchpad. These options allow to forcibly disable an axis
197 type. Mouse wheel axes are exempt and will work even if
198 relative axes are ignored. No property, this configura‐
199 tion must be set in the configuration.
200 If either option is set to False, the driver will not
201 ignore the specified axes regardless of the presence of
202 other axes. This may trigger buggy behavior and events
203 from this axis are always forwarded. Users are discour‐
204 aged from setting this option.
205
206 Option "Calibration" "min-x max-x min-y max-y"
207 Calibrates the X and Y axes for devices that need to
208 scale to a different coordinate system than reported to
209 the X server. This feature is required for devices that
210 need to scale to a different coordinate system than orig‐
211 inally reported by the kernel (e.g. touchscreens). The
212 scaling to the custom coordinate system is done in-driver
213 and the X server is unaware of the transformation. Prop‐
214 erty: "Evdev Axis Calibration".
215
216 Option "Mode" "Relative"|"Absolute"
217 Sets the mode of the device if device has absolute axes.
218 The default value for touchpads is relative, for other
219 absolute. This option has no effect on devices without
220 absolute axes.
221
222 Option "SwapAxes" "Bool"
223 Swap x/y axes. Default: off. Property: "Evdev Axes Swap".
224
225 Option "XAxisMapping" "N1 N2"
226 Specifies which buttons are mapped to motion in the X
227 direction in wheel emulation mode. Button number N1 is
228 mapped to the negative X axis motion and button number N2
229 is mapped to the positive X axis motion. Default: no
230 mapping. Property: "Evdev Wheel Emulation Axes".
231
232 Option "YAxisMapping" "N1 N2"
233 Specifies which buttons are mapped to motion in the Y
234 direction in wheel emulation mode. Button number N1 is
235 mapped to the negative Y axis motion and button number N2
236 is mapped to the positive Y axis motion. Default: "4 5".
237 Property: "Evdev Wheel Emulation Axes".
238
239 Option "TypeName" "type""
240 Specify the X Input 1.x type (see XListInputDevices(3)).
241 There is rarely a need to use this option, evdev will
242 guess the device type based on the device's capabilities.
243 This option is provided for devices that need quirks.
244
245 Option "VertScrollDelta" "integer"
246 The amount of motion considered one unit of scrolling
247 vertically. Default: "1". Property: "Evdev Scrolling
248 Distance".
249
250 Option "HorizScrollDelta" "integer"
251 The amount of motion considered one unit of scrolling
252 horizontally. Default: "1". Property: "Evdev Scrolling
253 Distance".
254
255 Option "DialDelta" "integer"
256 The amount of motion considered one unit of turning the
257 dial. Default: "1". Property: "Evdev Scrolling Dis‐
258 tance".
259
260 Option "Resolution" "integer"
261 Sets the resolution of the device in dots per inch. The
262 resolution is used to scale relative motion events from
263 mouse devices to 1000 DPI resolution. This can be used to
264 make high resolution mice less sensitive without turning
265 off acceleration. If set to 0 no scaling will be per‐
266 formed. Default: "0".
267
268
270 The following properties are provided by the evdev driver.
271
272 Evdev Axis Calibration
273 4 32-bit values, order min-x, max-x, min-y, max-y or 0
274 values to disable in-driver axis calibration.
275
276 Evdev Axis Inversion
277 2 boolean values (8 bit, 0 or 1), order X, Y. 1 inverts
278 the axis.
279
280 Evdev Axes Swap
281 1 boolean value (8 bit, 0 or 1). 1 swaps x/y axes.
282
283 Evdev Drag Lock Buttons
284 8-bit. Either 1 value or pairs of values. Value range
285 0-32, 0 disables a value.
286
287 Evdev Middle Button Emulation
288 1 boolean value (8 bit, 0 or 1).
289
290 Evdev Middle Button Timeout
291 1 16-bit positive value.
292
293 Evdev Middle Button Button
294 1 8-bit value, allowed range 0-32, 0 disables the button.
295
296 Evdev Wheel Emulation
297 1 boolean value (8 bit, 0 or 1).
298
299 Evdev Wheel Emulation Axes
300 4 8-bit values, order X up, X down, Y up, Y down. 0 dis‐
301 ables a value.
302
303 Evdev Wheel Emulation Button
304 1 8-bit value, allowed range 0-32, 0 disables the button.
305
306 Evdev Wheel Emulation Inertia
307 1 16-bit positive value.
308
309 Evdev Wheel Emulation Timeout
310 1 16-bit positive value.
311
312 Evdev Scrolling Distance
313 3 32-bit values: vertical, horizontal and dial.
314
315
317 Kristian Høgsberg, Peter Hutterer
318
320 Xorg(1), xorg.conf(5), Xserver(1), X(7)
321
322
323
324X Version 11 xf86-input-evdev 2.10.6 EVDEV(4)