Hacker News new | past | comments | ask | show | jobs | submit login
LinearMouse – A minimal app to get rid of scrolling acceleration on macOS (lujjjh.com)
52 points by lujjjh 51 days ago | hide | past | favorite | 76 comments

Funny: I implemented the opposite: A minimal app to increase the scroll acceleration, and also enable scroll acceleration on Linux and Windows.


I really missed scroll acceleration when switching over from Mac to Linux. Scrolling long web pages or big source code files was so annoying. And just increasing the scroll speed is also not useful, as I still want to have the possibility to only scroll a little bit (pixel by pixel) when I want to. So I really want the dynamic acceleration.

This simple tool just implements that in user space, by injecting further scroll events.

Later I tested it also on Mac, where it would just increase the acceleration. And after getting used to it, I really like the increased acceleration.

There is also a long discussion for libinput on adding mouse wheel acceleration: https://gitlab.freedesktop.org/libinput/libinput/-/issues/7

I am actually not often bothered by the scroll of a wheel or touchpad on any OS, but I do often need to crank things up on all of them, especially on Windows. I need sensitivity.

I am also the author of https://kinto.sh so if you want some good mac style keybinds it'll have you covered.

I have a scroll wheel with a fly wheel so I just push it hard and break it once I am there.

I’ve always considered Apple’s scrolling acceleration to be among its most important features. For, like, 30 years. Since the Mac debuted. But I suppose I shouldn’t be surprised that someone out there wants to disable it.

Last time I used a mac with a scroll wheel mouse, I found the scroll acceleration to be rage inducing. If I was slowly turning the wheel (eg. reading through an article), it would scroll one or two lines on the screen, or maybe nothing at all. If I scrolled faster the speed would ramp up and cause me to scroll past half the page. All the muscle memory I had from linear scroll wheels (ie. windows/linux) was basically useless. Maybe macs weren't supposed to be used with clicky scroll wheels, or that mac users can somehow get used to it, but I doubt anyone coming from windows/linux could get used to it.

It feels natural if you’re using Mac hardware, like a Magic Mouse or the trackpad.

maybe my muscle memory is different for touchpads, but the difference between scrollwheel on mac vs windows is significantly more jarring than touchpad on mac vs windows.

Were you using firefox by any chance? I get this on firefox after switching from chrome and its so annoying. no idea how to turn it off. every other scrollview in osx works fine but mozilla must have made changes to it

I believe the settings you're looking for are documented here [1] (go to url `about:config`)

[1] https://wiki.mozilla.org/Firefox/Projects/AcceleratedScrolli...

It's been a while since I last used a mouse on a mac, but it definitely wasn't limited to a single app.

Could your mouse have had built-in scroll acceleration?

It's a logitech mouse, and works expected on windows. Also, I've never encountered a mouse with scroll acceleration, all of them scroll the same amount of lines per "click", regardless of how fast you turn the wheel.

Some Logitech models (possibly not all) have a "high resolution" scroll wheel which reports events differently. Out of the box it's off, but it can be enabled on windows with the provided software. Not sure if windows by itself can enable it. I'm also not sure what the situation is on the mac.

A quick search didn't yield any interesting info on this, it's mostly articles about its support on linux (spoiler: it's been deactivated).

It's great for touch-based scrolling, it's terrible for a clicky wheel

I like it for some things and not for others.

I like choice.

This is great. Scroll Reverser + scroll acceleration fix in one app. If you can also figure out cursor acceleration, you'll have a hit. The only app that correctly disables cursor acceleration is SteelSeries ExactMouse.

+1, I've also been using the paid Mac app Smooze (smooze.co) to get smooth mousewheel scrolling animation like I get on Linux and Windows out-of-the-box when web browsing and so forth because I haven't found a free app that can do this.

And while we're talking about the effort needed to get sane mouse behavior for serious CAD/3D editing/art/gaming, it is way too hard to reliably disable cursor acceleration on Linux. There are at least three different X11 mouse drivers on Ubuntu: the really old one, the evdev one, and the newest libinput one. (I don't even know what you have to do for Wayland... never got there....) So if you web search "disable mouse accel linux" you likely get the wrong directions (at least I did) because you might be using the libinput driver and the instructions you found are for evdev. One unreliable method I tried involves setting a matrix. This at first works and then you eventually discover some apps like Blender develop cursor jump bugs....

So the reliable method is....

