AprilNEA / AprilNEA/OpenLogi

CustomShortcut binding not applied by agent at runtime (falls back to default action) even though GUI shows it as assigned

Open
#514 2 comments 0 reactions 0 assignees View on GitHub
platform: macos type: bug
Dominant language
Rust
Stars
21k
Forks
675
Avg merge
1d 6h
Merged PRs (30d)
180

Description

Environment: macOS, OpenLogi v0.6.23 (Homebrew cask), MX Master 3S over Bluetooth (BLE)

Steps to reproduce:
1. Quit OpenLogi completely.
2. Hand-edit ~/.config/openlogi/config.toml, setting a button's Click binding to:
Click = { CustomShortcut = { modifiers = 8, key_code = 123, display = "⌥←" } }
3. Reopen OpenLogi. The GUI correctly shows the button as bound to the custom
shortcut (label renders correctly), confirming the TOML was parsed fine.
4. Press the physical button.

Expected: the custom shortcut (Option+Left Arrow) fires.

Actual: the agent's own debug log (ran openlogi-agent in foreground) shows:
INFO openlogi_agent_core::hook_runtime: button → executing bound action button=Back action=Browser Back
i.e. it falls back to the button's hardcoded default action (Action::BrowserBack),
not the CustomShortcut stored in config.toml — even though:
- Accessibility and Input Monitoring were granted to both OpenLogi.app and
OpenLogiAgent.app (confirmed via TCC.db).
- The device connects fine (openlogi list detects it).
- The GUI displays the binding as assigned correctly.

This matches the documented limitation that the GUI's action picker doesn't
expose CustomShortcut yet, but it looks like the runtime dispatch path
(bindings_for / effective_bindings in openlogi-core) also isn't picking up
the hand-authored CustomShortcut for at least one button (Back), suggesting
the feature isn't fully wired end-to-end yet, not just missing from the UI.

Happy to provide the full config.toml or more logs if useful.

Contributor guide

No contributing guide indexed for this repository

Research direction

Trace the openlogi-core bindings_for and effective_bindings paths into the hook_runtime dispatch shown in the agent log, starting with the Back button and its Browser Back fallback. Reproduce with the provided CustomShortcut TOML and foreground agent; done means the effective binding remains CustomShortcut and Option+Left Arrow fires instead of Browser Back.

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
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.