| 1234567891011121314151617181920212223242526272829 | 
							- #!/bin/bash
 
- # set sane defaults
 
- [ -z "$wallpaper_sleep_for" ] && wallpaper_sleep_for="180"
 
- [ -z "$wallpaper_path" ] && wallpaper_path="$(xdg-user-dir PICTURES)/wallpaper"
 
- mkdir -p "$wallpaper_path"
 
- # validate wallpaper path
 
- [ $(find "$wallpaper_path" -type f | wc -l) -gt 0 ] || exit 1
 
- # there can be only one
 
- while [ $(ps aux | grep -v 'grep' | grep -c "$0") -gt 2 ]; do
 
- 	kill $(ps aux | grep -v 'grep' | grep -v $$ | grep "$0" | awk '{print $2}') &> /dev/null
 
- done
 
- # infinitely change wallpaper
 
- while true; do
 
- 	old_pid=$(ps aux | grep swaybg | awk 'NR==1{ print $2 }')
 
- 	swaybg_cmd="swaybg"
 
- 	sway_outputs=( $(swaymsg -t get_outputs | jq -r '.[].name') )
 
- 	for op in "${sway_outputs[@]}"; do
 
- 		wp=$(printf '%q' "$(find $wallpaper_path -type f | sort -R | tail -1)")
 
- 		swaybg_cmd="${swaybg_cmd} -o $op -i $wp -m fit -c \#000000"
 
- 	done
 
- 	eval $swaybg_cmd &
 
- 	sleep 1
 
- 	[ -n "$old_pid" ] && kill $old_pid 2>/dev/null
 
- 	sleep $wallpaper_sleep_for
 
- done
 
 
  |