mac-mouse-fix icon indicating copy to clipboard operation
mac-mouse-fix copied to clipboard

Even faster scrolling [enhancement]

Open c-fisc24 opened this issue 3 years ago • 7 comments

Description

I noticed that it takes about five swipes on the trackpad to scroll through a significant part of a document, but about ten scrolls with the scrollwheel on the max settings to achieve the same distance

Rationale

its just an idea, an even faster algorithm may be even to fast, too...

Additional info

I really enjoy the project, these are just two minor things I noticed. I am really amazed and love to use it! Thanks very much for your work! :-)

c-fisc24 avatar Jun 08 '21 23:06 c-fisc24

Hi @c-fisc24. thanks for the feedback, that's sweet :-)

I just reworked the scrolling systems for a future update, and now there's a mechanism where I can fully and easily customize the scrolling acceleration using easy-to-configure Bezier Curves. Eventually, I'll work on finding a good tuning for this algorithm, and I'll keep your request in mind, and try to optimize it for scrolling large distances easily.

But there's no timeframe for when this will release, yet, so please don't hold your breath.


Background info

The fundamental problem is that scroll wheels are very low resolution. When fully you move you finger over the scroll wheel, that only produces around 5 or so "events" where the mouse tells the computer "Hey, I just scrolled a certain distance".

In contrast, when you move your finger across a trackpad for the same distance, that produces hundreds of "Hey, that finger just moved" events.

So what you have to do to enable scrolling both small and large scroll distances easily on a normal, low-resolution scroll wheel, is to accelerate the scrolling heavily. But the problem is that this can feel hard to control if the acceleration is tuned badly or too strong. Hopefully I'll be able to improve on the built-in scroll wheel acceleration in macOS using the new systems.

noah-nuebling avatar Jun 12 '21 11:06 noah-nuebling

Acceleration is done very well by macOS natively if smooth scrolling is disabled. It allows great accuracy when required (like scrolling through logs in a small window) and great speed when required (like scrolling through a webpage).

I'm looking forward to using smooth scroll with the same accuracy. It's great to hear that this is in the works!

hacker1024 avatar Jul 21 '21 05:07 hacker1024

