summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--meson.build3
-rw-r--r--tools/Makefile.am6
-rw-r--r--tools/touchpad-edge-detector.144
4 files changed, 51 insertions, 4 deletions
diff --git a/.gitignore b/.gitignore
index 9fd134f..51dc7e3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,8 +31,6 @@ mkinstalldirs
stamp-h?
# Edit Compile Debug Document Distribute
*~
-*.[0-9]
-*.[0-9]x
*.bak
*.bin
core
diff --git a/meson.build b/meson.build
index 4d08b6f..86ab70c 100644
--- a/meson.build
+++ b/meson.build
@@ -123,7 +123,8 @@ executable('libevdev-tweak-device',
include_directories: [includes_include],
dependencies: dep_libevdev,
install: true)
-install_man('tools/libevdev-tweak-device.1')
+install_man('tools/libevdev-tweak-device.1',
+ 'tools/touchpad-edge-detector.1')
# tests
dep_check = dependency('check', version: '>= 0.9.9',
diff --git a/tools/Makefile.am b/tools/Makefile.am
index d699c5c..86222f7 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -18,4 +18,8 @@ mouse_dpi_tool_LDADD = $(libevdev_ldadd)
libevdev_tweak_device_SOURCES = libevdev-tweak-device.c
libevdev_tweak_device_LDADD = $(libevdev_ldadd)
-libevdev_tweak_device_MANS = libevdev-tweak-device.1
+
+dist_man_MANS = \
+ libevdev-tweak-device.1 \
+ touchpad-edge-detector.1 \
+ $(NULL)
diff --git a/tools/touchpad-edge-detector.1 b/tools/touchpad-edge-detector.1
new file mode 100644
index 0000000..e9a4b9c
--- /dev/null
+++ b/tools/touchpad-edge-detector.1
@@ -0,0 +1,44 @@
+.TH TOUCHPAD-EDGE-DETECTOR "1"
+.SH NAME
+touchpad-edge-detector \- print the axis ranges for a touchpad device
+.SH SYNOPSIS
+.B touchpad-edge-detector [--help] \fIWxH /dev/input/eventX\fR
+.SH DESCRIPTION
+.PP
+The
+.B touchpad-edge-detector
+tool reads touchpad events from the kernel and records the minimum and
+maximum coordinates based on user input. This is an interactive tool, the
+user must move a finger around the touchpad, attempting to trigger an
+event at all edges of the touchpad.
+.PP
+To terminate the event collection and print a summary, press Ctrl+C. It is
+recommended that the tool is run several times to guarantee a reliable
+result.
+.SH OPTIONS
+.TP 8
+.I WxH
+The width and height of the touchpad in mm. For a touchpad 100mm wide and
+75mm high, the argument is thus \fI100x75\fR. This is a required argument.
+.TP 8
+.I /dev/input/eventX
+The event node of the touchpad to read events from. A list of possible event
+nodes can be obtained with either one of the following commands: \fBlibinput
+record\fR, \fBevemu-record\fR, or \fBevtest\fR. Alternatively the event node
+for a device is listed in the \fBHandlers=\fR line \fI/proc/bus/input/devices\fR.
+This is a required argument.
+.TP 8
+.B --help
+Print a short help description
+.SH NOTES
+.PP
+On completion, this tool prints a summary of the collected events and a
+suggested udev rule. Due to rounding errors it is rare to get an exact match
+for the touchpad's dimensions, but any discrepancy of more than 5mm should
+be corrected with the suggested udev rule.
+.PP
+The udev rule should be simplified and submitted as a pull request to the
+system repository at \fIhttps://github.com/systemd/systemd\fR. For further
+guidance, see the file \fI/usr/lib/udev/hwdb.d/60-evdev.hwdb\fR.
+.SH SEE ALSO
+udev(7)