ORIGINAL REDDIT POST

NaturalMouse – Separate scroll directions for trackpad and mouse on macOS. Auto-switches when you plug in.

macOS app I built to fix one tiny but genuinely annoying problem: scroll direction fights between your trackpad and external mouse. The problem it solves: macOS has a single global scroll direction setting. Natural scrolling feels right on a trackpad it…

Original postr/macapps

macOS app I built to fix one tiny but genuinely annoying problem: scroll direction fights between your trackpad and external mouse. The problem it solves: macOS has a single global scroll direction setting. Natural scrolling feels right on a trackpad it mimics how your phone works, and content follows your fingers. But on an external mouse, that same setting feels completely backwards to most people. So you're stuck. Either your trackpad feels wrong, or your mouse does. And every time you switch devices, the frustration is there. The "fix" most people use: go to System Settings → Mouse → toggle Scroll Direction. Every. Single. Time. Comparison: You can manually flip the scroll setting each time you plug in or unplug a mouse. Takes about 10 seconds, but it breaks your flow, and you'll forget half the time. Some people use Scroll Reverser or Mos. Both are solid apps. NaturalMouse is narrower in scope it does exactly one thing, with no config screen to navigate. There's no "set it up" step. Grant Accessibility permission, launch it, done. How it works: It uses a system-wide CGEventTap approach to intercept scroll events before they reach any app. Each event is tagged by macOS as coming from either a trackpad (continuous) or a mouse (discrete). NaturalMouse only inverts the mouse events the trackpad is untouched. IOKit watches for device connect/disconnect. Plug in a mouse: scroll flips within a second. Unplug it: flips back. No polling. No manual action. What it doesn't do: No Dock icon No onboarding flow No settings screen 0% CPU at idle, under 1ms per scroll event when active Pause/resume from the menu bar if you ever need it. Launch at login. That's the whole app. Pricing: $4.99 lifetime — use code NATURAL50 for 50% off. NaturalMouse AI Disclaimer: Code completion used during development. There are no AI features in the app.

Collected discussion

25 comments

u/Adept_Storm805OP

where do you want to go??

u/Adept_Storm805OP

nah, just solving my own painpoint

u/Adept_Storm805OP

LinearMouse is a full-featured mouse customization app that handles pointer speed, acceleration curves, button remapping, scroll speed, and yes, scroll direction too. NaturalMouse does exactly one thing: automatically flip the scroll direction based on whether a mouse is connected. No manual toggling, no config, it just reacts to device changes instantly.

u/Ok-Rest-5321

But doesn't linear mouse also remember your preferences for each device ?

u/Adept_Storm805OP

Yeah totally, there might be free tools that do this I didn't build it to corner a market. I personally had this issue, built something to fix it, and figured I'd share in case anyone else was dealing with the same annoyance. If you've got a free solution that works, that's great, honestly. 🙂

u/GetPsyched67

Has this sub been overrun by bot comments? "Wow, what a great initiative" - What is this app for, a charity foundation? Lol. Sorry your post is getting pelted with bots op

u/Adept_Storm805OP

Haha yeah that's my friends group I shared it there, and they all showed up acting like corporate LinkedIn bots 😭 Appreciate the heads up though lol

u/MaxGaav

There's also Scrollreverser (free). And with Mos (an app for smooth scrolling with your mouse, free), in combination with a system setting, you can accomplish the same.

u/chromatophoreskin

Karabiner Elements also has this. It’s more work to setup but handy if you use the app anyway for other things. There’s also Mos. Like OP said, there are multiple solutions to choose from.

u/MatthewWaller

Thanks for the scrollreverser rec. That seems good, and buy-me-a-coffee priced.

u/Adept_Storm805OP

This has nothing to do with scroll smoothness, it just reverts the scrolling, that's it.

u/Only_Bullfrog_2185

can not write a pm for money back.

u/Adept_Storm805OP

It is nothing similar to steerMouse, NaturalMouse just has one functionality, which is reversing the scrolling, that's it, whereas as steermouse is used for mouse buttons customization

u/_paint

something like this already exist, it was free iirc

u/[deleted]

This comment was deleted.

u/Ok-Rest-5321

How does it compare to Linear mouse ??? that already exists

u/Only_Bullfrog_2185

pay it but don't like. Scrooling is not smooth and you can not a good app.

u/tcolling

How does it compare to SteerMouse?

u/Pattont

Been using Unnatural Scroll Wheels for some time. https://github.com/ther0n/UnnaturalScrollWheels Happy to purchase this if it is somehow more performant. I have no issues with what I’m using. What does your app do better?

u/Thick_Replacement876

Holy bots in the comments

u/ContextSpiritual9068

the CGEventTap approach is the right call here. I looked into this problem once and the per-device detection via IOKit is the part that makes it actually automatic rather than just "a better toggle". nice scoping

u/No_Kaleidoscope7022

You know what? It takes 2-3 days to get used to the other way. No big deal.

u/haystack_in_needle

The app makes sense especially for people who are new to Mac, before they normalize the weirdness. Once someone has used macOS for a while, they either build the muscle memory, install one of the existing tools, or decide they do not care. The useful moment is probably earlier: first external mouse, first desk setup, first "why does scrolling feel backwards?" search. So the product question might be less "does this compete with LinearMouse?" and more "how do you show up exactly when someone is switching to Mac or setting up their first mouse?"

u/Brilliant-Debate-207

Wow what a great initiative