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 down, x/y axis movement is
130 converted into scroll events.
131
132 Option "ScrollButtonLock" "bool"
133 Enables or disables the scroll button lock. If enabled, the
134 ScrollButton is considered logically down after the first click
135 and remains down until the second click of that button. If dis‐
136 abled (the default), the ScrollButton button is considered logi‐
137 cally down while held down and up once physically released.
138
139 Option "ScrollMethod" "string"
140 Enables a scroll method. Permitted values are none, twofinger,
141 edge, button. Not all devices support all options, if an option
142 is unsupported, the default scroll option for this device is
143 used.
144
145 Option "SendEventsMode" "(disabled|enabled|disabled-on-external-mouse)"
146 Sets the send events mode to disabled, enabled, or "disable when
147 an external mouse is connected".
148
149 Option "TabletToolPressureCurve" "x0/y0 x1/y1 x2/y2 x3/y3"
150 Set the pressure curve for a tablet stylus to the bezier formed
151 by the four points. The respective x/y coordinate must be in the
152 [0.0, 1.0] range. For more information see section TABLET STYLUS
153 PRESSURE CURVE.
154
155 Option "TabletToolAreaRatio" "w:h"
156 Sets the area ratio for a tablet tool. The area always starts at
157 the origin (0/0) and expands to the largest available area with
158 the specified aspect ratio. Events outside this area are cropped
159 to the area. The special value "default" is used for the default
160 mapping (i.e. the device-native mapping). For more information
161 see section TABLET TOOL AREA RATIO.
162
163 Option "Tapping" "bool"
164 Enables or disables tap-to-click behavior.
165
166 Option "TappingButtonMap" "(lrm|lmr)"
167 Set the button mapping for 1/2/3-finger taps to left/right/mid‐
168 dle or left/middle/right, respectively.
169
170 Option "TappingDrag" "bool"
171 Enables or disables drag during tapping behavior ("tap-and-
172 drag"). When enabled, a tap followed by a finger held down
173 causes a single button down only, all motions of that finger
174 thus translate into dragging motion. Tap-and-drag requires
175 option Tapping to be enabled.
176
177 Option "TappingDragLock" "bool"
178 Enables or disables drag lock during tapping behavior. When
179 enabled, a finger up during tap-and-drag will not immediately
180 release the button. If the finger is set down again within the
181 timeout, the dragging process continues.
182
183 For all options, the options are only parsed if the device supports
184 that configuration option. For all options, the default value is the
185 one used by libinput. On configuration failure, the default value is
186 applied.
187
188
190 libinput exports runtime-configurable options as properties. If a prop‐
191 erty listed below is not available, the matching configuration option
192 is not available on the device. This however does not imply that the
193 feature is not available on the device. The following properties are
194 provided by the libinput driver.
195
196 libinput Accel Profiles Available
197 2 boolean values (8 bit, 0 or 1), in order "adaptive", "flat".
198 Indicates which acceleration profiles are available on this
199 device.
200
201 libinput Accel Profile Enabled
202 2 boolean values (8 bit, 0 or 1), in order "adaptive", "flat".
203 Indicates which acceleration profile is currently enabled on
204 this device.
205
206 libinput Accel Speed
207 1 32-bit float value, defines the pointer speed. Value range -1,
208 1
209
210 libinput Button Scrolling Button
211 1 32-bit value. Sets the button number to use for button
212 scrolling. This setting is independent of the scroll method, to
213 enable button scrolling the method must be set to button-
214 scrolling and a valid button must be set.
215
216 libinput Button Scrolling Button Lock Enabled
217 1 boolean value. If true, the scroll button lock is enabled.
218 This setting is independent of the scroll method or the scroll
219 button, to enable button scrolling the method must be set to
220 button-scrolling and a valid button must be set.
221
222 libinput Calibration Matrix
223 9 32-bit float values, representing a 3x3 calibration matrix,
224 order is row 1, row 2, row 3
225
226 libinput Click Methods Available
227 2 boolean values (8 bit, 0 or 1), in order "buttonareas",
228 "clickfinger". Indicates which click methods are available on
229 this device.
230
231 libinput Click Methods Enabled
232 2 boolean values (8 bit, 0 or 1), in order "buttonareas",
233 "clickfinger". Indicates which click methods are enabled on
234 this device.
235
236 libinput Drag Lock Buttons
237 Either one 8-bit value specifying the meta drag lock button, or
238 a list of button pairs. See section BUTTON DRAG LOCK for
239 details.
240
241 libinput Horizontal Scrolling Enabled
242 1 boolean value (8 bit, 0 or 1). Indicates whether horizontal
243 scrolling events are enabled or not.
244
245 libinput Left Handed Enabled
246 1 boolean value (8 bit, 0 or 1). Indicates if left-handed mode
247 is enabled or disabled.
248
249 libinput Middle Emulation Enabled
250 1 boolean value (8 bit, 0 or 1). Indicates if middle emulation
251 is enabled or disabled.
252
253 libinput Natural Scrolling Enabled
254 1 boolean value (8 bit, 0 or 1). 1 enables natural scrolling
255
256 libinput Rotation Angle
257 1 32-bit float value [0.0 to 360.0). Sets the rotation angle of
258 the device, clockwise of its natural neutral position.
259
260 libinput Scroll Methods Available
261 3 boolean values (8 bit, 0 or 1), in order "two-finger", "edge",
262 "button". Indicates which scroll methods are available on this
263 device.
264
265 libinput Scroll Method Enabled
266 3 boolean values (8 bit, 0 or 1), in order "two-finger", "edge",
267 "button". Indicates which scroll method is currently enabled on
268 this device.
269
270 libinput Send Events Modes Available
271 2 boolean values (8 bit, 0 or 1), in order "disabled" and "dis‐
272 abled-on-external-mouse". Indicates which send-event modes are
273 available on this device.
274
275 libinput Send Events Mode Enabled
276 2 boolean values (8 bit, 0 or 1), in order "disabled" and "dis‐
277 abled-on-external-mouse". Indicates which send-event modes is
278 currently enabled on this device.
279
280 libinput Tablet Tool Pressurecurve
281 4 32-bit float values [0.0 to 1.0]. See section TABLET TOOL
282 PRESSURE CURVE
283
284 libinput Tablet Tool Area Ratio
285 2 32-bit values, corresponding to width and height. Special
286 value 0, 0 resets to the default ratio. See section TABLET TOOL
287 AREA RATIO for more information.
288
289 libinput Tapping Enabled
290 1 boolean value (8 bit, 0 or 1). 1 enables tapping
291
292 libinput Tapping Button Mapping Enabled
293 2 boolean value (8 bit, 0 or 1), in order "lrm" and "lmr". Indi‐
294 cates which button mapping is currently enabled on this device.
295
296 libinput Tapping Drag Lock Enabled
297 1 boolean value (8 bit, 0 or 1). 1 enables drag lock during tap‐
298 ping
299
300 libinput Disable While Typing Enabled
301 1 boolean value (8 bit, 0 or 1). Indicates if disable while typ‐
302 ing is enabled or disabled.
303
304 Most properties have a libinput <property name> Default equivalent that
305 indicates the default value for this setting on this device.
306
307
309 X clients receive events with logical button numbers, where 1, 2, 3 are
310 usually interpreted as left, middle, right and logical buttons 4, 5, 6,
311 7 are usually interpreted as scroll up, down, left, right. The fourth
312 and fifth physical buttons on a device will thus send logical buttons 8
313 and 9. The ButtonMapping option adjusts the logical button mapping, it
314 does not affect how a physical button is mapped to a logical button.
315
316 Traditionally, a device was set to left-handed button mode by applying
317 a button mapping of "3 2 1 ..." On systems using the libinput Xorg
318 input driver it is recommended to use the LeftHanded option instead.
319
320 The libinput Xorg input driver does not use the button mapping after
321 setup. Use XSetPointerMapping(3) to modify the button mapping at run‐
322 time.
323
324
326 Button drag lock holds a button logically down even when the button
327 itself has been physically released since. Button drag lock comes in
328 two modes.
329
330 If in "meta" mode, a meta button click activates drag lock for the next
331 button press of any other button. A button click in the future will
332 keep that button held logically down until a subsequent click of that
333 same button. The meta button events themselves are discarded. A sepa‐
334 rate meta button click is required each time a drag lock should be
335 activated for a button in the future.
336
337 If in "pairs" mode, each button can be assigned a target locking but‐
338 ton. On button click, the target lock button is held logically down
339 until the next click of the same button. The button events themselves
340 are discarded and only the target button events are sent.
341
342 This feature is provided by this driver, not by libinput.
343
344
346 The pressure curve affects how stylus pressure is reported. By default,
347 the hardware pressure is reported as-is. By setting a pressure curve,
348 the feel of the stylus can be adjusted to be more like e.g. a pencil or
349 a brush.
350
351 The pressure curve is a cubic Bezier curve, drawn within a normalized
352 range of 0.0 to 1.0 between the four points provided. This normalized
353 range is applied to the tablet's pressure input so that the highest
354 pressure maps to 1.0. The points must have increasing x coordinates, if
355 x0 is larger than 0.0 all pressure values lower than x0 are equivalent
356 to y0. If x3 is less than 1.0, all pressure values higher than x3 are
357 equivalent to y3.
358
359 The input for a linear curve (default) is "0.0/0.0 0.0/0.0 1.0/1.0
360 1.0/1.0"; a slightly depressed curve (firmer) might be "0.0/0.0
361 0.05/0.0 1.0/0.95 1.0/1.0"; a slightly raised curve (softer) might be
362 "0.0/0.0 0.0/0.05 0.95/1.0 1.0/1.0".
363
364 This feature is provided by this driver, not by libinput.
365
366
368 By default, a tablet tool can access the whole sensor area and the
369 tablet area is mapped to the available screen area. For external
370 tablets like the Wacom Intuos series, the height:width ratio of the
371 tablet may be different to that of the monitor, causing the skew of
372 input data.
373
374 To avoid this skew of input data, an area ratio may be set to match the
375 ratio of the screen device. For example, a ratio of 4:3 will reduce the
376 available area of the tablet to the largest available area with a ratio
377 of 4:3. Events within this area will scale to the tablet's announced
378 axis range, the area ratio is thus transparent to the X server. Any
379 events outside this area will send events equal to the maximum value of
380 that axis. The area always starts at the device's origin in it's cur‐
381 rent rotation, i.e. it takes left-handed-ness into account.
382
383 This feature is provided by this driver, not by libinput.
384
385
387 This driver does not work with Option "Device" set to an event node in
388 /dev/input/by-id and /dev/input/by-path. This can be usually be worked
389 by using Section "InputClass" with an appropriate Match* statement in
390 the xorg.conf(5).
391
392 This driver does not know about the display pixel density and submits
393 motion events assuming an approximate display density of 96dpi. On
394 high-dpi screens this results in a slower physical motion of the cursor
395 (a one-pixel movement is a smaller physical movement on the screen).
396 This can make interaction with the desktop difficult.
397
398 Option "DPIScaleFactor" float
399 This is a temporary solution. The factor should be set to the
400 approximate ratio of the host display compared to the default
401 96dpi. For example, a display with 200dpi should set a factor of
402 2.0.
403
404 If set, x/y motion will be unconditionally multiplied by this factor,
405 resulting in faster movement of the cursor. Note that this may make
406 some pixels unadressable and should be used with caution.
407
408 This option is a temporary solution. It may be removed in any future
409 update of this driver.
410
411
413 Peter Hutterer
414
416 Xorg(1), xorg.conf(5), Xserver(1), X(7)
417
418
419
420X Version 11 xf86-input-libinput 0.30.0 LIBINPUT(4)