Accueil > Linux > Changer de papier peint sans rien faire sous Ubuntu ?

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 :shock: 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:

  1. Xarkam
    22/07/2010 à 20:46 | #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. 22/07/2010 à 21:45 | #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. bob_kane
    22/07/2010 à 23:11 | #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. bob_kane
    22/07/2010 à 23:19 | #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. GeekMan974
    23/07/2010 à 06:35 | #5

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

    Merci.

  6. 23/07/2010 à 08:45 | #6

    J’ai trouvé le problème, récupère de nouveau changewallpaper.pl et ça devrait marcher.

  7. Guillaume
    23/07/2010 à 09:55 | #7

    @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…

  8. 23/07/2010 à 10:34 | #8

    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.

  9. 23/07/2010 à 10:39 | #9

    On n’est jamais mieux servi que par soit même… ou que par KDE ! :p
    Néanmoins, belle initiative à la DIY.

  10. Agoo
    23/07/2010 à 11:46 | #10

    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

  11. Agoo
    23/07/2010 à 11:49 | #11

    Voici le lien, c’est plus simple que de poster le code en commentaire : http://pastebin.com/97aJMKfS

  12. Alexis
    23/07/2010 à 11:50 | #12

    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é…

  13. 23/07/2010 à 12:07 | #13

    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)

  14. 23/07/2010 à 12:10 | #14

    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.

  15. 23/07/2010 à 12:16 | #15

    @Alexis
    En effet, sous KDE au choix du wallpaper on peut choisir un diaporama pour avoir un wallpaper qui change à intervalle régulier.
    Mais contrairement à Wally, c’est limité à un dossier en local.

  16. Thyquest
    23/07/2010 à 16:25 | #16

    Beaucoup plus simple, pour remplacer Wallpaper-Tray, installez DesktopNova.

    Il suffit de rajouter ce lien dans vos sources:

    deb http://ppa.launchpad.net/haliner/ppa/ubuntu lucid main
    deb-src http://ppa.launchpad.net/haliner/ppa/ubuntu lucid main

    ensuite:
    sudo apt-get update
    sudo apt-get install desktopnova

    L’icone se trouvera installe sous Accessoires.

    Cela fonctionne sans problem sous Lucid 10.04

  17. bob_kane
    23/07/2010 à 22:15 | #17

    ça marche nickel. merci beaucoup.

  18. simple utilisateur
    23/07/2010 à 22:21 | #18

    Bonsoir,

    Impeccable!!! Surtout avec la 1.0.2 ;o)

    Merci et bonne soirée.
    Christian

  19. MisB
    23/07/2010 à 22:32 | #19

    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

  20. Sallé
    24/07/2010 à 11:03 | #20

    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…

    ++

  21. Pierre Hanser
    01/08/2010 à 18:24 | #21

    wallpapoz s’initialise très bien avec des répertoires…

  22. didierF
    11/08/2010 à 17:43 | #22

    Très bien ce petit script.
    Merci

  1. 23/07/2010 à 21:24 | #1