#176 Le 04/02/2011, à 19:52
- compte supprimé
Re : Postez vos scripts Lua pour Conky !
cette image m'inspire beaucoup , en faite c'est ça avec la transparence et un plan incliné en profondeur dans le centre de l'orbe plus haut aussi et pour corsé le tout avec un gradient dans ce style la
y a des bonne inspi içi aussi
c'est pas possible trop limité par la créativité !!
Dernière modification par sebul (Le 04/02/2011, à 19:54)
#177 Le 04/02/2011, à 20:32
- compte supprimé
Re : Postez vos scripts Lua pour Conky !
j'avais pas vu la partie 3D dans le wiki lua
#178 Le 04/02/2011, à 21:13
- compte supprimé
Re : Postez vos scripts Lua pour Conky !
lua sert pour les addon wow et y a des orbes !
impossible de dessiner en lua ? un logiciel ?
#179 Le 05/02/2011, à 12:18
- Huhu
Re : Postez vos scripts Lua pour Conky !
Bonjour,
Je galère un peu sur les anneaux qu'il y a la : http://conky-pitstop-fr.wikidot.com/londonali1010
Je voudrais avoir ces 4 anneaux (sans le disk space si possible) mais je galère vraiment :
Quelqu'une peut m'aider? ou me coller le bon .lua que je regarde ce qu'il a changer pour que je comprenne.
Quand je lance le conky sa me dit :
Conky: llua_do_call: function conky_ring_stats execution failed: attempt to call a nil value
et je me suis pas tromper sur le chemin de mon .lua
voila ce que j'ai pour le .lua (dans ~/.conky/conkyanneau.lua)
-[[
Ring Meters by londonali1010 (2009)
This script draws percentage meters as rings. It is fully customisable; all options are described in the script.
IMPORTANT: if you are using the 'cpu' function, it will cause a segmentation fault if it tries to draw a ring straight away. The if statement on line 145 uses a delay to make sure that this doesn't happen. It calculates the length of the delay by the number of updates since Conky started. Generally, a value of 5s is long enough, so if you update Conky every 1s, use update_num > 5 in that if statement (the default). If you only update Conky every 2s, you should change it to update_num > 3; conversely if you update Conky every 0.5s, you should use update_num > 10. ALSO, if you change your Conky, is it best to use "killall conky; conky" to update it, otherwise the update_num will not be reset and you will get an error.
To call this script in Conky, use the following (assuming that you save this script to ~/scripts/rings.lua):
lua_load ~/scripts/rings-v1.2.1.lua
lua_draw_hook_pre ring_stats
Changelog:
+ v1.2.1 -- Fixed minor bug that caused script to crash if conky_parse() returns a nil value (20.10.2009)
+ v1.2 -- Added option for the ending angle of the rings (07.10.2009)
+ v1.1 -- Added options for the starting angle of the rings, and added the "max" variable, to allow for variables that output a numerical value rather than a percentage (29.09.2009)
+ v1.0 -- Original release (28.09.2009)
]]
settings_table = {
{
-- Edit this table to customise your rings.
-- You can create more rings simply by adding more elements to settings_table.
-- "name" is the type of stat to display; you can choose from 'cpu', 'memperc', 'fs_used_perc', 'battery_used_perc'.
name='time',
-- "arg" is the argument to the stat type, e.g. if in Conky you would write ${cpu cpu0}, 'cpu0' would be the argument. If you would not use an argument in the Conky variable, use ''.
arg='%I.%M',
-- "max" is the maximum value of the ring. If the Conky variable outputs a percentage, use 100.
max=12,
-- "bg_colour" is the colour of the base ring.
bg_colour=0xffffff,
-- "bg_alpha" is the alpha value of the base ring.
bg_alpha=0.1,
-- "fg_colour" is the colour of the indicator part of the ring.
fg_colour=0xffffff,
-- "fg_alpha" is the alpha value of the indicator part of the ring.
fg_alpha=0.2,
-- "x" and "y" are the x and y coordinates of the centre of the ring, relative to the top left corner of the Conky window.
x=165, y=170,
-- "radius" is the radius of the ring.
radius=50,
-- "thickness" is the thickness of the ring, centred around the radius.
thickness=5,
-- "start_angle" is the starting angle of the ring, in degrees, clockwise from top. Value can be either positive or negative.
start_angle=0,
-- "end_angle" is the ending angle of the ring, in degrees, clockwise from top. Value can be either positive or negative, but must be larger (e.g. more clockwise) than start_angle.
end_angle=360
},
{
name='time',
arg='%M.%S',
max=60,
bg_colour=0xffffff,
bg_alpha=0.1,
fg_colour=0xffffff,
fg_alpha=0.4,
x=165, y=170,
radius=56,
thickness=5,
start_angle=0,
end_angle=360
},
{
name='time',
arg='%S',
max=60,
bg_colour=0xffffff,
bg_alpha=0.1,
fg_colour=0xffffff,
fg_alpha=0.6,
x=165, y=170,
radius=62,
thickness=5,
start_angle=0,
end_angle=360
},
{
name='cpu',
arg='cpu1',
max=100,
bg_colour=0xffffff,
bg_alpha=0,
fg_colour=0xffffff,
fg_alpha=0.1,
x=165, y=170,
radius=70,
thickness=5,
start_angle=60,
end_angle=120
},
{
name='cpu',
arg='cpu2',
max=100,
bg_colour=0xffffff,
bg_alpha=0,
fg_colour=0xffffff,
fg_alpha=0.1,
x=165, y=170,
radius=76,
thickness=5,
start_angle=60,
end_angle=120
},
{
name='cpu',
arg='cpu0',
max=100,
bg_colour=0xffffff,
bg_alpha=0.1,
fg_colour=0xffffff,
fg_alpha=0.4,
x=165, y=170,
radius=84.5,
thickness=8,
start_angle=60,
end_angle=120
},
{
name='battery_percent',
arg='BAT1',
max=100,
bg_colour=0xffffff,
bg_alpha=0.1,
fg_colour=0xffffff,
fg_alpha=0.6,
x=165, y=170,
radius=72,
thickness=11,
start_angle=122,
end_angle=210
},
{
name='memperc',
arg='',
max=100,
bg_colour=0xffffff,
bg_alpha=0.1,
fg_colour=0xffffff,
fg_alpha=0.8,
x=165, y=170,
radius=83.5,
thickness=8,
start_angle=122,
end_angle=210
},
{
name='time',
arg='%d',
max=31,
bg_colour=0xffffff,
bg_alpha=0.1,
fg_colour=0xffffff,
fg_alpha=0.8,
x=165, y=170,
radius=70,
thickness=5,
start_angle=212,
end_angle=360
},
{
name='time',
arg='%m',
max=12,
bg_colour=0xffffff,
bg_alpha=0.1,
fg_colour=0xffffff,
fg_alpha=0.8,
x=165, y=170,
radius=76,
thickness=5,
start_angle=212,
end_angle=360
},
{
name='fs_used_perc',
arg='/',
max=150,
bg_colour=0xffffff,
bg_alpha=0.2,
fg_colour=0xffffff,
fg_alpha=0.3,
x=165, y=170,
radius=108.5,
thickness=3,
start_angle=-120,
end_angle=240
},
{
name='fs_used_perc',
arg='/',
max=100,
bg_colour=0xffffff,
bg_alpha=0.2,
fg_colour=0xffffff,
fg_alpha=0.3,
x=165, y=170,
radius=135,
thickness=50,
start_angle=-120,
end_angle=120
},
}
require 'cairo'
function rgb_to_r_g_b(colour,alpha)
return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end
function draw_ring(cr,t,pt)
local w,h=conky_window.width,conky_window.height
local xc,yc,ring_r,ring_w,sa,ea=pt['x'],pt['y'],pt['radius'],pt['thickness'],pt['start_angle'],pt['end_angle']
local bgc, bga, fgc, fga=pt['bg_colour'], pt['bg_alpha'], pt['fg_colour'], pt['fg_alpha']
local angle_0=sa*(2*math.pi/360)-math.pi/2
local angle_f=ea*(2*math.pi/360)-math.pi/2
local t_arc=t*(angle_f-angle_0)
-- Draw background ring
cairo_arc(cr,xc,yc,ring_r,angle_0,angle_f)
cairo_set_source_rgba(cr,rgb_to_r_g_b(bgc,bga))
cairo_set_line_width(cr,ring_w)
cairo_stroke(cr)
-- Draw indicator ring
cairo_arc(cr,xc,yc,ring_r,angle_0,angle_0+t_arc)
cairo_set_source_rgba(cr,rgb_to_r_g_b(fgc,fga))
cairo_stroke(cr)
end
function conky_ring_stats()
local function setup_rings(cr,pt)
local str=''
local value=0
str=string.format('${%s %s}',pt['name'],pt['arg'])
str=conky_parse(str)
value=tonumber(str)
if value == nil then value = 0 end
pct=value/pt['max']
draw_ring(cr,pct,pt)
end
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)
local cr=cairo_create(cs)
local updates=conky_parse('${updates}')
update_num=tonumber(updates)
if update_num>5 then
for i in pairs(settings_table) do
setup_rings(cr,settings_table[i])
end
end
end
Le conky que j'ai fait pour l'appeler :
# -- Conky settings -- #
background no
update_interval 1
cpu_avg_samples 2
net_avg_samples 2
override_utf8_locale yes
double_buffer yes
no_buffers yes
text_buffer_size 2048
imlib_cache_size 0
# -- Window specifications -- #
own_window yes
own_window_type desktop
own_window_transparent yes
own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below
border_inner_margin 0
border_outer_margin 0
minimum_size 1020 600
maximum_width 1000
alignment tm
gap_x 10
gap_y 0
# -- Graphics settings -- #
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
# -- Text settings -- #
use_xft yes
xftfont Santana:size=10
xftalpha 0.8
uppercase no
default_color FFFFFF
# -- Lua Load -- #
lua_load ~/.conky/conkyanneau.lua
lua_draw_hook_pre ring_stats
TEXT
${cpu cpu0}
${memperc}
${battery_percent}
Dernière modification par Huhu (Le 05/02/2011, à 12:28)
Hors ligne
#180 Le 05/02/2011, à 12:51
- Fenouille84
Re : Postez vos scripts Lua pour Conky !
@Huhu
Les variables à garder dans la table sont les suivantes :
--CPU
{
name='cpu',
arg='cpu0',
max=100,
bg_colour=0xffffff,
bg_alpha=0.1,
fg_colour=0xffffff,
fg_alpha=0.4,
x=165, y=170,
radius=84.5,
thickness=8,
start_angle=60,
end_angle=120
},
--MEM
{
name='memperc',
arg='',
max=100,
bg_colour=0xffffff,
bg_alpha=0.1,
fg_colour=0xffffff,
fg_alpha=0.8,
x=165, y=170,
radius=83.5,
thickness=8,
start_angle=122,
end_angle=210
},
--BAT
{
name='battery_percent',
arg='BAT1',
max=100,
bg_colour=0xffffff,
bg_alpha=0.1,
fg_colour=0xffffff,
fg_alpha=0.6,
x=165, y=170,
radius=72,
thickness=11,
start_angle=122,
end_angle=210
},
Voilà voilà.
Maintenant, à toi de positionner les disques là où tu les veux
Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --
Hors ligne
#181 Le 05/02/2011, à 12:59
- Huhu
Re : Postez vos scripts Lua pour Conky !
toujours le même message d'erreur :s
Hors ligne
#182 Le 05/02/2011, à 13:01
- Fenouille84
Re : Postez vos scripts Lua pour Conky !
toujours le même message d'erreur :s
Sa vient peut être de l'anneau pour la batterie...
Est-ce que la variable pour la batterie fonctionne seule dans conky ?
Dernière modification par Fenouille84 (Le 05/02/2011, à 13:02)
Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --
Hors ligne
#183 Le 05/02/2011, à 13:20
- compte supprimé
Re : Postez vos scripts Lua pour Conky !
tout en haut de ton code lua il manque un petit "-" comme ça : --[[ , t'aura plus l'erreur Conky: llua_do_call: function conky_main execution failed: attempt to call a nil value mais en terminal tu aura ça : Conky: can't open /proc/acpi/battery/BAT1/state: No such file or directory , donc la batterie c'est bien vu
#184 Le 05/02/2011, à 13:31
- Huhu
Re : Postez vos scripts Lua pour Conky !
Trop fort sebul lol.
Exactement sa
Et la variable de la batterie fonctionne seule.
Je l'ai toujours utilisé pour avoir le pourcentage et le temp restant dans mes autres conky
Hors ligne
#185 Le 05/02/2011, à 13:34
- Fenouille84
Re : Postez vos scripts Lua pour Conky !
Ok ok, alors oui c'était bien le commentaire qui posait souci.
Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --
Hors ligne
#186 Le 05/02/2011, à 13:34
- Huhu
Re : Postez vos scripts Lua pour Conky !
J'ai changer en bat0 et plus aucuns message d'erreur.
Par contre c'est bizarre mais j'ai des trucs qui ressembles pas à grand chose
Ouais bon faut que je configure!
Bon sa marche
Sinon sa rend tout mon écran non clicable, c'est assez relou sous openbox lol, une idée?
Voila mon .lua
--[[
Ring Meters by londonali1010 (2009)
This script draws percentage meters as rings. It is fully customisable; all options are described in the script.
IMPORTANT: if you are using the 'cpu' function, it will cause a segmentation fault if it tries to draw a ring straight away. The if statement on line 145 uses a delay to make sure that this doesn't happen. It calculates the length of the delay by the number of updates since Conky started. Generally, a value of 5s is long enough, so if you update Conky every 1s, use update_num > 5 in that if statement (the default). If you only update Conky every 2s, you should change it to update_num > 3; conversely if you update Conky every 0.5s, you should use update_num > 10. ALSO, if you change your Conky, is it best to use "killall conky; conky" to update it, otherwise the update_num will not be reset and you will get an error.
To call this script in Conky, use the following (assuming that you save this script to ~/scripts/rings.lua):
lua_load ~/scripts/rings-v1.2.1.lua
lua_draw_hook_pre ring_stats
Changelog:
+ v1.2.1 -- Fixed minor bug that caused script to crash if conky_parse() returns a nil value (20.10.2009)
+ v1.2 -- Added option for the ending angle of the rings (07.10.2009)
+ v1.1 -- Added options for the starting angle of the rings, and added the "max" variable, to allow for variables that output a numerical value rather than a percentage (29.09.2009)
+ v1.0 -- Original release (28.09.2009)
]]
settings_table = {
--CPU
{
name='cpu',
arg='cpu0',
max=100,
bg_colour=0xffffff,
bg_alpha=0.1,
fg_colour=0xffffff,
fg_alpha=0.4,
x=800, y=50,
radius=84.5,
thickness=8,
start_angle=60,
end_angle=120
},
--MEM
{
name='memperc',
arg='',
max=100,
bg_colour=0xffffff,
bg_alpha=0.1,
fg_colour=0xffffff,
fg_alpha=0.8,
x=800, y=110,
radius=83.5,
thickness=8,
start_angle=122,
end_angle=210
},
--BAT
{
name='battery_percent',
arg='BAT0',
max=100,
bg_colour=0xffffff,
bg_alpha=0.1,
fg_colour=0xffffff,
fg_alpha=0.6,
x=800, y=250,
radius=72,
thickness=11,
start_angle=122,
end_angle=210
},
}
require 'cairo'
function rgb_to_r_g_b(colour,alpha)
return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end
function draw_ring(cr,t,pt)
local w,h=conky_window.width,conky_window.height
local xc,yc,ring_r,ring_w,sa,ea=pt['x'],pt['y'],pt['radius'],pt['thickness'],pt['start_angle'],pt['end_angle']
local bgc, bga, fgc, fga=pt['bg_colour'], pt['bg_alpha'], pt['fg_colour'], pt['fg_alpha']
local angle_0=sa*(2*math.pi/360)-math.pi/2
local angle_f=ea*(2*math.pi/360)-math.pi/2
local t_arc=t*(angle_f-angle_0)
-- Draw background ring
cairo_arc(cr,xc,yc,ring_r,angle_0,angle_f)
cairo_set_source_rgba(cr,rgb_to_r_g_b(bgc,bga))
cairo_set_line_width(cr,ring_w)
cairo_stroke(cr)
-- Draw indicator ring
cairo_arc(cr,xc,yc,ring_r,angle_0,angle_0+t_arc)
cairo_set_source_rgba(cr,rgb_to_r_g_b(fgc,fga))
cairo_stroke(cr)
end
function conky_ring_stats()
local function setup_rings(cr,pt)
local str=''
local value=0
str=string.format('${%s %s}',pt['name'],pt['arg'])
str=conky_parse(str)
value=tonumber(str)
if value == nil then value = 0 end
pct=value/pt['max']
draw_ring(cr,pct,pt)
end
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)
local cr=cairo_create(cs)
local updates=conky_parse('${updates}')
update_num=tonumber(updates)
if update_num>5 then
for i in pairs(settings_table) do
setup_rings(cr,settings_table[i])
end
end
end
Dernière modification par Huhu (Le 05/02/2011, à 13:40)
Hors ligne
#187 Le 05/02/2011, à 13:39
- compte supprimé
Re : Postez vos scripts Lua pour Conky !
c'est trop cool de mélanger plusieur lua!
Huhu un screen ?
Dernière modification par sebul (Le 05/02/2011, à 13:39)
#188 Le 05/02/2011, à 13:41
- Huhu
Re : Postez vos scripts Lua pour Conky !
ah et aussi sa m'empeche d'utiliser un autre conky du coup, sa utilise tout l'écran.
(je vous l'envoi quand j'ai finit ma config ^^)
bon faut que je bidouille sur le conkyrc alors je pense ^^
Dernière modification par Huhu (Le 05/02/2011, à 13:45)
Hors ligne
#189 Le 05/02/2011, à 13:46
- Fenouille84
Re : Postez vos scripts Lua pour Conky !
ah et aussi sa m'empeche d'utiliser un autre conky du coup, sa utilise tout l'écran.
(je vous l'envoi quand j'ai finit ma config ^^)
Tu utilises des coordonnées énormes pour positionner tes anneaux : x = 800 !!
À la place d'avoir un conky avec x = 0 et placer ton anneau à 800 px, je te conseille plutôt de faire l'inverse : faire débuter ton conky avec à x = 800 et x = 0 dans ton script LUA. Comme sa, les 800 premiers pixels de ton écran sont encore libres, et non recouverts par un conky (vide).
Je ne sais pas si mes explications sont super claires. Si ce n'est pas le cas, n'hésite pas à redemander
Edit :
Met également ton conky en mode override (et non desktop)
Dernière modification par Fenouille84 (Le 05/02/2011, à 13:47)
Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --
Hors ligne
#190 Le 05/02/2011, à 13:53
- Huhu
Re : Postez vos scripts Lua pour Conky !
ouais tkt c'est clair, et je venais de trouver override (car je l'avais sur mon conky horloge) donc je venais pour poster que j'avais trouver, puis je vois ton message Merci quand même
Mais la tkt j'étais juste en train de tester de positionner un peu partout je config mieux maintenant.
C'est bon je suis sur le bon bout je vous envoi mon résultat final
@toute
Hors ligne
#192 Le 06/02/2011, à 18:39
- wlourf
Re : Postez vos scripts Lua pour Conky !
Salut,
Je n'avais pas encore posté le lien vers le script "box.lua" qui permet de faire des fonds/cadres/boites, enfin pas mal de choses comme sur la capture ci-dessous:
en grand : http://pix.toile-libre.org/upload/origi … 013502.png
et le lien vers le script : http://wlourf.deviantart.com/#/d386bma
Sinon, pour les orbes, ce n'est pas vraiment facile d'avoir un bon rendu, voici ce que j'obtiens (c'est les même à droite et à gauche, juste le fond est différent) :
en grand : http://pix.toile-libre.org/upload/origi … 013666.png
et le code pour cette image
{x=60,y=10,w=200,h=200, colour= { {0,0xFFFFFF,0}, {1,0xFFFFFF,1} }, radial_gradient= {110,110,90,150,150,240},
corners = { {"circle",100} },},
{x=60,y=10,w=200,h=200, colour= { {0,0x000000,0}, {1,0x000000,1} }, radial_gradient= {90,90,100,0,0,260},
corners = { {"circle",100} },},
{x=60,y=230,w=200,h=200, colour= { {0,0xFFFFFF,0}, {1,0xFFFFFF,1} }, radial_gradient= {110,110,80,150,150,190},
corners = { {"circle",100} },},
{x=60,y=230,w=200,h=200, colour= { {0,0x000000,0}, {1,0x000000,1} }, radial_gradient= {90,90,90,0,0,260},
corners = { {"circle",100} },},
{x=60,y=450,w=200,h=200, colour= { {0,0xFFFFFF,0}, {1,0xFFFFFF,0.5} }, radial_gradient= {110,110,0,150,150,190},
corners = { {"circle",100} },},
{x=60,y=450,w=200,h=200, colour= { {0,0x000000,0}, {1,0x000000,0.5} }, radial_gradient= {110,110,0,0,0,260},
corners = { {"circle",100} },},
à insérer dans le script box.lua !
Voilà, j'esère que ça t'inspire
Hors ligne
#193 Le 06/02/2011, à 18:41
- compte supprimé
Re : Postez vos scripts Lua pour Conky !
carrément
#194 Le 18/02/2011, à 14:38
- aragon6980
Re : Postez vos scripts Lua pour Conky !
Linux qui tombe en panne c'est un miracle, tout comme Windows qui tombe en marche...
La seule raison pour laquelle il est utile d'utiliser Windows, c'est pour tester un virus.
Si tu ne sais pas : demande. Si tu sais : partage !
Hors ligne
#195 Le 18/02/2011, à 18:27
- ferreol
Re : Postez vos scripts Lua pour Conky !
aragon 6980 : c est chouette
tu peux poster ton .conkyrc please j aimerai en particulier tracer les qtés downloadées et uploadées
Hors ligne
#196 Le 22/02/2011, à 00:11
- aragon6980
Re : Postez vos scripts Lua pour Conky !
aragon 6980 : c est chouette
tu peux poster ton .conkyrc please j aimerai en particulier tracer les qtés downloadées et uploadées
Il a été pas mal modifié depuis, mais avec la suite tu devrais trouver ton bonheur. Il y a des Fonts à installer obligatoirement (voir Conkyrc).
~/home/username/.conkyrc (pour la météo remplacer les XXXX0000 par ta location)
##################################
## Basé sur Conky_VinDSL ##
##################################
## Screen res: 1280x1024x24 ##
##################################
use_xft yes
xftfont DroidSans:size=8.75
xftalpha 0.1
text_buffer_size 2048
override_utf8_locale yes
background yes
update_interval 1.5
total_run_times 0
own_window yes
own_window_type override
own_window_transparent yes
imlib_cache_size 0
double_buffer yes
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
out_to_ncurses no
out_to_console no
alignment top_right
minimum_size 238 0
gap_x 8
gap_y 33
short_units yes
pad_percents 0
border_inner_margin 4
top_name_width 10
no_buffers yes
uppercase no
cpu_avg_samples 2
net_avg_samples 2
use_spacer right
color0 White
color1 Ivory
color2 Ivory2
color3 Ivory3
color4 Tan1
color5 Tan2
color6 Gray
color7 AntiqueWhite4
color8 DarkSlateGray
color9 Black
# enlever le # pour mettre un fond au Conky
#lua_load ~/.conky/draw_bg.lua
#lua_draw_hook_pre draw_bg
lua_load ~/.conky/bargraph_small.lua
lua_draw_hook_post main_bars
####
## Polices à installer (Obligatoire).
#
# ConkyWeather (Stanko Metodiev)
# ConkyWindNESW (Stanko Metodiev)
# Cut Outs for 3D FX (Fonts & Things)
# Droid Font Family (Google Android SDK)
# Liberation Mono (Ascender Corp)
# Liberation Sans (Ascender Corp)
# Moon Phases (Curtis Clark)
# OpenLogos (Icoma)
# PizzaDude Bullets (Jakob Fischer)
# Radio Space (Iconian Fonts)
# StyleBats (Vinterstille)
# Ubuntu (Canonical Ltd)
# Ubuntu Title Bold (Paulo Silva)
# Weather (Jonathan Macagba)
TEXT
##################
## LOGO ##
##################
${voffset -33}${font OpenLogos:size=103}${color2}v${font}${voffset -76}${goto 178}${font UbuntuTitleBold:size=20}${color4}10.10${font}
##################
## SYSTEM ##
##################
${voffset 20}${font DroidSans:bold:size=8.25}${color4}SYSTÈME${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset 4}${font OpenLogos:size=10}${color2}u${voffset -4}${font DroidSans:size=8.65}${color3}${offset 5}${sysname}${offset 5}${kernel}${alignr}${font DroidSans:size=8.75}${machine}${font}
${voffset 2}${font StyleBats:size=10}${color2}A${voffset -1}${font DroidSans:size=8.65}${color3}${offset 5}TYPE PROCESSEUR${offset 3}P4${offset 3}Extreme${offset 3}VERSION${alignr}${font DroidSans:size=8.4}${freq_g cpu0}${offset 1}GHz${font}
${voffset 2}${font StyleBats:size=10}${color2}q${voffset -1}${font DroidSans:size=8.65}${color3}${offset 5}Système${offset 3}Uptime${alignr}${font DroidSans:size=8.4}${uptime_short}${font}
${voffset 2}${font StyleBats:size=10}${color2}o${voffset -1}${font DroidSans:size=8.65}${color3}${offset 5}File${offset 3}System${alignr}${font DroidSans:size=8.4}${fs_type}${font}
##################
## PROCESSORS ##
##################
${voffset 6}${font DroidSans:bold:size=8}${color4}PROCESSEURS${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset 4}${font StyleBats:size=10}${color2}k${voffset -2}${font DroidSans:size=8.4}${color3}${offset 2}CPU1${offset 5}${font DroidSans:size=8.55}${cpu cpu1}%${font}
${voffset 2}${font StyleBats:size=10}${color2}k${voffset -2}${font DroidSans:size=8.4}${color3}${offset 2}CPU2${offset 5}${font DroidSans:size=8.55}${cpu cpu2}%${font}
##################
## MEMORY ##
##################
${voffset 6}${font DroidSans:bold:size=8}${color4}MEMOIRE${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset 4}${font StyleBats:size=10}${color2}l${voffset -2}${font DroidSans:size=8.4}${color3}${offset 3}RAM${goto 97}${font DroidSans:size=8.55}${mem}${goto 133}/${offset 5}${memmax}${alignr}${memperc}%${font}
##################
## HDD ##
##################
${voffset 16}${font DroidSans:bold:size=8}${color4}DISQUES DURS${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset 5}${font StyleBats:size=10}${color2}x${voffset -2}${font DroidSans:size=8.4}${color3}${offset 4}ROOT${goto 95}${font DroidSans:size=8.55}${fs_used /}${goto 133}/${offset 5}${fs_size /}${alignr}${fs_free_perc /}%${font}
${voffset 15}${font StyleBats:size=10}${color2}x${voffset -2}${font DroidSans:size=8.4}${color3}${offset 4}DOCUMENTS${goto 95}${font DroidSans:size=8.55}${fs_used /home}${goto 133}/${offset 5}${fs_size /home}${alignr}${fs_free_perc /home}%${font}
${voffset 15}${font StyleBats:size=10}${color2}4${voffset -2}${font DroidSans:size=8.4}${color3}${offset 4}SWAP${goto 95}${font DroidSans:size=8.55}${swap}${goto 133}/${offset 5}${swapmax}${alignr}${swapperc}%${font}
##################
# TOP PROCESSES ##
##################
${voffset 16}${font DroidSans:bold:size=8}${color4}TOP PROCESSUS${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset 4}${font StyleBats:size=10}${color1}h${voffset -3}${font DroidSans:size=8.75}${color3}${offset 5}${top_mem name 1}${goto 120}${font DroidSans:size=8.55}${top_mem mem_res 1}${alignr}${top_mem mem 1}%${font}
${voffset 2}${font StyleBats:size=10}${color1}h${voffset -3}${font DroidSans:size=8.75}${color3}${offset 5}${top_mem name 2}${goto 120}${font DroidSans:size=8.55}${top_mem mem_res 2}${alignr}${top_mem mem 2}%${font}
${voffset 2}${font StyleBats:size=10}${color1}h${voffset -3}${font DroidSans:size=8.75}${color3}${offset 5}${top_mem name 3}${goto 120}${font DroidSans:size=8.55}${top_mem mem_res 3}${alignr}${top_mem mem 3}%${font}
${voffset 0}${if_running rhythmbox}${voffset -14}${else}${voffset 2}${font StyleBats:size=10}${color1}h${voffset -3}${font DroidSans:size=8.75}${color3}${offset 5}${top_mem name 4}${goto 120}${font DroidSans:size=8.55}${top_mem mem_res 4}${alignr}${top_mem mem 4}%${font}
${voffset 2}${font StyleBats:size=10}${color1}h${voffset -3}${font DroidSans:size=8.75}${color3}${offset 5}${top_mem name 5}${goto 120}${font DroidSans:size=8.55}${top_mem mem_res 5}${alignr}${top_mem mem 5}%${font}
${voffset 2}${font StyleBats:size=10}${color1}h${voffset -3}${font DroidSans:size=8.75}${color3}${offset 5}${top_mem name 6}${goto 120}${font DroidSans:size=8.55}${top_mem mem_res 6}${alignr}${top_mem mem 6}%${font}${endif}
##################
## NETWORK ##
##################
${voffset 6}${font DroidSans:bold:size=8}${color4}NETWORK${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset 4}${font PizzaDudeBullets:size=10}${color6}a${font DroidSans:size=8.65}${color3}${offset 5}Private${offset 3}IP${alignr}${font DroidSans:size=8.55}${addr eth0}${font}
${voffset 0}${font PizzaDudeBullets:size=10}${color6}a${font DroidSans:size=8.65}${color3}${offset 5}Public${offset 7}IP${alignr}${font DroidSans:size=8.55}${texeci 1800 wget -q -O - checkip.dyndns.org | sed -e 's/[^[:digit:]\|.]//g'}${font}
${voffset 4}${font PizzaDudeBullets:size=10}${color6}T${font DroidSans:size=8.65}${color3}${offset 5}Down${alignr}${font DroidSans:size=8.55}${downspeed eth0}${font}
${voffset 0}${font PizzaDudeBullets:size=10}${color6}N${font DroidSans:size=8.65}${color3}${offset 5}Up${alignr}${font DroidSans:size=8.55}${upspeed eth0}${font}
${voffset 4}${font PizzaDudeBullets:size=10}${color6}T${font DroidSans:size=8.65}${color3}${offset 5}Downloaded${alignr}${font DroidSans:size=8.55}${totaldown eth0}${font}
${voffset 0}${font PizzaDudeBullets:size=10}${color6}N${font DroidSans:size=8.65}${color3}${offset 5}Uploaded${alignr}${font DroidSans:size=8.55}${totalup eth0}${font}
##################
## WEATHER ##
##################
${voffset 6}${font DroidSans:bold:size=8}${color4}MÉTÉO${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset 0}${goto 59}${font Weather:size=38}${color2}y${font}${voffset -33}${offset 14}${font RadioSpace:size=32}${color3}${texeci 1800 conkyForecast --location=XXXX0000 --datatype=HT}${font}
${voffset 0}${font Ubuntu:size=24}${color4}${alignc}${texeci 1800 conkyForecast --location=XXXX0000 --datatype=CT}${font}
${voffset 15}${goto 20}${font ConkyWindNESW:size=41}${color3}${texeci 1800 conkyForecast --location=XXXX0000 --datatype=BS}${font}${voffset -40}${goto 98}${font ConkyWeather:size=45}${texeci 1800 conkyForecast --location=XXXX0000 --datatype=WF}${font}${voffset -39}${goto 188}${font MoonPhases:size=32}${texeci 1800 conkyForecast --location=XXXX0000 --datatype=MF}${font}
${voffset 6}${goto 28}${font DroidSansFallback:bold:size=8.45}${color4}${execpi 1800 conkyForecast --location=XXXX0000 --datatype=WSl | sed -e 's/calm'/'\$\{offset 2}Calm/g' -e 's/mph'/'\$\{offset 2}mph/g'}${goto 88}Feels like ${texeci 1800 conkyForecast --location=XXXX0000 --datatype=LT --hideunits}${execpi 1800 conkyForecast --location=XXXX0000 --datatype=MP | sed -e 's/First.*'/'\$\{goto 182}First Qtr/g' -e 's/Last.*'/'\$\{goto 184}Last Qtr/g' -e 's/New.*'/'\$\{goto 195}New/g' -e 's/Full.*'/'\$\{goto 195}Full/g' -e 's/Waning.*'/'\$\{goto 187}Waning/g' -e 's/Waxing.*'/'\$\{goto 187}Waxing/g'}${font}
${voffset 8}${goto 36}${font DroidSans:bold:size=8.55}${color6}${texeci 1800 conkyForecast --location=XXXX0000 --datatype=DW --startday=1 --shortweekday}${goto 89}${texeci 1800 conkyForecast --location=XXXX0000 --datatype=DW --startday=2 --shortweekday}${goto 143}${texeci 1800 conkyForecast --location=XXXX0000 --datatype=DW --startday=3 --shortweekday}${goto 197}${texeci 1800 conkyForecast --location=XXXX0000 --datatype=DW --startday=4 --shortweekday}${font}
${voffset 4}${goto 25}${font ConkyWeather:size=32}${color2}${texeci 1800 conkyForecast --location=XXXX0000 --datatype=WF --startday=1 --endday=4 --spaces=1}${font}
${voffset 0}${goto 25}${font DroidSans:bold:size=8.5}${color4}${texeci 1800 conkyForecast --location=XXXX0000 --datatype=HT --hideunits --startday=1}${offset 2}/${offset 2}${texeci 1800 conkyForecast --location=XXXX0000 --datatype=LT --hideunits --startday=1}${goto 79}${texeci 1800 conkyForecast --location=XXXX0000 --datatype=HT --hideunits --startday=2}${offset 2}/${offset 2}${texeci 1800 conkyForecast --location=XXXX0000 --datatype=LT --hideunits --startday=2}${goto 133}${texeci 1800 conkyForecast --location=XXXX0000 --datatype=HT --hideunits --startday=3}${offset 2}/${offset 2}${texeci 1800 conkyForecast --location=XXXX0000 --datatype=LT --hideunits --startday=3}${goto 187}${texeci 1800 conkyForecast --location=XXXX0000 --datatype=HT --hideunit --startday=4}${offset 2}/${offset 2}${texeci 1800 conkyForecast --location=XXXX0000 --datatype=LT --hideunits --startday=4}${font}
##################
## TIME ##
##################
${voffset 6}${font DroidSans:bold:size=8}${color4}HEURE${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset 0}${if_match ${time %l}<=9}${voffset -4}${font RadioSpace:size=32}${color3}${alignc 7}${time %l:%M%p}${font}${else}${if_match ${time %l}>=10}${voffset -4}${font RadioSpace:size=32}${color3}${alignc -1}${time %l:%M%p}${font}${endif}${endif}
${voffset 0}${font DroidSansFallback:bold:size=6.2}${color4}${alignc 2}Sunrise${offset 1}${texeci 1800 conkyForecast --location=XXXX0000 --datatype=SR --startday=1}${color3}${offset 2}|${offset 2}${color4}Sunset${offset 1}${texeci 1800 conkyForecast --location=XXXX0000 --datatype=SS --startday=1}${font}
##################
## CALENDAR ##
##################
${voffset 4}${font DroidSans:bold:size=8}${color4}CALENDRIER${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset 18}${font LiberationMono:size=8}${color3}${alignc 60}${time %A}${font}
${voffset -6}${if_match ${time %e}<=9}${font DroidSansFallback:bold:size=19}${color4}${alignc 65}${time %e}${font}${else}${if_match ${time %e}>=10}${font DroidSansFallback:bold:size=19}${color4}${alignc 60}${time %e}${font}${endif}${endif}
${voffset -1}${font LiberationMono:size=8}${color3}${alignc 60}${time %B}${font}
${voffset -3}${font LiberationMono:size=8}${color3}${alignc 60}${time %Y}${font}
${voffset -75}${font LiberationMono:size=8}${color3}${execpi 60 VinDSL_Cal_5=`date +%-d`; cal | sed '1d' | sed s/^/"\$\{offset 97"\}/ | sed '/^ *$/d' | sed 's/\<'"$VinDSL_Cal_5"'\>/${color4}&${color3}/'}${font}
${voffset -98}${font CutOutsFor3DFX:size=64}${color8}${alignc 97}2${font}
##################
## RHYTHMBOX ##
##################
${if_running rhythmbox}${voffset 25}${font DroidSans:bold:size=7.85}${color4}RHYTHMBOX${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset 6}${font DroidSans:size=8.25}${color3}${alignc}${if_match "${execpi 2 expr length "`/usr/bin/rhythmbox-client --print-playing-format %tt | head -n 1`"}" >= "45"}${scroll 40 5 ${exec rhythmbox-client --print-playing-format %tt --no-start}}${else}${exec rhythmbox-client --print-playing-format %tt --no-start}${font}${endif}${endif}
~/home/username/.conky/draw_bg.lua (non activé par défaut, retirer les # sur 2 lignes dans le conkyrc)
--[[ Background by londonali1010 (2009)
VinDSL Background Hack (2010-2011)
This script draws a background to the Conky window. It covers the whole of the Conky window, but you can specify rounded corners, if you wish.
To call this script in Conky, use (assuming you have saved this script to ~/scripts/):
lua_load ~/scripts/draw_bg.lua
lua_draw_hook_pre draw_bg
Changelog:
+ v3.0 VinDSL Hack (01.28.2011) Killed memory leak.
+ v2.4 VinDSL Hack (01.25.2011) Declared all variables in local.
+ v2.3 VinDSL Hack (12.31.2010) Added shading example(s).
+ v2.2 VinDSL Hack (12.30.2010) Cleaned up the code a bit.
+ v2.1 VinDSL Hack (12.24.2010) Added cairo destroy function(s).
+ v2.0 VinDSL Hack (12.21.2010) Added height adjustment variable.
+ v1.0 Original release (07.10.2009)
]]
-- Change these settings to affect your background:
-- "corner_r" is the radius, in pixels, of the rounded corners. If you don't want rounded corners, use 0.
local corner_r = 50
-- Set the colour and transparency (alpha) of your background (0.00 - 0.99).
-- (Light Shading Example)
-- local bg_colour = 0x4d4d4d
-- local bg_alpha = 0.50
-- (Medium Shading Example)
-- local bg_colour = 0x222222
-- local bg_alpha = 0.50
-- (Dark Shading Example)
-- local bg_colour = 0x000000
-- local bg_alpha = 0.50
local bg_colour = 0x222222
local bg_alpha = 0.20
-- Tweaks the height of your background, in pixels. If you don't need to adjust the height, use 0.
-- (Default Setting)
-- local vindsl_hack_height = 0
local vindsl_hack_height = -228
require 'cairo'
local cs, cr = nil
local function rgb_to_r_g_b(colour,alpha)
return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end
function conky_draw_bg()
if conky_window == nil then return end
if cs == nil then cairo_surface_destroy(cs) end
if cr == nil then cairo_destroy(cr) end
local w = conky_window.width
local h = conky_window.height
local v = vindsl_hack_height
local cs = cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, conky_window.width, conky_window.height)
local cr = cairo_create(cs)
cairo_move_to(cr,corner_r,0)
cairo_line_to(cr,w-corner_r,0)
cairo_curve_to(cr,w,0,w,0,w,corner_r)
cairo_line_to(cr,w,h+v-corner_r)
cairo_curve_to(cr,w,h+v,w,h+v,w-corner_r,h+v)
cairo_line_to(cr,corner_r,h+v)
cairo_curve_to(cr,0,h+v,0,h+v,0,h+v-corner_r)
cairo_line_to(cr,0,corner_r)
cairo_curve_to(cr,0,0,0,0,corner_r,0)
cairo_close_path(cr)
cairo_set_source_rgba(cr,rgb_to_r_g_b(bg_colour,bg_alpha))
cairo_fill(cr)
cairo_surface_destroy(cs)
cairo_destroy(cr)
end
~/home/username/.conky/bargraph_small.lua
--[[ BARGRAPH WIDGET
v2.1 by wlourf (07 Jan. 2011)
this widget draws a bargraph with different effects
http://u-scripts.blogspot.com/2010/07/bargraph-widget.html
To call the script in a conky, use, before TEXT
lua_load /path/to/the/script/bargraph.lua
lua_draw_hook_pre main_rings
and add one line (blank or not) after TEXT
Parameters are :
3 parameters are mandatory
name - the name of the conky variable to display, for example for {$cpu cpu0}, just write name="cpu"
arg - the argument of the above variable, for example for {$cpu cpu0}, just write arg="cpu0"
arg can be a numerical value if name=""
max - the maximum value the above variable can reach, for example, for {$cpu cpu0}, just write max=100
Optional parameters:
x,y - coordinates of the starting point of the bar, default = middle of the conky window
cap - end of cap line, ossibles values are r,b,s (for round, butt, square), default="b"
http://www.cairographics.org/samples/set_line_cap/
angle - angle of rotation of the bar in degress, default = 0 (i.e. a vertical bar)
set to 90 for an horizontal bar
skew_x - skew bar around x axis, default = 0
skew_y - skew bar around y axis, default = 0
blocks - number of blocks to display for a bar (values >0) , default= 10
height - height of a block, default=10 pixels
width - width of a block, default=20 pixels
space - space between 2 blocks, default=2 pixels
angle_bar - this angle is used to draw a bar on a circular way (ok, this is no more a bar !) default=0
radius - for cicular bars, internal radius, default=0
with radius, parameter width has no more effect.
Colours below are defined into braces {colour in hexadecimal, alpha}
fg_colour - colour of a block ON, default= {0x00FF00,1}
bg_colour - colour of a block OFF, default = {0x00FF00,0.5}
alarm - threshold, values after this threshold will use alarm_colour colour , default=max
alarm_colour - colour of a block greater than alarm, default=fg_colour
smooth - (true or false), create a gradient from fg_colour to bg_colour, default=false
mid_colour - colours to add to gradient, with this syntax {position into the gradient (0 to1), colour hexa, alpha}
for example, this table {{0.25,0xff0000,1},{0.5,0x00ff00,1},{0.75,0x0000ff,1}} will add
3 colurs to gradient created by fg_colour and alarm_colour, default=no mid_colour
led_effect - add LED effects to each block, default=no led_effect
if smooth=true, led_effect is not used
possibles values : "r","a","e" for radial, parallelel, perdendicular to the bar (just try!)
led_effect has to be used with theses colours :
fg_led - middle colour of a block ON, default = fg_colour
bg_led - middle colour of a block OFF, default = bg_colour
alarm_led - middle colour of a block > ALARM, default = alarm_colour
reflection parameters, not avaimable for circular bars
reflection_alpha - add a reflection effect (values from 0 to 1) default = 0 = no reflection
other values = starting opacity
reflection_scale - scale of the reflection (default = 1 = height of text)
reflection_length - length of reflection, define where the opacity will be set to zero
calues from 0 to 1, default =1
reflection - position of reflection, relative to a vertical bar, default="b"
possibles values are : "b","t","l","r" for bottom, top, left, right
draw_me - if set to false, text is not drawn (default = true or 1)
it can be used with a conky string, if the string returns 1, the text is drawn :
example : "${if_empty ${wireless_essid wlan0}}${else}1$endif",
v1.0 (10 Feb. 2010) original release
v1.1 (13 Feb. 2010) numeric values can be passed instead conky stats with parameters name="", arg = numeric_value
v1.2 (28 Feb. 2010) just renamed the widget to bargraph
v1.3 (03 Mar. 2010) added parameters radius & angle_bar to draw the bar in a circular way
v2.0 (12 Jul. 2010) rewrite script + add reflection effects and parameters are now set into tables
v2.1 (07 Jan. 2011) Add draw_me parameter and correct memory leaks, thanks to "Creamy Goodness"
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation version 3 (GPLv3)
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program; if not, write to the Free Software
-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-- MA 02110-1301, USA.
]]
require 'cairo'
----------------START OF PARAMETERS ----------
function conky_main_bars()
local bars_settings={
{ --[ Graph for CPU1 ]--
name="cpu",
arg="cpu1",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.72},
bg_colour={0xFFFFFF,0.25},
fg_colour={0x00FF00,0.55},
mid_colour={{0.45,0xFFFF00,0.70}},
x=80,y=155,
blocks=55,
space=1,
height=2,width=5,
angle=90,
smooth=true
},
{ --[ Graph for CPU2 ]--
name="cpu",
arg="cpu2",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.72},
bg_colour={0xFFFFFF,0.25},
fg_colour={0x00FF00,0.55},
mid_colour={{0.45,0xFFFF00,0.70}},
x=80,y=169,
blocks=55,
space=1,
height=2,width=5,
angle=90,
smooth=true
},
{ --[ Graph for Memory ]--
name="memperc",
arg="",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.72},
bg_colour={0xFFFFFF,0.25},
fg_colour={0x00FF00,0.55},
mid_colour={{0.45,0xFFFF00,0.70}},
x=15,y=218,
blocks=77,
space=1,
height=2,width=5,
angle=90,
smooth=true
},
{ --[ Graph for Root ]--
name="fs_used_perc",
arg="/",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.72},
bg_colour={0xFFFFFF,0.25},
fg_colour={0x00FF00,0.55},
mid_colour={{0.45,0xFFFF00,0.70}},
x=15,y=263,
blocks=77,
space=1,
height=2,width=5,
angle=90,
smooth=true
},
{ --[ Graph for Home ]--
name="fs_used_perc",
arg="/home",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.72},
bg_colour={0xFFFFFF,0.25},
fg_colour={0x00FF00,0.55},
mid_colour={{0.45,0xFFFF00,0.70}},
x=15,y=290,
blocks=77,
space=1,
height=2,width=5,
angle=90,
smooth=true
},
{ --[ Graph for Swap ]--
name="swapperc",
arg="",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.72},
bg_colour={0xFFFFFF,0.25},
fg_colour={0x00FF00,0.55},
mid_colour={{0.45,0xFFFF00,0.70}},
x=15,y=317,
blocks=77,
space=1,
height=2,width=5,
angle=90,
smooth=true
},
}
-----------END OF PARAMETERS--------------
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)
--prevent segmentation error when reading cpu state
if tonumber(conky_parse('${updates}'))>3 then
for i in pairs(bars_settings) do
draw_multi_bar_graph(bars_settings[i])
end
end
cairo_destroy(cr)
cairo_surface_destroy(cs)
cr=nil
end
function draw_multi_bar_graph(t)
cairo_save(cr)
--check values
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
if t.name==nil and t.arg==nil then
print ("No input values ... use parameters 'name' with 'arg' or only parameter 'arg' ")
return
end
if t.max==nil then
print ("No maximum value defined, use 'max'")
return
end
if t.name==nil then t.name="" end
if t.arg==nil then t.arg="" end
--set default values
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.blocks == nil then t.blocks=10 end
if t.height == nil then t.height=10 end
if t.angle == nil then t.angle=0 end
t.angle = t.angle*math.pi/180
--line cap style
if t.cap==nil then t.cap = "b" end
local cap="b"
for i,v in ipairs({"s","r","b"}) do
if v==t.cap then cap=v end
end
local delta=0
if t.cap=="r" or t.cap=="s" then delta = t.height end
if cap=="s" then cap = CAIRO_LINE_CAP_SQUARE
elseif cap=="r" then
cap = CAIRO_LINE_CAP_ROUND
elseif cap=="b" then
cap = CAIRO_LINE_CAP_BUTT
end
--end line cap style
--if t.led_effect == nil then t.led_effect="r" end
if t.width == nil then t.width=20 end
if t.space == nil then t.space=2 end
if t.radius == nil then t.radius=0 end
if t.angle_bar == nil then t.angle_bar=0 end
t.angle_bar = t.angle_bar*math.pi/360 --halt angle
--colours
if t.bg_colour == nil then t.bg_colour = {0x00FF00,0.5} end
if #t.bg_colour~=2 then t.bg_colour = {0x00FF00,0.5} end
if t.fg_colour == nil then t.fg_colour = {0x00FF00,1} end
if #t.fg_colour~=2 then t.fg_colour = {0x00FF00,1} end
if t.alarm_colour == nil then t.alarm_colour = t.fg_colour end
if #t.alarm_colour~=2 then t.alarm_colour = t.fg_colour end
if t.mid_colour ~= nil then
for i=1, #t.mid_colour do
if #t.mid_colour[i]~=3 then
print ("error in mid_color table")
t.mid_colour[i]={1,0xFFFFFF,1}
end
end
end
if t.bg_led ~= nil and #t.bg_led~=2 then t.bg_led = t.bg_colour end
if t.fg_led ~= nil and #t.fg_led~=2 then t.fg_led = t.fg_colour end
if t.alarm_led~= nil and #t.alarm_led~=2 then t.alarm_led = t.fg_led end
if t.led_effect~=nil then
if t.bg_led == nil then t.bg_led = t.bg_colour end
if t.fg_led == nil then t.fg_led = t.fg_colour end
if t.alarm_led == nil then t.alarm_led = t.fg_led end
end
if t.alarm==nil then t.alarm = t.max end --0.8*t.max end
if t.smooth == nil then t.smooth = false end
if t.skew_x == nil then
t.skew_x=0
else
t.skew_x = math.pi*t.skew_x/180
end
if t.skew_y == nil then
t.skew_y=0
else
t.skew_y = math.pi*t.skew_y/180
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
--end of default values
local function rgb_to_r_g_b(col_a)
return ((col_a[1] / 0x10000) % 0x100) / 255., ((col_a[1] / 0x100) % 0x100) / 255., (col_a[1] % 0x100) / 255., col_a[2]
end
--functions used to create patterns
local function create_smooth_linear_gradient(x0,y0,x1,y1)
local pat = cairo_pattern_create_linear (x0,y0,x1,y1)
cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(t.fg_colour))
cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(t.alarm_colour))
if t.mid_colour ~=nil then
for i=1, #t.mid_colour do
cairo_pattern_add_color_stop_rgba (pat, t.mid_colour[i][1], rgb_to_r_g_b({t.mid_colour[i][2],t.mid_colour[i][3]}))
end
end
return pat
end
local function create_smooth_radial_gradient(x0,y0,r0,x1,y1,r1)
local pat = cairo_pattern_create_radial (x0,y0,r0,x1,y1,r1)
cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(t.fg_colour))
cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(t.alarm_colour))
if t.mid_colour ~=nil then
for i=1, #t.mid_colour do
cairo_pattern_add_color_stop_rgba (pat, t.mid_colour[i][1], rgb_to_r_g_b({t.mid_colour[i][2],t.mid_colour[i][3]}))
end
end
return pat
end
local function create_led_linear_gradient(x0,y0,x1,y1,col_alp,col_led)
local pat = cairo_pattern_create_linear (x0,y0,x1,y1) ---delta, 0,delta+ t.width,0)
cairo_pattern_add_color_stop_rgba (pat, 0.0, rgb_to_r_g_b(col_alp))
cairo_pattern_add_color_stop_rgba (pat, 0.5, rgb_to_r_g_b(col_led))
cairo_pattern_add_color_stop_rgba (pat, 1.0, rgb_to_r_g_b(col_alp))
return pat
end
local function create_led_radial_gradient(x0,y0,r0,x1,y1,r1,col_alp,col_led,mode)
local pat = cairo_pattern_create_radial (x0,y0,r0,x1,y1,r1)
if mode==3 then
cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(col_alp))
cairo_pattern_add_color_stop_rgba (pat, 0.5, rgb_to_r_g_b(col_led))
cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(col_alp))
else
cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(col_led))
cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(col_alp))
end
return pat
end
local function draw_single_bar()
--this fucntion is used for bars with a single block (blocks=1) but
--the drawing is cut in 3 blocks : value/alarm/background
--not zvzimzblr for circular bar
local function create_pattern(col_alp,col_led,bg)
local pat
if not t.smooth then
if t.led_effect=="e" then
pat = create_led_linear_gradient (-delta, 0,delta+ t.width,0,col_alp,col_led)
elseif t.led_effect=="a" then
pat = create_led_linear_gradient (t.width/2, 0,t.width/2,-t.height,col_alp,col_led)
elseif t.led_effect=="r" then
pat = create_led_radial_gradient (t.width/2, -t.height/2, 0, t.width/2,-t.height/2,t.height/1.5,col_alp,col_led,2)
else
pat = cairo_pattern_create_rgba (rgb_to_r_g_b(col_alp))
end
else
if bg then
pat = cairo_pattern_create_rgba (rgb_to_r_g_b(t.bg_colour))
else
pat = create_smooth_linear_gradient(t.width/2, 0, t.width/2,-t.height)
end
end
return pat
end
local y1=-t.height*pct/100
local y2,y3
if pct>(100*t.alarm/t.max) then
y1 = -t.height*t.alarm/100
y2 = -t.height*pct/100
if t.smooth then y1=y2 end
end
if t.angle_bar==0 then
--block for fg value
local pat = create_pattern(t.fg_colour,t.fg_led,false)
cairo_set_source(cr,pat)
cairo_rectangle(cr,0,0,t.width,y1)
cairo_fill(cr)
cairo_pattern_destroy(pat)
-- block for alarm value
if not t.smooth and y2 ~=nil then
pat = create_pattern(t.alarm_colour,t.alarm_led,false)
cairo_set_source(cr,pat)
cairo_rectangle(cr,0,y1,t.width,y2-y1)
cairo_fill(cr)
y3=y2
cairo_pattern_destroy(pat)
else
y2,y3=y1,y1
end
-- block for bg value
cairo_rectangle(cr,0,y2,t.width,-t.height-y3)
pat = create_pattern(t.bg_colour,t.bg_led,true)
cairo_set_source(cr,pat)
cairo_pattern_destroy(pat)
cairo_fill(cr)
end
end --end single bar
local function draw_multi_bar()
--function used for bars with 2 or more blocks
for pt = 1,t.blocks do
--set block y
local y1 = -(pt-1)*(t.height+t.space)
local light_on=false
--set colors
local col_alp = t.bg_colour
local col_led = t.bg_led
if pct>=(100/t.blocks) or pct>0 then --ligth on or not the block
if pct>=(pcb*(pt-1)) then
light_on = true
col_alp = t.fg_colour
col_led = t.fg_led
if pct>=(100*t.alarm/t.max) and (pcb*pt)>(100*t.alarm/t.max) then
col_alp = t.alarm_colour
col_led = t.alarm_led
end
end
end
--set colors
--have to try to create gradients outside the loop ?
local pat
if not t.smooth then
if t.angle_bar==0 then
if t.led_effect=="e" then
pat = create_led_linear_gradient (-delta, 0,delta+ t.width,0,col_alp,col_led)
elseif t.led_effect=="a" then
pat = create_led_linear_gradient (t.width/2, -t.height/2+y1,t.width/2,0+t.height/2+y1,col_alp,col_led)
elseif t.led_effect=="r" then
pat = create_led_radial_gradient (t.width/2, y1, 0, t.width/2,y1,t.width/1.5,col_alp,col_led,2)
else
pat = cairo_pattern_create_rgba (rgb_to_r_g_b(col_alp))
end
else
if t.led_effect=="a" then
pat = create_led_radial_gradient (0, 0, t.radius+(t.height+t.space)*(pt-1),
0, 0, t.radius+(t.height+t.space)*(pt),
col_alp,col_led,3)
else
pat = cairo_pattern_create_rgba (rgb_to_r_g_b(col_alp))
end
end
else
if light_on then
if t.angle_bar==0 then
pat = create_smooth_linear_gradient(t.width/2, t.height/2, t.width/2,-(t.blocks-0.5)*(t.height+t.space))
else
pat = create_smooth_radial_gradient(0, 0, (t.height+t.space), 0,0,(t.blocks+1)*(t.height+t.space),2)
end
else
pat = cairo_pattern_create_rgba (rgb_to_r_g_b(t.bg_colour))
end
end
cairo_set_source (cr, pat)
cairo_pattern_destroy(pat)
--draw a block
if t.angle_bar==0 then
cairo_move_to(cr,0,y1)
cairo_line_to(cr,t.width,y1)
else
cairo_arc( cr,0,0,
t.radius+(t.height+t.space)*(pt)-t.height/2,
-t.angle_bar -math.pi/2 ,
t.angle_bar -math.pi/2)
end
cairo_stroke(cr)
end
end
local function setup_bar_graph()
--function used to retrieve the value to display and to set the cairo structure
if t.blocks ~=1 then t.y=t.y-t.height/2 end
local value = 0
if t.name ~="" then
value = tonumber(conky_parse(string.format('${%s %s}', t.name, t.arg)))
--$to_bytes doesn't work when value has a decimal point,
--https://garage.maemo.org/plugins/ggit/browse.php/?p=monky;a=commitdiff;h=174c256c81a027a2ea406f5f37dc036fac0a524b;hp=d75e2db5ed3fc788fb8514121f67316ac3e5f29f
--http://sourceforge.net/tracker/index.php?func=detail&aid=3000865&group_id=143975&atid=757310
--conky bug?
--value = (conky_parse(string.format('${%s %s}', t.name, t.arg)))
--if string.match(value,"%w") then
-- value = conky_parse(string.format('${to_bytes %s}',value))
--end
else
value = tonumber(t.arg)
end
if value==nil then value =0 end
pct = 100*value/t.max
pcb = 100/t.blocks
cairo_set_line_width (cr, t.height)
cairo_set_line_cap (cr, cap)
cairo_translate(cr,t.x,t.y)
cairo_rotate(cr,t.angle)
local matrix0 = cairo_matrix_t:create()
tolua.takeownership(matrix0)
cairo_matrix_init (matrix0, 1,t.skew_y,t.skew_x,1,0,0)
cairo_transform(cr,matrix0)
--call the drawing function for blocks
if t.blocks==1 and t.angle_bar==0 then
draw_single_bar()
if t.reflection=="t" or t.reflection=="b" then cairo_translate(cr,0,-t.height) end
else
draw_multi_bar()
end
--dot for reminder
--[[
if t.blocks ~=1 then
cairo_set_source_rgba(cr,1,0,0,1)
cairo_arc(cr,0,t.height/2,3,0,2*math.pi)
cairo_fill(cr)
else
cairo_set_source_rgba(cr,1,0,0,1)
cairo_arc(cr,0,0,3,0,2*math.pi)
cairo_fill(cr)
end]]
--call the drawing function for reflection and prepare the mask used
if t.reflection_alpha>0 and t.angle_bar==0 then
local pat2
local matrix1 = cairo_matrix_t:create()
tolua.takeownership(matrix1)
if t.angle_bar==0 then
pts={-delta/2,(t.height+t.space)/2,t.width+delta,-(t.height+t.space)*(t.blocks)}
if t.reflection=="t" then
cairo_matrix_init (matrix1,1,0,0,-t.reflection_scale,0,-(t.height+t.space)*(t.blocks-0.5)*2*(t.reflection_scale+1)/2)
pat2 = cairo_pattern_create_linear (t.width/2,-(t.height+t.space)*(t.blocks),t.width/2,(t.height+t.space)/2)
elseif t.reflection=="r" then
cairo_matrix_init (matrix1,-t.reflection_scale,0,0,1,delta+2*t.width,0)
pat2 = cairo_pattern_create_linear (delta/2+t.width,0,-delta/2,0)
elseif t.reflection=="l" then
cairo_matrix_init (matrix1,-t.reflection_scale,0,0,1,-delta,0)
pat2 = cairo_pattern_create_linear (-delta/2,0,delta/2+t.width,-0)
else --bottom
cairo_matrix_init (matrix1,1,0,0,-1*t.reflection_scale,0,(t.height+t.space)*(t.reflection_scale+1)/2)
pat2 = cairo_pattern_create_linear (t.width/2,(t.height+t.space)/2,t.width/2,-(t.height+t.space)*(t.blocks))
end
end
cairo_transform(cr,matrix1)
if t.blocks==1 and t.angle_bar==0 then
draw_single_bar()
cairo_translate(cr,0,-t.height/2)
else
draw_multi_bar()
end
cairo_set_line_width(cr,0.01)
cairo_pattern_add_color_stop_rgba (pat2, 0,0,0,0,1-t.reflection_alpha)
cairo_pattern_add_color_stop_rgba (pat2, t.reflection_length,0,0,0,1)
if t.angle_bar==0 then
cairo_rectangle(cr,pts[1],pts[2],pts[3],pts[4])
end
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)
end --reflection
pct,pcb=nil
end --setup_bar_graph()
--start here !
setup_bar_graph()
cairo_restore(cr)
end
~/home/username/.conkyForecast.config
# Config settings for conkyForecast.py
CACHE_FOLDERPATH = /tmp/
CONNECTION_TIMEOUT = 60
EXPIRY_MINUTES = 30
TIME_FORMAT = %l:%M%p
DATE_FORMAT = %d %b %Y
LOCALE = en
XOAP_PARTNER_ID = blah
XOAP_LICENCE_KEY = blah
MAXIMUM_DAYS_FORECAST = 4
# Ne pas modifier la ligne suivante
BASE_XOAP_URL = http://xoap.weather.com/weather/local/<LOCATION>?cc=*&dayf=5&link=xoap&prod=xoap&par=<XOAP_PARTNER_ID>&key=<XOAP_LICENCE_KEY>&unit=m
Linux qui tombe en panne c'est un miracle, tout comme Windows qui tombe en marche...
La seule raison pour laquelle il est utile d'utiliser Windows, c'est pour tester un virus.
Si tu ne sais pas : demande. Si tu sais : partage !
Hors ligne
#197 Le 06/04/2011, à 01:15
- matef
Re : Postez vos scripts Lua pour Conky !
Salut à tous,
Je voudrais faire apparaitre les débits de transferts montants et descendants dans mon conky sous la forme de deux cercles comme je l'ai fait pour la charge cpu, ram...
Seulement, je n'y parviens pas, en effet il me semble que les commandes downspeed et upspeed de conky retournent des valeurs de type:
NB, NKiB ou NMiB et non pas juste des chiffres.
Pour résumer, quelqu'un connait-il le moyen d'isoler uniquement la valeur numérique retournée par ces commandes dans le script lua comme on fait à l'aide d'un awk dans conky?
Merci
Dernière modification par matef (Le 07/04/2011, à 15:07)
Hors ligne
#198 Le 06/04/2011, à 06:44
- chepioq
Re : Postez vos scripts Lua pour Conky !
Essaye en utilisant les commandes downspeedf et upspeedf à la place de downspeed et upspeed
Tout est dans tout et réciproquement....
Hors ligne
#199 Le 06/04/2011, à 18:55
- matef
Re : Postez vos scripts Lua pour Conky !
Merci chepioq, c'est parfait!
Hors ligne
#200 Le 09/05/2011, à 20:31
- shamen456
Re : Postez vos scripts Lua pour Conky !
Bonjour a tous...
..je me lance dans Lua et j'aimerais recuperer des informations provenant de conkyforecast pour afficher des infos meteo sous forme de barres et de cercles...
...est-ce possible??
Dernière modification par shamen456 (Le 09/05/2011, à 20:32)
Hors ligne