Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails) *** mise à jour 12/10/2014 ***

#1 Le 09/11/2005, à 20:26

Soipacon

[Tuto] Wallpapoz enfin ça marche !!!!

Enfin j'ai trouvé un How To concernant wallpapoz.
C'est trés bien fait et même sans être bilingue c'est facile.
En tout cas chez moi ça marche impec sur Breezy noyau 686.
http://ubuntuforums.org/showthread.php? … =wallpapoz

Hors ligne

#2 Le 13/11/2005, à 10:20

Bob Morane

Re : [Tuto] Wallpapoz enfin ça marche !!!!

Bonjour à tous, je vois qu'une solution a déjà été postée. Marche t'elle pour tout le monde?
J'avais contacté par mail Akbar, le développeur de ce petit programme, je pense avoir une solution qui marche. Qui sait, peut-être même la solution qui marchera chez tout le monde. Elle est en tout cas différente de celle signalée ci dessus.

Voici comment procéder :
1. télécharger les sources de Wallpapoz là http://wallpapoz.sourceforge.net/
2. extraire le tout
3. créer un dossier "bin" malencontreusement oublié dans l'archive. Cela permettra à la commande make de fonctionner
4. ouvrir un terminal et cd /votre/dossier (ou clic droit sur le dossier ouvrir un terminal si vous avez installé le paquet nautilus-open-terminal bien pratique)
5. make
6. sudo sh install.sh /usr/local (si vous voulez installer dans /usr/local)

Vous avez maintenant dans menu-application-accessoire un objet Wallpapoz. Il lance le script de configuration. Celui-ci va créer un fichier caché avec vos réglages. Le truc important est le démon qui va changer vos bureaux. Et c'est là que chez certains çà marche, et parfois pas.

Ne cliquez pas sur "start daemon" dans l'écran GUI, vous ne saurez pas si ca marche. Allez dans votre terminal et tapez daemon_wallpapoz. Si après vous n'avez plus la possibilité d'entrer de commande, c'est que le démon fonctionne. Si par contre vous recevez un message "segmentation fault / erreur de segmentation", il ne fonctionne pas. Etrangement il semble que chez certains il fonctionne, et parfois pas. Akbar n'a pas réussi à corriger cette erreur du démon dans le code source, et il semble qu'elle soit unique à Ubutnu. Mais il a réussi à éviter le problème en recodant le démon en python et non en c++
Vous avez donc besoin du démon en python. Pour le moment il n'est pas sur le site. Akbar portera l'ensemble démon et GUI sur Python plus tard. Pour le moment voici le code du démon en python

## daemon_wallpapoz.py
#
# This file will check desktop continously and change wallpaper 
# with preferences from configuration file

from xml.dom import minidom
import xml
import os
import sys
import array
import time
import threading
import random

## number -- global variable
#
# this is index of wallpaper list of workspaces
# for example: number[0] is index of wallpaper list in first workspace
number = array.array('i')

## delay -- global variable, how many time will wallpaper list thread
#
# has to wait before it manipulate its index
delay = 1.0

## random -- global variable, is wallpaper list thread randomize its index
randomvar = 0

exit_code = 0

## XMLProcessing -- class for processing wallpapoz xml file
class XMLProcessing:

    ## The constructor
    def __init__(self, file):
	try:
	    self.xmldoc = minidom.parse(file)
	except IOError:
	    print "There is no configuration file. Create it first by running wallpapoz!"
	    sys.exit()
	except xml.parsers.expat.ExpatError:
	    print "The configuration file is corrupted. Remove it then create it again with wallpapoz!"
	    sys.exit()
	self.wallpapoz_node = self.xmldoc.childNodes[1]
	self.workspace_node_list = self.wallpapoz_node.getElementsByTagName('workspace')
	self.workspace_num = self.workspace_node_list.length

    ## class method -- get delay time that wallpaper list thread manipulate its index
    def delay(self):
	return self.wallpapoz_node.attributes["interval"].value

    ## class method -- whether the wallpaper list thread randomize its index
    def is_random(self):
	return self.wallpapoz_node.attributes["random"].value

    ## class method -- method for fill list with wallpaper path file
    def fill_list(self):
	worklist = []
	for i in range(self.workspace_num):
	    worklist.append( [] )
	index = -1
	for file in self.workspace_node_list:
	    file_node_list = file.getElementsByTagName('file')
	    index = index + 1
	    for node in file_node_list:
		if node.nodeName == "file":
		    worklist[index].append(node.firstChild.data)
	return worklist

    ## class method -- to know how many workspace we use
    def get_workspace_num(self):
	return self.workspace_num

## System -- class for knowing current desktop and change wallpaper
#
# with calling external program
class System:
    ## class method to know what workspace we are in now
    def current_desktop(self):
	desktop = os.popen('xprop -root _NET_CURRENT_DESKTOP').read()
	return int(desktop[33] + desktop[34])

    ## class method
    def change_wallpaper(self, wallpaper):
	os.system('gconftool-2 -t string -s /desktop/gnome/background/picture_filename ' + "\"" + wallpaper + "\"")

## AsyncIndex -- class for making thread that manipulating index wallpaper list
class AsyncIndex(threading.Thread):
    ## constructor
    def __init__(self, index):
	threading.Thread.__init__(self)
	self.index = index

    ## the function that thread will execute
    def run(self):
	if randomvar == 1:
	    number[self.index] = 0
	    size = len(worklist[self.index])
	    while True:
		number[self.index] = int(random.random() * size)
		time.sleep(delay)
	else:
	    while True:
		number[self.index] = 0
		for i in worklist[self.index]:
		    time.sleep(delay)
		    number[self.index] = number[self.index] + 1

## the main program
if __name__ == "__main__":

    # generate seed for random number
    random.seed()

    # the configuration file
    file = os.environ['HOME'] + "/.wallpapoz/wallpapoz.xml"

    # call the xmlprocessing class to read it
    wallpapozxml = XMLProcessing(file)

    # fill the workspace list
    worklist = wallpapozxml.fill_list()

    # how many workspace we use
    total_workspace = wallpapozxml.get_workspace_num()

    # create the index for wallpaper list thread
    number.fromlist( range( total_workspace ) )

    # create the system class ( to change wallpaper and read current desktop )
    # by calling external program
    system = System()

    # previous workspace
    previous_desktop = -1

    # previous wallpaper list index
    previous_index = -1

    # get the delay time and random preferences
    delay = 60 * float(wallpapozxml.delay())
    randomvar = int(wallpapozxml.is_random())

    # create the thread
    wallpaper_list = []
    for i in range(total_workspace):
	wallpaper_list.append(AsyncIndex(i))
	wallpaper_list[i].start()

    # the daemon that works forever
    while True:
	try:
	    # don't get rush
	    time.sleep(1)

	    # what workspace we are in now?
	    cur_desk = system.current_desktop()

	    # requirement for changing wallpaper
	    # 1. we change workspace
	    # 2. index of wallpaper list change
	    if previous_desktop != cur_desk or previous_index != number[cur_desk]:
		# if we move to workspace that we don't use, just ignore
		if cur_desk >= total_workspace:
		    continue

		# command to change wallpaper
		system.change_wallpaper(worklist[cur_desk][number[cur_desk]])

		# our previous workspace and index of wallpaper list
		previous_desktop = cur_desk
		previous_index = number[cur_desk]

	# ok, we stop this daemon
	except KeyboardInterrupt:
	    # now it's time for the main thread to exit
	    os._exit(0)

7. copier le code python dans un fichier texte. Le nommer daemon_wallpapoz.py
8. sudo cp daemon_wallpapoz.py /usr/local/daemon_wallpapoz.py

lancez le avec la commande python daemon_wallpapoz.py

tout devrait marcher. Vérifiez que vous avez des fonds d'écran différent sur vos différents bureaux. Le démon aura besoin de quelques secondes pour changer correctement vos bureaux. Si tout marche, ajoutez une entrée à votre session pour le lancer à l'ouverture de session.

Hors ligne

#3 Le 17/11/2005, à 11:16

ced_668

Re : [Tuto] Wallpapoz enfin ça marche !!!!

Lorsque je lance le daemon il m'affiche:

File "daemon_wallpapoz.py", line 36
    try:
      ^
