1.1.2 Free and open source · macOS 13 or later

Your Logitech mouse,
without Logi Options+.

A small native menu‑bar app that remaps your mouse's buttons over HID++.

Free · MIT · No account · Apple silicon and Intel

Try it. Click the mouse's buttons, pick a pointer speed, or click a button in the panel to change what it does.

Press
In front

No account, no background daemon and no kernel extension. Upright talks to the mouse directly. Built and verified on the Logitech MX Vertical.

Features

Everything Logi Options+ did for your buttons, in one small native app.

Upright lives in the menu bar, looks like part of macOS, and only does what you set up.

Buttons

Give every button a job.

Map Back, Forward, the top button, the wheel click and any other button your mouse lets software take over to Mission Control, a keyboard shortcut, an app, a URL or a Shortcuts.app shortcut.

  • Mission Control
  • App Exposé
  • Show Desktop
  • Spaces
  • Media keys
  • Any shortcut
  • Open App
  • Run Shortcut

Gestures

One button, five actions.

Set a button to Gestures and it gets a click plus hold-and-move up, down, left or right, while the mouse reports raw movement so the cursor stays where it is.

  • UpShow Desktop
  • LeftSpace left
  • RightSpace right
  • DownApp Exposé
  • ClickMission Control

Per-app profiles

Different buttons for different apps.

Keep one global setup and let apps override single buttons while they're in front, so in Safari the thumb buttons switch tabs and everywhere else they go back and forward.

Several mice · Battery alerts

Every mouse you own, at once.

USB cable, Bluetooth, Unifying, Bolt or Nano in any mix: each mouse gets its own row with its connection and battery, and a mouse that's asleep never holds up the others.

Low-battery alerts at 15% and 5%, for each mouse.

Pointer speed

Pick a speed. Keep it.

Set the DPI with a slider, save presets and map a button to cycle through them; Upright applies your speed again whenever the mouse reconnects, rounded to what that mouse supports.

Mice with ADJUSTABLE_DPI (0x2201)

Wheel vs trackpad

Set the wheel apart from the trackpad.

Reverse the mouse wheel without touching the trackpad's Natural Scrolling, change the speed from 0.5× to 3×, or try the experimental smooth scrolling, all off until you turn it on.

Privacy

Leaves nothing behind.

Upright talks to your mouse and nothing else. It doesn't phone home or collect anything.

Nothing written to the mouse

Buttons are only diverted while Upright runs. Quit it, or switch the mouse off and on, and every button is back to factory behavior.

No drivers, no daemon

One native SwiftUI app in your menu bar. No kernel extension, no background service, no Logitech software and no account.

Never reads your typing

Upright only opens Logitech HID interfaces and only sends the actions you assign. Keyboards are never opened.

What Upright touches

Your mouse
Buttons diverted while it runs, handed back when it quits
Your keyboard
Never opened
The network
Doesn't phone home or collect anything
Permissions
Accessibility, to send the actions you assign
HID++ 2.0 over USB, Bluetooth and receivers 0x1B04 REPROG_CONTROLS_V4 0x2201 ADJUSTABLE_DPI Written from public protocol documentation only

Supported mice

Built on the MX Vertical. Ready for more.

The MX Vertical is tested on real hardware. Twenty-two more models are in the catalog, built from published device data and tested against Upright's mouse simulator, so they're expected to work but haven't been verified on hardware yet.

  • MX Vertical Verified Tested on real hardware · MX Vertical on Mac
  • MX Master 3SPublished data
  • MX Master 4Published data
  • MX Master 3Published dataAlso for Business
  • MX Master 2SPublished data
  • MX MasterPublished data
  • MX Anywhere 3Published dataAlso for Business
  • MX Anywhere 2SPublished data
  • MX Anywhere 2Published data
  • MX ErgoPublished data
  • LiftPublished dataAlso for Business
  • M720 TriathlonPublished data
  • Signature M650 LPublished data
  • Signature M550Published data
  • ERGO M575Published data
  • M585 / M590Published data
  • Marathon M705Published data
  • M510 (v2)Published data
  • Pebble M350Published data
  • M185 / M235 / M310Published data

Connections: USB cable, Bluetooth, Unifying, Bolt and Nano receivers. G-series and PRO gaming mice keep their buttons in onboard profiles and aren't supported.

Install

Install in four steps.

Download the disk image from the latest GitHub release. It runs on macOS 13 Ventura or later, on Apple silicon and Intel.

Install

  1. Download the .dmg from the latest release.
  2. Open it and drag Upright into Applications.
  3. Open Upright from Applications. The first time, right-click it, choose Open, then Open again.
  4. Allow Accessibility when asked, then pick actions in Settings → Buttons.
Download for Mac

macOS won't open it the first time?

The release build isn't notarized by Apple, so Gatekeeper blocks the first launch. Right-click Upright.app, choose Open, then Open again. You only need to do this once. If there's no Open button, use Open Anyway in System Settings → Privacy & Security, or run:

xattr -dr com.apple.quarantine /Applications/Upright.app

Prefer to build it yourself?

You need Xcode 15.3 or later, and no Apple Developer account.

git clone https://github.com/dpdev69/upright.git
cd upright
make app
open build/Build/Products/Release/Upright.app

Quit Logi Options+ and take it out of your login items first. It, Solaar and LogiOps divert the same buttons, and only one app can have them.

FAQ

Questions

Something else? Open an issue on GitHub.

Is Upright free?

Yes. It's open source under the MIT license, with no account and no subscription.

Which mice work?

The MX Vertical is verified on real hardware. Other Logitech mice that speak HID++ 2.0 and have programmable buttons are expected to work, including the MX Master, MX Anywhere, MX Ergo and Lift families, but they haven't been verified on hardware yet. Upright decides by what a mouse answers, not by its name, so mice outside the catalog can work too.

macOS won't open Upright the first time. What do I do?

A build that isn't notarized is blocked by Gatekeeper on first launch. Right-click Upright.app, choose Open, then Open again. You only need to do this once.

Do I need to remove Logi Options+?

Quit it and take it out of your login items while you use Upright. Logi Options+, Solaar and LogiOps divert the same buttons, and only one app can have them.

Does it change my mouse permanently?

No. Nothing is written to the mouse's memory. Quit Upright and your buttons go back to normal straight away.

What permissions does it ask for?

Accessibility, to send the shortcuts, clicks and media keys your buttons are mapped to. Input Monitoring only if macOS hides a mouse over Bluetooth. Mission Control actions, opening apps and pointer speed work without either.

Can I build it myself?

Yes. Open Upright.xcodeproj in Xcode 15.3 or later and press ⌘R. You don't need an Apple Developer account.

How do I uninstall it?

Turn off Open at login in Settings → General if you turned it on, quit Upright and delete Upright.app. Nothing was written to the mouse, so there's nothing to undo there. The install guide also shows how to remove its settings.

Put every button to work.

Free, open source, and about a minute from download to your first remapped button.