docs: roadmap — menu system design: fuzzel dmenu dispatcher, themed from the JSON

Resolves the old Walker/Lua previews-vs-simplicity question in favor of
fuzzel: already shipped, nested menus via dmenu mode, INI theme bakeable
from theme-state.json like every other app.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Bernardo Magri
2026-06-12 18:03:58 +01:00
parent a33127cd3c
commit 009bdbad8f

View File

@@ -230,7 +230,20 @@ workspaces · `Print` region screenshot.
`tools/import-palettes.py <palettes-dir> themes/`.
## Roadmap
- We need to start creating a menu system (for apps launcher and for theme switching)
- **Menu system** (apps launcher + theme switching + system actions), built
on fuzzel — already shipped for SUPER+D/SUPER+T, dmenu mode does nested
menus and per-entry icons, and its INI theme can be baked from
theme-state.json like every other app:
- `modules/home/fuzzel.nix`: colors/fonts from the theme JSON (today the
launcher is the one surface that ignores the theme)
- `nomarchy-menu` dispatcher script over `fuzzel --dmenu`, Omarchy-style
nesting: Theme ▸ (apply/wallpaper) · Network ▸ nmtui · Bluetooth ▸
blueman · Power ▸ lock/suspend/reboot/poweroff · Capture ▸ screenshot;
actions delegate to nomarchy-theme-sync and friends
- decision record: this resolves the old Walker/Lua question in favor of
simplicity — no GTK4 launcher, no second theming pipeline, no image
previews (instant `bg next` covers wallpaper browsing); the dispatcher
owns the menu structure, so the renderer stays swappable
- We need to add networkManager applet to waybar so user can easily connect to internet
- **Faster switches:** move `backgrounds/` out of the flake source (the 86 MB
re-copy on every state write is the main eval tax), then pre-built theme