Wacom touchscreens should disable gestures

Bug #1774242 reported by Shawn Rutledge on 2018-05-30
50
This bug affects 6 people
Affects Status Importance Assigned to Milestone
OEM Priority Project
Critical
Bin Li
xf86-input-wacom (Ubuntu)
Medium
Timo Aaltonen
Bionic
Medium
Timo Aaltonen

Bug Description

[Impact]

From the original bug:

"The result is that on my Yoga 920, in a plain X11 session (running openbox in my case), the touchscreen acts like a broken mouse: there is no multi-touch capability in Qt Quick applications, and clicking isn't quite right either."

[Test case]

Install the update, note that the touchscreen behaviour is better.

[Regression potential]

From the upstream commit:

"Note that this change will effectively cause a feature regression for
users of other environments that do *not* have their own gesture
engines (Cinnamon, KDE, MATE, XFCE, etc.). Users will want to add an
xorg.conf.d snippet with `Option "Gesture" "on"` to bring back the
functionality."

but at least I (tjaalton) haven't heard of any complaints since we've disabled gestures in focal (Nov 21st), so the warning might be a bit too pessimistic about the impact.

--

/usr/share/X11/xorg.conf.d/70-wacom.conf as shipped, has this:

Section "InputClass"
        Identifier "Wacom touchscreen class"
        MatchProduct "Wacom|WACOM|PTK-540WL|ISD-V4"
        MatchDevicePath "/dev/input/event*"
        MatchIsTouchscreen "true"
        Driver "wacom"
EndSection

The result is that on my Yoga 920, in a plain X11 session (running openbox in my case), the touchscreen acts like a broken mouse: there is no multi-touch capability in Qt Quick applications, and clicking isn't quite right either. I also verified it with Peter Hutterer's old cairo-based mt-touch test program.

I suspect we will get some users mistakenly writing up Qt bugs about this if you don't ship a fix. (Seems to me that already happened at least once, actually.)

Yes, the touchscreen is made by Wacom, but wacom_drv.so has historically been only for Wacom tablets and in-screen stylus digitizers, and IMO that continues to be the case. libinput is a much better choice of driver for this hardware (so is evdev for that matter), so I changed it to Driver "libinput" and got it working. (Wayland uses libinput, so in a wayland session, touch already works fine in Qt apps on this hardware.)

I'm one of the Qt Quick maintainers, most concerned with touch handling, and I've also written some of the Qt xcb code for dealing with XInput touch and tablet devices. So if you think that there's something wrong with Qt, such that it should still work anyway to use a wacom driver for a Wacom touchscreen, let me know. These AES devices are still new to me (that's why I got a Yoga, to try it out).

