# UnnaturalScrollWheels: Separate Mouse and Trackpad Scroll Direction on macOS

> A GPL-3.0 macOS utility that inverts physical scroll wheel direction while leaving trackpad scrolling natural, by intercepting scroll events through Accessibility permissions. Here is how it installs, what it changes, and where it stops being the right tool.

**ther0n/UnnaturalScrollWheels** — Invert scroll direction for physical scroll wheels while maintaining "Natural" scrolling for trackpads on MacOS

- Repository: https://github.com/ther0n/UnnaturalScrollWheels
- Stars: 4,216 · Forks: 95
- Language: Swift
- License: GPL-3.0
- Published: 2026-09-23 · Updated: 2026-09-23 · Language: en
- Canonical page: https://hysenlabs.com/projects/ther0n-unnaturalscrollwheels

## The macOS setting that couples mouse and trackpad scrolling

macOS exposes scroll direction in two places, Mouse settings and Trackpad settings, but the README states that toggling "Scroll direction: Natural" in Mouse settings also changes it in Trackpad settings despite the two panels being separate. That is the problem this project exists for. If you prefer a trackpad's natural direction (content moves with your fingers) and a mouse wheel's traditional direction (wheel forward moves the page up), the stock setting forces a single answer for both devices.

The README points to an Apple Stack Exchange thread titled "How to separate mouse and trackpad settings" as the description of the issue, and notes that most or all prior solutions stopped working reliably, or stopped working at all, in Catalina. So the audience is narrow and specific: people on Macs who use both a trackpad and a physical wheel mouse, and who want the two to behave differently. If you only ever use one input device, this app adds a permission prompt and a background process for no benefit.

## How the event interception works

The mechanism is event interception rather than a settings write. The README states the app requires accessibility permissions to "Control your computer", and that this permission is required to intercept scroll events, invert them, and modify their deltas to disable acceleration and apply your settings. That sentence is the whole architecture in one line: the app sits between the scroll event and the system, rewrites the delta, and passes it on.

Two consequences follow from that design. First, the app cannot function without the Accessibility grant, because macOS blocks event interception otherwise. Second, because the app is modifying deltas rather than flipping a stored preference, the direction shown in System Settings does not need to match what the wheel actually does. The README says the app makes scroll direction for physical scroll wheels the opposite of what is shown in settings, which is worth reading twice before you file a bug about the settings panel disagreeing with observed behaviour.

The repository layout is a single Xcode project, UnnaturalScrollWheels.xcodeproj, with the app sources under UnnaturalScrollWheels/ and a separate AutoLauncher/ target. That AutoLauncher target is the piece that would register the app to start at login, though the README does not document the login item behaviour explicitly.

## Installing UnnaturalScrollWheels with Homebrew and granting Accessibility

There are two install paths. The Homebrew cask is the shorter one:

```bash
brew install --cask unnaturalscrollwheels
```

After the cask finishes, launch the app. The README's manual path is to download the latest .dmg from the releases page, mount it, copy the .app to your Applications folder, and open it like any other application. Either way, the first launch triggers the permission request.

The app needs Accessibility permission, described in the README as permission to "Control your computer". macOS will show a popup; you then confirm the app under System Settings, Privacy & Security, Accessibility. The README includes screenshots of both the app's own popup and the macOS Accessibility pane. Until that toggle is on, scroll events are not intercepted and the app does nothing observable.

Once permission is granted, the README's usage note covers the one thing that confuses new users: if you have hidden the app from the menu bar, opening the application again displays the preferences window and temporarily shows the menu bar icon again. There is no separate preferences command documented.

## What the README does not tell you

The documentation is thin in ways that matter for adoption. The README does not document rollback or uninstall steps, so the RELATED SEARCHES phrase "Uninstall unnaturalscrollwheels" has no answer inside the repository: you would be removing the app and revoking its Accessibility grant yourself, and the project does not describe that flow. It also does not document a per-app exception list, a keyboard shortcut, or a CLI, so any workflow that needs different scroll behaviour in different applications is outside what the README claims.

The acceleration handling is mentioned once, in the permission explanation, as modifying deltas "to disable acceleration and apply your settings". The README does not give the configuration keys or the ranges for that acceleration setting, so you cannot tell from the documentation how granular the control is.

