From 1cfaaf13faa84f9ac9a55eb9b1eec863923596d0 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Sat, 31 Oct 2026 09:32:18 +0100 Subject: fix: light accent run on --restore A restore puts back what the last session showed, which with keystone's wallpaper engine on is usually a timer tick. Ticks run udt-accent light (UDT_ROTATION), leaving GRUB, the homepage and SDDM on the engine's home wallpaper. The login restore ran it full on the tick's image instead, so every boot rebuilt the GRUB and homepage themes and posted their root steps to the desktop. Before the engine, the restored wallpaper had always had its full run already, so the light run loses nothing there either. A set still runs it full. Co-Authored-By: Claude Opus 5.5 --- tests/wallp.bats | 16 ++++++++++++++++ wallp | 6 +++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/tests/wallp.bats b/tests/wallp.bats index 8a092d4..fff5c84 100644 --- a/tests/wallp.bats +++ b/tests/wallp.bats @@ -181,6 +181,22 @@ EOS grep -q "swaybg -o DP-3 -i $HOME/saved_v.png" "$HOME/calls.log" } +@test "restore runs udt-accent light, a set runs it full" { + cat > "$STUB_DIR/udt-accent" <<'EOS' +#!/bin/bash +echo "rotation=${UDT_ROTATION:-}" >> "$HOME/accent.log" +EOS + chmod +x "$STUB_DIR/udt-accent" + CONF_OUTPUT_H="DP-1"; CONF_OUTPUT_V="DP-3" + : > "$HOME/dh.png"; : > "$HOME/dv.png" + CONF_DEFAULT_H="$HOME/dh.png"; CONF_DEFAULT_V="$HOME/dv.png" + do_restore + [ "$(cat "$HOME/accent.log")" = "rotation=1" ] + : > "$HOME/accent.log" + finalize + [ "$(cat "$HOME/accent.log")" = "rotation=" ] +} + @test "restore falls back to conf defaults" { CONF_OUTPUT_H="DP-1"; CONF_OUTPUT_V="DP-3" : > "$HOME/dh.png"; : > "$HOME/dv.png" diff --git a/wallp b/wallp index 694d2b2..f2e8214 100755 --- a/wallp +++ b/wallp @@ -195,7 +195,11 @@ do_restore() { file="$(restore_path_for "$logical")" apply_output "$logical" "$file" || true done - finalize + # A restore puts back what the last session showed, which may be a + # wallpaper engine tick: GRUB, the homepage and SDDM were deliberately left + # on the engine's home, so the light run keeps them there. A full run here + # rebuilt both and posted their root steps on every login. + UDT_ROTATION=1 finalize } finalize() { -- cgit v1.2.3