upgrade for xorg-server 1.12.99.905 (for 1.13 RC)
[adaptation/xorg/driver/xserver-xorg-input-evdev.git] / man / evdev.man
1 .\" shorthand for double quote that works everywhere.
2 .ds q \N'34'
3 .TH EVDEV __drivermansuffix__ __vendorversion__
4 .SH NAME
5 evdev \- Generic Linux input driver
6 .SH SYNOPSIS
7 .nf
8 .B "Section \*qInputDevice\*q"
9 .BI "  Identifier \*q" devname \*q
10 .B  "  Driver \*qevdev\*q"
11 .BI "  Option \*qDevice\*q   \*q" devpath \*q
12 .BI "  Option \*qEmulate3Buttons\*q     \*q" True \*q
13 .BI "  Option \*qEmulate3Timeout\*q     \*q" 50 \*q
14 .BI "  Option \*qGrabDevice\*q     \*q" False \*q
15 \ \ ...
16 .B EndSection
17 .fi
18 .SH DESCRIPTION
19 .B evdev 
20 is an __xservername__ input driver for Linux\'s generic event devices.  It
21 therefore supports all input devices that the kernel knows about, including
22 most mice and keyboards.
23 .PP
24 The 
25 .B evdev
26 driver can serve as both a pointer and a keyboard input device, and may be
27 used as both the core keyboard and the core pointer.  Multiple input devices
28 are supported by multiple instances of this driver, with one Load
29 directive for evdev in the Module section of your __xconfigfile__ for each
30 input device that will use this driver.
31 .PP
32 .SH SUPPORTED HARDWARE
33 In general, any input device that the kernel has a driver for can be accessed
34 through the 
35 .B evdev
36 driver.  See the Linux kernel documentation for a complete list.
37 .PP
38 .SH CONFIGURATION DETAILS
39 Please refer to __xconfigfile__(__filemansuffix__) for general configuration
40 details and for options that can be used with all input drivers.  This
41 section only covers configuration details specific to this driver.
42 .PP
43 The following driver 
44 .B Options
45 are supported:
46 .TP 7
47 .BI "Option \*qButtonMapping\*q \*q" string \*q
48 Sets the button mapping for this device. The mapping is a space-separated list
49 of button mappings that correspond in order to the physical buttons on the
50 device (i.e. the first number is the mapping for button 1, etc.). The default
51 mapping is "1 2 3 ... 32". A mapping of 0 deactivates the button. Multiple
52 buttons can have the same mapping.
53 For example, a left-handed mouse with deactivated scroll-wheel would use a
54 mapping of "3 2 1 0 0". Invalid mappings are ignored and the default mapping
55 is used. Buttons not specified in the user's mapping use the default mapping.
56 .TP 7
57 .BI "Option \*qDevice\*q \*q" string \*q
58 Specifies the device through which the device can be accessed.  This will 
59 generally be of the form \*q/dev/input/eventX\*q, where X is some integer.
60 The mapping from device node to hardware is system-dependent.
61 .TP 7
62 .BI "Option \*qDragLockButtons\*q \*q" "L1 B2 L3 B4" \*q
63 Sets \*qdrag lock buttons\*q that simulate holding a button down, so
64 that low dexterity people do not have to hold a button down at the
65 same time they move a mouse cursor. Button numbers occur in pairs,
66 with the lock button number occurring first, followed by the button
67 number that is the target of the lock button. Property: "Evdev
68 Drag Lock Buttons".
69 .TP 7
70 .BI "Option \*qDragLockButtons\*q \*q" "M1" \*q
71 Sets a \*qmaster drag lock button\*q that acts as a \*qMeta Key\*q
72 indicating that the next button pressed is to be
73 \*qdrag locked\*q. Property: "Evdev Drag Lock Buttons".
74 .TP 7
75 .TP 7
76 .BI "Option \*qEmulate3Buttons\*q \*q" boolean \*q
77 Enable/disable the emulation of the third (middle) mouse button for mice
78 which only have two physical buttons.  The third button is emulated by
79 pressing both buttons simultaneously.  Default: on, until a middle mouse
80 button event is registered. Property: "Evdev Middle Button Emulation".
81 .TP 7
82 .BI "Option \*qEmulate3Timeout\*q \*q" integer \*q
83 Sets the timeout (in milliseconds) that the driver waits before deciding
84 if two buttons where pressed "simultaneously" when 3 button emulation is
85 enabled.  Default: 50. Property: "Evdev Middle Button Timeout".
86 .BI "Option \*qEmulateWheel\*q \*q" boolean \*q
87 Enable/disable "wheel" emulation.  Wheel emulation means emulating button
88 press/release events when the mouse is moved while a specific real button
89 is pressed.  Wheel button events (typically buttons 4 and 5) are
90 usually used for scrolling.  Wheel emulation is useful for getting wheel-like
91 behaviour with trackballs.  It can also be useful for mice with 4 or
92 more buttons but no wheel.  See the description of the
93 .BR EmulateWheelButton ,
94 .BR EmulateWheelInertia ,
95 .BR EmulateWheelTimeout ,
96 .BR XAxisMapping ,
97 and
98 .B YAxisMapping
99 options.  Default: off. Property "Evdev Wheel Emulation".
100 .TP 7
101 .BI "Option \*qEmulateWheelButton\*q \*q" integer \*q
102 Specifies which button must be held down to enable wheel emulation mode.
103 While this button is down, X and/or Y pointer movement will generate button
104 press/release events as specified for the
105 .B XAxisMapping
106 and
107 .B YAxisMapping
108 settings. If the button is 0 and
109 .BR EmulateWheel
110 is on, any motion of the device is converted into wheel events. Default: 4.
111 Property: "Evdev Wheel Emulation Button".
112 .TP 7
113 .BI "Option \*qEmulateWheelInertia\*q \*q" integer \*q
114 Specifies how far (in pixels) the pointer must move to generate button
115 press/release events in wheel emulation mode.  Default: 10. Property: "Evdev
116 Wheel Emulation Inertia".
117 .TP 7
118 .BI "Option \*qEmulateWheelTimeout\*q \*q" integer \*q
119 Specifies the time in milliseconds the
120 .BR EmulateWheelButton
121 must be pressed before wheel emulation is started. If the
122 .BR EmulateWheelButton
123 is released before this timeout, the original button press/release event
124 is sent.  Default: 200. Property: "Evdev Wheel Emulation Timeout".
125 .TP 7
126 .BI "Option \*qGrabDevice\*q \*q" boolean \*q
127 Force a grab on the event device. Doing so will ensure that no other driver
128 can initialise the same device and it will also stop the device from sending
129 events to /dev/kbd or /dev/input/mice. Events from this device will not be
130 sent to virtual devices (e.g. rfkill or the Macintosh mouse button emulation).
131 Default: disabled.
132 .TP 7
133 .BI "Option \*qInvertX\*q \*q" Bool \*q
134 .TP 7
135 .BI "Option \*qInvertY\*q \*q" Bool \*q
136 Invert the given axis. Default: off. Property: "Evdev Axis Inversion".
137 .TP 7
138 .BI "Option \*qIgnoreRelativeAxes\*q \*q" Bool \*q
139 .TP 7
140 .BI "Option \*qIgnoreAbsoluteAxes\*q \*q" Bool \*q
141 Ignore the specified type of axis. Default: unset. The X server cannot deal
142 with devices that have both relative and absolute axes. Evdev tries to guess
143 wich axes to ignore given the device type and disables absolute axes for
144 mice and relative axes for tablets, touchscreens and touchpad. These options
145 allow to forcibly disable an axis type. Mouse wheel axes are exempt and will
146 work even if relative axes are ignored. No property, this configuration must
147 be set in the configuration.
148 .br
149 If either option is set to False, the driver will not ignore the specified
150 axes regardless of the presence of other axes. This may trigger buggy
151 behavior and events from this axis are always forwarded. Users are
152 discouraged from setting this option.
153 .TP 7
154 .BI "Option \*qReopenAttempts\*q \*q" integer \*q
155 Number of reopen attempts after a read error occurs on the device (e.g. after
156 waking up from suspend). In between each attempt is a 100ms wait. Default: 10.
157 .TP 7
158 .BI "Option \*qCalibration\*q \*q" "min-x max-x min-y max-y" \*q
159 Calibrates the X and Y axes for devices that need to scale to a different
160 coordinate system than reported to the X server. This feature is required
161 for devices that need to scale to a different coordinate system than
162 originally reported by the kernel (e.g. touchscreens). The scaling to the
163 custom coordinate system is done in-driver and the X server is unaware of
164 the transformation. Property: "Evdev Axis Calibration".
165 .TP 7
166 .BI "Option \*qSwapAxes\*q \*q" Bool \*q
167 Swap x/y axes. Default: off. Property: "Evdev Axes Swap".
168 .TP 7
169 .BI "Option \*qXAxisMapping\*q \*q" "N1 N2" \*q
170 Specifies which buttons are mapped to motion in the X direction in wheel
171 emulation mode.  Button number
172 .I N1
173 is mapped to the negative X axis motion and button number
174 .I N2
175 is mapped to the positive X axis motion.  Default: no mapping. Property:
176 "Evdev Wheel Emulation Axes".
177 .TP 7
178 .BI "Option \*qYAxisMapping\*q \*q" "N1 N2" \*q
179 Specifies which buttons are mapped to motion in the Y direction in wheel
180 emulation mode.  Button number
181 .I N1
182 is mapped to the negative Y axis motion and button number
183 .I N2
184 is mapped to the positive Y axis motion.  Default: "4 5". Property:
185 "Evdev Wheel Emulation Axes".
186
187 .SH SUPPORTED PROPERTIES
188 The following properties are provided by the
189 .B evdev
190 driver.
191 .TP 7
192 .BI "Evdev Axis Calibration"
193 4 32-bit values, order min-x, max-x, min-y, max-y or 0 values to disable
194 in-driver axis calibration.
195 .TP 7
196 .BI "Evdev Axis Inversion"
197 2 boolean values (8 bit, 0 or 1), order X, Y. 1 inverts the axis.
198 .TP 7
199 .BI "Evdev Axes Swap"
200 1 boolean value (8 bit, 0 or 1). 1 swaps x/y axes.
201 .TP 7
202 .BI "Evdev Drag Lock Buttons"
203 8-bit. Either 1 value or pairs of values. Value range 0-32, 0 disables a
204 value.
205 .TP 7
206 .BI "Evdev Middle Button Emulation"
207 1 boolean value (8 bit, 0 or 1).
208 .TP 7
209 .BI "Evdev Middle Button Timeout"
210 1 16-bit positive value.
211 .TP 7
212 .BI "Evdev Wheel Emulation"
213 1 boolean value (8 bit, 0 or 1).
214 .TP 7
215 .BI "Evdev Wheel Emulation Axes"
216 4 8-bit values, order X up, X down, Y up, Y down. 0 disables a value.
217 .TP 7
218 .BI "Evdev Wheel Emulation Button"
219 1 8-bit value, allowed range 0-32, 0 disables the button.
220 .TP 7
221 .BI "Evdev Wheel Emulation Inertia"
222 1 16-bit positive value.
223 .TP 7
224 .BI "Evdev Wheel Emulation Timeout"
225 1 16-bit positive value.
226
227 .SH AUTHORS
228 Kristian Høgsberg.
229 .SH "SEE ALSO"
230 __xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), Xserver(__appmansuffix__), X(__miscmansuffix__),
231 README.mouse.