[Feature]: Support generic (non-Logitech) device macro remapping
- 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.
### Problem / motivation
OpenLogi only works with Logitech hardware — it ignores all non-Logitech
devices. But the official Logitech Options+ already lets us remap/macro generic
mice and keyboards via its OS-level hook. Since OpenLogi aims to be a local-first,
ad-free Options+ replacement, adding this lets people fully drop Options+ for
both their Logitech and non-Logitech devices.
### Proposed solution
Add an optional, additive **generic device layer**: capture non-Logitech button
presses via the OS input hook and reuse the existing action/macro engine to emit
remaps/shortcuts. Opt-in via a config flag; never interferes with the existing
HID++ layer.
A minimal first milestone — capture a generic button and emit a configurable
shortcut — already covers my use case. DPI/smartshift stay Logitech-only.
### Alternatives considered
Nil
### Related area(s)
- [x] GUI
- [x] CLI
- [ ] Button actions / remapping
- [ ] DPI
- [ ] SmartShift
- [ ] Per-application profiles
- [x] Configuration (TOML)
- [ ] Auto-update
- [ ] Other
### Additional context
Related:
#886
#121
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reading the existing Logitech HID++ layer, action/macro engine, TOML configuration, and the GUI and CLI entry points. The first milestone is complete when an opt-in generic device layer captures a generic button and emits a configurable shortcut without interfering with Logitech handling.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli, desktop
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100