Ptions+
Map extra mouse buttons to keyboard shortcuts, per-app. A native macOS replacement for bloated vendor software.
Profile editor with per-app button mappings
Menu bar controls
General settings — mouse model, permissions, launch at login
Features
Everything you need.
Nothing you don't.
No accounts, no telemetry, no 200 MB runtime. Just button mappings that work.
Per-App Profiles
Different button mappings for every app. Safari gets browser nav, Xcode gets build shortcuts.
System Actions
Mission Control, App Expose, Show Desktop, Launchpad — triggered directly via CoreDock.
Shortcut Recorder
Click assign, press your key combo. Supports all modifier combinations. Done.
16 Preset Actions
Spotlight, Screenshot Tool, Notification Center, Lock Screen, and more built-in.
Multi-Mouse Support
MX Master, MX Anywhere, MX Ergo, G502, G604, or generic HID mice. Pick your model.
Debug Monitor
Live view of raw mouse events. See exactly what buttons fire, troubleshoot instantly.
Architecture
How it works
A CGEventTap intercepts mouse button events at the HID level. Mapped buttons trigger shortcuts or system actions, then get suppressed.
Mouse Button Press │ ▼ CGEventTap (EventTapService) │ ▼ Active App Lookup (ActiveAppMonitor) │ ▼ Profile Match (MappingStore) │ ├── Has mapping? → KeySimulator / CoreDock → Suppress original event │ └── No mapping? → Pass through
Compatibility
Supported mice
Any mouse that sends otherMouseDown events will work. Pick the closest model or use Generic.
Logitech MX
- MX Master 3
- MX Master 3S
- MX Master 2S
- MX Anywhere 3
- MX Ergo
- MX Vertical
Logitech G
- G502
- G604
Generic
- Generic (5 buttons)
- Generic (3 buttons)
Getting Started
Build from source
Requires Xcode 15+ and macOS 13 Ventura or later. The vendor's companion software must be uninstalled first.
Clone & build
# Clone the repo git clone https://github.com/trsdn/PtionsPlus.git && cd PtionsPlus # Build xcodebuild -project PtionsPlus.xcodeproj -scheme "Ptions+" -configuration Release build
Install
cp -R ~/Library/Developer/Xcode/DerivedData/PtionsPlus-*/Build/Products/Release/Ptions+.app /Applications/ xattr -cr /Applications/Ptions+.app open /Applications/Ptions+.app
Grant accessibility access
System Settings → Privacy & Security → Accessibility → enable Ptions+
Disclaimer
Ptions+ is an independent, open-source project. It is not affiliated with, endorsed by, or associated with Logitech, Logi, or any of their subsidiaries or products. All product names, trademarks, and registered trademarks mentioned in this project are the property of their respective owners. Mouse model names are used solely for compatibility identification purposes.