[Feature]: Are keyboard remapping, shell-command actions, and wider keycode coverage planned?
- Dominant language
- Rust
- Stars
- 21k
- Forks
- 675
- Avg merge
- 2d 5h
- Merged PRs (30d)
- 172
Description
### Pre-flight checklist
- [x] I searched existing issues and the [Roadmap](https://github.com/AprilNEA/OpenLogi#roadmap), and this isn't already tracked.
Partial overlap, noted for triage: #101 and #64 touch keyboard remapping, #258 touches custom/macro actions. Neither covers the keycode gap below, and none of the three has an answer on whether the feature is planned. Happy to have this closed as a duplicate if you'd rather answer in those threads.
### Problem / motivation
I'm evaluating a move from Solaar to OpenLogi on Ubuntu 24.04 / X11, with an MX Master 3 and an MX Keys S (both Bluetooth-direct). Most of my setup transfers — per-app profiles via `WM_CLASS`, DPI, SmartShift, Back/Forward/Gesture bindings all work as documented.
Three things I currently rely on have no equivalent in OpenLogi, so I can't complete the migration. Listing them here to ask whether they're on the roadmap.
**1. Keyboard key remapping**
`ButtonId` in `crates/openlogi-core/src/binding.rs` enumerates mouse buttons only. My MX Keys S has seven keys remapped in Solaar — Lock PC, Calculator, Voice Dictation, Emoji Panel, Snipping Tool, Mic Mute, and the App-Contextual-Menu key — and there's no place in the config schema to express any of them. Same for fn-swap and backlight timeout, which Solaar exposes over HID++.
**2. Running a command from a binding**
Two of my bindings shell out (Solaar's `Execute:` rule action). The `Action` enum has no variant for this.
**3. Keycode coverage in `CustomShortcut`**
`macos_vk_to_linux` in `crates/openlogi-inject/src/inject/linux.rs` maps A–Z, 0–9, punctuation, Tab/Space/Esc/Enter/Backspace, F1–F12, Home/End/PgUp/PgDn/Delete, and the arrows. `modifiers_to_keycodes` in the same file handles Ctrl, Shift, and Alt, with `MOD_CMD` folding into `KEY_LEFTCTRL`.
That leaves these unreachable from a binding:
- Numpad keys — I need `KP_Enter` and `Ctrl+KP_Enter` (RStudio binds these separately from main-row Enter, so `Enter` isn't a substitute)
- F13–F24 — I need `F16` for a LibreOffice macro
- Print Screen as a bindable key
- Media/system keys such as mic-mute (`MuteVolume` covers speaker mute only)
- Super/Meta as a modifier, and left/right modifier distinction
Three of my bindings fail on this: mode-shift button → `KP_Enter`, middle click → `Ctrl+KP_Enter` in RStudio, middle click → `F16` in LibreOffice.
### Proposed solution
No proposal — I'm asking whether these three are planned, and roughly where they sit if so. That determines whether I migrate now, wait, or stay on Solaar.
### Alternatives considered
Solaar does all three today; that's the setup I'd be leaving.
### Related area(s)
- [ ] GUI
- [ ] CLI
- [x] Button actions / remapping
- [ ] DPI
- [ ] SmartShift
- [ ] Per-application profiles
- [x] Configuration (TOML)
- [ ] Auto-update
- [x] Other
### Additional context
Ubuntu 24.04.4 LTS, X11/GNOME, OpenLogi v0.6.21. MX Master 3 (`046d:B023`, Bluetooth-direct) and MX Keys S (Bluetooth-direct). Source references are at tag `v0.6.21`.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with crates/openlogi-core/src/binding.rs and the Action enum, then inspect macos_vk_to_linux and modifiers_to_keycodes in crates/openlogi-inject/src/inject/linux.rs. Define the intended scope for keyboard remapping, shell-command actions, and additional keycodes before implementation. Done means the maintainers have agreed on a concrete, testable feature scope or roadmap decision.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- linux, rust
- Domain
- desktop, operating-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100