I achieved faster and better scrolling by increasing the speed in the MacOS mouse preferences AND in Mac Mouse Fix (I'm using the beta 2)

gagarine avatar Dec 02 '21 15:12 gagarine

I achieved faster and better scrolling by increasing the speed in the MacOS mouse preferences AND in Mac Mouse Fix (I'm using the beta 2)

Weird, is this related to the mouse you are using? I have a Microsoft Pro IntelliMouse (no special drivers or software installed) and the scrolling is way to slow even with all the settings maxed out. Running macOS Big Sur 11.6.3 here. When using Mos the speed is noticeably faster on the default settings.

Bildschirmfoto 2022-02-21 um 11 35 52

hrvstr avatar Feb 21 '22 10:02 hrvstr

@hrvstr what app did you test your scroll speed in? I am playing around with these settings at the moment and noticed that in Safari the scrolling speed is excellent, in Mail it is slower and in Pages it is horribly slow (about 10% of Safari). I am not sure what causes this and whether this project can fix the inconsistency with the scrolling speed.

szabodanika avatar Mar 09 '22 16:03 szabodanika

I am testing with the default apps just like you (Safari, Mail, etc.). At the moment I am using Mos because it lets me set individual scroll speed and step size for apps. In Safari I have everything maxed out for super-fast scrolling and in other apps it's way slower for more control. If this project adds scroll speed (with higher values than currently available) we can compensate for the different scroll behaviors of apps. I am keeping it installed for now and keep checking the GitHub status.

hrvstr avatar Mar 09 '22 19:03 hrvstr

Yeah, compared with Mos, mac-mouse-fix is way much slower even if I use max scroll speed.

L1cardo avatar Mar 22 '22 01:03 L1cardo

Hi guys,

Happy to inform you that faster scrolling is finally available in the latest MMF 3 Beta if you want to check it out!

I'm still not totally done tuning all the settings but I think the default already feels really good.

Let me know if you have thoughts on or issues with that!

noah-nuebling avatar Oct 19 '22 19:10 noah-nuebling

Hi guys,

Happy to inform you that faster scrolling is finally available in the latest MMF 3 Beta if you want to check it out!

I'm still not totally done tuning all the settings but I think the default already feels really good.

Let me know if you have thoughts on or issues with that!

For me, scrolling does not work at all when smooth scrolling is activated. Nothing moves and I have to disable smooth scrolling to be able to scroll.

  • MMF 3.0.0 Beta 4 (19384)
  • macOS 12.6 (21G115)
  • Microsoft Pro IntelliMouse

hrvstr avatar Oct 22 '22 11:10 hrvstr

@hrvstr is that in any app or are there some places where it works?

noah-nuebling avatar Oct 22 '22 11:10 noah-nuebling

I already know of an issue in Beta 4 where scrolling doesn't work in some apps that rely on line scrolling like the Terminal (see https://github.com/noah-nuebling/mac-mouse-fix/issues/413).

I've fixed that and will push the change in the Beta 5.

Maybe you're having the same issue?

noah-nuebling avatar Oct 22 '22 11:10 noah-nuebling

Hey @hrvstr, the scrolling problem should be resolved in 3.0.0 Beta 5!

If you still experience the same problem under 3.0.0 Beta 5, please open a new issue or ~~let me know so I can reopen this one~~. Thank you!

noah-nuebling avatar Nov 03 '22 15:11 noah-nuebling

Sorry for the late reply. Scrolling now works everywhere when using Beta 5. 👍

Maybe I am a bit weird but scrolling is still not fast enough for me even on the highest setting. I recorded a demo of my Mos settings (not even maxed out) compared to Mac Mouse Fix. I am not really sure what it is but something just feels off, maybe it's lacking acceleration.

https://user-images.githubusercontent.com/4610008/199764152-4967e14a-d511-40df-94ca-8298c4e9c6d4.mp4

Bildschirmfoto 2022-11-03 um 16 25 25

hrvstr avatar Nov 03 '22 15:11 hrvstr

Scrolling now works everywhere when using Beta 5 👍

Great!

Maybe I am a bit weird but scrolling is still not fast enough for me even on the highest setting

Thanks for your input! That's noted.

If you're interested here are some ideas I've had for fixing your issues. Let me know if you have any thoughts on them:

1.

I was thinking about making the "Medium" Scroll Speed option as fast as the "High" option currently is, and then making the "High" option faster.

I plan to work on that soon. Not sure it's going to be as fast as MOS though.

2.

I was also thinking about adding a "Custom" option where you can customize the acceleration curve in more detail. I already built some algorithms that could let you fully customize the acceleration using 3 pretty intuitive parameters:

  1. Scroll Speed when moving scrollwheel slowly
  2. Scroll Speed when moving scrollwheel at medium speed
  3. Scroll Speed when moving scrollwheel quickly

The "medium speed" parameter might be confusing since it would really control the curvature of the acceleration curve and the true Scroll Speed at medium wheel speed would also be influenced by the "slowly" and "quickly" parameters. At least with the algorithms I've currently built.

Either way this is pretty surely not coming for 3.0. Maybe 3.1 or so.

3.

You could also use the "Swift Scroll" feature to scroll faster. You can bind it to a keyboard modifier or a mouse button.


Hope that helps a little!

noah-nuebling avatar Nov 03 '22 17:11 noah-nuebling

Another thing I've noticed from your video is it takes you 7 scroll swipes to scroll through this thread with MMF. On my mouse it only takes 3 swipes. I guess my scrollwheel is just built different.

I hadn't really been considering these hardware differences since I don't have that many different mice, but it's something I should really be thinking about more.

So thanks for making me aware!

noah-nuebling avatar Nov 03 '22 17:11 noah-nuebling

Alsooo I tested your MOS settings and while they feel really nice for a browser, I think in other apps, the minimum scroll distance would be too high.

So since MMF doesn't support app-specific settings, yet, I don't think it's feasible to set the minimum scroll distance that high for MMF.

noah-nuebling avatar Nov 03 '22 17:11 noah-nuebling

Thanks for these improvements, they're great!

You could also use the "Swift Scroll" feature to scroll faster. You can bind it to a keyboard modifier or a mouse button.

How can we bind a mouse button to this? I can't see the option for it in the button or scrolling settings.

hacker1024 avatar Nov 04 '22 06:11 hacker1024

Does this show up for you?

CleanShot 2022-11-04 at 11 02 49@2x

If you didn't find the option because you looked for it in different places I'd be interested in which places you looked so I can better understand how people navigate / think about the UI.

The feature has a few bugs at this point but I think it already feels pretty good.

noah-nuebling avatar Nov 04 '22 10:11 noah-nuebling

If you didn't find the option because you looked for it in different places I'd be interested in which places you looked so I can better understand how people navigate / think about the UI.

Ah, thanks. I didn't think to try the "Click and Scroll" gesture - I was think more along the lines of it being a modifier that can get triggered in "Click" or "Click and Hold". This way makes more sense, because it frees up those gestures for non-scroll-related actions.

hacker1024 avatar Nov 04 '22 11:11 hacker1024

Interesting That's actually how things are implemented under-the-hood. When you set up "Click and Scroll" for Button 4 that will set Button 4 as a modifier for scrolling input. Maybe I could think about presenting it more along those lines in the UI.

Thanks for getting back!

noah-nuebling avatar Nov 04 '22 11:11 noah-nuebling