Conky permet de faire apparaitre sur le fond d'écran une multitude d'informations : Calendrier, météo, utilisation CPU/mémoire, espace disque utilisé/libre et j'en passe… Cependant, à configurer, c'est pas top… Donc, pour simplifier la configuration de Conky, il existe un complément qui rend bien des services : CONKY-colors.Ce complément va permettre de mâcher un peu le travail d'installation. Disons que nous allons obtenir une bonne base pour travailler.
Conky
Son installation est très simple puisqu'il se trouve dans les dépôts :
sudo aptitude install conky
Une fois installé, ajoutez conky à "Système > Préférences > Applications au démarrage".
Pour fonctionner, conky utilise le fichier .conkyrc. CONKY-colors va générer ce fichier pour nous.
CONKY-colors
Il n'est pas dans les dépôts. Il faut le récupérer sur GNOME-Look à cette adresse. C'est une archive "tar.gz". Donc, dans un terminal, vous la décompressez dans votre répertoire personnel, vous vous placez dans le répertoire conky_colors :
tar xvf conky_colors.tar.gz cd conky_colors
Installation :
make ./conky-colors --help ./conky-colors make install
Pour la prise en compte des nouvelles polices de caractères :
sudo fc-cache -v -f
Pour générer votre .conkyrc, utilisez les options de conky-colors. Exemple tiré du site de l'auteur :
./conky-colors --theme=gnome-noble --lang=pt --cpu=4 --network --hd=default --pidgin
Cette commande génère un fichier conkyrc dans le répertoire en cours. S'il vous convient, copiez le dans en ~/.conkyrc.
cp conkyrc ~/.conkyrc
Si vous utilisez conkyPhotoRandom, n'oubliez pas de changer la ligne "source=″…″" pour qu'elle corresponde au répertoire contenant vos images.
Ajustements
Maintenant que votre .conkyrc est généré, ouvrez le pour l'ajuster à votre goût. Vous trouverez toute l'aide nécessaire sur le site officiel.
Pour ma part, j'ai rencontré des petits problèmes : CONKY-colors fournit différents scripts (sous .conkycolors/bin) qui rendent de nombreux services mais certains ne fonctionnement pas bien.
Le script "conkyIp"
Etant derrière un proxy, conkyIp ne récupère pas la bonne adresse. J'ai donc remplacé la ligne :
wget http://checkip.dyndns.org/ -q -O - | grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>'
Par :
wget http://whatismyipaddress.com/fr/mon-ip -q -O - | grep -Eo -m 1 '[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}'
Le script "conkyPhotoRandom"
Ce script ne gère pas les espaces dans les noms de répertoires ni dans les noms de fichiers. De plus, je le trouve trop compliqué pour le résultat obtenu. L'original :
#!/bin/bash # # Photo in conky # by helmuthdu and paulvictor source="/home/helmuth/Imagens/Beauty/" photo=/tmp/conkyPhoto.png cd $source number=$(ls -R | wc -l) random=$RANDOM random=${random}%${number} lines=`echo ${random} + 2 | bc` filename=`ls | head -n $lines | tail -n 1` cp $filename $photo picture_aspect=$(($(identify -format %w $photo) - $(identify -format %h $photo))) if [ "$picture_aspect" -lt "100" ] && [ "$picture_aspect" -gt "-100" ]; then convert $photo -thumbnail 175x280 $photo convert $photo -crop 175x125+0+$(( ($(identify -format %h $photo) - 180) / 2)) +repage $photo elif [ "$picture_aspect" -gt "0" ]; then convert $photo -thumbnail 280x175 $photo convert $photo -crop 175x125+$(( ($(identify -format %w $photo) - $picture_aspect*2) / 2))+0 +repage $photo else convert $photo -thumbnail 175x280 $photo convert $photo -crop 175x125+0+$(( ($(identify -format %h $photo) - 180) / 2)) +repage $photo fi # Theme 1 #convert $photo \( +clone -threshold -1 -draw 'fill black polygon 0,0 0,10 10,0 fill white circle 10,10 10,0' \( +clone -flip \) -compose Multiply -composite \( +clone -flop \) -compose Multiply -composite \) +matte -compose CopyOpacity -composite $photo #convert -page +2+3 $photo -matte \( +clone -background black -shadow 50x3+0+0 \) +swap -background none -mosaic $photo # Theme 2 convert -page +2+3 $photo -bordercolor black -border 1 -background none -rotate 0 -background black \( +clone -shadow 50x3+0+0 \) +swap -background none -flatten $photo exit 0
je l'ai donc remplacé par :
#!/bin/bash # # Photo in conky # by Sbskl source="/home/monnom/Images/chemin/vers/mes/images" photo=/tmp/conkyPhoto.png cd "$source" number=$(find . -iname "*.jpg" | wc -l) random=$RANDOM random=${random}%${number} lines=`echo ${random} + 2 | bc` filename=`find . -iname "*.jpg" | head -n $lines | tail -n 1` angle=$RANDOM let "angle%=9" let "angle-=4" cp "$filename" $photo convert $photo -gravity center -resize 360x360^ -extent 360x360 -bordercolor snow -background black -polaroid $angle $photo convert $photo -resize 180x180 -gravity center -background none -extent 180x180 $photo exit 0
Suite à une conversation avec un ami — Merci Casey 😉 — voici une version permettant de gérer plusieurs photos simultanément (qui peuvent être dans des répertoires différents) et la liste des fichiers n'est pas reconstruite à chaque appel mais toutes les heures (paramétrable) . De plus, les photos ne changent pas en même temps :
#!/bin/bash # # Photo in conky # by Sbskl cd "$1" let "expire = 60" let "nombre = `ls /tmp/conkyPhoto*.png | wc -l`" if [ $nombre -gt 1 ] then let "minute = `date +%-M` % nombre + 1" if [ $minute != $2 ] then exit 0 fi fi if [ -e /tmp/conkyPhoto$2 ] # La liste existe-t-elle ? then # Nombre de minutes depuis la derniere création de la liste. let "temps=(`date +%s`-`stat -c%Y /tmp/conkyPhoto$2`)/60" else let "temps=$expire" # Il n'existe pas donc périmé. fi if [ $temps -ge $expire ] # Est ce que ça fait plus d'une heure ? then find . -iname "*.jpg" > /tmp/conkyPhoto$2 fi let "ligne = $RANDOM % `cat /tmp/conkyPhoto$2 | wc -l` + 2" # Une ligne au hasard dans la liste let "angle = $RANDOM % 9 - 4" # Un angle au hasard compris entre -4° et +4° fichier="`cat /tmp/conkyPhoto$2 | head -n $ligne | tail -n 1`" # Fichier correspondant à la ligne choisie photo=/tmp/conkyPhoto$2.png # Image obtenue après transformation # Transformation... # Taille de 360x360 pour ne pas avoir un effet polaroid trop présent convert "$fichier" -gravity center -resize 360x360^ -extent 360x360 -bordercolor snow -background black -polaroid $angle "$photo" # Taille de 180x180 pour ne pas prendre trop de place à l'écran convert "$photo" -resize 180x180 -gravity center -background none -extent 180x180 "$photo" exit 0
par :
${execi 60 ~/.conkycolors/bin/conkyPhotoRandom "/home/monnom/Images/chemin/vers/mes/images" 1}${image /tmp/conkyPhoto1.png -s 180x180 -p 0,295}
Le paramètre "-p" correspond à la position de l'image, adaptez le en fonction de votre configuration.
Si vous voulez une seconde image, ajoutez :
${execi 60 ~/.conkycolors/bin/conkyPhotoRandom "/home/monnom/Images/chemin/vers/dautres/images" 2}${image /tmp/conkyPhoto2.png -s 180x180 -p 0,295}
Notez bien la différence : C'est le numéro qui change. Numéro comme second paramètre de conkyPhotoRandom et comme numéro d'image (conkyPhoto2.png). Vous pouvez ainsi en mettre autant que vous le voulez et vous pouvez utiliser autre chose que des nombres : a, b, c, toto, titi, tata…
Tout est affaire de goût mais l'image que j'obtiens n'est pas nécessairement droite mais toujours carrée avec un bord blanc et légèrement cornée. On l'a croirait grossièrement collé sur une porte de frigo 😉 Merci ImageMagick 😛
Voila à quoi ressemble Conky sur mon système avec mon .conkyrc et les petits ajustements :
Et voici le détail concernant la photo qui change toutes les minutes sur mon système :
Elle n'a pas deux fois la même tête