From e90018d78007efc221dc47bb9e72a48f04728f82 Mon Sep 17 00:00:00 2001 From: rope Date: Mon, 18 May 2026 10:13:36 +0100 Subject: [PATCH] hyprpaper: work around 0.8.4 wallpaper= config bug via IPC MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit hyprpaper 0.8.4 silently ignores wallpaper= directives in the config on startup — preload= works but the monitor assignment does not. Add a hyprland.start hook that waits 2s (for hyprpaper to preload the image) then sets the wallpaper via hyprctl IPC. The image path is read at runtime from hyprpaper.conf to avoid a Nix string-context conflict between the stylix image store path and the powerMenu derivation. Co-Authored-By: Claude Sonnet 4.6 --- settings/hyprland.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/settings/hyprland.nix b/settings/hyprland.nix index 4fc8a8f..8ea8716 100644 --- a/settings/hyprland.nix +++ b/settings/hyprland.nix @@ -268,6 +268,11 @@ in hl.exec_cmd("hyprctl setcursor Bibata-Modern-Ice 24") hl.exec_cmd("swayosd-server") ${lib.optionalString isMacbook ''hl.exec_cmd("hypridle")''} + -- hyprpaper 0.8.4 bug: wallpaper= in config is ignored on startup. + -- preload= works so the image is ready; use IPC to assign it. + -- Read the path from hyprpaper.conf at runtime to avoid Nix + -- string-context conflicts with the powerMenu derivation above. + hl.exec_cmd("sleep 2 && hyprctl hyprpaper wallpaper '${if isGaming then "DP-2" else "eDP-1"},'$(grep '^preload=' \"$XDG_CONFIG_HOME/hypr/hyprpaper.conf\" | head -1 | cut -d= -f2-)") end) -- Animation curve and definitions