[Bug]: G602 Wireless Gaming Mouse, missing functionality & bugs
- Dominant language
- Rust
- Stars
- 21k
- Forks
- 675
- Avg merge
- 2d 5h
- Merged PRs (30d)
- 172
Description
### Pre-flight checklist
- [x] I searched [existing issues](https://github.com/AprilNEA/OpenLogi/issues?q=is%3Aissue) and this is not a duplicate.
- [x] I am on the [latest release](https://github.com/AprilNEA/OpenLogi/releases/latest) or a recent `master` build.
- [x] I quit **Logi Options+** before running OpenLogi (the two apps fight over HID++ access and only one can own a receiver at a time).
### Which part of OpenLogi?
GUI (desktop app)
### OpenLogi version
0.8.1
### Operating system
macOS
### OS version & architecture
MacOS 15.7.9 (24G830)
### Device model
G602 Wireless Gaming Mouse
### How is the device connected?
Other / not sure
### Affected area(s)
- [ ] Device discovery / detection
- [x] Button remapping
- [x] DPI control
- [ ] SmartShift
- [ ] Per-application profiles
- [ ] Battery status
- [x] Settings / configuration (TOML)
- [ ] Auto-update
- [ ] Menu bar / tray
- [ ] Other
### What happened?
I had put in request https://github.com/AprilNEA/OpenLogi/issues/448 to add support for the G602 mouse. This was done, however there is still missing main functionality and bugs. Per @davidbudnick 's request in the previous topic, I am opening a new thread for these. Let me know what else you need from me.
1. No screen/ability to see/remap button functionality
2. DPI read is failing
3. Device says 'Wireless Gaming Mouse' instead of more descriptive 'G602 Wireless Gaming Mouse' (minor but impossible to otherwise differentiate from other mice)
Current state of screens as of 0.8.1:
### Steps to reproduce
Mentioned above
### Diagnostics report
```markdown
### OpenLogi Diagnostics
**App**
- OpenLogi (GUI): v0.8.1 (release)
- Agent: v0.8.1 (connected)
- IPC protocol: GUI 28 / agent 28
- Inventory: ready
- OS: macOS 15.7.9 (x86_64)
- Locale: en-US (UI: follow system)
- Accessibility: granted · Input hook: installed
- Launch at login: no · Menu bar: no · Update check: on
- Running from: source build (dev)
- Config: schema 6 · 4 configured device(s) · thumbwheel 14
**Assets**
- Source: user cache · Index: loaded (210 models) · User cache: present
- Cache path: ~/.local/share/openlogi/assets · Bundle assets: absent
**Devices (5)**
- Wireless Solar Keyboard K750 — keyboard (codename: Wireless Solar Keyboard K750)
- Connection: Logi Unifying receiver · Online: yes · Battery: n/a
- Capabilities: buttons=yes, pointer=no, lighting=no
- Model: 00000 (wpid: 400f, model-ids: 0000/0000/0000, ext-model: 00)
- Transports: none
- Render: ⚠️ none (silhouette) · Slot 1
- Slot 2 — keyboard
- Connection: Logi Unifying receiver · Online: no · Battery: n/a
- Capabilities: not probed
- Model: wpid2008
- Render: ⚠️ none (silhouette) · Slot 2
- Slot 3 — keyboard
- Connection: Logi Unifying receiver · Online: no · Battery: n/a
- Capabilities: not probed
- Model: wpid4002
- Render: ⚠️ none (silhouette) · Slot 3
- Wireless Gaming Mouse — mouse (codename: Wireless Solar Keyboard K750)
- Connection: Logi Unifying receiver · Online: yes · Battery: 50% (discharging, good)
- Capabilities: buttons=no, pointer=yes, lighting=yes
- Model: 00000 (wpid: 400f, model-ids: 0000/0000/0000, ext-model: 00)
- Transports: none
- Render: ⚠️ none (silhouette) · Slot 1
- 1080P Pro Stream — camera
- Connection: unknown · Online: yes · Battery: n/a
- Capabilities: not probed
- Model: 0894
- Render: ⚠️ none (silhouette) · Slot 0
**Receivers (2)**
- Unifying Receiver (VID 046d / PID c52b)
- Unifying Receiver (VID 046d / PID c537)
```
### `openlogi list` output
```text
Where should this be done?
```
### Logs
```shell
godzfire@GFMM ~ % OPENLOGI_LOG=debug /Applications/OpenLogi.app/Contents/MacOS/OpenLogi
2026-08-26T19:07:53.998604Z DEBUG RPC{rpc.deadline=2026-08-26T19:08:03.996012324Z otel.kind="client" otel.name=Agent.protocol_version rpc.trace_id=00}: tarpc::client: SendRequest
2026-08-26T19:07:53.998940Z DEBUG RPC{rpc.deadline=2026-08-26T19:08:03.996012324Z otel.kind="client" otel.name=Agent.protocol_version rpc.trace_id=00}: tarpc::client: ReceiveResponse
2026-08-26T19:07:53.999066Z DEBUG RPC{rpc.deadline=2026-08-26T19:08:03.999045174Z otel.kind="client" otel.name=Agent.snapshot rpc.trace_id=00}: tarpc::client: SendRequest
2026-08-26T19:07:53.999203Z DEBUG RPC{rpc.deadline=2026-08-26T19:08:03.999045174Z otel.kind="client" otel.name=Agent.snapshot rpc.trace_id=00}: tarpc::client: ReceiveResponse
(inventory read from the running agent)
Unifying Receiver (BE2E95ED, vid=046d pid=c52b)
├─ slot 1 ● Wireless Solar Keyboard K750 (keyboard, wpid=400f, battery=—)
│ model_ids=[0000,0000,0000] ext=00 serial=— unit_id=00000000 transports=—
├─ slot 2 ○ Unknown device (keyboard, wpid=2008, battery=—)
└─ slot 3 ○ Unknown device (keyboard, wpid=4002, battery=—)
Unifying Receiver (F762998E, vid=046d pid=c537)
└─ slot 1 ● Wireless Gaming Mouse (mouse, wpid=402c, battery=50% good (discharging))
model_ids=[0000,0000,0000] ext=00 serial=— unit_id=00000000 transports=—
Cameras (1 Logitech UVC)
└─ ● 1080P Pro Stream (camera, vid=046d pid=0894, up to 2304x1536@2, id=0x14243000046d0894)
```
### macOS permissions (if applicable)
- [x] OpenLogi has **Accessibility** permission (needed to remap buttons via the event tap).
- [x] OpenLogi has **Input Monitoring** permission (needed for Bluetooth-direct devices and capture).
Contributor guide
No contributing guide indexed for this repository
Research direction
Start at the GUI desktop app and reproduce the G602 behavior on macOS 15.7.9 using the supplied diagnostics and receiver details. Check button-remapping visibility, DPI reading, and the device label independently; done means all three work for this mouse without regressing existing devices.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100