Change Gnome desktop background based on digikam db

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Change Gnome desktop background based on digikam db

cave-man
Here is a shell script reading into digikam database and choose randomly a Jpeg picture rated at least at 4 and put it to Gnome desktop background.

This script has to be launched into the gnome session of a user having digikam.

Enjoy.
Christian.

#!/bin/bash


# Find Digikam database location

ficconfdigi=~/.kde/share/config/digikamrc
        echo "digikam file: $ficconfdigi"

if [ ! -f $ficconfdigi ];
then
        echo "Fichier Digikam non trouve"
        exit 1
fi

echo "Fichier Digikam trouve"
dir_db=`grep "Database File Path" $ficconfdigi | awk 'BEGIN { FS = "=" }; { print $2 }'`
dir_album=`grep "Album Path" $ficconfdigi | awk 'BEGIN { FS = "=" }; { print $2 }'`

echo "database Dir : $dir_db"
echo "album Dir : $dir_album"

fic_db=`echo $dir_db/digikam4.db`

echo "database fic : $fic_db"

if [ ! -f $fic_d ];
then
        echo "Database Digikam non trouve"
        exit 1
fi

echo "Database Digikam trouve"
cd $dir_db

sql_cmd="from Images, ImageInformation, Albums where imageid=Images.id and rating>=4 and album=Albums.id and format='JPG'";

img_choisie=`sqlite3 digikam4.db "select count(*) $sql_cmd; select relativePath, Images.name $sql_cmd;" |  sed "s/|/\//" | awk 'BEGIN { FS= "="; srand(); }; NR==1 { tata=int(rand()*$1)+1; }; NR==tata { print $1 }'`

echo "img_choisie : $img_choisie"

full_chemin=`echo $dir_album$img_choisie`
echo "img_choisie : $full_chemin"



gconftool-2 -t str --set /desktop/gnome/background/picture_filename "$full_chemin"
gconftool-2 -t str --set /desktop/gnome/background/picture_options "scaled"