[Screenshots] Épatez la galerie, présentez votre bureau!
- chipster
- Maître du Kyudo
- Messages : 2063
- Inscription : ven. 11 août 2006, 22:25
- Localisation : Saint-Étienne (42)
- Contact :
Re: [Screenshots] Épatez la galerie, présentez votre bureau!
Avec les infos de @onyx67, j'ai du refaire le programme lua en python car il merdait sec (segfault de conky entre autre)
Voici le résultat lorsque les scripts sont lancés :
Voici le résultat lorsque les scripts sont lancés :
Re: [Screenshots] Épatez la galerie, présentez votre bureau!
@ chipster:
Peux-tu poster le script pour récupérer les images satellites?
J'ai déjà tenté un conky du même style que le tien (conky central), mais j'ai lamentablement échoué à causes d'un soucis de police. Les polices utiliser par conky sont bien celles du répertoire
Tant qu'à faire, tu peux poster le .conkyrc?
Merci
Peux-tu poster le script pour récupérer les images satellites?
J'ai déjà tenté un conky du même style que le tien (conky central), mais j'ai lamentablement échoué à causes d'un soucis de police. Les polices utiliser par conky sont bien celles du répertoire
/usr/share/fonts
(j'avoue mes lacunes en la matière )Tant qu'à faire, tu peux poster le .conkyrc?
Merci
"La complication est un effet de la simplicité mal acquise"
Intel i5-2320; Nvidia GeForce GT 520; ATA Hitachi 2To; ArchLinux-KDE
Intel i5-2320; Nvidia GeForce GT 520; ATA Hitachi 2To; ArchLinux-KDE
- chipster
- Maître du Kyudo
- Messages : 2063
- Inscription : ven. 11 août 2006, 22:25
- Localisation : Saint-Étienne (42)
- Contact :
Re: [Screenshots] Épatez la galerie, présentez votre bureau!
C'était prévu que je les publie sauf que j'ai mon petit qui m'a pas mal occupé donc je n'ai pas pu
Attention il faut python3 et python3-imaging. J'avais fait les mêmes en perl qui sont sur le fofo
Imagesat.py
imagesat.conky
imagemarine.conky
heurecentrale.conky
Attention il faut python3 et python3-imaging. J'avais fait les mêmes en perl qui sont sur le fofo
Imagesat.py
Code : Tout sélectionner
#!/usr/bin/python
# jeu. 09 août 2012 à 10h40
# python3-imaging
# -*- coding: utf-8 -*-
from urllib.request import urlopen
from Image import ANTIALIAS
from Image import open as open_image
from time import time
from os.path import join, exists, isfile, split
from os import stat, access, R_OK, W_OK
from sys import stderr, argv, exit
from getopt import getopt, GetoptError
############
# Définition de la classe Var
########################
class Var :
def __init__(self):
self.url = str()
self.picture = str()
self.emplacement = str()
self.cible = str()
self.chaine = str()
self.page = str()
self.box = list()
self.resize = list()
self.time = int()
############
# Définition des fonctions
########################
def help():
print("Usage : {0} [options]".format(argv[0]))
print(" Options :")
print(" -c : Découpage AxBxLxH où A est le décalage x, B le décalage y, L et H la longueur et la hauteur à découper")
print(" -h : Cette aide")
print(" -i : Information sur la chaine à rechercher")
print(" -o : Emplacement de sauvegarde ex.: /tmp/image_sat.jpg")
print(" -p : Page internet où trouver l'url d'une image")
print(" -r : Redimensionnement de l'image AxB")
print(" -t : Temps avant de pouvoir retélécharger l'image initiale")
print(" -u : L'adresse où télécharger l'image\n")
print(" Exemple 1 :\n {0} -c 0x110x1274x657 -r 400x220 -o /tmp/image_sat.jpg -u http://oiswww.eumetsat.org/IPPS/html/latestImages/EUMETSAT_MSG_RGB-naturalcolor-westernEurope.jpg -t 3600\n".format(argv[0]))
print(" Exemple 2 :\n {0} -c 0x0x960x528 -r 400x219 -o /tmp/image_marine.jpg -p http://marine.meteoconsult.fr/carte/meteo-marine/frontologie_0.php#etiquette -i http://images.meteoconsult.fr/image/mc-france/cartes/frontologie/produits/ -t 3600".format(argv[0]))
exit(1)
def isNumber(number):
try :
a = int(number)
return a
except ValueError:
stderr.write(number + " n'est pas un nombre valide !\n")
exit(1)
def recup_arg(var, arg):
if len(arg) < 2:
help()
else:
try:
# c : crop
# h : help
# i : information of search string
# o : save file
# p : page to search url image
# r : resize
# t : time
# u : url
opts, args = getopt(arg[1:], "c:hi:o:p:r:t:u:")
except GetoptError as err:
stderr.write(err + "\n")
help()
for o, a in opts:
if o == "-c":
var.box = [isNumber(val) for val in a.split("x")]
elif o == "-h":
help()
elif o == "-i":
var.chaine = a
elif o == "-o":
(var.emplacement, var.cible) = split(a)
if not (access(var.emplacement, R_OK) and access(var.emplacement, W_OK)):
stderr.write("Vous n'avez pas les droits sur : " + var.emplacement + "\n")
exit(1)
elif o == "-p":
var.page = a
elif o == "-r":
var.resize = [isNumber(val) for val in a.split("x")]
elif o == "-t":
var.time = isNumber(a)
elif o == "-u":
(var.url, var.picture) = split(a)
def download():
sav_file = join(var.emplacement, var.picture)
# Téléchargement de l'image
img = urlopen(join(var.url, var.picture))
# Sauvegarde de l'image
with open(sav_file, "wb") as source:
source.write(img.read())
def crop():
sav_file = join(var.emplacement, var.picture)
# On ouvre l'image que l'on vient de télécharger
img_source = open_image(sav_file)
# Exemple: On découpe l'image en se plaçant à 0 pixel de la gauche et 110 à partir du haut. Ensuite on dessine un cadre de 1274x657. Pour finir, on redimensionne l'image avec de l'antialias
img_cible = img_source.crop(var.box).resize((var.resize), ANTIALIAS)
# On enregistre la nouvelle image
img_cible.save(join(var.emplacement, var.cible))
def search_url():
if var.page != str():
dl = urlopen(var.page).read().decode('utf-8', 'ignore')
for lecture in dl.split(" "):
if var.chaine in lecture:
(var.url, var.picture) = split(lecture.split("=")[1][1:-1])
return
############
# Début du programme
########################
if __name__ == "__main__":
# Initialisation des variables
var = Var()
# Récupération des arguments de la ligne de commandes
recup_arg(var, argv)
# On regarde si la photo existe déjà
path_thumbnail = join(var.emplacement, var.cible)
if exists(path_thumbnail) and isfile(path_thumbnail):
# Si elle existe, on regarde si elle date de moins d'une heure
now = time()
time_pic = stat(path_thumbnail)[8]
if time_pic + var.time <= now:
# On cherche l'url d'une image sur une page
search_url()
# on télécharge la nouvelle photo
download()
# On découpe l'image
crop()
else:
# On cherche l'url d'une image sur une page
search_url()
# On télécharge la photo
download()
# On découpe l'image
crop()
Code : Tout sélectionner
#Fonctionnement de conky
total_run_times 0 #Temps en secondes ; 0 = toujours actif
background yes #Pour que conky tourne en arrière plan ; no = pour les tests
#Mémoire
double_buffer yes #Éviter le clignotement
no_buffers yes #Soustraire les mémoires tampons de la mémoire utilisée
text_buffer_size 1024 #Taille du cache pour le texte
#Affichage
out_to_console no #Affiche le texte sur la sortie standard
update_interval 10 #Taux de rafraîchissement de la fenêtre (s)
#Fenêtre conky
alignment bottom_left #Alignement
#---
gap_x 2 #Écart avec le bord gauche / droit
gap_y 26 #Écart avec le bord haut / bas
#---
draw_shades no #Afficher les ombres
draw_outline no #Afficher les contours de fenêtre
draw_borders yes #Afficher des contours autour des blocs de texte
border_width 2 #Largeur du contour
border_inner_margin 0 #Largeur des marges
#---
own_window yes #Utiliser sa propre fenêtre
own_window_type override #Type de fenêtre ; normal / override / desktop
# own_window_type normal #Type de fenêtre ; normal / override / desktop
own_window_transparent yes #Pseudo transparence
# own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager # définition du type
own_window_class Conky
#Mise en forme
use_xft yes #Utiliser Xft (polices lissées etc)
xftalpha .1 #Utiliser Xft
override_utf8_locale yes #Force l'UTF8
uppercase no #Tout le texte en majuscule
use_spacer right #Ajoute des espaces après certains objets (qu'avec des polices fixes)
#---
xftfont Monospace:size=10 #Police par défaut
#---
default_bar_size 30 3 #Barre par défaut (longeur hauteur)
# stippled_borders 5 #Taille des pointillés
#Couleurs
default_color 000000 #Couleur par défaut
default_shade_color 333333 #Couleur des ombres
default_outline_color black #Couleur des contours
#---
#color1 000000 #Gris foncé
#color2 DDDDDD #Gris clair
#---
short_units yes #Unités courtes
pad_percents 0 #Unité à 2 décimales
color1 333333 # Gris
#color2 006FC0 # Bleu
#color3 8AD749 # Vert
color4 EECE01 # Jaune
color5 F8981F # Orange
#color6 F80E27 # Rouge
color2 3465A4 # Bleu
color3 6FEF22 # Vert
color5 EF7E22 # Orange
color6 BD1B5E # Rouge
minimum_size 385 190
maximum_width 400
TEXT
${exec python /home/julien/.config/openbox/Imagesat.py -c 0x110x1274x657 -r 400x220 -o /tmp/image_sat.jpg -u http://oiswww.eumetsat.org/IPPS/html/latestImages/EUMETSAT_MSG_RGB-naturalcolor-westernEurope.jpg -t 3600}${image /tmp/image_sat.jpg -p -5,-5 -n -s 400x220}
Code : Tout sélectionner
#Fonctionnement de conky
total_run_times 0 #Temps en secondes ; 0 = toujours actif
background yes #Pour que conky tourne en arrière plan ; no = pour les tests
#Mémoire
double_buffer yes #Éviter le clignotement
no_buffers yes #Soustraire les mémoires tampons de la mémoire utilisée
text_buffer_size 1024 #Taille du cache pour le texte
#Affichage
out_to_console no #Affiche le texte sur la sortie standard
update_interval 10 #Taux de rafraîchissement de la fenêtre (s)
#Fenêtre conky
alignment bottom_left #Alignement
#---
gap_x 2 #Écart avec le bord gauche / droit
gap_y 224 #Écart avec le bord haut / bas
#---
draw_shades no #Afficher les ombres
draw_outline no #Afficher les contours de fenêtre
draw_borders yes #Afficher des contours autour des blocs de texte
border_width 2 #Largeur du contour
border_inner_margin 0 #Largeur des marges
#---
own_window yes #Utiliser sa propre fenêtre
# own_window_type override #Type de fenêtre ; normal / override / desktop
# own_window_type normal #Type de fenêtre ; normal / override / desktop
own_window_transparent yes #Pseudo transparence
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager # définition du type
own_window_class Conky
#Mise en forme
use_xft yes #Utiliser Xft (polices lissées etc)
xftalpha .1 #Utiliser Xft
override_utf8_locale yes #Force l'UTF8
uppercase no #Tout le texte en majuscule
use_spacer right #Ajoute des espaces après certains objets (qu'avec des polices fixes)
#---
xftfont Monospace:size=10 #Police par défaut
#---
default_bar_size 30 3 #Barre par défaut (longeur hauteur)
# stippled_borders 5 #Taille des pointillés
#Couleurs
default_color 000000 #Couleur par défaut
default_shade_color 333333 #Couleur des ombres
default_outline_color black #Couleur des contours
#---
#color1 000000 #Gris foncé
#color2 DDDDDD #Gris clair
#---
short_units yes #Unités courtes
pad_percents 0 #Unité à 2 décimales
color1 333333 # Gris
#color2 006FC0 # Bleu
#color3 8AD749 # Vert
color4 EECE01 # Jaune
color5 F8981F # Orange
#color6 F80E27 # Rouge
color2 3465A4 # Bleu
color3 6FEF22 # Vert
color5 EF7E22 # Orange
color6 BD1B5E # Rouge
minimum_size 385 190
maximum_width 400
TEXT
${exec /home/julien/.config/openbox/Imagesat.py -c 0x0x960x528 -r 400x219 -o /tmp/image_marine.jpg -p http://marine.meteoconsult.fr/carte/meteo-marine/frontologie_0.php#etiquette -i http://images.meteoconsult.fr/image/mc-france/cartes/frontologie/produits/ -t 3600}${image /tmp/image_marine.jpg -p -5,-5 -n -s 400x219}
Code : Tout sélectionner
#Fonctionnement de conky
total_run_times 0 #Temps en secondes ; 0 = toujours actif
background yes #Pour que conky tourne en arrière plan ; no = pour les tests
#Réglages système
cpu_avg_samples 1 #Nb d'échantillons pour calculer la moyenne d'utilisation CPU
net_avg_samples 2 #Nb d'échantillons pour calculer la moyenne d'utilisation CPU
#Mémoire
double_buffer yes #Éviter le clignotement
no_buffers yes #Soustraire les mémoires tampons de la mémoire utilisée
text_buffer_size 1024 #Taille du cache pour le texte
#Affichage
out_to_console no #Affiche le texte sur la sortie standard
update_interval 1 #Taux de rafraîchissement de la fenêtre (s)
#Fenêtre conky
alignment bottom_left #Alignement
#---
minimum_size 1440 0 #Taille minimum (px) ; largeur / hauteur
#maximum_width 150 #Largeur maximum (px)
#---
gap_x 5 #Écart avec le bord gauche / droit
gap_y 400 #Écart avec le bord haut / bas
#---
draw_shades no #Afficher les ombres
draw_outline no #Afficher les contours de fenêtre
draw_borders no #Afficher des contours autour des blocs de texte
border_width 1 #Largeur du contour
border_inner_margin 1 #Largeur des marges
#---
own_window yes #Utiliser sa propre fenêtre
own_window_type override #Type de fenêtre ; normal / override / desktop
own_window_transparent yes #Pseudo transparence
# own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager # définition du type
#Mise en forme
use_xft yes #Utiliser Xft (polices lissées etc)
xftalpha .1 #Utiliser Xft
override_utf8_locale yes #Force l'UTF8
uppercase no #Tout le texte en majuscule
use_spacer right #Ajoute des espaces après certains objets (qu'avec des polices fixes)
#---
xftfont Monospace:size=10 #Police par défaut
#---
default_bar_size 30 3 #Barre par défaut (longeur hauteur)
stippled_borders 5 #Taille des pointillés
#Couleurs
default_color FFFFFF #Couleur par défaut
default_shade_color 333333 #Couleur des ombres
default_outline_color black #Couleur des contours
#---
color1 000000 #Gris foncé
color2 DDDDDD #Gris clair
#---
short_units yes #Unités courtes
pad_percents 2 #Unité à 2 décimales
#avoid flicker
double_buffer yes
#own window to run simultanious 2 or more conkys
#own_window_type normal
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
xftfont monoalphabet:pixelsize=150
##############################################
# Output
##############################################
TEXT
$alignc[ ${time %H:%M} ]
${voffset -105}${font monoalphabet:size=45}$alignc${time %A %d %B}
Re: [Screenshots] Épatez la galerie, présentez votre bureau!
Cool, merci beaucoup
"La complication est un effet de la simplicité mal acquise"
Intel i5-2320; Nvidia GeForce GT 520; ATA Hitachi 2To; ArchLinux-KDE
Intel i5-2320; Nvidia GeForce GT 520; ATA Hitachi 2To; ArchLinux-KDE
- chipster
- Maître du Kyudo
- Messages : 2063
- Inscription : ven. 11 août 2006, 22:25
- Localisation : Saint-Étienne (42)
- Contact :
Re: [Screenshots] Épatez la galerie, présentez votre bureau!
Voilà, le tout finalisé :
Je donne juste les lignes nécessaires
Vent
Température
[edit1] Limite, il faudrait que je transforme mon programme python en daemon au lieu de l'appeler 4x toutes les x secondes
[edit2] On pourrait aussi rajouter cette carte (la 1) : http://www.chasseurs-orages.com/orages-online.php et aussi la carte vigilance europe ou france
Je donne juste les lignes nécessaires
Vent
Code : Tout sélectionner
${exec python /home/julien/.config/openbox/Imagesat.py -c 99x160x646x648 -r 547x488 -o /tmp/vent.png -u http://meteociel.fr/cartes_obs/vent.png -t 1800}${image /tmp/vent.png -p -5, -5 -n -s 230x200}
Code : Tout sélectionner
${exec python /home/julien/.config/openbox/Imagesat.py -c 99x160x646x648 -r 547x488 -o /tmp/temperature.png -u http://meteociel.fr/cartes_obs/temp.png -t 1800}${image /tmp/temperature.png -p -5, -5 -n -s 230x200}
[edit2] On pourrait aussi rajouter cette carte (la 1) : http://www.chasseurs-orages.com/orages-online.php et aussi la carte vigilance europe ou france
Re: [Screenshots] Épatez la galerie, présentez votre bureau!
Cool, ca fait quasiment un fond d'écran complet. Ca me donne des idées là...
EDIT: tu utilises quoi comme barre en bas?
Il faut procéder comment pour l'avoir en daemon?chipster a écrit :
[edit1] Limite, il faudrait que je transforme mon programme python en daemon au lieu de l'appeler 4x toutes les x secondes
EDIT: tu utilises quoi comme barre en bas?
"La complication est un effet de la simplicité mal acquise"
Intel i5-2320; Nvidia GeForce GT 520; ATA Hitachi 2To; ArchLinux-KDE
Intel i5-2320; Nvidia GeForce GT 520; ATA Hitachi 2To; ArchLinux-KDE
- chipster
- Maître du Kyudo
- Messages : 2063
- Inscription : ven. 11 août 2006, 22:25
- Localisation : Saint-Étienne (42)
- Contact :
Re: [Screenshots] Épatez la galerie, présentez votre bureau!
Pour le daemon il faut le coder correctement ^^. Donc en gros, un fichier de config qui est lu au chargement et la possibilité de faire un start stop restart. Pour systemd, aucune idée
Pour la barre du bas, j'utilise bmpanel2-git et bmpanel2-themes. Pour le thème, c'est striped (avec bmpanel2cfg)
J'avais fait un script perl (qui doit être sur le fofo normalement) qui permettait de lancer/arrêter un script conky ce qui permettait de définir un raccourci clavier dessus
Pour la barre du bas, j'utilise bmpanel2-git et bmpanel2-themes. Pour le thème, c'est striped (avec bmpanel2cfg)
Code : Tout sélectionner
yaourt -S bmpanel2-git bmpanel2-themes
Re: [Screenshots] Épatez la galerie, présentez votre bureau!
Bon pour le daemon c'est pas de mon niveau!
Merci pour les infos.
Merci pour les infos.
"La complication est un effet de la simplicité mal acquise"
Intel i5-2320; Nvidia GeForce GT 520; ATA Hitachi 2To; ArchLinux-KDE
Intel i5-2320; Nvidia GeForce GT 520; ATA Hitachi 2To; ArchLinux-KDE
- chipster
- Maître du Kyudo
- Messages : 2063
- Inscription : ven. 11 août 2006, 22:25
- Localisation : Saint-Étienne (42)
- Contact :
Re: [Screenshots] Épatez la galerie, présentez votre bureau!
Ce n'est pas super compliqué pourtant. Lire un fichier de config et le choix entre 3 arguments, le reste ne changeant pas
Re: [Screenshots] Épatez la galerie, présentez votre bureau!
Où est ce que je pourrai trouver un exemple de config? Je ne sais pas trop comment goupillé cà en fait et ce qu'il faut y mettre.
"La complication est un effet de la simplicité mal acquise"
Intel i5-2320; Nvidia GeForce GT 520; ATA Hitachi 2To; ArchLinux-KDE
Intel i5-2320; Nvidia GeForce GT 520; ATA Hitachi 2To; ArchLinux-KDE
Re: [Screenshots] Épatez la galerie, présentez votre bureau!
@onyx, si tu veux j'ai un template pas mal (éprouvé) de daemon en python, avec un exemple qui l'utilise.
Si cela t'intéresse, ouvrons peut être un autre thread, ça m"intéresse de t'aider à le bidouiller si tu es motivé
Si cela t'intéresse, ouvrons peut être un autre thread, ça m"intéresse de t'aider à le bidouiller si tu es motivé
- chipster
- Maître du Kyudo
- Messages : 2063
- Inscription : ven. 11 août 2006, 22:25
- Localisation : Saint-Étienne (42)
- Contact :
Re: [Screenshots] Épatez la galerie, présentez votre bureau!
Je vais m'en occuper je pense. D'après ce que j'ai pu voir, systemd ou pas, ça ne change rien
- chipster
- Maître du Kyudo
- Messages : 2063
- Inscription : ven. 11 août 2006, 22:25
- Localisation : Saint-Étienne (42)
- Contact :
Re: [Screenshots] Épatez la galerie, présentez votre bureau!
@vlamy: donne l'adresse de ton templace, j'aimerai le voir par curiosité
Re: [Screenshots] Épatez la galerie, présentez votre bureau!
@chipster, je n'ai plus l'URL du template de base, ça venait de "python.org".
Mais voici mon adaptation :
objet daemon à surcharger (ce que j'ai appelé template) :
implem d'un ptit test qui envoit des affichages pour awesome :
Mais voici mon adaptation :
objet daemon à surcharger (ce que j'ai appelé template) :
Code : Tout sélectionner
#!/usr/bin/env python
import sys, os, time, atexit
from signal import SIGTERM
class Daemon:
"""
A generic daemon class.
Usage: subclass the Daemon class and override the run() method
"""
def __init__(self, pidfile, stdin='/dev/null', stdout='/dev/null', stderr='/dev/null'):
self.stdin = stdin
self.stdout = stdout
self.stderr = stderr
self.pidfile = pidfile
def daemonize(self):
"""
do the UNIX double-fork magic, see Stevens' "Advanced
Programming in the UNIX Environment" for details (ISBN 0201563177)
http://www.erlenstar.demon.co.uk/unix/faq_2.html#SEC16
"""
try:
pid = os.fork()
if pid > 0:
# exit first parent
sys.exit(0)
except OSError, e:
sys.stderr.write("fork #1 failed: %d (%s)\n" % (e.errno, e.strerror))
sys.exit(1)
# decouple from parent environment
os.chdir("/")
os.setsid()
os.umask(0)
# do second fork
try:
pid = os.fork()
if pid > 0:
# exit from second parent
sys.exit(0)
except OSError, e:
sys.stderr.write("fork #2 failed: %d (%s)\n" % (e.errno, e.strerror))
sys.exit(1)
# redirect standard file descriptors
sys.stdout.flush()
sys.stderr.flush()
si = file(self.stdin, 'r')
so = file(self.stdout, 'a+')
se = file(self.stderr, 'a+', 0)
os.dup2(si.fileno(), sys.stdin.fileno())
os.dup2(so.fileno(), sys.stdout.fileno())
os.dup2(se.fileno(), sys.stderr.fileno())
# write pidfile
atexit.register(self.delpid)
pid = str(os.getpid())
file(self.pidfile,'w+').write("%s\n" % pid)
def delpid(self):
os.remove(self.pidfile)
def start(self):
"""
Start the daemon
"""
# Check for a pidfile to see if the daemon already runs
try:
pf = file(self.pidfile,'r')
pid = int(pf.read().strip())
pf.close()
except IOError:
pid = None
if pid:
message = "pidfile %s already exist. Daemon already running?\n"
sys.stderr.write(message % self.pidfile)
sys.exit(1)
# Start the daemon
self.daemonize()
self.run()
def stop(self):
"""
Stop the daemon
"""
# Get the pid from the pidfile
try:
pf = file(self.pidfile,'r')
pid = int(pf.read().strip())
pf.close()
except IOError:
pid = None
if not pid:
message = "pidfile %s does not exist. Daemon not running?\n"
sys.stderr.write(message % self.pidfile)
return # not an error in a restart
# Try killing the daemon process
try:
while 1:
os.kill(pid, SIGTERM)
time.sleep(0.1)
except OSError, err:
err = str(err)
if err.find("No such process") > 0:
if os.path.exists(self.pidfile):
os.remove(self.pidfile)
else:
print str(err)
sys.exit(1)
def restart(self):
"""
Restart the daemon
"""
self.stop()
self.start()
def run(self):
"""
You should override this method when you subclass Daemon. It will be called after the process has been
daemonized by start() or restart().
"""
implem d'un ptit test qui envoit des affichages pour awesome :
Code : Tout sélectionner
#!/usr/bin/env python
#####################
"""
This sample module instantiates a daemon that sends awful notification
it prints "coucou" every 2 seconds with an incremented counter.
"""
#########################################################################
# ADDING VLAM DEPS #
#########################################################################
import sys, os
PATH_TO_DEPENDENCIES =['unix']
if PATH_TO_DEPENDENCIES not in sys.path:
vlam_path = os.environ['VLAM_PYTHON_WKS']
if vlam_path == None:
print "Unable to find ENV variable VLAM_PYTHON_WKS, using current working dir to find dependencies"
vlam_path = "."
for entry in PATH_TO_DEPENDENCIES:
sys.path.append(vlam_path+"/"+entry)
#print 'adding %s to python path' % (vlam_path+"/"+entry)
#########################################################################
# ADDING PYTHON DEPS ANd METHODS #
#########################################################################
import time, shlex, subprocess, unix_cmd_wrapper
from daemon import Daemon
from subprocess import Popen,PIPE
from unix_cmd_wrapper import RunShellCommandWithoutWaiting, RunShellCommandWithPipeline
class MyDaemon(Daemon):
"""
Define a daemon that send "coucou" notifications
"""
def run(self):
counter = 0
while True:
cmd = "notify-send \"coucou %s\"" % (counter)
RunShellCommandWithPipeline(cmd,"awesome-client")
counter = counter +1
time.sleep(2)
if __name__ == "__main__":
"""
Test main methods
"""
daemon = MyDaemon('/tmp/daemon-example.pid',stdout='/tmp/my_stdout',stderr='/tmp/my_stderr')
if len(sys.argv) == 2:
if 'start' == sys.argv[1]:
daemon.start()
elif 'stop' == sys.argv[1]:
daemon.stop()
elif 'restart' == sys.argv[1]:
daemon.restart()
else:
print "Unknown command"
sys.exit(2)
sys.exit(0)
else:
print "usage: %s start|stop|restart" % sys.argv[0]
sys.exit(2)
Re: [Screenshots] Épatez la galerie, présentez votre bureau!
Merci à tous les deux pour votre aide.
"La complication est un effet de la simplicité mal acquise"
Intel i5-2320; Nvidia GeForce GT 520; ATA Hitachi 2To; ArchLinux-KDE
Intel i5-2320; Nvidia GeForce GT 520; ATA Hitachi 2To; ArchLinux-KDE
- chipster
- Maître du Kyudo
- Messages : 2063
- Inscription : ven. 11 août 2006, 22:25
- Localisation : Saint-Étienne (42)
- Contact :
Re: [Screenshots] Épatez la galerie, présentez votre bureau!
La suite ici pour ne pas pourrir ce post
Re: [Screenshots] Épatez la galerie, présentez votre bureau!
Bien le bonjour !
Cinnamon : Dark-Line par moi
GTK : Zukitwo par lassekongo83
Mutter : Zukini par lassekongo83
Fond d'écran : Joy (Debian Wheezy) sans le logo par moi
Applications : Nautilus, Avant-Window-Navigator
Applet Cinnamon supplémentaire : GMailNotifier
A+
Cinnamon : Dark-Line par moi
GTK : Zukitwo par lassekongo83
Mutter : Zukini par lassekongo83
Fond d'écran : Joy (Debian Wheezy) sans le logo par moi
Applications : Nautilus, Avant-Window-Navigator
Applet Cinnamon supplémentaire : GMailNotifier
A+
Re: [Screenshots] Épatez la galerie, présentez votre bureau!
Salut tout le monde !
Mon bureau sous i3. Le tiling c'est le pied !
Clean:
Dirty:
Ah et je voudrais peut-être passer à dwm mais j'aimerai savoir si c'est possible de masquer la barre du haut et de la faire réapparaitre avec un raccourci
clavier comme je fais sur i3. Est-ce possible ?
A+
Mon bureau sous i3. Le tiling c'est le pied !
Clean:
Dirty:
Ah et je voudrais peut-être passer à dwm mais j'aimerai savoir si c'est possible de masquer la barre du haut et de la faire réapparaitre avec un raccourci
clavier comme je fais sur i3. Est-ce possible ?
A+
hp 625 Archlinux i3 en dualscreen avec hp x2301
Mac Mini: Debian ppc lxde + xbmc > Media Center
Mac Mini: Debian ppc lxde + xbmc > Media Center
Re: [Screenshots] Épatez la galerie, présentez votre bureau!
Sur dwm, oui c'est possible de masquer la barre du haut mais pour la faire réapparaitre tu devras écrire un patch.
Ou sinon, tu peux demander ici: https://bbs.archlinux.org/viewtopic.php?id=92895
Ou sinon, tu peux demander ici: https://bbs.archlinux.org/viewtopic.php?id=92895
Re: [Screenshots] Épatez la galerie, présentez votre bureau!
Merci de la réponse !
Est-ce que c'est dur à écrire un patch ?
Parce que je n'ai aucune base en programmation.
J'ai commencé le free pascal et le bash mais voilà quoi ...
Jme démmerde avec un fichier à la syntaxe simple mais si c'est du lourd là
chuis paumé !
Est-ce que c'est dur à écrire un patch ?
Parce que je n'ai aucune base en programmation.
J'ai commencé le free pascal et le bash mais voilà quoi ...
Jme démmerde avec un fichier à la syntaxe simple mais si c'est du lourd là
chuis paumé !
hp 625 Archlinux i3 en dualscreen avec hp x2301
Mac Mini: Debian ppc lxde + xbmc > Media Center
Mac Mini: Debian ppc lxde + xbmc > Media Center