Derrière ce magnifique titre se cache une réjouissante réalité. Non, la
Corée du Nord n’est pas redevenue un pays démocratique (elle prévoit
toujours de trouver un prétexte dans une quelconque action de ses
voisins du sud pour aller péter la gueule à leurs ennemis Japonais, à
coup de missile longue portée). Non, les Américains n’ont pas résolu le
problème que pose les terroristes islamiques (ils y travaillent,
semble-t-il plus efficacement que ces huit dernières années,
c’est-à-dire par le dialogue, mais ils en sont encore loin). Non,
l’évènement qui me fait écrire ce billet est tout autre, bien plus
important : j’ai vaincu le bug de la division approximée à un entier en
python dans un de mes scripts \o/.
Ouais, ok, c’est une bidouille ridicule qui m’a sorti de ce
« bourbier », ça m’a pris deux minutes à trouver, et ça n’a sauvé la vie
de personne. Néanmoins, je me plais à croire que j’ai sauvé le monde et
que mon action héroïque répandra le bonheur sur terre pour les
générations futures.
Mais pourquoi je vous parle de ça, déjà ? Ah, oui, c’est parce que je
suis tombé sur un billet de Nicolargo, sur le Planet Libre. Il y
présente un logiciel baptisé Desktop Drapes qui permet de changer
automatiquement son fond d’écran à intervalles réguliers en en
choisissant un au hasard dans un dossier. Gros problèmes : il tourne en
permanence (et donc prend de la ram), il ne gère qu’un seul écran, et il
est codé en Mono (Ah, non, pas ça, c’est mal le Mono).
N’ayez crainte, ce n’est pas la fin du monde, et j’ai une magnifique
solution pour vous : DuallPaper, le gestionnaire de wallpaper pour les
dual screen.
Disponible dans toutes les bonnes crèmeries, enfin, au moins dans la mienne, ici.
On configure rapidement les quelques options, on le rend exécutable, on
ajoute un cron, et hop, on n’en parle plus :-) .
Ce script tourne sur mon ordi depuis quelques semaines déjà. En voyant
le billet de Nicolargo, ça m’a motivé pour ajouter quelques
améliorations et pour nettoyer le code. J’ai ajouté une gestion d’une
erreur récurrente (PIL ne gère pas les images PNG entrelacées, ça
faisait planter le script. Maintenant il gère l’erreur en envoyant un
message d’erreur et en choisissant une autre image), activé une option
(pour maintenir le ratio d’une image, histoire d’éviter d’avoir des
images 4:3 écrasées dans un widescreen, ou inversement), et j’ai
condensé le code et mis des commentaires utiles.
Il n’y a pas de GUI, mais c’est léger, c’est rapide, ça ne prend pas de
ram (sauf pendant dix secondes, quand le cron le lance), et c’est en
python (tellement mieux que le Mono).
Je ne sais pas si ça sera jamais utile à qui que ce soit d’autre que
moi, mais je pense que ça pourrait inspirer d’autres petits codeurs en
herbe qui ont des besoins similaires.