#!/usr/bin/dash

# wallpaper setter wrapper to support rox icons

setswaywallpaper() {
	swaymsg output "*" bg "$1" fill
}

setx11wallpaper() {
	VARTIMES="$(xrandr | grep -c '[^s]connected.*x')"
	if [ "$VARTIMES" -gt 1 ]; then
		echo "settings wallpaper for $VARTIMES monitors"
		for i in $(seq 0 "$((VARTIMES - 1))"); do
			echo "i $i"
			nitrogen --set-scaled --save --head="$i" "$1"
		done
	else
		echo "settings wallpaper for one monitor"
		nitrogen --set-scaled --save "$1"
	fi
}

setroxwallpaper() {

	# set wallpaper for ROX
	if [ -e ~/.config/rox.sourceforge.net ]; then
		ROXFILE="$(realpath ~/.config/rox.sourceforge.net/ROX-Filer/pb_Default)"

		if ! [ -e "$ROXFILE" ]; then
			#initialize with default file
			echo '<?xml version="1.0"?>
<pinboard>
  <backdrop style="Tiled">'"$(realpath "$1")"'</backdrop>
  <icon x="32" y="32" label="Home">'"$HOME"'</icon>
</pinboard>' >"$ROXFILE"
		else
			if grep -q '<backdrop' "$ROXFILE"; then
				sed -i '/<backdrop /d' "$ROXFILE"
			fi
			sed -i "/<pinboard/a<backdrop style=\"Tiled\">$(realpath "$1")</backdrop>" "$ROXFILE"
		fi

	fi

	if pgrep ROX >/dev/null 2>&1; then
		pkill ROX
		if ! pgrep ROX; then
			rox --pinboard Default
		fi
	fi
}

setwallpaper() {
	# check if on sway
	if "$DESKTOP_SESSION" == "sway" && pgrep sway >/dev/null 2>&1; then
		setswaywallpaper "$1"
		return
	else
		setx11wallpaper "$1"
        if pgrep rox >/dev/null 2>&1; then
                setroxwallpaper "$1"
        fi
	fi
}

setwallpaper "$1"
