dwww Home | Manual pages | Find package

LIBINPUT(4)                 Kernel Interfaces Manual                LIBINPUT(4)

NAME
       libinput - libinput-based X.Org input driver

SYNOPSIS
       Section "InputDevice"
         Identifier "devname"
         Driver "libinput"
         Option "Device"   "devpath"
         ...
       EndSection

NOTE
       This  is the man page for the X input driver. If you are looking for the
       library  documentation,  go   to   http://wayland.freedesktop.org/libin-
       put/doc/

DESCRIPTION
       libinput  is  an Xorg input driver based on libinput.  It therefore sup-
       ports all input devices that libinput can handle, including  most  mice,
       keyboards, tablets and touchscreens.

       It  is  recommended that libinput devices are configured through the In-
       putClass directive (refer to xorg.conf(5)) instead of manual  per-device
       configuration.  Devices  configured in the xorg.conf(5) are not hot-plug
       capable.

CONFIGURATION DETAILS
       Please refer to xorg.conf(5) for general configuration details  and  for
       options that can be used with all input drivers.  This section only cov-
       ers configuration details specific to this driver.

       The following driver Options are supported:

       Option "AccelProfile" "string"
              Sets  the pointer acceleration profile to the given profile. Per-
              mitted values are adaptive, flat, custom.  Not all  devices  sup-
              port  this  option  or all profiles. If a profile is unsupported,
              the default profile for this device is used. For a description on
              the profiles and their behavior, see the libinput documentation.

       Option "AccelSpeed" "float"
              Sets the pointer acceleration speed within  the  range  [-1,  1].
              This only applies to the flat or adaptive profile.

       Option "AccelPointsFallback" "string"
       Option "AccelPointsMotion" "string"
       Option "AccelPointsScroll" "string"
              Sets  the points of the Fallback/Motion/Scroll acceleration func-
              tions.  The string must be a  space-separated  list  of  floating
              point  non-negative  numbers, e.g.  "0.0 1.0 2.4 2.5".  This only
              applies to the custom profile.  See section  CUSTOM  ACCELERATION
              PROFILE

       Option "AccelStepFallback" "float"
       Option "AccelStepMotion" "float"
       Option "AccelStepScroll" "float"
              Sets  the  step  between the points of the Fallback/Motion/Scroll
              acceleration functions.  When a step of 0.0 is  provided,  libin-
              put's  Fallback acceleration function is used.  This only applies
              to the custom profile.  See section CUSTOM ACCELERATION PROFILE

       Option "ButtonMapping" "string"
              Sets the logical button mapping for this device,  see  XSetPoint-
              erMapping(3). The string must be a space-separated list of button
              mappings  in  the  order  of  the  logical buttons on the device,
              starting with button 1.  The default mapping is "1 2 3 ... 32". A
              mapping of 0 deactivates the button. Multiple  buttons  can  have
              the  same mapping.  Invalid mapping strings are discarded and the
              default mapping is used for all buttons. Buttons not specified in
              the user's mapping use the default mapping.  See  section  BUTTON
              MAPPING for more details.

       Option "CalibrationMatrix" "string"
              A  string of 9 space-separated floating point numbers, in the or-
              der "a b c d e f g h i".  Sets the calibration matrix to the  3x3
              matrix  where the first row is (abc), the second row is (def) and
              the third row is (ghi).

       Option "ClickMethod" "string"
              Enables a click method. Permitted values are  none,  buttonareas,
              clickfinger.   Not  all devices support all methods, if an option
              is unsupported, the default click method for this device is used.

       Option "DisableWhileTyping" "bool"
              Indicates if the touchpad should be disabled while typing on  the
              keyboard  (this  does  not apply to modifier keys such as Ctrl or
              Alt).

       Option "Device" "string"
              Specifies the device through which the device  can  be  accessed.
              This  will  generally be of the form "/dev/input/eventX", where X
              is some integer.  When using InputClass directives,  this  option
              is  set  by the server.  The mapping from device node to hardware
              is system-dependent. Property: "Device Node" (read-only).

       Option "DragLockButtons" "L1 B1 L2 B2 ..."
              Sets "drag lock buttons" that simulate a  button  logically  down
              even when it has been physically released. To logically release a
              locked button, a second click of the same button is required.

              If  the option is a single button number, that button acts as the
              "meta" locking button for the next  button  number.  See  section
              BUTTON DRAG LOCK for details.

              If  the option is a list of button number pairs, the first number
              of each number pair is the lock button,  the  second  number  the
              logical  button number to be locked. See section BUTTON DRAG LOCK
              for details.

              For both meta and button pair configuration, the  button  numbers
              are  device  button numbers, i.e. the ButtonMapping applies after
              drag lock.

       Option "HighResolutionWheelScrolling" "bool"
              Disables high-resolution wheel scroll events, enabled by default.
              When enabled, the  driver  forwards  only  high-resolution  wheel
              scroll  events from libinput.  When disabled, the driver forwards
              legacy wheel scroll events instead.

       Option "HorizontalScrolling" "bool"
              Enables or disables horizontal  scrolling.  When  disabled,  this
              driver  will  discard any horizontal scroll events from libinput.
              This does not disable horizontal scroll events from libinput;  it
              merely  discards  the horizontal axis from any scroll events. De-
              fault is enabled.

       Option "LeftHanded" "bool"
              Enables left-handed button orientation, i.e.  swapping  left  and
              right buttons.

       Option "MiddleEmulation" "bool"
              Enables  middle button emulation. When enabled, pressing the left
              and right buttons simultaneously produces a middle  mouse  button
              click.

       Option "NaturalScrolling" "bool"
              Enables or disables natural scrolling behavior.

       Option "RotationAngle" "float"
              Sets  the rotation angle of the device to the given angle, in de-
              grees clockwise. The angle must be between  0.0  (inclusive)  and
              360.0 (exclusive).

       Option "ScrollButton" "int"
              Designates a button as scroll button. If the ScrollMethod is but-
              ton  and  the button is logically down, x/y axis movement is con-
              verted into scroll events.

       Option "ScrollButtonLock" "bool"
              Enables or disables the  scroll  button  lock.  If  enabled,  the
              ScrollButton  is  considered logically down after the first click
              and remains down until the second click of that button.  If  dis-
              abled  (the default), the ScrollButton button is considered logi-
              cally down while held down and up once physically released.

       Option "ScrollMethod" "string"
              Enables a scroll method. Permitted values  are  none,  twofinger,
              edge,  button.  Not all devices support all options, if an option
              is unsupported, the default scroll  option  for  this  device  is
              used.

       Option "ScrollPixelDistance" "int"
              Sets  the movement distance, in "pixels", required to trigger one
              logical wheel click. This option only applies to the scroll meth-
              ods twofinger, edge, button.  See section SCROLL  PIXEL  DISTANCE
              for more details.

       Option "SendEventsMode" "(disabled|enabled|disabled-on-external-mouse)"
              Sets  the send events mode to disabled, enabled, or "disable when
              an external mouse is connected".

       Option "TabletToolPressureCurve" "x0/y0 x1/y1 x2/y2 x3/y3"
              Set the pressure curve for a tablet stylus to the  bezier  formed
              by  the four points. The respective x/y coordinate must be in the
              [0.0, 1.0] range. For more information see section TABLET  STYLUS
              PRESSURE CURVE.

       Option "TabletToolPressureRange" "min max"
              Set the pressure range for a tablet stylus to the given subset of
              the  physical range. The min/max values must be in the [0.0, 1.0]
              range. For example a min of 0.3 means  the  tablet  will  send  0
              pressure for anything equal or below 30% of the physical pressure
              range  and  a max of 0.7 means the tablet sends its maximum pres-
              sure value for any pressure equal or higher to 70% of the  physi-
              cal pressure range.

       Option "TabletToolAreaRatio" "w:h"
              Sets  the area ratio for a tablet tool. The area always starts at
              the origin (0/0) and expands to the largest available  area  with
              the  specified aspect ratio. Events outside this area are cropped
              to the area. The special value "default" is used for the  default
              mapping  (i.e.  the  device-native mapping). For more information
              see section TABLET TOOL AREA RATIO.

       Option "Tapping" "bool"
              Enables or disables tap-to-click behavior.

       Option "TappingButtonMap" "(lrm|lmr)"
              Set the button mapping for 1/2/3-finger taps to left/right/middle
              or left/middle/right, respectively.

       Option "TappingDrag" "bool"
              Enables or  disables  drag  during  tapping  behavior  ("tap-and-
              drag"). When enabled, a tap followed by a finger held down causes
              a single button down only, all motions of that finger thus trans-
              late  into dragging motion.  Tap-and-drag requires option Tapping
              to be enabled.

       Option "TappingDragLock" "bool"
              Enables or disables drag lock during tapping behavior.  When  en-
              abled,  a  finger up during tap-and-drag will not immediately re-
              lease the button. If the finger is  set  down  again  within  the
              timeout, the dragging process continues.

       For all options, the options are only parsed if the device supports that
       configuration option. For all options, the default value is the one used
       by libinput. On configuration failure, the default value is applied.

SUPPORTED PROPERTIES
       libinput  exports runtime-configurable options as properties. If a prop-
       erty listed below is not available, the matching configuration option is
       not available on the device. This however does not imply that  the  fea-
       ture  is  not available on the device. The following properties are pro-
       vided by the libinput driver.

       libinput Accel Profiles Available
              3 boolean values (8 bit, 0 or 1), in  order  "adaptive",  "flat",
              "custom".  Indicates which acceleration profiles are available on
              this device.

       libinput Accel Profile Enabled
              3  boolean  values  (8 bit, 0 or 1), in order "adaptive", "flat",
              "custom".  Indicates which acceleration profile is currently  en-
              abled on this device.

       libinput Accel Speed
              1  32-bit float value, defines the pointer speed. Value range -1,
              1.  This only applies to the flat or adaptive profile.

       libinput Accel Custom Fallback Points
       libinput Accel Custom Motion Points
       libinput Accel Custom Scroll Points
              A space-separated list of 32-bit floating point non-negative num-
              bers, e.g.  "0.0 1.0 2.4 2.5".  Sets  the  points  of  the  Fall-
              back/Motion/Scroll  acceleration functions.  This only applies to
              the custom profile.  See section CUSTOM ACCELERATION PROFILE

       libinput Accel Custom Fallback Step
       libinput Accel Custom Motion Step
       libinput Accel Custom Scroll Step
              1 32-bit float value, sets the step between  the  points  of  the
              Fallback/Motion/Scroll  acceleration  functions.   When a step of
              0.0 is provided, libinput's  Fallback  acceleration  function  is
              used.  This only applies to the custom profile.  See section CUS-
              TOM ACCELERATION PROFILE

       libinput Button Scrolling Button
              1  32-bit  value.  Sets  the  button  number  to  use  for button
              scrolling. This setting is independent of the scroll  method,  to
              enable  button  scrolling  the  method  must  be  set  to button-
              scrolling and a valid button must be set.

       libinput Button Scrolling Button Lock Enabled
              1 boolean value. If true, the  scroll  button  lock  is  enabled.
              This  setting  is  independent of the scroll method or the scroll
              button, to enable button scrolling the method must be set to but-
              ton-scrolling and a valid button must be set.

       libinput Calibration Matrix
              9 32-bit float values, representing a 3x3 calibration matrix, or-
              der is row 1, row 2, row 3

       libinput Click Methods Available
              2 boolean values (8 bit, 0 or 1), in order "buttonareas", "click-
              finger".  Indicates which click methods are available on this de-
              vice.

       libinput Click Methods Enabled
              2 boolean values (8 bit, 0 or 1), in order "buttonareas", "click-
              finger".  Indicates which click methods are enabled on  this  de-
              vice.

       libinput Drag Lock Buttons
              Either one 8-bit value specifying the meta drag lock button, or a
              list of button pairs. See section BUTTON DRAG LOCK for details.

       libinput High Resolution Wheel Scroll Enabled
              1  boolean  value (8 bit, 0 or 1). Indicates whether high-resolu-
              tion wheel scroll events are enabled or not.

       libinput Horizontal Scroll Enabled
              1 boolean value (8 bit, 0 or  1).  Indicates  whether  horizontal
              scrolling events are enabled or not.

       libinput Left Handed Enabled
              1 boolean value (8 bit, 0 or 1). Indicates if left-handed mode is
              enabled or disabled.

       libinput Middle Emulation Enabled
              1 boolean value (8 bit, 0 or 1). Indicates if middle emulation is
              enabled or disabled.

       libinput Natural Scrolling Enabled
              1 boolean value (8 bit, 0 or 1). 1 enables natural scrolling

       libinput Rotation Angle
              1  32-bit  float value [0.0 to 360.0). Sets the rotation angle of
              the device, clockwise of its natural neutral position.

       libinput Scroll Methods Available
              3 boolean values (8 bit, 0 or 1), in order "two-finger",  "edge",
              "button".   Indicates  which scroll methods are available on this
              device.

       libinput Scroll Method Enabled
              3 boolean values (8 bit, 0 or 1), in order "two-finger",  "edge",
              "button".   Indicates which scroll method is currently enabled on
              this device.

       libinput Scroll Pixel Distance
              1 32-bit value (nonzero, with  additional  implementation-defined
              range checks).  Changes the movement distance required to trigger
              one logical wheel click.

       libinput Send Events Modes Available
              2  boolean  values (8 bit, 0 or 1), in order "disabled" and "dis-
              abled-on-external-mouse". Indicates which  send-event  modes  are
              available on this device.

       libinput Send Events Mode Enabled
              2  boolean  values (8 bit, 0 or 1), in order "disabled" and "dis-
              abled-on-external-mouse". Indicates  which  send-event  modes  is
              currently enabled on this device.

       libinput Tablet Tool Pressurecurve
              4 32-bit float values [0.0 to 1.0]. See section TABLET TOOL PRES-
              SURE CURVE

       libinput Tablet Tool Area Ratio
              2 32-bit values, corresponding to width and height. Special value
              0,  0  resets  to the default ratio. See section TABLET TOOL AREA
              RATIO for more information.

       libinput Tapping Enabled
              1 boolean value (8 bit, 0 or 1). 1 enables tapping

       libinput Tapping Button Mapping Enabled
              2 boolean value (8 bit, 0 or 1), in order "lrm" and "lmr".  Indi-
              cates which button mapping is currently enabled on this device.

       libinput Tapping Drag Lock Enabled
              1  boolean value (8 bit, 0 or 1). 1 enables drag lock during tap-
              ping

       libinput Disable While Typing Enabled
              1 boolean value (8 bit, 0 or 1). Indicates if disable while  typ-
              ing is enabled or disabled.

       Most  properties have a libinput <property name> Default equivalent that
       indicates the default value for this setting on this device.

BUTTON MAPPING
       X clients receive events with logical button numbers, where 1, 2, 3  are
       usually  interpreted as left, middle, right and logical buttons 4, 5, 6,
       7 are usually interpreted as scroll up, down, left,  right.  The  fourth
       and  fifth physical buttons on a device will thus send logical buttons 8
       and 9.  The ButtonMapping option adjusts the logical button mapping,  it
       does not affect how a physical button is mapped to a logical button.

       Traditionally, a device was set to left-handed button mode by applying a
       button  mapping  of "3 2 1 ..." On systems using the libinput Xorg input
       driver it is recommended to use the LeftHanded option instead.

       The libinput Xorg input driver does not use  the  button  mapping  after
       setup.   Use  XSetPointerMapping(3) to modify the button mapping at run-
       time.

BUTTON DRAG LOCK
       Button drag lock holds a button logically down even when the button  it-
       self  has  been physically released since. Button drag lock comes in two
       modes.

       If in "meta" mode, a meta button click activates drag lock for the  next
       button press of any other button. A button click in the future will keep
       that  button  held  logically down until a subsequent click of that same
       button. The meta button events themselves are discarded. A separate meta
       button click is required each time a drag lock should be activated for a
       button in the future.

       If in "pairs" mode, each button can be assigned a target locking button.
       On button click, the target lock button is held logically down until the
       next click of the same button. The button  events  themselves  are  dis-
       carded and only the target button events are sent.

       This feature is provided by this driver, not by libinput.

TABLET TOOL PRESSURECURVE
       The  pressure curve affects how stylus pressure is reported. By default,
       the hardware pressure is reported as-is. By setting  a  pressure  curve,
       the  feel of the stylus can be adjusted to be more like e.g. a pencil or
       a brush.

       The pressure curve is a cubic Bezier curve, drawn  within  a  normalized
       range  of  0.0  to 1.0 between the four points provided. This normalized
       range is applied to the tablet's pressure  input  so  that  the  highest
       pressure  maps to 1.0. The points must have increasing x coordinates, if
       x0 is larger than 0.0 all pressure values lower than x0  are  equivalent
       to  y0.  If x3 is less than 1.0, all pressure values higher than x3  are
       equivalent to y3.

       The input for a linear  curve  (default) is   "0.0/0.0  0.0/0.0  1.0/1.0
       1.0/1.0"; a slightly depressed curve (firmer) might be "0.0/0.0 0.05/0.0
       1.0/0.95  1.0/1.0";  a slightly raised curve (softer) might  be "0.0/0.0
       0.0/0.05 0.95/1.0 1.0/1.0".

       This feature is provided by this driver, not by libinput.

TABLET TOOL AREA RATIO
       By default, a tablet tool can access  the  whole  sensor  area  and  the
       tablet area is mapped to the available screen area. For external tablets
       like  the  Wacom Intuos series, the height:width ratio of the tablet may
       be different to that of the monitor, causing the skew of input data.

       To avoid this skew of input data, an area ratio may be set to match  the
       ratio  of the screen device. For example, a ratio of 4:3 will reduce the
       available area of the tablet to the largest available area with a  ratio
       of  4:3.  Events  within  this area will scale to the tablet's announced
       axis range, the area ratio is thus transparent  to  the  X  server.  Any
       events  outside this area will send events equal to the maximum value of
       that axis.  The area always starts at the device's origin in  it's  cur-
       rent rotation, i.e.  it takes left-handed-ness into account.

       This feature is provided by this driver, not by libinput.

SCROLL PIXEL DISTANCE
       The  X  server  does not support per-pixel scrolling but it does support
       smooth scrolling. All scroll events however are based around  a  logical
       unit of scrolling (traditionally corresponding to a wheel click).  It is
       thus  not possible to scroll by 10 pixels, but it is possible for a dri-
       ver to scroll by 1/10th of a logical wheel click.

       libinput provides scroll data in pixels. The ScrollPixelDistance  option
       defines  the amount of movement equivalent to one wheel click. For exam-
       ple, a value of 50 means the user has to move a finger by 50  pixels  to
       generate  one  logical  click  event and each pixel is 1/50th of a wheel
       click.

CUSTOM ACCELERATION PROFILE
       The custom pointer acceleration profile gives users  full  control  over
       the  acceleration  behavior at different speeds. libinput exposes an ac-
       celeration function f(x) where the x-axis is the device speed in  device
       units per millisecond and the y-axis is the pointer speed.

       The  custom  acceleration  function  is defined using n points which are
       spaced uniformly along the x-axis, starting from  0  and  continuing  in
       constant steps.  Thus the points defining the custom function are:
       (0 * step, f[0]), (1 * step, f[1]), ..., ((n-1) * step, f[n-1])
       When a velocity value does not lie exactly on those points, a linear in-
       terpolation/extrapolation of the two closest points will be calculated.

       There  are  3 custom acceleration function, which are used for different
       movement types:
       ┌───────────────┬──────────────────────────────────┬──────────────────┐
       │ Movement type │  Uses                            │  supported by    │
       ├───────────────┼──────────────────────────────────┼──────────────────┤
       │ Fallback      │  Catch-all default movement type │  All devices     │
       ├───────────────┼──────────────────────────────────┼──────────────────┤
       │ Motion        │  Used for pointer motion         │  All devices     │
       ├───────────────┼──────────────────────────────────┼──────────────────┤
       │ Scroll        │  Used for scroll movement        │  Mouse, Touchpad │
       └───────────────┴──────────────────────────────────┴──────────────────┘

       See  libinput  library  documentation  of  more  details:   https://way-
       land.freedesktop.org/libinput/doc/latest/pointer-acceleration.html#the-
       custom-acceleration-profile

BUGS
       This  driver  does not work with Option "Device" set to an event node in
       /dev/input/by-id and /dev/input/by-path. This can be usually  be  worked
       by  using  Section  "InputClass" with an appropriate Match* statement in
       the xorg.conf(5).

AUTHORS
       Peter Hutterer

SEE ALSO
       Xorg(1), xorg.conf(5), Xserver(1), X(7)

1.5.0                         xf86-input-libinput                   LIBINPUT(4)

Generated by dwww version 1.16 on Sat Oct 3 06:00:37 CEST 2026.