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

Add Support for Momentum Scrolling [other]

Open l33 opened this issue 4 years ago • 2 comments

I have a mouse with a free spinning mouse wheel. It works quite well with MacOS apart from the fact that scrolling is also not really smooth. The feature in Mac Mouse Fix to allow smooth scrolling seems quite a nice thing to have. Unfortunately it removes the momentum scrolling which I really like. With smooth scrolling enabled the scrolling is smooth but I can no longer scroll large chunks by fast spinning the wheel. It would be nice to have both smooth scrolling while at the same time keeping the ability to have momentum.

l33 avatar Nov 28 '20 15:11 l33

Hey there @I33, thanks for your feedback. Which model of Mouse are you using?

If you're still looking for a way to smoothen up your scrolling, you might want to take a look at MOS

noah-nuebling avatar Mar 02 '21 20:03 noah-nuebling

Which model of Mouse are you using?

It's a bit aged model Logitech G9 Laser. It has a toggle switch on its underside to toggle between free spinning and discrete wheel mode.

you might want to take a look at MOS

MOS does the trick for me. Thanks for the pointer!

l33 avatar Mar 21 '21 13:03 l33

Hey @l33,

Please to inform you that inertial scrolling is in the latest MMF 3 Beta if you want to check it out!

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

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

Please to inform you that inertial scrolling is in the latest MMF 3 Beta if you want to check it out!

That sounds great! Unfortunately I am unable to start it. The error report includes, apart from many other things, something about Exception Type: EXC_CRASH (SIGKILL (Code Signature Invalid)). I have not looked much into the details so it could be some other problem as well. The MMF 2 still works.

l33 avatar Oct 20 '22 21:10 l33

Hey @l33, that's weird! Which macOS version are you using? And are you sure you're using 3.0.0 Beta 4? Because Beta 1 had issues with the signature.

noah-nuebling avatar Oct 20 '22 23:10 noah-nuebling

Which macOS version are you using?

$ sw_vers
ProductName:	macOS
ProductVersion:	12.6
BuildVersion:	21G115

And are you sure you're using 3.0.0 Beta 4?

I guess this is Beta 4?

$ grep -A1 CFBundleShortVersionString  Mac\ Mouse\ Fix.app/Contents/Info.plist
	<key>CFBundleShortVersionString</key>
	<string>3.0.0 Beta 4</string>

l33 avatar Nov 01 '22 11:11 l33

Yes, thanks for checking! And you get the code signature crash there?

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

[...] you get the code signature crash there?

Yes:

$ Mac\ Mouse\ Fix.app/Contents/MacOS/Mac\ Mouse\ Fix
Killed: 9

... at least I thought I had the same problem. That opened the usual dialog on malicious software which I clicked away and it died. I went on to remove the quarantine attributes:

$ xattr -r -c  Mac\ Mouse\ Fix.app/
$ Mac\ Mouse\ Fix.app/Contents/MacOS/Mac\ Mouse\ Fix

... and this time it worked. Perhaps I really was using Beta 1 when I first tried this.

l33 avatar Nov 01 '22 13:11 l33

Okay that's great. That would've been a really weird issue that I'm relieved I don't have to deal with. Glad it works for you now, thanks for getting back!

noah-nuebling avatar Nov 01 '22 13:11 noah-nuebling

The inertial scrolling works for me as I would expect it. That's nice. The rubber band effect, however, does not work for me. The way I scroll to the top or bottom of a document it overshoots way too much and keeps on going until I only see the blank background. Once I stop the spinning wheel it takes about 1.5 seconds for the document to return to normal.

l33 avatar Nov 01 '22 13:11 l33

I assume you have a free spinning scroll wheel?

noah-nuebling avatar Nov 01 '22 13:11 noah-nuebling

Ah yes I saw you mentioned that

noah-nuebling avatar Nov 01 '22 13:11 noah-nuebling

How are you finding it when you don't use the free spinning?

noah-nuebling avatar Nov 01 '22 13:11 noah-nuebling

Without the free spinning wheel the effect feels a lot better. I still find the slowdown at the top and bottom a bit too hard. It seems there is a hard jump in scroll speed as it reaches the top or bottom before decelerating smoothly... but this could also be my imagination :) I do not have a Magic Trackpad. My comparison comes mostly form what I experience on my iPad. If I am already at the top of bottom and start to overshoot the rubber effect looks ok to me.

For the free spinning wheel I would try to ignore any wheel input once the rubber band effect starts and only start accepting again if the effect ended or the wheel direction changed.

l33 avatar Nov 01 '22 13:11 l33

Thanks for your thoughts!

Do you have the 'with Inertia' option off or on?

CleanShot 2022-11-01 at 14 35 23@2x

The rubberbanding should feel better if you have 'with Inertia' on.

I plan to improve the way scrolling feels when 'with Inertia' is off soon. I might also spend some time working on scrolling feel when 'with Inertia' is on but I'm not sure how I could improve it.

All the ideas I have aren't very good:

  • I could provide an option to turn off the more accurate trackpad simulation of MMF 3. That would disable rubberbanding but it would also change many other scrolling interactions like being able to scroll between pages in Safari. Also don't know how I would present this option in the UI. Feel kind of bad about making that an option since it's such a weird technical thing that should 'just work'.
  • I could make the non-inertial scrolling animation very short so the rubberbanding is less noticable

After that I'm out of ideas.

For the free spinning wheel I would try to ignore any wheel input once the rubber band effect starts and only start accepting again if the effect ended or the wheel direction changed

That's a really good idea but I don't know how it would be technically possible. Mac Mouse Fix just provides trackpad-like scroll events to apps and then the apps do their thing with it. There's no way for Mac Mouse Fix to know if an app is currently overscrolling or not as far as I'm aware.

Let me know if you have any ideas how to improve the scrolling though! I plan to make some changes soon.

noah-nuebling avatar Nov 01 '22 13:11 noah-nuebling

It seems there is a hard jump in scroll speed as it reaches the top or bottom before decelerating smoothly

I'm not totally sure I know what you mean, could you elaborate on that?

noah-nuebling avatar Nov 01 '22 14:11 noah-nuebling