#!/bin/bash
#
# settheme
# called for customized version of gtk-chtheme
# making settings changeable without resorting to recompiling 
# the gtk-chtheme application all the time. 
# Therefore much easier to customize.
#
# Coordinates gtk theme with:
# icewm theme (menu and window decorations)
# Background wallpaper (set in pcmanfm)
# and rox-filer window background
#
# (c)2009-2016 by Paul Sherman for Absolute Linux - GPL3

# if no theme name was passed to us, just walk away...
if [ ! "${1}" ]; then
 exit
fi

# icewm passes theme-name/default.theme
# so we trim the last part off :-)
passed=`echo $1 | cut -f1 -d"/"`

roxfile="$HOME/.gtkrc.mine"
icefile="$HOME/.icewm/theme"
gtkfile="$HOME/.gtkrc-2.0"

case ${passed} in   # the passed theme name

	gray )
		roxline="  bg_pixmap\\[NORMAL\\] = \\\"roxBG_gray.png\\\""
		iceline='Theme="gray/default.theme"'
#		gtkline='include "/usr/share/themes/gray/gtk-2.0/gtkrc"'
		iconline='gtk-icon-theme-name="Tango-gray"'
		;;
	clearlooks ) 
		roxline="  bg_pixmap\\[NORMAL\\] = \\\"roxBG.png\\\""
		iceline='Theme="clearlooks/default.theme"'
#		gtkline='include "/usr/share/themes/Clearlooks/gtk-2.0/gtkrc"'
		iconline='gtk-icon-theme-name="Tango"'
		;;
	warm )
		roxline="  bg_pixmap\\[NORMAL\\] = \\\"roxBG_warm_marble.png\\\""
		iceline='Theme="warm/default.theme"'
#		gtkline='include "/usr/share/themes/warm/gtk-2.0/gtkrc"'
		iconline='gtk-icon-theme-name="Tango-warm"'
		;;
	green )
		roxline="  bg_pixmap\\[NORMAL\\] = \\\"roxBG_green.png\\\""
		iceline='Theme="green/default.theme"'
#		gtkline='include "/usr/share/themes/green/gtk-2.0/gtkrc"'
		iconline='gtk-icon-theme-name="Tango-green"'
		;;
	*    )
		roxline="  bg_pixmap\\[NORMAL\\] = \\\"roxBG_warm_marble.png\\\""
		iceline='Theme="gray/default.theme"'
#		gtkline='include "/usr/share/themes/gray/gtk-2.0/gtkrc"'
		iconline='gtk-icon-theme-name="Tango-gray"'
		;;
esac

# take care of rox-filer background
sed -i "s/$(grep "bg_pixmap\[NORMAL\]" $roxfile | sed -e "s/\[/\\\[/" -e "s/\]/\\\]/" -e 's/"/\\"/g')/$roxline/" $roxfile

# gtk theme
#gtkoldline=`grep "themes" $gtkfile`
#sed -i "s!$gtkoldline!$gtkline!" $gtkfile 2>/dev/null

# icon theme
iconline_old=`grep "gtk-icon-theme" $roxfile`
sed -i "s!$iconline_old!$iconline!" $roxfile 2>/dev/null

# and last (and easiest) set the icewm theme
echo $iceline > $icefile 2>/dev/null

killall -9 ROX-Filer > /dev/null 2>&1
killall -HUP icewm& > /dev/null 2>&1
killall -9 spacefm > /dev/null 2>&1
spacefm --desktop& > /dev/null 2>&1
exit