If using libinput mouse driver you do something like this:

$ xinput --set-prop 'Cooler Master Technology Inc. MM710 Gaming Mouse' 'libinput Accel Profile Enabled' 0, 1

If using evdev mouse driver you do something like this:

$ xinput --set-prop 'pointer:Cooler Master Technology Inc. MM710 Gaming Mouse' 'Device Accel Profile' -1

To figure out your mouse name string like the MM710 example I used above you do this:

$ xinput --list

The number of tweaks I've needed to research and implement for both Mac and Linux are one reason I'm now currently using Windows + WSL for getting stuff done. I want to solve computer science problems more interesting than configuring my mouse and my window manager vsync tearing / compositor issues....

Thankfully, KDE and Gnome have both added easy settings menus that allow you to toggle this. Not sure how recently it was added, but it sure is a nice addition now that Linux is starting to break into the gaming space, where disabling mouse acceleration is one of the first things you'll probably end up doing.

Thanks for your suggestion. I've released a new version which could disable cursor acceleration as well.

SteerMouse does this just fine, and has for years and years. I can't use a Mac without it.

I tried SteerMouse in the past and it didn't feel right. ExactMouse feels like Windows.

thank you for sharing this, I had the same experience with SteerMouse and hadn't found ExactMouse.

+1, ExactMouse is a must for me as a macOS non-Magic mouse user. Would love for this tool to replace SteelSeries's app too.

Explain this?

Which part?

Oh sorry, I misread this! Nevermind.

Interesting. I like scrolling acceleration and miss it when using other platforms. I agree it should be a system setting, though. Silly that we need apps for this and for having the mouse and trackpad scrolling to be different.

I've been using Mos[0] for this. Don't be scared away by the language in the README, it supports an English UI.

[0]: https://github.com/Caldis/Mos

The website[0] has English copy. Unfortunately on mobile the screenshots are cropped in a way I still can’t tell what it does

0: https://mos.caldis.me/

Do you know how this compares to the aforementioned SteelSeries ExactMouse Tool?

So it takes a dedicated app to adjust mouse acceleration curves? Is this an accurate reflection of the platform as a whole?

It is in general to be used as designed rather than configured, yes. I don’t think I change any configuration options at all in macOS for example - not even the wallpaper.

I have to try this. I already have a reverser (how on earth is this not the default, and not even an OS option to begin with?!?) but scrolling with the wheel on a usb mouse jumps randomly. Crossing fingers this may help there.

You have always been able to reverse the scroll direction in the Mouse/Trackpad options. It’s a checkbox that says “Scroll direction: Natural”.

As for your jumping issue that sounds like a hardware problem. It might just be that your mouse wheel is dirty.

You can reverse on both or neither, but not for just one. That's why there's 3rd party software like this one.

Scroll jumping should be a hardware issue but I've swapped mice and same issue; both also work fine on windows. It could be the USB hub, I've still to try something with that, but it sounds... unlikely.

> You have always been able to reverse the scroll direction in the Mouse/Trackpad options. It’s a checkbox that says “Scroll direction: Natural”.

Yes, but, for some reason, changing this to the old direction breaks the volume / backlight in the menu drop-down panel.

Which is clearly a bug because:

Scrolling up / down always changes the volume the same way: down is lower.

But if "natural" is unchecked (so scrolling down moves content up) then scrolling left moves the volume control to the right. If "natural" is checked, then scrolling left moves the control to the left.

This behaviour has been broken at least since they introduced the horizontal volume panel, not sure which version that was. Not sure how it worked before, because it had never occurred to me to scroll sideways on a vertical control.

It's struck me as peculiar but with a trackpad or a mouse the "drag down to move screen content up" feels natural, but on a touch-screen, phone, or tablet it's the opposite. So on a Mac I always have to change the default trackpad preference.

I think it makes sense for touchscreen scrolling to work the way it does, but for mouse, I don’t think either way is really more natural, it’s just what you’re used to. I used the “old” way in Windows and Linux for years, but it was pretty easy to “relearn” when I switched to Mac.

For me, relearning the scroll direction on the touchpad was trivial, however on the wheel it just never worked at all.

For smoother scrolling with a non-Apple mouse/trackpad you might want to look at Smooze [0], it's what I use for my logitech mouse. That said, it's paid and it looks like Moz [1] claims to fix smooth scrolling so maybe check that out too.

