playing_clementine.py
#!/usr/bin/env python2
#-*- coding: ascii -*-
#
# playing_clementine.py
# Script creer sur la base de anowplaying.py
# par Didier-T
#
# pour utilisation avec conky
#
import dbus, optparse, shutil, commands
import unicodedata
from time import sleep
class maj:
def __init__(self):
'''Get system bus'''
bus = dbus.SessionBus()
try:
self.amarok = bus.get_object('org.mpris.clementine', '/Player')
except:
self.amarok=None
return
self.amarokdict = self.amarok.GetMetadata()
self.holdprogress = 0
self.init = 1
def unaccent(self, str):
return unicodedata.normalize('NFKD', str).encode('ascii', 'ignore')
def init_ok(self):
if self.amarok is not None:
return 0
else:
return 1
def maj(self):
temp = {}
ret = {}
cpos = mt = mtime = etime = rtime = progress = None
if self.amarokdict.has_key('mtime'):
try :
cpos = self.amarok.PositionGet()/1000
except:
self.amarok=None
return
mt = self.amarokdict['mtime']/1000
mtime = str(mt/60)+":"+str(mt%60) if mt%60>9 else str(mt/60)+":0"+str(mt%60)
etime = str(cpos/60)+":"+str(cpos%60) if cpos%60>9 else str(cpos/60)+":0"+str(cpos%60)
rtime = str((mt-cpos)/60)+":"+str((mt-cpos)%60) if (mt-cpos)%60>9 else str((mt-cpos)/60)+":0"+str((mt-cpos)%60)
progress= float(cpos)/float(mt)*100
if etime is not None:
temp["etime"]=etime
if rtime is not None:
temp["rtime"]=rtime
if mtime is not None:
temp["mtime"]=mtime
if progress is not None:
temp["progress"]=progress
if self.holdprogress >= progress or self.init == 1:
self.init = 0
self.holdprogress = progress
try :
self.amarokdict = self.amarok.GetMetadata()
except:
self.amarok=None
return
if self.amarokdict.has_key('artist') :
ret["artist"] = self.unaccent(self.amarokdict['artist'][0:50])
if self.amarokdict.has_key('title'):
ret["title"] = self.unaccent(self.amarokdict['title'][0:50])
if self.amarokdict.has_key('album'):
ret["album"] = self.unaccent(self.amarokdict['album'][0:35])
if self.amarokdict.has_key('genre'):
ret["genre"] = self.unaccent(self.amarokdict['genre'][0:50])
if self.amarokdict.has_key('year'):
ret["year"] = str(self.amarokdict['year'])
if self.amarokdict.has_key('tracknumber'):
ret["tracknumber"] = str(self.amarokdict['tracknumber'])
if self.amarokdict.has_key('audio-bitrate'):
ret["bitrate"] = str(self.amarokdict['audio-bitrate'])
if self.amarokdict.has_key('audio-samplerate'):
ret["samplerate"] = str(self.amarokdict['audio-samplerate'])
if self.amarokdict.has_key('arturl'):
cover = self.amarokdict['arturl']
if cover != "" :
try :
shutil.copyfile(cover.replace('file://', ''), "/tmp/jaquet.jpg")
except Exception, e:
print e
fiche = open("/tmp/clem_play", "w")
fiche.write(str(ret))
fiche.close()
fiche = open("/tmp/clem_temp", "w")
fiche.write(str(temp))
fiche.close()
def demonise(init):
x=0
while 1 :
# if x==240 :
# raise SystemExit
# x=x+1
'''Check if clementine is running'''
output = commands.getoutput('ps -A')
if 'clementine' in output:
if init==1 :
miseajour=maj()
init=miseajour.init_ok()
else:
init=miseajour.init_ok()
if init==0:
miseajour.maj()
sleep(1)
if __name__ == '__main__':
demonise(1)
playing_clementine.lua
-- Biliothèque de récupération de donées clementine pour conky
-- Ecrit par Didier-T
-- Du forum ubuntu.fr
-- Pour les besoins d'un conky créer par Ferod
-- Le 23/06/2015
local json = require('json')
local math = require('math')
local tonumber = tonumber
local assert = assert
local os = require('os')
local io = require('io')
local collectgarbage = collectgarbage
local dermodif = nil
local info_titre, time_titre
module("playing_clementine")
do
function info(recherche)
local function exec(cmd)
local cmd=cmd.." > /tmp/exec.log"
local e=os.execute(cmd)
local file=assert(io.open("/tmp/exec.log", "r"))
local r=file:read()
assert(file:close())
return r
end
--Vérifier l'existence d'un fichier
local function existe(file)
local a = io.open(file, "r")
local present
if a then
present = true
io.close(a)
else
present = false
end
return present
end
if existe("/tmp/clem_play") then
local dermodif2=exec("date -r /tmp/clem_play '+%s'")
if dermodif == nil or dermodif ~= dermodif2 then
dermodif=dermodif2
local file = assert(io.open("/tmp/clem_play", "rb") )
local line = file:read()
info_titre = json.decode(line)
assert(file:close())
end
end
if existe("/tmp/clem_temp") then
local dermodif4=exec("date -r /tmp/clem_temp '+%s'")
if dermodif3 == nil or dermodif3 ~= dermodif4 then
dermodif3=dermodif4
local file = assert(io.open("/tmp/clem_temp", "rb") )
local line = file:read()
time_titre = json.decode(line)
assert(file:close())
end
end
if recherche=="artiste" then
return info_titre["artist"] or "N/A"
elseif recherche=="titre" then
return info_titre["title"] or "N/A"
elseif recherche=="album" then
return info_titre["album"] or "N/A"
elseif recherche=="genre" then
return info_titre["genre"] or "N/A"
elseif recherche=="annee" then
return info_titre["year"] or "N/A"
elseif recherche=="tracknumber" then
return info_titre["tracknumber"] or "N/A"
elseif recherche=="bitrate" then
return info_titre["bitrate"] or "N/A"
elseif recherche=="samplerate" then
return info_titre["samplerate"] or "N/A"
elseif recherche=="temp_passe" then
return time_titre["etime"] or "0"
elseif recherche=="temp_restant" then
return time_titre["rtime"] or "0"
elseif recherche=="temp_titre" then
return time_titre["mtime"] or "0"
elseif recherche=="avancement" then
return time_titre["progress"] or "0"
else
return "Non affecté"
end
collectgarbage()
end
end
meteo.lua
-- Biliothèque météo simple pour conky
-- Ecrit par Didier-T
-- Du forum ubuntu.fr
-- Pour les besoins d'un conky créer par Ferod
-- Le 23/06/2015
local json = require('json')
local math = require('math')
local tonumber = tonumber
local assert = assert
local os = require('os')
local io = require('io')
local collectgarbage = collectgarbage
local cc, sj
local print = print
local tostring = tostring
module("meteo")
-- utiliser le code postal pour trouver la ville
do
function maj(code_postal, periode)
print("Mise à jour météo")
periode=periode or "all"
code_postal=code_postal or "75000"
local function curl(url)
local cmd="curl -o /tmp/curl.log -s ".."\""..url.."\""
local e=os.execute(cmd)
local file=assert(io.open("/tmp/curl.log", "r"))
local r=file:read()
assert(file:close())
return r, (e==0 or e==true)
end
local function cond_cour(code_postal)
local r,e=curl("http://api.openweathermap.org/data/2.5/weather?q="..code_postal..",fr&mode=json&units=metric&lang=fr")
local ret=json.decode(r)
ret["weather"][1]["id"]=tostring(ret["weather"][1]["id"]):gsub("200", "i"):gsub("201", "i"):gsub("202", "i"):gsub("230", "i"):gsub("231", "i"):gsub("232", "i"):gsub("906", "i"):
gsub("210", "f"):gsub("211", "f"):gsub("212", "f"):
gsub("221", "W"):gsub("731", "W"):gsub("900","W"):
gsub("300", "G"):gsub("301", "G"):gsub("302", "G"):gsub("310", "G"):gsub("311", "G"):gsub("312", "G"):gsub("321", "G"):
gsub("500", "g"):gsub("501", "g"):gsub("520", "g"):
gsub("502", "h"):gsub("503", "h"):gsub("504", "h"):gsub("521", "h"):gsub("522", "h"):
gsub("511", "k"):gsub("600", "k"):gsub("601", "k"):gsub("611", "k"):gsub("621", "k"):
gsub("602", "j"):
gsub("701", "J"):gsub("711", "J"):
gsub("721", "I"):
gsub("741", "F"):
gsub("800", "C"):
gsub("801", "b"):
gsub("802", "c"):
gsub("803", "d"):
gsub("804", "e"):
gsub("901", "V"):gsub("902", "V"):
gsub("903", "x"):
gsub("904", "z"):
gsub("905", "v")
return ret
end
local function sept_jour(code_postal)
local r,e=curl("http://api.openweathermap.org/data/2.5/forecast/daily?q="..code_postal..",fr&mode=json&units=metric&cnt=7&lang=fr")
local ret=json.decode(r)
for jour=1, 7 do
ret["list"][jour]["weather"][1]["id"]=tostring(ret["list"][jour]["weather"][1]["id"]):
gsub("200", "i"):gsub("201", "i"):gsub("202", "i"):gsub("230", "i"):gsub("231", "i"):gsub("232", "i"):gsub("906", "i"):
gsub("210", "f"):gsub("211", "f"):gsub("212", "f"):
gsub("221", "W"):gsub("731", "W"):gsub("900","W"):
gsub("300", "G"):gsub("301", "G"):gsub("302", "G"):gsub("310", "G"):gsub("311", "G"):gsub("312", "G"):gsub("321", "G"):
gsub("500", "g"):gsub("501", "g"):gsub("520", "g"):
gsub("502", "h"):gsub("503", "h"):gsub("504", "h"):gsub("521", "h"):gsub("522", "h"):
gsub("511", "k"):gsub("600", "k"):gsub("601", "k"):gsub("611", "k"):gsub("621", "k"):
gsub("602", "j"):
gsub("701", "J"):gsub("711", "J"):
gsub("721", "I"):
gsub("741", "F"):
gsub("800", "C"):
gsub("801", "b"):
gsub("802", "c"):
gsub("803", "d"):
gsub("804", "e"):
gsub("901", "V"):gsub("902", "V"):
gsub("903", "x"):
gsub("904", "z"):
gsub("905", "v")
end
return ret
end
if periode=="all" then
cc=cond_cour(code_postal)
sj=sept_jour(code_postal)
elseif periode=="cc" then
cc=cond_cour(code_postal)
else
sj=sept_jour(code_postal)
end
collectgarbage()
end
function info(valeur, jour)
jour=tonumber(jour) or 0
if jour==0 then
if valeur=="lon" then
r = cc["coord"]["lon"]
elseif valeur=="lat" then
r = cc["coord"]["lat"]
elseif valeur=="pays" then
r = cc["sys"]["country"]
elseif valeur=="leve_soleil" then
r = cc["sys"]["sunrise"]
elseif valeur=="coucher_soleil" then
r = cc["sys"]["sunset"]
elseif valeur=="meteo_id" then
r = cc["weather"][1]["id"]
elseif valeur=="meteo_main" then
r = cc["weather"][1]["main"]
elseif valeur=="meteo_description" then
r = cc["weather"][1]["description"]
elseif valeur=="meteo_icone" then
r = cc["weather"][1]["icon"]
elseif valeur=="temp" then
r = math.floor(cc["main"]["temp"])
elseif valeur=="temp_min" then
r = math.floor(cc["main"]["temp_min"])
elseif valeur=="temp_max" then
r = math.floor(cc["main"]["temp_max"])
elseif valeur=="pression" then
r = cc["main"]["pressure"]
elseif valeur=="sea_level" then
r = cc["main"]["sea_level"]
elseif valeur=="grnd_level" then
r = cc["main"]["grnd_level"]
elseif valeur=="humidite" then
r = cc["main"]["humidity"]
elseif valeur=="vent_vitesse" then
r = math.floor(cc["wind"]["speed"])
elseif valeur=="vent_direction" then
r = cc["wind"]["deg"]
elseif valeur=="couverture_nuageuse" then
r = cc["clouds"]["all"]
elseif valeur=="pluie_court_terme" then
if cc["rain"] ~= nil then
r = cc["rain"]["3h"]
else
r = 0
end
elseif valeur=="date" then
r = cc["dt"]
elseif valeur=="ville" then
r = cc["name"]
else
r = valeur.." n'éxiste pas"
end
else
if valeur=="date" then
r = sj["list"][jour]["dt"]
elseif valeur=="temp_jour" then
r = math.floor(sj["list"][jour]["temp"]["day"])
elseif valeur=="temp_min" then
r = math.floor(sj["list"][jour]["temp"]["min"])
elseif valeur=="temp_max" then
r = math.floor(sj["list"][jour]["temp"]["max"])
elseif valeur=="temp_nuit" then
r = math.floor(sj["list"][jour]["temp"]["night"])
elseif valeur=="temp_soir" then
r = math.floor(sj["list"][jour]["temp"]["eve"])
elseif valeur=="temp_matin" then
r = math.floor(sj["list"][jour]["temp"]["morn"])
elseif valeur=="pression" then
r = sj["list"][jour]["pressure"]
elseif valeur=="humidite" then
r = sj["list"][jour]["humidity"]
elseif valeur=="meteo_id" then
r = sj["list"][jour]["weather"][1]["id"]
elseif valeur=="meteo_main" then
r = sj["list"][jour]["weather"][1]["main"]
elseif valeur=="meteo_description" then
r = sj["list"][jour]["weather"][1]["description"]
elseif valeur=="meteo_icone" then
r = sj["list"][jour]["weather"][1]["icon"]
elseif valeur=="vent_vitesse" then
r = math.floor(sj["list"][jour]["speed"])
elseif valeur=="vent_direction" then
r = sj["list"][jour]["deg"]
elseif valeur=="couverture_nuageuse" then
r = sj["list"][jour]["clouds"]
elseif valeur=="pluviometrie" then
r = sj["list"][jour]["rain"] or 0
else
r = valeur.." "..jour.." n'éxiste pas"
end
end
return r
end
end
script.lua
--this is a lua script for use in conky
require 'cairo'
require 'os'
local meteo=require('meteo')
local play=require('playing_clementine')
-- Parametre a modifier
local chemin="~/.conky/conky-perso/Monochrome" -- répertoire ou ce trouve vos scripts
local departement="95100" -- indiquer le département pour la météo
local disque_1="/home"
local disque_2="/"
local disque_3="~"
--[[
###################################################################################################
# Ne pas faire de modification après cette ligne (sauf si vous savez ce que vous faite), Merci. #
###################################################################################################
]]--
local home = os.getenv("HOME")
chemin=string.gsub(chemin,"~",home)
disque_1=string.gsub(disque_1,"~",home)
disque_2=string.gsub(disque_2,"~",home)
disque_3=string.gsub(disque_3,"~",home)
local nb_coeur=tonumber(conky_parse("${exec cat /proc/cpuinfo | grep processor | wc -l}"))
local Clementine
local T0=0
local T=0
-- Partie Fonctions
function draw_circle(alpha,progress,x_center,y_center,radius,epaisseur)
cairo_set_source_rgba(cr,1,1,1,alpha)
cairo_set_line_width(cr,epaisseur)
cairo_arc(cr, x_center, y_center, radius, 0-math.pi/2, progress * 2 * math.pi / 100 - math.pi/2)
cairo_stroke(cr)
end
function draw_circle_gauge(alpha,nb_gauge,angle_step,angle_step_ink,x_center,y_center,radius,epaisseur)
cairo_set_source_rgba(cr,1,1,1,alpha)
cairo_set_line_width(cr,epaisseur)
angle_step_rad=angle_step*math.pi/180
angle_step_ink_rad=angle_step_ink*math.pi/180
local i = 1
angle=-math.pi/2
while i <= nb_gauge do
cairo_arc(cr, x_center, y_center, radius, angle, angle + angle_step_ink_rad)
angle=angle+angle_step_rad
cairo_stroke(cr)
i = i+1
end
end
function draw_line(alpha,progress,x_ligne,y_ligne,longueur,epaisseur)
red,green,blue=1,1,1
cairo_set_source_rgba (cr,1,1,1,alpha)
cairo_set_line_width (cr, epaisseur)
cairo_set_dash(cr,1.,0,1)
cairo_move_to (cr, x_ligne, y_ligne)
cairo_line_to (cr, x_ligne+((progress/100)*longueur), y_ligne)
cairo_stroke (cr)
end
function draw_dash_line(alpha,progress,x_ligne,y_ligne,longueur,epaisseur)
red,green,blue=1,1,1
cairo_set_source_rgba (cr,1,1,1,alpha)
cairo_set_line_width (cr, epaisseur)
cairo_set_dash(cr,5.,1,0)
cairo_move_to (cr, x_ligne, y_ligne)
cairo_line_to (cr, x_ligne+longueur*progress/100, y_ligne)
cairo_stroke (cr)
end
function draw_scale(alpha,x_ligne,y_ligne,nb_step,long_step_ink,long_step,epaisseur)
red,green,blue=1,1,1
cairo_set_source_rgba (cr,1,1,1,alpha)
cairo_set_line_width (cr, epaisseur)
local i = 1
x_step=x_ligne
while i <= nb_step do
cairo_move_to (cr, x_step, y_ligne)
cairo_line_to (cr, x_step+long_step_ink,y_ligne)
cairo_stroke (cr)
x_step=x_step + long_step
i=i+1
end
end
function affiche_texte(police,taille,x,y,alpha,texte)
red,green,blue,alpha=1,1,1,alpha
cairo_select_font_face (cr, police, CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL)
cairo_set_font_size (cr, taille)
cairo_set_source_rgba (cr,red,green,blue,alpha)
cairo_move_to (cr,x,y)
cairo_show_text (cr,texte)
cairo_stroke (cr)
end
-- Partie script
function graph_line(Maj)
-- Variable a afficher
-- Tous les intervals (30 secondes)
if Maj == 1 then
-- Utilisation Disque
used_perc1=tonumber(conky_parse("${fs_used_perc "..disque_1.."}"))
used_perc2=tonumber(conky_parse("${fs_used_perc "..disque_2.."}"))
used_perc3=tonumber(conky_parse("${fs_used_perc "..disque_3.."}"))
-- Températures
T1=tonumber(conky_parse("${exec "..chemin.."/sensors.sh 1}"))
T2=tonumber(conky_parse("${exec "..chemin.."/sensors.sh 2}"))
end
-- A chaque cycle
-- Heure
heure=tonumber(conky_parse("${time %I}"))
minute=tonumber(conky_parse("${time %M}"))
seconde=tonumber(conky_parse("${time %S}"))
-- Utilisation CPU
local cpu={}
for i = 1,nb_coeur do
cpu[i]=tonumber(conky_parse("${cpu cpu"..i.."}"))
end
-- UP Down
ratio_upload=tonumber(conky_parse("${upspeedf eth0}")/55*100)
ratio_download=tonumber(conky_parse("${downspeedf eth0}")/302*100)
-- Clementine
Clementine=play.info("avancement") --conky_parse("${execi 5 python2 "..chemin.."/anowplaying.py -p}")
-- Horloge
draw_circle(0.2,100,200,48,20,2)
draw_circle(0.2,100,200,48,25,2)
if heure == 12 then
heure = 0
end
prog_seconde=seconde/60
prog_minute=(minute+prog_seconde)/60
prog_heure=(heure+prog_minute)/12
draw_circle(1.,prog_minute*100,200,48,25,2)
draw_circle(1.,prog_heure*100,200,48,20,2)
draw_circle_gauge(1,12,30,2,200,48,20,2)
draw_circle_gauge(1,12,30,2,200,48,25,2)
draw_circle_gauge(1,seconde,6,2,200,48,30,2)
--CPU & RAM
local y_img_4 = 219
draw_scale(0.5,153,y_img_4+32,36,1,5,3)
draw_scale(1,153,y_img_4+32,8,1,25,6)
t1=T1-30
t2=T2-30
if t1<0 then
t1 = 0
end
if t2<0 then
t2 = 0
end
draw_line(t1/35,(t1/70)*100,153,y_img_4+31,176,2)
draw_line(t2/35,(t2/70)*100,153,y_img_4+33,176,2)
for i = 1,nb_coeur do
if cpu[i] == nil then cpu[i]=0 end
end
draw_line(0.2,100,180,y_img_4+49,150,2)
ratio_barre=(150/nb_coeur)
-- calcul pour affichage barre ratio cpu
local x1 = {}
x1[1]=180 -- début barre cpu1
for i = 1,nb_coeur do
x1[i+1]=x1[i]+cpu[i]/100*ratio_barre
end
-- affichage barre occupation cpu
ratio_trans=(0.8/nb_coeur)
for i = 1,nb_coeur do
draw_line(1-(i-1)*ratio_trans,cpu[i],x1[i],y_img_4+49,ratio_barre,2)
end
draw_line(0.2,100,180,y_img_4+72,150,2)
mem_perc=tonumber(conky_parse("${memperc}"))
draw_line(1,mem_perc,180,y_img_4+72,150,2)
--utilisation disque :
local y_img_5 = 292
draw_line(0.2,100,160,y_img_5+33,170,2)
draw_line(1,used_perc1,160,y_img_5+33,170,2)
draw_line(0.2,100,160,y_img_5+53,170,2)
draw_line(1,used_perc2,160,y_img_5+53,170,2)
draw_line(0.2,100,160,y_img_5+83,170,2)
draw_line(1,used_perc3,160,y_img_5+73,170,2)
--upload
local y_img_6 = 365
draw_line(0.2,100,170,y_img_6+33,160,2)
draw_line(1,ratio_upload,170,y_img_6+33,160,2)
--download
draw_line(0.2,100,170,y_img_6+48,160,2)
draw_line(1,ratio_download,170,y_img_6+48,160,2)
-- lecture musique
if Clementine ~= "" then
local y_img_7 = 438
draw_line(0.2,100,100,y_img_7+70,230,2)
progress=tonumber(Clementine)
draw_line(1,progress,100,y_img_7+70,230,2)
end
end
function display_text(Maj)
-- Variable a afficher
-- Tous les intervals (30 secondes)
if Maj == 1 then
h_leve=os.date("%H:%M", meteo.info("leve_soleil"))--conky_parse("${exec "..chemin.."/meteo_display.sh current 1}")
h_couche=os.date("%H:%M", meteo.info("coucher_soleil"))--conky_parse("${exec "..chemin.."/meteo_display.sh current 2}")
meteo_act=meteo.info("meteo_description")--conky_parse("${exec "..chemin.."/meteo_display.sh current 8}")
pression=meteo.info("pression")--conky_parse("${exec "..chemin.."/meteo_display.sh pression 1}").." hPa"
temp_act=meteo.info("temp")--conky_parse("${exec "..chemin.."/meteo_display.sh current 3}")
text_meteo=meteo.info("meteo_id")--conky_parse("${exec "..chemin.."/meteo_display.sh meteo 1}")
humidite=meteo.info("humidite")--conky_parse("${exec "..chemin.."/meteo_display.sh current 6}")
speed=meteo.info("vent_vitesse")--conky_parse("${exec "..chemin.."/meteo_display.sh current 7}")
precipitation=meteo.info("pluie_court_terme")--conky_parse("${exec "..chemin.."/meteo_display.sh current 9}")
temp_min=meteo.info("temp_min", 1)--conky_parse("${exec "..chemin.."/meteo_display.sh current 4}")
temp_max=meteo.info("temp_max", 1)--conky_parse("${exec "..chemin.."/meteo_display.sh current 5}")
semaine_meteo_2=meteo.info("meteo_id", 2)--conky_parse("${exec "..chemin.."/meteo_display.sh meteo 2}")
semaine_meteo_3=meteo.info("meteo_id", 3)--conky_parse("${exec "..chemin.."/meteo_display.sh meteo 3}")
semaine_meteo_4=meteo.info("meteo_id", 4)--conky_parse("${exec "..chemin.."/meteo_display.sh meteo 4}")
semaine_meteo_5=meteo.info("meteo_id", 5)--conky_parse("${exec "..chemin.."/meteo_display.sh meteo 5}")
semaine_meteo_6=meteo.info("meteo_id", 6)--conky_parse("${exec "..chemin.."/meteo_display.sh meteo 6}")
semaine_meteo_7=meteo.info("meteo_id", 7)--conky_parse("${exec "..chemin.."/meteo_display.sh meteo 7}")
-- affichage du jour
semaine_jour_2=os.date("%a", meteo.info("date", 2))--conky_parse("${exec "..chemin.."/meteo_display.sh jour 2}")
semaine_jour_3=os.date("%a", meteo.info("date", 3))--conky_parse("${exec "..chemin.."/meteo_display.sh jour 3}")
semaine_jour_4=os.date("%a", meteo.info("date", 4))--conky_parse("${exec "..chemin.."/meteo_display.sh jour 4}")
semaine_jour_5=os.date("%a", meteo.info("date", 5))--conky_parse("${exec "..chemin.."/meteo_display.sh jour 5}")
semaine_jour_6=os.date("%a", meteo.info("date", 6))--conky_parse("${exec "..chemin.."/meteo_display.sh jour 6}")
semaine_jour_7=os.date("%a", meteo.info("date", 7))--conky_parse("${exec "..chemin.."/meteo_display.sh jour 7}")
-- prévision température jour
semaine_temp_2=meteo.info("temp_jour", 2)--conky_parse("${exec "..chemin.."/meteo_display.sh temperature 2}").."°C"
semaine_temp_3=meteo.info("temp_jour", 3)--conky_parse("${exec "..chemin.."/meteo_display.sh temperature 3}").."°C"
semaine_temp_4=meteo.info("temp_jour", 4)--conky_parse("${exec "..chemin.."/meteo_display.sh temperature 4}").."°C"
semaine_temp_5=meteo.info("temp_jour", 5)--conky_parse("${exec "..chemin.."/meteo_display.sh temperature 5}").."°C"
semaine_temp_6=meteo.info("temp_jour", 6)--conky_parse("${exec "..chemin.."/meteo_display.sh temperature 6}").."°C"
semaine_temp_7=meteo.info("temp_jour", 7)--conky_parse("${exec "..chemin.."/meteo_display.sh temperature 7}").."°C"
espace1=conky_parse("${fs_used_perc "..disque_1.."}").."%"
espace2=conky_parse("${fs_used_perc "..disque_2.."}").."%"
espace3=conky_parse("${fs_used_perc "..disque_3.."}").."%"
esp_used1=conky_parse("${fs_used "..disque_1.."}")
esp_used2=conky_parse("${fs_used "..disque_2.."}")
esp_used3=conky_parse("${fs_used "..disque_3.."}")
esp_free1=conky_parse("${fs_free "..disque_1.."}")
esp_free2=conky_parse("${fs_free "..disque_2.."}")
esp_free3=conky_parse("${fs_free "..disque_3.."}")
end
-- A chaque cycle
local cpu=conky_parse("${cpu cpu0}")
local y_img_1 = 0
--[[###########################################
Heure et Date
##############################################]]
affiche_texte("Ubuntu",11,92,y_img_1+30,1,"J"..conky_parse("${time %j}").." - S"..conky_parse("${time %V}"))
affiche_texte("Sans",50,85,y_img_1+73,1,"☼")
affiche_texte("Ubuntu",11,130,y_img_1+50,1,h_leve)
affiche_texte("Ubuntu",11,130,y_img_1+70,1,h_couche)
affiche_texte("Ubuntu",12,185,y_img_1+52,1,conky_parse("${time %H:%M}")) --heure
affiche_texte("Ubuntu",12,282,y_img_1+34,1,conky_parse("${time %A}")) --nom du jour
affiche_texte("Ubuntu",12,282,y_img_1+45,1,conky_parse("${time %B}")) --nom du mois
affiche_texte("Ubuntu",32,245,y_img_1+45,1,conky_parse("${time %d}")) --numeros du jour
affiche_texte("Ubuntu",32,245,y_img_1+71,1,conky_parse("${time %Y}")) --année
--[[###########################################
Météo actuelle
##############################################]]
local y_img_2 = 73
affiche_texte("Weather",65,95,y_img_2+77,1,text_meteo)
--affiche_texte("Weather",65,95,y_img_2+77,1,"g")
affiche_texte("Ubuntu",11,150,y_img_2+30,1,meteo_act.." - "..temp_act.." - "..pression)
affiche_texte("Ubuntu",11,150,y_img_2+45,1,pression.." - "..humidite.." hum")
affiche_texte("Ubuntu",11,150,y_img_2+60,1,"Vent : "..speed)
affiche_texte("Ubuntu",11,150,y_img_2+75,1,"Pluies : "..precipitation)
--affiche_texte("Ubuntu",11,150,y_img_2+40,1,"min : "..temp_min.." - max : "..temp_max)
affiche_texte("Ubuntu",11,310,y_img_2+70,1,temp_min)
affiche_texte("Ubuntu",11,310,y_img_2+45,1,temp_max)
affiche_texte("Weather",50,295,y_img_2+75,1,"y")
--[[###########################################
prévision météo semaine
##############################################]]
local y_img_3 = 146
affiche_texte("Weather",50,95,y_img_3+67,1,semaine_meteo_2)
affiche_texte("Weather",50,135,y_img_3+67,1,semaine_meteo_3)
affiche_texte("Weather",50,175,y_img_3+67,1,semaine_meteo_4)
affiche_texte("Weather",50,215,y_img_3+67,1,semaine_meteo_5)
affiche_texte("Weather",50,255,y_img_3+67,1,semaine_meteo_6)
affiche_texte("Weather",50,295,y_img_3+67,1,semaine_meteo_7)
-- affichage du jour
affiche_texte("Ubuntu",11,100,y_img_3+27,1,semaine_jour_2)
affiche_texte("Ubuntu",11,140,y_img_3+27,1,semaine_jour_3)
affiche_texte("Ubuntu",11,180,y_img_3+27,1,semaine_jour_4)
affiche_texte("Ubuntu",11,220,y_img_3+27,1,semaine_jour_5)
affiche_texte("Ubuntu",11,260,y_img_3+27,1,semaine_jour_6)
affiche_texte("Ubuntu",11,300,y_img_3+27,1,semaine_jour_7)
-- prévision température jour
affiche_texte("Ubuntu",12,100,y_img_3+74,1,semaine_temp_2)
affiche_texte("Ubuntu",12,140,y_img_3+74,1,semaine_temp_3)
affiche_texte("Ubuntu",12,180,y_img_3+74,1,semaine_temp_4)
affiche_texte("Ubuntu",12,220,y_img_3+74,1,semaine_temp_5)
affiche_texte("Ubuntu",12,260,y_img_3+74,1,semaine_temp_6)
affiche_texte("Ubuntu",12,300,y_img_3+74,1,semaine_temp_7)
--[[###########################################
CPU Temperature et RAM
##############################################]]
local y_img_4 = 219
affiche_texte("Ubuntu",13,100,y_img_4+32,1,"Temp :")
affiche_texte("Ubuntu",13,100,y_img_4+52,1,"CPU :")
affiche_texte("Ubuntu",13,100,y_img_4+72,1,"RAM :")
affiche_texte("Ubuntu",10,147,y_img_4+26,1,"30°")
affiche_texte("Ubuntu",10,197,y_img_4+26,1,"50°")
affiche_texte("Ubuntu",10,247,y_img_4+26,1,"70°")
affiche_texte("Ubuntu",10,297,y_img_4+26,1,"90°")
if cpu == nil then cpu=0 end
affiche_texte("Ubuntu",11,150,y_img_4+52,1,cpu.."%")
affiche_texte("Ubuntu",11,150,y_img_4+72,1,conky_parse("${memperc}").."%")
affiche_texte("Ubuntu",11,180,y_img_4+69,1,conky_parse("${mem}"))
affiche_texte("Ubuntu",11,290,y_img_4+69,0.7,conky_parse("${memeasyfree}"))
--[[###########################################
Espace disponible
##############################################]]
local y_img_5 = 292
affiche_texte("Heydings Icons",18,100,y_img_5+34,1,"H")
affiche_texte("Heydings Icons",18,100,y_img_5+54,1,"L")
affiche_texte("Heydings Icons",18,100,y_img_5+74,1,"F")
affiche_texte("Ubuntu",15,123,y_img_5+33,1,espace1)
affiche_texte("Ubuntu",15,123,y_img_5+53,1,espace2)
affiche_texte("Ubuntu",15,123,y_img_5+73,1,espace3)
affiche_texte("Ubuntu",11,160,y_img_5+30,1,esp_used1)
affiche_texte("Ubuntu",11,160,y_img_5+50,1,esp_used2)
affiche_texte("Ubuntu",11,160,y_img_5+70,1,esp_used3)
affiche_texte("Ubuntu",11,290,y_img_5+30,0.7,esp_free1)
affiche_texte("Ubuntu",11,290,y_img_5+50,0.7,esp_free2)
affiche_texte("Ubuntu",11,290,y_img_5+70,0.7,esp_free3)
--[[###########################################
Débit internet
##############################################]]
local y_img_6 = 365
affiche_texte("Deja",18,100,y_img_6+38,1,"↗")
affiche_texte("Ubuntu",12,120,y_img_6+38,1,conky_parse("${upspeed eth0}"))
affiche_texte("Deja",18,100,y_img_6+53,1,"↘")
affiche_texte("Ubuntu",12,120,y_img_6+53,1,conky_parse("${downspeed eth0}"))
up_total=conky_parse("${totalup eth0}")
down_total=conky_parse("${totaldown eth0}")
affiche_texte("Ubuntu",12,100,y_img_6+68,1,"Total : "..up_total.." / "..down_total)
--[[###########################################
Musique
##############################################]]
if Clementine ~= "" then
local y_img_7 = 438
affiche_texte("Ubuntu",11,100,y_img_7+35,1,play.info("album"))--conky_parse("${execi 5 python2 "..chemin.."/anowplaying.py -l}"))
affiche_texte("Ubuntu",11,100,y_img_7+50,1,play.info("titre"))--conky_parse("${execi 5 python2 "..chemin.."/anowplaying.py -t}"))
temp_ecoule=play.info("temp_passe")--conky_parse("${execi 5 python2 "..chemin.."/anowplaying.py -e}")
temp_remain=play.info("temp_restant")--conky_parse("${execi 5 python2 "..chemin.."/anowplaying.py -r}")
affiche_texte("Ubuntu",11,100,y_img_7+65,1,temp_ecoule)
affiche_texte("Ubuntu",11,310,y_img_7+65,0.7,temp_remain)
end
end
function conky_main()
if conky_window == nil then
return
end
local cs = cairo_xlib_surface_create(conky_window.display,
conky_window.drawable,
conky_window.visual,
conky_window.width,
conky_window.height)
cr = cairo_create(cs)
local display = cairo_create(cs)
local updates=tonumber(conky_parse('${updates}'))
local interval=30
local timer=(updates % interval)
local T1 = os.time()
if os.difftime(T1, T) >= 300 then
if os.difftime(T1, T0) >= 3600 then
meteo.maj(departement, "7jours")
T0=T1
end
meteo.maj(departement, "cc")
T=T1
end
if updates>5 then
if timer == 0 or conky_start == 1 then
Maj=1
if updates > 6 then
conky_start=nil
end
else
Maj=0
end
display_text(Maj)
graph_line(Maj)
else
conky_start = 1
end
cairo_destroy(cr)
cairo_surface_destroy(cs)
cr=nil
collectgarbage()
end
.conkyrc
######################
# - Conky settings - #
######################
update_interval 1
total_run_times 0
net_avg_samples 1
cpu_avg_samples 1
#imlib_cache_size 0
double_buffer yes
no_buffers yes
#####################
# - Text settings - #
#####################
use_xft yes
xftfont Ubuntu:size=9
override_utf8_locale yes
text_buffer_size 2048
#############################
# - Window specifications - #
#############################
own_window_class Conky
own_window yes
own_window_type normal
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
#own_window_argb_visual yes
#own_window_argb_value 100
alignment tr
gap_x -2
gap_y 180
minimum_size 350 520
default_bar_size 60 10
# - Graphics settings - #
#########################
draw_shades no
default_color ffffff
default_shade_color 1d1d1d
color0 ffffff
color1 ffffff
color2 ffffff
lua_load ~/.conky/conky-perso/Monochrome/script.lua
lua_draw_hook_pre main
TEXT
#${voffset 0}
#---DATE & HEURE----
#---METEO----
#${execi 600 ~/.conky/conky-perso/Monochrome/meteo_update.sh}
#---CPU ET RAM----
#---DISQUE DUR----
#---DEBIT INTERNET----
#${if_up eth0}
#${voffset 255}
#${endif}
#---MUSIQUE----
#${if_running clementine}
#${color}
#$endif
#---IMAGES----
${image ~/.conky/conky-perso/Monochrome/base.png -p 10,0 -s 339x86}
${image ~/.conky/conky-perso/Monochrome/base.png -p 10,73 -s 339x86}
${image ~/.conky/conky-perso/Monochrome/base.png -p 10,146 -s 339x86}
${image ~/.conky/conky-perso/Monochrome/base.png -p 10,219 -s 339x86}
${image ~/.conky/conky-perso/Monochrome/base.png -p 10,292 -s 339x86}
${image ~/.conky/conky-perso/Monochrome/base.png -p 10,365 -s 339x86}
${image ~/.conky/conky-perso/Monochrome/base.png -p 10,438 -s 339x86}
${image ~/.conky/conky-perso/Monochrome/calendar.png -p 28,20 -s 45x45}
${image ~/.conky/conky-perso/Monochrome/weather.png -p 28,93 -s 45x45}
${image ~/.conky/conky-perso/Monochrome/weather.png -p 28,166 -s 45x45}
${image ~/.conky/conky-perso/Monochrome/emblem-system.png -p 28,239 -s 45x45}
${image ~/.conky/conky-perso/Monochrome/folder.png -p 28,312 -s 45x45}
${image ~/.conky/conky-perso/Monochrome/nm-signal-75.png -p 28,385 -s 45x45}
${image ~/.conky/conky-perso/Monochrome/emblem-sound.png -p 28,458 -s 45x45}
sensors.sh
#!/bin/bash
if [ $1 = 1 ] ; then
temp=`sensors | awk ' $2=="0:" {print $3}' | cut -c 2-3`
else
temp=`sensors | awk ' $2=="1:" {print $3}' | cut -c 2-3`
fi
echo $temp