[Feature]: On-screen indicator overlay for Function Keys like Caps Lock and Num Lock
- 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
Logi Options+ provides an on-screen overlay notification when toggling function and lock keys (such as Caps Lock and Num Lock). While certain Logitech keyboards feature physical LED indicators, many compact and wireless models omit them entirely to conserve power and maintain a minimalist design style.
Without a physical LED indicator, users lack clear visual feedback regarding key states, often leading to unintended inputs (e.g., typing passwords in the wrong case). Providing an on-screen overlay or visual status feedback bridges this hardware gap, ensuring users can verify lock states directly in their line of sight.
It looks like this:
and on off state:
### Proposed solution
Implement a lightweight, non-intrusive on-screen display (OSD) overlay that triggers when lock keys are toggled.
Trigger: Detect state changes for Caps Lock, Num Lock, and Scroll Lock.
Display: Show a semi-transparent, non-focus-stealing toast notification that auto-dismisses after 1–1.5 seconds.
Settings: Provide toggles to enable/disable the overlay per key type and adjust position/timeout.
### Alternatives considered
_No response_
### Related area(s)
- [ ] GUI
- [ ] CLI
- [ ] Button actions / remapping
- [ ] DPI
- [ ] SmartShift
- [ ] Per-application profiles
- [ ] Configuration (TOML)
- [ ] Auto-update
- [ ] Other
### Additional context
_No response_
Contributor guide
No contributing guide indexed for this repository
Research direction
No files, tests, or entry points are named in the issue. Start by locating the existing GUI and configuration entry points, then determine how lock-state changes are detected; done means an OSD for Caps Lock, Num Lock, and Scroll Lock with per-key settings, position, and timeout.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100