AprilNEA / AprilNEA/OpenLogi

[Bug]: G602 Wireless Gaming Mouse, missing functionality & bugs

Open
#1,058 0 comments 0 reactions 0 assignees View on GitHub
needs: triage type: bug
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:

Image

Image

Image

Image

### 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.