AprilNEA / AprilNEA/OpenLogi

[Bug]: Gesture button not working as expected

Open
#465 2 comments 5 reactions 0 assignees View on GitHub
needs: triage platform: macos 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.6.22

### Operating system

macOS

### OS version & architecture

15.7.7 (24G720)

### Device model

M720

### How is the device connected?

Logi Bolt receiver

### Affected area(s)

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

### What happened?

I have disabled gestures and want my gesture button to open mission control but it instead behaves like a tab button.
Here is my config.toml file

schema_version = 3

[app_settings]
launch_at_login = false
check_for_updates = true
auto_install_updates = false
update_prompt_seen = true
show_in_menu_bar = true
auto_download_assets = true
asset_source = "automatic"
thumbwheel_sensitivity = 14
appearance = "system"

[devices."receiver:f6be9403:slot:1"]
gesture_owner = "Off"

[devices."receiver:f6be9403:slot:1".identity]
display_name = "M720 TRIATHLON"
codename = "M720 Triathlon"
kind = "mouse"

[devices."receiver:f6be9403:slot:1".identity.model_info]
entity_count = 3
unit_id = [
0,
0,
0,
0,
]
model_ids = [
45077,
16478,
0,
]
extended_model_id = 0

[devices."receiver:f6be9403:slot:1".identity.model_info.transports]
usb = false
equad = true
btle = true
bluetooth = false

[devices."receiver:f6be9403:slot:1".identity.capabilities]
buttons = true
pointer = false
lighting = false
scroll_inversion = true
hires_wheel = true

[devices."receiver:f6be9403:slot:1".bindings]
GestureButton = "MissionControl"

### Steps to reproduce

Set Gesture Button to Off
Set Gesture Button as Mission Control

### Diagnostics report

```markdown
### OpenLogi Diagnostics

**App**
- OpenLogi (GUI): v0.6.22 (release)
- Agent: v0.6.22 (connected)
- IPC protocol: GUI 10 / agent 10
- Inventory: ready
- OS: macOS 15.7.7 (arm64)
- Locale: en-TR (UI: follow system)
- Accessibility: granted · Input hook: installed
- Launch at login: yes · Menu bar: no · Update check: on
- Running from: source build (dev)
- Config: schema 3 · 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)**
- M720 TRIATHLON — mouse (codename: M720 Triathlon)
- Connection: Logi Unifying receiver · Online: yes · Battery: n/a
- Capabilities: buttons=yes, pointer=no, lighting=no
- Model: receiver:f6be9403:slot:1 (wpid: 405e, model-ids: b015/405e/0000, ext-model: 00)
- Transports: eQuad, BTLE
- Render: m720_triathlon · Slot 1

**Receivers (1)**
- Unifying Receiver (VID 046d / PID c52b)
```

### `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 reproducing the M720 configuration from config.toml in the GUI: set Gesture Button to Off, then assign MissionControl, and compare the resulting tab-button behavior. Use the diagnostics report and the empty `openlogi list` output to verify the device and permissions; done means the gesture button invokes Mission Control rather than acting as a tab key.

Written by the indexing model from the issue text.

Assessment

Tech stack
macos, rust
Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.