Changer de papier peint sans rien faire sous Ubuntu ?

J'aime bien que mon fond d'écran change régulièrement :cool:. Depuis quelques années, j'utilisais (malgré des plantages réguliers :mad:), wallpaper-tray. Mais c'est fini ! Plus développé, il a été supprimé des dépôts :(…  Il existe bien wallpapoz et drapes mais être obligé de spécifier chaque image que je souhaites utiliser, bof :?… Je préfères simplement dire dans quel répertoire sont mes images. Il y a wally que je trouve très bien mais qui utilise les librairies KDE. Je n'ai rien contre KDE mais je suis sous GNOME et installer 260 Mo de dépendances (sans compter l'occupation mémoire) juste pour faire fonctionner wally, pas top :shock:…

ATTENTION : Ce qui suit va vous faire utiliser un "bout de code" fait maison. Il ne contient ni virus, ni malware, ni spyware encore moins de bombe thermonucléaire ou de tarte à la crème ! Malgré tout, ce n'est pas du code "Made in Ubuntu" tel que nous pouvons en trouver dans le dépôts officiels. Donc ne venez pas vous plaindre si votre PC explose, fond 😯 ou je ne sais quoi par le simple fait d'utiliser mon "bout de code" ;).

Ceci étant dit, le problème est plutôt simple :

Dans un répertoire, prendre une image — de façon aléatoire — et
s'en servir comme fond d'écran. Recommencez toutes les X minutes.

C'est clair, non ?

