SplitScroll is a tiny native macOS menu-bar app that keeps trackpad scrolling natural while making a conventional mouse wheel behave normally:
- Fingers move up on the trackpad → the page moves down.
- Mouse wheel moves down → the page moves down.
It does this by leaving trackpad gestures and momentum untouched while reversing mouse-wheel events.
Requirements: macOS 13 or newer and Xcode Command Line Tools.
./scripts/build-app.shThe finished app is created at dist/SplitScroll.app.
- Build the app, then drag
dist/SplitScroll.appinto/Applications. - In System Settings → Trackpad → Scroll & Zoom, turn Natural scrolling on.
- Launch SplitScroll.
- Allow SplitScroll in System Settings → Privacy & Security → Accessibility. If it was already listed, remove the old entry and add the newly built app again.
- Use the up/down-arrow icon in the menu bar to turn wheel reversal on or off.
The app must stay open while you use it. To start it automatically, add SplitScroll under System Settings → General → Login Items.
macOS does not expose a public device identifier on Quartz scroll events. SplitScroll identifies trackpad input by its continuous gesture/momentum phases; conventional wheels are line-based, and high-resolution mouse wheels commonly emit phase-less events. Touch-surface mice that present themselves exactly like a trackpad may not be distinguishable through this public API.