Deactivating the Touchscreen/Pen of a Convertible Laptop

Hi,

I am struggling to get the touchscreen deactivated on a Thinkpad Yoga 12. The simple reason is that I get “ghost” touches which sometimes comes even hundreds of times per minute, mostly bringing the mouse cursor jumping near to the screen border. Ideally I want those be gone, but on the device I don’t need the touchscreen that much any more.
Moreover, as I am not sure what causes this presses and the Laptop has a pen input with a passive Wacom too which may be the actual cause and not the touchscreen, I want to deactivate that too.

The laptop was installed around half a year ago with the at the time newest Manjaro KDE and regularly updated via package manager. I am using a Wayland session on KDE.

I already tried with those methods (in parallel, all used the same time):

  • Disabling via udev rules:
    A 80-touchscreen.rules file is therefore in /etc/udev/rules.d/:
SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="7244", ATTRS{authorized}="0"
SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="0000", ATTRS{authorized}="0"
SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{authorized}="0"
SUBSYSTEM=="usb", ATTRS{idVendor}=="056a", ATTRS{authorized}="0"

As seen, I tried to deactivate the components indepentenly for the touchscreen, and afterwards added also a vendor-specific blocking for the Synaptics/Wacom devices (the last two lines).

  • Using xorg.conf files, but here I could only set MatchTouchscreen to “off”. When I add Option “Ignore” “on” to the sections for Touchscreen and pointer, all other input hardware is deactivated too (namely touchpad, keyboard and even USB mice/keyboards). I think this is already a problem here but I don’t know why this Option is going over all hardware as it is inside the Section as in the post, see /usr/share/X11/xorg.conf.d/10-evdev.conf
#
# Catch-all evdev loader for udev-based systems
# We don't simply match on any device since that also adds accelerometers
# and other devices that we don't really want to use. The list below
# matches everything but joysticks.

Section "InputClass"
        Identifier "evdev pointer catchall"
        MatchIsPointer "off"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Section "InputClass"
        Identifier "evdev keyboard catchall"
        MatchIsKeyboard "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Section "InputClass"
        Identifier "evdev touchpad catchall"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Section "InputClass"
        Identifier "evdev tablet catchall"
        MatchIsTablet "off"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Section "InputClass"
        Identifier "evdev touchscreen catchall"
        MatchIsTouchscreen "off"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

and /usr/share/X11/xorg.conf.d/40-libinput.conf

# Match on all types of devices but joysticks
#
# If you want to configure your devices, do not copy this file.
# Instead, use a config snippet that contains something like this:
#
# Section "InputClass"
#   Identifier "something or other"
#   MatchDriver "libinput"
#
#   MatchIsTouchpad "on"
#   ... other Match directives ...
#   Option "someoption" "value"
# EndSection
#
# This applies the option any libinput device also matched by the other
# directives. See the xorg.conf(5) man page for more info on
# matching devices.

Section "InputClass"
        Identifier "libinput pointer catchall"
        MatchIsPointer "off"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

Section "InputClass"
        Identifier "libinput keyboard catchall"
        MatchIsKeyboard "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

Section "InputClass"
        Identifier "libinput touchpad catchall"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

Section "InputClass"
        Identifier "libinput touchscreen catchall"
        MatchIsTouchscreen "off"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

Section "InputClass"
        Identifier "libinput tablet catchall"
        MatchIsTablet "off"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

for this.

  • Lastly I tried the deactivation via xinput, but the only noticeable difference is via either
    xinput disable 7
    or
    xinput set-prop 7 120 0
    but this only deactivates the pointer within firefox, the other ids do not seem to disable any touch.
    Additionally, any setting via input triggers the warning:
    WARNING: running xinput against an Xwayland server. See the xinput man page for details.
    But of course as I am using wayland, this does not seem a problem.

Is there any error in this approach? Or is it done completely different under Wayland?

you are on wayland so those xorg.conf settings are all ignored …
isnt there a option for this in your bios settings?

I have this issue too. What I have done is to login using GNOME Xorg, and use xinput disable for the ELAN Stylus. This works for me.

Thanks for the fast answers!

@brahma No unfortunately there is no such setting in the bios.
But if xorg configs are not used by Wayland, aren’t there any similar configs that can be used under Wayland?

@man-jar-oh You mean installing GNOME besides KDE? And deactivating it with xinput does take over this settings in a KDE session or is this only working as long as I stay under GNOME?

so you can blacklist them, provide output from:
lsmod | grep -E 'touch|touchscreen'

@brahma Thanks that brought me to the right direction!

I remember that I already tested with modprobe -r and found ‘hid_multitouch’ that is mentioned in other threads as well. But that doesn’t change the behavior, so I tested a bit through the lsmod modules. Especially when grepping for ‘wacom’ instead of ‘touch’, I found that two modules are used for the pen detection. I couldn’t test it long already but as the pen is recognized before blacklisting and afterwards not any more and the ghost touches are gone, I am sure that I finally found it.

What i did if anyone has the same issue with (mostly Thinkpad Yogas) with both touch and pen:
Temporary deactivated the modules ‘wacom’ and ‘usbhid’ like so

sudo modprobe -r usbhid

and after that worked to make it persistent I made a file /etc/modprobe.d/wacom.conf:

blacklist wacom
blacklist usbhid

Interestingly, the hid_multitouch module doesn’t need to be deactivated for the device to disable the touch functionality as well.
And even if usbhid sounds like affecting more devices, it does not seem so: Touchpad, Pointer, Keyboard is still working.

So I think its solved now. Thanks again for the inputs, I was totally centered to the xorg methods to oversee the obvious.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.