Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Retourner aux forums || Retourner au forum Linux.general

Linux.general : Gnome 2.6 : rotation de fond d'écran

Posté par guix77 () le 26 août 2004
Bonjour,

Voilà ce que j'aimerais faire depuis pas mal de temps : que le fond d'écran de mon bureau gnome 2.6 change automatiquement à intervalle régulier (ex : toutes les 1/2 heures).

A ma connaissance Gnome 2.6 ne propose pas ça en natif. J'ai regardé dans gconf et j'ai trouvé le paramètre qui enregistre le nom du fichier pour le fond d'écran.

Cependant je ne sais pas dans quel fichier ce paramètre est stocké...

Après, ce qu'il faudrait, c'est un script qui serait par exemple lancé par cron, qui regarderait dans un répertoire et choisirait un fichier au hasard... Mais un script en quoi, en Perl ? (je n'ai encore jamais programmé sous Linux)

Ca pourrait être la bonne occasion pour me lancer. Si quelqu'un a déjà fait quelque chose du genre, je suis preneur !

> Lire le message (15 commentaires, moyenne: 1,2).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

ou encore mieux...

Posté par guix77 () le 26/08/2004 à 08:59. (lien). Évalué à 1.

ce thread m'avait pas mal interessé :
https://linuxfr.org/tips/114.html(...)

sauf que je n'ai pas réussi à empêcher Gnome 2.6 de "gérer le fonds d'écran exclusivement"...

En Gtk2 Perl

Posté par g_remy () le 26/08/2004 à 09:00. (lien). Évalué à 2.

Un script perl qui change la valeur grace au module Gnome2::GConf a intervale régulié ;)
Va donc voir : http://gtk2-perl.sourceforge.net/doc/pod/Gnome2/GConf.html(...)

  • [^]Re: En Gtk2 Perl

    Posté par g_remy () le 26/08/2004 à 09:30. (lien). Évalué à 3.

    Voici un debut de programme, mais apparament il faut fait autre chose que juste changer la valeur dans gconf ! Je vous laiss tester :

    #!/usr/bin/perl -w
    
    use	strict;
    use	Gtk2 -init;
    use	Gnome2::GConf;
    
    my	@background = ("/home/g-remy/Wallpaper/Universal/Blue.png",
    		       "/home/g-remy/Wallpaper/Universal/Coal.png",
    		       "/home/g-remy/Wallpaper/Universal/Green.png",
    		       "/home/g-remy/Wallpaper/Universal/Orange.png",
    		       "/home/g-remy/Wallpaper/Universal/Pink.png",
    		       "/home/g-remy/Wallpaper/Universal/Silver.png");
    
    my	$client = Gnome2::GConf::Client->get_default;
    my	$key = "/desktop/gnome/background/picture_filename";
    my	$idx = -1;
    
    sub	change_background
    {
        $idx = -1 if ($idx == scalar(@background) - 1);
        $idx++;
        $client->set($key, { type => 'string', value => $background[$idx] });    
    }
    
    my  $timer= Glib::Timeout->add(500 ,\&change_background);
    
    Gtk2->main;
    

    • [^]Re: En Gtk2 Perl

      Posté par g_remy () le 26/08/2004 à 21:00. (lien). Évalué à 2.

      Bon voici une version qui fonctionne. Il faut lui donner en parametre un intervalle de temps et la repertoire de tes backgrounds. Il va aller les chercher au hasard et te changer ton fond d'écran ;) Exemple :

      ./change_background.pl 10000 /home/g-remy/Wallpaper
      
      Et le code :
      #!/usr/bin/perl -w
      
      use	strict;
      use	Gtk2 -init;
      use	Gnome2::GConf;
      
      die("Usage: ./change_background.pl time wallpapers_path\n") if (scalar(@ARGV) != 2); 
      
      my	$directory = $ARGV[1];
      opendir(DIR, $directory) || die "can’t opendir $directory: $!";
      my	@background = grep { !/^\./ && (/\.png$/ || /\.jpg$/ || /\.bmp$/) } readdir(DIR);
      closedir DIR;
      my	$client = Gnome2::GConf::Client->get_default;
      my	$key = "/desktop/gnome/background/picture_filename";
      my	$idx;
      srand();
      
      sub	change_background
      {
          $idx = int(rand(scalar(@background)));
          $client->set($key, { type => 'string',
      			 value => $directory."/".$background[$idx] }); 
          print "Changing background to: $background[$idx]\n";
      }
      
      my  $timer= Glib::Timeout->add($ARGV[0] ,\&change_background);
      
      Gtk2->main; 
      

python rulez ...

Posté par nicolasr () le 26/08/2004 à 09:03. (lien). Évalué à 1.

