[Bug]: Device Support] Logitech Lift over BTLE (modelId b031) displays blank/gray placeholder
- 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.3
### Operating system
macOS
### OS version & architecture
Tahoe
### Device model
Lift Vertical Ergonomic
### How is the device connected?
Logi Bolt receiver
### Affected area(s)
- [ ] Device discovery / detection
- [ ] Button remapping
- [ ] DPI control
- [ ] SmartShift
- [ ] Per-application profiles
- [ ] Battery status
- [x] Settings / configuration (TOML)
- [ ] Auto-update
- [ ] Menu bar / tray
- [x] Other
### What happened?
### Description
Logitech Lift connected via Bluetooth LE is detected by the backend, but the UI displays a blank/gray frame instead of the device image and button layout.
### Device Information
- **Device:** Logitech Lift Vertical Ergonomic Mouse
- **Transport:** Bluetooth Low Energy (BTLE)
- **Hardware IDs:** VID `046d`, PID `b031`
- **Identified as:** `model_ids=[b031,0000,0000]`
- **OS:** macOS (Apple Silicon)
### Root Cause
The asset repository only maps the 2.4GHz / Bolt variant (`2b031`) in `index.json` and `manifest.json` under `mx_vertical_mini`. The BTLE reporting ID (`b031`) lacks the mapping to the corresponding `mx_vertical_mini` assets in the UI renderer.
### Steps to reproduce
Just opened the settings. No image.
### Diagnostics report
```markdown
### OpenLogi Diagnostics
**App**
- OpenLogi (GUI): v0.8.3 (release)
- Agent: v0.8.3 (connected)
- IPC protocol: GUI 29 / agent 29
- Inventory: ready
- OS: macOS 27.0 (arm64)
- Locale: pt-BR (UI: pt-BR)
- Accessibility: granted · Input hook: installed
- Launch at login: yes · Menu bar: yes · Update check: on
- Running from: source build (dev)
- Config: schema 7 · 1 configured device(s) · thumbwheel 44
**Assets**
- Source: user cache · Index: loaded (210 models) · User cache: present
- Cache path: ~/.local/share/openlogi/assets · Bundle assets: absent
**Devices (1)**
- Lift Vertical Ergonomic Mouse — mouse (codename: LIFT VERTICAL ERGONOMIC MOUSE)
- Connection: Bluetooth (direct) · Online: yes · Battery: 40% (discharging, good)
- Capabilities: buttons=yes, pointer=yes, lighting=no
- DPI: read failed
- Model: 0b031 (model-ids: b031/0000/0000, ext-model: 00)
- Transports: BTLE
- Render: ⚠️ none (silhouette) · direct
```
### `openlogi list` output
```text
```
### Logs
```shell
```
### 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 by inspecting the asset repository's index.json and manifest.json mappings under mx_vertical_mini, then trace how the UI renderer resolves model ID b031. Done means the BTLE ID maps to the existing Lift assets and the settings view shows the device image and button layout instead of the blank or gray placeholder.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop, frontend
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 78/100