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
270
271 libinput Tablet Tool Area Ratio
272 2 32-bit values, corresponding to width and height. Special
273 value 0, 0 resets to the default ratio. See section TABLET TOOL
274 AREA RATIO for more information.
275
276 libinput Tapping Enabled
277 1 boolean value (8 bit, 0 or 1). 1 enables tapping
278
279 libinput Tapping Button Mapping Enabled
280 2 boolean value (8 bit, 0 or 1), in order "lrm" and "lmr". Indi‐
281 cates which button mapping is currently enabled on this device.
282
283 libinput Tapping Drag Lock Enabled
284 1 boolean value (8 bit, 0 or 1). 1 enables drag lock during tap‐
285 ping
286
287 libinput Disable While Typing Enabled
288 1 boolean value (8 bit, 0 or 1). Indicates if disable while typ‐
289 ing is enabled or disabled.
290
291 Most properties have a libinput <property name> Default equivalent that
292 indicates the default value for this setting on this device.
293
294
296 X clients receive events with logical button numbers, where 1, 2, 3 are
297 usually interpreted as left, middle, right and logical buttons 4, 5, 6,
298 7 are usually interpreted as scroll up, down, left, right. The fourth
299 and fifth physical buttons on a device will thus send logical buttons 8
300 and 9. The ButtonMapping option adjusts the logical button mapping, it
301 does not affect how a physical button is mapped to a logical button.
302
303 Traditionally, a device was set to left-handed button mode by applying
304 a button mapping of "3 2 1 ..." On systems using the libinput Xorg
305 input driver it is recommended to use the LeftHanded option instead.
306
307 The libinput Xorg input driver does not use the button mapping after
308 setup. Use XSetPointerMapping(3) to modify the button mapping at run‐
309 time.
310
311
313 Button drag lock holds a button logically down even when the button
314 itself has been physically released since. Button drag lock comes in
315 two modes.
316
317 If in "meta" mode, a meta button click activates drag lock for the next
318 button press of any other button. A button click in the future will
319 keep that button held logically down until a subsequent click of that
320 same button. The meta button events themselves are discarded. A sepa‐
321 rate meta button click is required each time a drag lock should be
322 activated for a button in the future.
323
324 If in "pairs" mode, each button can be assigned a target locking but‐
325 ton. On button click, the target lock button is held logically down
326 until the next click of the same button. The button events themselves
327 are discarded and only the target button events are sent.
328
329 This feature is provided by this driver, not by libinput.
330
331
333 The pressure curve affects how stylus pressure is reported. By default,
334 the hardware pressure is reported as-is. By setting a pressure curve,
335 the feel of the stylus can be adjusted to be more like e.g. a pencil or
336 a brush.
337
338 The pressure curve is a cubic Bezier curve, drawn within a normalized
339 range of 0.0 to 1.0 between the four points provided. This normalized
340 range is applied to the tablet's pressure input so that the highest
341 pressure maps to 1.0. The points must have increasing x coordinates, if
342 x0 is larger than 0.0 all pressure values lower than x0 are equivalent
343 to y0. If x3 is less than 1.0, all pressure values higher than x3 are
344 equivalent to y3.
345
346 The input for a linear curve (default) is "0.0/0.0 0.0/0.0 1.0/1.0
347 1.0/1.0"; a slightly depressed curve (firmer) might be "0.0/0.0
348 0.05/0.0 1.0/0.95 1.0/1.0"; a slightly raised curve (softer) might be
349 "0.0/0.0 0.0/0.05 0.95/1.0 1.0/1.0".
350
351 This feature is provided by this driver, not by libinput.
352
353
355 By default, a tablet tool can access the whole sensor area and the
356 tablet area is mapped to the available screen area. For external
357 tablets like the Wacom Intuos series, the height:width ratio of the
358 tablet may be different to that of the monitor, causing the skew of
359 input data.
360
361 To avoid this skew of input data, an area ratio may be set to match the
362 ratio of the screen device. For example, a ratio of 4:3 will reduce the
363 available area of the tablet to the largest available area with a ratio
364 of 4:3. Events within this area will scale to the tablet's announced
365 axis range, the area ratio is thus transparent to the X server. Any
366 events outside this area will send events equal to the maximum value of
367 that axis. The area always starts at the device's origin in it's cur‐
368 rent rotation, i.e. it takes left-handed-ness into account.
369
370 This feature is provided by this driver, not by libinput.
371
372
374 This driver does not work with Option "Device" set to an event node in
375 /dev/input/by-id and /dev/input/by-path. This can be usually be worked
376 by using Section "InputClass" with an appropriate Match* statement in
377 the xorg.conf(5).
378
379 This driver does not know about the display pixel density and submits
380 motion events assuming an approximate display density of 96dpi. On
381 high-dpi screens this results in a slower physical motion of the cursor
382 (a one-pixel movement is a smaller physical movement on the screen).
383 This can make interaction with the desktop difficult.
384
385 Option "DPIScaleFactor" float
386 This is a temporary solution. The factor should be set to the
387 approximate ratio of the host display compared to the default
388 96dpi. For example, a display with 200dpi should set a factor of
389 2.0.
390
391 If set, x/y motion will be unconditionally multiplied by this factor,
392 resulting in faster movement of the cursor. Note that this may make
393 some pixels unadressable and should be used with caution.
394
395 This option is a temporary solution. It may be removed in any future
396 update of this driver.
397
398
400 Peter Hutterer
401
403 Xorg(1), xorg.conf(5), Xserver(1), X(7)
404
405
406
407X Version 11 xf86-input-libinput 0.29.0 LIBINPUT(4)