path: root/doc
diff options
authorPeter Hutterer <>2016-01-05 12:35:49 +1000
committerPeter Hutterer <>2016-01-05 12:35:49 +1000
commit665daba9a9c79b832b9b82e6f09cf0742f0e5446 (patch)
treeb8ab864c8267733b950c64a3d390b9d6bbeb0758 /doc
parent9114054fa29084d69784c09e2f811325e0520a14 (diff)
doc: improve absolute axis documentation a bit
Signed-off-by: Peter Hutterer <>
Diffstat (limited to 'doc')
1 files changed, 12 insertions, 6 deletions
diff --git a/doc/absolute-axes.dox b/doc/absolute-axes.dox
index 664c6164..0e1a21bb 100644
--- a/doc/absolute-axes.dox
+++ b/doc/absolute-axes.dox
@@ -10,7 +10,7 @@ libinput supports three types of devices with absolute axes:
- multi-touch screens
- single-touch screens
- - graphics tablets (currently WIP)
+ - @ref tablet-support "graphics tablets"
Touchpads are technically absolute devices but libinput converts the axis values
to directional motion and posts events as relative events. Touchpads do not count
@@ -18,7 +18,10 @@ as absolute devices in libinput.
For all absolute devices in libinput, the default unit for x/y coordinates is
in mm off the top left corner on the device, or more specifically off the
-device's sensor.
+device's sensor. If the device is physically rotated from its natural
+position and this rotation was communicated to libinput (e.g.
+@ref libinput_device_config_left_handed_set "by setting the device left-handed"),
+the coordinate origin is the top left corner of in the current rotation.
@section absolute_axes_handling Handling of absolute coordinates
@@ -40,7 +43,7 @@ coordinate.
@section absolute_axes_nores Devices without x/y resolution
An absolute device that does not provide a valid resolution is considered
-buggy and must be fixed in the kernel. Some touchpad devices that do not
+buggy and must be fixed in the kernel. Some touchpad devices do not
provide resolution, those devices are correctly handled within libinput
(touchpads are not absolute devices, as mentioned above).
@@ -107,11 +110,14 @@ The most common matrices are:
See Wikipedia's
<a href="">Transformation
-Matrix article</a> for more information on the matrix maths.
-See libinput_device_config_calibration_get_default_matrix() for how these
+Matrix article</a> for more information on the matrix maths. See
+libinput_device_config_calibration_get_default_matrix() for how these
matrices must be supplied to libinput.
+Once applied, any x and y axis value has the calibration applied before it
+is made available to the caller. libinput does not provide access to the
+raw coordinates before the calibration is applied.
@section absolute_axes_nonorm Why x/y coordinates are not normalized
x/y are not given in @ref motion_normalization "normalized coordinates"