Skip to content

Draft: Add support for tablet dials

Joshua Goins requested to merge redstrate/libinput:work/redstrate/dials into main

Summary

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.

image

Adds LIBINPUT_EVENT_TABLET_PAD_DIAL and the relevant functions to query dial state. Supports up to 2 dials and the dial state ranges from -1 to 1.

Closes #845.

Tasks

This is not ready for merge yet, but wanted some feedback. It turns out to be less work than I thought :-)

  • I see that symbols are exposed from certain libinput versions onwards (libinput.sym) do I just stick my new functions into the latest version bracket?
  • Need to expose dial information in debug, it's currently STUB'd
  • I need to research and find out if there's any tablets that could possibly have more than two dials. I'm guessing not, but better make sure.

I have used this new API upstream, see the relevant KWin merge request so it is tested.

Edited by Joshua Goins

Merge request reports