#!/bin/bash

[ -f $HOME/Startup/ss-on -o -f $HOME/Startup/ss-off ] && rm -f $HOME/Startup/ss-o*
SCREENSAVERFLAG=$(cat $PREFDIR/ss-status 2>/dev/null)
[ ! "$SCREENSAVERFLAG" ] && SCREENSAVERFLAG=true

SCREENSAVERDELAY=$(cat $PREFDIR/timeout 2>/dev/null)
[ ! "$SCREENSAVERDELAY" ] && SCREENSAVERDELAY=10
SCREENSAVERDELAY=$(expr $SCREENSAVERDELAY \* 60)

if [ "$SCREENSAVERFLAG" = "false" ]; then
	SCREENSAVERPARAMS="s off dpms 0 0 0 -dpms"
	cp -f $APPDIR/icons/off.svg $APPDIR/icons/status.svg
else
	SCREENSAVERPARAMS="s $SCREENSAVERDELAY dpms 0 0 $SCREENSAVERDELAY"
	cp -f $APPDIR/icons/on.svg $APPDIR/icons/status.svg
fi

LANG=C xset $SCREENSAVERPARAMS 2>/dev/null
XSET_SCREEN="LANG=C xset $SCREENSAVERPARAMS 2>/dev/null"
touch $HOME/.xset.sh
sed -i '/ s /d' $HOME/.xset.sh
echo "$XSET_SCREEN" >> $HOME/.xset.sh
chmod +x $HOME/.xset.sh

if [ -n "$WAYLAND_DISPLAY" ]; then
	if [ "$SCREENSAVERFLAG" = "true" -a "$SCREENSAVERDELAY" -gt 0 ]; then
		sed -i "s%^XWAYLAND_SCREENSAVER_DELAY=.*%XWAYLAND_SCREENSAVER_DELAY=$SCREENSAVERDELAY%" /etc/environment
	else
		sed -i "s%^XWAYLAND_SCREENSAVER_DELAY=.*%XWAYLAND_SCREENSAVER_DELAY=%" /etc/environment
	fi

	killall swayidle 2>/dev/null
	if [ "$SCREENSAVERFLAG" = "true" -a "$SCREENSAVERDELAY" -gt 0 ]; then
		PUPLOCK="$(grep -- 'puplock' ~/.config/swayidle/config 2>/dev/null)"
		if [ -n "$PUPLOCK" ]; then
			cat << EOF > ~/.config/swayidle/config
timeout $SCREENSAVERDELAY 'sh -c "(puplock &); wlopm --off \*"' resume 'sh -c "wlopm --on \*"'
EOF
		else
			cat << EOF > ~/.config/swayidle/config
timeout $SCREENSAVERDELAY 'sh -c "wlopm --off \*"' resume 'sh -c "wlopm --on \*"'
EOF
		fi
		sleep 1
		swayidle 2>/dev/null &
	else
		rm -f ~/.config/swayidle/config
	fi
fi
