From e677f954c5653db109bc4eb2aa1b3806a9dcf7d6 Mon Sep 17 00:00:00 2001 From: jacob-sabella <179399841+jacob-sabella@users.noreply.github.com> Date: Tue, 4 Aug 2026 17:48:42 -0500 Subject: [PATCH] fix(w-engine): sync palette when restoring wallpaper on startup The startup restore relaunched linux-wallpaperengine for the last selected wallpaper but never re-applied the still that Noctalia derives its palette from, so colors after login came from whatever wallpaper the shell restored on its own. Every other path that puts a wallpaper up pairs launch() with syncPalette(); this one now does too. Switching wallpapers away and back was the only way to correct it, since that runs apply(). --- w-engine/start.luau | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/w-engine/start.luau b/w-engine/start.luau index 0089bdb..9d135f0 100644 --- a/w-engine/start.luau +++ b/w-engine/start.luau @@ -791,13 +791,17 @@ publishStatus() noctalia.runAsync( "pkill linux-wallpaper 2>/dev/null; sleep 1; pkill -KILL linux-wallpaper 2>/dev/null; true", function() - -- Bring back whatever was playing before the reload, cycle included. + -- Bring back whatever was playing before the reload, cycle included. The + -- palette is re-synced alongside the process: the shell restores its own + -- wallpaper on login, which drops the still we set for the live scene and + -- leaves the colors from whatever it picked instead. for _, output in ipairs(noctalia.outputs()) do local name = output.name local id = data.current[name] if type(id) == "string" and id ~= "" then elapsed[name] = 0 launch(name, id) + syncPalette(name, id) end end publishStatus()