fix: live-VM desktop fixes — Hyprland 0.55 compat + swww→awww rename

Found by booting the live ISO (docs/TESTING.md checklist):
- pin HM configType = "hyprlang" (26.05 stateVersion defaults to the new
  Lua config and renders these settings as broken hl.$mod(...) calls,
  booting Hyprland into emergency mode)
- drop dwindle:pseudotile (removed in Hyprland 0.55; aborts config parse)
- disable splash rendering alongside the logo
- launch awww-daemon and call awww with swww fallback (nixpkgs' swww is
  the renamed awww fork; no `swww` binary exists anymore)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Bernardo Magri
2026-06-10 15:38:32 +01:00
parent f211ef0d09
commit 8a0ec763e0
2 changed files with 20 additions and 12 deletions

View File

@@ -168,16 +168,18 @@ def apply_wallpaper(state: dict, wait: bool = False) -> None:
if wallpaper is None:
log(f"no wallpaper for theme '{state.get('slug', '?')}', skipping")
return
if shutil.which("swww") is None:
log("swww not found, skipping wallpaper")
# nixpkgs renamed swww to awww (CLI-compatible fork); accept either.
swww = shutil.which("awww") or shutil.which("swww")
if swww is None:
log("awww/swww not found, skipping wallpaper")
return
# At session start swww-daemon may still be coming up.
# At session start the daemon may still be coming up.
for _ in range(10 if wait else 1):
if subprocess.run(["swww", "query"], capture_output=True).returncode == 0:
if subprocess.run([swww, "query"], capture_output=True).returncode == 0:
break
time.sleep(0.5)
result = subprocess.run(
["swww", "img", str(wallpaper),
[swww, "img", str(wallpaper),
"--transition-type", "grow",
"--transition-pos", "center",
"--transition-duration", "1",
@@ -185,7 +187,7 @@ def apply_wallpaper(state: dict, wait: bool = False) -> None:
capture_output=True,
)
log(f"wallpaper: {wallpaper.name}" if result.returncode == 0
else "wallpaper: swww failed (daemon not running?)")
else "wallpaper: awww failed (daemon not running?)")
# ─── Commands ─────────────────────────────────────────────────────────────