Donc, dans la série "On n'est jamais mieux servit que par soi-même" et "Pourquoi faire compliquer quand on peut faire simple" (et pas l'inverse :D), je me suis écris un petit bout de Perl pour accomplir cette tâche : changewallpaper.pl.

Son fonctionnement est le suivant :

./changewallpaper.pl "~/Chemin/vers/mes papiers peints" temps

Pas de fichier de configuration, juste deux paramètres : Le premier est le chemin vers vos fonds d'écran (entre guillemets) et le second est l'intervalle de temps (en minutes) entre deux changements.

Remarque importante : Sur certains systèmes, un chemin absolu est nécessaire.
De plus, évitez les noms trop éxotiques pour vos noms de fichiers (certains caractères de ponctuation comme # ou ").

Pour que cela fonctionne tout seule, il suffit d'ajouter cette commande dans les programmes au démarrage.

Explications :

  • Placez changewallpaper.pl à la racine de votre dossier personnel.
  • Rendez le exécutable. Soit en allant dans "Raccourcis > Dossier personnel", cliquez droit sur changewallpaper.pl puis "Propriétés", onglet "Permissions" et cochez "Autoriser l'exécution du fichier comme un programme". Ou dans un terminal :
  • Allez dans "Système > Préférences > Applications au démarrage"
  • Cliquez sur "Ajouter"
  • Dans la boite qui est apparue, renseignez "Nom" et "Commande".
  • Pour "Nom", mettez ce que vous voulez. Exemple :
  • Pour "Commande" reprenez la syntaxe vue plus haut en adaptant le répertoire et le temps. Exemple :
  • Enfin, cliquez sur "Ajouter" puis "Fermer"

À la prochaine ouverture de session, votre fond d'écran changera tout seul !

Quelques précisions :

  1. Ce "bout de code" ne fonctionne que sous Ubuntu pas sous Kubuntu :?.
  2. L'ajout et la suppression de fond d'écran dans le répertoire se fait "à chaud", pas besoin de redémarrer le programme;
  3. Les images doivent être aux dimensions de l'écran.

Mon bout de Perl n'est certainement pas la solution idéal mais il remplit sa tâche de façon simple sans installation particulière ni consommation de ressource excessive. J'ai pu l'installer sur une vieille machine avec peu de mémoire et sur mon Dell Mini 9 dont le gain d'espace disque est un combat de tout les jours. Juste un bout de Perl comme je les aime :mrgreen:…

PS : Et dans la série "Je programme avec des moufles", assurez vous d'avoir la version 1.0.2. Une boulette s'est glissé dans les précédentes versions concernant le parcours du répertoire :mad:…

23 réflexions sur « Changer de papier peint sans rien faire sous Ubuntu ? »

  1. Salut, dans la dernière Ubuntu (et la version d’avant il me semble), il y a un wallpaper spécial qui change tout seul. Ce sont les photos de MS dans l’espace.
    Il doit être possible de copier le principe pour d’autre diapo de wallpaper.

  2. J’ai bien vu aussi cet histoire de diaporama dans Ubuntu. Sauf qu’en fouillant un peu, je me suis aperçu qu’il est associé à un fichier XML. Donc pour moi, c’est comme wallpapoz ou drapes : Pas simple d’utilisation…

  3. Bonsoir,

    je ne comprends pas pourquoi mais le script me dit que j’ai 0 image dans le répertoire… pourtant j’en ai mis en jpg et au format de l’écran… je ne sais pas où j’ai pu me planter.
    une idée ?

  4. pour aider 🙂

    laptop:~$ ./changewallpaper.pl « ~/Images/wallpaper/ » 2
    0 images trouvées dans ~/Images/wallpaper

    laptop:~$ cd ~/Images/wallpaper
    laptop:~/Images/wallpaper$ ls
    1 (copie).jpg 1.jpg

  5. Salut,
    super ce p’tit script,
    court précis rapide,
    très bonne initiative ! ^ ^

    Merci.

  6. @Sbskl
    Bon en soi, l’xml n’a pas une structure très complexe. C’est :
    – Afficher Wallpaper 1 pendant x secondes
    – Faire la transition avec Wallpaper 2 pendant x secondes
    – Afficher Wallpaper 2 pendant x secondes
    – etc…

    A la limite, ça pourrait être intéressant de faire un script qui génère ce fichier xml en prenant en input un dossier d’images. Je vais essayer de creuser dans cette direction si j’ai un peu de temps…

  7. Tu as raison, il n’est pas compliqué mais est ce que GNOME le relit en live si tu le modifie ?
    De toute façon, je ne voulez pas exécuter/paramétrer quoi que se soit en ajouter un papier peint mais qu’il soit simplement pris en compte dès qu’il est placé dans le répertoire.

  8. Billet intéressant, je cherchais justement la même chose il y a quelque temps et je me suis tourné vers la solution du script Bash qui génère un fichier XML pour ensuite être directement lu par Gnome.

    Par contre, il faut régénérer le fichier dès qu’il y a une nouvelle image

    Voici mon script bash (attention il n’est peut être pas exempt de faute et il y a très peu de contrôle sur les données entrées, mais il peut servir de piste). Il faut passer le chemin du dossier contenant les images en argument.

    #!/bin/bash
    # Create an animate background, with a XML file linking to all images in a folder

    Filename= »wallpaper.xml »
    Duration= »1795.0″ #1795.0

    cd $1 || exit 1
    tableau=( *.jpg )

    Final= »$1/${Filename} »

    cat>$Final<<EOF

    2010
    05
    01
    00
    00
    00

    EOF

    for i in ${!tableau[@]}; do
    cat>>$Final<<EOF

    $Duration
    ${1}/${tableau[i]/ /\ }

    5.0
    ${1}/${tableau[i]/ /\ }
    ${1}/${tableau[i+1]/ /\ }

    EOF

    done

    echo  » >> $Final

  9. Ya pas cette option par défaut dans gnome? Je suis sur le c…
    C’est le moment d’installer *KDE*, cette option a toujours existé…

  10. Oui mais je ne suis pas fan de KDE. L’interface me fait trop penser à Windows… De toute façon, les gouts et les couleurs… De plus, j’utilise aussi la Netbook Edition ;o)

  11. Sympa ton code mais comme je l’ai dis plus haut, je ne voulais pas exécuter/paramétrer quoi que se soit pour prendre en compte une nouvelle image.

  12. Ping : July 23rd : Cette semaine sur le net…

  13. Merci pour le script
    j’ai placé changewallpaper dans /usr/local/bin et j’utilise nautilus-actions pour lancer le diaporama depuis le clic droit de nautilus
    dans la config nautilus-actions à Path j’ai mis changewallpaper.pl et dans Paramètres %M 60

  14. hello!
    génial le pastbin.com!
    j’avais trouvé ce script bash y’a quelques temps pour changer mon fond d’écran, modifié grâce aux membres du forum pour le mettre à jour et chez moi ça marche toujours depuis :
    http://pastebin.com/GBC94C2r

    Si ça intéresse quelqu’un…

    ++

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *