Retourner aux forums || Retourner au forum
Linux.general : Gnome 2.6 : rotation de fond d'écran
Posté par guix77 () le 26 août 2004Voilà 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).
ou encore mieux...
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
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;
-
chbg
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...
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)-
[^]Re: merci, plus qu'à me lancer...
Posté par guix77 () le 27/08/2004 à 07:29. (lien). Évalué à 1.(tirage aléatoire du fichier inspiré de http://ftp.traduc.org/doc-vf/gazette-linux/html/2003/092/lg92-C.htm(...) par Mark Nielsen)
-
-
-
-
-
Revenir en haut de page || Retourner aux forums || Retourner au forum


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.