[0] https://smooze.co/

[1] https://github.com/Caldis/Mos

Since the discussion is about making MacOS more usable, do you have something to recommend to switch between windows and not applications using command+tab, and to have a dock that shows all the windows easily, grouped per application. Because the default MacOS windows manager is really crappy when you have more than one window of the same application.

I would also enjoy a maximize button that does maximize the window and not create a virtual space with the application in full-screen.

I think people at Apple should probably use windows 10 for a few days on a dual screen setup, because MacOS is not very good compared to it. Thankfully it looks like a lot of people produce tools to make it better.

> ince the discussion is about making MacOS more usable, do you have something to recommend to switch between windows and not applications

Command + ` does that.

> and to have a dock that shows all the windows easily, grouped per application.

Does Exposé not work for you? F3 by default, I think?

> I would also enjoy a maximize button that does maximize the window and not create a virtual space with the application in full-screen.

You might want to try opt-clicking the window maximise button. This maximise window size, in context of the content. May not always be full screen, but as big as the content needs.

Isn't command + ` switching between windows of the same application?

Exposé is not the same no.

The option click algorithm that decide how big the window should be hasn't impressed me to say the least.

I agree the window maximising is frustrating in macOS. I use what used to be Spectacle and is now Rectangle to bind a "real" fullscreeen commmand to a key combo.

The way the default behaviour creates a new space makes me think that no one in Cupertino uses a second monitor because that behaviour simply does not work if you do.

I just downloaded Spectacle a few days ago. Should I be using Rectangle?

I believe that's the case yes, although I only learned of it the other day and haven't got round to switching yet.

Spectacle is now unsupported and Rectangle is a community fork.

https://manytricks.com/witch/ may be exactly what you're looking for

Thanks. I will try this one too.

Contexts is a good cmd+tab replacement/supplement. You can try it for free.


Hold option while clicking maximize and the window will do what you want.

Thanks! Contexts looks like an improvement. It's still missing the window previews though.

I had mixed results with the option key pressed while clicking maximize, some apps such as safari gets slightly bigger by a random amount that is probably a failed tentative to guess the optimal size.

> I would also enjoy a maximize button that does maximize the window and not create a virtual space with the application in full-screen.

This was the biggest thing that annoyed me when switching from Windows. I’ve been using SizeUp for 5 years now without any problem and it’s great, especially when using a 4K screen (quarter screen window tiles).


