Skip to content
Runtime discovery

MX Master on Linux

Remap the buttons and set the DPI of a Logitech MX Master 3S, 3 or 2S on Linux with OpenLogi: what works today, what does not yet, and how to check.

MX Master 3S, MX Master 3, MX Master 2S

Logitech's MX Master mice have more buttons than Linux knows what to do with: a thumb gesture button, a mode-shift button behind the wheel, back and forward, and a horizontal thumb wheel. Options+, the software that configures them on Windows and macOS, has no Linux version. OpenLogi talks to the mouse over HID++, the same protocol Options+ uses, so the mouse's own firmware does the work it would do on any other system.

Connections

OpenLogi handles every connection these mice ship with through one code path, because it finds the device by the shape of its HID++ endpoint rather than by product id:

  • MX Master 3S — the Logi Bolt receiver, or Bluetooth
  • MX Master 3 and MX Master 2S — the Unifying receiver, or Bluetooth

What works today

Button remapping. Every control the firmware marks as divertable can be bound to a keystroke, a media key, a mouse button, a shell command, a URL, or a workspace or window-switcher action. OpenLogi names the MX-specific controls — the thumb gesture button and the mode-shift (Smart Shift) button — when the mouse reports them. Back, forward and middle click are the other usual candidates. Remapped buttons are emitted through uinput, so they behave the same on Wayland and X11.

DPI. If the mouse reports adjustable DPI (HID++ feature 0x2201), the value is written to the mouse's own flash, so it stays set after a reboot and with OpenLogi closed.

Battery and device details. Charge level and charging state, model name, firmware version and serial number, read from the mouse rather than estimated.

What does not work yet

These are real features of the mouse that OpenLogi does not implement today:

FeatureHID++Status
SmartShift (ratchet to free-spin switching)0x2110 / 0x2111Not implemented
Thumb wheel customisation0x2150Not implemented
Hi-res scrolling settings0x2121Not implemented
Gestures (hold the thumb button and move)via 0x1B04 raw XYNot implemented
Per-application profiles—Designed, not implemented

Until they land, Solaar can set SmartShift and scrolling while OpenLogi handles the buttons — the two share the device without conflict. See Compared with Solaar and logiops.

Check your mouse

The probe lists the connection path, firmware, battery feature and every control with its divertable flag:

./target/release/logi-probe

To see which buttons OpenLogi can take over, divert them all for 30 seconds and press each one:

./target/release/logi-probe watch 30

A button that prints a notification can be remapped; a silent one cannot on that mouse. Both commands come from the source build — see Installation.

Other MX mice

The MX Anywhere and MX Vertical speak the same protocol and go through the same discovery, so the same rules apply: what the firmware reports is what OpenLogi offers. If you have one, the probe output is a welcome addition to the issue tracker.

Other device guides