1LIBINPUT(4) Kernel Interfaces Manual LIBINPUT(4)
2
3
4
6 libinput - libinput-based X.Org input driver
7
9 Section "InputDevice"
10 Identifier "devname"
11 Driver "libinput"
12 Option "Device" "devpath"
13 ...
14 EndSection
15
16
18 This is the man page for the X input driver. If you are looking for the
19 library documentation, go to http://wayland.freedesktop.org/libin‐
20 put/doc/
21
22
24 libinput is an Xorg input driver based on libinput. It therefore sup‐
25 ports all input devices that libinput can handle, including most mice,
26 keyboards, tablets and touchscreens.
27
28 It is recommended that libinput devices are configured through the
29 InputClass directive (refer to xorg.conf(5)) instead of manual per-
30 device configuration. Devices configured in the xorg.conf(5) are not
31 hot-plug capable.
32
33
35 Please refer to xorg.conf(5) for general configuration details and for
36 options that can be used with all input drivers. This section only
37 covers configuration details specific to this driver.
38
39 The following driver Options are supported:
40
41 Option "AccelProfile" "string"
42 Sets the pointer acceleration profile to the given profile. Per‐
43 mitted values are adaptive, flat. Not all devices support this
44 option or all profiles. If a profile is unsupported, the default
45 profile for this device is used. For a description on the pro‐
46 files and their behavior, see the libinput documentation.
47
48 Option "AccelSpeed" "float"
49 Sets the pointer acceleration speed within the range [-1, 1]
50
51 Option "ButtonMapping" "string"
52 Sets the logical button mapping for this device, see XSetPoint‐
53 erMapping(3). The string must be a space-separated list of but‐
54 ton mappings in the order of the logical buttons on the device,
55 starting with button 1. The default mapping is "1 2 3 ... 32".
56 A mapping of 0 deactivates the button. Multiple buttons can have
57 the same mapping. Invalid mapping strings are discarded and the
58 default mapping is used for all buttons. Buttons not specified
59 in the user's mapping use the default mapping. See section BUT‐
60 TON MAPPING for more details.
61
62 Option "CalibrationMatrix" "string"
63 A string of 9 space-separated floating point numbers, in the
64 order "a b c d e f g h i". Sets the calibration matrix to the
65 3x3 matrix where the first row is (abc), the second row is (def)
66 and the third row is (ghi).
67
68 Option "ClickMethod" "string"
69 Enables a click method. Permitted values are none, buttonareas,
70 clickfinger. Not all devices support all methods, if an option
71 is unsupported, the default click method for this device is
72 used.
73
74 Option "DisableWhileTyping" "bool"
75 Indicates if the touchpad should be disabled while typing on the
76 keyboard (this does not apply to modifier keys such as Ctrl or
77 Alt).
78
79 Option "Device" "string"
80 Specifies the device through which the device can be accessed.
81 This will generally be of the form "/dev/input/eventX", where X
82 is some integer. When using InputClass directives, this option
83 is set by the server. The mapping from device node to hardware
84 is system-dependent. Property: "Device Node" (read-only).
85
86 Option "DragLockButtons" "L1 B1 L2 B2 ..."
87 Sets "drag lock buttons" that simulate a button logically down
88 even when it has been physically released. To logically release
89 a locked button, a second click of the same button is required.
90
91 If the option is a single button number, that button acts as the
92 "meta" locking button for the next button number. See section
93 BUTTON DRAG LOCK for details.
94
95 If the option is a list of button number pairs, the first number
96 of each number pair is the lock button, the second number the
97 logical button number to be locked. See section BUTTON DRAG LOCK
98 for details.
99
100 For both meta and button pair configuration, the button numbers
101 are device button numbers, i.e. the ButtonMapping applies after
102 drag lock.
103
104 Option "HorizontalScrolling" "bool"
105 Disables horizontal scrolling. When disabled, this driver will
106 discard any horizontal scroll events from libinput. Note that
107 this does not disable horizontal scrolling, it merely discards
108 the horizontal axis from any scroll events.
109
110 Option "LeftHanded" "bool"
111 Enables left-handed button orientation, i.e. swapping left and
112 right buttons.
113
114 Option "MiddleEmulation" "bool"
115 Enables middle button emulation. When enabled, pressing the left
116 and right buttons simultaneously produces a middle mouse button
117 click.
118
119 Option "NaturalScrolling" "bool"
120 Enables or disables natural scrolling behavior.
121
122 Option "RotationAngle" "float"
123 Sets the rotation angle of the device to the given angle, in
124 degrees clockwise. The angle must be between 0.0 (inclusive) and
125 360.0 (exclusive).
126
127 Option "ScrollButton" "int"
128 Designates a button as scroll button. If the ScrollMethod is
129 button and the button is logically held down, x/y axis movement
130 is converted into scroll events.
131
132 Option "ScrollMethod" "string"
133 Enables a scroll method. Permitted values are none, twofinger,
134 edge, button. Not all devices support all options, if an option
135 is unsupported, the default scroll option for this device is
136 used.
137
138 Option "SendEventsMode" "(disabled|enabled|disabled-on-external-mouse)"
139 Sets the send events mode to disabled, enabled, or "disable when
140 an external mouse is connected".
141
142 Option "TabletToolPressureCurve" "x0/y0 x1/y1 x2/y2 x3/y3"
143 Set the pressure curve for a tablet stylus to the bezier formed
144 by the four points. The respective x/y coordinate must be in the
145 [0.0, 1.0] range. For more information see section TABLET STYLUS
146 PRESSURE CURVE.
147
148 Option "TabletToolAreaRatio" "w:h"
149 Sets the area ratio for a tablet tool. The area always starts at
150 the origin (0/0) and expands to the largest available area with
151 the specified aspect ratio. Events outside this area are cropped
152 to the area. The special value "default" is used for the default
153 mapping (i.e. the device-native mapping). For more information
154 see section TABLET TOOL AREA RATIO.
155
156 Option "Tapping" "bool"
157 Enables or disables tap-to-click behavior.
158
159 Option "TappingButtonMap" "(lrm|lmr)"
160 Set the button mapping for 1/2/3-finger taps to left/right/mid‐
161 dle or left/middle/right, respectively.
162
163 Option "TappingDrag" "bool"
164 Enables or disables drag during tapping behavior ("tap-and-
165 drag"). When enabled, a tap followed by a finger held down
166 causes a single button down only, all motions of that finger
167 thus translate into dragging motion. Tap-and-drag requires
168 option Tapping to be enabled.
169
170 Option "TappingDragLock" "bool"
171 Enables or disables drag lock during tapping behavior. When
172 enabled, a finger up during tap-and-drag will not immediately
173 release the button. If the finger is set down again within the
174 timeout, the dragging process continues.
175
176 For all options, the options are only parsed if the device supports
177 that configuration option. For all options, the default value is the
178 one used by libinput. On configuration failure, the default value is
179 applied.
180
181
183 libinput exports runtime-configurable options as properties. If a prop‐
184 erty listed below is not available, the matching configuration option
185 is not available on the device. This however does not imply that the
186 feature is not available on the device. The following properties are
187 provided by the libinput driver.
188
189 libinput Accel Profiles Available
190 2 boolean values (8 bit, 0 or 1), in order "adaptive", "flat".
191 Indicates which acceleration profiles are available on this
192 device.
193
194 libinput Accel Profile Enabled
195 2 boolean values (8 bit, 0 or 1), in order "adaptive", "flat".
196 Indicates which acceleration profile is currently enabled on
197 this device.
198
199 libinput Accel Speed
200 1 32-bit float value, defines the pointer speed. Value range -1,
201 1
202
203 libinput Button Scrolling Button
204 1 32-bit value. Sets the button number to use for button
205 scrolling. This setting is independent of the scroll method, to
206 enable button scrolling the method must be set to button-
207 scrolling and a valid button must be set.
208
209 libinput Calibration Matrix
210 9 32-bit float values, representing a 3x3 calibration matrix,
211 order is row 1, row 2, row 3
212
213 libinput Click Methods Available
214 2 boolean values (8 bit, 0 or 1), in order "buttonareas",
215 "clickfinger". Indicates which click methods are available on
216 this device.
217
218 libinput Click Methods Enabled
219 2 boolean values (8 bit, 0 or 1), in order "buttonareas",
220 "clickfinger". Indicates which click methods are enabled on
221 this device.
222
223 libinput Drag Lock Buttons
224 Either one 8-bit value specifying the meta drag lock button, or
225 a list of button pairs. See section BUTTON DRAG LOCK for
226 details.
227
228 libinput Horizontal Scrolling Enabled
229 1 boolean value (8 bit, 0 or 1). Indicates whether horizontal
230 scrolling events are enabled or not.
231
232 libinput Left Handed Enabled
233 1 boolean value (8 bit, 0 or 1). Indicates if left-handed mode
234 is enabled or disabled.
235
236 libinput Middle Emulation Enabled
237 1 boolean value (8 bit, 0 or 1). Indicates if middle emulation
238 is enabled or disabled.
239
240 libinput Natural Scrolling Enabled
241 1 boolean value (8 bit, 0 or 1). 1 enables natural scrolling
242
243 libinput Rotation Angle
244 1 32-bit float value [0.0 to 360.0). Sets the rotation angle of
245 the device, clockwise of its natural neutral position.
246
247 libinput Scroll Methods Available
248 3 boolean values (8 bit, 0 or 1), in order "two-finger", "edge",
249 "button". Indicates which scroll methods are available on this
250 device.
251
252 libinput Scroll Method Enabled
253 3 boolean values (8 bit, 0 or 1), in order "two-finger", "edge",
254 "button". Indicates which scroll method is currently enabled on
255 this device.
256
257 libinput Send Events Modes Available
258 2 boolean values (8 bit, 0 or 1), in order "disabled" and "dis‐
259 abled-on-external-mouse". Indicates which send-event modes are
260 available on this device.
261
262 libinput Send Events Mode Enabled
263 2 boolean values (8 bit, 0 or 1), in order "disabled" and "dis‐
264 abled-on-external-mouse". Indicates which send-event modes is
265 currently enabled on this device.
266
267 libinput Tablet Tool Pressurecurve
268 4 32-bit float values [0.0 to 1.0]. See section TABLET TOOL
269 PRESSURE CURVE libinput Tablet Tool Area Ratio 2 32-bit values,
270 corresponding to width and height. Special value 0, 0 resets to
271 the default ratio. See section TABLET TOOL AREA RATIO for more
272 information.
273
274 libinput Tapping Enabled
275 1 boolean value (8 bit, 0 or 1). 1 enables tapping
276
277 libinput Tapping Button Mapping Enabled
278 2 boolean value (8 bit, 0 or 1), in order "lrm" and "lmr". Indi‐
279 cates which button mapping is currently enabled on this device.
280
281 libinput Tapping Drag Lock Enabled
282 1 boolean value (8 bit, 0 or 1). 1 enables drag lock during tap‐
283 ping
284
285 libinput Disable While Typing Enabled
286 1 boolean value (8 bit, 0 or 1). Indicates if disable while typ‐
287 ing is enabled or disabled.
288
289 Most properties have a libinput <property name> Default equivalent that
290 indicates the default value for this setting on this device.
291
292
294 X clients receive events with logical button numbers, where 1, 2, 3 are
295 usually interpreted as left, middle, right and logical buttons 4, 5, 6,
296 7 are usually interpreted as scroll up, down, left, right. The fourth
297 and fifth physical buttons on a device will thus send logical buttons 8
298 and 9. The ButtonMapping option adjusts the logical button mapping, it
299 does not affect how a physical button is mapped to a logical button.
300
301 Traditionally, a device was set to left-handed button mode by applying
302 a button mapping of "3 2 1 ..." On systems using the libinput Xorg
303 input driver it is recommended to use the LeftHanded option instead.
304
305 The libinput Xorg input driver does not use the button mapping after
306 setup. Use XSetPointerMapping(3) to modify the button mapping at run‐
307 time.
308
309
311 Button drag lock holds a button logically down even when the button
312 itself has been physically released since. Button drag lock comes in
313 two modes.
314
315 If in "meta" mode, a meta button click activates drag lock for the next
316 button press of any other button. A button click in the future will
317 keep that button held logically down until a subsequent click of that
318 same button. The meta button events themselves are discarded. A sepa‐
319 rate meta button click is required each time a drag lock should be
320 activated for a button in the future.
321
322 If in "pairs" mode, each button can be assigned a target locking but‐
323 ton. On button click, the target lock button is held logically down
324 until the next click of the same button. The button events themselves
325 are discarded and only the target button events are sent.
326
327 This feature is provided by this driver, not by libinput.
328
329
331 The pressure curve affects how stylus pressure is reported. By default,
332 the hardware pressure is reported as-is. By setting a pressure curve,
333 the feel of the stylus can be adjusted to be more like e.g. a pencil or
334 a brush.
335
336 The pressure curve is a cubic Bezier curve, drawn within a normalized
337 range of 0.0 to 1.0 between the four points provided. This normalized
338 range is applied to the tablet's pressure input so that the highest
339 pressure maps to 1.0. The points must have increasing x coordinates, if
340 x0 is larger than 0.0 all pressure values lower than x0 are equivalent
341 to y0. If x3 is less than 1.0, all pressure values higher than x3 are
342 equivalent to y3.
343
344 The input for a linear curve (default) is "0.0/0.0 0.0/0.0 1.0/1.0
345 1.0/1.0"; a slightly depressed curve (firmer) might be "0.0/0.0
346 0.05/0.0 1.0/0.95 1.0/1.0"; a slightly raised curve (softer) might be
347 "0.0/0.0 0.0/0.05 0.95/1.0 1.0/1.0".
348
349 This feature is provided by this driver, not by libinput.
350
351
353 By default, a tablet tool can access the whole sensor area and the
354 tablet area is mapped to the available screen area. For external
355 tablets like the Wacom Intuos series, the height:width ratio of the
356 tablet may be different to that of the monitor, causing the skew of
357 input data.
358
359 To avoid this skew of input data, an area ratio may be set to match the
360 ratio of the screen device. For example, a ratio of 4:3 will reduce the
361 available area of the tablet to the largest available area with a ratio
362 of 4:3. Events within this area will scale to the tablet's announced
363 axis range, the area ratio is thus transparent to the X server. Any
364 events outside this area will send events equal to the maximum value of
365 that axis. The area always starts at the device's origin in it's cur‐
366 rent rotation, i.e. it takes left-handed-ness into account.
367
368 This feature is provided by this driver, not by libinput.
369
370
372 This driver does not work with Option "Device" set to an event node in
373 /dev/input/by-id and /dev/input/by-path. This can be usually be worked
374 by using Section "InputClass" with an appropriate Match* statement in
375 the xorg.conf(5).
376
377
379 Peter Hutterer
380
382 Xorg(1), xorg.conf(5), Xserver(1), X(7)
383
384
385
386X Version 11 xf86-input-libinput 0.27.1 LIBINPUT(4)