Conky-conkyrc-scripts-partie 3
Table des matières
conkyrc
soleil.lua

Un autre conky cliquable pour audacious tirer d'un skin covergloobus sur deviantart
le conkyrc

le conkyrc
le lua principal
text.lua
scale.lua

Position du soleil et de la lune
conkyrc
Code TEXT :
background no use_xft yes xftfont URW Chancery L:style=Bold:size=10 xftalpha 1 update_interval 1 total_run_times 0 own_window yes own_window_transparent yes own_window_argb_visual yes own_window_type normal own_window_hints undecorated,below,skip_taskbar,skip_pager double_buffer yes minimum_size 380 310 maximum_width 380 text_buffer_size 2048 draw_shades no draw_outline no draw_borders no border_width 1 draw_graph_borders no default_outline_color cacaca alignment top_right gap_x 5 gap_y 100 no_buffers yes uppercase no cpu_avg_samples 2 override_utf8_locale yes # color1 ffff00 lua_load ~/.conky/v11/conky/soleil.lua lua_draw_hook_pre draw_fig default_color 8b8b8b lua_load ~/.conky/lua/image.lua TEXT ${lua fDrawImage /home/loutch/.conky/v11/conky/terre.png 170 170 60 64 0}
soleil.lua
Code TEXT :
--sun position lua script by mrpeachy 2010 version 2 includes moon position --############################################################ --############################################################ --input latitude --for northern hemisphere enter positive --for southern hemisphere enter negative latitude=-49.1 longitude=7.06 --input hemisphere --for northern enter 1 --for southern enter 2 hemisphere=2 --daylight saving? 1=yes, 0=no dst=0 --position - this is the point where the N-S line crosses the horizon line --the .5 helps make lines look sharper across=200.5 down=200.5 --############################################################ --############################################################ require 'cairo' function cos(x) a=math.cos(math.rad(x)) return a end function sin(x) a=math.sin(math.rad(x)) return a end function tan(x) a=math.tan(math.rad(x)) return a end function addzero10(num) if tonumber(num) < 10 then return "0" .. num else return num end end function round(val, decimal) if (decimal) then return math.floor( (val * 10^decimal) + 0.5) / (10^decimal) else return math.floor(val+0.5) end end function string:split(delimiter) local result = { } local from = 1 local delim_from, delim_to = string.find( self, delimiter, from ) while delim_from do table.insert( result, string.sub( self, from , delim_from-1 ) ) from = delim_to + 1 delim_from, delim_to = string.find( self, delimiter, from ) end table.insert( result, string.sub( self, from ) ) return result end function datan2(y, x) if x == 0 and y == 0 then return 0 else a = math.atan(math.rad(y / x)) end if (x < 0) then a = a + 180 else if y < 0 and x > 0 then a = a + 360 end end return math.rad(a) end function ipart(x) if (x> 0) then a = math.floor(x) else a = math.ceil(x); end return a end function range(x) b = x / 360; a = 360 * (b - ipart(b)); if a < 0 then a = a + 360 end return a end function ranget(x) b = x / 24; a = 24 * (b - ipart(b)); if a < 0 then a = a + 24 end return a end function rangei(x) b = x / 1440; a = 1440 * (b - ipart(b)); if a < 0 then a = a + 1440 end return a end --################################################################################################################################################ --########### MAIN FUNCTION ######################################################################################################## --################################################################################################################################################ --################################################################################################################################################ function conky_draw_fig() 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 updates=tonumber(conky_parse('${updates}')) --########### START FUNCTION ######################################################################################################## if updates > 5 then --########### SET HEMISPHERE ######################################################################################################## if hemisphere==1 then start=0 else start=180 end --################ sets daylignt saving #####################################3 if dst==1 then ds=-1 else ds=0 end --################################################################################################################################################ --################################################################################################################################################ --########### calculate julian time ######################################################################################################## --################################################################################################################################################ --################################################################################################################################################ M=os.date("%m") --month K=os.date("%G") --4 digit year I=(os.date("%d"))--day of month H=ranget((os.date("%H"))+ds) --hours Min=os.date("%M") Mi=(os.date("%M"))/60 --minutes expressed as hours --current Julian time----------------------------------------------------------------- JD=round((367*K)-((7*(K+((M+9)/12)))/4)+((275*M)/9)+I+1721013.5,0)+0.5+((H+Mi)/24) -------------------------------------------------------------------------------------- days=(JD)-2451545.0 --correct T=days/36525 --correct --Julian time at preceeding midnight JD0=round((367*K)-((7*(K+((M+9)/12)))/4)+((275*M)/9)+I+1721013.5,0)+0.5 D0=JD0-2451545.0 --########### calculate sidereal time ######################################################################################################## --current sidereal time CST=6.697374558+(0.06570982441908*D0)+(1.00273790935*(H+Mi)) ----------------------------------------------------------------- GMST = 6.697374558 + (0.06570982441908*D0) + (1.00273790935*(H+Mi)) + (0.000026*(T^2)) ADJ=longitude/15 GMST24=ranget(GMST) GMST24S=string.split(GMST24, "%p") GMST24H=GMST24S[1] GMST24M=string.len(GMST24S[2]) GMST24M=GMST24S[2]/(10^(GMST24M))*60 GMST24M=string.split(GMST24M,"%p") GMST24M=GMST24M[1] sgtime=(GMST24H*60)+GMST24M ------------------------------------------------------------- day=os.date("%j") B=(360/365)*(day-81) eot=(9.87*math.sin(2*B))-(7.53*math.cos(B))-(1.5*math.sin(B)) LSTM=15*10 TC=(4*(LSTM-longitude))+eot LT=((H)*60)+Min LST=LT+(TC/60) --------------------------------------- LST24=ranget(LST/60) LST24S=string.split(LST24, "%p") LST24H=LST24S[1] LST24M=string.len(LST24S[2]) LST24M=(LST24S[2]/(10^(LST24M)))*60 LST24M=string.split(LST24M,"%p") LST24M=LST24M[1] --below is current solar time stime=(LST24H*60)+LST24M --################################################################################################################################################ --############# END TIME CALCS ########################################################################################################### --################################################################################################################################################ --################################################################################################################################################ --############# SUN CACULATIONS AND DISPLAY ########################################################################################################### --################################################################################################################################################ --################################################################################################################################################ --################################################################################################################################################ -- Sun formulas -- -- L1 - Mean longitude -- M1 - Mean anomaly -- C1 - Equation of centre -- V1 - True anomaly -- Ec1 - Eccentricity -- R1 - Sun distance -- Th1 - Theta (true longitude) -- Om1 - Long Asc Node (Omega) -- Lam1- Lambda (apparent longitude) -- Obl - Obliquity of ecliptic -- Ra1 - Right Ascension -- Dec1- Declination t=T L1 = range(280.466 + 36000.8 * t) M1 = range(357.529+35999*t - 0.0001536* t*t + t*t*t/24490000) sinm1=math.sin(math.rad(M1)) C1 = (1.915 - 0.004817* t - 0.000014* t * t)* sinm1; C1 = C1 + (0.01999 - 0.000101 * t)* sinm1; C1 = C1 + 0.00029 * sinm1; V1 = M1 + C1; cosv1=math.cos(math.rad(V1)) Ec1 = 0.01671 - 0.00004204 * t - 0.0000001236 * t*t; R1 = 0.99972 / (1 + Ec1 * cosv1);--correct Th1 = L1 + C1 Om1 = range(125.04 - 1934.1 * t) om1sin=math.sin(math.rad(Om1)) Lam1 = Th1 - 0.00569 - 0.00478 * math.deg(om1sin); Obl = (84381.448 - 46.815 * t)/3600; --correct th1sin=math.sin(math.rad(Th1)) th1cos=math.cos(math.rad(Th1)) th1tan=math.tan(math.rad(Th1)) oblsin=math.sin(math.rad(Obl)) oblcos=math.cos(math.rad(Obl)) obltan=math.tan(math.rad(Obl)) zsin=math.sin(math.rad(0)) zcos=math.cos(math.rad(0)) ztan=math.tan(math.rad(0)) Ra1 = datan2((th1sin * oblcos - ztan* zsin),th1cos)--close ish Dec1 = math.asin(zsin* oblcos + zcos*oblsin*th1sin)--very close --SUN CALCULATIONS--------------------------------------------------------------- ------------------------------------------------------- delta=math.deg(Dec1) ------------------------------------------------------ sdec=delta --calculate hangle in relation to altitude in relation to time althrtab={} shartab={} total=1440 for i=1,total do sha=180+(i*(360/total)) cossha=math.cos(math.rad(sha)) cossundec=math.cos(math.rad(sdec)) coslat=math.cos(math.rad(latitude)) cosmath=cossha*cossundec*coslat sinsundec=math.sin(math.rad(sdec)) sinlat=math.sin(math.rad(latitude)) sinmath=sinsundec*sinlat sinelevation=cosmath+sinmath elevation=math.deg(math.asin(sinelevation)) curaltlong=elevation curalt=round(curaltlong,2) althrtab[i]=curalt shartab[i]=sha-360 end --############################################# --calculate sunrise and sunset for i=1,(total-1) do if althrtab[i]<0 and althrtab[i+1]>0 then rise=i end if althrtab[i]>0 and althrtab[i+1]<0 then set=i end end rise=rise/60 rises=string.split(rise,"%p") sriseh=rises[1] riseml=string.len(rises[2]) risem=(rises[2]/(10^riseml))*60 risems=string.split(risem,"%p") srisem=risems[1] set=set/60 sets=string.split(set,"%p") sseth=sets[1] setml=string.len(sets[2]) setm=(sets[2]/(10^setml))*60 setms=string.split(setm,"%p") ssetm=setms[1] --############################################# --calculate azimuth for all above points if hemisphere==1 then azitab={} for i=1,total do azmath1=(math.cos(math.rad(shartab[i]))*cossundec*sinlat)-(sinsundec*coslat) azmath2=math.cos(math.rad(althrtab[i])) cosaz=azmath1/azmath2 azi1=math.deg(math.acos(cosaz)) aziplot=azi1 if shartab[i]<0 then azitab[i]=(aziplot-180)*-1 else azitab[i]=aziplot+180 end end end--if hemishpere if hemisphere==2 then azitab={} for i=1,total do azmath1=(math.cos(math.rad(shartab[i]))*cossundec*sinlat)-(sinsundec*coslat) azmath2=math.cos(math.rad(althrtab[i])) cosaz=azmath1/azmath2 azi1=math.deg(math.acos(cosaz)) aziplot=azi1 if shartab[i]<0 then azitab[i]=(aziplot-360)*-1 else azitab[i]=aziplot--+180 end end end--if hemishpere ------------------------------------------------------------------------------ --diplay sun plot for i = 1,total do circrad=0.25 circx=across-180+azitab[i] circy=down-althrtab[i] cairo_arc(cr,circx,circy,circrad,0,2*math.pi) cairo_close_path(cr) cairo_set_source_rgba(cr,0.4,0.4,0.4,1) cairo_fill (cr) end --plot current sun position circrad=7 circx=across-180+azitab[stime] circy=down-althrtab[stime] cairo_arc(cr,circx,circy,circrad,0,2*math.pi) cairo_close_path(cr) cairo_set_source_rgba(cr,1,1,0,1) cairo_fill (cr) ------------------------------- --curerent sun alt and azi sunalt=althrtab[stime] sunazi=azitab[stime] -------------------------------------------- --############################################################################ --draw vertical N-S line cairo_set_line_width (cr, 1) cairo_set_source_rgba(cr,0.5,0.5,0.5,1) cairo_move_to (cr, across, down+100) cairo_line_to (cr, across, down-100) cairo_stroke (cr) --draw horizon cairo_move_to (cr, across-180, down) cairo_line_to (cr, across+180, down) cairo_stroke (cr) if hemisphere==1 then cairo_move_to (cr, across-4, down-102) cairo_show_text (cr, "S") cairo_move_to (cr, across-4, down+109) cairo_show_text (cr, "N") else cairo_move_to (cr, across-4, down-102) cairo_show_text (cr, "N") cairo_move_to (cr, across-4, down+109) cairo_show_text (cr, "S") cairo_stroke (cr) end --################################################################################################################################################ --################################################################################################################################################ --################################################################################################################################################ --################################################################################################################################################ --################################################################################################################################################ --############# MOON CACULATIONS AND DISPLAY ########################################################################################################### --################################################################################################################################################ --################################################################################################################################################ --################################################################################################################################################ --calculate moon data---------------------------------------------------------------- --moon stuff F = range(93.2721 + 483202 * t - 0.003403 * t* t - t * t * t/3526000); L2 = range(218.316 + 481268 * t); Om2 = range(125.045 - 1934.14 * t + 0.002071 * t * t + t * t * t/450000); M2 = range(134.963 + 477199 * t + 0.008997 * t * t + t * t * t/69700); cosm2=math.cos(math.rad(M2)) D = range(297.85 + 445267 * t - 0.00163 * t * t + t * t * t/545900); D2 = 2*D; cosd2m2=math.cos(math.rad(D2-M2)) cosd2=math.cos(math.rad(D2)) R2 = 1 + (-20954 * cosm2 - 3699 * cosd2m2 - 2956 * cosd2 / 385000); R3 = (R2 / R1) / 379.168831168831; sinf=math.sin(math.rad(F)) sinm2f=math.sin(math.rad(M2-F)) sind2f=math.sin(math.rad(D2-F)) Bm = 5.128 * sinf + 0.2806 * sinm2f; Bm = Bm + 0.2777 * sinm2f + 0.1732 * sind2f; sinm2=math.sin(math.rad(M2)) sind2m2=math.sin(math.rad(D2-M2)) sind2=math.sin(math.rad(D2)) Lm = 6.289 * sinm2 + 1.274 * sind2m2 + 0.6583 * sind2; sin2m2=math.sin(math.rad(2*M2)) sin2f=math.sin(math.rad(2*F)) Lm = Lm + 0.2136 * sin2m2 - 0.1851 * sinm1 - 0.1143 * sin2f; sind22m2=math.sin(math.rad(D2-(2*M2))) Lm = Lm +0.0588 * sind22m2 sind2m1m2=math.sin(math.rad(D2-M1-M2)) sind2m22=math.sin(math.rad(D2+M2)) Lm = Lm + 0.0572* sind2m1m2 + 0.0533* sind2m22; Lm = Lm + L2; tanbm=math.tan(math.rad(Bm)) sinbm=math.sin(math.rad(Bm)) cosbm=math.cos(math.rad(Bm)) sinlm=math.sin(math.rad(Lm)) coslm=math.cos(math.rad(Lm)) Ra2 = math.atan((sinlm * oblcos - tanbm* oblsin)); Dec2 = math.asin(sinbm* oblcos + cosbm*oblsin*sinlm); sinlam1lm=math.sin(math.rad(Lam1-Lm)) HLm = range(Lam1 + 180 + (180/math.pi) * R3 * cosbm * sinlam1lm); HBm = R3 * Bm; -------------------------------------------------------------------- --obliquity of ecliptic: eps = 23.0 + 26.0/60.0 + 21.448/3600.0 - (46.8150*T+ 0.00059*T*T- 0.001813*T*T*T)/3600; X = cos(Bm)*cos(Lm) Y = cos(eps)*cos(Bm)*sin(Lm) - sin(eps)*sin(Bm) Z = sin(eps)*cos(Bm)*sin(Lm) - cos(eps)*sin(Bm) R = math.sqrt(1.0-Z*Z); delta = (180/math.pi)*math.atan(Z/R); -- in degrees-- declination RA = (24/math.pi)*math.atan(Y/(X+R)); -- in hours ------------------------------------------------------- delta=math.deg(Dec2) ------------------------------------------------------ sdec=delta althrtab={} shartab={} total=1440 cossundec=math.cos(math.rad(sdec)) coslat=math.cos(math.rad(latitude)) sinlat=math.sin(math.rad(latitude)) sinsundec=math.sin(math.rad(sdec)) sinmath=sinsundec*sinlat for i=0,total do sha=180+(i*(360/total)) cossha=math.cos(math.rad(sha)) cosmath=cossha*cossundec*coslat sinelevation=cosmath+sinmath elevation=math.deg(math.asin(sinelevation)) curaltlong=elevation curalt=round(curaltlong,2) althrtab[i]=curalt shartab[i]=sha-360 end --############################################# --calculate moonrise and moonset for i=1,(total-1) do if althrtab[i]<0 and althrtab[i+1]>0 then rise=i end if althrtab[i]>0 and althrtab[i+1]<0 then set=i end end rise=rise/60 rises=string.split(rise,"%p") mriseh=rises[1] riseml=string.len(rises[2]) risem=(rises[2]/(10^riseml))*60 risems=string.split(risem,"%p") mrisem=risems[1] set=set/60 sets=string.split(set,"%p") mseth=sets[1] setml=string.len(sets[2]) setm=(sets[2]/(10^setml))*60 setms=string.split(setm,"%p") msetm=setms[1] --############################################# --calculate azimuth for all above points if hemisphere==1 then azitab={} for i=1,total do azmath1=(math.cos(math.rad(shartab[i]))*cossundec*sinlat)-(sinsundec*coslat) azmath2=math.cos(math.rad(althrtab[i])) cosaz=azmath1/azmath2 azi1=math.deg(math.acos(cosaz)) aziplot=azi1 if shartab[i]<0 then azitab[i]=(aziplot-180)*-1 else azitab[i]=aziplot+180 end end end--if hemishpere if hemisphere==2 then azitab={} for i=1,total do azmath1=(math.cos(math.rad(shartab[i]))*cossundec*sinlat)-(sinsundec*coslat) azmath2=math.cos(math.rad(althrtab[i])) cosaz=azmath1/azmath2 azi1=math.deg(math.acos(cosaz)) aziplot=azi1 if shartab[i]<0 then azitab[i]=(aziplot-360)*-1 else azitab[i]=aziplot end end end--if hemishpere ------------------------------------------------------------------------------ --diplay moon plot for i = 1,total do circrad=0.25 circx=across-180+azitab[i] circy=down-althrtab[i] cairo_arc(cr,circx,circy,circrad,0,2*math.pi) cairo_close_path(cr) cairo_set_source_rgba(cr,0.7,0.7,0.7,1) cairo_fill (cr) end --plot current moon position madj=tostring(rangei(sgtime+360)) mtime=madj circrad=5 circx=across-180+(azitab[tonumber(mtime)]) circy=down-(althrtab[tonumber(mtime)]) cairo_arc(cr,circx,circy,circrad,0,2*math.pi) cairo_close_path(cr) cairo_set_source_rgba(cr,1,1,1,1) cairo_fill (cr) ------------------------------- --curerent moon alt and azi moonalt=althrtab[tonumber(mtime)] moonazi=azitab[tonumber(mtime)] --------------------------------------------- --################################################################################################################################################ --################################################################################################################################################ --############# TEXT DISPLAYS ########################################################################################################### --################################################################################################################################################ --################################################################################################################################################ --################################################################################################################################################ --draws text label font="Mono" fontsize=10 cairo_select_font_face (cr, font, CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL); cairo_set_font_size (cr, fontsize); cairo_set_source_rgba (cr, 0.1, 0.1, 0.1, 0.5); --top left - sun moon alt and azi tlx=20 tly=20 adj=10 cairo_move_to (cr, tlx, tly) cairo_show_text (cr, "Positions") gap=10 add=fontsize+((fontsize/100)*adj)+gap cairo_move_to (cr, tlx, tly+add) cairo_show_text (cr, "Soleil") add=fontsize+((fontsize/100)*adj)+add cairo_move_to (cr, tlx, tly+add) cairo_show_text (cr, "Azimut " .. round(sunazi,2) .. "°") add=fontsize+((fontsize/100)*adj)+add cairo_move_to (cr, tlx, tly+add) cairo_show_text (cr, "Altitude " .. sunalt .. "°") gap=10 add=fontsize+((fontsize/100)*adj)+add+gap cairo_move_to (cr, tlx, tly+add) cairo_show_text (cr, "Lune") add=fontsize+((fontsize/100)*adj)+add cairo_move_to (cr, tlx, tly+add) cairo_show_text (cr, "Azimut " .. round(moonazi,2) .. "°") add=fontsize+((fontsize/100)*adj)+add cairo_move_to (cr, tlx, tly+add) cairo_show_text (cr, "Altitude " .. moonalt .. "°") tlx=180 tly=20 adj=10 cairo_move_to (cr, tlx, tly) cairo_show_text (cr, "Heure") gap=10 add=fontsize+((fontsize/100)*adj)+gap cairo_move_to (cr, tlx, tly+add) cairo_show_text (cr, "Heure Locale: " .. H .. ":" .. Min) add=fontsize+((fontsize/100)*adj)+add cairo_move_to (cr, tlx, tly+add) cairo_show_text (cr, "Heure Sidérale: " .. GMST24H .. ":" .. GMST24M ) add=fontsize+((fontsize/100)*adj)+add cairo_move_to (cr, tlx, tly+add) cairo_show_text (cr, "Heure Solaire : " .. LST24H .. ":" .. LST24M) cairo_stroke (cr) --####################################################################### --########################################################################################### --########################################################################################### --########################################################################################### --########################################################################################### end-- end if updates = end--end main function

