It requires another gtk-theme switcher that allows changing theme from commandline
Code: Select all
#!/bin/sh
set -a
mkdir -p /tmp/gtk-theme/gtk-2.0
cp -f "$HOME/.gtkrc-2.0" "$HOME/.gtkrcbak"
#define working gtk-theme
TMP=`grep -F '/usr/' $HOME/.gtkrc-2.0 | awk -F'"' '{print $2}' | sed -e 's%//%/%g'` #'
TARGET_DIR=`dirname $TMP`
cp $TARGET_DIR/* /tmp/gtk-theme/gtk-2.0
#add our own special gtk-theme-extension with wallpaper definition
echo 'style "icon-style" {
stock["gtk-wallpaper"] = {
{ "stock_wall.png", *, *, *}}}
class "GtkWidget" style "icon-style"' >> /tmp/gtk-theme/gtk-2.0/gtkrc
#build list for <tree> widget
ls -1 /usr/share/backgrounds > /tmp/wallpapers
while read I; do
ITEMS="$ITEMS<item>$I</item>"
done < /tmp/wallpapers
#switch image preview
preview() {
cp -f /usr/share/backgrounds/"$WALLPAPER" /tmp/gtk-theme/gtk-2.0/stock_wall.png
gtk-theme-switch2 /tmp/gtk-theme
}
#define default preview
WALLPAPER='default.jpg'
preview
#gui
export MAIN_DIALOG='<vbox height-request="250">
<pixmap icon_size="6"><input file stock="gtk-wallpaper"></input></pixmap>
<tree>
<label>Wallpapers</label>
<variable>WALLPAPER</variable>
'$ITEMS'
<action signal="button-release-event">preview</action>
</tree>
<hbox><button ok></button></hbox>
</vbox>'
gtkdialog3 -p MAIN_DIALOG
#clean up
rm -rf /tmp/gtk-theme
cp -f "$HOME/.gtkrcbak" "$HOME/.gtkrc-2.0"