3

My touchpad has momentum enabled (or inertia, I do not know what the correct term is) - that is, even after my fingers leave the touchpad, it continues scrolling and gradually slows down (I believe it is a feature of every touchpad). However, in my Linux Mint Cinnamon, even in the momentum of the touchpad, Ctrl works, and often, when I use Ctrl right after scrolling, it suddenly zooms in or out, as Ctrl + scrolling changes zoom. How can I fix this such that Ctrl will not act upon the touchpad's momentum?

  • Aha! I have this exact same problem as well. – cat Mar 14 '16 at 18:12
  • 1
    This is due to the driver architecture and as far as I know it won't be fixed. – don_crissti Mar 15 '16 at 14:50
  • 1
    @don_crissti Yes, apparently it's not X's fault. FWIW I filed a bug with Qt a couple of years about this (for KDE). – Sparhawk Mar 20 '16 at 10:46
3
+25

This is since coasting has been implemented in the libinput drivers, ostensibly to improve usability, but with side effects (originating in the translation to X11 events) that you are experiencing.

Increasing the coasting friction can help with the issue. This works by killing the scrolling much faster after your fingers leave the touchpad, causing the libinput X11 driver to generate fewer scroll events and making an event-key clash much less likely. If you want to keep some level of coasting, then you may need to play around with the second number after "Synaptics Coasting Speed" below to find one that works for you - higher values stop the coasting more quickly, lower values let it slide for longer.

From the guidance here (and other comments below) I find this fixes the issue for me:

xinput set-prop "16" "Synaptics Coasting Speed" 20.0 50000.0

You will probably need to change the 16 to the ID of your touchpad device, which can be identified by using

xinput list

And to make the changes persist between sessions, create a file .config/autostart/fix-scrolling.desktop with the contents:

[Desktop Entry]
Name=Fix Scrolling
Exec=xinput set-prop "16" "Synaptics Coasting Speed" 20.0 50000.0
Terminal=false
Type=Application
StartupNotify=false

In the long term, the X11 method of representing scroll events as discrete key presses should become less of an issue as more distributions shift to supporting Wayland or other modern "seat" architecture.

  • What exactly does your provided command solution do? – Rohan Mar 18 '16 at 4:54
  • I've added an explanation of what the added command property setting does to the answer, let me know if anything else would be better with more clarification. – Benjamin Mar 18 '16 at 6:27
  • This is a great solution, but not exactly the solution I was looking for. I'm adding to my answer what I am looking for. I am hoping to find a way that doesn't stop coasting at all, but just disables the Control modifier acting on it. – Rohan Mar 19 '16 at 4:36
  • Unfortunately, as the comments to your question indicate, this is unlikely to be solved by the upstream developers.One possible option may be to develop a small utility to intercept scroll events by using something like freedesktop.org/wiki/Software/XEvIE . Another is probably to change the keybinding of the scroll in/out within the affected utilities to be something other than CTRL+Mousewheel, maybe to SUPER? – Benjamin Mar 21 '16 at 11:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.