IndentationError: expected an indented block

A quoi c'est due? J'ai vraiment tout esayer pour installer le logiciel et je commence a etre un peu desesperer!! sad

Hors ligne

#4 Le 18/11/2005, à 05:12

ced_668

Re : [Tuto] Wallpapoz enfin ça marche !!!!

En fait le text proposer ci dessu est plein d'erreur de copie, faite la meme manip mais recuperer plutot le texte a partir du lien fournit dans le premier post et la ca marche nickel!!!!!!!!!!!!!!!!!! big_smile smile

Hors ligne

#5 Le 25/05/2006, à 21:01

zempa

Re : [Tuto] Wallpapoz enfin ça marche !!!!

A noter qu'avec la version 0.3, wallpapoz est desormais ecrit en python.
Il y a un script d'installation (en python).
Toutefois, il est possible de lancer wallpapoz depuis le repertoire desarchivé sans installation.

voir le fichier install.

#6 Le 25/05/2006, à 23:43

Defursac

Re : [Tuto] Wallpapoz enfin ça marche !!!!

avec la version 0.3 faut-il toujours faire les étapes 7 et 8 proposées par Bob Morane ?
Parce que je l'ai pas fait... et je n'ai pas de wallpapers différents sur mes bureaux. Apparement ça serait alors un démon qui permet de changer de wallpaper toutes les x minutes. Est-ce normal ?
Au fait je suis sur Dapper, avec Aiglx Compiz...mais même en switchant sur Metacity ça ne fonctionne pas !
Merci de votre aide

[EDIT] En fait, les préférences du démon ne m'indiquent qu'un seul bureau... est-ce normal ?

Dernière modification par Defursac (Le 26/05/2006, à 08:21)


Si vous ne partez pas en vacances, mettez un déodorant bleu dans la chasse d'eau ; vous aurez l'impression de faire pipi dans le Pacifique.
Jean-Louis Fournier

Hors ligne

#7 Le 18/01/2007, à 11:17

chizum

Re : [Tuto] Wallpapoz enfin ça marche !!!!

Bonjour,
J'ai installé wallpapoz, la dernière version, mais le seul problème, c'est que je n'ai que 2 bureaux dans le wallpapoz. Donc, je ne peux mettre que 2 papiers peint sur mes 2 bureaux, et les 2 autres ont le papier peint défini pour le 2ème bureau. En clair, aur le 1er bureau j'ai l'image 1.png, sur le 2ème, 3ème et 4ème, le'image 2.png!!
Comment changer cela?
D'avance merci


La vague allègre du présent, sur l'avenir des chimères c'est brisée, pour se répandre librement sur le sable fin du passé...

Hors ligne

#8 Le 18/01/2007, à 15:42

chizum

Re : [Tuto] Wallpapoz enfin ça marche !!!!

Bonjour,
le problème est résolu.:)

1- télécharger wallpapoz sous //wallpapoz.sourceforge.net/temp/wallpapoz-0.3.tar.bz2
2- décompresser le pac dans votre répertoire /home/votre_nom
3- ouvrez un terminal et tapez: $cd nom_dossier_wallpapoz
4- toujours dans le terminal : $ sudo python install.py install
Wallpapoz est installé tongue

Reste une petite manip à effectuer pour lancer le démon au démarrage de la distribution.
Dans le Tableau de bord, rendez-vous dans Système/Préférences/Sessions.
Dans Programmes au démarrage, cliquer sur Ajoutez puis Parcourir. Rechercher et sélectionner daemon_wallpapoz.py dans /usr/bin/, puis cliquer sur Ouvrir.
Valider et Fermer.

Redémarrer votre distribution.
"Après avoir également installé Wallpapoz sous Edgy, le redémarrage ne semble pas indispensable." Moi je l’ai fait car cela ne fonctionnait pas !

Vous trouverez le raccourçi de Wallpapoz dans Applications/Accessoires.
Lancer Wallpapoz.
Important - Avant d’effectuer des modifications dans Wallpapoz:
tuer le démon: cliquer sur Kill Daemon.

Important - Lorsque vous avez terminé vos modifications :
sauvegarder les modifications : cliquer sur Save
redémarrer le démon : cliquer sur Restart Daemon.

