OpenLogi

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

MX Master 4 seen from the side, with its controls numbered1234567
  1. 1Middle click
  2. 2Mode-shift (DPI) button
  3. 3Thumb wheel
  4. 4Gesture button
  5. 5Forward
  6. 6Back
  7. 7Haptic Sense panel
Control positions come from Logitech's own metadata for this model, not from measuring the picture.

Each control binds under a logical name in config.toml, and each is diverted from its native behaviour only once you bind it:

#ControlBinds asDiverted through
1Middle clickMiddleClick0x1b04
2Mode-shift buttonDpiToggle0x1b04
3Thumb wheelThumbwheel, ThumbwheelScrollUp, ThumbwheelScrollDown0x2150
4Gesture buttonGestureButton0x1b04
5ForwardForward0x1b04
6BackBack0x1b04
7Haptic Sense panelHapticPanela 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:

PanelFeaturePage
DPI presets0x2201 AdjustableDpi, or 0x2202 extendedDPI
SmartShift0x2111 SmartShiftEnhancedSmartShift
Scroll inversion & wheel resolution0x2121 HiResWheelScrolling
Thumb wheel0x2150 ThumbwheelScrolling
Haptic feedback0x19b0 HapticFeedbackActions Ring
Battery0x1004 UnifiedBattery
Host switching0x1814 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.

On this page