2

I am using Manjaro like this guy: https://forum.manjaro.org/t/how-to-enable-kinetic-scrolling-with-libinput-driver/36488 And my system comes with libinput. Unfortunately libinput does not have kinetic scrolling out of the box. Is it possible to enable it?

An alternative that I used before was synaptics, which has inferior palm rejection instead. But I am thinking about still switching back. So is this one a pick your poison?

2

Let me reword my askubuntu answer to the similar question


There's a technical reason why libinput didn't implement it. It's part of FAQ, which in particular has a link to this bugreport. TL;DR of which: kinetic scrolling being implemented in synaptics turned out to be a design mistake. It led to nasty bugs, such as that if you scrolled, and pressed Ctrl before scroll stopped, the app you're scrolling would trigger zoom-in or zoom-out. It's because kinetic scrolling is implemented by continuous sending of scrolling events, and the app have no way to differ real and fake scroll events.

Worse: the proper way to implement that is in GUI toolkits, i.e. GTK+ and Qt (and maybe EFL, though it's little known outside of Enlightement Desktop Environment), but if you have kinetic scrolling in driver + kinetic scrolling in toolkit — you can expect this to end up in mess.

GTK+ have implemented kinetic scrolling, e.g. it works for me in evince app, version 3.30 for evince, and 3.24 for GTK.

Qt I don't know. I found some blog-post saying that kinetic scrolling was implemented for everything in 2009, but I can't reproduce it in Okular, nor Qutebrowser, nor Kate, so it's definitely untrue.

2
  • Unlike the synaptics driver, libinput also has access to keyboard events, it can easily stop the coasting when a new event is arrived.
    – rustyx
    Nov 9 at 22:10
  • @rustyx however it can't do anything if a user moved a cursor elsewhere while kinetic movement is ongoing. So it may result in unintended scroll of a widget that you didn't actually scroll.
    – Hi-Angel
    Nov 9 at 22:32

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.