nixcfg/homeManagerModules/desktop/sway/randomWallpaper.nix
Aly Raffauf deb36b44e1
Some checks are pending
flakehub / flakehub-publish (push) Waiting to run
git-mirror / gitlab-sync (push) Waiting to run
nix-build / default-build (push) Waiting to run
nix-build / fallarbor-build (push) Waiting to run
nix-build / lavaridge-build (push) Waiting to run
nix-build / mauville-build (push) Waiting to run
nix-build / petalburg-build (push) Waiting to run
nix-build / rustboro-build (push) Waiting to run
nix-check / fmt-check (push) Waiting to run
nix-check / eval-check (push) Waiting to run
code cleanup (#47)
* remove unused variables and nesting issues

* more code cleanups and build fixes

* cleanup sway

* base/plymouth: removed unnecessary font override

* hosts/common: remove unnecessary host checks
2024-07-18 21:05:35 -04:00

50 lines
1.1 KiB
Nix

{
config,
lib,
pkgs,
...
}: let
sway-randomWallpaper = pkgs.writeShellScriptBin "sway-randomWallpaper" ''
kill `pidof swaybg`
OLD_PIDS=()
directory=${config.xdg.dataHome}/backgrounds
if [ -d "$directory" ]; then
while true; do
NEW_PIDS=()
monitor=`${lib.getExe' config.wayland.windowManager.sway.package "swaymsg"} -t get_outputs -p | grep Output | awk '{print $2}'`
for m in ''${monitor[@]}; do
random_background=$(ls $directory/*.{png,jpg} | shuf -n 1)
${lib.getExe pkgs.swaybg} -o $m -i $random_background -m fill &
NEW_PIDS+=($!)
done
if [[ ''${OLD_PIDS[@]} -gt 0 ]]; then
sleep 5
fi
for pid in ''${OLD_PIDS[@]}; do
kill $pid
done
OLD_PIDS=$NEW_PIDS
sleep 895
done
fi
'';
in {
config = lib.mkIf config.ar.home.desktop.sway.randomWallpaper {
home.packages = [
pkgs.swaybg
sway-randomWallpaper
];
wayland.windowManager.sway.config.startup = [
{command = "${lib.getExe sway-randomWallpaper}";}
];
};
}