Vous n'êtes pas identifié(e).
Pages : 1
Bonsoir à tous.
Dans ma quête d'un soft pour faire un diaporama de wallpapers, je n'ai trouvé que quelques logiciels. Mais tous graphiques, donc lourd.
Ici, je vous propose un petit script python fait maison (je suis encore débutant... mais bon).
# -*- coding: utf-8 -*-
from random import randint
from os import system
from time import sleep
def main():
minutes = 10 # temps en minutes avant le prochain changement de background
path = "/home/caly/images/wallpapers/" # chemin vers le dossier où sont les fonds d'écrans
format = ".jpg" # le format des images (convertissez les préalablement avant)
max = 65 # le nombre maximum d'images dans votre dossier
command = "feh --bg-scale"
attente = minutes * 60
liste = [ ]
while True:
aleatoire = randint(1, max)
if not aleatoire in liste:
cmd = "%s '%s%d%s'" % (command, path, aleatoire, format)
liste.append(aleatoire)
system(cmd)
if len(liste) == max:
liste = []
sleep(attente)
if __name__ == '__main__':
main()
Dans le code par défaut, l'image change toutes les 15 minutes.
Le path est le miens, adaptez le à votre configuration... pareil pour le format, j'utilise en général des fonds de WallBase, sinon vous pouvez toujours utiliser GIMP pour changer le format.
Enjoy. :3
Dernière modification par Caly (16-07-2013 15:14:47)
Hors ligne
Bonne idée, j'ai pas compris le while i < 1440: par contre plutot que while True:
Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D
Hors ligne
Hors ligne
Nouvelle version. Celle-ci permet de ne plus avoir deux fois le même fond d'écran dans la même lancée, c'est à dire que vous aurez chaque fond d'écran du dossier jusqu'à ce que toutes les images ont été utilisées, et ensuite on repart pour un tour.
Hors ligne
Joli, dommage que c'est limité au .jpg
Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D
Hors ligne
merci
Joli, dommage que c'est limité au .jpg
j'aurais fait comme ca pour lister les fichiers moi :
liste_fichiers = os.listdir(/home/caly/images/wallpapers/)
for fichier in liste_fichiers:
if (fichier[-4:].lower() == '.jpg') or (fichier[-4:].lower() == '.png'): #on peut en rajouter d'autres
liste_wall.append(fichier)
Script 2 je trouve ca mieux ]:D
#!/usr/bin/python
# -*- coding: utf-8 -*-
from os import lisdir, system
from random import randint
from time import sleep
minutes = 10
path = "/home/caly/images/wallpapers/"
command = "feh --bg-scale"
attente = minutes * 60
max_wall = 56
liste_wall = [ ]
liste_fichiers = listdir(path)
for i, fichier in enumerate(liste_fichiers):
if (fichier[-4:].lower() == '.jpg') or (fichier[-4:].lower() == '.png'): #on peut en rajouter d'autres
liste_wall.append(fichier)
if i > max_wall:
break
del i, liste_fichiers, fichier # suppression des variables inutiles
while 1:
for i, e in enumerate(liste_wall):
cmd = command+" "+path+e #
system(cmd)
sleep(attente)
Dernière modification par manon (17-07-2013 16:43:19)
Hors ligne
Merci manon, on vois directement que tu as plus d'expérience en python que nous merci pour ce retour en tout cas, tu pourras me conseiller en python d’ailleurs que je m'y remettrai sérieusement.
Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D
Hors ligne
if i == -1: break sleep(attente)
Peut être réinitialisé la listewall si il veut pas que ça s'arrête ?
-L'anonymat complet n'existe pas , il faudra vous y faire .
-La plus grande faille informatique ? l'homme sans aucun doute .
Hors ligne
@Losyx -> ??? aprés le break on sort de la boucle for mais on reste dans la boucle while ....
donc rien a faire d'autres.....
Sinon j'ai postée le script hier soir , j'ai oubliée une option de Caly (nombre max de wall)
J'ai donc éditée mon script ;-) avec quelques truc pour consommer moins de mémoires ....
Ps: Pas de soucis IceFox , mais on verra tout ça a la rentrée , les vacances approchent
Hors ligne
En effet j'ai loupé une boucle en regardant ><
une boucle avec une autre condition sinon ? en plus
parce que bon les break
-L'anonymat complet n'existe pas , il faudra vous y faire .
-La plus grande faille informatique ? l'homme sans aucun doute .
Hors ligne
oui surtout que celui ci est inutile :rolleyes:
édité ...
ensuite pour celui-ci
if i > max_wall:
break
pourquoi continuer la boucle quand on peu la stopper ....
if i > max_wall:
pass # ou continue
Dernière modification par manon (17-07-2013 16:54:12)
Hors ligne
Pages : 1