#!/bin/bash

# Pfad für die Hintergrundbilder
bg_path=/home/eholtz/Bilder/dbs/

# Welche Dateiendungen werden genutzt
extensions="jpg jpeg png gif bmp"

# Overlay für das Hintergrundbild. Sollte in der Größe des zu erstellenden
# Hintergrundes vorhanden sein. Bei mir zum Beispiel ein 100 Pixel breiter
# Streifen an der linken Seite, schwarz mit 70% Deckung.
overlay=/home/eholtz/Bilder/bg-overlay.png

# Zielpfad für das Hintergrundbild
bg_dest=/home/eholtz/Bilder/background.jpg

tmpfile1=`mktemp`
tmpfile2=`mktemp`
tmpfile3=`mktemp`

# Alle Hintergrundbilder aus dem Pfad suchen
for ext in $extensions; do
	find $bg_path -iname "*.${ext}" >> $tmpfile3
done

# Eine Datei zufällig herausnehmen
backgroundurl=`sort -R $tmpfile3 | head -n 1`


# Hintergrundbild auffüllen
convert -resize 1920x1200! -filter Point -blur 100x100 $backgroundurl $tmpfile1.bmp

# Gewähltes Bild an Bildschirmgröße anpassen
convert -resize 1920x1200 $backgroundurl $tmpfile2.bmp

# Zusammensetzen. In zwei Schritten :-)
composite -gravity center $tmpfile2.bmp $tmpfile1.bmp $tmpfile3.bmp
composite -gravity center $overlay $tmpfile3.bmp $bg_dest

# Aufräumen
rm -f $tmpfile1 $tmpfile2 $tmpfile3 $tmpfile1.bmp $tmpfile2.bmp $tmpfile3.bmp

# Falls der gnome-bg-changer noch läuft, wird er jetzt gekillt
# Achtung: Nutzernamen anpassen (eholtz)
pids=`ps -ef | grep gconfd-2 | grep libgconf | grep -o "eholtz\ *[0-9]*" | grep -o [0-9]*`

for pid in $pids; do
	kill $pid
done

pids=`ps -ef | grep dbus-daemon | grep pid\ 4 | grep -o "eholtz\ *[0-9]*" | grep -o [0-9]*`

for pid in $pids; do
	kill $pid
done

# Warten, damit die Kills auch einen Moment Zeit haben
sleep 5

# Hintergrundbild neu setzen
/usr/bin/gconftool-2 -t string -s /desktop/gnome/background/picture_filename $bg_dest

exit 0