tu fais un ch'ti script python qui :
- choisit un fichier au hasard
- modifie la clé gconf correspondant au bg grace à python-gnome (très bons exemples dans la doc python-gnome/gconf/*.py)
- c'est fini ;-)

chbg

Posté par kolter (page perso, ) le 26/08/2004 à 09:08. (lien). Évalué à 1.

y'a un programme qui s'appelle chbg qui fait ça je crois...

M.

  • [^]Re: chbg

    Posté par inz () le 26/08/2004 à 09:22. (lien). Évalué à 3.

    Tout à fait, là :
    http://www.mavit.pwp.blueyonder.co.uk/#chbg-gnome2(...)

    Je l'utilisais en 2.2 mais je sais pas s'il marche encore en 2.6

    • [^]Re: chbg

      Posté par guix77 () le 26/08/2004 à 16:43. (lien). Évalué à 1.

      Je n'arrive pas à m'en servir sous Gnome 2.6. Ce n'est pas étonnant le projet semble être à l'abandon.

      Merci pour les suggestions, je vais tenter en Python histoire de découvrir ce langage, ça me servira peut-être si un jour je dois m'occuper d'un serveur sous Zope !

merci, plus qu'à me lancer...

Posté par guix77 () le 26/08/2004 à 16:41. (lien). Évalué à 1.

chbg j'avais vu, mais je n'arrive pas à le faire marcher sous Gnome 2.6. Par ailleurs le projet semble être à l'abandon.

Merci pour vos suggestions, je vais tenter en Python plutôt, ça ne me fera pas de mal si jamais un jour je dois m'occuper d'un site sous Zope !

  • [^]Re: merci, plus qu'à me lancer...

    Posté par TiTiX (page perso, ) le 26/08/2004 à 17:29. (lien). Évalué à 0.

    Je sais pas si ça peut aider mais j'ai trouver sur le net une commande qui te permet de changer le fond d"ecran sous gnome 2.6 :

    gconftool-2 -t string -s /desktop/gnome/background/picture_filename "foo.jpg"

    reste plus qu'a lui faire choisir un fichier au hasard dans une liste et de le mettre en crontab !
    J'espere que ça peut t'etre utile.

    --
    TiTiX

    • [^]Re: merci, plus qu'à me lancer...

      Posté par guix77 () le 26/08/2004 à 18:52. (lien). Évalué à 1.

      Super !

      Je viens de finir le script Python qui choisit le fichier au hasard, ta commande va bien me servir !

      Sauf que... comment je l'execute à partir du script Python ?

      Je me retrouve ici :

      #!/usr/bin/python
      #
      # blabla... bref j'arrive avec l'adresse du fichier dans la variable Fichier
      print Fichier


      Et maintenant comment je lance gconftool-2 -t string -s /desktop/gnome/background/picture_filename "foo.jpg" ?

      • [+] [^]Re: merci, plus qu'à me lancer...

        Posté par TiTiX (page perso, ) le 26/08/2004 à 20:51. (lien). Évalué à -1.

        Hola !

        Je crois avoir trouvé exactement ce qu'il te faut :
        grotbckgd stands for gnome rotate background. This is a small script that I have written that rotates the Gnome 2 wallpaper using gconftool. It can be run by hand or from a cron job. No needs for a special daemon. It can take wallpapers in directories, or from a file containing the list of wallpapers to use.
        ici pour le site :
        http://users.skynet.be/bk221183/(...)
        ici pour le lien direct vers le script :
        http://users.skynet.be/bk221183/grotbckgd.bz2(...)

        Sinon pour Python il faudrait creuser autour de os.system(tacommande)
        (je ne fournis pas la pelle =p)
        Bonne Soiree !

        --
        TiTiX

        • [^]Re: merci, plus qu'à me lancer...

          Posté par guix77 () le 26/08/2004 à 21:04. (lien). Évalué à 1.

          avec getoutput j'y arrive on dirait...

          merci pour l'aide

          *impatient de voir le résultat*

          • [^]Re: merci, plus qu'à me lancer...

            Posté par guix77 () le 26/08/2004 à 22:15. (lien). Évalué à 1.

            C'est moche mais ça marche...


            #!/usr/bin/python

            # import des modules python necessaires
            import os, re, time, random, commands

            ########################################
            # configuration
            #
            # repertoire ou prendre les images
            Home = "/home/guix/Desktop/photos"
            # extensions a chercher
            File_Match = re.compile('[{jpg}{gif}]$')

            ########################################
            #
            # etape 1 : prendre une image au hasard
            #
            # ---------- fonction de recherche : explore le repertoire et les sous repertoires et dresse une liste
            def Dir_Contents(Item=""):
            Final_List = []
            if Item == '': return ('')
            elif os.path.isdir(Item):
            List = os.listdir(Item)
            for Item2 in List:
            Item3 = Item + "/" + Item2
            Temp_List = Dir_Contents(Item=Item3)
            for Item4 in Temp_List: Final_List.append(Item4)
            elif os.path.isfile(Item):
            if File_Match.search(Item): return([Item])
            else: return([])
            return (Final_List)
            # ---------- fin fonction

            List = Dir_Contents(Home)
            # randomisation du nombre de fois ou random est appelle
            Secs = int(time.strftime('%S')) * int(time.strftime('%H')) * int(time.strftime('%M'))
            for i in range(0,Secs): random.random()

            # obtenir aleatoirement un fichier
            Position = random.randint(0,len(List) - 1)
            Fichier = (List[Position])

            ##############################################
            # etape 2 : modifier le fonds d'ecran de Gnome
            #
            guix = "gconftool-2 -t string -s /desktop/gnome/background/picture_filename '" + str(Fichier) + "'"
            commands.getstatusoutput(guix)

Revenir en haut de page || Retourner aux forums || Retourner au forum Linux.general