Personnellement, j'ai gardé tous les fichiers, afin de pouvoir désinstaller wallpapoz.
Pour ça, tapez dans un terminal: $ sudo python install.py uninstall

Wallpapoz est désinstallé.


La vague allègre du présent, sur l'avenir des chimères c'est brisée, pour se répandre librement sur le sable fin du passé...

Hors ligne

#9 Le 01/09/2007, à 09:57

PatAnnie

Re : [Tuto] Wallpapoz enfin ça marche !!!!

J'ai installé la dernière version : Wallpapoz 0.4 dans sa version française OK

Par contre je n'arrive pas à trouver daemon_wallpapoz.py dans /usr/bin ????

Le terminal répond à : daemon_wallpapoz sans infos sup....

Dois-je mettre un nouveau script au démarrage avec daemon_wallpapoz  options  ????

Merci de votre aide et A+

Hors ligne

#10 Le 10/11/2007, à 12:35

S2S

Re : [Tuto] Wallpapoz enfin ça marche !!!!

lu
pour moi v0.4, et le il ce lance (la commande daemon_wallpapoz reste en attente) mais rien ne ce passe si je n'ouvre pas le gui et click sur restart daemon.
j'utilise les depot officiel. le daemon ce trouve la: /usr/bin/daemon_wallpapoz.
j'ai essayer de le mettre la: /usr/local/daemon_wallpapoz.py sans resultat

le path en dur, rien!y a t'il des argument a passer pour le redemarer par un script ?

---edit---

complete avec le post de 'chizum' en passant par 'parcourir' ca marche, erreur de syntaxe peut etre. la commande fonctionnant pour moi est: /usr/bin/daemon_wallpapoz.py

(j'avais copier 'daemon_wallpapoz' en 'daemon_wallpapoz.py' et pas essayer avec 'daemon_wallpapoz' original sans le '.py' )

smile

Dernière modification par S2S (Le 10/11/2007, à 13:48)


portable: Toshiba Qosmio x500 12Q
fixe: P5N72-T Premium//Core2Quad-Q9550//7950GT//2048DDR2
OS: 10.04 - 10.10 - 11.04, 7
... qui croit tout savoir, n'en saura jamais plus ...

Hors ligne

#11 Le 13/11/2007, à 09:12

Omnisilver

Re : [Tuto] Wallpapoz enfin ça marche !!!!

Hello,

J'ai refondu la page sur le wiki, il y a maintenant toutes les infos dont on pourrait avoir besoin : http://doc.ubuntu-fr.org/wallpapoz

Hors ligne

#12 Le 06/01/2010, à 01:44

MuLoChE

Re : [Tuto] Wallpapoz enfin ça marche !!!!

Pour ceux qui n'ont pas le fichier daemon_wallpapoz.

regarder plutôt vers:

/usr/bin/X11.

A noter qu'il y autant de dossier X11 que de bureau.

choisissez le fichier daemon_wallpapoz le plus recent, c'est à dire le 1er dans le 1er dossier.

arff j'ai du mal désoler il est tard smile

Hors ligne

#13 Le 03/12/2012, à 18:54

michug

Re : [Tuto] Wallpapoz enfin ça marche !!!!

Bonjour à tous

J'ai écrit quelques scripts bash et python qui utilisent «wallpapoz» et me permettent de changer mon fond d'écran toutes les minutes, en affichant une photo sélectionnée aléatoirement dans mon arborescence photo(plus de 33000) et en écrivant une légende concernant la photo, date de création, photographe, sujet de l'album, commentaires, etc.... Ces informations étant écrites dans la photo.
Je suis sur ubuntu 11.10 avec unity et ça fonctionne très bien depuis plusieurs années sur les différentes version de ubuntu. Je l'ai également testé sur 12.04.
Récemment j'ai posté un message sur le forum dans la rubrique «Astuces et scripts» message «Affichage aléatoire des photos en fond d'écran» où je décris mon application.

Si vous êtes intéressé, répondez-moi sur mon message «Affichage aléatoire des photos en fond d'écran»

Hors ligne

Haut de page ↑