Finally, the README's own framing is a warning about fragility. It states that most or all prior solutions stopped working reliably, or at all, in Catalina. Scroll event APIs on macOS have changed across releases, and this project's release history reflects that: 1.4.0 is labelled "macOS Tahoe Support", which tells you the maintainer ships compatibility work when a new macOS version lands. Budget for that. A macOS upgrade is the moment this class of utility breaks.

## Scroll Reverser and the difference in approach

The obvious alternative, and one the RELATED SEARCHES list names directly, is Scroll Reverser. The difference that matters is scope. UnnaturalScrollWheels is built around one job: inverting physical scroll wheel direction while keeping trackpad scrolling natural, and it also touches scroll acceleration as part of the same event rewrite. Scroll Reverser is a general scroll-direction reversal utility with its own set of per-device and per-app options.

If your only requirement is the mouse-versus-trackpad split described in this README, UnnaturalScrollWheels is the more focused tool and the Homebrew cask makes it a one-line install. If you need direction control per application, or you want a tool whose documentation covers uninstall and configuration in more depth, the narrower scope here works against you. Neither tool avoids the Accessibility permission; any utility that rewrites scroll deltas needs it.

## Licence, maintenance and upgrade cost

The project is GPL-3.0. For an end user installing the cask, that licence is not an obstacle. For anyone who wants to take the source, modify it, and ship a binary, GPL-3.0 carries distribution obligations that a permissive licence would not, and the repository includes the LICENSE file at the top level. This is a description of the licence, not legal advice; read the LICENSE file and, if you plan to redistribute, get proper advice.

The last push to the repository was on 2026-08-03, and release 1.4.2 is dated the same day. The repository is not archived. The pattern across the three listed releases is a compatibility release roughly when macOS moves: 1.4.0 is explicitly "macOS Tahoe Support", and a dev release sits between it and 1.4.2. That is the upgrade cost you are signing up for: this app depends on private-ish event handling that Apple can change, so each major macOS release is a potential breakage point, and the fix arrives as a new release rather than as something you can patch in a config file. If you are not willing to reinstall or update after a macOS upgrade, this is the wrong dependency to take on.

## Conclusion

UnnaturalScrollWheels is for macOS users who want a mouse wheel to scroll opposite to the trackpad and who accept granting Accessibility control to a menu bar app. It is the wrong tool if you cannot grant that permission, if you want a single global scroll direction, or if you need per-app scroll behaviour, none of which the README describes. Before adopting it, verify your macOS version is covered by the current release notes, confirm the Homebrew cask resolves, and check that the app appears in System Settings under Privacy & Security, Accessibility after first launch, since that permission is what lets it intercept and invert scroll deltas at all.

## FAQ

### Can I turn off natural scrolling for the mouse only in macOS?

Not through the built-in settings, according to the README, because toggling "Scroll direction: Natural" in Mouse settings also changes it in Trackpad settings. UnnaturalScrollWheels exists to break that coupling by inverting physical scroll wheel direction at the event level while leaving trackpad scrolling natural.

### Is UnnaturalScrollWheels a scroll reverser, and is it safe?

It inverts scroll direction for physical scroll wheels, so yes, that is what it does. It requires accessibility permission to "Control your computer" so it can intercept scroll events, invert them and modify their deltas; the README states this is required, and the app does nothing until you grant it.

### How do I disable scroll wheel acceleration on my Mac with UnnaturalScrollWheels?

The README says the app modifies scroll event deltas to disable acceleration and apply your settings, so acceleration handling is part of what the app does once Accessibility permission is granted. The README does not document the individual acceleration settings or their ranges.

### What is the UnnaturalScrollWheels alternative if I need more control?

Scroll Reverser is the alternative named in search results for this project. The practical difference is scope: UnnaturalScrollWheels targets the mouse-versus-trackpad direction split on macOS, while Scroll Reverser is a broader scroll reversal utility. Both need Accessibility permission.

## Sources

- [Issues](https://github.com/ther0n/UnnaturalScrollWheels/issues)
- [License: GPL-3.0](https://github.com/ther0n/UnnaturalScrollWheels/blob/main/LICENSE)
- [README](https://github.com/ther0n/UnnaturalScrollWheels/blob/main/README.md)
- [Releases](https://github.com/ther0n/UnnaturalScrollWheels/releases)
- [ther0n/UnnaturalScrollWheels on GitHub](https://github.com/ther0n/UnnaturalScrollWheels)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/ther0n-unnaturalscrollwheels
