CustomShortcut binding not applied by agent at runtime (falls back to default action) even though GUI shows it as assigned
- 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