MX Master 4
OpenLogi 在 MX Master 4 上能驱动的每个控件、背后对应的 HID++ feature,以及绑定它们的 config.toml。
Logitech 的注册表把这只鼠标记作 model id 2b042 —— OpenLogi 按它取渲染图与热点数据,
model id 索引里也用它归档。下面写的是这款产品;你手上那台究竟
报告了什么,以 openlogi diag features 打印的为准。
控件
1234567- 1中键
- 2模式切换(DPI)键
- 3拇指滚轮
- 4手势键
- 5前进
- 6后退
- 7触感面板
每个控件在 config.toml 里都有一个逻辑名,而且只有在你为它绑定动作之后,它才会被从
原生行为上截走:
| # | 控件 | 绑定名 | 截取方式 |
|---|---|---|---|
| 1 | 中键 | MiddleClick | 0x1b04 |
| 2 | 模式切换键 | DpiToggle | 0x1b04 |
| 3 | 拇指滚轮 | Thumbwheel、ThumbwheelScrollUp、ThumbwheelScrollDown | 0x2150 |
| 4 | 手势键 | GestureButton | 0x1b04 |
| 5 | 前进 | Forward | 0x1b04 |
| 6 | 后退 | Back | 0x1b04 |
| 7 | 触感面板 | HapticPanel | 0x1b04 表中一个可截取的 0x01a0 控件 |
其中任何一个都可以进入手势模式:绑定项从单个动作变成 Up / Down / Left /
Right / Click 的表;自 schema v4 起,多个键可以同时处于手势模式。参见
重映射按键。
触感面板是这只鼠标独有、前代没有的控件。它在可重编程控件表里就是一个普通的可截取控件,
因此和别的按键一样绑定 —— 绑成 ShowActionsRing 就是让它唤出
Actions Ring —— 而振动本身来自
0x19b0。
这只鼠标会点亮哪些面板
面板是按设备自报的 feature id 决定的,与它的产品类型无关;下面是 MX Master 4 通常会 报出来的那些:
| 面板 | Feature | 页面 |
|---|---|---|
| DPI 预设 | 0x2201 AdjustableDpi,或 0x2202 扩展版 | DPI |
| SmartShift | 0x2111 SmartShiftEnhanced | SmartShift |
| 滚动方向与滚轮分辨率 | 0x2121 HiResWheel | 滚动 |
| 拇指滚轮 | 0x2150 Thumbwheel | 滚动 |
| 触感反馈 | 0x19b0 HapticFeedback | Actions Ring |
| 电量 | 0x1004 UnifiedBattery | — |
| 主机切换 | 0x1814 ChangeHost | — |
某个面板没出现,意味着这台设备没报对应的 feature;以 openlogi diag features 为准,
而不是这张表。
配置
设备块以物理设备为键,而不是型号 —— 同一台机器上的两只 MX Master 4 永远不会共用一个
条目。先在应用里配一次,再从 config.toml 里把这个键读出来:走 Bolt 接收器配对的是
receiver:…,走蓝牙直连的是 direct:…。
[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"上面每个键的含义与完整动作列表,见配置文件。
身份
注册表里的 2b042 并不是固件报出来的东西:MX Master 4 在 0x0003 deviceInformation
里回的是 ext=01 加 PID b042,所以对得上的是末四位而非前缀 —— OpenLogi 正是按末四位
匹配的,原因写在 Model ID 索引里。openlogi list 会在已配对
设备下把这两者原样打印出来。