files/noctalia/keyhelp/README.md (1308B)
Rendered
Keyhelp
Keyhelp is a key-bindings helper for Hyprland/Niri.
The Desktop page displays the compositor's shortcuts.
The focused application selects the initial page.
- Tab / Shift+Tab: move between controls
- Ctrl+Tab / Ctrl+Shift+Tab: switch application pages and clear search
- Page Up / Page Down: browse 8 results at a time
- Ctrl+F: focus search without losing its text
- Escape, outside click, or Super+/: close
Integration
Each compositor supplies its executable path and invokes the controller:
noctalia msg plugin maydayv7/keyhelp:controller all toggle hyprland
noctalia msg plugin maydayv7/keyhelp:controller all toggle niri
The controller queries the focused app before opening the panel - a failed query falls back to Desktop.
Ordinary panel-toggle maydayv7/keyhelp:panel is available for development.
Maintaining shortcuts
Edit shortcuts.json.
Groups contain name and ordered entries.
Entries contain keys and description. gap_before (optional) adds separation.
Aliases match app IDs exactly.
Desktop pages declare compositor = "hyprland" or "niri".
Code
1# Keyhelp
2
3Keyhelp is a key-bindings helper for Hyprland/Niri.
4The Desktop page displays the compositor's shortcuts.
5The focused application selects the initial page.
6
7- Tab / Shift+Tab: move between controls
8- Ctrl+Tab / Ctrl+Shift+Tab: switch application pages and clear search
9- Page Up / Page Down: browse 8 results at a time
10- Ctrl+F: focus search without losing its text
11- Escape, outside click, or Super+/: close
12
13## Integration
14
15Each compositor supplies its executable path and invokes the controller:
16
17```sh
18noctalia msg plugin maydayv7/keyhelp:controller all toggle hyprland
19noctalia msg plugin maydayv7/keyhelp:controller all toggle niri
20```
21
22The controller queries the focused app before opening the panel - a failed query falls back to Desktop.
23Ordinary `panel-toggle maydayv7/keyhelp:panel` is available for development.
24
25## Maintaining shortcuts
26
27Edit [`shortcuts.json`](./shortcuts.json).
28Groups contain `name` and ordered `entries`.
29Entries contain `keys` and `description`. `gap_before` (optional) adds separation.
30Aliases match app IDs exactly.
31Desktop pages declare `compositor = "hyprland"` or `"niri"`.
32
33---
34
35- [Runtime API](https://docs.noctalia.dev/noctalia/plugins/development/runtime-api/)
36- [Plugin UI](https://docs.noctalia.dev/noctalia/plugins/development/declarative-ui/)