Files
nixos/modules/scripts/wallpaper.nix
T

50 lines
1.2 KiB
Nix

{
writeShellApplication,
socat,
swww,
...
}: let
wallpaper1 = ../../assets/wallpaper1.jpg;
wallpaper2 = ../../assets/wallpaper2.jpg;
wallpaper3 = ../../assets/wallpaper3.jpg;
wallpaper4 = ../../assets/wallpaper4.jpg;
wallpaper5 = ../../assets/wallpaper5.jpg;
in
writeShellApplication {
name = "custom-wallpaper";
runtimeInputs = [
socat
swww
];
text = ''
handle() {
case $1 in
workspace*)
str=$1
i=$((''${#str}-1))
workspace="''${str:$i:1}"
case $workspace in
1 | 6)
swww img -t none ${wallpaper1}
;;
2 | 7)
swww img -t none ${wallpaper2}
;;
3 | 8)
swww img -t none ${wallpaper3}
;;
4 | 9)
swww img -t none ${wallpaper4}
;;
5 | 10 | 0)
swww img -t none ${wallpaper5}
;;
esac
;;
esac
}
socat -U - UNIX-CONNECT:"$XDG_RUNTIME_DIR"/hypr/"$HYPRLAND_INSTANCE_SIGNATURE"/.socket2.sock | while read -r line; do handle "$line"; done
'';
}