{ pkgs, lib, ... }: with lib; let # 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]} # 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]; services.hyprpaper = { enable = true; 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"];}; # 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"; # }; # }; # timers.wallpaperRandomizer = { # Unit = {Description = "Set random desktop background using hyprpaper on an interval";}; # Timer = {OnUnitActiveSec = "6h";}; # Install = {WantedBy = ["timers.target"];}; # }; # }; }