Audacious cliquable
Un autre conky cliquable pour audacious tirer d'un skin covergloobus sur deviantart
le conkyrc
Code :
# -- Conky settings -- #
background no
update_interval 0.5
cpu_avg_samples 2
net_avg_samples 2
override_utf8_locale yes
double_buffer yes
no_buffers yes
text_buffer_size 1024
imlib_cache_size 15000
max_specials 10000
max_user_text 15000
diskio_avg_samples 2
format_human_readable yes
border_inner_margin 0
border_outer_margin 0
# -- Window specifications -- #
own_window yes
own_window_type normal
own_window_transparent no
own_window_argb_visual yes
own_window_argb_value 0
own_window_hints undecorate,skip_taskbar,skip_pager,below
own_window_title media
minimum_size 412 176
maximum_width 412
alignment top_right
gap_x 40
gap_y 820
# -- Graphics settings -- #
draw_shades no
draw_outline no
draw_borders yes
draw_graph_borders no
border_width 0
default_bar_size 210 4
default_color 000000
# -- Text settings -- #
use_xft yes
xftfont GE Inspira:size=8
color1 92deee
color2 668c95
color3 d0fefb
color4 2f3d40
color5 ff6c4a
lua_load ~/.conky/audacious/scripts/button_script.lua
lua_draw_hook_pre get_mouse {"media","/tmp/xdo"}
lua_startup_hook start_xdo /tmp/xdo
#lua_shutdown_hook stop_xdo
lua_load ~/.conky/audacious/scripts/lua_functions.lua
lua_load ~/.conky/lua/image.lua
template1 ${lua rc_button {btype=3,bname="button1",blx_off=278,bly_off=75,bw_off=22,bh_off=12}}
template2 ${lua rc_button {btype=3,bname="button2",blx_off=216,bly_off=75,bw_off=22,bh_off=12}}
template3 ${lua rc_button {btype=3,bname="button3",blx_off=185,bly_off=75,bw_off=22,bh_off=12}}
template4 ${lua rc_button {btype=3,bname="button4",blx_off=247,bly_off=75,bw_off=22,bh_off=12}}
template5 ${lua rc_button {btype=3,bname="button5",blx_off=309,bly_off=75,bw_off=22,bh_off=12}}
TEXT
${execi 3 ~/.conky/audacious/scripts/cover.sh}
${lua fDrawImage ~/.conky/audacious/casee.png 0 0 410 138}${lua fDrawImage ~/.conky/audacious/audacious.png 40 32 70 70}${lua fDrawImage ~/.conky/audacious/album.png 28 20 93 92}${voffset -30}${font GE Inspira :size=14}
${alignc -50}${execi 3 audtool current-song-tuple-data artist}${font}
${alignc -50}${execi 3 audtool current-song-tuple-data title}
${alignc -50}${execi 3 audtool current-song-tuple-data album}
${goto 160}${execi 1 audtool current-song-output-length} ${goto 348}${execi 1 audtool current-song-length}
${voffset 10}${goto 160}${color 000000}${execbar expr 100 \* $(audtool --current-song-output-length-seconds) \/ $(audtool --current-song-length-seconds)}$color\
${goto 160}${color ffffff}${execbar echo 0}
${if_match ${template1}==0}
${else}${lua fDrawImage ~/.conky/audacious/images/Orange.png 360 5 35 35}${exec audacious --pause}
${endif}
${if_match ${template2}==0}
${else}${lua fDrawImage ~/.conky/audacious/images/Orange.png 360 5 35 35}${exec audacious --stop}
${endif}
${if_match ${template3}==0}
${else}${lua fDrawImage ~/.conky/audacious/images/Orange.png 360 5 35 35}${exec audacious --rew}
${endif}
${if_match ${template4}==0}
${else}${lua fDrawImage ~/.conky/audacious/images/Orange.png 360 5 35 35}${exec audacious --play}
${endif}
${if_match ${template5}==0}
${else}${lua fDrawImage ~/.conky/audacious/images/Orange.png 360 5 35 35}${exec audacious --fwd}
${endif}
${lua fDrawImage ~/.conky/audacious/ppause.png 278 65 30 15}
${lua fDrawImage ~/.conky/audacious/pstop.png 216 65 30 15}
${lua fDrawImage ~/.conky/audacious/pprev.png 185 65 30 15}
${lua fDrawImage ~/.conky/audacious/pplay.png 247 65 30 15}
${lua fDrawImage ~/.conky/audacious/pnext.png 309 65 30 15}
${voffset -350}

