[Feature]: Support pointer speed (HID++ 0x2205) for M590 等无 Adjustable DPI 的型号
- Dominant language
- Rust
- Stars
- 21k
- Forks
- 675
- Avg merge
- 1d 6h
- Merged PRs (30d)
- 180
Description
## Problem / motivation
Logitech M590 (M585/M590) 是一款只支持 **Pointer Speed**(HID++ `0x2205 PointerMotionScaling`)、**不支持 Adjustable DPI**(无 `0x2201`/`0x2202`)的办公鼠标。因此在 OpenLogi GUI 中,M590 的设备详情页只有「Buttons / Actions Ring / Device」三个选项卡,**没有 Pointer(DPI)选项卡**——这是符合预期的(`DetailTab::tabs_for` 只在 `caps.pointer` 为 true 时显示 Pointer 面板),但同时也意味着:
- M590 用户无法在 OpenLogi 中调节指针速度(鼠标灵敏度);
- 官方 Logi Options+ 对 M590 提供的正是"Pointer Speed"调节(而非 DPI);
- 目前唯一的替代方案是系统级指针速度设置(macOS「系统设置 → 鼠标 → 跟踪速度」)或 Solaar。
希望 OpenLogi 也能覆盖这类"无 DPI、仅有 Pointer Speed"的型号。
## Proposed solution
为 HID++ `0x2205 PointerMotionScaling` 增加读写支持(当前 `crates/openlogi-hidpp/src/feature/registry.rs` 只注册了该 feature 的名称,没有任何实现),并在 GUI 的 Pointer 面板中,对**未上报 `0x2201/0x2202` 但上报 `0x2205`** 的设备显示"Pointer Speed"控制(滑块或数值),复用或扩展现有的 Pointer 选项卡。
参考实现:Solaar 对 M590 的 `POINTER SPEED` 读写(`docs/devices/Multi Device Silent Mouse M585-M590 406B.txt`,feature `{2205}` V0,Pointer Speed 1.0 / 256)。
## Alternatives considered
- 系统级指针速度设置(macOS 跟踪速度 / Windows 指针速度):可用,但无法按设备、按应用配置,也不符合 OpenLogi「本地优先、全设备配置」的目标。
- Solaar:仅 Linux 可用,macOS 上无法使用。
## Related area(s)
- [x] GUI
- [ ] CLI
- [ ] Button actions / remapping
- [x] DPI(Pointer / pointer-speed 面板)
- [ ] SmartShift
- [ ] Per-application profiles
- [ ] Configuration (TOML)
- [ ] Auto-update
- [ ] Other
## Additional context
设备 HID++ feature dump(来自 Solaar 1.1.7,M585/M590, WPID 406B)——注意没有 `2201/2202`,只有 `2205`:
```
13: POINTER SPEED {2205} V0
Pointer Speed: 1.0
Sensibilidad (Velocidad del puntero) (saved): 256
Sensibilidad (Velocidad del puntero) : 256
```
环境:macOS + M590 蓝牙直连,OpenLogi v0.6.27。
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with crates/openlogi-hidpp/src/feature/registry.rs and the DetailTab::tabs_for entry point to trace feature registration and Pointer panel visibility. Use docs/devices/Multi Device Silent Mouse M585-M590 406B.txt as the device reference. Done means HID++ 0x2205 read/write support and a Pointer Speed control for devices without 0x2201/0x2202 but with 0x2205.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend-api-design, desktop
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100