Bug 324616 - wish: mousewheel scroll acceleration
Summary: wish: mousewheel scroll acceleration
Status: RESOLVED DOWNSTREAM
Alias: None
Product: systemsettings
Classification: Applications
Component: kcm_mouse (show other bugs)
Version: 4.11.0
Platform: unspecified Linux
: NOR wishlist
Target Milestone: ---
Assignee: Unassigned bugs mailing-list
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-09-07 12:53 UTC by Richard Neill
Modified: 2013-09-10 16:55 UTC (History)
2 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 Richard Neill 2013-09-07 12:53:08 UTC
It would be really useful to have acceleration for the mousewheel scroll, as with the pointer.

At the moment there is just a single gain setting "mousewheel scrolls by X lines". 

However, sometimes I want to scroll just one line at a time (eg move one-line down in an editor), sometimes I want to scroll several lines (while reading a document), and sometimes I want to "fling" the scroll-wheel sharply down to scroll through multiple pages of a 100-page PDF.

So, I'd really like to have a 3-line polygon for mousewheel-amplifcation.

Reproducible: Always




For starters how about the following:

count=number_of_wheel_clicks_in_last_200ms.
if count <= 3,  gain = 1
elif count <= 10, gain = 3    #mousewheel scrolls-by
else, gain=20

Thanks very much .
Comment 1 Christoph Feck 2013-09-07 21:01:47 UTC
Is this something supported by the X input drivers?
Comment 2 Richard Neill 2013-09-07 23:49:11 UTC
> Is this something supported by the X input drivers?

I'm not sure - I couldn't find anything in xinput settings.  It's certainly something that Windows and OSX do, and there is Logitech custom mouse-hardware that does it too.

This thread is helpful
https://bbs.archlinux.org/viewtopic.php?id=135657

In particular, here is an xtest hack that does it.
http://ubuntuforums.org/showthread.php?t=1179448&page=2#20
Comment 3 Christoph Feck 2013-09-10 00:56:02 UTC
The Ubuntu link you provide is actually about changing the speed of the wheel, not about providing acceleration. Additionally, the last comment in the archlinux forum confirms what I was suspecting: "... each application has to deal with its own implementation, and there is no one place to change this."

Wheel acceleration could be added in the Qt library, but then it would only affect Qt applications.

In either case, this means the feature has to be implemented downstream.
Comment 4 Richard Neill 2013-09-10 16:55:42 UTC
As I understand it, Xtest lets you generate fake button presses. So we would  have a small daemon which reads every real press (the wheel is actually a series of button-4 or 5 clicks), and then injects zero to N more. 

The application with focus then receives 1 real click, and 0-N dummy clicks for every tick of the wheel.

To have acceleration, all we need is for the gain to vary with the click-rate.