ProblemType: Bug
DistroRelease: Ubuntu 18.04
Package: xserver-xorg-input-wacom 1:0.36.1-0ubuntu1 [modified: usr/share/X11/xorg.conf.d/70-wacom.conf]
ProcVersionSignature: Ubuntu 4.15.0-22.24-generic 4.15.17
Uname: Linux 4.15.0-22-generic x86_64
NonfreeKernelModules: zfs zunicode zavl icp zcommon znvpair
ApportVersion: 2.20.9-0ubuntu7
Architecture: amd64
Date: Wed May 30 19:40:51 2018
DistUpgraded: Fresh install
DistroCodename: bionic
DistroVariant: ubuntu
MachineType: LENOVO 80Y7
ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-4.15.0-22-generic root=ZFS=rpool/ROOT/ubuntu ro
SourcePackage: xf86-input-wacom
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 02/22/2018
dmi.bios.vendor: LENOVO
dmi.bios.version: 5NCN38WW
dmi.board.asset.tag: NO Asset Tag
dmi.board.name: LNVNB161216
dmi.board.vendor: LENOVO
dmi.board.version: SDK0J40709 WIN
dmi.chassis.asset.tag: NO Asset Tag
dmi.chassis.type: 31
dmi.chassis.vendor: LENOVO
dmi.chassis.version: Lenovo YOGA 920-13IKB
dmi.modalias: dmi:bvnLENOVO:bvr5NCN38WW:bd02/22/2018:svnLENOVO:pn80Y7:pvrLenovoYOGA920-13IKB:rvnLENOVO:rnLNVNB161216:rvrSDK0J40709WIN:cvnLENOVO:ct31:cvrLenovoYOGA920-13IKB:
dmi.product.family: YOGA 920-13IKB
dmi.product.name: 80Y7
dmi.product.version: Lenovo YOGA 920-13IKB
dmi.sys.vendor: LENOVO
version.compiz: compiz N/A
version.libdrm2: libdrm2 2.4.91-2
version.libgl1-mesa-dri: libgl1-mesa-dri 18.0.0~rc5-1ubuntu1
version.libgl1-mesa-glx: libgl1-mesa-glx 18.0.0~rc5-1ubuntu1
version.xserver-xorg-core: xserver-xorg-core 2:1.19.6-1ubuntu4
version.xserver-xorg-input-evdev: xserver-xorg-input-evdev 1:2.10.5-1ubuntu1
version.xserver-xorg-video-ati: xserver-xorg-video-ati 1:18.0.1-1
version.xserver-xorg-video-intel: xserver-xorg-video-intel 2:2.99.917+git20171229-1
version.xserver-xorg-video-nouveau: xserver-xorg-video-nouveau 1:1.0.15-2

I verified that the stylus does still work OK (using the Qt tablet example which demonstrates pressure-sensitivity etc.) So I think it's probably OK to remove that stanza completely: there's probably no reason to use wacom.drv for the touchscreen, just let it fall back to libinput or evdev, whichever is installed.

Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in xf86-input-wacom (Ubuntu):
status: New → Confirmed
bluecakes (bluecakes) wrote :

Thank you so much for posting this simple fix!!!! I changed the line from Driver "wacom" to Driver "libinput" like you said. Now multitouch is working correctly in Kubuntu.

I have a Lenovo Flex 5 "14 (also known as the Yoga 520 outside the US) which also uses Wacom AES hardware. I could not get multitouch to work at all with the touchscreen. This was bad because multitouch allows me to easily zoom/move around the canvas when I'm drawing in Krita and also zoom and go forward/backwards in google chrome.

The touchscreen with the driver set to wacom driver is awful! In addition to no multitouch I couldn't even do simple scrolling smoothly. I agree that the "Wacom touchscreen class" should switch to "libinput" drivrt by default.

Who knows how many other Lenovo flex/yoga users this confused.

Greg (denverc0der9) wrote :

I deleted the whole section as suggested by Shawn, and also deleted the similar one with "USB". Now my touchscreen and everything else are working great.

Florian Mayer (sans-ltd) wrote :

The same issue happens on the Lenovo Thinkpad X1 Yoga 2nd gen. I think the rule above was simply a bit too much. Can somebody confirm a device where exactly the rules with the capability MatchIsTouchscreen "true" are really needed? Those devices seem to have a buggy HID descriptor.
If not, Ubuntu, could you please remove (or at least comment) these annoying rules since they seem to break a lot (if not all) Lenovo Yoga convertible devices...

Florian Mayer (sans-ltd) wrote :

Tested with Ubuntu 18.04.1

paoletto (paoletto) wrote :

Happens here too, the proposed fix solves the problem.
Please upstream it!

kecsap (csaba-kertesz) wrote :

Proposed fix works, the touchscreen is much more usable with libinput on Lenovo Thinkpad X1 Yoga 1st gen now.

Timo Aaltonen (tjaalton) wrote :

The same effect would happen if the touchscreen entries were commented out from 70-wacom.conf, can you confirm?

Changed in xf86-input-wacom (Ubuntu):
assignee: nobody → Timo Aaltonen (tjaalton)
status: Confirmed → Incomplete
Kai-Heng Feng (kaihengfeng) wrote :

I can confirm that once the section is commented out, libinput is in use, and multitouch works.

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package xf86-input-wacom - 1:0.36.1-0ubuntu2

