Find a file
Joshua Goins beca998122 tablet: add API for relative dials
Some tablets such as those in the XP-PEN PRO series use "dials" which
are actually scrollwheels and emit EV_REL events. These should not be
emulated as rings (which are absolute) so we must expose them as a new
tablet event.

Adds LIBINPUT_EVENT_TABLET_PAD_DIAL that work largely identical as our
high-resolution wheel events (i.e. the values are in multiples or
fractions of of 120). Currently supports two dials.

This is a lot of copy/paste from the ring axes because the interface is
virtually identical. The main difference is that dials give us a v120
value in the same manner as our scroll axes.

Notes:
- REL_DIAL is mutually exclusive with REL_WHEEL, we assume the kernel
  doesn't (at this point) give us devices with both. If this changes for
  devices with three dials (wheel + hwheel + dial) we need to add code
  for that.
- REL_DIAL does not have a high-resolution axis and we assume that any
  device with REL_WHEEL_HI_RES will also have REL_HWHEEL_HI_RES (if the
  second wheel exists).
- With dials being REL_DIAL or REL_WHEEL there is no possibility of
  detecting a finger release (the kernel does not route EV_RELs with a
  value of zero). Unless this is implemented via a side-channel - and it
  doesn't look like any hardware that supports dials does that - we
  cannot forward any information here. So unlike absolute rings we
  cannot provide a source information here.

Closes #600

Co-authored-by: Peter Hutterer <peter.hutterer@who-t.net>
Part-of: <https://gitlab.freedesktop.org/libinput/libinput/-/merge_requests/967>
2024-02-20 02:49:05 +00:00
.gitlab/issue_templates gitlab: make the bug template the default template 2023-11-23 09:53:09 +10:00
.gitlab-ci CI: bump vm2c and kernel for VMs 2023-11-16 14:25:10 +00:00
completion/zsh zsh: fix completion 2023-10-05 18:37:32 +10:00
doc doc: fix end-of-file in the state machine SVG 2024-02-19 12:21:16 +10:00
include Remove trailing whitespaces in the tree 2022-11-25 10:08:20 +10:00
quirks Recognizing Framework 16 keyboard modules as internal keyboards 2024-02-19 03:20:32 +00:00
src tablet: add API for relative dials 2024-02-20 02:49:05 +00:00
test tablet: add API for relative dials 2024-02-20 02:49:05 +00:00
tools tablet: add API for relative dials 2024-02-20 02:49:05 +00:00
udev libwacom: fix warnings building without libwacom 2022-07-12 19:44:59 +02:00
.dir-locals.el indentation: add .dir-locals.el for emacs 2018-02-26 18:44:00 +10:00
.editorconfig editorconfig: add settings for meson files 2021-08-04 05:58:29 +00:00
.gitignore gitignore: ignore gnuplot files 2018-05-10 16:25:40 +10:00
.gitlab-ci.yml CI: bump vm2c and kernel for VMs 2023-11-16 14:25:10 +00:00
.pre-commit-config.yaml Add pre-commit hooks 2023-09-01 09:12:54 +00:00
.triage-policies.yml triage-policies: add a bugbot command to close issue in favour of an MR 2024-02-02 09:51:31 +10:00
.vimdir Add .vimdir for libinput-specific settings 2015-05-25 09:17:29 +10:00
CODING_STYLE.md Drop the Signed-off-by requirement 2023-07-21 09:08:46 +10:00
COPYING Change various references to the master branch to main 2021-04-29 01:31:03 +00:00
meson.build tablet: add API for relative dials 2024-02-20 02:49:05 +00:00
meson_options.txt meson.build: disable documentation by default 2021-08-03 12:11:09 +10:00
README.md Change various references to the master branch to main 2021-04-29 01:31:03 +00:00

libinput

libinput is a library that provides a full input stack for display servers and other applications that need to handle input devices provided by the kernel.

libinput provides device detection, event handling and abstraction to minimize the amount of custom input code the user of libinput needs to provide the common set of functionality that users expect. Input event processing includes scaling touch coordinates, generating relative pointer events from touchpads, pointer acceleration, etc.

User documentation

Documentation explaining features available in libinput is available here.

This includes the FAQ and the instructions on reporting bugs.

Source code

The source code of libinput can be found at: https://gitlab.freedesktop.org/libinput/libinput

For a list of current and past releases visit: https://www.freedesktop.org/wiki/Software/libinput/

Build instructions: https://wayland.freedesktop.org/libinput/doc/latest/building.html

Reporting Bugs

Bugs can be filed on freedesktop.org GitLab: https://gitlab.freedesktop.org/libinput/libinput/issues/

Where possible, please provide the libinput record output of the input device and/or the event sequence in question.

See https://wayland.freedesktop.org/libinput/doc/latest/reporting-bugs.html for more info.

Documentation

Examples of how to use libinput are the debugging tools in the libinput repository. Developers are encouraged to look at those tools for a real-world (yet simple) example on how to use libinput.

License

libinput is licensed under the MIT license.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: [...]

See the COPYING file for the full license information.

About

Documentation generated from git commit GIT_VERSION