Bug 481347

Summary: Support for advanced libinput configuration / button scrolling
Product: [Applications] systemsettings Reporter: waterlubber
Component: kcm_touchpadAssignee: Plasma Bugs List <plasma-bugs-null>
Status: RESOLVED UPSTREAM    
Severity: wishlist CC: natalie_clarius, nate
Priority: NOR    
Version First Reported In: 5.27.10   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description waterlubber 2024-02-15 05:43:35 UTC
SUMMARY
I've unfortunately run into an issue on my laptop where libinput ignores MMB due to it activating "button scrolling" (see [here](https://wayland.freedesktop.org/libinput/doc/latest/scrolling.html#on-button-scrolling)) by default. While I have filed a [bug report](https://gitlab.freedesktop.org/libinput/libinput/-/issues/971) with them already, it's impossible to work around - or configure - this problem, and it'll likely end up as WONTFIX on libinputs end, as this button scrolling behavior is intended to be configurable.

I would like the ability to enable or disable button scrolling for a touchpad; this is applicable to touchpads with a physical MMB, which will not function correctly with button scrolling enabled. From what I understand of the documentation and "kcminputrc"/touchpad KCM, I might be able to implement this myself, but would probably need some help as I've yet to tear into KDE internals this deeply before. 

As an alternative, a system of shimming in arbitrary configs for libinput would be very helpful. As far as I can tell, libinput (on Wayland) can only be configured by the DE, barring nasty hacks like libinput-config (which is no longer maintained). The ability to shim in arbitrary libinput configurations, even if they're only available by editing .rc files, would be very helpful.

DESIRED FEATURE
1. Support for enabling or disabling [button scrolling](https://gitlab.freedesktop.org/libinput/libinput/-/issues/971) for touchpad devices, or;
2. Generic support for all libinput configurations via a shim somewhere (this may need to occur elsewhere in Plasma?)

Apologies if this is the wrong place to file this. Unfortunately, this is one of those "split responsibility" areas between Wayland and Plasma, so I'm not sure where the fix belongs. Libinput ought to include a more sensible default on this machine, but a configuration option would still be useful for e.g laptops with a trackpoint that the user does not desire to use. 

STEPS TO REPRODUCE
1. Acquire a laptop with a touchpad, physical MMB, and (possibly) history of trackpoint mice availability. I had a Precision 7750.
2. Press and hold MMB, note that the events are delayed until after release due to libinput trying to perform button scrolling with a nonexistent trackpoint.
3. Wallow in agony at the lack of a configuration option to disable button scrolling.
Comment 1 Nate Graham 2024-03-25 02:39:31 UTC
Unfortunately there's nothing KDE can do here either. This page simply enables or disabled features that Libinput exposes; if Libinput doesn't add the requested feature/configuration option, we can't inject it ourselves.

Please do let us know if and when https://gitlab.freedesktop.org/libinput/libinput/-/issues/971 is implemented/fixed though. If a new config option gets added that we can touch from the Touchpad page, feel free to re-open this bugzilla ticket and then we can use it to track implementing it on our side.