---------------
xf86-input-wacom (1:0.36.1-0ubuntu2) disco; urgency=medium

  * skip-touchscreens.diff: Don't use wacom for touchscreens. (LP:
    #1774242)

 -- Timo Aaltonen <email address hidden> Fri, 12 Apr 2019 10:26:53 +0300

Changed in xf86-input-wacom (Ubuntu):
status: Incomplete → Fix Released
Jason Gerecke (killertofu) wrote :

Just a note (mostly to other distro maintainers that may come across this) that an alternative to completely disabling the Wacom driver's touchscreen handling is to just add `Option "Gesture" "Off"` to the touchscreen section of 70-wacom.conf instead.

The driver currently defaults to consuming all multitouch events to power its own (very limited) gesture recognizer, but the above config option will let it pass everything through to the desktop and applications.

paoletto (paoletto) wrote :

18.04 seems still br0ken. One of the last updates restored the broken 70-wacom.conf

Timo Aaltonen (tjaalton) wrote :

paoletto: nothing changed in 18.04, it never got this update

Timo Aaltonen (tjaalton) wrote :

Jason: that's a good suggestion, I'll fix the package to use that instead

Timo Aaltonen (tjaalton) wrote :

actually, could someone test that before it's pushed to the distro? Modify 70-wacom.conf, uncomment the touchscreen class(es) and add the option there.

Leon Liao (lihow731) wrote :

@Timo,

I verified the method to add the option "Option Gesture Off" without uncomment the touchscreen class(es) on new Dell XPS 13.
This method works.

The config is here:
https://bugs.launchpad.net/somerville/+bug/1840605/comments/7

Bin Li (binli) wrote :

I tried the upstream patch on xserver-xorg-input-wacom 1:0.36.1-0ubuntu1 on 18.04, this issue is fixed.

commit 31a5405f7d9405bc514585709161287b0c67386e
Author: Jason Gerecke <email address hidden>
Date: Mon Sep 9 15:32:17 2019 -0700

    Change default gesture mode: touchpad=on, touchscreen=off

    A large number of users run the GNOME desktop which has its own gesture
    engine that performs actions on touchscreens. These gestures are much
    better than the ones we provide, so lets disable our engine by default
    for touchscreens. Note that GNOME doesn't do anything with touchpad
    gestures, so we leave them enabled by default.

    Note that this change will effectively cause a feature regression for
    users of other environments that do *not* have their own gesture
    engines (Cinnamon, KDE, MATE, XFCE, etc.). Users will want to add an
    xorg.conf.d snippet with `Option "Gesture" "on"` to bring back the
    functionality.

    Signed-off-by: Jason Gerecke <email address hidden>

Bin Li (binli) wrote :

Timo,

 Could you help SRU into bionic? Thanks!

 Here is the SRU bug link. If we SRU at lp:1774242, I think I could duplicate lp:1852691.

https://bugs.launchpad.net/ubuntu/+source/xf86-input-wacom/+bug/1852691

Timo Aaltonen (tjaalton) wrote :

backporting the upstream commit to bionic

Changed in xf86-input-wacom (Ubuntu Bionic):
assignee: nobody → Timo Aaltonen (tjaalton)
status: New → In Progress
Timo Aaltonen (tjaalton) on 2020-03-11
description: updated
summary: - Wacom touchscreens should use libinput, not wacom driver
+ Wacom touchscreens should disable gestures
Rex Tsai (chihchun) on 2020-03-16
no longer affects: linux-oem (Ubuntu Bionic)
no longer affects: linux-oem (Ubuntu)
Changed in oem-priority:
assignee: nobody → Bin Li (binli)
Bin Li (binli) on 2020-03-16
Changed in oem-priority:
status: New → In Progress
importance: Undecided → High
Bin Li (binli) wrote :

@Timo,

 I see your upload is still in upload queue, it's about two weeks, do you know who could help for this package? Thanks!

 https://launchpad.net/ubuntu/bionic/+upload/22988587/+files/xf86-input-wacom_0.36.1-0ubuntu1.1_source.changes

