Bug 498925 - More granular auto-disable that permits blocking or allowing certain devices to disable the touchpad
Summary: More granular auto-disable that permits blocking or allowing certain devices ...
Status: CONFIRMED
Alias: None
Product: systemsettings
Classification: Applications
Component: kcm_touchpad (show other bugs)
Version: 6.2.5
Platform: Debian testing Linux
: NOR wishlist
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-01-20 13:57 UTC by Horst Schirmeier
Modified: 2025-01-28 21:47 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Horst Schirmeier 2025-01-20 13:57:25 UTC
SUMMARY
I'm not sure this might even be a considered a bug, but since migrating from KDE5 to KDE6, touchpad auto-disable is *always on* on my machine, and not configurable in any way anymore:

- When I plug in a USB mouse, my Lenovo ThinkPad T15p touchpad ("SynPS/2 Synaptics TouchPad") gets disabled automatically (OK for me).
- A touch-screen input device the system sees when attaching our classroom equipment via USB also disables the ThinkPad touchpad (not OK for me).
- When using "projecteur", a (Debian-packaged) piece of software that provides a virtual mouse controlled by a "Logitech Spotlight" device, the ThinkPad touchpad gets disabled (not OK for me).

Earlier, the xserver-xorg-input-synaptics configuration was much more fine-grained and among other things allowed me to define a whitelist of devices that did not disable the internal touchpad. Please consider adding such a whitelist again, ideally one that can easily be filled with devices currently connected to the machine.

The respective, now ignored entries from my .config/touchpadrc:

[autodisable]
DisableWhenMousePluggedIn=true
MouseBlacklist=Honghe KasaF75 CoolTouch® System,TPPS/2 Elan TrackPoint,Projecteur_virtual_mouse,Projecteur_virtual_keyboard,SMART Technologies SMART Board Mouse,SMART Technologies SMART Board,PixArt USB Optical Mouse,Logitech USB Receiver Mouse,Logitech USB Receiver Consumer Control,Projecteur_input_device,Presenter with Joystick Consumer Control,Presenter with Joystick Mouse,TPPS/2 IBM TrackPoint,USB Trackpoint pointing device,DualPoint Stick,ThinkPad USB Keyboard with TrackPoint
Comment 1 Horst Schirmeier 2025-01-20 14:45:47 UTC
PS: I just realized that I'm responsible for the auto-disable myself (see below), so this is certainly not a bug but merely a request to control this in a much more fine-grained manner.

/etc/X11/xorg.conf.d/30-touchpad.conf :

# https://gitlab.freedesktop.org/libinput/libinput/-/issues/924#note_2051323
Section "InputClass"
        Identifier "touchpad"
        Driver "libinput"
        MatchIsTouchpad "on"
        Option "SendEventsMode" "disabled-on-external-mouse"
EndSection
Comment 2 Nate Graham 2025-01-21 23:03:21 UTC
When this happens, are you using X11, or Wayland?

Does it also happen on Wayland?

If it doesn't happen on Wayland, there's a chance this should work as expected without additional action needed in Plasma 6.3, which has a new implementation of the "disable touchpad while mouse is connected" feature and it might be smarter about figuring out what's actually a mouse and what's not.

If not, then I think it's reasonable to make the configuration more fine-grained to work around devices that inappropriately report themselves as mice, which wouldn't be something we can really fix on our side.
Comment 3 Horst Schirmeier 2025-01-23 09:56:11 UTC
(In reply to Nate Graham from comment #2)
> When this happens, are you using X11, or Wayland?
> 
> Does it also happen on Wayland?

I don't use Wayland, and I have yet to test the behavior on Wayland.

> If it doesn't happen on Wayland, there's a chance this should work as
> expected without additional action needed in Plasma 6.3, which has a new
> implementation of the "disable touchpad while mouse is connected" feature
> and it might be smarter about figuring out what's actually a mouse and
> what's not.
> 
> If not, then I think it's reasonable to make the configuration more
> fine-grained to work around devices that inappropriately report themselves
> as mice, which wouldn't be something we can really fix on our side.

OK – I guess it makes sense for me to wait for Plasma 6.3 to roll into my Debian Testing installation before I reopen this feature request. However, the previous whitelist (i.e., a list of devices that should not disable the touchpad) approach worked really well around the problem of devices inappropriately reporting themselves as mice – which sadly exist and definitely cannot be educated to report in differently.
Comment 4 Nate Graham 2025-01-23 15:21:53 UTC
It's fine, we can keep this open, since I see in principle how a whitelist would be important in specific circumstances like yours.
Comment 5 Jakob Petsovits 2025-01-23 15:57:22 UTC
See this comment in the KWin MR for which devices libinput will react on: https://invent.kde.org/plasma/kwin/-/merge_requests/6928#note_1097227

As far as I can tell, your "projecteur" virtual mouse should not cause the touchpad to be disabled because it has neither a "USB" nor "Bluetooth" tag. And the touchscreen *probably* doesn't have a "mouse" or "pointingstick" tag assigned, so I figure that will also not result in the touchpad getting disabled. I can't test this here though, please confirm once you have access to a Plasma 6.3 setup.

If the current heuristics aren't sufficient, the best course of action might be to tighten the heuristics within libinput. Alternatively, KWin could implement the same logic as libinput (it's fairly straightforward) but allow additional configuration. Ideally though, I think we'd like to just make it work for as many people as possible by default.
Comment 6 Jakob Petsovits 2025-01-28 21:01:04 UTC
Git commit 8979107a0d1769602062bdda258c62ca71bfd2f2 by Jakob Petsovits.
Committed on 28/01/2025 at 20:48.
Pushed by jpetso into branch 'master'.

