Jump to content
ElementaryOS France

Un script pour avoir un diaporama en fond d'écran


Recommended Posts

J' ai cherché sur le forum une solution pour pouvoir changé de fond d'écran automatiquement...

... et j'ai pas trouvé !

 

Puisque sur les autres OS que j'ai testé il y avait déjà cette option de proposé au moment du choix du fond d'écran je me suis dit que

cela serait pas mal de trouvé un petit script qui le fasse et j'ai pas trouvé non plus. Donc j'en ai écrit un et je le partage avec vous  :)  .

 

Le voici :

#!/bin/sh

if [ $# -gt 1 ]
then
    echo
    echo "USAGE : $0 HH:MM:SS"
    echo "IF YOU DON'T DECLARE TIME, IT WILL BE AN HOUR"
    echo
    exit
fi

if [ $# -eq 1 ]
then
    if [ `echo $1 | tr -d [1,2,3,4,5,6,7,8,9,0]` != :: ]
    then
        echo
        echo "$1 NOT LEGAL TIME :  HH:MM:SS"
        echo
        exit
    fi
    TempsAttente=$1
else
    TempsAttente=01:00:00
fi

if [ $TempsAttente = :: ]
then
    TempsAttente=00:30:00
fi

if [ ! -d $HOME/.ImagesDeFond ]
then
    mkdir $HOME/.ImagesDeFond
    echo
    echo "PUT SOME PICTURES IN $HOME/.ImagesDeFond"
    echo
    exit
else
    rmdir $HOME/.ImagesDeFond 2> $HOME/test.tmp
    if [ `cat $HOME/test.tmp | wc -c` -eq 0 ]
    then
        rm $HOME/test.tmp
        mkdir $HOME/.ImagesDeFond
        echo
        echo "PUT SOME PICTURES IN $HOME/.ImagesDeFond"
        echo
        exit
    fi
fi

S=`echo $TempsAttente | cut -d: -f3`
M=`echo $TempsAttente | cut -d: -f2`
H=`echo $TempsAttente | cut -d: -f1`
M=`expr $M \* 60`
H=`expr $H \* 3600`
TempsAttente=`expr $S + $M + $H`

if [ -f $HOME/.ImagesDeFond/ListPictures.txt ]
then
    t=`ls $HOME/.ImagesDeFond | wc -l`
    t=`expr $t - 1`
    if [ $t -ne `cat $HOME/.ImagesDeFond/ListPictures.txt | wc -l` ]
    then
        rm -f $HOME/.ImagesDeFond/ListPictures.txt
    fi
fi

if [ ! -f $HOME/.ImagesDeFond/ListPictures.txt ]
then
    ls $HOME/.ImagesDeFond | sed 's:\(.*\):'$HOME'/.ImagesDeFond/\1:' > $HOME/.ImagesDeFond/ListPictures.tmp
    cat $HOME/.ImagesDeFond/ListPictures.tmp | grep -v "ListPictures.tmp" > $HOME/.ImagesDeFond/ListPictures.txt
    rm $HOME/.ImagesDeFond/ListPictures.tmp
fi

n=`cat $HOME/.ImagesDeFond/ListPictures.txt | wc -l`
n=`expr $n - 1`
i=0
taille=`du -b $HOME/.ImagesDeFond | tr "\t" ! | cut -f1 -d"!"`


while [ $i -eq 0 ]
do
    fondec=`head -n1 $HOME/.ImagesDeFond/ListPictures.txt`
    tail -n $n $HOME/.ImagesDeFond/ListPictures.txt > $HOME/.ImagesDeFond/toto.tmp
    echo $fondec >> $HOME/.ImagesDeFond/toto.tmp
    mv $HOME/.ImagesDeFond/toto.tmp $HOME/.ImagesDeFond/ListPictures.txt
    if [ $taille -ne `du -b $HOME/.ImagesDeFond | tr "\t" ! | cut -f1 -d"!"` ]
    then
        i=1
        rm -f $HOME/.ImagesDeFond/ListPictures.txt
    fi
    gsettings set org.gnome.desktop.background picture-uri "file://$fondec"
    sleep $TempsAttente
done

DiapoFondec.sh $1

Pour l'utiliser: 

  • il faut le copier puis le coller dans scratch ( ou vim , ou ...) 
  • le nommer DiapoFondec.sh
  • le placer dans le dossier bin de votre home ( créé le si vous en avez pas puis déconnecter vous et reconnecter vous pour mettre a jour le PATH)
  • le rendre executable, ouvrir un terminal et entrer ligne par ligne les commandes suivantes:
$ cd ~/bin/
$ chmod u+x DiapoFondec.sh

A la première exécution sans erreur d'argument ce script va créer le dossier .ImagesDeFond (caché) dans lequel il va vous demander de placer les images que vous souhaitez avoir comme fond d'écran.

 

Une fois que vous l'avez fait il ne vous reste qu'a le réexecuter  :)  . Par exemple :

$ DiapoFondec.sh 00:15:00

Ici votre fond d'écran va changer toutes les 15 minutes.

 

Petit + : Si vous voulez qu'il s'execute au démarrage, alors dans un terminal executez cette commandes :

$ gnome-session-properties

et sur la fenêtre qui s'ouvre cliquer sur "Ajouter" puis dans la case commandes rentrez "DiapoFondec.sh <votreTemps>" ( vous pouvez aussi donner un nom et écrire un commentaire) et enfin cliquer sur "Ajouter".

 

PS: Si il est lancé sans probleme ce script ne s'arrete pas, il faut donc utiliser "Ctrl+c" pour l'arreter.

 

J'espere que ce petit tuto vous a plu, n'hésitez pas à me poser des questions si vous avez besoin !

Link to comment
Share on other sites

Merci pour ce script intéressant.

Sur mon Lubuntu, j'ai un fond d'écran qui peut changer toutes les 10, 30 sec, 1 h. 3 h (tout est possible). Il va chercher les images sur Google selon des mots-clés ou des thèmes, ou autres... Je vais y retourner pour retrouver des infos et le nom de l'appli. Bon, ceci dit, j'en ai eu vite marre des images qui collaient pas avec le thème ou avec la taille de mon écran... Je l'ai peut-être désinstallé... Moment please, je fais un aller-retour sur Ubuntu...

 

>>> quelques temps plus tard...

  • J'AI TROUVÉ: c'est VARIETY (en Python)...:

Variety changes the desktop wallpaper regularly, using local or automatically downloaded images. Variety sits conveniently as an indicator in the panel and can be easily paused and resumed. The mouse wheel can be used to scroll wallpapers back and forth. Variety can fetch wallpapers from Flickr, Wallbase.cc, Wallpapers.net, NASA Astronomy Picture of the Day, Desktoppr.co. Media RSS feeds from Picasa, deviantART or any other place are also supported.

sudo add-apt-repository ppa:peterlevi/ppa
sudo apt-get update
sudo apt-get install variety
 
elementary OS : Variety works OK on elementary OS with Pantheon. To install use the instructions for Ubuntu: http://peterlevi.com/variety/how-to-install/
Edited by nettlebay
Link to comment
Share on other sites

  • 2 months later...

Oula ça date !!

Je rajoute un petit message pour dire qu'il me semble plus intéressant de faire des petits script simple comme celui que je vous propose que de choisir des programmes existant ( comme variety ;) ) parceque la au moins on sait ce qui se passe dans la machine (ou du moins une partie).

Si vous avez d'autre soucis et que vous pensez qu'il serait possible de les régler par un (ou plusieurs) script n'hésiter pas j'essairai de le résoudre !

Je vous souhaite une bonne année,

Si vous utiliser mon script, si vous l'avez amélioré, ou si vous etes dans n'importe quel autre cas alors envoyer moi un petit message de retour car ça me ferait très plaisir ! =)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...