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/libinput/doc/

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

It is recommended that libinput devices are configured through the InputClass 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 covers configuration details specific to this driver.

The following driver Options are supported:

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. The mapping from device node to hardware is system-dependent. Property: "Device Node" (read-only).

Option "AccelSpeed" "float"
    Sets the pointer acceleration speed within the range [-1, 1]

Option "ButtonMapping" "string"
    Sets the logical button mapping for this device, see XSetPointerMapping(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. 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 "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 "ScrollButton" "int"
    Designates a button as scroll button. If the ScrollMethod is button and the button is logically held down, x/y axis movement is converted into scroll events.

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 "SendEventsMode" "(disabled|enabled|disabled-on-external-mouse)"
    Sets the send events mode to disabled, enabled, or "disable when an external mouse is connected".

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

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 property listed below is not available, the matching configuration option is not available on the device. This however does not imply that the feature is not available on the device. The following properties are provided by the libinput driver.

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

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

libinput Accel Speed
    1 32-bit float value, defines the pointer speed. Value range -1, 1

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

libinput Send Events Modes Available
    2 boolean values (8 bit, 0 or 1), in order "disabled" and "disabled-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 "disabled-on-external-mouse". Indicates which send-event modes is currently enabled on this device.

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

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 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 Click Methods Available
    2 boolean values (8 bit, 0 or 1), in order "buttonareas", "clickfinger". Indicates which click methods are available on this device.

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

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

The above 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 runtime.

AUTHORS
Peter Hutterer

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