MX Master 4
Every control OpenLogi drives on the MX Master 4, the HID++ feature behind each one, and the config.toml that binds them.
Logitech's registry lists this mouse as model id 2b042 — the string OpenLogi
resolves its renders and hotspots by, and the one the
model id index keys it under. What follows describes the
product; what your own unit answers is what openlogi diag features prints.
Controls
1234567- 1Middle click
- 2Mode-shift (DPI) button
- 3Thumb wheel
- 4Gesture button
- 5Forward
- 6Back
- 7Haptic Sense panel
Controls bind under logical names in config.toml. The agent captures controls
needed by your bindings and the built-in gesture/haptic defaults:
| # | Control | Binds as | Diverted through |
|---|---|---|---|
| 1 | Middle click | MiddleClick | OS input hook |
| 2 | Mode-shift button | DpiToggle | 0x1b04 |
| 3 | Thumb wheel | Thumbwheel, ThumbwheelScrollUp, ThumbwheelScrollDown | 0x2150 |
| 4 | Gesture button | GestureButton | 0x1b04 |
| 5 | Forward | Forward | OS input hook; HID++ also participates in macOS gesture capture |
| 6 | Back | Back | OS input hook; HID++ also participates in macOS gesture capture |
| 7 | Haptic Sense panel | HapticPanel | a divertable 0x01a0 control in the 0x1b04 table |
Back, Forward, the Gesture Button, and the Haptic Sense panel
support gesture mode. The Mode-shift button also supports it once raw-XY
capability is measured. Gesture bindings use Up / Down / Left / Right /
Click instead of one action; multiple controls can use them at once. The thumb
wheel does not support this mode, and middle-click gestures are only retained
for compatibility with existing configurations. See
Remap buttons.
The Haptic Sense panel is the one control this mouse has and its predecessors
don't. It is an ordinary divertable control in the reprogrammable-controls
table, so it binds like any button — ShowActionsRing is the binding that makes
it open the Actions Ring — and the haptics
themselves come from 0x19b0.
Panels this mouse lights up
Panels are gated on the feature ids the device reports, never on its marketing type, so this list is what an MX Master 4 normally answers with:
| Panel | Feature | Page |
|---|---|---|
| DPI presets | 0x2201 AdjustableDpi, or 0x2202 extended | DPI |
| SmartShift | 0x2111 SmartShiftEnhanced | SmartShift |
| Scroll inversion & wheel resolution | 0x2121 HiResWheel | Scrolling |
| Thumb wheel | 0x2150 Thumbwheel | Scrolling |
| Haptic feedback | 0x19b0 HapticFeedback | Actions Ring |
| Battery | 0x1004 UnifiedBattery | — |
| Host switching | 0x1814 ChangeHost | — |
A panel that doesn't appear means the unit didn't report its feature; the
authority is openlogi diag features, not this table.
Configure it
Device blocks are keyed by the physical device, not by model — two MX Master
4s on one machine never share an entry. Configure the mouse once in the app,
then copy its generated key from config.toml. A known unit:… or serial:…
identity follows the device across transports; receiver and direct routes are
stored as links beneath that identity. The key below is illustrative, not a
model-wide identifier.
[devices."unit:6be9d300"]
dpi = 1600
dpi_presets = [800, 1600, 3200]
invert_scroll = false
[devices."unit:6be9d300".smartshift]
mode = "ratchet"
auto_disengage = 20
tunable_torque = 0
[devices."unit:6be9d300".bindings]
MiddleClick = "MissionControl"
DpiToggle = { SetDpiPreset = 2 }
HapticPanel = "ShowActionsRing"
Back = { CustomShortcut = "Cmd+Shift+P" }
[devices."unit:6be9d300".bindings.GestureButton]
Up = "MissionControl"
Down = "ShowDesktop"
Left = "PrevTab"
Right = "NextTab"
Click = "AppExpose"Every key above, and the full action list, is in Configuration.
Identity
The registry's 2b042 is not what the firmware reports: an MX Master 4 answers
0x0003 deviceInformation with ext=01 and PID b042, so it is the trailing
four digits that line up, not the prefix — OpenLogi matches on them, and
Model IDs explains why. openlogi list prints the raw pair
under the paired device.