Brian Murray (brian-murray) wrote :

Why was it decided to fix this via patch to xf86-input-wacom instead of modifying 70-wacom.conf to use "Option Gesture Off"? It seems to me that it would be easier for users of other desktop environments to revert the change (and avoid a regression in behavior) by switching "Option Gesture" back to on.

Timo Aaltonen (tjaalton) wrote :

The patch is from current upstream version, and it just flips the default in the code.

Modifying 70-wacom.conf locally wouldn't be a permanent solution, as a package update would overwrite it. But flipping the default by the user via a snippet in /etc/X11/xorg.conf.d is still possible.

Also, a quick googling suggests that touchegg is the preferred choice for the other desktops to use touchscreen gestures. KDE might have something natively by now, but I'm not sure.

Mathew Hodson (mhodson) on 2020-03-26
Changed in xf86-input-wacom (Ubuntu):
importance: Undecided → Medium
Changed in xf86-input-wacom (Ubuntu Bionic):
importance: Undecided → Medium
Bin Li (binli) wrote :

@mathew-hodson,

 We had several OEM laptops blocked by this issue, could you give it a higher importance? Thanks!

Hello Shawn, or anyone else affected,

Accepted xf86-input-wacom into bionic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/xf86-input-wacom/1:0.36.1-0ubuntu1.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-bionic to verification-done-bionic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-bionic. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in xf86-input-wacom (Ubuntu Bionic):
status: In Progress → Fix Committed
tags: added: verification-needed verification-needed-bionic
Brian Murray (brian-murray) wrote :

I've added the block-proposed tag so we can let this SRU age longer and get feedback from flavours regarding any potential regressions.

tags: added: block-proposed
tags: added: block-proposed-bionic
removed: block-proposed
Bin Li (binli) wrote :

@brian-murray,

 Thanks for your help.

I tested on ThinkPad laptop with wacom touch screen(056a:5222), installed xserver-xorg-input-wacom 1:0.36.1-0ubuntu1.1, this issue is fixed.

tags: added: verification-done-bionic
removed: verification-needed-bionic
Rex Tsai (chihchun) wrote :

@Brain

OEM team is blocked by this SRU for a certified product. May I know how long it should take for receiving feedback from the community?

Bin Li (binli) wrote :

Hi,

 I installed the Cinnamon(cinnamon-desktop-environment), KDE(kde-plasma-desktop), MATE(mate-desktop-environment) on ThinkPad Yoga, on these desktops there are not too much supported gestures like gnome-shell. So I run the QA's testcases to test below items, these desktops all passed.

Testcases:
1) Touchscreen drag & drop
   Tap and hold an object on the desktop
   Drag and drop the object in a different location.
2) Touchscreen pinch gesture for zoom
   Use two fingers to resize the blue square
3) Touchscreen pinch gesture for rotate
   Use two fingers to rotate the blue square
4) 3-touch tap
5) 4-touch tap

Rex Tsai (chihchun) on 2020-05-11
Changed in oem-priority:
importance: High → Critical
Timo Aaltonen (tjaalton) wrote :

since the testing on other desktops showed no regressions, I'm removing the block-proposed tag

tags: added: verification-done
removed: block-proposed-bionic verification-needed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package xf86-input-wacom - 1:0.36.1-0ubuntu1.1

---------------
xf86-input-wacom (1:0.36.1-0ubuntu1.1) bionic; urgency=medium

  * 0001-Change-default-gesture-mode-touchpad-on-touchscreen-.patch:
    Skip gestures on touchscreens. (LP: #1774242)

 -- Timo Aaltonen <email address hidden> Wed, 11 Mar 2020 11:11:21 +0200

Changed in xf86-input-wacom (Ubuntu Bionic):
status: Fix Committed → Fix Released

The verification of the Stable Release Update for xf86-input-wacom has completed successfully and the package is now being released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Bin Li (binli) on 2020-05-18
Changed in oem-priority:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers