Skip to content

pad: implement strip support for the Huion Kamvas 24

Peter Hutterer requested to merge whot/libinput:wip/huion-strips into main

Draft until there's a decision on merging this event node together with the buttons.

This device sends the strip via ABS_WHEEL, not ABS_RX like Wacom does. Fixed, see !989 (comment 2380674)

And the value is a normal value in the range 0-7 as opposed to the log value Wacom's strips send.

The old behavior for strips is now behind a Wacom vendor ID check, the new behavior is hardcoded to the Huion vendor ID. We may want to set this via a quirk eventually but Huions re-use the USB IDs so the quirk is going to be tricky anyway.

The new behavior simply remaps ABS_WHEEL into the strip and done.

Related #989


Note that just like the possible event node merge we could hack the kernel driver to map this into ABS_RX instead of ABS_WHEEL. Not opposed to that but the quirky wacom strip behaviour requires us to have a separate code path anyway (and I don't want the kernel to emulate that weird log(2) behaviour).


@AesaraB For now, you'll need

$ cat /etc/udev/hwdb.d/99-huion.hwdb
libwacom:name:* Touch Strip:input:b0003v256Cp006D*
  ID_INPUT_TABLET_PAD=1
$ sudo systemd-hwdb update

Then re-plug your device and libinput record should list ID_INPUT_TABLET_PAD for the device now. Then libinput debug-events should show the strip events correctly within 0 and 1 with -1 as "finger lifted" event.

Edited by Peter Hutterer

Merge request reports