x SuSE Linux 13.1-RELEASE x
x SuSE Linux 13.1-RELEASEx
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
covers 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 documenta-
tion.
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 but-
ton 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 BUT-
TON 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 de-
fault. 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
button and the button is logically down, x/y axis movement is
converted 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
methods twofinger, edge, button. See section SCROLL PIXEL DIS-
TANCE 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 "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/mid-
dle 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 translate into dragging motion. Tap-and-drag requires op-
tion 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
feature is not available on the device. The following properties are
provided 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
numbers, 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
CUSTOM 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
button-scrolling and a valid button must be set.
libinput Calibration Matrix
9 32-bit float values, representing a 3x3 calibration matrix,
order is row 1, row 2, row 3
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 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 de-
tails.
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 trig-
ger 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
PRESSURE 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 in-
put 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 sepa-
rate meta button click is required each time a drag lock should be ac-
tivated for a button in the future.
If in "pairs" mode, each button can be assigned a target locking but-
ton. On button click, the target lock button is held logically down
until the next click of the same button. The button events themselves
are discarded 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 in-
put 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
driver 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
interpolation/extrapolation of the two closest points will be calcu-
lated.
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.4.0 xf86-input-libinput LIBINPUT(4)
Want to link to this manual page? Use this URL:
<https://star2.abcm.com/cgi-bin/bsdi-man?query=libinput&sektion=4&manpath=>