Skip to content
 
 

Latest commit

 

History

64 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mac Drag Scroll app icon

Mac Drag Scroll

Middle-button drag scrolling that feels at home on macOS.
Hold the wheel, move the mouse, and glide through long pages, editors, timelines, and canvases.

Latest release Checks 3/3 OpenSSF Scorecard OpenSSF Best Practices macOS 26.2 or later MIT license

English · 日本語 · 简体中文

Mac Drag Scroll controlling a long document with a compact Liquid Glass drag indicator

Download for macOS  ·  Install with Homebrew  ·  Build from source

Mac Drag Scroll brings the familiar Windows-style middle-click drag gesture to an external mouse on macOS. It is a small native menu bar utility: no account, no cloud service, and no interference with normal trackpad gestures.

See It in Action

Hold the middle mouse button, drag to scroll, flick to reverse, and release to stop

Press and hold the middle mouse button, then move away from the origin. Distance controls speed, direction controls the scroll vector, and releasing stops immediately. The compact visualizer can be resized, restyled, animated, or turned off.

Why Mac Drag Scroll

Natural control Scroll vertically, horizontally, or diagonally with one continuous gesture.
Stable targeting The gesture stays attached to the window where the drag began.
External-mouse focus Trackpad gestures are ignored instead of being intercepted or remapped.
Responsive feedback The one-dot Liquid Glass visualizer reacts to direction, distance, double-clicks, and fast reversals.
Menu bar native Run quietly in the background and open Settings only when needed.
Made to recover Permission repair, persistent preferences, local diagnostics, and verified updates are built in.

Quick Start

Homebrew

brew install --cask martincalander/tap/mac-drag-scroll

Direct Download

  1. Download MacDragScroll.dmg from the latest release.
  2. Open the disk image and drag Mac Drag Scroll into Applications.
  3. Right-click the app in Finder, choose Open, then confirm the first launch.
  4. Grant Accessibility and Input Monitoring access when macOS asks.

Drag Mac Drag Scroll into the Applications folder

Why does the first launch require right-click → Open?

Current releases are not Apple-notarized because notarization requires a paid Apple Developer membership. macOS may therefore block a normal double-click on a newly downloaded build. In Finder, right-click Mac Drag Scroll, choose Open, and confirm. This is required once for each downloaded build.

The project still publishes Sparkle signatures and GitHub build provenance so release files can be verified independently. See Security and Releasing.

Install without Homebrew
curl -fsSL https://github.com/martincalander/MacDragScroll/raw/main/install.sh | bash

Grant Permissions

Mac Drag Scroll needs two macOS permissions: Input Monitoring detects the external mouse button globally, and Accessibility sends scroll events to the target window. It does not use these permissions to record typing or inspect content.

Enable Accessibility and Input Monitoring for Mac Drag Scroll

Open System Settings → Privacy & Security, enable Mac Drag Scroll under both Accessibility and Input Monitoring, then reopen the app if macOS requests it. The Permissions tab shows live status and provides repair shortcuts.

Tune the Feel

Open Settings from the menu bar icon.

Setting What it controls
Speed and acceleration Base scroll rate and how quickly it increases with drag distance.
Dead zone The neutral area around the gesture origin.
Trigger Middle click by default, with guarded alternatives for primary and secondary buttons.
Visualizer Size, opacity, tint, glass intensity, and motion effects.
Excluded apps Applications where drag scrolling should stay disabled.
Launch behavior Login startup and whether the helper remains in the menu bar.
Updates Automatic checks, release history, and manual update controls.

Preferences are stored per macOS user and survive app updates and normal uninstall/reinstall cycles. Details and recovery paths are documented in Support.

Built for Trust

  • Local by design: no account, analytics, advertising, or cloud backend.
  • Narrow input scope: only the configured mouse trigger starts scrolling; trackpad gestures are filtered out.
  • Permission aware: scrolling disables itself when required access is missing or revoked.
  • Inspectable releases: automated checks, secret scanning, CodeQL, Sparkle signatures, and GitHub attestations run through the public repository.
  • Private diagnostics: crash reports stay on the Mac until the user chooses to share them.

Read Privacy, Security, and the implementation Architecture.

Build from Source

Requirements: macOS 26.2 or later and a compatible version of Xcode.

git clone https://github.com/martincalander/MacDragScroll.git
cd MacDragScroll
xcodebuild -project macdragscroll.xcodeproj \
  -scheme macdragscroll \
  -configuration Debug \
  build

Run the test suite with:

xcodebuild -project macdragscroll.xcodeproj \
  -scheme macdragscroll \
  -destination 'platform=macOS' \
  test

Contributions are welcome. Start with Contributing, the Code of Conduct, and the Roadmap.

Project Guide

Resource Purpose
Support Permission repair, diagnostics, and common questions.
Architecture Runtime boundaries, safety invariants, and event flow.
Privacy What the app can access and what it never collects.
Security Vulnerability reporting and release verification.
Changelog Version history and release notes.
Scorecard notes OpenSSF posture, controls, and current limitations.
Releasing Maintainer release and provenance process.

Requirements

  • macOS 26.2 or later
  • An external mouse with a middle button or clickable scroll wheel
  • Accessibility and Input Monitoring permissions

License

Mac Drag Scroll is available under the MIT License.

Made by Martin Calander.

About

Windows-style drag scrolling for external mice on macOS. Free premium app.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages