AprilNEA / AprilNEA/OpenLogi

[Bug]: (Gesture Button) Mission Control only works once.. sometimes.

Open
#738 4 comments 4 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?

Not sure

### OpenLogi version

0.7.3

### Operating system

macOS

### OS version & architecture

26.4.1

### Device model

MX Master 3S for Mac

### How is the device connected?

Bluetooth (direct, no receiver)

### Affected area(s)

- [ ] Device discovery / detection
- [x] Button remapping
- [ ] DPI control
- [ ] SmartShift
- [ ] Per-application profiles
- [ ] Battery status
- [ ] Settings / configuration (TOML)
- [ ] Auto-update
- [ ] Menu bar / tray
- [ ] Other

### What happened?

I'm not sure if this might be related to #465.

When the gesture button is set to Mission Control, _sometimes_ it works exactly once (the first click) and then stops working after that. Often it doesn't even work once. When set to some other options (Show Desktop, LaunchPad) it works every time, and when set to yet other options (App Expose) it sometimes works more consistently and sometimes has the same behaviour as Mission Control.

When the gesture button is set to gestures, I can map Mission Control to the centre/"click" action and it works consistently, but this obviously is a work-around. Also, it's not possible to set any of those gestures to "no action".

### Steps to reproduce

As above.

### Diagnostics report

```markdown
### OpenLogi Diagnostics

**App**
- OpenLogi (GUI): v0.7.3 (release)
- Agent: v0.7.3 (connected)
- IPC protocol: GUI 23 / agent 23
- Inventory: ready
- OS: macOS 26.4.1 (arm64)
- Locale: en-CA (UI: follow system)
- Accessibility: granted · Input hook: installed
- Launch at login: yes · Menu bar: yes · Update check: on
- Running from: source build (dev)
- Config: schema 4 · 1 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 (1)**
- MX Master 3S — mouse (codename: MX Master 3S For Mac)
- Connection: Bluetooth (direct) · Online: yes · Battery: 70% (discharging, full)
- Capabilities: buttons=yes, pointer=yes, lighting=no
- Model: 4b034 (model-ids: b034/0000/0000, ext-model: 04)
- Transports: BTLE
- Render: mx_master_3s · direct
```

### `openlogi list` output

```text
$ openlogi list
2026-08-21T05:44:59.152175Z WARN openlogi_hid::inventory: failed to open HID++ channel — retrying next tick error=Message("Failed to open device")
2026-08-21T05:44:59.467814Z WARN openlogi_hid::inventory: failed to open HID++ channel — retrying next tick error=Message("Failed to open device")
2026-08-21T05:44:59.784489Z WARN openlogi_hid::inventory: failed to open HID++ channel — retrying next tick error=Message("Failed to open device")
2026-08-21T05:45:00.103923Z WARN openlogi_hid::inventory: failed to open HID++ channel — retrying next tick error=Message("Failed to open device")
No Logitech HID++ devices or webcams found.
```

### 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 reproducing the gesture-button behavior on macOS with the listed MX Master 3S Bluetooth setup and Mission Control mapping. Trace the button-remapping path around the event tap and compare it with Show Desktop, Launchpad, and gesture-center mappings. Done means Mission Control works consistently for repeated presses without breaking the other mappings.

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
Needs clarification
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.