Avoir les images de l'APOD en fond d'écran (KDE)
J'utilise une série de 2 scripts, ce qui donne une usine à gaz pas propre.
Récupérér les URLs des images
J'utilise ce
script perl (inspiré de
http://mordred.ao.com/rootwindow/) à lancer par cron ou anacron 1 fois par jour, voire moins (car il rattrape son retard). Le lancer plus d'une fois par jour ne sert à rien.
Ce script construit un fichier
csv renfermant la liste des pages de l'APOD contenant des images ainsi que l'url de ces images. Ce script prend 1 paramètre : l'endroit où on veut stocker le fichier CSV. La première fois qu'on le lance, il récupère toutes les URLS depuis le début (Juin 1995).
Pour éviter de charger trop le serveur, on fait une pause de 0 à 3s entre chaque URL, ce qui fait que le script demande environ 1h pour se terminer la première fois. Pour ne pas subir cette looooongue phase d'amorçage, télécharger
ce fichier csv pré-rempli jusqu'à aujourd'hui.
Configurer KDE pour lui dire d'afficher les images
Récupérér
ce script sh (archi pas propre) et le mettre "exécutable". Personnaliser les variables suivantes :
- CSV pour référencer le fichier csv généré par le script précédent
- CACHEDIR pour indiquer le répertoire où les images sont téléchargées.
Le script a pour rôle de récupérer une image de l'APOD par jour choisie aléatoirement, de la redimensionner conformément aux souhaits de KDE et de rajouter l'URL de l'image en bas de l'image. Les images téléchargées sont mises en cache localement pour éviter de trop charger le serveur : on peut les supprimer du
CACHEDIR quand on veut si on désire faire un peu de place sur le disque. Le script rajoute un lien sur le bureau vers la page de l'APOD correspondant à l'image de fond en cours.
Ce script nécessite
imagemagick et
wget.
Ouvrir le centre de contrôle de KDE, Apparence & themes, Background :
- rubrique "Background", cliquer "No picture"
- cliquer "Advanced Options"
- "Add" un nouveau programme :
- "Name" => APOD
- "Command" => /chemin/vers/script/precedent.sh %x %y %f
- "Preview Cmd" => /chemin/vers/script/precedent.sh %x %y %f
- "Executable" => /chemin/vers/script/precedent.sh
- "Refresh time" => 60 min
Cette configuration avec le script précédent changera l'image de fond
une fois par jour même si KDE est configuré pour l'appeler plusieurs fois par jour (ce qui est le cas ici puisque le
Refresh time est de 60min). Si on veut la changer plus d'une fois par jour, il suffit de changer la ligne suivante :
touch -d "today 0:0" $TMPDIR/apod-stamp
Exemple avec changement toutes les 5 heures :
touch -d "5 hours ago" $TMPDIR/apod-stamp
Et voilà !
En bonus : changement immédiat
Une fois par jour c'est bien, mais si l'image ne me plait pas ?... J'exécute le script suivant pour en changer immédiatement :
#! /bin/sh
rm -f $HOME/download/images/apod-stamp
dcop kdesktop KBackgroundIface setBackgroundEnabled false
dcop kdesktop KBackgroundIface setBackgroundEnabled true
On pourra rajouter un bouton dans la barre des tâches qui lance ce script.
En bonus : utiliser le cache de konqueror
Pour accélérer le chargement de la Web page APOD correspondant à l'image de fond (icône "APOD" sur le bureau), on pourra remplacer la ligne :
[ -f $cached ] || wget -q -O $cached $img || exit 1
Par :
[ -f $cached ] || kfmclient copy $img $cached || exit 1
En bonus : économiseur d'écran APOD
On pourra dire à xscreensaver d'exécuter GLSlideshow ou Slideshow, et d'aller chercher ses images dans le répertoire
CACHEDIR (
$HOME/download/images par défaut).