Bug 1626695

Summary: xsetwacom doesn't show touch input portion of tablet
Product: [Fedora] Fedora Reporter: Jason Tibbitts <j>
Component: kcm_wacomtabletAssignee: Mario Santagiuliana <fedora>
Status: CLOSED EOL QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 28CC: fedora, j, peter.hutterer, rdieter, xgl-maint
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-05-28 22:22:48 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Verbose output of xsetwacom and xinput none

Description Jason Tibbitts 2018-09-07 22:57:27 UTC
Created attachment 1481678 [details]
Verbose output of xsetwacom and xinput

I don't know much about the modern Xinput system, but I recall in the not too distant past both I and the KDE settings system could disable touch input on my Wacom Intuos CTH-680 tablet.

The touch certainly still works (even though I don't really want it to).  And interestingly enough it appears to behave more like a laptop touchpad with two-finger scrolling and such.  I can even use the KDE touchpad settings module to control it as it it was a touchpad.  But the KDE Wacom settings module just tells me that touch is not supported.

xsetwacom --list says:
Wacom Intuos PT M Pen stylus            id: 14  type: STYLUS
Wacom Intuos PT M Pen eraser            id: 15  type: ERASER
Wacom Intuos PT M Pad pad               id: 17  type: PAD

but xinput --list says:
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech MX Master                        id=12   [slave  pointer  (2)]
⎜   ↳ Wacom Intuos PT M Pen stylus              id=14   [slave  pointer  (2)]
⎜   ↳ Wacom Intuos PT M Pen eraser              id=15   [slave  pointer  (2)]
⎜   ↳ Wacom Intuos PT M Finger                  id=16   [slave  pointer  (2)]
⎜   ↳ Wacom Intuos PT M Pad pad                 id=17   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ Kinesis Advantage2 Keyboard Consumer Control      id=9    [slave  keyboard (3)]
    ↳ Kinesis Advantage2 Keyboard System Control        id=10   [slave  keyboard (3)]
    ↳ Kinesis Advantage2 Keyboard               id=11   [slave  keyboard (3)]
    ↳ Logitech MX Master                        id=13   [slave  keyboard (3)]

So why does xinput know about the finger input but not xsetwacom?  I know at some point xsetwacom could control the touch functionality, but it's been several months since I actually used this tablet and don't know exactly when it stopped working.

The relevant udev rules from 65-libwacom.rules, in case they are involved:

# Intuos Pen & Touch Medium
ENV{ID_BUS}=="usb", ENV{ID_VENDOR_ID}=="056a", ENV{ID_MODEL_ID}=="0303",  ENV{ID_INPUT}="1", ENV{ID_INPUT_JOYSTICK}="", ENV{ID_INPUT_TABLET}="1"
ATTRS{name}=="* Finger", ENV{ID_BUS}=="usb", ENV{ID_VENDOR_ID}=="056a", ENV{ID_MODEL_ID}=="0303",  ENV{ID_INPUT_TOUCHPAD}="1"
ATTRS{name}=="* Pad", ENV{ID_BUS}=="usb", ENV{ID_VENDOR_ID}=="056a", ENV{ID_MODEL_ID}=="0303",  ENV{ID_INPUT_TABLET_PAD}="1"

It is possible that setting ID_INPUT_TOUCHPAD is forcing some other part of the input system to claim it as a (very large) touchpad instead of as a tablet?  I will attach both xsetwacom --list -v and xinput --list --long output, but one interesting thing about the former is this line:

... 'Wacom Intuos PT M Finger' (16) is not a wacom device.

I'm not sure how it determines that.

The machine is running F28 and is pretty well updated:
xorg-x11-drv-wacom-0.36.1-4.fc28.x86_64
libwacom-0.30-1.fc28.x86_64
xorg-x11-drv-libinput-0.27.1-2.fc28.x86_64
libinput-1.11.3-1.fc28.x86_64
kernel-4.18.5-300.fc29.x86_64 (using the F29 kernel for testing before 4.18.5 is pushed to F28)
xorg-x11-server-Xorg-1.19.6-8.fc28.x86_64
systemd-udev-238-9.git0e0aa59.fc28.x86_64

Comment 1 Peter Hutterer 2018-09-09 22:32:04 UTC
> why does xinput know about the finger input but not xsetwacom?

xinput handles any X device, xsetwacom only those that are handled by the wacom driver. Since about F22, touchscreens and touchpads are handled by the xorg-x11-drv-libinput driver (tablet stylus bits too if you don't have xorg-x11-drv-wacom installed). So xsetwacom "sees" the device, it just ignores it because it's not a wacom-driver device. and, fwiw, it determines that by looking at the property names, see xinput list-props "device".

that's also why the touch part behaves like a touchpad, libinput handles that and you get all the other touchpad features (tapping, 2fg scrolling, gestures, ...)

IOW, it all looks like it's working correctly, minus the bit where the KDE wacom module doesn't handle it correctly. Punting to what I hope is the right component.

The fallback is always "xinput disable <device name>" or an xorg.conf.d snippet that matches on the product name and MatchIsTouchpad "on". Likewise, you could force the wacom driver onto the device by a similar snippet and a Driver "wacom" line.

Comment 2 Ben Cotton 2019-05-02 20:57:35 UTC
This message is a reminder that Fedora 28 is nearing its end of life.
On 2019-May-28 Fedora will stop maintaining and issuing updates for
Fedora 28. It is Fedora's policy to close all bug reports from releases
that are no longer maintained. At that time this bug will be closed as
EOL if it remains open with a Fedora 'version' of '28'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 28 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 3 Ben Cotton 2019-05-28 22:22:48 UTC
Fedora 28 changed to end-of-life (EOL) status on 2019-05-28. Fedora 28 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.