1LIBINPUT(4)                Kernel Interfaces Manual                LIBINPUT(4)
2
3
4

NAME

6       libinput - libinput-based X.Org input driver
7

SYNOPSIS

9       Section "InputDevice"
10         Identifier "devname"
11         Driver "libinput"
12         Option "Device"   "devpath"
13         ...
14       EndSection
15
16

NOTE

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

DESCRIPTION

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

CONFIGURATION DETAILS

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

SUPPORTED PROPERTIES

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

BUTTON MAPPING

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

BUTTON DRAG LOCK

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

TABLET TOOL PRESSURECURVE

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

TABLET TOOL AREA RATIO

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

BUGS

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

AUTHORS

413       Peter Hutterer
414

SEE ALSO

416       Xorg(1), xorg.conf(5), Xserver(1), X(7)
417
418
419
420X Version 11              xf86-input-libinput 0.30.0               LIBINPUT(4)
Impressum