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 ...
14 EndSection
15
17 evdev is an Xorg input driver for Linux´s generic event devices. It
18 therefore supports all input devices that the kernel knows about,
19 including most mice and keyboards.
20
21 The evdev driver can serve as both a pointer and a keyboard input
22 device, and may be used as both the core keyboard and the core pointer.
23 Multiple input devices are supported by multiple instances of this
24 driver, with one Load directive for evdev in the Module section of your
25 xorg.conf for each input device that will use this driver.
26
28 In general, any input device that the kernel has a driver for can be
29 accessed through the evdev driver. See the Linux kernel documentation
30 for a complete list.
31
33 Please refer to xorg.conf(5x) for general configuration details and for
34 options that can be used with all input drivers. This section only
35 covers configuration details specific to this driver.
36
38 Most users of this driver will probably be quite happy with the follow‐
39 ing for all QWERTY keyboards:
40
41 Section "InputDevice"
42 Identifier "keyboard"
43 Driver "evdev"
44 Option "evBits" "+1"
45 Option "keyBits" "~1-255 ~352-511"
46 Option "Pass" "3"
47 ...
48 EndSection
49
50 And the following for all mice:
51
52 Section "InputDevice"
53 Identifier "mouse"
54 Driver "evdev"
55 Option "evBits" "+1-2"
56 Option "keyBits" "~272-287"
57 Option "relBits" "~0-2 ~6 ~8"
58 Option "Pass" "3"
59 ...
60 EndSection
61
62 To understand what those Bits options do, or for more complex configu‐
63 rations, please see ADVANCED OPTIONS below.
64
66 DEVICE SPECIFICATION
67 For this section you'll want to have knowledge of glob (7) and our evil
68 BIT MATCHING SPECIFICATION stuff.
69
70 The following driver Options control what devices are accepted:
71
72
73 Option "Device" "string"
74 Specifies the device note through which the device can be
75 accessed. At this time ONLY /dev/input/event<N>, where <N> is
76 an integer, are matched against this this field.
77 This option uses globbing.
78 Please note that use of this option is strongly discouraged.
79
80
81 Option "Name" "string"
82 Specifies the device name for the device you wish to use.
83 The device name is generally the only consistent identifier for
84 devices that are commonly unplugged and plugged back into dif‐
85 ferent ports.
86 A list of currently plugged in devices and associated device
87 names can be obtained by typing "cat /proc/bus/input/devices",
88 the "Name" field is the value you want for this option.
89 This option uses globbing.
90
91
92 Option "Phys" "string"
93 Specifies the device phys string for the device you wish to use.
94 The phys string is generally consistant to the USB port a device
95 is plugged into.
96 A list of currently plugged in devices and associated device
97 names can be obtained by typing "cat /proc/bus/input/devices",
98 the "Phys" field is the value you want for this option.
99 This option uses globbing.
100
101
102 Option "<map>Bits" "bit specifier"
103 Specifies device capability bits which must be set, possibly
104 set, or unset.
105 <map>Bits: Where map is one of ev, key, rel, abs, msc, led, snd,
106 or ff.
107 The bit specifier format is a string consisting of +<n>, -<n>,
108 and ~<n> space sepirated specifiers, where <n> is a positive
109 integer or integer range. (The latter given in the format of
110 2-6.)
111 + specifies bits which must be set.
112 - specifies bits which must not be set.
113 ~ is a little more complex, it specifies that at least one of
114 the bits given with ~ for the field in question must be set, but
115 it doesn't matter how many or which of the bits. (It is actually
116 the most useful of the 3 specifiers.)
117 As an example '+0 +3 -1-2 ~5-10', requires bits 0 and 3 be set,
118 bits 1 and 2 to not be set, and at least one bit in the range of
119 5 to 10 be set.
120 An annoyingly formatted set of bitmasks for your devices can be
121 obtained by typing "cat /proc/bus/input/devices", and
122 /usr/include/linux/input.h should contain the defines which
123 declare what bits are what for each field.
124
125
126 Option "bustype" "integer"
127 Specifies the bus ID for the device you wish to use.
128 This is either 0 (the default, matches anything), or the Bus=<n>
129 field in /proc/bus/input/devices for your device.
130 This value depends on what type of bus your device is connected
131 to.
132
133
134 Option "vendor" "integer"
135 Specifies the vendor ID for the device you wish to use.
136 This is either 0 (the default, matches anything), or the Ven‐
137 dor=<n> field in /proc/bus/input/devices for your device.
138 This value should remain constant barring perhaps firmware
139 updates to the device itself.
140
141
142 Option "version" "integer"
143 Specifies the version for the device you wish to use.
144 This is either 0 (the default, matches anything), or the Ver‐
145 sion=<n> field in /proc/bus/input/devices for your device.
146 This value should remain constant barring perhaps firmware
147 updates to the device itself.
148
149
150 Option "product" "integer"
151 Specifies the product ID for the device you wish to use.
152 This is either 0 (the default, matches anything), or the Prod‐
153 uct=<n> field in /proc/bus/input/devices for your device.
154 This value should remain constant barring perhaps firmware
155 updates to the device itself.
156
157
158 Option "Pass" "integer"
159 Specifies the order in which evdev will scan for devices.
160 This is in the range of 0 to 3, and is used for the case where
161 more then one evdev inputsection matches the same device.
162 An inputsection with a lower pass number will always beat out
163 one with a higher pass number. Order when both sections are the
164 same number is undefined.
165 The default is 0.
166
167
168
169 RELATIVE AXIS CONFIGURATION
170 The relative axis portion of this driver handle all reported relative
171 axies.
172 The axies are named X, Y, Z, RX, RY, RZ, HWHEEL, DIAL, WHEEL, MISC, 10,
173 11, 12, 13, 14, and 15.
174 The axies are reported to X as valuators, with the default mapping of
175 axies to valuators being the first axies found to the first valuator,
176 the second found to the second valuator, and so on, so that if you have
177 axies X, Y, HWHEEL, and WHEEL, you would have X=0, Y=1, HWHEEL=2,
178 WHEEL=3.
179 If the driver is reporting core events, valuators 0 and 1 are always
180 mapped to x and y coordinates, respectively.
181 The following driver Options control the relative axis portion of the
182 driver:
183
184 Option "<axis>RelativeAxisMap" "number"
185 This remaps the axis specified to the specified valuator.
186
187 Option "<axis>RelativeAxisButtons" "number number"
188 This remaps the axis specified to the specified buttons.
189 Note that the physical buttons are always remapped around 'fake'
190 buttons created by this option, so that if you have physical
191 buttons 1 2 3 4 5, and map the Wheel axis to buttons 4 5, you
192 get buttons 1 2 3 4 5 6 7, with buttons 6 and 7 being physical
193 buttons 4 and 5.
194
195 ABSOLUTE AXIS CONFIGURATION
196 The relative axis portion of this driver handle all reported relative
197 axies.
198 The axies are named X, Y, Z, RX, RY, RZ, THROTTLE, RUDDER, WHEEL, GAS,
199 BREAK, <11-15>, HAT0X, HAT0Y, HAT1X, HAT1Y, HAT2X, HAT2Y, HAT3X, HAT3Y,
200 PRESSURE, TILT_X, TILT_Y, TOOL_WIDTH, VOLUME, <29-39>, MISC, <41-62>.
201 The axies are reported to X as valuators, with the default mapping of
202 axies to valuators being the first axies found to the first valuator,
203 the second found to the second valuator, and so on, so that if you have
204 axies X, Y, TILT_X, and TILT_Y, you would have X=0, Y=1, TILT_X=2,
205 TILT_Y=3.
206 If the driver is reporting core events, valuators 0 and 1 are always
207 mapped to x and y coordinates, respectively.
208 The following driver Options control the relative axis portion of the
209 driver:
210
211 Option "<axis>AbsoluteAxisMap" "number"
212 This remaps the axis specified to the specified valuator.
213
214 Option "AbsoluteScreen" "number"
215 This binds the device to a specific screen, scaling it to the
216 coordinate space of that screen.
217 The number can either be -1, or a valid screen number.
218 If -1 or if in relative mode no scaling or screen fixing is
219 done.
220 This is of most use for digitizers, where the screen and the
221 input device are the same surface.
222
223 Option "Mode" "<mode>"
224 This selects the default mode for the device.
225 Valid values are "absolute" and "relative".
226 This can be set at run time per actual device with the xinput
227 utility.
228
229 BUTTON CONFIGURATION
230 At the moment, the button portion of this driver only handles buttons
231 reported as mouse buttons, that is from BTN_MOUSE to BTN_JOYSTICK - 1.
232 At this time there are no configuration options for buttens.
233
234 KEYBOARD CONFIGURATION
235 The keyboard portion of this driver handles all keys reported and
236 requires XKB support.
237 The following driver Options control the relative axis portion of the
238 driver:
239
240 Option "XkbRules" "rules"
241 specifies which XKB rules file to use for interpreting the Xkb‐
242 Model, XkbLayout, XkbVariant, and XkbOptions settings. Default:
243 "xorg" for most platforms, but "xfree98" for the Japanese PC-98
244 platforms.
245
246 Option "XkbModel" "modelname"
247 specifies the XKB keyboard model name. Default: "evdev".
248
249 Option "XkbLayout" "layoutname"
250 specifies the XKB keyboard layout name. This is usually the
251 country or language type of the keyboard. Default: "us".
252
253 Option "XkbVariant" "variants"
254 specifies the XKB keyboard variant components. These can be
255 used to enhance the keyboard layout details. Default: not set.
256
257 Option "XkbOptions" "options"
258 specifies the XKB keyboard option components. These can be used
259 to enhance the keyboard behaviour. Default: not set.
260
261
263 Zephaniah E. Hull.
264 Kristian Høgsberg.
265
267 Xorg(1x), xorg.conf(5x), xorgconfig(1x), Xserver(1x), X(7).
268
269
270
271X Version 11 xf86-input-evdev 1.1.2 EVDEV(4)