libinput/tools
Yinon Burgansky 5324f425a1 Introduce custom acceleration profile
The custom acceleration profile allow the user to define custom
acceleration functions for each movement type per device, giving
full control over accelerations behavior at different speeds.

This commit introduces 2 movement types which corresponds to the
2 profiles currently in use by libinput.

regular filter is Motion type.
constant filter is Fallback type.

This allows possible expansion of new movement types for the
different devices.

The custom pointer acceleration profile gives the user full control over the
acceleration behavior at different speeds.
The user needs to provide a custom acceleration function f(x) where
the x-axis is the device speed and the y-axis is the pointer speed.

The user should take into account the native device dpi and screen dpi in
order to achieve the desired behavior/feel of the acceleration.

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.
There by the points defining the custom function are:
(0 * step, f[0]), (1 * step, f[1]), ..., ((n-1) * step, f[n-1])
where f is a list of n unitless values defining the acceleration
factor for each velocity.
When a velocity value does not lie exactly on those points, a linear
interpolation of the two closest points will be calculated.
When a velocity value is greater than the max point defined, a linear
extrapolation of the two biggest points will be calculated.

Signed-off-by: Yinon Burgansky <51504-Yinon@users.noreply.gitlab.freedesktop.org>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2023-01-17 01:46:17 +00:00
..
libinput-analyze-per-slot-delta.man tools: per-slot-delta: add arguments to set a threshold and ignore-below 2020-04-11 14:35:27 +10:00
libinput-analyze-per-slot-delta.py tools/per-slot-delta: handle KeyboardInterrupts nicely 2021-03-10 00:24:51 +00:00
libinput-analyze-recording.man tools: add a tool to print a libinput recording as a table 2021-02-23 13:46:00 +10:00
libinput-analyze-recording.py tools/analyze-recording: improve the repeated-events line printing 2022-05-06 14:25:50 +10:00
libinput-analyze-touch-down-state.man tools: add a tool to analyze the finger count from a recording 2021-01-29 08:06:53 +10:00
libinput-analyze-touch-down-state.py tools: add a tool to analyze the finger count from a recording 2021-01-29 08:06:53 +10:00
libinput-analyze.c tools: add a libinput analyze command with the per-slot-delta subcommand 2020-03-16 08:35:43 +10:00
libinput-analyze.man tools: add a tool to print a libinput recording as a table 2021-02-23 13:46:00 +10:00
libinput-debug-events.c tools: fflush the output in debug-events after each set of events 2023-01-13 09:28:32 +10:00
libinput-debug-events.man Introduce custom acceleration profile 2023-01-17 01:46:17 +00:00
libinput-debug-gui.c Remove duplicate empty lines in our source 2022-11-25 10:08:20 +10:00
libinput-debug-gui.man tools/debug-gui: draw a sprite for the unaccelerated pointer as well 2021-03-11 10:40:00 +10:00
libinput-debug-tablet.c util: auto-declare the element variable in ARRAY_FOR_EACH 2022-03-09 10:16:07 +10:00
libinput-debug-tablet.man tools: add a tablet debugging tool 2019-11-19 09:56:14 +10:00
libinput-list-devices.c Introduce custom acceleration profile 2023-01-17 01:46:17 +00:00
libinput-list-devices.man libinput-list-devices: make paragraph about different settings terser 2019-10-28 05:40:02 +00:00
libinput-list-kernel-devices.man tools: add a --hid toggle to libinput-list-kernel-devices 2022-12-08 10:08:44 +10:00
libinput-list-kernel-devices.py tools: add a --hid toggle to libinput-list-kernel-devices 2022-12-08 10:08:44 +10:00
libinput-measure-fuzz.man touchpad: add a tool to measure the touchpad fuzz 2018-05-15 13:51:33 +10:00
libinput-measure-fuzz.py Use python black for all pyhon file formatting 2021-01-28 21:02:45 +00:00
libinput-measure-touch-size.man tools: touch-size: update to use the device quirks 2018-06-21 11:48:41 +10:00
libinput-measure-touch-size.py Use python black for all pyhon file formatting 2021-01-28 21:02:45 +00:00
libinput-measure-touchpad-pressure.man tools: make the thumb threshold configurable while measuring pressure 2020-03-30 14:45:19 +10:00
libinput-measure-touchpad-pressure.py Use python black for all pyhon file formatting 2021-01-28 21:02:45 +00:00
libinput-measure-touchpad-size.man Remove trailing whitespaces in the tree 2022-11-25 10:08:20 +10:00
libinput-measure-touchpad-size.py Use python black for all pyhon file formatting 2021-01-28 21:02:45 +00:00
libinput-measure-touchpad-tap.man treewide: fix typos 2020-12-16 22:08:23 +01:00
libinput-measure-touchpad-tap.py Use python black for all pyhon file formatting 2021-01-28 21:02:45 +00:00
libinput-measure.c libinput-measure.c: remove unused includes 2019-09-13 00:07:39 +03:00
libinput-measure.man tools: add a measure touchpad-size tool 2020-03-30 15:14:45 +10:00
libinput-quirks.c Remove a few empty lines with nothing but a lonely tab 2022-11-25 10:08:20 +10:00
libinput-quirks.man tools: rename list-quirks to the more generic "quirks list" 2018-07-03 15:16:59 +10:00
libinput-record-verify-yaml.py Use python black for all pyhon file formatting 2021-01-28 21:02:45 +00:00
libinput-record.c tools/record: fix quirk error message 2022-12-12 19:17:01 +01:00
libinput-record.man tools/record: add support for hidraw recording 2021-05-05 03:59:34 +00:00
libinput-replay.man tools/replay: do not replay key repeat events 2021-05-18 23:14:44 +00:00
libinput-replay.py tools/replay: do not replay key repeat events 2021-05-18 23:14:44 +00:00
libinput-test.c tools: add a libinput test tool as entry point for our test suites 2022-05-09 05:03:00 +00:00
libinput-test.man test: install libinput-test-utils as part of install-tests 2022-05-09 05:03:00 +00:00
libinput-tool.c tools: hide debug-gui help when building with -Ddebug-gui=false 2022-10-10 08:27:05 +02:00
libinput.man tools: add a libinput list-kernel-devices tool 2022-12-08 10:08:44 +10:00
make-ptraccel-graphs.sh tools: make-ptraccel-graphs: drop an unnecessary outfile 2018-07-11 16:04:59 +10:00
ptraccel-debug.c Introduce custom acceleration profile 2023-01-17 01:46:17 +00:00
shared.c Introduce custom acceleration profile 2023-01-17 01:46:17 +00:00
shared.h Introduce custom acceleration profile 2023-01-17 01:46:17 +00:00
test_tool_option_parsing.py touchpad: new option dwtp (disable-while-trackpointing) 2022-03-08 01:33:40 +00:00