evdev(4)
NAME
evdev - Generic Linux input driver
SYNOPSIS
Section "InputDevice"
Identifier "devname"
Driver "evdev"
Option "Device" "devpath"
Option "Emulate3Buttons" "True"
Option "Emulate3Timeout" "50"
Option "GrabDevice" "False"
...
EndSection
DESCRIPTION
evdev is an Xorg input driver for Linuxs generic event devices. It
therefore supports all input devices that the kernel knows about,
including most mice, keyboards, tablets and touchscreens. evdev is the
default driver on the major Linux distributions.
The evdev driver can serve as both a pointer and a keyboard input
device. Multiple input devices are supported by multiple instances of
this driver, with one InputDevice section of your xorg.conf for each
input device that will use this driver.
It is recommended that evdev 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.
SUPPORTED HARDWARE
In general, any input device that the kernel has a driver for can be
accessed through the evdev driver. See the Linux kernel documentation
for a complete list.
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 "ButtonMapping" "string"
Sets the button mapping for this device. The mapping is a space-
separated list of button mappings that correspond in order to
the physical buttons on the device (i.e. the first number is the
mapping for button 1, etc.). The default mapping is "1 2 3 ...
32". A mapping of 0 deactivates the button. Multiple buttons can
have the same mapping. For example, a left-handed mouse with
deactivated scroll-wheel would use a mapping of "3 2 1 0 0".
Invalid mappings are ignored and the default mapping is used.
Buttons not specified in the user's mapping use the default
mapping.
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 "DragLockButtons" "L1 B2 L3 B4"
Sets "drag lock buttons" that simulate holding a button down, so
that low dexterity people do not have to hold a button down at
the same time they move a mouse cursor. Button numbers occur in
pairs, with the lock button number occurring first, followed by
the button number that is the target of the lock button.
Property: "Evdev Drag Lock Buttons".
Option "DragLockButtons" "M1"
Sets a "master drag lock button" that acts as a "Meta Key"
indicating that the next button pressed is to be "drag locked".
Property: "Evdev Drag Lock Buttons".
Option "Emulate3Buttons" "boolean"
Enable/disable the emulation of the third (middle) mouse
button for mice which only have two physical buttons.
The third button is emulated by pressing both buttons
simultaneously. Default: off. Property: "Evdev Middle
Button Emulation".
Option "Emulate3Timeout" "integer"
Sets the timeout (in milliseconds) that the driver waits
before deciding if two buttons where pressed
"simultaneously" when 3 button emulation is enabled.
Default: 50. Property: "Evdev Middle Button Timeout".
Option "EmulateWheel" "boolean"
Enable/disable "wheel" emulation. Wheel emulation means
emulating button press/release events when the mouse is
moved while a specific real button is pressed. Wheel
button events (typically buttons 4 and 5) are usually
used for scrolling. Wheel emulation is useful for
getting wheel-like behaviour with trackballs. It can
also be useful for mice with 4 or more buttons but no
wheel. See the description of the EmulateWheelButton,
EmulateWheelInertia, EmulateWheelTimeout, XAxisMapping,
and YAxisMapping options. Default: off. Property "Evdev
Wheel Emulation".
Option "EmulateWheelButton" "integer"
Specifies which button must be held down to enable wheel
emulation mode. While this button is down, X and/or Y
pointer movement will generate button press/release
events as specified for the XAxisMapping and YAxisMapping
settings. If the button is 0 and EmulateWheel is on, any
motion of the device is converted into wheel events.
Default: 4. Property: "Evdev Wheel Emulation Button".
Option "EmulateWheelInertia" "integer"
Specifies how far (in pixels) the pointer must move to
generate button press/release events in wheel emulation
mode. Default: 10. Property: "Evdev Wheel Emulation
Inertia".
This value must be set for any device does not resemble a
standard mouse. Specifically, on absolute devices such
as tablets the value should be set to a reasonable
fraction of the expected movement to avoid excess scroll
events.
WARNING: the name "inertia" is a misnomer. This option
defines the distance required to generate one scroll
event similar to the VertScrollDelta and HorizScrollDelta
options. It does not enable inertia in the physical
sense, scrolling stops immediately once the movement has
stopped.
Option "EmulateWheelTimeout" "integer"
Specifies the time in milliseconds the EmulateWheelButton
must be pressed before wheel emulation is started. If the
EmulateWheelButton is released before this timeout, the
original button press/release event is sent. Default:
200. Property: "Evdev Wheel Emulation Timeout".
Option "EmulateThirdButton" "boolean"
Enable third button emulation. Third button emulation
emits a right button event (by default) by pressing and
holding the first button. The first button must be held
down for the configured timeout and must not move more
than the configured threshold for the emulation to
activate. Otherwise, the first button event is posted as
normal. Default: off. Property: "Evdev Third Button
Emulation".
Option "EmulateThirdButtonTimeout" "integer"
Specifies the timeout in milliseconds between the initial
button press and the generation of the emulated button
event. Default: 1000. Property: "Evdev Third Button
Emulation Timeout".
Option "EmulateThirdButtonButton" "integer"
Specifies the physical button number to be emitted if
third button emulation is triggered. Default: 3.
Property: "Evdev Third Button Button".
Option "EmulateThirdButtonMoveThreshold" "integer"
Specifies the maximum move fuzz in device coordinates for
third button emulation. If the device moves by more than
this threshold before the third button emulation is
triggered, the emulation is cancelled and a first button
event is generated as normal. Default: 20. Property:
"Evdev Third Button Emulation Threshold".
Option "GrabDevice" "boolean"
Force a grab on the event device. Doing so will ensure
that no other driver can initialise the same device and
it will also stop the device from sending events to
/dev/kbd or /dev/input/mice. Events from this device will
not be sent to virtual devices (e.g. rfkill or the
Macintosh mouse button emulation). Default: disabled.
Option "InvertX" "Bool"
Option "InvertY" "Bool"
Invert the given axis. Default: off. Property: "Evdev
Axis Inversion".
Option "IgnoreRelativeAxes" "Bool"
Option "IgnoreAbsoluteAxes" "Bool"
Ignore the specified type of axis. Default: unset. The X
server cannot deal with devices that have both relative
and absolute axes. Evdev tries to guess wich axes to
ignore given the device type and disables absolute axes
for mice and relative axes for tablets, touchscreens and
touchpad. These options allow to forcibly disable an axis
type. Mouse wheel axes are exempt and will work even if
relative axes are ignored. No property, this
configuration must be set in the configuration.
If either option is set to False, the driver will not
ignore the specified axes regardless of the presence of
other axes. This may trigger buggy behavior and events
from this axis are always forwarded. Users are
discouraged from setting this option.
Option "Calibration" "min-x max-x min-y max-y"
Calibrates the X and Y axes for devices that need to
scale to a different coordinate system than reported to
the X server. This feature is required for devices that
need to scale to a different coordinate system than
originally reported by the kernel (e.g. touchscreens).
The scaling to the custom coordinate system is done in-
driver and the X server is unaware of the transformation.
Property: "Evdev Axis Calibration".
Option "Mode" "Relative"|"Absolute"
Sets the mode of the device if device has absolute axes.
The default value for touchpads is relative, for other
absolute. This option has no effect on devices without
absolute axes.
Option "SwapAxes" "Bool"
Swap x/y axes. Default: off. Property: "Evdev Axes Swap".
Option "XAxisMapping" "N1 N2"
Specifies which buttons are mapped to motion in the X
direction in wheel emulation mode. Button number N1 is
mapped to the negative X axis motion and button number N2
is mapped to the positive X axis motion. Default: no
mapping. Property: "Evdev Wheel Emulation Axes".
Option "YAxisMapping" "N1 N2"
Specifies which buttons are mapped to motion in the Y
direction in wheel emulation mode. Button number N1 is
mapped to the negative Y axis motion and button number N2
is mapped to the positive Y axis motion. Default: "4 5".
Property: "Evdev Wheel Emulation Axes".
Option "TypeName" "type""
Specify the X Input 1.x type (see XListInputDevices(3)).
There is rarely a need to use this option, evdev will
guess the device type based on the device's capabilities.
This option is provided for devices that need quirks.
Option "VertScrollDelta" "integer"
The amount of motion considered one unit of scrolling
vertically. Default: "1". Property: "Evdev Scrolling
Distance".
Option "HorizScrollDelta" "integer"
The amount of motion considered one unit of scrolling
horizontally. Default: "1". Property: "Evdev Scrolling
Distance".
Option "DialDelta" "integer"
The amount of motion considered one unit of turning the
dial. Default: "1". Property: "Evdev Scrolling
Distance".
Option "Resolution" "integer"
Sets the resolution of the device in dots per inch. The
resolution is used to scale relative motion events from
mouse devices to 1000 DPI resolution. This can be used to
make high resolution mice less sensitive without turning
off acceleration. If set to 0 no scaling will be
performed. Default: "0".
SUPPORTED PROPERTIES
The following properties are provided by the evdev driver.
Evdev Axis Calibration
4 32-bit values, order min-x, max-x, min-y, max-y or 0
values to disable in-driver axis calibration.
Evdev Axis Inversion
2 boolean values (8 bit, 0 or 1), order X, Y. 1 inverts
the axis.
Evdev Axes Swap
1 boolean value (8 bit, 0 or 1). 1 swaps x/y axes.
Evdev Drag Lock Buttons
8-bit. Either 1 value or pairs of values. Value range
0-32, 0 disables a value.
Evdev Middle Button Emulation
1 boolean value (8 bit, 0 or 1).
Evdev Middle Button Timeout
1 16-bit positive value.
Evdev Wheel Emulation
1 boolean value (8 bit, 0 or 1).
Evdev Wheel Emulation Axes
4 8-bit values, order X up, X down, Y up, Y down. 0
disables a value.
Evdev Wheel Emulation Button
1 8-bit value, allowed range 0-32, 0 disables the button.
Evdev Wheel Emulation Inertia
1 16-bit positive value.
Evdev Wheel Emulation Timeout
1 16-bit positive value.
Evdev Scrolling Distance
3 32-bit values: vertical, horizontal and dial.
AUTHORS
Kristian Hgsberg, Peter Hutterer
SEE ALSO
Xorg(1), xorg.conf(5), Xserver(1), X(7)
Free and Open Source Software