feat(theme): capture Boreal picker preview + V2-verify default
All checks were successful
Check / eval (push) Successful in 3m6s

Close the honesty gap on #45. Rendered the full Boreal desktop
headlessly (tools/theme-shot.nix, softGL 1920x1080) and confirmed the
session reads as Boreal — aurora wallpaper, Waybar violet accent
(#B79BE8) workspace pill, GeistMono clock, rofi launcher violet
prompt/selection — not Tokyo Night. Added themes/boreal/preview.png
(480x270, matches the existing 21) so the picker row is no longer
plain-name.

theme-shot: park the cursor bottom-right before the desktop shot so the
frame (which doubles as the preview source) is clean; reusable for the
other two missing previews.

Verified: V0 flake check; V2 theme-shot desktop/menu shots viewed;
contrast 24x7 pass. Preview is a headless bare-desktop capture (not the
floating-terminal composition of the others) — hardware recapture noted.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Bernardo Magri
2026-07-09 18:28:38 +01:00
parent 7d52d4b5e4
commit 41cd350a52
4 changed files with 50 additions and 26 deletions

View File

@@ -61,13 +61,19 @@ pkgs.testers.runNixOSTest {
testScript = ''
machine.wait_for_unit("multi-user.target")
machine.wait_for_file("/run/user/1000/hypr", 180)
# hyprctl dispatch helper (session env resolved from the runtime dir).
hy = "su - nomarchy -c 'XDG_RUNTIME_DIR=/run/user/1000 HYPRLAND_INSTANCE_SIGNATURE=$(ls /run/user/1000/hypr | head -1) hyprctl dispatch"
# The session exec-once paints the wallpaper (softGL first paint at
# 1920x1080 is slow) give it a generous settle.
machine.sleep(30)
# Park the cursor in the bottom-right corner so it doesn't sit in the
# middle of the desktop shot (that frame doubles as the theme-picker
# preview.png source).
machine.execute(hy + " movecursor 1912 1075' >/dev/null 2>&1")
machine.sleep(1)
machine.screenshot("desktop")
# Open the root menu for the polish review.
hy = "su - nomarchy -c 'XDG_RUNTIME_DIR=/run/user/1000 HYPRLAND_INSTANCE_SIGNATURE=$(ls /run/user/1000/hypr | head -1) hyprctl dispatch exec"
machine.execute(hy + " nomarchy-menu' >/dev/null 2>&1")
machine.execute(hy + " exec nomarchy-menu' >/dev/null 2>&1")
machine.sleep(8)
machine.screenshot("menu")
'';