#!/bin/sh

ps="`busybox ps`"
echo "$ps" | grep -q -m1 "ROX-Filer -p" && export ROX_DESKTOP=yes
echo "$ps" | grep -q -m1 'pcmanfm --desktop' && export PCMANFM=yes
echo "$ps" | grep -q -m1 'spacefm --desktop' && export SPACEFM=yes

if [ "$PCMANFM" ] ; then
	pcmanfm -w "$1"
fi

if [ "$SPACEFM" ] ; then
	spacefm --set-wallpaper "$1"
fi

if [ "$XDG_SESSION_TYPE" = "wayland" ] ; then
	if type swaybg >/dev/null 2>&1; then
		killall swaybg >/dev/null 2>&1
		startswaybg &
	fi
fi

if [[ $(pidof jwm) ]]; then
	if [ -f $HOME/.config/autostart/spacefm.desktop ]; then
		cat << EOF > $HOME/.jwm/jwmrc-wallpaper
<?xml version="1.0"?>
<JWM>
<Desktops>
	<Background type="solid">black</Background>
</Desktops>
</JWM>
EOF
	else
		cat << EOF > $HOME/.jwm/jwmrc-wallpaper
<?xml version="1.0"?>
<JWM>
<Desktops>
	<Background type="image">$1</Background>
</Desktops>
</JWM>
EOF
		jwm -restart
	fi
fi

! [ "$ROX_DESKTOP" ] && exit

# Determine the path to this application.
CURDIR="`pwd`"
APPDIR=`dirname "$0"`
cd "${APPDIR}"
APPDIR="`pwd`"
cd "${CURDIR}"

if [ "$1" = "-clear" ];then
 cat $HOME/Choices/ROX-Filer/PuppyPin | grep -v '<backdrop' > /tmp/tmp
 mv -f /tmp/tmp $HOME/Choices/ROX-Filer/PuppyPin
 roxfiler -p $HOME/Choices/ROX-Filer/PuppyPin
 echo "[none]" > $HOME/.config/wallpaper/bg_img
 exit
fi

MODE="`cat $HOME/.config/wallpaper/backgroundmode`"
[ "$MODE" = "" ] && MODE="Scale"
[ "$MODE" = "Centred" ] && MODE="Centre"
[ "$MODE" = "Scaled" ] && MODE="Scale"

#legacy support for BK's /usr/sbin/background_reshape
#w482 BK now has script that truncates an image vertically so that it has the right dimensions
#for a widescreen...
if [ -x /usr/sbin/background_reshape ];then #legacy compatibility
 if [ "$MODE" = "Stretch" ];then
  /usr/sbin/background_reshape ${1}
 fi
fi

roxfiler --RPC << EOF
<?xml version="1.0"?>
<env:Envelope xmlns:env="http://www.w3.org/2001/12/soap-envelope">
 <env:Body xmlns="http://rox.sourceforge.net/SOAP/ROX-Filer">
  <SetBackdrop>
   <Filename>$1</Filename>
   <Style>$MODE</Style>
  </SetBackdrop>
 </env:Body>
</env:Envelope>

EOF
