SUMMARY Add a touchpad configuration option that only enables touchpad two-finger scrolling when a modifier key is being pressed. This should not impact other touchpad functionality - just two-finger scrolling. I have described this in detail, including why I need it here: https://forum.kde.org/viewtopic.php?f=216&t=155524 Thus option would dramatically improve my user experience. The current problem occurs several times every hour and disrupts my work flow. OBSERVED RESULT Unintentional touchpad scrolling occurs frequently which is very frustrating EXPECTED RESULT Touchpad continues to work normally, but only scrolls when I explicitly want it to (by holding down a fixed or configurable modifier key such as Alt, Ctrl, or Super. and using two-finger scrolling) SOFTWARE/OS VERSIONS Any, but I currently use kubuntu 18.04. Windows: macOS: Linux/KDE Plasma: (available in About System) KDE Plasma Version: KDE Frameworks Version: Qt Version: ADDITIONAL INFORMATION I have two partially numb fingers on my right hand and I don't feel them touching the touchpad until it's too late and my screen goes careening off to multiple other desktops or window positions I did not want. Two-finger scrolling is a great feature. I do not want to eliminate it. I just want to eliminate unintentional scrolling. Other relevant issues (not duplicates): 391551 369426 Since System Settings already has options for configuring two-finger scrolling, some of the infrastructure required for this feature is already implemented.
Can you provide a screenshot of the way your touchpad settings page looks so I can get an idea of whether you're using the Synaptics or Libinput drivers?
Created attachment 121567 [details] Touchpad settings bigbird@sananda:~$ cat ./.config/touchpadrc [parameters] AccelFactor=0 CircScrollDelta=6 Coasting=false CoastingSpeed=16 HorizScrollDelta=6.8 HorizTwoFingerScroll=true MaxSpeed=17.084548950195312 MaxTapMove=3.6 MinSpeed=2.02480149269104 PressureMotionMaxZ=173 PressureMotionMinZ=59 RBCornerButton=NoButton RTCornerButton=NoButton Tapping=false ThreeFingerTapButton=LeftButton TwoFingerTapButton=LeftButton VertEdgeScroll=false VertScrollDelta=3.7000000000000006 bigbird@sananda:~$ bigbird@sananda:~$ xinput list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ ETPS/2 Elantech Touchpad id=11 [slave pointer (2)] ⎜ ↳ Mouseemu virtual mouse id=14 [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)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Power Button id=8 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=9 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)] ↳ Toshiba input device id=12 [slave keyboard (3)] ↳ Mouseemu virtual keyboard id=13 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=15 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=16 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=17 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=18 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=19 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=20 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=21 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=22 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=23 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=24 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=25 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=26 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=27 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=28 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=29 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=30 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=31 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=32 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=33 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=34 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=35 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=36 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=37 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=38 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=39 [slave keyboard (3)] bigbird@sananda:~$
Additional info: bigbird@sananda:~$ cat ./.config/touchpadrc [parameters] AccelFactor=0 CircScrollDelta=6 Coasting=false CoastingSpeed=16 HorizScrollDelta=6.8 HorizTwoFingerScroll=true MaxSpeed=17.084548950195312 MaxTapMove=3.6 MinSpeed=2.02480149269104 PressureMotionMaxZ=173 PressureMotionMinZ=59 RBCornerButton=NoButton RTCornerButton=NoButton Tapping=false ThreeFingerTapButton=LeftButton TwoFingerTapButton=LeftButton VertEdgeScroll=false VertScrollDelta=3.7000000000000006 bigbird@sananda:~$ bigbird@sananda:~$ xinput list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ ETPS/2 Elantech Touchpad id=11 [slave pointer (2)] ⎜ ↳ Mouseemu virtual mouse id=14 [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)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Power Button id=8 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=9 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)] ↳ Toshiba input device id=12 [slave keyboard (3)] ↳ Mouseemu virtual keyboard id=13 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=15 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=16 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=17 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=18 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=19 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=20 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=21 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=22 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=23 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=24 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=25 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=26 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=27 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=28 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=29 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=30 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=31 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=32 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=33 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=34 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=35 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=36 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=37 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=38 [slave keyboard (3)] ↳ TOSHIBA Web Camera - HD: TOSHIB id=39 [slave keyboard (3)] bigbird@sananda:~$
Okay, so you're using the Synaptics driver. I have bad news for you: The issue of unintentional two-finger scrolling is unfortunately irresolvable with that driver. :( I spent months and months researching it and applying patches and came to the conclusion that it was a lost cause. So did the developers of the Synaptics driver, in fact, because they created a new driver called Libinput that, among other things, was specifically designed to address this issue. I've been following its development closely and I'm happy to report that for me at least, it's finally fixed with this patchset: https://gitlab.freedesktop.org/libinput/libinput/merge_requests/247 Neither the Synaptics nor Libinput drivers readily support your request, so I'm afraid your only option is to give Libinput a whirl and file bugs if it doesn't behave how you want. The developer Peter Hutterer is quite pleasant and responsive.
Thank you for your efforts and the quick response. I will take a look at the other driver and see if I can figure out how to install it and then pursue the issue there.