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
Each control binds under a logical name in config.toml, and each is diverted
from its native behaviour only once you bind it:
| # | Control | Binds as | Diverted through |
|---|---|---|---|
| 1 | Middle click | MiddleClick | 0x1b04 |
| 2 | Mode-shift button | DpiToggle | 0x1b04 |
| 3 | Thumb wheel | Thumbwheel, ThumbwheelScrollUp, ThumbwheelScrollDown | 0x2150 |
| 4 | Gesture button | GestureButton | 0x1b04 |
| 5 | Forward | Forward | 0x1b04 |
| 6 | Back | Back | 0x1b04 |
| 7 | Haptic Sense panel | HapticPanel | a divertable 0x01a0 control in the 0x1b04 table |
Any of them can be put in gesture mode, where the binding becomes a table of
Up / Down / Left / Right / Click instead of one action — several at
once, since schema v4. 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 read the key back out of config.toml; receiver:… is the shape for a
Bolt-paired mouse, direct:… for one paired over Bluetooth.
[devices."receiver:aabbccdd:slot:1"]
dpi = 1600
dpi_presets = [800, 1600, 3200]
invert_scroll = false
[devices."receiver:aabbccdd:slot:1".smartshift]
mode = "ratchet"
auto_disengage = 20
[devices."receiver:aabbccdd:slot:1".bindings]
MiddleClick = "MissionControl"
DpiToggle = { SetDpiPreset = 2 }
HapticPanel = "ShowActionsRing"
Back = { CustomShortcut = "Cmd+Shift+P" }
[devices."receiver:aabbccdd:slot:1".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.