Conky olgmen
le conkyrc
Code :
background no
use_xft yes
xftfont URW Chancery L:style=Bold:size=10
xftalpha 1
update_interval 1.0
total_run_times 0
own_window yes
own_window_transparent yes
own_window_argb_visual yes
own_window_type normal
own_window_hints undecorated,below,skip_taskbar,skip_pager
double_buffer yes
minimum_size 100 640
maximum_width 100
text_buffer_size 1024
draw_shades no
draw_outline no
draw_borders no
border_width 1
draw_graph_borders no
default_color ffffff
default_outline_color cacaca
alignment top_left
gap_x 0
gap_y 100
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale yes
#
color1 ffff00
#
color2 6495ee
#
color3 ffffff
#
color4 ffffff
#
color5 6495ee
#
color6 red
#cornflowerblue
# — Lua Load — #
lua_load ~/.conky/olgmen/scripts/data_comp.lua
lua_draw_hook_pre conky_widgets
TEXT
le lua principal
Code :
--[[data_comp.lua par olgmen le 25/12/2011
Francisation par loutch
fonction affiche des données sur le fonctionnement du processeur, de la mémoire, de l'Internet
pour exécuter cette fonction, il est nécessaire dans conkyrc, au-dessus du mot TEXT ajouter les lignes suivantes
# - Lua Load - #
lua_load ~ / scripts / data_comp.lua
lua_draw_hook_pre conky_widgets
Toutes les données sont calculées pour une utilisation dans la fenêtre conky avec la taille de 1260x675 (dans tout mon écran)
]]
require "cairo"
-- définir la section d'accueil, pour la capacité de travailler à partir de n'importe quel ordinateur
usrhome = os.getenv("HOME")
-- les scripts nécessaires sont dans le dossier des scripts
--dofile (usrhome .."/scripts/backgraund.lua") -- arrière-plan de sortie de script, cadres
dofile (usrhome .."/.conky/olgmen/scripts/text1.lua") -- script sorties textes
dofile (usrhome .."/.conky/olgmen/scripts/scale1.lua") -- sorties de script échelles
text_color = {{0, 0xffffff, 1},{0.5, 0xffffff, 1},{1, 0xffffff, 1}}
-- fonction qui démarre tout affiché dans la fenêtre conky. Toutes les données sont calculées pour une utilisation dans la fenêtre conky avec la taille de 1260x675 (dans tout mon écran)
function conky_widgets()
text_settings = {
{
text ="Processeurs" ,
x = 20,
y = 10,
font_size = 12,
bold = false,
h_align = "l",
v_align = "m",
colour = text_color,
orientation="nn",
},
{
text ="CPU1" .. " " .. "°C",
x = 15,
y = 25,
font_size = 9,
bold = false,
h_align = "l",
v_align = "m",
colour = text_color,
orientation="nn",
},
{
text ="CPU2" .. " " .. "°C",
x = 15,
y = 100,
font_size = 9,
bold = false,
h_align = "l",
v_align = "m",
colour = text_color,
orientation="nn",
},
{
text ="Mémoire" ,
x = 30,
y = 175,
font_size = 12,
bold = false,
h_align = "l",
v_align = "m",
colour = text_color,
orientation="nn",
},
{
text ="Ram" .." ".."Swap" ,
x = 15,
y = 190,
font_size = 9,
bold = false,
h_align = "l",
v_align = "m",
colour = text_color,
orientation="nn",
},
{
text ="Disques" ,
x = 36,
y = 275,
font_size = 12,
bold = false,
h_align = "l",
v_align = "m",
colour = text_color,
orientation="nn",
},
{
text ="/" .." ".."/Home" ,
x = 25,
y = 290,
font_size = 9,
bold = false,
h_align = "l",
v_align = "m",
colour = text_color,
orientation="nn",
},
{
text ="Températures" ,
x = 16,
y = 375,
font_size = 12,
bold = false,
h_align = "l",
v_align = "m",
colour = text_color,
orientation="nn",
},
{
text ="Sda" .." ".."Carte" ,
x = 15,
y = 390,
font_size = 9,
bold = false,
h_align = "l",
v_align = "m",
colour = text_color,
orientation="nn",
},
{
text ="Internet" ,
x = 36,
y = 475,
font_size = 12,
bold = false,
h_align = "l",
v_align = "m",
colour = text_color,
orientation="nn",
},
{
text = "Entrant" .. " " .. "Sortant",
x = 15,
y = 490,
font_size = 9,
bold = false,
h_align = "l",
v_align = "m",
colour = text_color,
orientation="nn",
},
{
text = conky_parse("${totaldown wlp2s0}"),
x = 10,
y = 565,
font_size = 8,
bold = false,
h_align = "l",
v_align = "m",
colour = text_color,
orientation="nn",
},
{
text = conky_parse("${totalup wlp2s0}"),
x = 70,
y = 565,
font_size = 8,
bold = false,
h_align = "l",
v_align = "m",
colour = text_color,
orientation="nn",
},
{
text ="Processus" .. " " .. "Mém" .. " " .. "Cpu",
x = 10,
y = 585,
font_size = 9,
bold = false,
h_align = "l",
v_align = "m",
colour = text_color,
orientation="nn",
},
{
text = conky_parse("${top name 1}"),
x = 5,
y = 600,
font_size = 7,
bold = false,
h_align = "l",
v_align = "m",
colour = text_color,
orientation="nn",
},
{
text = conky_parse("${top mem 1)}%"),
x = 65,
y = 600,
font_size = 7,
bold = false,
h_align = "c",
v_align = "m",
colour = text_color ,--{{0, 0x550000, 1},{0.5, 0xff0000, 1},{1, 0x550000, 1}},
orientation="nn",
},
{
text = conky_parse("${top cpu 1}%"),
x = 95,
y = 600,
font_size = 7,
bold = false,
h_align = "c",
v_align = "m",
colour = text_color ,--{{0, 0x550000, 1},{0.5, 0xff0000, 1},{1, 0x550000, 1}},
orientation="nn",
},
{
text = conky_parse("${top name 2}"),
x = 5,
y = 610,
font_size = 7,
bold = false,
h_align = "l",
v_align = "m",
colour = text_color , --{{0, 0x550000, 1},{0.5, 0xcf5500, 1},{1, 0x550000, 1}},
orientation="nn",
},
{
text = conky_parse("${top mem 2)}%"),
x = 65,
y = 610,
font_size = 7,
bold = false,
h_align = "c",
v_align = "m",
colour = text_color ,--{{0, 0x550000, 1},{0.5, 0xcf5500, 1},{1, 0x550000, 1}},
orientation="nn",
},
{
text = conky_parse("${top cpu 2}%"),
x = 95,
y = 610,
font_size = 7,
bold = false,
h_align = "c",
v_align = "m",
colour = text_color , --{{0, 0x550000, 1},{0.5, 0xcf5500, 1},{1, 0x550000, 1}},
orientation="nn",
},
{
text = conky_parse("${top name 3}"),
x = 5,
y = 620,
font_size = 7,
bold = false,
h_align = "l",
v_align = "m",
colour = text_color , --{{0, 0x550000, 1},{0.5, 0xcfa500, 1},{1, 0x550000, 1}},
orientation="nn",
},
{
text = conky_parse("${top mem 3)}%"),
x = 65,
y = 620,
font_size = 7,
bold = false,
h_align = "c",
v_align = "m",
colour = text_color ,--{{0, 0x550000, 1},{0.5, 0xcfa500, 1},{1, 0x550000, 1}},
orientation="nn",
},
{
text = conky_parse("${top cpu 3}%"),
x = 95,
y = 620,
font_size = 7,
bold = false,
h_align = "c",
v_align = "m",
colour = text_color ,--{{0, 0x550000, 1},{0.5, 0xcfa500, 1},{1, 0x550000, 1}},
orientation="nn",
},
{
text = conky_parse("${top name 4}"),
x = 5,
y = 630,
font_size = 7,
bold = false,
h_align = "l",
v_align = "m",
colour = text_color ,--{{0, 0x555500, 1},{0.5, 0xcfcf00, 1},{1, 0x555500, 1}},
orientation="nn",
},
{
text = conky_parse("${top mem 4)}%"),
x = 65,
y = 630,
font_size = 7,
bold = false,
h_align = "c",
v_align = "m",
colour = text_color ,--{{0, 0x555500, 1},{0.5, 0xcfcf00, 1},{1, 0x555500, 1}},
orientation="nn",
},
{
text = conky_parse("${top cpu 4}%"),
x = 95,
y = 630,
font_size = 7,
bold = false,
h_align = "c",
v_align = "m",
colour = text_color ,--{{0, 0x555500, 1},{0.5, 0xcfcf00, 1},{1, 0x555500, 1}},
orientation="nn",
},
{
text = conky_parse("${top name 5}"),
x = 5,
y = 640,
font_size = 7,
bold = false,
h_align = "l",
v_align = "m",
colour = text_color,
orientation="nn",
},
{
text = conky_parse("${top mem 5)}%"),
x = 65,
y = 640,
font_size = 7,
bold = false,
h_align = "c",
v_align = "m",
colour = text_color,
orientation="nn",
},
{
text = conky_parse("${top cpu 5}%"),
x = 95,
y = 640,
font_size = 7,
bold = false,
h_align = "c",
v_align = "m",
colour = text_color,
orientation="nn",
},
}
-- dériver des échelles
scale_settings = {
{
name = "cpu",
arg = "cpu0",
x = 10,
y = 30,
width = 35,
height = 60,
scale = 16,
colour_scale = {{0, 0xffffff, 1},{0.5, 0xffffff, 1},{1, 0xffffff, 1}},
font_size = 9,
},
{
name = "exec",
arg = "expr `cat /sys/class/hwmon/hwmon2/temp1_input` / 1000",
x = 70,
y = 30,
width = 35,
height =60,
scale = 16,
colour_scale = {{0, 0xff0000, 1},{0.5, 0xffffff, 1},{1, 0x0000ff, 1}},
font_size = 9,
},
{
name = "cpu",
arg = "cpu1",
x = 10,
y = 105,
width = 35,
height = 60,
scale = 16,
colour_scale = {{0, 0xffffff, 1},{0.5, 0xffffff, 1},{1, 0xffffff, 1}},
font_size = 9,
},
{
name = "exec",
arg = "expr `cat /sys/class/hwmon/hwmon2/temp2_input` / 1000",
x = 70,
y = 105,
width = 35,
height = 60,
scale = 16,
colour_scale = {{0, 0xff0000, 1},{0.5, 0xffffff, 1},{1, 0x0000ff, 1}},
font_size = 9,
},
{
name = "memperc",
arg = "",
x = 10,
y = 200,
width = 35,
height = 60,
scale = 16,
colour_scale = {{0, 0xffffff, 1},{0.5, 0xffffff, 1},{1, 0xffffff, 1}},
font_size = 9,
},
{
name = "swapperc",
arg = "",
x = 70,
y = 200,
width = 35,
height = 60,
scale = 16,
colour_scale = {{0, 0xffffff, 1},{0.5, 0xffffff, 1},{1, 0xffffff, 1}},
font_size = 9,
},
{
name = "fs_used_perc",
arg = "/",
x = 10,
y = 300,
width = 35,
height = 60,
scale = 16,
colour_scale = {{0, 0xffffff, 1},{0.5, 0xffffff, 1},{1, 0xffffff, 1}},
font_size = 9,
},
{
name = "fs_used_perc",
arg = "/home",
x = 70,
y = 300,
width = 35,
height = 60,
scale = 16,
colour_scale = {{0, 0xffffff, 1},{0.5, 0xffffff, 1},{1, 0xffffff, 1}},
font_size = 9,
},
{
name = "execi",
arg = "120 hddtemp -n /dev/sda",
x = 10,
y = 400,
width = 35,
height = 60,
scale = 16,
colour_scale = {{0, 0xff0000, 1},{0.5, 0xffffff, 1},{1, 0x0000ff, 1}},
font_size = 9,
},
{
name = "hwmon",
arg = "1 temp 1",
x = 70,
y = 400,
width = 35,
height = 60,
scale = 16,
colour_scale = {{0, 0xff0000, 1},{0.5, 0xffffff, 1},{1, 0x0000ff, 1}},
font_size = 9,
},
{
name = "",
arg = math.ceil(conky_parse("${downspeedf wlp2s0}")),
x = 10,
y = 500,
width = 35,
height = 60,
scale = 16,
colour_scale = {{0, 0xffffff, 1},{0.5, 0xffffff, 1},{1, 0xffffff, 1}},
font_size = 9,
},
{
name = "",
arg = math.ceil(conky_parse("${upspeedf wlp2s0}")),
x = 70,
y = 500,
width = 35,
height = 60,
scale = 16,
colour_scale = {{0, 0xffffff, 1},{0.5, 0xffffff, 1},{1, 0xffffff, 1}},
font_size = 9,
},
}
-- --------------------------------------------------------------------
--[[ Ici, l'entrée de toutes les données se termine ]]
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)
--[[ ÉCHELLES ]]
for i,v in pairs(scale_settings) do
cr = cairo_create (cs)
dialgraph(v)
cairo_destroy(cr)
end
-- sortie de texte
for i,v in pairs(text_settings) do
cr = cairo_create (cs)
display_text(v)
cairo_destroy(cr)
end
end -- fonction de fermeture
text.lua
Code :
--[[TEXT WIDGET v1.42 par Wlourf le 07 février 2011
Ce widget peut dessiner des textes dans la table "text_settings" avec quelques paramètres
http://u-scripts.blogspot.com/2010/06/text-widget.html
Pour appeler le script dans un conky, utilisez, avant TEXT
lua_load /path/to/the/script/graph.lua
lua_draw_hook_pre main_graph
et ajoutez une ligne (vide ou non) après TEXT
Les paramètres (tous les optionnels) sont:
texte - texte à afficher, défaut = "Conky est bon pour vous"
il peut être utilisé avec des variables conky, c'est-à-dire text = "mon cpu1 est $ {cpu cpu1}%")
- les coordonnées ci-dessous sont relatives au coin supérieur gauche de la fenêtre conique
x - x coordonnée de la première lettre (en bas à gauche), par défaut = centre de la fenêtre conky
y - y coordonnée de la première lettre (en bas à gauche), par défaut = centre de la fenêtre conky
h_align - alignement horizontal du texte par rapport au point (x, y), défaut = "l"
les valeurs disponibles sont "l": gauche, "c": centre, "r": droite
v_align - alignement vertical du texte par rapport au point (x, y), défaut = "b"
valeurs disponibles "t": haut, "m": milieu, "b": bas
font_name - nom de la police à utiliser, default = Free Sans
font_size - taille de la police à utiliser, par défaut = 14
italique - affiche le texte en italique (vrai / faux), défaut = faux
oblique - affiche le texte en oblique (vrai / faux), défaut = faux (je ne vois pas la différence avec italique!)
bold - affiche le texte en gras (vrai / faux), défaut = faux
angle - rotation du texte en degrés, par défaut = 0 (horizontal)
couleur - table de couleurs pour le texte, par défaut = blanc uni {{1,0xFFFFFF, 1}}
cette table contient une ou plusieurs tables au format {P, C, A}
P = position du dégradé (0 = début du texte, 1 = fin du texte)
C = couleur hexadécimale
A = alpha (opacité) de la couleur (0 = invisible, 1 = opacité 100%)
Exemples :
pour une couleur unie {{1,0x00FF00,0.5}}
pour un dégradé avec deux couleurs {{0,0x00FF00,0.5}, {1,0x000033,1}}
ou {{0.5,0x00FF00,1}, {1,0x000033,1}} - avec celui-ci, le dégradé commencera au milieu du texte
pour un dégradé avec trois couleurs {{0,0x00FF00,0.5}, {0.5,0x000033,1}, {1,0x440033,1}}
etc ...
orientation - en cas de gradient, "orientation" définit le point de départ du dégradé, défaut = "ww"
il y a 8 points de départ disponibles: "nw", "nn", "ne", "ee", "se", "ss", "sw", "ww"
(n pour le nord, w pour l'ouest ...)
thèses 8 points sont les 4 coins + les 4 milieux du contour du texte
donc un gradient "nn" passera de "nn" à "ss" (de haut en bas, parallélisé au texte)
un gradient "nw" passera de "nw" à "se" (coin supérieur gauche à coin inférieur droit)
radial - définit un gradient radial (si présent en même temps que "orientation", "orientation" n'aura aucun effet)
ce paramètre est une table avec 6 nombres: {xa, ya, ra, xb, yb, rb}
ils définissent deux cercles pour le dégradé:
xa, ya, xb et yb sont relatifs aux valeurs x et y ci-dessus
reflection_alpha - ajoute un effet de réflexion (valeurs de 0 à 1) défaut = 0 = pas de réflexion
autres valeurs = début de l'opacité
reflection_scale - échelle de la réflexion (par défaut = 1 = hauteur du texte)
reflection_length - longueur de la réflexion, définir où l'opacité sera mise à zéro
calues de 0 à 1, défaut = 1
skew_x, skew_y - incline le texte autour de l'axe x ou y
draw_me - si défini sur false, le texte n'est pas dessiné (par défaut = true ou 1)
il peut être utilisé avec une chaîne conky, si la chaîne renvoie 1, le texte est dessiné:
exemple: "$ {if_empty $ {sans fil wlan0}} $ {else} 1 $ endif",
v1.0 07/06/2010, Version originale
v1.1 10/06/2010 Ajouter un paramètre "orientation"
v1.2 15/06/2010 Ajout des paramètres "h_align", "v_align" et "radial"
v1.3 25/06/2010 Ajouter "reflection_alpha", "reflection_length", "reflection_scale",
"skew_x" et "skew_y"
v1.4 07/01/2011 Ajout du paramètre draw_me et correction des fuites de mémoire grâce à "Creamy Goodness"
le texte est analysé à l'intérieur de la fonction, pas dans le tableau de paramètres
v1.41 26/01/2011 Correction d'un bug pour h_align = "c"
v1.42 09/02/2011 Corriger bug pour l'orientation = "ee"
- Ce programme est un logiciel libre; vous pouvez le redistribuer et / ou modifier
- sous les termes de la Licence Publique Générale GNU telle que publiée par
- la Free Software Foundation version 3 (GPLv3)
-
- Ce programme est distribué dans l'espoir qu'il sera utile,
- mais SANS AUCUNE GARANTIE; sans même la garantie implicite de
- QUALITÉ MARCHANDE ou ADAPTATION À UN USAGE PARTICULIER. Voir le
- Licence publique générale GNU pour plus de détails.
-
- Vous devriez avoir reçu une copie de la Licence Publique Générale GNU
- avec ce programme; sinon, écrivez au logiciel libre
- Foundation, Inc., 51 rue Franklin, cinquième étage, Boston,
- MA 02110-1301, États-Unis.
Suggérer une modification
]]
require 'cairo'
function conky_draw_text()
local text_settings={
--BEGIN OF PARAMETERS
{--display a text at coordinates 20,20
text="unformatted text",
x=20,
y=20,
},
--[[
{--display a text at coordinates 20,40, with selected font and size, true and bold
text="bold and italic text",
x=20,
y=40,
font_name="Verdana",
font_size=18,
italic=true,
bold=true,
draw_me="${if_empty ${wireless_essid wlan0}}${else}1$endif",
},
{--display a text at coordinates 20,70, in green with opacity 0.8 and "oblique"
text="green text",
x=20,
y=70,
font_name="Verdana",
font_size=18,
oblique=true,
--colour table contains one or more tables with 3 elements, here:
--1 = starting point for gradient (0= beginning of the text, 1= end of the text)
--0x00FF00 = colour in hexadecimal
--0.8 = opacity (0=invisible, 1=opacity 100%)
colour={{1,0x00FF00,0.8}}
},
{--display a text at coordinates 20,100, with a red green blue gradient
text="text with gradient (ww)", --(default orientation=ww)
x=20,
y=100,
font_name="Clarendon",
font_size=25,
colour={{0,0xFF0000,0.9},{0.5,0x00FF00,1},{1,0xFFFF00,0.9}},
},
{--display a text at coordinates 20,130, with a red green yellow gradient
text="text with gradient (nn)",
x=20,
y=130,
font_name="Clarendon",
font_size=25,
orientation="nn",
colour={{0,0xFF0000,1},{0.5,0x00FF00,1},{1,0xFFFF00,1}},
},
{--display a text at coordinates 40,290, with a yellow blue yellow gradient
--with a 30° angle
text="text at 30 degrees",
x=400,
y=190,
colour={{0,0xFFFF00,1},{0.5,0x0000FF,1},{1,0xFFFF00,1}},
angle=-30,
font_name="Clarendon",
font_size=32
},
{--text with 5 colours gradient
text="vertical text",
x=50,
y=450,
colour={{0 ,0xFF0000,1},
{0.25 ,0xFFFF00,1},
{0.50 ,0x00FF00,1},
{0.75 ,0x00FFFF,1},
{1 ,0x0000FF,1}
},
angle=-90,
font_name="Clarendon",
font_size=40,
orientation="nw"
},
{--vertical text with 3 colours gradient
text="\"bumped\" effect",
x=250,
y=270,
colour={{0 ,0xDDDDDD,0.15},
{0.50 ,0xFFFFFF,1},
{1 ,0xDDDDDD,0.15}
},
font_name="Clarendon",
font_size=35,
orientation="nn"
},
--radial gradient
{
text="radial gradient",
x=400,
y=350,
font_name="Clarendon",
font_size="48",
colour={
{0.8,0xF0FFF0,1},
{1.00,0xF0F0FF,0.1},
},
h_align="c",
radial={0,300,0,0,300,370}
},
{
text="another radial gradient",
x=400,
y=400,
font_name="Clarendon",
font_size="48",
colour={
{0.98, 0xFFFF00,1},
{0.99, 0xFF0000,1},
{1.00, 0xFF00FF,1},
},
h_align="c",
v_align="m",
radial={0,-1000,0,0,-1000,1020}
},
{--display a text with some conly variables
--use two dots to concatenate texts
text="text with some conky, cpu= ${cpu} %",
x=20,
y=660,
colour={{0,0xFFFF00,1},{0.5,0xFF0000,1},{1,0xFFFF00,1}},
font_name="Purisa",
bold=true,
font_size=38
},
--text with shadow:
]]
{
text=conky_parse("${uptime}"),
x=50,
y=100,
font_name="Clarendon",
font_size=24,
colour={{0,0xFFFF00,1},{0.5,0xFF0000,1},{1,0xFFFF00,1}},
orientation="ww",
},
{
text='text with shadow #1',
x=298,
y=498,
font_name="Clarendon",
font_size=50,
colour={{0,0xFFFF00,1}},
orientation="ww",
},
--blur effect
{
text='blur effect',
x=300,
y=550,
font_name="Clarendon",
font_size=50,
colour={{0.00,0x00FF00,0.35},
},
},
{
text='blur effect',
x=299,
y=549,
font_name="Clarendon",
font_size=50,
colour={{0.00,0x00FF00,0.35},
},
},
{
text='blur effect',
x=301,
y=551,
font_name="Clarendon",
font_size=50,
colour={{0.00,0x00FF00,0.35},
},
},
--focus effect
{
text='focus effect #1',
x=300,
y=600,
font_name="Clarendon",
font_size=50,
colour={{0.00,0x00FFFF,0},
{0.50,0x00FFFF,1},
{1.00,0x00FFFF,0},
},
orientation="ww",
},
{
text='focus effect #1',
x=300,
y=599,
font_name="Clarendon",
font_size=50,
colour={{0.00,0x00FFFF,0.5},
{0.50,0x00FFFF,0},
{1.00,0x00FFFF,0.5},
},
orientation="ww",
},
{
text='focus effect #1',
x=300,
y=601,
font_name="Clarendon",
font_size=50,
colour={{0.00,0x00FFFF,0.5},
{0.50,0x00FFFF,0},
{1.00,0x00FFFF,0.5},
},
orientation="ww",
},
--focus effect 2
{
text='focus effect #2',
x=300,
y=720,
font_name="Clarendon",
font_size=50,
colour={{0.00,0x00FFFF,1},
{1,0x00FFFF,0},
},
},
{
text='focus effect #2',
x=299,
y=719,
font_name="Clarendon",
font_size=50,
colour={{0.00,0x00FFFF,0},
{1,0x00FFFF,0.25},
},
},
{
text='focus effect #2',
x=301,
y=721,
font_name="Clarendon",
font_size=50,
colour={{0.00,0x00FFFF,0},
{1,0x00FFFF,0.25},
},
},
--text with reflection
{
text="${time %H:%M:%S}",
y=730,
x=50,
font_name="Ubuntu-title",
font_size=50,
colour={{0,0xFF0000,1},{1,0xCCCCCC,1}},
orientation="nn",
reflection_alpha=0.8,
reflection_length=0.9
},
--skew x
{
text="skew x",
font_size=24,
colour={{0,0x00FF00,1},{1,0x00FFFF,1}},
x=30,
y=500,
skew_x=-10
},
--skew y
{
text="skew y",
font_size=24,
colour={{0,0x00FF00,1},{1,0x00FFFF,1}},
x=150,
y=500,
skew_y=10
},
--skew x + skew y
{
text="skew x-y",
font_size=24,
colour={{0,0x00FF00,1},{1,0x00FFFF,1}},
x=30,
y=550,
skew_y=10,
skew_x=10
},
--skew x + skew y
{
text="skew x-y",
font_size=24,
colour={{0,0x00FF00,1},{1,0x00FFFF,1}},
x=150,
y=550,
skew_y=10,
skew_x=10,
reflection_alpha=0.8,
reflection_scale=2,
reflection_length=1.5
},
}
--------------END OF PARAMETERS----------------
if conky_window == nil then return end
if tonumber(conky_parse("$updates"))<3 then return end
local cs = cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, conky_window.width, conky_window.height)
for i,v in pairs(text_settings) do
cr = cairo_create (cs)
display_text(v)
cairo_destroy(cr)
cr = nil
end
cairo_surface_destroy(cs)
end
function rgb_to_r_g_b2(tcolour)
local colour,alpha=tcolour[2],tcolour[3]
return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end
function display_text(t)
if t.draw_me==true then t.draw_me = nil end
if t.draw_me~=nil and conky_parse(tostring(t.draw_me)) ~= "1" then return end
local function set_pattern(te)
--this function set the pattern
if #t.colour==1 then
cairo_set_source_rgba(cr,rgb_to_r_g_b2(t.colour[1]))
else
local pat
if t.radial==nil then
local pts=linear_orientation(t,te)
pat = cairo_pattern_create_linear (pts[1],pts[2],pts[3],pts[4])
else
pat = cairo_pattern_create_radial (t.radial[1],t.radial[2],t.radial[3],t.radial[4],t.radial[5],t.radial[6])
end
for i=1, #t.colour do
cairo_pattern_add_color_stop_rgba (pat, t.colour[i][1], rgb_to_r_g_b2(t.colour[i]))
end
cairo_set_source (cr, pat)
cairo_pattern_destroy(pat)
end
end
--set default values if needed
if t.text==nil then t.text="Conky is good for you !" end
if t.x==nil then t.x = conky_window.width/2 end
if t.y==nil then t.y = conky_window.height/2 end
if t.colour==nil then t.colour={{1,0xFFFFFF,1}} end
if t.font_name==nil then t.font_name="Free Sans" end
if t.font_size==nil then t.font_size=14 end
if t.angle==nil then t.angle=0 end
if t.italic==nil then t.italic=false end
if t.oblique==nil then t.oblique=false end
if t.bold==nil then t.bold=false end
if t.radial ~= nil then
if #t.radial~=6 then
print ("error in radial table")
t.radial=nil
end
end
if t.orientation==nil then t.orientation="ww" end
if t.h_align==nil then t.h_align="l" end
if t.v_align==nil then t.v_align="b" end
if t.reflection_alpha == nil then t.reflection_alpha=0 end
if t.reflection_length == nil then t.reflection_length=1 end
if t.reflection_scale == nil then t.reflection_scale=1 end
if t.skew_x==nil then t.skew_x=0 end
if t.skew_y==nil then t.skew_y=0 end
cairo_translate(cr,t.x,t.y)
cairo_rotate(cr,t.angle*math.pi/180)
cairo_save(cr)
local slant = CAIRO_FONT_SLANT_NORMAL
local weight = CAIRO_FONT_WEIGHT_NORMAL
if t.italic then slant = CAIRO_FONT_SLANT_ITALIC end
if t.oblique then slant = CAIRO_FONT_SLANT_OBLIQUE end
if t.bold then weight = CAIRO_FONT_WEIGHT_BOLD end
cairo_select_font_face(cr, t.font_name, slant,weight)
for i=1, #t.colour do
if #t.colour[i]~=3 then
print ("error in color table")
t.colour[i]={1,0xFFFFFF,1}
end
end
local matrix0 = cairo_matrix_t:create()
tolua.takeownership(matrix0)
local skew_x,skew_y=t.skew_x/t.font_size,t.skew_y/t.font_size
cairo_matrix_init (matrix0, 1,skew_y,skew_x,1,0,0)
cairo_transform(cr,matrix0)
cairo_set_font_size(cr,t.font_size)
local te=cairo_text_extents_t:create()
tolua.takeownership(te)
t.text=conky_parse(t.text)
cairo_text_extents (cr,t.text,te)
set_pattern(te)
local mx,my=0,0
if t.h_align=="c" then
mx=-te.width/2-te.x_bearing
elseif t.h_align=="r" then
mx=-te.width
end
if t.v_align=="m" then
my=-te.height/2-te.y_bearing
elseif t.v_align=="t" then
my=-te.y_bearing
end
cairo_move_to(cr,mx,my)
cairo_show_text(cr,t.text)
if t.reflection_alpha ~= 0 then
local matrix1 = cairo_matrix_t:create()
tolua.takeownership(matrix1)
cairo_set_font_size(cr,t.font_size)
cairo_matrix_init (matrix1,1,0,0,-1*t.reflection_scale,0,(te.height+te.y_bearing+my)*(1+t.reflection_scale))
cairo_set_font_size(cr,t.font_size)
te=nil
local te=cairo_text_extents_t:create()
tolua.takeownership(te)
cairo_text_extents (cr,t.text,te)
cairo_transform(cr,matrix1)
set_pattern(te)
cairo_move_to(cr,mx,my)
cairo_show_text(cr,t.text)
local pat2 = cairo_pattern_create_linear (0,
(te.y_bearing+te.height+my),
0,
te.y_bearing+my)
cairo_pattern_add_color_stop_rgba (pat2, 0,1,0,0,1-t.reflection_alpha)
cairo_pattern_add_color_stop_rgba (pat2, t.reflection_length,0,0,0,1)
--line is not drawn but with a size of zero, the mask won't be nice
cairo_set_line_width(cr,1)
local dy=te.x_bearing
if dy<0 then dy=dy*(-1) end
cairo_rectangle(cr,mx+te.x_bearing,te.y_bearing+te.height+my,te.width+dy,-te.height*1.05)
cairo_clip_preserve(cr)
cairo_set_operator(cr,CAIRO_OPERATOR_CLEAR)
--cairo_stroke(cr)
cairo_mask(cr,pat2)
cairo_pattern_destroy(pat2)
cairo_set_operator(cr,CAIRO_OPERATOR_OVER)
te=nil
end
end
function linear_orientation(t,te)
local w,h=te.width,te.height
local xb,yb=te.x_bearing,te.y_bearing
if t.h_align=="c" then
xb=xb-w/2
elseif t.h_align=="r" then
xb=xb-w
end
if t.v_align=="m" then
yb=-h/2
elseif t.v_align=="t" then
yb=0
end
local p=0
if t.orientation=="nn" then
p={xb+w/2,yb,xb+w/2,yb+h}
elseif t.orientation=="ne" then
p={xb+w,yb,xb,yb+h}
elseif t.orientation=="ww" then
p={xb,h/2,xb+w,h/2}
elseif vorientation=="se" then
p={xb+w,yb+h,xb,yb}
elseif t.orientation=="ss" then
p={xb+w/2,yb+h,xb+w/2,yb}
elseif t.orientation=="ee" then
p={xb+w,h/2,xb,h/2}
elseif t.orientation=="sw" then
p={xb,yb+h,xb+w,yb}
elseif t.orientation=="nw" then
p={xb,yb,xb+w,yb+h}
end
return p
end
scale.lua
Code :
--[[cadrans mrpeachy mai 2011
créé par olgmen 11/12/2011
pour le travail il faut ajouter conkyrc au-dessus du mot TEXT
lua_load / chemin d'accès au fichier / scale.lua - modifier pour n'importe quoi et où vous avez enregistré le fichier
lua_draw_hook_pre draw_fig - doit être inchangé
x - coordonnées du coin supérieur gauche de l'échelle horizontalement
y - les coordonnées du coin supérieur droit de l'échelle verticalement
largeur - largeur de l'échelle
hauteur - hauteur de l'échelle
échelle - le nombre total de divisions affichées
couleur - la couleur des divisions et des chiffres affichés
color_middle - couleur des lignes centrales
alpha - saturation des couleurs
nom_fonte - nom de la police
font_size - Taille de la police
dernière mise à jour 02.01.2012
]]
require 'cairo'
function conky_draw_fig()
scale_settings = {
{
name = "",
arg = math.ceil(conky_parse("${time %S}")),
x = 100,
y = 50.5,
width = 60,
height = 200,
scale = 40, --combien de divisions peuvent être vus dans le cadran
font = "Ubuntu",
font_size = 12, --number font and font size
colour_scale = {{0, 0xff0000, 1},{0.5, 0xffffff, 1},{1, 0x0000ff, 1}},
},
}
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)
for i,v in pairs(scale_settings) do
cr = cairo_create (cs)
dialgraph(v)
cairo_destroy(cr)
end
end
-- ---------------------------------------------------------------------
-- функция перекодировки цвета
--[[
function rgb_to_r_g_b(colour,alpha)
return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end
]]
-- ---------------------------------------------------------------------
function dialgraph (t)
-- local function rgb_to_r_g_b2(tcolour)
-- colour, alpha = tcolour[2], tcolour[3]
-- return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
-- end
local function rgb_to_r_g_b(colour,alpha)
return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end
-- vérifier les données et ajouter les données par défaut
if t.x == nil then t.x = conky_window.width/2 end
if t.y == nil then t.y = conky_window.height/2 end
if t.width == nil then t.width = 50 end
if t.height == nil then t.height = 100 end
if t.scale == nil then t.scale = 20 end
if t.alpha == nil then t.alpha = 1 end
if t.colour_middle == nil then t.colour_middle = 0xff5500 end
if t.font_name == nil then t.font_name = "Ubuntu" end
if t.font_size == nil then t.font_size = 14 end
if t.orientation == nil then t.orientation = "nn" end
if t.colour_scale == nil then
t.colour_scale = {{0, 0x333333, 0.75},{0.5, 0xffffff, 1},{1, 0x333333, 0.75}}
end
if t.draw_me == true then t.draw_me = nil end
if t.draw_me ~= nil and conky_parse(tostring(t.draw_me)) ~= "1" then return end
local value = 0
if t.name ~= "" then
value = tonumber(conky_parse(string.format('${%s %s}', t.name, t.arg)))
else
value = tonumber(t.arg)
end
if value == nil then value = 0 end
--valuegraph
local adj = (value % 5)
local lines = tonumber(t.scale)
local gap = t.height/lines
cairo_set_line_width (cr, 1)
-- cairo_set_source_rgba(cr, rgb_to_r_g_b(t.colour, t.alpha))
cairo_select_font_face (cr, t.font_name, CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL)
cairo_set_font_size (cr, t.font_size)
if #t.colour_scale == 1 then
cairo_set_source_rgba(cr,rgb_to_r_g_b2(t.colour_scale[1]))
else
local pat
local pts=linear_orientation_bg(t)
pat = cairo_pattern_create_linear (pts[1], pts[2], pts[3], pts[4])
for i=1, #t.colour_scale do
cairo_pattern_add_color_stop_rgba (pat, t.colour_scale[i][1], rgb_to_r_g_b2(t.colour_scale[i]))
end
cairo_set_source (cr, pat)
end
--calculate line and number positions
for i = 2,lines do
n = i
for i = 1, lines, 5 do
--print (i)
if n == (lines/2)+(5-adj)+i or n == (lines/2)+(5-adj)+(-i-3) then
len = -2*(t.width/5)
else
len = -1*(t.width/5)
end
if n == (lines/2)+(5-adj)+i then
num = value - adj + (i + 4)
elseif n == (lines/2)+(5-adj)+(-i-3) then
num = value - adj-(i-1)
else
num = ""
end
--print lines
cairo_move_to (cr, t.x+(t.width/2), t.y+t.height-(gap*(n-1)))
cairo_rel_line_to (cr, len, 0)
-- cairo_stroke (cr)
--print numbers
cairo_move_to (cr, t.x+(t.width/2)+2, t.y+t.height-(gap*(n-1))+(t.font_size/3))
cairo_show_text (cr, num)
cairo_stroke (cr)
end--for
end--for
--middle lines
cairo_set_source_rgba(cr, rgb_to_r_g_b(t.colour_middle, t.alpha))
cairo_move_to (cr, t.x + t.width, t.y + (t.height/2)+2)
cairo_rel_line_to (cr, -t.width, 0)
cairo_stroke (cr)
cairo_move_to (cr, t.x + t.width, t.y + (t.height/2)-2)
cairo_rel_line_to (cr, -t.width, 0)
cairo_stroke (cr)
cairo_pattern_destroy (pat)
--[[ local function linear_orientation_bg(t)
if t.orientation == "nn" then
p = {t.x + t.width/2, t.y, t.x + t.width/2, t.y + t.height}
elseif t.orientation == "ne" then
p = {t.x + t.width, t.y, t.x, t.y + t.height}
elseif t.orientation == "ee" then
p = {t.x + t.width, t.y + t.height/2, t.x, t.y + t.height/2}
elseif t.orientation == "se" then
p = {t.x +t.width, t.y + t.height, t.x, t.y}
elseif t.orientation == "ss" then
p = {t.x + t.width/2, t.y + t.height, t.x + t.width/2, t.y}
elseif t.orientation == "sw" then
p = {t.x, t.y + t.height, t.x + t.width, t.y}
elseif t.orientation == "ww" then
p = {t.x, t.y + t.height/2, t.x + t.width, t.y + t.height/2}
else
p = {t.x, t.y, t.x + t.width, t.y + t.height}
end
return p
end
]]
end
function rgb_to_r_g_b2(tcolour)
colour, alpha = tcolour[2], tcolour[3]
return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end
function linear_orientation_bg(t)
if t.orientation == "nn" then
p = {t.x + t.width/2, t.y, t.x + t.width/2, t.y + t.height}
elseif t.orientation == "ne" then
p = {t.x + t.width, t.y, t.x, t.y + t.height}
elseif t.orientation == "ee" then
p = {t.x + t.width, t.y + t.height/2, t.x, t.y + t.height/2}
elseif t.orientation == "se" then
p = {t.x +t.width, t.y + t.height, t.x, t.y}
elseif t.orientation == "ss" then
p = {t.x + t.width/2, t.y + t.height, t.x + t.width/2, t.y}
elseif t.orientation == "sw" then
p = {t.x, t.y + t.height, t.x + t.width, t.y}
elseif t.orientation == "ww" then
p = {t.x, t.y + t.height/2, t.x + t.width, t.y + t.height/2}
else
p = {t.x, t.y, t.x + t.width, t.y + t.height}
end
return p
end
