From 096d73470d2ad6836fdc17132147f40129f3b61c Mon Sep 17 00:00:00 2001 From: Ivan Kirilov Dimitrov Date: Thu, 1 Aug 2024 22:54:56 +0200 Subject: [PATCH] wpd script that changes wp every min --- default.nix | 1 + home/modules/default.nix | 12 +----------- packages/default.nix | 23 ++++++++++++++++++++--- 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/default.nix b/default.nix index 65c754e..6e9bb99 100644 --- a/default.nix +++ b/default.nix @@ -12,6 +12,7 @@ top@{ inputs, ... }: { bingwp = config.packages.bingwp; screenshot = config.packages.screenshot; cursors = config.packages.cursors; + wpd = config.packages.wpd; }) inputs.sal.overlays.default ]; diff --git a/home/modules/default.nix b/home/modules/default.nix index 4c366dc..eb91498 100644 --- a/home/modules/default.nix +++ b/home/modules/default.nix @@ -442,20 +442,10 @@ toplevel@{ moduleWithSystem, ... }: { timers = { rbingwp = { Timer = { OnCalendar = "*-*-* 10:00:00"; Persistent = true; }; Install = { WantedBy = [ "timers.target" ]; }; }; }; services = { wpd = { - Service = { - Environment = [ "PATH=${pkgs.xdg-user-dirs}/bin:${pkgs.swaybg}/bin" ]; - ExecStart = [ "${pkgs.nushell}/bin/nu -c 'swaybg -i ((xdg-user-dir PICTURES) | path split | path join bg.png)'" ]; - }; - }; - bingwp = { - Service = { Type = "oneshot"; Environment = [ "PATH=${pkgs.xdg-user-dirs}/bin:${pkgs.nushell}/bin" ]; ExecStart = [ "${pkgs.bingwp}/bin/bingwp" ]; }; - }; - rbingwp = { Install = { WantedBy = [ "sway-session.target" ]; }; Unit = { Description = "Restart bingwp and wpd services"; After = "graphical-session-pre.target"; PartOf = "graphical-session.target"; }; Service = { - Type = "oneshot"; - ExecStart = [ "${pkgs.nushell}/bin/nu -c '${pkgs.systemd}/bin/systemctl --user restart bingwp.service; ${pkgs.systemd}/bin/systemctl --user restart wpd.service'" ]; + ExecStart = [ "${pkgs.wpd}/bin/wpd" ]; }; }; }; diff --git a/packages/default.nix b/packages/default.nix index ad7ea28..c022b17 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -8,9 +8,26 @@ top@{ inputs, ... }: { lua-ls.enable = true; }; }; - bingwp = pkgs.writers.writeNuBin "bingwp" '' - http get "https://pic.idimitrov.dev/latest.png" | save -f ([(xdg-user-dir PICTURES), "bg.png"] | str join "/") - ''; + wpd = pkgs.writeShellApplication { + name = "wpd"; + runtimeInputs = with pkgs; [ swaybg xdg-utils fd ]; + text = '' + random_pic () { + bg_dir="$(xdg-user-dir PICTURES)/bg" + fd . --extension png "$bg_dir" | shuf -n1 + } + swaybg -i "$(random_pic)" -m fill & + OLD_PID=$! + while true; do + sleep 60 + swaybg -i "$(random_pic)" -m fill & + NEXT_PID=$! + sleep 5 + kill -9 $OLD_PID + OLD_PID=$NEXT_PID + done + ''; + }; screenshot = pkgs.writeShellApplication { name = "screenshot"; runtimeInputs = with pkgs; [ wl-clipboard xdg-utils ];