diff --git a/home/david/modules/programs/niri/config.nix b/home/david/modules/programs/niri/config.nix index 2856153..a8efb48 100644 --- a/home/david/modules/programs/niri/config.nix +++ b/home/david/modules/programs/niri/config.nix @@ -34,7 +34,7 @@ polkit-kde-agent = getExe' pkgs.kdePackages.polkit-kde-agent-1 "polkit-kde-agent"; wpctl = getExe' pkgs.wireplumber "wpctl"; - swaybg = getExe pkgs.swaybg; + waypaper = getExe pkgs.waypaper; alacritty = getExe config.programs.alacritty.package; wl-paste = getExe' pkgs.wl-clipboard "wl-paste"; cliphist = getExe' pkgs.cliphist "cliphist"; @@ -386,7 +386,7 @@ in (flag "prefer-no-csd") (spawn-at-startup [waybar]) (spawn-at-startup [swaync]) - (spawn-at-startup [swaybg "-i" "${config.home.homeDirectory}/wallpaper/01.png"]) + (spawn-at-startup [waypaper "--restore"]) (spawn-at-startup [polkit-kde-agent]) (spawn-at-startup [wl-paste "--watch" cliphist "store"]) (spawn-at-startup [wl-clip-persist "--clipboard" "regular"]) diff --git a/home/modules/programs/default.nix b/home/modules/programs/default.nix index e631004..d4fb888 100644 --- a/home/modules/programs/default.nix +++ b/home/modules/programs/default.nix @@ -31,5 +31,6 @@ ./eza.nix ./ion.nix ./alacritty + ./waypaper.nix ]; } diff --git a/home/modules/programs/niri.nix b/home/modules/programs/niri.nix index 4897600..c437c19 100644 --- a/home/modules/programs/niri.nix +++ b/home/modules/programs/niri.nix @@ -26,7 +26,6 @@ in { home.packages = (with pkgs; [ swaynotificationcenter - swaybg kdePackages.polkit-kde-agent-1 wl-clipboard cliphist @@ -65,6 +64,7 @@ in { waybar.enable = true; swaync.enable = true; swaylock.enable = true; + waypaper.enable = true; }; programs.niri = { config = cfg.config; diff --git a/home/modules/programs/waypaper.nix b/home/modules/programs/waypaper.nix new file mode 100644 index 0000000..a683795 --- /dev/null +++ b/home/modules/programs/waypaper.nix @@ -0,0 +1,43 @@ +{ + lib, + config, + pkgs, + ... +}: let + cfg = config.youthlic.programs.waypaper; +in { + options = { + youthlic.programs.waypaper = { + enable = lib.mkEnableOption "waypaper"; + }; + }; + config = lib.mkIf cfg.enable { + home.packages = with pkgs; [waypaper socat mpvpaper]; + systemd.user = { + timers."waypaper" = { + Unit = { + Description = "Set a random wallpaper every 10 minutes"; + }; + Timer = { + Persistent = true; + OnCalendar = "*:0/10"; + }; + Install = { + WantedBy = ["timers.target"]; + }; + }; + services."waypaper" = { + Unit = { + Description = "Set a random wallpaper with waypaper"; + }; + Service = { + Type = "oneshot"; + ExecStart = lib.escapeShellArgs [ + (lib.getExe pkgs.waypaper) + "--random" + ]; + }; + }; + }; + }; +}