Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 tongue 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 ? roll

#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 :
conky anneaux
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 wink


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 !

Huhu a écrit :

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 wink
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  ? smile

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 !

Huhu a écrit :

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 wink


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 tongue 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 tongue je vous envoi mon résultat final
@toute

Hors ligne

#191 Le 05/02/2011, à 14:41

Huhu

Re : Postez vos scripts Lua pour Conky !

Voila!
Bon jsuis pas super satisfait finalement, mais jvais garder comme sa, y'a toutes les infos utiles tongue
1296913251.png

Hors ligne

#192 Le 06/02/2011, à 18:39

wlourf

Re : Postez vos scripts Lua pour Conky !

sebul a écrit :

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 tongue trop limité par la créativité !!

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:
1297013502.png
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) :
1297013666.png
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 smile

Hors ligne

#193 Le 06/02/2011, à 18:41

compte supprimé

Re : Postez vos scripts Lua pour Conky !

carrément smile

#194 Le 18/02/2011, à 14:38

aragon6980

Re : Postez vos scripts Lua pour Conky !

1298037777.png

petit screenshot de mon bureau

Dernière modification par aragon6980 (Le 18/02/2011, à 15:03)


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 !

ferreol a écrit :

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! wink

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