OpenLogi
设备

MX Master 4

OpenLogi 在 MX Master 4 上能驱动的每个控件、背后对应的 HID++ feature,以及绑定它们的 config.toml。

Logitech 的注册表把这只鼠标记作 model id 2b042 —— OpenLogi 按它取渲染图与热点数据, model id 索引里也用它归档。下面写的是这款产品;你手上那台究竟 报告了什么,以 openlogi diag features 打印的为准。

控件

MX Master 4 侧视图,各控件已编号1234567
  1. 1中键
  2. 2模式切换(DPI)键
  3. 3拇指滚轮
  4. 4手势键
  5. 5前进
  6. 6后退
  7. 7触感面板
控件位置取自 Logitech 为该型号发布的元数据,不是在图上量出来的。

每个控件在 config.toml 里都有一个逻辑名,而且只有在你为它绑定动作之后,它才会被从 原生行为上截走:

#控件绑定名截取方式
1中键MiddleClick0x1b04
2模式切换键DpiToggle0x1b04
3拇指滚轮ThumbwheelThumbwheelScrollUpThumbwheelScrollDown0x2150
4手势键GestureButton0x1b04
5前进Forward0x1b04
6后退Back0x1b04
7触感面板HapticPanel0x1b04 表中一个可截取的 0x01a0 控件

其中任何一个都可以进入手势模式:绑定项从单个动作变成 Up / Down / Left / Right / Click 的表;自 schema v4 起,多个键可以同时处于手势模式。参见 重映射按键

触感面板是这只鼠标独有、前代没有的控件。它在可重编程控件表里就是一个普通的可截取控件, 因此和别的按键一样绑定 —— 绑成 ShowActionsRing 就是让它唤出 Actions Ring —— 而振动本身来自 0x19b0

这只鼠标会点亮哪些面板

面板是按设备自报的 feature id 决定的,与它的产品类型无关;下面是 MX Master 4 通常会 报出来的那些:

面板Feature页面
DPI 预设0x2201 AdjustableDpi,或 0x2202 扩展版DPI
SmartShift0x2111 SmartShiftEnhancedSmartShift
滚动方向与滚轮分辨率0x2121 HiResWheel滚动
拇指滚轮0x2150 Thumbwheel滚动
触感反馈0x19b0 HapticFeedbackActions 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 会在已配对 设备下把这两者原样打印出来。

本页目录