wpd script that changes wp every min

This commit is contained in:
Ivan Kirilov Dimitrov 2024-08-01 22:54:56 +02:00
parent a32a8e3777
commit 096d73470d
No known key found for this signature in database
GPG Key ID: 0BDAD4B211C49294
3 changed files with 22 additions and 14 deletions

View File

@ -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
];

View File

@ -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" ];
};
};
};

View File

@ -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 ];