From 9119d99ba90b5f0380624ef611e80c2a1d439a68 Mon Sep 17 00:00:00 2001 From: Breadway Date: Fri, 3 Jul 2026 22:35:50 +0800 Subject: [PATCH] Fix pywal-brown theme regression: stop clobbering the curated black palette MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Round-3's autostart fix (breadpaper set instead of raw awww img) had a side effect I missed: breadpaper set always runs real pywal against the wallpaper image, which overwrote the curated colors.json baked into skel (#0c0c0c black background, bread-toned browns reserved for accent slots only) with colors genuinely extracted from bread-background.png — an all-beige photo, so every bread-theme app (breadbar included) turned brown on first boot. Revert autostart to plain `awww img`. Bake .cache/wal/wal (pywal's own "last image" marker — the only thing breadpaper get/the bos-settings panel actually read) alongside the existing colors.json instead, so the panel still shows the real default without ever running pywal for real. pywal only generates a genuine palette once the user picks their own wallpaper. --- iso/airootfs/etc/skel/.cache/wal/wal | 1 + .../etc/skel/.config/hypr/hyprland.lua | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) create mode 100644 iso/airootfs/etc/skel/.cache/wal/wal diff --git a/iso/airootfs/etc/skel/.cache/wal/wal b/iso/airootfs/etc/skel/.cache/wal/wal new file mode 100644 index 0000000..69adeb9 --- /dev/null +++ b/iso/airootfs/etc/skel/.cache/wal/wal @@ -0,0 +1 @@ +/usr/share/backgrounds/bos/bread-background.png \ No newline at end of file diff --git a/iso/airootfs/etc/skel/.config/hypr/hyprland.lua b/iso/airootfs/etc/skel/.config/hypr/hyprland.lua index 9928148..3b9c69c 100644 --- a/iso/airootfs/etc/skel/.config/hypr/hyprland.lua +++ b/iso/airootfs/etc/skel/.config/hypr/hyprland.lua @@ -212,12 +212,18 @@ hl.on("hyprland.start", function() -- rather than an exec-once here. "/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1", "awww-daemon", - -- Set the default wallpaper once the daemon is up (retry until - -- ready) via `breadpaper set`, not raw `awww img` — breadpaper also - -- generates the pywal palette and reloads bread-theme, and records - -- the path so `breadpaper get` (and its bos-settings panel) show - -- the real default instead of "No wallpaper set" on a fresh install. - [[bash -c 'until breadpaper set /usr/share/backgrounds/bos/bread-background.png 2>/dev/null; do sleep 0.3; done']], + -- Set the default wallpaper once the daemon is up (retry until ready). + -- Raw `awww img`, NOT `breadpaper set` — breadpaper set also runs real + -- pywal against the image, which would clobber the curated black-base + -- colors.json baked into skel (.cache/wal/colors.json: #0c0c0c bg, + -- bread-toned browns reserved for accent slots only) with colors + -- actually extracted from bread-background.png — which is an all-beige + -- photo, so every bread-theme app (breadbar included) turns brown. + -- `breadpaper get` still works on a fresh install without ever running + -- pywal: .cache/wal/wal (pywal's own "last image" marker, which is all + -- breadpaper reads) is baked into skel too, right beside colors.json. + -- pywal only runs for real once the user picks a wallpaper themselves. + [[bash -c 'until awww img /usr/share/backgrounds/bos/bread-background.png 2>/dev/null; do sleep 0.3; done']], -- breadd runs as a systemd user service (~/.config/systemd/user/breadd.service, -- enabled in skel). It autostarts at login but before Hyprland exists, so -- push the compositor's Wayland env into the user manager and restart breadd