Ptions+
macOS 13+ Swift 5.9 MIT

Ptions+

Map extra mouse buttons to keyboard shortcuts, per-app. A native macOS replacement for bloated vendor software.

Ptions+ Settings — Profile Editor

Profile editor with per-app button mappings

Ptions+ Menu Bar

Menu bar controls

Ptions+ Settings — General

General settings — mouse model, permissions, launch at login

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.

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

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)

Build from source

Requires Xcode 15+ and macOS 13 Ventura or later. The vendor's companion software must be uninstalled first.

1

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
2

Install

cp -R ~/Library/Developer/Xcode/DerivedData/PtionsPlus-*/Build/Products/Release/Ptions+.app /Applications/
xattr -cr /Applications/Ptions+.app
open /Applications/Ptions+.app
3

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.