docs(roadmap): plan the visual theme picker (preview thumbnails)
Add the agreed approach for prettifying nomarchy-menu theme into a rofi icon grid of real themed-desktop previews: Bernardo captures previews on real hardware and commits themes/<slug>/preview.png; a build-time derivation downscales each to a thumbnail that the picker loads as the rofi element icon (rofi already renders image files — same as the Papirus menu icons), with a wallpaper/swatch/plain-name fallback while previews are added incrementally. Notes the headless VM-render route was prototyped and works (runNixOSTest + software-GL Hyprland + machine.screenshot QMP dump) but real-hardware capture was chosen for fidelity; the working VM recipe is parked in memory. The temporary flake checks.theme-shot spike is removed (too heavy for a CI gate). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -88,6 +88,25 @@ how to override it. Items marked ✓ are shipped.
|
|||||||
green inputbar, yellow bottom-border). Remaining: author `.rasi`
|
green inputbar, yellow bottom-border). Remaining: author `.rasi`
|
||||||
identities for the other four ported themes if/when they want one (the
|
identities for the other four ported themes if/when they want one (the
|
||||||
generated palette theme is the default and looks fine)
|
generated palette theme is the default and looks fine)
|
||||||
|
- **Visual theme picker (preview thumbnails):** replace the plain-text theme
|
||||||
|
list in `nomarchy-menu theme` with a rofi **icon grid of real desktop
|
||||||
|
previews** — each theme shown as a screenshot of its themed desktop (waybar
|
||||||
|
+ a floating terminal), name beneath, the active theme marked, with the
|
||||||
|
`↩ Back` entry. **Workflow:** Bernardo captures the previews on real
|
||||||
|
hardware and commits them as `themes/<slug>/preview.png`; a build-time
|
||||||
|
derivation downscales each to a small thumbnail (imagemagick), and the
|
||||||
|
picker loads it as the rofi element icon — rofi already renders image files,
|
||||||
|
which is how the Papirus menu icons work, so a `.png` path in the icon slot
|
||||||
|
Just Works. Grid layout via a per-invocation `-theme-str` (`listview {
|
||||||
|
columns; }` + a larger `element-icon`). Graceful fallback when a theme has
|
||||||
|
no `preview.png` yet: its wallpaper (`backgrounds/`), an accent swatch, or
|
||||||
|
the plain name — so it degrades cleanly as previews are added incrementally.
|
||||||
|
(A headless VM-render route — `runNixOSTest` + software-GL Hyprland
|
||||||
|
(`LIBGL_ALWAYS_SOFTWARE` on virtio-gpu) + `machine.screenshot()` QMP
|
||||||
|
framebuffer dump — was prototyped 2026-06-19 and **works** (themed waybar
|
||||||
|
rendered + captured); real-hardware capture was chosen for fidelity +
|
||||||
|
simplicity, with the VM route as a documented fallback if hand-capturing all
|
||||||
|
themes gets tedious.)
|
||||||
- **Faster switches:** move `backgrounds/` out of the flake source (the 86 MB
|
- **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
|
re-copy on every state write is the main eval tax), then pre-built theme
|
||||||
variants if still needed
|
variants if still needed
|
||||||
|
|||||||
Reference in New Issue
Block a user