summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2018-08-01 10:34:22 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2018-08-02 11:22:11 +1000
commitf6110765511f9971702a7fbca7440fc6eb3bd58f (patch)
tree171732669d9b1f60c77951078ffefc7f163fdadc
parentddc0df6fe73815a571e62924d124e9ce68a7af7d (diff)
downloadlibinput-f6110765511f9971702a7fbca7440fc6eb3bd58f.tar.gz
doc/user: more fixes including adding a device-types section
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--doc/user/button_debouncing.rst2
-rw-r--r--doc/user/device-configuration-via-udev.rst3
-rw-r--r--doc/user/palm-detection.rst6
-rw-r--r--doc/user/pointer-acceleration.rst8
-rw-r--r--doc/user/scrolling.rst16
-rw-r--r--doc/user/t440-support.rst2
-rw-r--r--doc/user/tablet-support.rst14
-rw-r--r--doc/user/tapping.rst2
-rw-r--r--doc/user/touchpads.rst22
-rw-r--r--doc/user/trackpoints.rst2
-rw-r--r--doc/user/what-is-libinput.rst46
11 files changed, 86 insertions, 37 deletions
diff --git a/doc/user/button_debouncing.rst b/doc/user/button_debouncing.rst
index 3630423b..47be1d2c 100644
--- a/doc/user/button_debouncing.rst
+++ b/doc/user/button_debouncing.rst
@@ -48,7 +48,7 @@ correspond to the buttons 'pressed' and 'released' states, respectively.
.. figure:: button-debouncing-wave-diagram.svg
:align: center
- Diagram illustrating button debouncing"
+ Diagram illustrating button debouncing
Some devices send events in bursts, erroneously triggering the button
diff --git a/doc/user/device-configuration-via-udev.rst b/doc/user/device-configuration-via-udev.rst
index f484befa..eac1c409 100644
--- a/doc/user/device-configuration-via-udev.rst
+++ b/doc/user/device-configuration-via-udev.rst
@@ -136,7 +136,8 @@ Model-specific configuration
------------------------------------------------------------------------------
As of libinput 1.12, model-specific configuration is stored in the
-:ref:`device-quirks` and not in the hwdb anymore. Please see @ref device-quirks for
+:ref:`device-quirks` and not in the hwdb anymore. Please see
+:ref:`device-quirks` for
details.
.. _model_specific_configuration_x220fw81:
diff --git a/doc/user/palm-detection.rst b/doc/user/palm-detection.rst
index df869c8e..2c650430 100644
--- a/doc/user/palm-detection.rst
+++ b/doc/user/palm-detection.rst
@@ -108,7 +108,8 @@ tapping motion, it does not generate an emulated button event. Touch 'D'
likewise occurs within the exclusion zone but in the bottom half. libinput
will generate a button event for this touch.
-@image html palm-detection.svg
+.. figure:: palm-detection.svg
+ :align: center
.. _trackpoint-disabling:
@@ -200,7 +201,8 @@ thumb hanging mostly off the touchpad will have a small surface area.
libinput has a definitive thumb zone where any touch is considered a resting
thumb.
-@image html thumb-detection.svg
+.. figure:: thumb-detection.svg
+ :align: center
The picture above shows the two detection areas. In the larger (light red)
area, a touch is labelled as thumb when it exceeds a device-specific
diff --git a/doc/user/pointer-acceleration.rst b/doc/user/pointer-acceleration.rst
index a25782a1..fafa4ddf 100644
--- a/doc/user/pointer-acceleration.rst
+++ b/doc/user/pointer-acceleration.rst
@@ -91,7 +91,7 @@ and after :ref:`motion_normalization` is applied.
.. figure:: ptraccel-linear.svg
:align: center
- Linear pointer acceleration"
+ Linear pointer acceleration
The image above shows the linear pointer acceleration settings at various
speeds. The line for 0.0 is the default acceleration curve, speed settings
@@ -117,7 +117,7 @@ coordinates (see :ref:`motion_normalization`).
.. figure:: ptraccel-low-dpi.svg
:align: center
- Pointer acceleration for low-dpi devices"
+ Pointer acceleration for low-dpi devices
The image above shows the default pointer acceleration curve for a speed of
0.0 at different DPI settings. A device with low DPI has the acceleration
@@ -138,7 +138,7 @@ deceleration factor.
.. figure:: ptraccel-touchpad.svg
:align: center
- Pointer acceleration curve for touchpads"
+ Pointer acceleration curve for touchpads
The image above shows the touchpad acceleration profile in comparison to the
:ref:`ptraccel-linear`. The shape of the curve is identical but vertically squashed.
@@ -171,7 +171,7 @@ consistent behavior across different touchpad devices.
.. figure:: ptraccel-trackpoint.svg
:align: center
- Pointer acceleration curves for trackpoints"
+ Pointer acceleration curves for trackpoints
The image above shows the trackpoint acceleration profile for the speed in
units/ms.
diff --git a/doc/user/scrolling.rst b/doc/user/scrolling.rst
index 28b164b5..92cfdbc8 100644
--- a/doc/user/scrolling.rst
+++ b/doc/user/scrolling.rst
@@ -5,14 +5,14 @@ Scrolling
==============================================================================
libinput supports three different types of scrolling methods:
-:ref:`twofinger_scrolling`, @ref edge_scrolling and @ref button_scrolling. Some
-devices support multiple methods, though only one can be enabled at a time.
-As a general overview:
+:ref:`twofinger_scrolling`, :ref:`edge_scrolling` and
+:ref:`button_scrolling`. Some devices support multiple methods, though only
+one can be enabled at a time. As a general overview:
- touchpad devices with physical buttons below the touchpad support edge and
two-finger scrolling
-- touchpad devices without physical buttons (:ref:`clickpad_softbuttons`
- "clickpads") support two-finger scrolling only
+- touchpad devices without physical buttons (:ref:`ClickPads <clickpad_softbuttons>`)
+ support two-finger scrolling only
- pointing sticks provide on-button scrolling by default
- mice and other pointing devices support on-button scrolling but it is not
enabled by default
@@ -50,7 +50,7 @@ vertically or horizontally.
.. figure:: twofinger-scrolling.svg
:align: center
- Vertical and horizontal two-finger scrolling"
+ Vertical and horizontal two-finger scrolling
For scrolling to trigger, a built-in distance threshold has to be met but once
engaged any movement will scroll. In other words, to start scrolling a
@@ -79,7 +79,7 @@ scroll).
.. figure:: edge-scrolling.svg
:align: center
- Vertical and horizontal edge scrolling"
+ Vertical and horizontal edge scrolling
Due to the layout of the edges, diagonal scrolling is not possible. The
behavior of edge scrolling using both edges at the same time is undefined.
@@ -105,7 +105,7 @@ scroll events when the trackstick's middle mouse button is held down.
.. figure:: button-scrolling.svg
:align: center
- Button scrolling"
+ Button scrolling
The button may be changed with
**libinput_device_config_scroll_set_button()** but must be on the same device as
diff --git a/doc/user/t440-support.rst b/doc/user/t440-support.rst
index 4dc485c0..1fc6e1f7 100644
--- a/doc/user/t440-support.rst
+++ b/doc/user/t440-support.rst
@@ -24,7 +24,7 @@ the respective area:
.. figure:: top-software-buttons.svg
:align: center
- Left, right and middle-button click with top software button areas"
+ Left, right and middle-button click with top software button areas
This page only covers the top software buttons, the bottom button behavior
is covered in :ref:`Clickpad software buttons <clickpad_softbuttons>`.
diff --git a/doc/user/tablet-support.rst b/doc/user/tablet-support.rst
index 0be0d9ff..104ea448 100644
--- a/doc/user/tablet-support.rst
+++ b/doc/user/tablet-support.rst
@@ -12,7 +12,7 @@ Apple iPad.
.. figure:: tablet.svg
:align: center
- Illustration of a graphics tablet"
+ Illustration of a graphics tablet
.. _tablet-tools:
@@ -36,7 +36,7 @@ across multiple kernel devices.
.. figure:: tablet-interfaces.svg
:align: center
- Difference between Pad and Tool buttons"
+ Difference between Pad and Tool buttons
Touch events on the tablet integrated into a screen itself are exposed
through the **LIBINPUT_DEVICE_CAP_TOUCH** capability. Touch events on a
@@ -118,7 +118,7 @@ additionally provide tilt information along the x and y axis.
.. figure:: tablet-axes.svg
:align: center
- Illustration of the distance, pressure and tilt axes"
+ Illustration of the distance, pressure and tilt axes
The granularity and precision of the distance and pressure axes varies
between tablet devices and cannot usually be mapped into a physical unit.
@@ -258,7 +258,7 @@ the caller to ignore these events.
.. figure:: tablet-out-of-bounds.svg
:align: center
- Illustration of the out-of-bounds area on a tablet"
+ Illustration of the out-of-bounds area on a tablet
In the image above, the display area is shown in black. The red area around
the display illustrates the sensor area that generates input events. Events
@@ -321,7 +321,7 @@ point.
.. figure:: tablet-left-handed.svg
:align: center
- Tablet axes in right- and left-handed mode"
+ Tablet axes in right- and left-handed mode
Pad buttons are not affected by left-handed mode; the number of each button
remains the same even when the perceived physical location of the button
@@ -377,7 +377,7 @@ device.
.. figure:: tablet-intuos-modes.svg
:align: center
- Modes on an Intuos Pro-like tablet"
+ Modes on an Intuos Pro-like tablet
In the image above, the Intuos Pro-like tablet provides 4 LEDs to indicate
the currently active modes. The button inside the touch ring cycles through
@@ -392,7 +392,7 @@ and all subsequent events.
.. figure:: tablet-cintiq24hd-modes.svg
:align: center
- Modes on an Cintiq 24HD-like tablet"
+ Modes on an Cintiq 24HD-like tablet
In the image above, the Cintiq 24HD-like tablet provides 3 LEDs on each side
of the tablet to indicate the currently active mode for that group of
diff --git a/doc/user/tapping.rst b/doc/user/tapping.rst
index 48279f20..85fdc1a1 100644
--- a/doc/user/tapping.rst
+++ b/doc/user/tapping.rst
@@ -60,7 +60,7 @@ Note that drag lock only applies if tap-and-drag is be enabled.
.. figure:: tap-n-drag.svg
:align: center
- Tap-and-drag process"
+ Tap-and-drag process
The above diagram explains the process, a tap (a) followed by a finger held
down (b) starts the drag process and logically holds the left mouse button
diff --git a/doc/user/touchpads.rst b/doc/user/touchpads.rst
index 5755982d..f6f44759 100644
--- a/doc/user/touchpads.rst
+++ b/doc/user/touchpads.rst
@@ -49,7 +49,7 @@ whole, i.e. a user presses down on the touch area and triggers a physical
click. Clickpads thus only provide a single button, everything else needs to
be software-emulated. See :ref:`clickpad_softbuttons` for more information.
-Clickpads are labelled by the kernel with the @c INPUT_PROP_BUTTONPAD input
+Clickpads are labelled by the kernel with the **INPUT_PROP_BUTTONPAD** input
property.
.. _touchpads_buttons_forcepads:
@@ -86,9 +86,9 @@ Single-touch touchpads
Single-finger touchpads can track a single touchpoint. Most single-touch
touchpads can also detect three fingers on the touchpad, but no positional
information is provided for those. In libinput, these touches are termed
-"fake touches". The kernel sends @c BTN_TOOL_DOUBLETAP,
-@c BTN_TOOL_TRIPLETAP, @c BTN_TOOL_QUADTAP and @c BTN_TOOL_QUINTTAP events when
-multiple fingers are detected.
+"fake touches". The kernel sends **BTN_TOOL_DOUBLETAP**,
+**BTN_TOOL_TRIPLETAP**, **BTN_TOOL_QUADTAP** and **BTN_TOOL_QUINTTAP**
+events when multiple fingers are detected.
.. _touchpads_touch_mt:
@@ -106,10 +106,10 @@ provide an ellipse and the orientation of the ellipse for each touch point.
Other touchpads provide a pressure value for each touch point (see
:ref:`touchpads_pressure_handling`).
-Note that the kernel sends @c BTN_TOOL_DOUBLETAP,
-@c BTN_TOOL_TRIPLETAP, @c BTN_TOOL_QUADTAP and @c BTN_TOOL_QUINTTAP events for
-all touches for backwards compatibility. libinput ignores these events if
-the touchpad can track touches correctly.
+Note that the kernel sends **BTN_TOOL_DOUBLETAP**,
+**BTN_TOOL_TRIPLETAP**, **BTN_TOOL_QUADTAP** and **BTN_TOOL_QUINTTAP**
+events for all touches for backwards compatibility. libinput ignores these
+events if the touchpad can track touches correctly.
.. _touchpads_touch_partial_mt:
@@ -125,8 +125,8 @@ five.
The number of slots may limit which features are available in libinput.
Any device with two slots can support two-finger scrolling, but
-:ref:`thumb-detection` or @ref palm_detection may be limited if only two slots are
-available.
+:ref:`thumb-detection` or :ref:`palm_detection` may be limited if only two
+slots are available.
.. _touchpads_touch_semi_mt:
@@ -144,7 +144,7 @@ Many semi-mt touchpads also have a lower resolution for the second touch, or
both touches. This may limit some features such as :ref:`gestures` or
:ref:`scrolling`.
-Semi-mt are labelled by the kernel with the @c INPUT_PROP_SEMI_MT input
+Semi-mt are labelled by the kernel with the **INPUT_PROP_SEMI_MT** input
property.
.. _touchpads_mis:
diff --git a/doc/user/trackpoints.rst b/doc/user/trackpoints.rst
index 86aa6432..917a8ea3 100644
--- a/doc/user/trackpoints.rst
+++ b/doc/user/trackpoints.rst
@@ -12,7 +12,7 @@ the space bar.
.. figure:: button-scrolling.svg
:align: center
- A trackpoint"
+ A trackpoint
libinput always treats the buttons below the space bar as the buttons that
belong to the trackpoint even on the few laptops where the buttons are not
diff --git a/doc/user/what-is-libinput.rst b/doc/user/what-is-libinput.rst
index ecb97d3c..123f0967 100644
--- a/doc/user/what-is-libinput.rst
+++ b/doc/user/what-is-libinput.rst
@@ -106,3 +106,49 @@ does not know whether libinput is in use.
libinput and xf86-input-libinput are not a requirement, the driver will only
handle those devices explicitly assigned through an xorg.conf.d snippets. It
is possible to mix xf86-input-libinput with other X.Org drivers.
+
+------------------------------------------------------------------------------
+Device types
+------------------------------------------------------------------------------
+
+libinput handles all common devices used to interact with a desktop system.
+This includes mice, keyboards, touchscreens, touchpads and graphics tablets.
+libinput does not expose the device type to the caller, it solely provides
+capabilities and the attached features (see
+`this blog post <https://who-t.blogspot.com/2015/06/libinput-and-lack-of-device-types.html>`_).
+
+For example, a touchpad in libinput is a device that provides pointer
+events, gestures and has a number of :ref:`config_options` such as
+:ref:`tapping`. A caller may present the device as touchpad to the user, or
+simply as device with a config knob to enable or disable tapping.
+
+..............................................................................
+Handled device types
+..............................................................................
+
+- :ref:`Touchpads`
+- Touchscreens
+- Mice
+- Keyboards
+- Virtual absolute pointing devices such as those used by QEMU or VirtualBox
+- Switches (Lid Switch and Tablet Mode switch)
+- Graphics tablets
+- :ref:`Trackpoints`
+
+If a device falls into one of the above categories but does not work as
+expected, please :ref:`file a bug <reporting_bugs>`.
+
+..............................................................................
+Unhandled device types
+..............................................................................
+
+libinput does not handle some devices. The primary reason is that these
+device have no clear interaction with a desktop environment.
+
+Joysticks:
+ Joysticks have one or more axes and one or more buttons. Beyond that it is
+ difficult to find common ground between joysticks and much of the
+ interaction is application-specific, not system-specific. libinput does not
+ provide support for joysticks for that reason, any abstraction libinput
+ would provide for joysticks would be so generic that libinput would
+ merely introduce complexity and processing delays for no real benefit.