Command ` (or Command ~) switches between app windows.

You can also use exposé, recently renamed to mission control to view all app windows.

It looks like the default key binding for application windows is Control-↑ and for all windows is Control-↓

edit: you can also bind these to mouse buttons in system preferences.

Thanks. I should try to rebind the shortcuts to make mission control a bit more convenient to use. I have it in a hot corner, but this is useless on dual screen. Maybe a button on the mouse will be better.

I’d recommend alt-tab-macos [0]. It’s FOSS!

[0] https://alt-tab-macos.netlify.app/

This is one of the reasons I ended up using Linux, it's nice to see that current Mac users don't have to suffer with the asinine mouse controls anymore.

> This is one of the reasons I ended up using Linux

This is one of the reasons I ended up ditching Linux for Windows+WSL.

Disabling mouse cursor acceleration under X11, for example, depends on which of at least three different X.org mouse drivers you are using (really old, evdev, or libinput). And web searches often turn up an unreliable or incorrect method. (Search this article's comments for "xinput" to find more info I just typed up for another reply.)

And if you use a Logitech unifying receiver you need to research that the program you need is 'solaar' to pair/unpair your mouse under Linux.

And if your bluetooth mouse or keyboard goes to sleep too fast under Linux (5 seconds in my case) you might need to add this to your grub boot params (worked for me):

$ sudo vi /etc/default/grub

# Add btusb.enable_autosuspend=n to GRUB_CMDLINE_LINUX_DEFAULT



$ sudo update-grub

The point is, researching all this hardware config stuff is time I could have been using to research more interesting computer science problems. I sure can get my printer working much faster under Windows than Linux....

Gnome and KDE offer options to fix this out of the box, and while that's not a tacit approval of installing full-fat DEs on every system, I think the average user won't have to worry about this unless they're using a bare-bones WM on a stripped down compositor, at which point I'd argue their already well-versed enough in Linux-fu to know how to fix it.

That said though, I get it. I think the pervasive myth of "the year of the Linux desktop" riles people up into believing that Linux has finally "Windows-ified" itself, which it hasn't.

I don't get all the mouse hate. It works fine for me yet I'm not calling other's mouse preferences asinine.

I wouldn't be mad if it was a matter of preference, but Apple doesn't give you the choice to disable acceleration. Across every device I've ever used (even Android phones), I've always been able to disable mouse acceleration. For most people who aren't using a trackpad, it feels imprecise and terrible, and it absolutely doesn't make sense in the age of the modern optical mouse.

I'm just tired of Apple refusing to add settings for the most basic options. I want to use MacOS, but Apple keeps removing features that I use religiously and refusing to extend their desktop in ways that compete with the rest of the market. Is it too much to ask them to spend some of their 2 trillion dollar valuation on adding a mouse menu?

> For most people who aren't using a trackpad, it feels imprecise and terrible

Are you sure it's for most people? Or just you and some people you know?

I use a mouse too. I've also started using trackpads more, but for the last 20 years it's been mice in various incarnations (currently a razor deathadder elite), no problems so far. Had a steelseries before that, and a roccat before that, Logitech before that.

I suppose the difference is the religious use of a specific configuration. I usually use the same mouse (buy them 2 or 3 at a time) on Linux (Gnome 3 mostly) and Windows. No problems there either. All on mostly default settings, perhaps a little faster tracking speed but that's about it.

> For most people who aren't using a trackpad, it feels imprecise and terrible

Um, are you sure that isn’t because you’re not used to it? I find it feels that way when I’ve switched from Windows or Linux but you get used to it pretty quick.

I've been using SteerMouse to disable scrolling acceleration, which is absolutely atrocious on a Logitech mouse with hyperscroll.

I want an app to disable mouse acceleration altogether (not just scrolling) in macOS. The mouse acceleration on macOS is just bonkers.

isnt it kind of ridiculous that these apps have to exist because usable input isnt high on apple's list? like paying fir window snapping is one thing, but non wacky input.. ugh

Rectangle [0] is FOSS and may satisfy your window arranging needs.

[0] https://rectangleapp.com/

I think the larger concern is that the world's most valuable company can't find the time to fix their window manager.

It’s not ‘broken’ just because it’s not quite designed as you’d like.

Sorry, would "functionally inferior" be a more suitable name for it? I've come to expect robust and fully-featured WMs from years of using Windows and Linux, it's a bit funny to me that Apple has just given up in this respect.

Lack of cruft and fuss is a feature though. And how's it not 'robust'?

Lack of cruft is a feature on Linux boxes, where people care about running a lean machine. My Mac is a slow, hulking trash box that runs Telegram and slurps bandwidth through a swizzle-straw. I frankly don't care about how little cruft my WM has when my system idles at 4 gigs of memory usage.

Apple needs a few things to make their WM competitive out of the box: 4/6 corner tiling would probably be a good place to start: split-screen is useless. Hopefully they would have an auto-tile functionality like Yabai, Pop Shell or i3-gaps, since I've come to expect that on my high-res devices too. They should also copy Microsoft's FancyZones, which let you quickly draft window presets to keep your screen divided the way you like it. Any of these would be welcome additions, because currently it feels like my Retina display is being put to waste with only two or three apps all fighting for attention.

They clearly don't need this stuff and they clearly are competitive already, given their market share with developers. I'd hate to see Apple cram in all these wacky features you're describing - I much prefer a simpler system.

It's not really broken, it's just not meant for power users

Broken might be a bit heavy-handed, but it's not like I'm chiding some tiny mom-and-pop store for writing bad software. This is Apple, a company that has been developing their current operating system for nearly a decade. In that time, the closest their window manager got to a glow-up was the introduction of split-screen tiling. Pretty pathetic if you ask me, which is why I have to install Yabai on every godforsaken Mac I own. I'm not following them into the ARM transition if they don't fix the basics of their OS.

You mean you find it ridiculous that you need extra software to make macOS input bad?

HID (be it my mouse or trackpad, on either my Mac mini or MacBook) input works excellent on my Mac's. Nothing wrong here.

Not working how you prefer it doesn't make something unusable or broken...

BTW your supposed Mac mini has serious hardware problems, get that thing RMA'd ASAP! And man, why did you not RMA your MacBook Pro you bought a few years ago?? It was also just as broke!

Applications are open for YC Winter 2022

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact