From 8eed29719d045654c10ad40365e793a57c2d52bb Mon Sep 17 00:00:00 2001 From: Remy Moll Date: Tue, 11 Mar 2025 14:59:46 +0100 Subject: [PATCH] try setting wallpapers once more --- modules/home-manager/hypr/hyprpaper.nix | 73 +++++++++++-------------- 1 file changed, 32 insertions(+), 41 deletions(-) diff --git a/modules/home-manager/hypr/hyprpaper.nix b/modules/home-manager/hypr/hyprpaper.nix index b9202d4..4260f85 100644 --- a/modules/home-manager/hypr/hyprpaper.nix +++ b/modules/home-manager/hypr/hyprpaper.nix @@ -4,23 +4,21 @@ ... }: with lib; let - # wallpapers = builtins.readDir ../../../wallpapers; + # load the wallpapers from the wallpapers directory + wallpapers = builtins.readDir ../../../wallpapers; - # wallpaperBashArray = "(\"${strings.concatStrings (strings.intersperse "\" \"" (map (wallpaper: ../../../wallpapers + "/" + wallpaper) (attrNames wallpapers)))}\")"; - # wallpaperRandomizer = pkgs.writeShellScriptBin "wallpaperRandomizer" '' - # wallpapers=${wallpaperBashArray} - # rand=$[$RANDOM % ''${#wallpapers[@]}] - # wallpaper=''${wallpapers[$rand]} + # script that picks a random wallpaper from the array and sets it as the desktop background + monitor = ""; # leave empty to set the wallpaper on all monitors + + randomizer = pkgs.writeShellScriptBin "wallpaperRandomizer" '' + wallpaper=$(shuf -n 1 -e ${wallpapers[@]}) + hyprctl hyprpaper unload all + hyprctl hyprpaper preload $wallpaper + hyprctl hyprpaper wallpaper "${monitor},${wallpaper}" + ''; - # monitor=(`hyprctl monitors | grep Monitor | awk '{print $2}'`) - # hyprctl hyprpaper unload all - # hyprctl hyprpaper preload $wallpaper - # for m in ''${monitor[@]}; do - # hyprctl hyprpaper wallpaper "$m,$wallpaper" - # done - # ''; in { - # home.packages = [wallpaperRandomizer]; + home.packages = [wallpaperRandomizer]; @@ -30,39 +28,32 @@ in { settings = { ipc = "off"; splash = false; - - preload = [ - "${../../../wallpapers/magicpattern-87PP9Zd7MNo-unsplash.jpg}" - ]; - wallpaper = [ - ",${../../../wallpapers/magicpattern-87PP9Zd7MNo-unsplash.jpg}" - ]; }; }; - # systemd.user = { - # services.wallpaperRandomizer = { - # Install = {WantedBy = ["graphical-session.target"];}; + systemd.user = { + services.wallpaperRandomizer = { + Install = {WantedBy = ["graphical-session.target"];}; - # Unit = { - # Description = "Set random desktop background using hyprpaper"; - # After = ["graphical-session-pre.target"]; - # PartOf = ["graphical-session.target"]; - # }; + Unit = { + Description = "Set random desktop background using hyprpaper"; + After = ["graphical-session-pre.target"]; + PartOf = ["graphical-session.target"]; + }; - # Service = { - # Type = "oneshot"; - # ExecStart = "${wallpaperRandomizer}/bin/wallpaperRandomizer"; - # IOSchedulingClass = "idle"; - # }; - # }; + Service = { + Type = "oneshot"; + ExecStart = "${wallpaperRandomizer}/bin/wallpaperRandomizer"; + IOSchedulingClass = "idle"; + }; + }; - # timers.wallpaperRandomizer = { - # Unit = {Description = "Set random desktop background using hyprpaper on an interval";}; + timers.wallpaperRandomizer = { + Unit = {Description = "Set random desktop background using hyprpaper on an interval";}; - # Timer = {OnUnitActiveSec = "6h";}; + Timer = {OnUnitActiveSec = "6h";}; - # Install = {WantedBy = ["timers.target"];}; - # }; - # }; + Install = {WantedBy = ["timers.target"];}; + }; + }; } \ No newline at end of file