rseligm2/SplitScroll

A native macOS menu-bar utility for natural trackpad scrolling and traditional mouse-wheel scrolling.

★ 0Forks 0SwiftGitHub ↗Compare

README

SplitScroll

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.

Build

Requirements: macOS 13 or newer and Xcode Command Line Tools.

./scripts/build-app.sh

The finished app is created at dist/SplitScroll.app.

Install and use

  1. Build the app, then drag dist/SplitScroll.app into /Applications.
  2. In System Settings → Trackpad → Scroll & Zoom, turn Natural scrolling on.
  3. Launch SplitScroll.
  4. Allow SplitScroll in System Settings → Privacy & Security → Accessibility. If it was already listed, remove the old entry and add the newly built app again.
  5. 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.

Device detection

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.

Contributors

rseligm2

Issues