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:
| Feature | HID++ | Status |
|---|---|---|
| SmartShift (ratchet to free-spin switching) | 0x2110 / 0x2111 | Not implemented |
| Thumb wheel customisation | 0x2150 | Not implemented |
| Hi-res scrolling settings | 0x2121 | Not implemented |
| Gestures (hold the thumb button and move) | via 0x1B04 raw XY | Not 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.