nixcfg/homeManagerModules/desktop/sway/scripts.nix
Aly Raffauf 6b1be071f6
home/desktop: reorg with wayland helpers (#58)
* home/sway: use wayland helpers

* home/sway: reorg

* home/sway: simplify string interpolation

* home/sway: fix faulty helpers

* home/sway: consolidate secondary modules

* home/sway: cleanup

* home/wayland: simplify screenshooter

* home/sway: better random wallpaper handling

* home/sway: move display configuration to hosts

* home/sway: move touch config to hosts

* hosts/petalburg: add sway bindings

* home/wayland/helpers: save screenshots to config.xdg.userDirs.pictures

* home/wayland/helpers: enable mako dnd while slurping

* nix fmt
2024-07-21 23:25:10 -04:00

58 lines
1.6 KiB
Nix

{
config,
lib,
pkgs,
...
}: let
cfg = config.ar.home;
swaymsg = lib.getExe' config.wayland.windowManager.sway.package "swaymsg";
in {
idleD = pkgs.writeShellScript "sway-idled" ''
${lib.getExe pkgs.swayidle} -w \
before-sleep '${lib.getExe pkgs.playerctl} pause' \
before-sleep '${lib.getExe pkgs.swaylock}' \
timeout 240 '${lib.getExe pkgs.brightnessctl} -s set 10' \
resume '${lib.getExe pkgs.brightnessctl} -r' \
timeout 300 '${lib.getExe pkgs.swaylock}' \
timeout 330 '${swaymsg} "output * dpms off"' \
resume '${swaymsg} "output * dpms on"' \
${
if cfg.desktop.sway.autoSuspend
then ''timeout 900 '${lib.getExe' pkgs.systemd "systemctl"} suspend' \''
else ''\''
}
'';
randomWallpaper = pkgs.writeShellScript "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
'';
}