kcms/touchpad: Remove auto-disable functionality from kded

The X11-only touchpad kded contained code to monitor for
keyboard events, as well as mouse plug-in events, upon which the
touchpad would be automatically enabled or disabled accordingly.

This is not necessary anymore now that we only support libinput,
and we let the user configure both its "disable while typing" and
"disable while mouse is connected" features.

If the user had a config with non-default settings for auto-disable,
those are now migrated to their appropriate X11 config.

The remaining manual touchpad on/off/toggle shortcuts continue to
work on X11 only, whereas KWin itself implements them on Wayland.

M  +0    -1    kcms/touchpad/CMakeLists.txt
M  +1    -1    kcms/touchpad/backends/CMakeLists.txt
M  +3    -55   kcms/touchpad/backends/x11/xlibbackend.cpp
M  +3    -5    kcms/touchpad/backends/x11/xlibbackend.h
D  +0    -142  kcms/touchpad/backends/x11/xrecordkeyboardmonitor.cpp
D  +0    -45   kcms/touchpad/backends/x11/xrecordkeyboardmonitor.h
M  +0    -6    kcms/touchpad/kded/CMakeLists.txt
D  +0    -338  kcms/touchpad/kded/kcm_touchpad.notifyrc
M  +54   -106  kcms/touchpad/kded/kded.cpp
M  +0    -16   kcms/touchpad/kded/kded.h
D  +0    -5    kcms/touchpad/kdedsettings.kcfgc
M  +1    -7    kcms/touchpad/touchpadbackend.h
D  +0    -26   kcms/touchpad/touchpaddaemon.kcfg

https://invent.kde.org/plasma/plasma-desktop/-/commit/8979107a0d1769602062bdda258c62ca71bfd2f2
Comment 7 Jakob Petsovits 2025-01-28 21:47:49 UTC
Git commit 222697611f3248fae26e6465f4a16b1f74899c70 by Jakob Petsovits.
Committed on 28/01/2025 at 21:27.
Pushed by jpetso into branch 'Plasma/6.3'.

kcms/touchpad: Remove auto-disable functionality from kded

The X11-only touchpad kded contained code to monitor for
keyboard events, as well as mouse plug-in events, upon which the
touchpad would be automatically enabled or disabled accordingly.

This is not necessary anymore now that we only support libinput,
and we let the user configure both its "disable while typing" and
"disable while mouse is connected" features.

If the user had a config with non-default settings for auto-disable,
those are now migrated to their appropriate X11 config.

The remaining manual touchpad on/off/toggle shortcuts continue to
work on X11 only, whereas KWin itself implements them on Wayland.

(cherry picked from commit 8979107a0d1769602062bdda258c62ca71bfd2f2)

M  +0    -1    kcms/touchpad/CMakeLists.txt
M  +1    -1    kcms/touchpad/backends/CMakeLists.txt
M  +3    -55   kcms/touchpad/backends/x11/xlibbackend.cpp
M  +3    -5    kcms/touchpad/backends/x11/xlibbackend.h
D  +0    -142  kcms/touchpad/backends/x11/xrecordkeyboardmonitor.cpp
D  +0    -45   kcms/touchpad/backends/x11/xrecordkeyboardmonitor.h
M  +0    -6    kcms/touchpad/kded/CMakeLists.txt
D  +0    -338  kcms/touchpad/kded/kcm_touchpad.notifyrc
M  +54   -106  kcms/touchpad/kded/kded.cpp
M  +0    -16   kcms/touchpad/kded/kded.h
D  +0    -5    kcms/touchpad/kdedsettings.kcfgc
M  +1    -7    kcms/touchpad/touchpadbackend.h
D  +0    -26   kcms/touchpad/touchpaddaemon.kcfg

https://invent.kde.org/plasma/plasma-desktop/-/commit/222697611f3248fae26e6465f4a16b1f74899c70