Bon, comme prévu, voici la version bleu façon Fedora de ce même conky.



L'image de fond (le logo Fedora) :
Les trois scripts :

le conky_fedora (le conkyrc en gros) :
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

own_window false
own_window_type desktop
own_window_transparent yes
own_window_hints undecorated,sticky,skip_taskbar,skip_pager,below

border_inner_margin 0
border_outer_margin 0
stippled_borders 0

minimum_size 250 250
maximum_width 250
 
alignment top_left
gap_x 100
gap_y 370

draw_shades yes
default_shade_color 000000
draw_outline no
draw_borders no
draw_graph_borders no

use_xft yes
xftfont LCDMono2:size=10
xftalpha 0.4

lua_load ~/.conky/conky_fedora/conky_fedora_bleu.lua
lua_load ~/.conky/conky_fedora/conky_fedora_text_bleu.lua

lua_draw_hook_pre main_rings
lua_draw_hook_post draw_text

TEXT
${image ~/.conky/conky_fedora/bg_bleu.png -p 0,0 -f 86400}
conky_fedora_bleau.lua (Les anneaux lua) :
require 'cairo'
function conky_main_rings()
-- START PARAMETERS HERE
rings_settings={

    {
    --seconds
    name="time",
    arg="%S",
    max=60,
    xc=262,
    yc=458,
    radius=28,
    thickness=5,
    start_angle=-115,
    end_angle=205,
    sectors=29,
    gap_sectors=1,
    fill_sector=true,
    bg_colour1={{0,0x000000,0},{0.5,0x000000,0.1}, {1,0x000000,0}},
    fg_colour1={{0,0X294172,0.3},{0.5,0xFFFFFF,0.7}, {1,0x294172,0.3}},
    fg_colour2={{0,0X294172,0.4},{0.5,0x294172,0.7}, {1,0x294172,0.4}},
    bd_colour1={{0,0X000000,1},{0.5,0x000000,1}, {1,0x000000,1}},
    },

    {
    --cpu0
    name="cpu",
    arg="cpu0",
    max=100,
    xc=171,
    yc=548,
    radius=46,
    thickness=4,
    start_angle=-150,
    end_angle=-3,
    sectors=8,
    inverse_arc=true,
    bg_colour1={{0,0x000000,0.2},{0.5,0x000000,0.2}, {1,0x000000,0.2}},
    fg_colour1={{0,0XFFFFFF,0.7},{0.5,0xFFFFFF,1}, {1,0xFFFFFF,0.7}},
    fg_colour2={{0,0X294172,0.7},{0.5,0x294172,1}, {1,0x294172,0.7}},
    bd_colour1={{0,0X000000,1},{0.5,0x000000,1}, {1,0x000000,1}},
    },

    {
    --cpu1
    name="cpu",
    arg="cpu1",
    max=100,
    xc=171,
    yc=548,
    radius=57,
    thickness=10,
    start_angle=-150,
    end_angle=-3,
    sectors=16,
    inverse_arc=true,
    bg_colour1={{0,0x000000,0.2},{0.5,0x000000,0.1}, {1,0x000000,0}},
    fg_colour1={{0,0XFFFFFF,0.7},{0.5,0xFFFFFF,0.5}, {1,0xFFFFFF,0.1}},
    fg_colour2={{0,0X294172,0.7},{0.5,0x294172,1}, {1,0x294172,0.5}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },
    
    {
    --cpu2
    name="cpu",
    arg="cpu2",
    max=100,
    xc=171,
    yc=548,
    radius=41,
    thickness=10,
    start_angle=-150,
    end_angle=-3,
    sectors=16,
    inverse_arc=true,
    bg_colour1={{0,0x000000,0},{0.5,0x000000,0.1}, {1,0x000000,0.2}},
    fg_colour1={{0,0XFFFFFF,0.1},{0.5,0xFFFFFF,0.5}, {1,0xFFFFFF,0.7}},
    fg_colour2={{0,0X294172,0.5},{0.5,0x294172,1}, {1,0x294172,0.7}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },

    {
    --ram
    name="memperc",
    arg="",
    max=100,
    xc=263,
    yc=459,
    radius=43,
    thickness=12,
    start_angle=30,
    end_angle=177,
    sectors=20,
    inverse_arc=true,
    bg_colour1={{0,0x000000,0},{0.5,0x000000,0.1}, {1,0x000000,0.2}},
    fg_colour1={{0,0XFFFFFF,0.1},{0.5,0xFFFFFF,0.5}, {1,0xFFFFFF,0.7}},
    fg_colour2={{0,0X294172,0.1},{0.5,0x294172,0.7}, {1,0x294172,1}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },

    {
    --fs_used
    name="fs_used_perc",
    arg="/",
    max=100,
    xc=263,
    yc=459,
    radius=56,
    thickness=12,
    start_angle=30,
    end_angle=177,
    sectors=20,
    inverse_arc=true,
    bg_colour1={{0,0x000000,0.2},{0.5,0x000000,0.1}, {1,0x000000,0}},
    fg_colour1={{0,0XFFFFFF,0.7},{0.5,0xFFFFFF,0.5}, {1,0xFFFFFF,0.1}},
    fg_colour2={{0,0X294172,1},{0.5,0x294172,0.7}, {1,0x294172,0.3}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },
        
    {
    --download speed
    name="downspeedf",
    arg="eth0",
    max=1500,
    xc=171,
    yc=546,
    radius=60,
    thickness=28,
    start_angle=90,
    end_angle=180,
    sectors=20,
    fill_sector=true,
    gap_sectors=1,
    bg_colour1={{0,0x000000,0},{0.5,0x333333,0.5}, {1,0x111111,0.2}},
    fg_colour1={{0,0X294172,0},{0.5,0x294172,1}, {1,0x294172,0.2}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },
    
    
    {
    --upload speed
    name="upspeedf",
    arg="eth0",
    max=400,
    xc=263,
    yc=460,
    radius=60,
    thickness=28,
    start_angle=270,
    end_angle=360,
    sectors=20,
    fill_sector=true,
    gap_sectors=1,
    bg_colour1={{0,0x111111,0.2},{0.5,0x333333,0.5}, {1,0x000000,0}},
    fg_colour1={{0,0X294172,0.2},{0.5,0x294172,1}, {1,0x294172,0}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },

    {
    --Top cpu 1
    name="top cpu",
    arg="1",
    max=100,
    xc=226,
    yc=496,
    radius=138,
    thickness=11,
    start_angle=-90,
    end_angle=-45,
    sectors=25,
    inverse_arc=false,
    bg_colour1={{0,0x000000,0},{0.5,0x000000,0}, {1,0x000000,0}},
    fg_colour1={{0,0XFFFFFF,0.7},{0.5,0xFFFFFF,0.5}, {1,0xFFFFFF,0.3}},
    fg_colour2={{0,0X294172,0.7},{0.5,0x294172,0.5}, {1,0x294172,0.3}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },

    {
    --Top cpu 2
    name="top cpu",
    arg="2",
    max=100,
    xc=226,
    yc=496,
    radius=149,
    thickness=11,
    start_angle=-90,
    end_angle=-45,
    sectors=25,
    inverse_arc=false,
    bg_colour1={{0,0x000000,0},{0.5,0x000000,0}, {1,0x000000,0}},
    fg_colour1={{0,0XFFFFFF,0.6},{0.5,0xFFFFFF,0.4}, {1,0xFFFFFF,0.2}},
    fg_colour2={{0,0X294172,0.6},{0.5,0x294172,0.4}, {1,0x294172,0.2}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },
    
    {
    --Top cpu 3
    name="top cpu",
    arg="3",
    max=100,
    xc=226,
    yc=496,
    radius=160,
    thickness=11,
    start_angle=-90,
    end_angle=-45,
    sectors=25,
    inverse_arc=false,
    bg_colour1={{0,0x000000,0},{0.5,0x000000,0}, {1,0x000000,0}},
    fg_colour1={{0,0XFFFFFF,0.4},{0.5,0xFFFFFF,0.2}, {1,0xFFFFFF,0}},
    fg_colour2={{0,0X294172,0.4},{0.5,0x294172,0.2}, {1,0x294172,0}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },

    {
    --Top mem 1
    name="top mem",
    arg="1",
    max=100,
    xc=125,
    yc=596,
    radius=35,
    thickness=11,
    start_angle=-90,
    end_angle=-180,
    sectors=8,
    inverse_arc=true,
    bg_colour1={{0,0x000000,0},{0.5,0x000000,0}, {1,0x000000,0}},
    fg_colour1={{0,0XFFFFFF,0.7},{0.5,0xFFFFFF,0.5}, {1,0xFFFFFF,0.3}},
    fg_colour2={{0,0X294172,0.7},{0.5,0x294172,0.5}, {1,0x294172,0.3}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },

    {
    --Top mem 2
    name="top mem",
    arg="2",
    max=100,
    xc=125,
    yc=596,
    radius=46,
    thickness=11,
    start_angle=-90,
    end_angle=-180,
    sectors=8,
    inverse_arc=true,
    bg_colour1={{0,0x000000,0},{0.5,0x000000,0}, {1,0x000000,0}},
    fg_colour1={{0,0XFFFFFF,0.6},{0.5,0xFFFFFF,0.4}, {1,0xFFFFFF,0.2}},
    fg_colour2={{0,0X294172,0.6},{0.5,0x294172,0.4}, {1,0x294172,0.2}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },
    
    {
    --Top mem 3
    name="top mem",
    arg="3",
    max=100,
    xc=125,
    yc=596,
    radius=57,
    thickness=11,
    start_angle=-90,
    end_angle=-180,
    sectors=8,
    inverse_arc=true,
    bg_colour1={{0,0x000000,0},{0.5,0x000000,0}, {1,0x000000,0}},
    fg_colour1={{0,0XFFFFFF,0.4},{0.5,0xFFFFFF,0.2}, {1,0xFFFFFF,0}},
    fg_colour2={{0,0X294172,0.4},{0.5,0x294172,0.2}, {1,0x294172,0}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },

    {
    --Battery
    name="battery_percent",
    arg="",
    max=100,
    xc=225,
    yc=495,
    radius=157,
    thickness=32,
    start_angle=-45,
    end_angle=180,
    sectors=100,
    inverse_arc=true,
    bg_colour1={{0,0XFFFFFF,0.7},{0.5,0xFFFFFF,0.4}, {1,0xFFFFFF,0}},
    fg_colour2={{0,0X294172,0.7},{0.5,0x294172,0.4}, {1,0x294172,0}},
    fg_colour1={{0,0X294172,0.7},{0.5,0x294172,0.4}, {1,0x294172,0}},
    bd_colour1={{0,0X00FF00,0.3},{0.5,0x00FF00,0.2}, {1,0x00FF00,0}},
    },
}
--END OF PARAMETERS HERE

--main function

    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)

    if tonumber(conky_parse('${updates}'))>3 then
        for i in pairs(rings_settings) do
            draw_ring(rings_settings[i])
        end
    end

    cairo_destroy(cr)

end




function draw_ring(t)

    local function rgba_to_r_g_b_a(tcolour)
        colour,alpha=tcolour[2],tcolour[3]
        return ((colour / 0x10000) % 0x100) / 255., 
            ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
    end
            
            
    local function calc_delta(tcol1,tcol2)
        --calculate deltas P R G B A to table_colour 1

        for x = 1, #tcol1 do
            tcol1[x].dA    = 0
            tcol1[x].dP = 0
             tcol1[x].dR = 0
            tcol1[x].dG = 0
            tcol1[x].dB = 0
            if tcol2~=nil and #tcol1 == #tcol2 then
                local r1,g1,b1,a1 = rgba_to_r_g_b_a(tcol1[x])
                local r2,g2,b2,a2 = rgba_to_r_g_b_a(tcol2[x])
                tcol1[x].dP = (tcol2[x][1]-tcol1[x][1])/t.sectors
                 tcol1[x].dR = (r2-r1)/t.sectors
                tcol1[x].dG = (g2-g1)/t.sectors
                tcol1[x].dB = (b2-b1)/t.sectors
                tcol1[x].dA = (a2-a1)/t.sectors        
                
            end
        end
        
        return tcol1
    end

    --check values
    local function setup(t)
        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'")
            print ("for name=" .. t.name)
            print ("with arg=" .. t.arg)
            return
        end
        if t.name==nil then t.name="" end
        if t.arg==nil then t.arg="" end

        if t.xc==nil then t.xc=conky_window.width/2 end
        if t.yc==nil then t.yc=conky_window.height/2 end
        if t.thickness ==nil then t.thickness = 10 end
        if t.radius ==nil then t.radius =conky_window.width/4 end
        if t.start_angle==nil then t.start_angle =0 end
        if t.end_angle==nil then t.end_angle=360 end
        if t.bg_colour1==nil then 
            t.bg_colour1={{0,0x00ffff,0.1},{0.5,0x00FFFF,0.5},{1,0x00FFFF,0.1}}
        end
        if t.fg_colour1==nil then
            t.fg_colour1={{0,0x00FF00,0.1},{0.5,0x00FF00,1},{1,0x00FF00,0.1}}
        end
        if t.bd_colour1==nil then
            t.bd_colour1={{0,0xFFFF00,0.5},{0.5,0xFFFF00,1},{1,0xFFFF00,0.5}}
        end
        if t.sectors==nil then t.sectors=10 end
        if t.gap_sectors==nil then t.gap_sectors=1 end 
        if t.fill_sector==nil then t.fill_sector=false end
        if t.sectors==1 then t.fill_sector=false end
        if t.border_size==nil then t.border_size=0 end
        if t.cap==nil then t.cap="p" end
        --some checks
        if t.thickness>t.radius then t.thickness=t.radius*0.1 end
        t.int_radius = t.radius-t.thickness

        --check colors tables 
        for i=1, #t.bg_colour1 do 
            if #t.bg_colour1[i]~=3 then t.bg_colour1[i]={1,0xFFFFFF,0.5} end
        end
        for i=1, #t.fg_colour1 do 
            if #t.fg_colour1[i]~=3 then t.fg_colour1[i]={1,0xFF0000,1} end
        end
        for i=1, #t.bd_colour1 do 
            if #t.bd_colour1[i]~=3 then t.bd_colour1[i]={1,0xFFFF00,1} end
        end
    
        if t.bg_colour2~=nil then
            for i=1, #t.bg_colour2 do 
                if #t.bg_colour2[i]~=3 then t.bg_colour2[i]={1,0xFFFFFF,0.5} end
            end
        end
        if t.fg_colour2~=nil then
            for i=1, #t.fg_colour2 do 
                if #t.fg_colour2[i]~=3 then t.fg_colour2[i]={1,0xFF0000,1} end
            end
        end
        if t.bd_colour2~=nil then
            for i=1, #t.bd_colour2 do 
                if #t.bd_colour2[i]~=3 then t.bd_colour2[i]={1,0xFFFF00,1} end
            end
        end     
        
        if t.start_angle>=t.end_angle then
         local tmp_angle=t.end_angle
         t.end_angle= t.start_angle
         t.start_angle = tmp_angle
         -- print ("inversed angles")
            if t.end_angle-t.start_angle>360 and t.start_angle>0 then
                t.end_angle=360+t.start_angle
                print ("reduce angles")
            end
        
            if t.end_angle+t.start_angle>360 and t.start_angle<=0 then
                t.end_angle=360+t.start_angle
                print ("reduce angles")
            end
        
            if t.int_radius<0 then t.int_radius =0 end
            if t.int_radius>t.radius then
                local tmp_radius=t.radius
                t.radius=t.int_radius
                t.int_radius=tmp_radius
                print ("inversed radius")
            end
            if t.int_radius==t.radius then
                t.int_radius=0
                print ("int radius set to 0")
            end 
        end
        
        t.fg_colour1 = calc_delta(t.fg_colour1,t.fg_colour2)
        t.bg_colour1 = calc_delta(t.bg_colour1,t.bg_colour2)
        t.bd_colour1 = calc_delta(t.bd_colour1,t.bd_colour2)
    end
    
    --initialize table
    setup(t)
    --[[grid
    h=conky_window.height
    w=conky_window.width
    cairo_set_source_rgba(cr,1,1,1,1)
    cairo_set_line_width(cr,0.5)
    cairo_move_to(cr,0,t.yc)
    cairo_line_to(cr,w,t.yc)
    cairo_stroke(cr)
    cairo_move_to(cr,t.xc,0)
    cairo_line_to(cr,t.xc,h)
    cairo_stroke(cr)
    cairo_move_to(cr,t.xc,t.yc)
    cairo_line_to(cr,t.xc+200*math.sin(math.pi/4),t.yc-200*math.cos(math.pi/4))
    cairo_stroke(cr)
    cairo_move_to(cr,0,t.yc-t.radius)
    cairo_line_to(cr,w,t.yc-t.radius)
    cairo_stroke(cr)
    cairo_move_to(cr,0,t.yc-t.int_radius)
    cairo_line_to(cr,w,t.yc-t.int_radius)
    cairo_stroke(cr)
    cairo_move_to(cr,0,t.yc-t.gap_sectors)
    cairo_line_to(cr,w,t.yc-t.gap_sectors)
    cairo_stroke(cr)
    cairo_set_source_rgba(cr,1,0,0,0.5)
    cairo_arc(cr,t.xc,t.yc,t.radius,0,2*math.pi)
    cairo_stroke(cr)
    cairo_arc(cr,t.xc,t.yc,t.int_radius,0,2*math.pi)    
    cairo_stroke(cr)    
    cairo_set_source_rgba(cr,0,1,0,1)    
    cairo_move_to(cr,t.xc+t.gap_sectors,t.yc-t.gap_sectors)
    cairo_line_to(cr,t.xc+400*math.sin(math.pi/4),t.yc-400*math.cos(math.pi/4))
    cairo_stroke(cr)
    --END GRID
    ]]
    
    --initialize cairo context
    cairo_save(cr)
    cairo_translate(cr,t.xc,t.yc)
    cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND)
    cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND)

    --get value
    local value = 0
    if t.name ~="" then
        value = tonumber(conky_parse(string.format('${%s %s}', t.name, t.arg)))
    else
        value = tonumber(t.arg)
    end
    if value==nil then value =0 end

    --initialize sectors
    --angle of a sector :
    angleA = ((t.end_angle-t.start_angle)/t.sectors)*math.pi/180
    --value of a sector : 
    valueA = t.max/t.sectors
    --first angle of a sector : 
    lastAngle = t.start_angle*math.pi/180


    local function draw_sector(type_arc,angle0,angle,valpc, idx)
     
        --this function draws a portion of arc
         --type of arc, angle0 = strating angle, angle= angle of sector,
         --valpc = percentage inside the sector, idx = sctor number #
         if type_arc=="bg" then         --background
             if valpc==1 then return end
             tcolor=t.bg_colour1
         elseif type_arc=="fg" then    --foreground
             if valpc==0 then return end
             tcolor=t.fg_colour1
         elseif type_arc=="bd" then    --border
             tcolor=t.bd_colour1
         end 

        --angles equivalents to gap_sector
        local ext_delta=math.atan(t.gap_sectors/(2*t.radius))
        local int_delta=math.atan(t.gap_sectors/(2*t.int_radius))

        --angles of arcs
        local ext_angle=(angle-ext_delta*2)*valpc
        local int_angle=(angle-int_delta*2)*valpc

        --define colours to use for this sector
        if #tcolor==1 then 
            --plain color
            local vR,vG,vB,vA = rgba_to_r_g_b_a(tcolor[1])
            cairo_set_source_rgba(cr,vR+tcolor[1].dR*idx,
                                    vG+tcolor[1].dG*idx,
                                    vB+tcolor[1].dB*idx,
                                    vA+tcolor[1].dA*idx    )
        else
            --radient color
            local pat=cairo_pattern_create_radial(0,0,t.int_radius,0,0,t.radius)
            for i=1, #tcolor do
                local vP,vR,vG,vB,vA = tcolor[i][1], rgba_to_r_g_b_a(tcolor[i])
                cairo_pattern_add_color_stop_rgba (pat, 
                                    vP+tcolor[i].dP*idx,
                                    vR+tcolor[i].dR*idx,
                                    vG+tcolor[i].dG*idx,
                                    vB+tcolor[i].dB*idx,
                                    vA+tcolor[i].dA*idx    )
            end
            cairo_set_source (cr, pat)
            cairo_pattern_destroy(pat)
        end

        --start drawing
         cairo_save(cr)
        --x axis is parrallel to start of sector
        cairo_rotate(cr,angle0-math.pi/2)

        local ri,re = t.int_radius ,t.radius

        --point A 
        local angle_a
    
        if t.cap == "p" then 
            angle_a = int_delta
            if t.inverse_arc and type_arc ~="bg" then
                angle_a = angle-int_angle-int_delta
            end
            if not(t.inverse_arc) and type_arc =="bg" then
                angle_a = int_delta+int_angle
            end
        else --t.cap=="r"
            angle_a = ext_delta
            if t.inverse_arc and type_arc~="bg" then
                angle_a = angle-ext_angle-ext_delta
            end
            if not(t.inverse_arc) and type_arc=="bg" then
                angle_a = ext_delta+ext_angle
            end
        end
        local ax,ay = ri*math.cos(angle_a),ri*math.sin(angle_a)


        --point B
        local angle_b = ext_delta
        if t.cap == "p" then 
            if t.inverse_arc and type_arc ~="bg" then
                angle_b = angle-ext_angle-ext_delta
            end
            if not(t.inverse_arc) and type_arc=="bg" then
                angle_b = ext_delta+ext_angle
            end
        else
            if t.inverse_arc and type_arc ~="bg" then
                angle_b = angle-ext_angle-ext_delta
            end
            if not(t.inverse_arc) and type_arc=="bg" then
                angle_b = ext_delta+ext_angle
            end
        end
        local bx,by = re*math.cos(angle_b),re*math.sin(angle_b)

        -- EXTERNAL ARC B --> C
        if t.inverse_arc then
            if type_arc=="bg" then
                b0,b1= ext_delta, angle-ext_delta-ext_angle
            else
                b0,b1= angle-ext_angle-ext_delta, angle-ext_delta
            end
        else
            if type_arc=="bg" then
                b0,b1= ext_delta+ext_angle, angle-ext_delta
            else
                b0,b1= ext_delta, ext_angle+ext_delta
            end
        end
        
        ---POINT D
        local angle_c 
        if t.cap == "p" then 
            angle_d = angle-int_delta
            if t.inverse_arc and type_arc=="bg" then
                angle_d = angle-int_delta-int_angle    
            end
            if not(t.inverse_arc) and type_arc~="bg" then
                angle_d=int_delta+int_angle
            end
        else
            angle_d = angle-ext_delta
            if t.inverse_arc and type_arc=="bg" then
                angle_d =angle-ext_delta-ext_angle
            end
            if not(t.inverse_arc) and type_arc~="bg" then
                angle_d = ext_angle+ext_delta
            end
        end
        local dx,dy = ri*math.cos(angle_d),ri*math.sin(angle_d)
        
        -- INTERNAL ARC D --> A
        if t.cap=="p" then    
            if t.inverse_arc then    
                if type_arc=="bg" then
                    d0,d1= angle-int_delta-int_angle,int_delta
                else
                    d0,d1= angle-int_delta, angle- int_angle-int_delta
                end
            else
                if type_arc=="bg" then
                    d0,d1= angle-int_delta, int_delta+int_angle
                else
                    d0,d1= int_delta+int_angle, int_delta
                end
            end
        else
            if t.inverse_arc then    
                if type_arc=="bg" then    
                    d0,d1= angle-ext_delta-ext_angle,ext_delta
                else
                    d0,d1= angle-ext_delta, angle- ext_angle-ext_delta
                end
            else
                if type_arc=="bg" then    
                    d0,d1= angle-ext_delta,ext_delta+ext_angle
                else    
                    d0,d1= ext_angle+ext_delta, ext_delta
                end
            end            
        end
            
        --draw sector
        cairo_move_to(cr,ax,ay)
        cairo_line_to(cr,bx,by)
        cairo_arc(cr,0,0,re,b0,b1)
        cairo_line_to(cr,dx,dy) 
        cairo_arc_negative(cr,0,0,ri,d0,d1)
         cairo_close_path (cr);

        --stroke or fill sector
         if type_arc=="bd" then
             cairo_set_line_width(cr,t.border_size)
             cairo_stroke(cr)
         else
             cairo_fill(cr)
         end

         cairo_restore(cr)

     end
    --draw sectors
    local n0,n1,n2 = 1,t.sectors,1
    if t.inverse_arc then n0,n1,n2 = t.sectors,1,-1 end
    local index = 0
    for i = n0,n1,n2 do 
        index = index +1
        local valueZ=1
        local cstA, cstB = (i-1),i
        if t.inverse_arc then cstA,cstB = (t.sectors-i), (t.sectors-i+1) end
        
        if value>valueA *cstA and value<valueA*cstB then
            if not t.fill_sector then
                valueZ = (value-valueA*cstA)/valueA
            end
        else
            if value<valueA*cstB then valueZ=0 end
        end
        
        local start_angle= lastAngle+(i-1)*angleA
        if t.foreground ~= false then 
            draw_sector("fg",start_angle,angleA,valueZ, index)
        end
        if t.background ~= false then 
            draw_sector("bg",start_angle,angleA,valueZ, i)
        end
        if t.border_size>0 then draw_sector("bd",start_angle,angleA,1, i) end
    end

    cairo_restore(cr)
end


--[[END OF RING-SECTORS WIDGET]]


function axis(ctx,alpha)
    cairo_set_line_width(ctx,1)
    cairo_set_source_rgba(ctx,1,0,0,alpha)
    cairo_move_to(ctx,0,0)
    cairo_line_to(ctx,150,0)
    cairo_stroke(ctx)
    cairo_set_source_rgba(ctx,0,1,0,alpha)
    cairo_move_to(ctx,0,0)
    cairo_line_to(ctx,0,150)
    cairo_stroke(ctx)
end
et conky_fedora_text_bleu.lua (les valeurs textuelles):

Vous aurez besoin des polices StyleBats, LCDMono2 et OpenLogos (disponibles sur DaFont)
require 'cairo'
function conky_draw_text()
    --BEGIN OF PARAMETRES
    text_settings={


        {
            text="B",
            font_name="StyleBats",
            font_size=40,
            h_align="c",
            orientation="ww",
            angle=-90,
            x=185,
            y=551,
            colour={{0,0X3C6EB4,0.1},{0.5,0x3C6EB4,0.3}, {1,0x3C6EB4,0.5}},
        },

        {
            text=conky_parse("${time %d}   ${time %m}"),
            font_name="LCDMono2",
            font_size=12,
            h_align="l",
            x=166,
            y=561,
            angle=-45,
            orientation="nn",
            colour={{0,0XFFFFFF,0.5},{0.5,0xFFFFFF,0.3}, {1,0x3C6EB4,0.5}},
        },

        {
            text=conky_parse("${time %H:%M}"),
            font_name="LCDMono2",
            font_size=18,
            h_align="c",
            bold=true,
            x=260,
            y=470,
            angle=-45,
            orientation="nn",
            colour={{0,0XFFFFFF,0.5},{0.5,0xFFFFFF,0.3}, {1,0x3C6EB4,0.5}},
        },
        
        {
            text=conky_parse("${cpu cpu0}"),
            font_name="LCDMono2",
            font_size=10,
            h_align="r",
            bold=true,
            x=182,
            y=508,
            colour={{0,0X294172,0.5},{0.5,0x294172,1}, {1,0x294172,0.5}},
        },

        {
            text=conky_parse("${cpu cpu1}"),
            font_name="LCDMono2",
            font_size=10,
            h_align="r",
            bold=true,
            x=206,
            y=503,
            orientation="nn",
            colour={{0,0X294172,0.5},{0.5,0x294172,1}, {1,0x294172,0.5}},
        },

        {
            text=conky_parse("${cpu cpu2}"),
            font_name="LCDMono2",
            font_size=10,
            h_align="r",
            bold=true,
            x=206,
            y=512,
            orientation="nn",
            colour={{0,0X294172,0.5},{0.5,0x294172,1}, {1,0x294172,0.5}},
        },    

        {
            text="D",
            font_name="StyleBats",
            font_size=28,
            h_align="c",
            x=187,
            y=515,
            orientation="nn",
            colour={{0,0X3C6EB4,0.5},{0.5,0x3C6EB4,1}, {1,0x3C6EB4,0.5}},
        },    

        {
            text=conky_parse("$memperc"),
            font_name="LCDMono2",
            font_size=10,
            h_align="r",
            bold=true,
            orientation="nn",
            x=248,
            y=499,
            colour={{0,0X294172,0.5},{0.5,0x294172,1}, {1,0x294172,0.5}},
        },

        {
            text=conky_parse("$fs_used_perc"),
            font_name="LCDMono2",
            font_size=10,
            h_align="r",
            bold=true,
            orientation="nn",
            x=248,
            y=516,
            colour={{0,0X294172,0.5},{0.5,0x294172,1}, {1,0x294172,0.5}},
        },

        {
            text="W",
            font_name="StyleBats",
            font_size=26,
            h_align="c",
            x=240,
            y=503,
            angle=90,
            orientation="nn",
            colour={{0,0X3C6EB4,0.5},{0.5,0x3C6EB4,1}, {1,0x3C6EB4,0.5}},
        },

        {
            text="R",
            font_name="StyleBats",
            font_size=22,
            h_align="c",
            angle=90,
            x=150,
            y=595,
            colour={{0,0X3C6EB4,0.5},{0.5,0x3C6EB4,1}, {1,0x3C6EB4,0.5}},
        },

        {
            text=conky_parse("${downspeedf eth0}"),
            font_name="LCDMono2",
            font_size=14,
            h_align="l",
            bold=true,
            x=222,
            y=544,
            angle=-90,
            colour={{0,0X294172,0.5},{0.5,0x294172,1}, {1,0x294172,0.5}},
        },

        {
            text="R",
            font_name="StyleBats",
            font_size=22,
            h_align="c",
            angle=-90,
            x=284,
            y=411,
            colour={{0,0X3C6EB4,0.5},{0.5,0x3C6EB4,1}, {1,0x3C6EB4,0.5}},
        },

        {
            text=conky_parse("${upspeedf eth0}"),
            font_name="LCDMono2",
            font_size=14,
            h_align="r",
            bold=true,
            x=223,
            y=462,
            angle=-90,
            colour={{0,0X294172,0.5},{0.5,0x294172,1}, {1,0x294172,0.5}},
        },

        {
            text=conky_parse("$uptime"),
            font_name="LCDMono2",
            font_size=14,
            h_align="c",
            bold=true,
            orientation="nn",
            angle=-45,
            x=290,
            y=570,
            colour={{0,0XAAAAAA,0.2},{0.5,0xCCCCCC,0.5}, {1,0xAAAAAA,0.2}},
        },    

        {
            text=conky_parse("$kernel"),
            font_name="LCDMono2",
            font_size=12,
            h_align="c",
            bold=true,
            orientation="nn",
            angle=-45,
            x=280,
            y=550,
            colour={{0,0XAAAAAA,0.2},{0.5,0xCCCCCC,0.5}, {1,0xAAAAAA,0.2}},
        },    


        {
            text="t",
            font_name="OpenLogos",
            font_size=90,
            h_align="c",
            v_align="m",
            x=155,
            y=445,
            angle=-45,
            orientation="nn",
            colour={{0,0X294172,0.1},{0.5,0x294172,0.1}, {1,0x294172,0.1}},
        },

        {
            text=conky_parse("${top name 1}"),
            font_name="LCDMono2",
            font_size=12,
            h_align="r",
            bold=true,
            orientation="nn",
            angle=-90,
            x=100,
            y=500,
            colour={{0,0X294172,0.3},{0.5,0x294172,0.5}, {1,0x294172,0.3}},
        },    

        {
            text=conky_parse("${top name 2}"),
            font_name="LCDMono2",
            font_size=12,
            h_align="r",
            bold=true,
            orientation="nn",
            angle=-90,
            x=89,
            y=500,
            colour={{0,0X6C86AD,0.4},{0.5,0x6C86AD,0.6}, {1,0x6C86AD,0.4}},
        },    

        {
            text=conky_parse("${top name 3}"),
            font_name="LCDMono2",
            font_size=12,
            h_align="r",
            bold=true,
            orientation="nn",
            angle=-90,
            x=78,
            y=500,
            colour={{0,0XFFFFFF,0.2},{0.5,0xFFFFFF,0.5}, {1,0xFFFFFF,0.2}},
        },

        {
            text=conky_parse("${battery_time}"),
            font_name="LCDMono2",
            font_size=14,
            h_align="c",
            bold=true,
            orientation="nn",
            angle=0,
            x=175,
            y=640,
            colour={{0,0XFFFFFF,0.1},{0.5,0xFFFFFF,0.3}, {1,0xFFFFFF,0.1}},
        },
    }
    
    
--------------END OF PARAMETERES----------------
    if conky_window == nil then return end
    if tonumber(conky_parse("$updates"))<3 then return end
       
    local cs = cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, conky_window.width, conky_window.height)

    for i,v in pairs(text_settings) do    
        cr = cairo_create (cs)
        display_text(v)
        cairo_destroy(cr)
    end
    
    cairo_surface_destroy(cs)
    


end

function rgb_to_r_g_b2(tcolour)
    colour,alpha=tcolour[2],tcolour[3]
    return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end

function display_text(t)

    local function set_pattern()
        --this function set the pattern
        if #t.colour==1 then 
            cairo_set_source_rgba(cr,rgb_to_r_g_b2(t.colour[1]))
        else
            local pat
            
            if t.radial==nil then
                local pts=linear_orientation(t,te)
                pat = cairo_pattern_create_linear (pts[1],pts[2],pts[3],pts[4])
            else
                pat = cairo_pattern_create_radial (t.radial[1],t.radial[2],t.radial[3],t.radial[4],t.radial[5],t.radial[6])
            end
        
            for i=1, #t.colour do
                cairo_pattern_add_color_stop_rgba (pat, t.colour[i][1], rgb_to_r_g_b2(t.colour[i]))
            end
            cairo_set_source (cr, pat)
        end
    end
    
    --set default values if needed
    if t.text==nil then t.text="Conky is good for you !" end
    if t.x==nil then t.x = conky_window.width/2 end
    if t.y==nil then t.y = conky_window.height/2 end
    if t.colour==nil then t.colour={{1,0xFFFFFF,1}} end
    if t.font_name==nil then t.font_name="Free Sans" end
    if t.font_size==nil then t.font_size=14 end
    if t.angle==nil then t.angle=0 end
    if t.italic==nil then t.italic=false end
    if t.oblique==nil then t.oblique=false end
    if t.bold==nil then t.bold=false end
    if t.radial ~= nil then
        if #t.radial~=6 then 
            print ("error in radial table")
            t.radial=nil 
        end
    end
    if t.orientation==nil then t.orientation="ww" end
    if t.h_align==nil then t.h_align="l" end
    if t.v_align==nil then t.v_align="b" end    
    if t.reflection_alpha == nil then t.reflection_alpha=0 end
    if t.reflection_length == nil then t.reflection_length=1 end
    if t.reflection_scale == nil then t.reflection_scale=1 end
    if t.skew_x==nil then t.skew_x=0 end
    if t.skew_y==nil then t.skew_y=0 end    
    cairo_translate(cr,t.x,t.y)
    cairo_rotate(cr,t.angle*math.pi/180)
    cairo_save(cr)       
     
 

    local slant = CAIRO_FONT_SLANT_NORMAL
    local weight =CAIRO_FONT_WEIGHT_NORMAL
    if t.italic then slant = CAIRO_FONT_SLANT_ITALIC end
    if t.oblique then slant = CAIRO_FONT_SLANT_OBLIQUE end
    if t.bold then weight = CAIRO_FONT_WEIGHT_BOLD end
    
    cairo_select_font_face(cr, t.font_name, slant,weight)
 
    for i=1, #t.colour do    
        if #t.colour[i]~=3 then 
            print ("error in color table")
            t.colour[i]={1,0xFFFFFF,1} 
        end
    end

    local matrix0 = cairo_matrix_t:create()
    skew_x,skew_y=t.skew_x/t.font_size,t.skew_y/t.font_size
    cairo_matrix_init (matrix0, 1,skew_y,skew_x,1,0,0)
    cairo_transform(cr,matrix0)
    cairo_set_font_size(cr,t.font_size)
    te=cairo_text_extents_t:create()
    cairo_text_extents (cr,t.text,te)
    
    set_pattern()


            
    mx,my=0,0
    
    if t.h_align=="c" then
        mx=-te.width/2
    elseif t.h_align=="r" then
        mx=-te.width
    end
    if t.v_align=="m" then
        my=-te.height/2-te.y_bearing
    elseif t.v_align=="t" then
        my=-te.y_bearing
    end
    cairo_move_to(cr,mx,my)
    
    cairo_show_text(cr,t.text)

     
        
        
   if t.reflection_alpha ~= 0 then 
        local matrix1 = cairo_matrix_t:create()
        cairo_set_font_size(cr,t.font_size)

        cairo_matrix_init (matrix1,1,0,0,-1*t.reflection_scale,0,(te.height+te.y_bearing+my)*(1+t.reflection_scale))
        cairo_set_font_size(cr,t.font_size)
        te=cairo_text_extents_t:create()
        cairo_text_extents (cr,t.text,te)
        
                
        cairo_transform(cr,matrix1)
        set_pattern()
        cairo_move_to(cr,mx,my)
        cairo_show_text(cr,t.text)

        local pat2 = cairo_pattern_create_linear (0,
                                        (te.y_bearing+te.height+my),
                                        0,
                                        te.y_bearing+my)
        cairo_pattern_add_color_stop_rgba (pat2, 0,1,0,0,1-t.reflection_alpha)
        cairo_pattern_add_color_stop_rgba (pat2, t.reflection_length,0,0,0,1)    
        
        
        cairo_set_line_width(cr,1)
        dy=te.x_bearing
        if dy<0 then dy=dy*(-1) end
        cairo_rectangle(cr,mx+te.x_bearing,te.y_bearing+te.height+my,te.width+dy,-te.height*1.05)
        cairo_clip_preserve(cr)
        cairo_set_operator(cr,CAIRO_OPERATOR_CLEAR)
        --cairo_stroke(cr)
        cairo_mask(cr,pat2)
        cairo_pattern_destroy(pat2)
        cairo_set_operator(cr,CAIRO_OPERATOR_OVER)
    end
    
end


function linear_orientation(t,te)
    local w,h=te.width,te.height
    local xb,yb=te.x_bearing,te.y_bearing
    
    if t.h_align=="c" then
        xb=xb-w/2
    elseif t.h_align=="r" then
        xb=xb-w
       end    
    if t.v_align=="m" then
        yb=-h/2
    elseif t.v_align=="t" then
        yb=0
       end    
       
    if t.orientation=="nn" then
        p={xb+w/2,yb,xb+w/2,yb+h}
    elseif t.orientation=="ne" then
        p={xb+w,yb,xb,yb+h}
    elseif t.orientation=="ww" then
        p={xb,h/2,xb+w,h/2}
    elseif vorientation=="se" then
        p={xb+w,yb+h,xb,yb}
    elseif t.orientation=="ss" then
        p={xb+w/2,yb+h,xb+w/2,yb}
    elseif vorientation=="ee" then
        p={xb+w,h/2,xb,h/2}        
    elseif t.orientation=="sw" then
        p={xb,yb+h,xb+w,yb}
    elseif t.orientation=="nw" then
        p={xb,yb,xb+w,yb+h}
    end
    return p
end
[edit] Petit changement de couleur pour les jauges CPU TOP{1 à 3} RAM BATTERY et FS_USED
Mec, je ne sais pas comment tu as fait ça… Mais bravo en tout cas, c'est très beau et très bien fait, trop bien fait ! Jamais je n'aurais pensé cela possible… Je vais l'adopter je le sens, c'est trop beau.
Renault wrote:Mec, je ne sais pas comment tu as fait ça… Mais bravo en tout cas, c'est très beau et très bien fait, trop bien fait ! Jamais je n'aurais pensé cela possible… Je vais l'adopter je le sens, c'est trop beau.
Merci des compliments ! Ne pas oublier qu'il faut conky v1.8 (donc le compiler sois-même pour que les scripts lua fonctionnent)

J'ai réussi à faire ça en tâtonnant, en bidouillant les paramètres de configuration des anneaux. Et chaque jour, je modifie des détails (j'ai pas encore mis à jour le post, mais ça ne saurai tarder)

Maintenant pour rigoler, faudrai que je fasse pareil pour les logos des autres distro (genre Ubuntu, Arch, Debian) se serai sympa.
4 jours plus tard
Comme prévu, la dernière mise à jour de ce conky. Au taf, ça donne ça avec le wallpaper de F14 (mais sous F12...)


Donc le background :
Vous pouvez toujours garder la précédente version (sans l'extension bleu_transparente)

le conky_rc :
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

own_window false
own_window_type desktop
own_window_transparent yes
own_window_hints undecorated,sticky,skip_taskbar,skip_pager,below

border_inner_margin 0
border_outer_margin 0
stippled_borders 0

minimum_size 250 250
maximum_width 250
 
alignment top_left
gap_x 1100
gap_y 500

draw_shades yes
default_shade_color 000000
draw_outline no
draw_borders no
draw_graph_borders no

use_xft yes
xftfont LCDMono2:size=10
xftalpha 0.4

lua_load ~/.conky/conky_fedora/conky_fedora_bleu.lua
lua_load ~/.conky/conky_fedora/conky_fedora_text_bleu.lua

lua_draw_hook_pre main_rings
lua_draw_hook_post draw_text

TEXT
${image ~/.conky/conky_fedora/bg_bleu.png -p 0,0 -f 86400}
le script lua pour les anneaux (j'ai remis la paternité histoire d'être « propre ») :
--[[ RINGS with SECTORS widget
    v1.0 by wlourf (08.08.2010)
    this widget draws a ring with differents effects 
    http://u-scripts.blogspot.com/2010/08/rings-sectors-widgets.html
    v1.0 (08 Aug. 2010) original release
]]
require 'cairo'
function conky_main_rings()
-- START PARAMETERS HERE
    
    --Gap conky window
    gap_conky_x=1100
    gap_conky_y=500

rings_settings={

    {
    --seconds
    name="time",
    arg="%S",
    max=60,
    xc=196,
    yc=88,
    radius=27,
    thickness=10,
    start_angle=-115,
    end_angle=205,
    sectors=30,
    gap_sectors=2,
    fill_sector=true,
    bg_colour1={{0,0x000000,0},{0.5,0x000000,0.1}, {1,0x000000,0}},
    fg_colour1={{0,0XFFFFFF,0},{0.7,0xFFFFFF,0.2}, {1,0xFFFFFF,0.5}},
    fg_colour2={{0,0XFFFFFF,0},{0.7,0xFFFFFF,0.2}, {1,0xFFFFFF,0.5}},
    bd_colour1={{0,0X000000,1},{0.5,0x000000,1}, {1,0x000000,1}},
    },

    {
    --cpu0
    name="cpu",
    arg="cpu0",
    max=100,
    xc=105,
    yc=178,
    radius=46,
    thickness=4,
    start_angle=-150,
    end_angle=-3,
    sectors=10,
    inverse_arc=true,
    bg_colour1={{0,0x000000,0.2},{0.5,0x000000,0.2}, {1,0x000000,0.2}},
    fg_colour1={{0,0XFFFFFF,0.7},{0.5,0xFFFFFF,1}, {1,0xFFFFFF,0.7}},
    fg_colour2={{0,0XFFFFFF,0.7},{0.5,0xD6E0EF,1}, {1,0xFFFFFF,0.7}},
    --fg_colour2={{0,0X294172,0.7},{0.5,0x294172,1}, {1,0x294172,0.7}},
    bd_colour1={{0,0X000000,1},{0.5,0x000000,1}, {1,0x000000,1}},
    },

    {
    --cpu1
    name="cpu",
    arg="cpu1",
    max=100,
    xc=105,
    yc=178,
    radius=57,
    thickness=10,
    start_angle=-150,
    end_angle=-3,
    sectors=20,
    inverse_arc=true,
    bg_colour1={{0,0x000000,0.2},{0.5,0x000000,0.1}, {1,0x000000,0}},
    fg_colour1={{0,0XFFFFFF,0.7},{0.5,0xFFFFFF,0.5}, {1,0xFFFFFF,0.1}},
    fg_colour2={{0,0XD6E0EF,0.7},{0.5,0xFFFFFF,0.5}, {1,0xFFFFFF,0.1}},
    --fg_colour2={{0,0X294172,0.7},{0.5,0x294172,1}, {1,0x294172,0.5}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },
    
    {
    --cpu2
    name="cpu",
    arg="cpu2",
    max=100,
    xc=105,
    yc=178,
    radius=41,
    thickness=10,
    start_angle=-150,
    end_angle=-3,
    sectors=20,
    inverse_arc=true,
    bg_colour1={{0,0x000000,0},{0.5,0x000000,0.1}, {1,0x000000,0.2}},
    fg_colour1={{0,0XFFFFFF,0.1},{0.5,0xFFFFFF,0.5}, {1,0xFFFFFF,0.7}},
    fg_colour2={{0,0XFFFFFF,0.1},{0.5,0xFFFFFF,0.5}, {1,0xD6E0EF,0.7}},
    --fg_colour2={{0,0X294172,0.5},{0.5,0x294172,1}, {1,0x294172,0.7}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },

    {
    --ram
    name="memperc",
    arg="",
    max=100,
    xc=197,
    yc=89,
    radius=41,
    thickness=10,
    start_angle=30,
    end_angle=177,
    sectors=20,
    inverse_arc=true,
    bg_colour1={{0,0x000000,0},{0.5,0x000000,0.1}, {1,0x000000,0.2}},
    fg_colour1={{0,0XFFFFFF,0.1},{0.5,0xFFFFFF,0.5}, {1,0xFFFFFF,0.7}},
    fg_colour2={{0,0XFFFFFF,0.1},{0.5,0xFFFFFF,0.5}, {1,0xD6E0EF,0.7}},
    --fg_colour2={{0,0X294172,0.1},{0.5,0x294172,0.7}, {1,0x294172,1}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },

    {
    --load avg
    name="loadavg",
    arg="1",
    max=3,
    xc=197,
    yc=89,
    radius=46,
    thickness=4,
    start_angle=30,
    end_angle=177,
    sectors=10,
    inverse_arc=true,
    bg_colour1={{0,0x000000,0.2},{0.5,0x000000,0.2}, {1,0x000000,0.2}},
    fg_colour1={{0,0XFFFFFF,0.7},{0.5,0xFFFFFF,1}, {1,0xFFFFFF,0.7}},
    fg_colour2={{0,0XFFFFFF,0.7},{0.5,0xD6E0EF,1}, {1,0xFFFFFF,0.7}},
    --fg_colour2={{0,0X294172,0.1},{0.5,0x294172,0.7}, {1,0x294172,1}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },

    {
    --fs_used
    name="fs_used_perc",
    arg="/",
    max=100,
    xc=197,
    yc=89,
    radius=57,
    thickness=10,
    start_angle=30,
    end_angle=177,
    sectors=20,
    inverse_arc=true,
    bg_colour1={{0,0x000000,0.2},{0.5,0x000000,0.1}, {1,0x000000,0}},
    fg_colour1={{0,0XFFFFFF,0.7},{0.5,0xFFFFFF,0.5}, {1,0xFFFFFF,0.1}},
    fg_colour2={{0,0XD6E0EF,0.7},{0.5,0xFFFFFF,0.5}, {1,0xFFFFFF,0.1}},
    --fg_colour2={{0,0X294172,1},{0.5,0x294172,0.7}, {1,0x294172,0.3}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },
        
    {
    --download speed
    name="downspeedf",
    arg="eth0",
    max=1500,
    xc=105,
    yc=176,
    radius=60,
    thickness=28,
    start_angle=90,
    end_angle=180,
    sectors=15,
    fill_sector=true,
    gap_sectors=1,
    bg_colour1={{0,0x000000,0},{0.7,0x333333,0.3}, {1,0x111111,0.1}},
    fg_colour1={{0,0X294172,0},{0.7,0x294172,1}, {1,0x294172,0.2}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },
    
    
    {
    --upload speed
    name="upspeedf",
    arg="eth0",
    max=400,
    xc=197,
    yc=90,
    radius=60,
    thickness=28,
    start_angle=270,
    end_angle=360,
    sectors=15,
    fill_sector=true,
    gap_sectors=1,
    bg_colour1={{0,0x111111,0.1},{0.3,0x333333,0.3}, {1,0x000000,0}},
    fg_colour1={{0,0X294172,0.2},{0.3,0x294172,1}, {1,0x294172,0}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },

    {
    --Top cpu 1
    name="top cpu",
    arg="1",
    max=100,
    xc=59,
    yc=226,
    radius=35,
    thickness=11,
    start_angle=-90,
    end_angle=-180,
    sectors=10,
    inverse_arc=true,
    bg_colour1={{0,0x000000,0},{0.5,0x000000,0}, {1,0x000000,0}},
    fg_colour1={{0,0XD6E0EF,0.8},{0.5,0xFFFFFF,0.5}, {1,0xFFFFFF,0.3}},
    fg_colour2={{0,0XD6E0EF,0.8},{0.5,0xFFFFFF,0.5}, {1,0xFFFFFF,0.3}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },

    {
    --Top cpu 2
    name="top cpu",
    arg="2",
    max=100,
    xc=59,
    yc=226,
    radius=46,
    thickness=11,
    start_angle=-90,
    end_angle=-180,
    sectors=10,
    inverse_arc=true,
    bg_colour1={{0,0x000000,0},{0.5,0x000000,0}, {1,0x000000,0}},
    fg_colour1={{0,0XD6E0EF,0.6},{0.5,0xFFFFFF,0.4}, {1,0xFFFFFF,0.2}},
    fg_colour2={{0,0XD6E0EF,0.6},{0.5,0xFFFFFF,0.4}, {1,0xFFFFFF,0.2}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },
    
    {
    --Top cpu 3
    name="top cpu",
    arg="3",
    max=100,
    xc=59,
    yc=226,
    radius=57,
    thickness=11,
    start_angle=-90,
    end_angle=-180,
    sectors=10,
    inverse_arc=true,
    bg_colour1={{0,0x000000,0},{0.5,0x000000,0}, {1,0x000000,0}},
    fg_colour1={{0,0XD6E0EF,0.4},{0.5,0xFFFFFF,0.2}, {1,0xFFFFFF,0}},
    fg_colour2={{0,0XD6E0EF,0.4},{0.5,0xFFFFFF,0.2}, {1,0xFFFFFF,0}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },

    {
    --Battery
    name="battery_percent",
    arg="",
    max=100,
    xc=159,
    yc=125,
    radius=140,
    thickness=15,
    start_angle=-90,
    end_angle=180,
    sectors=100,
    inverse_arc=true,
    bg_colour1={{0,0X294172,0.5},{0.5,0x294172,0.2}, {1,0x294172,0}},
    fg_colour2={{0,0XD6E0EF,0.5},{0.5,0xFFFFFF,0.2}, {1,0xFFFFFF,0}},
    fg_colour1={{0,0XD6E0EF,0.5},{0.5,0xFFFFFF,0.2}, {1,0xFFFFFF,0}},
    bd_colour1={{0,0X00FF00,0.3},{0.5,0x00FF00,0.2}, {1,0x00FF00,0}},
    },
}
--END OF PARAMETERS HERE

--main function

    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)

    if tonumber(conky_parse('${updates}'))>3 then
        for i in pairs(rings_settings) do
            draw_ring(rings_settings[i])
        end
    end

    cairo_destroy(cr)

end




function draw_ring(t)

    local function rgba_to_r_g_b_a(tcolour)
        colour,alpha=tcolour[2],tcolour[3]
        return ((colour / 0x10000) % 0x100) / 255., 
            ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
    end
            
            
    local function calc_delta(tcol1,tcol2)
        --calculate deltas P R G B A to table_colour 1

        for x = 1, #tcol1 do
            tcol1[x].dA    = 0
            tcol1[x].dP = 0
             tcol1[x].dR = 0
            tcol1[x].dG = 0
            tcol1[x].dB = 0
            if tcol2~=nil and #tcol1 == #tcol2 then
                local r1,g1,b1,a1 = rgba_to_r_g_b_a(tcol1[x])
                local r2,g2,b2,a2 = rgba_to_r_g_b_a(tcol2[x])
                tcol1[x].dP = (tcol2[x][1]-tcol1[x][1])/t.sectors
                 tcol1[x].dR = (r2-r1)/t.sectors
                tcol1[x].dG = (g2-g1)/t.sectors
                tcol1[x].dB = (b2-b1)/t.sectors
                tcol1[x].dA = (a2-a1)/t.sectors        
                
            end
        end
        
        return tcol1
    end

    --check values
    local function setup(t)
        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'")
            print ("for name=" .. t.name)
            print ("with arg=" .. t.arg)
            return
        end
        if t.name==nil then t.name="" end
        if t.arg==nil then t.arg="" end

        if t.xc==nil then t.xc=conky_window.width/2 end
        if t.yc==nil then t.yc=conky_window.height/2 end
        if t.thickness ==nil then t.thickness = 10 end
        if t.radius ==nil then t.radius =conky_window.width/4 end
        if t.start_angle==nil then t.start_angle =0 end
        if t.end_angle==nil then t.end_angle=360 end
        if t.bg_colour1==nil then 
            t.bg_colour1={{0,0x00ffff,0.1},{0.5,0x00FFFF,0.5},{1,0x00FFFF,0.1}}
        end
        if t.fg_colour1==nil then
            t.fg_colour1={{0,0x00FF00,0.1},{0.5,0x00FF00,1},{1,0x00FF00,0.1}}
        end
        if t.bd_colour1==nil then
            t.bd_colour1={{0,0xFFFF00,0.5},{0.5,0xFFFF00,1},{1,0xFFFF00,0.5}}
        end
        if t.sectors==nil then t.sectors=10 end
        if t.gap_sectors==nil then t.gap_sectors=1 end 
        if t.fill_sector==nil then t.fill_sector=false end
        if t.sectors==1 then t.fill_sector=false end
        if t.border_size==nil then t.border_size=0 end
        if t.cap==nil then t.cap="p" end
        --some checks
        if t.thickness>t.radius then t.thickness=t.radius*0.1 end
        t.int_radius = t.radius-t.thickness

        --check colors tables 
        for i=1, #t.bg_colour1 do 
            if #t.bg_colour1[i]~=3 then t.bg_colour1[i]={1,0xFFFFFF,0.5} end
        end
        for i=1, #t.fg_colour1 do 
            if #t.fg_colour1[i]~=3 then t.fg_colour1[i]={1,0xFF0000,1} end
        end
        for i=1, #t.bd_colour1 do 
            if #t.bd_colour1[i]~=3 then t.bd_colour1[i]={1,0xFFFF00,1} end
        end
    
        if t.bg_colour2~=nil then
            for i=1, #t.bg_colour2 do 
                if #t.bg_colour2[i]~=3 then t.bg_colour2[i]={1,0xFFFFFF,0.5} end
            end
        end
        if t.fg_colour2~=nil then
            for i=1, #t.fg_colour2 do 
                if #t.fg_colour2[i]~=3 then t.fg_colour2[i]={1,0xFF0000,1} end
            end
        end
        if t.bd_colour2~=nil then
            for i=1, #t.bd_colour2 do 
                if #t.bd_colour2[i]~=3 then t.bd_colour2[i]={1,0xFFFF00,1} end
            end
        end     
        
        if t.start_angle>=t.end_angle then
         local tmp_angle=t.end_angle
         t.end_angle= t.start_angle
         t.start_angle = tmp_angle
         -- print ("inversed angles")
            if t.end_angle-t.start_angle>360 and t.start_angle>0 then
                t.end_angle=360+t.start_angle
                print ("reduce angles")
            end
        
            if t.end_angle+t.start_angle>360 and t.start_angle<=0 then
                t.end_angle=360+t.start_angle
                print ("reduce angles")
            end
        
            if t.int_radius<0 then t.int_radius =0 end
            if t.int_radius>t.radius then
                local tmp_radius=t.radius
                t.radius=t.int_radius
                t.int_radius=tmp_radius
                print ("inversed radius")
            end
            if t.int_radius==t.radius then
                t.int_radius=0
                print ("int radius set to 0")
            end 
        end
        
        t.fg_colour1 = calc_delta(t.fg_colour1,t.fg_colour2)
        t.bg_colour1 = calc_delta(t.bg_colour1,t.bg_colour2)
        t.bd_colour1 = calc_delta(t.bd_colour1,t.bd_colour2)
    end
    
    --initialize table
    setup(t)
    --[[grid
    h=conky_window.height
    w=conky_window.width
    cairo_set_source_rgba(cr,1,1,1,1)
    cairo_set_line_width(cr,0.5)
    cairo_move_to(cr,0,t.yc)
    cairo_line_to(cr,w,t.yc)
    cairo_stroke(cr)
    cairo_move_to(cr,t.xc,0)
    cairo_line_to(cr,t.xc,h)
    cairo_stroke(cr)
    cairo_move_to(cr,t.xc,t.yc)
    cairo_line_to(cr,t.xc+200*math.sin(math.pi/4),t.yc-200*math.cos(math.pi/4))
    cairo_stroke(cr)
    cairo_move_to(cr,0,t.yc-t.radius)
    cairo_line_to(cr,w,t.yc-t.radius)
    cairo_stroke(cr)
    cairo_move_to(cr,0,t.yc-t.int_radius)
    cairo_line_to(cr,w,t.yc-t.int_radius)
    cairo_stroke(cr)
    cairo_move_to(cr,0,t.yc-t.gap_sectors)
    cairo_line_to(cr,w,t.yc-t.gap_sectors)
    cairo_stroke(cr)
    cairo_set_source_rgba(cr,1,0,0,0.5)
    cairo_arc(cr,t.xc,t.yc,t.radius,0,2*math.pi)
    cairo_stroke(cr)
    cairo_arc(cr,t.xc,t.yc,t.int_radius,0,2*math.pi)    
    cairo_stroke(cr)    
    cairo_set_source_rgba(cr,0,1,0,1)    
    cairo_move_to(cr,t.xc+t.gap_sectors,t.yc-t.gap_sectors)
    cairo_line_to(cr,t.xc+400*math.sin(math.pi/4),t.yc-400*math.cos(math.pi/4))
    cairo_stroke(cr)
    --END GRID
    ]]
    
    --initialize cairo context
    cairo_save(cr)
    cairo_translate(cr,(t.xc+gap_conky_x),(t.yc+gap_conky_y))
    cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND)
    cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND)

    --get value
    local value = 0
    if t.name ~="" then
        value = tonumber(conky_parse(string.format('${%s %s}', t.name, t.arg)))
    else
        value = tonumber(t.arg)
    end
    if value==nil then value =0 end

    --initialize sectors
    --angle of a sector :
    angleA = ((t.end_angle-t.start_angle)/t.sectors)*math.pi/180
    --value of a sector : 
    valueA = t.max/t.sectors
    --first angle of a sector : 
    lastAngle = t.start_angle*math.pi/180


    local function draw_sector(type_arc,angle0,angle,valpc, idx)
     
        --this function draws a portion of arc
         --type of arc, angle0 = strating angle, angle= angle of sector,
         --valpc = percentage inside the sector, idx = sctor number #
         if type_arc=="bg" then         --background
             if valpc==1 then return end
             tcolor=t.bg_colour1
         elseif type_arc=="fg" then    --foreground
             if valpc==0 then return end
             tcolor=t.fg_colour1
         elseif type_arc=="bd" then    --border
             tcolor=t.bd_colour1
         end 

        --angles equivalents to gap_sector
        local ext_delta=math.atan(t.gap_sectors/(2*t.radius))
        local int_delta=math.atan(t.gap_sectors/(2*t.int_radius))

        --angles of arcs
        local ext_angle=(angle-ext_delta*2)*valpc
        local int_angle=(angle-int_delta*2)*valpc

        --define colours to use for this sector
        if #tcolor==1 then 
            --plain color
            local vR,vG,vB,vA = rgba_to_r_g_b_a(tcolor[1])
            cairo_set_source_rgba(cr,vR+tcolor[1].dR*idx,
                                    vG+tcolor[1].dG*idx,
                                    vB+tcolor[1].dB*idx,
                                    vA+tcolor[1].dA*idx    )
        else
            --radient color
            local pat=cairo_pattern_create_radial(0,0,t.int_radius,0,0,t.radius)
            for i=1, #tcolor do
                local vP,vR,vG,vB,vA = tcolor[i][1], rgba_to_r_g_b_a(tcolor[i])
                cairo_pattern_add_color_stop_rgba (pat, 
                                    vP+tcolor[i].dP*idx,
                                    vR+tcolor[i].dR*idx,
                                    vG+tcolor[i].dG*idx,
                                    vB+tcolor[i].dB*idx,
                                    vA+tcolor[i].dA*idx    )
            end
            cairo_set_source (cr, pat)
            cairo_pattern_destroy(pat)
        end

        --start drawing
         cairo_save(cr)
        --x axis is parrallel to start of sector
        cairo_rotate(cr,angle0-math.pi/2)

        local ri,re = t.int_radius ,t.radius

        --point A 
        local angle_a
    
        if t.cap == "p" then 
            angle_a = int_delta
            if t.inverse_arc and type_arc ~="bg" then
                angle_a = angle-int_angle-int_delta
            end
            if not(t.inverse_arc) and type_arc =="bg" then
                angle_a = int_delta+int_angle
            end
        else --t.cap=="r"
            angle_a = ext_delta
            if t.inverse_arc and type_arc~="bg" then
                angle_a = angle-ext_angle-ext_delta
            end
            if not(t.inverse_arc) and type_arc=="bg" then
                angle_a = ext_delta+ext_angle
            end
        end
        local ax,ay = ri*math.cos(angle_a),ri*math.sin(angle_a)


        --point B
        local angle_b = ext_delta
        if t.cap == "p" then 
            if t.inverse_arc and type_arc ~="bg" then
                angle_b = angle-ext_angle-ext_delta
            end
            if not(t.inverse_arc) and type_arc=="bg" then
                angle_b = ext_delta+ext_angle
            end
        else
            if t.inverse_arc and type_arc ~="bg" then
                angle_b = angle-ext_angle-ext_delta
            end
            if not(t.inverse_arc) and type_arc=="bg" then
                angle_b = ext_delta+ext_angle
            end
        end
        local bx,by = re*math.cos(angle_b),re*math.sin(angle_b)

        -- EXTERNAL ARC B --> C
        if t.inverse_arc then
            if type_arc=="bg" then
                b0,b1= ext_delta, angle-ext_delta-ext_angle
            else
                b0,b1= angle-ext_angle-ext_delta, angle-ext_delta
            end
        else
            if type_arc=="bg" then
                b0,b1= ext_delta+ext_angle, angle-ext_delta
            else
                b0,b1= ext_delta, ext_angle+ext_delta
            end
        end
        
        ---POINT D
        local angle_c 
        if t.cap == "p" then 
            angle_d = angle-int_delta
            if t.inverse_arc and type_arc=="bg" then
                angle_d = angle-int_delta-int_angle    
            end
            if not(t.inverse_arc) and type_arc~="bg" then
                angle_d=int_delta+int_angle
            end
        else
            angle_d = angle-ext_delta
            if t.inverse_arc and type_arc=="bg" then
                angle_d =angle-ext_delta-ext_angle
            end
            if not(t.inverse_arc) and type_arc~="bg" then
                angle_d = ext_angle+ext_delta
            end
        end
        local dx,dy = ri*math.cos(angle_d),ri*math.sin(angle_d)
        
        -- INTERNAL ARC D --> A
        if t.cap=="p" then    
            if t.inverse_arc then    
                if type_arc=="bg" then
                    d0,d1= angle-int_delta-int_angle,int_delta
                else
                    d0,d1= angle-int_delta, angle- int_angle-int_delta
                end
            else
                if type_arc=="bg" then
                    d0,d1= angle-int_delta, int_delta+int_angle
                else
                    d0,d1= int_delta+int_angle, int_delta
                end
            end
        else
            if t.inverse_arc then    
                if type_arc=="bg" then    
                    d0,d1= angle-ext_delta-ext_angle,ext_delta
                else
                    d0,d1= angle-ext_delta, angle- ext_angle-ext_delta
                end
            else
                if type_arc=="bg" then    
                    d0,d1= angle-ext_delta,ext_delta+ext_angle
                else    
                    d0,d1= ext_angle+ext_delta, ext_delta
                end
            end            
        end
            
        --draw sector
        cairo_move_to(cr,ax,ay)
        cairo_line_to(cr,bx,by)
        cairo_arc(cr,0,0,re,b0,b1)
        cairo_line_to(cr,dx,dy) 
        cairo_arc_negative(cr,0,0,ri,d0,d1)
         cairo_close_path (cr);

        --stroke or fill sector
         if type_arc=="bd" then
             cairo_set_line_width(cr,t.border_size)
             cairo_stroke(cr)
         else
             cairo_fill(cr)
         end

         cairo_restore(cr)

     end
    --draw sectors
    local n0,n1,n2 = 1,t.sectors,1
    if t.inverse_arc then n0,n1,n2 = t.sectors,1,-1 end
    local index = 0
    for i = n0,n1,n2 do 
        index = index +1
        local valueZ=1
        local cstA, cstB = (i-1),i
        if t.inverse_arc then cstA,cstB = (t.sectors-i), (t.sectors-i+1) end
        
        if value>valueA *cstA and value<valueA*cstB then
            if not t.fill_sector then
                valueZ = (value-valueA*cstA)/valueA
            end
        else
            if value<valueA*cstB then valueZ=0 end
        end
        
        local start_angle= lastAngle+(i-1)*angleA
        if t.foreground ~= false then 
            draw_sector("fg",start_angle,angleA,valueZ, index)
        end
        if t.background ~= false then 
            draw_sector("bg",start_angle,angleA,valueZ, i)
        end
        if t.border_size>0 then draw_sector("bd",start_angle,angleA,1, i) end
    end

    cairo_restore(cr)
end


--[[END OF RING-SECTORS WIDGET]]


function axis(ctx,alpha)
    cairo_set_line_width(ctx,1)
    cairo_set_source_rgba(ctx,1,0,0,alpha)
    cairo_move_to(ctx,0,0)
    cairo_line_to(ctx,150,0)
    cairo_stroke(ctx)
    cairo_set_source_rgba(ctx,0,1,0,alpha)
    cairo_move_to(ctx,0,0)
    cairo_line_to(ctx,0,150)
    cairo_stroke(ctx)
end    
et le script lua du texte :
--[[ RINGS with SECTORS widget
    v1.0 by wlourf (08.08.2010)
    this widget draws a ring with differents effects 
    http://u-scripts.blogspot.com/2010/08/rings-sectors-widgets.html
    v1.0 (08 Aug. 2010) original release
]]
require 'cairo'
function conky_draw_text()
    --BEGIN OF PARAMETRES

    --Gap conky window
    gap_conky_x=1100
    gap_conky_y=500

        text_settings={


        {
            text="B",
            font_name="StyleBats",
            font_size=40,
            h_align="c",
            orientation="ww",
            angle=90,
            x=101,
            y=167,
            colour={{0,0X3C6EB4,0.1},{0.5,0x3C6EB4,0.3}, {1,0x3C6EB4,0.5}},
        },

        {
            text=conky_parse("${time %d}     ${time %m}"),
            font_name="DS-Digital",
            font_size=18,
            h_align="l",
            x=94,
            y=198,
            angle=-45,
            orientation="nn",
            colour={{0,0XFFFFFF,0.5},{0.5,0xFFFFFF,0.3}, {1,0x3C6EB4,0.5}},
        },

        {
            text=conky_parse("${time %H:%M}"),
            font_name="DS-Digital",
            font_size=22,
            h_align="c",
            bold=false,
            x=196,
            y=98,
            angle=-45,
            orientation="nn",
            colour={{0,0XFFFFFF,0.5},{0.5,0xFFFFFF,0.3}, {1,0x3C6EB4,0.5}},
        },

        {
            text="i",
            font_name="StyleBats",
            font_size=28,
            h_align="c",
            x=114,
            y=145,
            orientation="nn",
            colour={{0,0X3C6EB4,0.3},{0.5,0x3C6EB4,0.3}, {1,0x3C6EB4,0.3}},
        },    

        {
            text="Y",
            font_name="StyleBats",
            font_size=26,
            h_align="c",
            x=174,
            y=133,
            angle=90,
            orientation="nn",
            colour={{0,0X3C6EB4,0.3},{0.5,0x3C6EB4,0.3}, {1,0x3C6EB4,0.3}},
        },

        {
            text="R",
            font_name="StyleBats",
            font_size=22,
            h_align="c",
            angle=90,
            x=84,
            y=225,
            colour={{0,0X3C6EB4,0.3},{0.5,0x3C6EB4,0.3}, {1,0x3C6EB4,0.3}},
        },

        {
            text=conky_parse("${downspeedf eth0}"),
            font_name="DS-Digital",
            font_size=14,
            h_align="l",
            bold=false,
            x=156,
            y=174,
            angle=-90,
            colour={{0,0X294172,0.5},{0.5,0x294172,1}, {1,0x294172,0.5}},
        },

        {
            text="R",
            font_name="StyleBats",
            font_size=22,
            h_align="c",
            angle=-90,
            x=218,
            y=41,
            colour={{0,0X3C6EB4,0.3},{0.5,0x3C6EB4,0.3}, {1,0x3C6EB4,0.3}},
        },

        {
            text=conky_parse("${upspeedf eth0}"),
            font_name="DS-Digital",
            font_size=14,
            h_align="r",
            bold=false,
            x=157,
            y=92,
            angle=-90,
            colour={{0,0X294172,0.5},{0.5,0x294172,1}, {1,0x294172,0.5}},
        },

        {
            text=conky_parse("$uptime"),
            font_name="DS-Digital",
            font_size=20,
            h_align="c",
            bold=false,
            orientation="nn",
            angle=-45,
            x=224,
            y=200,
            colour={{0,0XAAAAAA,0.2},{0.5,0xCCCCCC,0.5}, {1,0xAAAAAA,0.2}},
        },    

        {
            text=conky_parse("$kernel"),
            font_name="DS-Digital",
            font_size=18,
            h_align="c",
            bold=false,
            orientation="nn",
            angle=-45,
            x=214,
            y=180,
            colour={{0,0XAAAAAA,0.2},{0.5,0xCCCCCC,0.5}, {1,0xAAAAAA,0.2}},
        },    
        
        {
            text="FC12",
            font_name="DS-Digital",
            font_size=50,
            h_align="c",
            v_align="m",
            x=94,
            y=70,
            angle=-45,
            bold="true",
            orientation="nn",
            colour={{0,0X294172,0.3},{0.5,0x294172,0.1}, {1,0x294172,0.3}},
        },
        
        {
            text=conky_parse("${top name 1}"),
            font_name="DS-Digital",
            font_size=16,
            h_align="l",
            bold=false,
            orientation="nn",
            angle=-90,
            x=34,
            y=225,
            colour={{0,0X294172,0.3},{0.5,0x294172,0.5}, {1,0x294172,0.3}},
        },    

        {
            text=conky_parse("${top name 2}"),
            font_name="DS-Digital",
            font_size=16,
            h_align="l",
            bold=false,
            orientation="nn",
            angle=-90,
            x=23,
            y=225,
            colour={{0,0X294172,0.2},{0.5,0x294172,0.3}, {1,0x294172,0.2}},
        },    

        {
            text=conky_parse("${top name 3}"),
            font_name="DS-Digital",
            font_size=16,
            h_align="l",
            bold=false,
            orientation="nn",
            angle=-90,
            x=12,
            y=225,
            colour={{0,0XFFFFFF,0.2},{0.5,0xFFFFFF,0.3}, {1,0xFFFFFF,0.2}},
        },

        {
            text=conky_parse("${battery_time}"),
            font_name="DS-Digital",
            font_size=18,
            h_align="r",
            bold=false,
            orientation="nn",
            angle=-45,
            x=139,
            y=66,
            colour={{0,0XFFFFFF,0.3},{0.5,0xFFFFFF,0.6}, {1,0xFFFFFF,0.3}},
        },

        {
            text=conky_parse("${battery}"),
            font_name="DS-Digital",
            font_size=18,
            h_align="r",
            bold=false,
            orientation="nn",
            angle=0,
            x=156,
            y=263,
            colour={{0,0XFFFFFF,0},{0.5,0xFFFFFF,0.3}, {1,0xFFFFFF,0.1}},
        },
    }
    
    
--------------END OF PARAMETERES----------------
    if conky_window == nil then return end
    if tonumber(conky_parse("$updates"))<3 then return end
       
    local cs = cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, conky_window.width, conky_window.height)

    for i,v in pairs(text_settings) do    
        cr = cairo_create (cs)
        display_text(v)
        cairo_destroy(cr)
    end
    
    cairo_surface_destroy(cs)
    


end

function rgb_to_r_g_b2(tcolour)
    colour,alpha=tcolour[2],tcolour[3]
    return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end

function display_text(t)

    local function set_pattern()
        --this function set the pattern
        if #t.colour==1 then 
            cairo_set_source_rgba(cr,rgb_to_r_g_b2(t.colour[1]))
        else
            local pat
            
            if t.radial==nil then
                local pts=linear_orientation(t,te)
                pat = cairo_pattern_create_linear (pts[1],pts[2],pts[3],pts[4])
            else
                pat = cairo_pattern_create_radial (t.radial[1],t.radial[2],t.radial[3],t.radial[4],t.radial[5],t.radial[6])
            end
        
            for i=1, #t.colour do
                cairo_pattern_add_color_stop_rgba (pat, t.colour[i][1], rgb_to_r_g_b2(t.colour[i]))
            end
            cairo_set_source (cr, pat)
        end
    end
    
    --set default values if needed
    if t.text==nil then t.text="Conky is good for you !" end
    if t.x==nil then t.x = conky_window.width/2 end
    if t.y==nil then t.y = conky_window.height/2 end
    if t.colour==nil then t.colour={{1,0xFFFFFF,1}} end
    if t.font_name==nil then t.font_name="Free Sans" end
    if t.font_size==nil then t.font_size=14 end
    if t.angle==nil then t.angle=0 end
    if t.italic==nil then t.italic=false end
    if t.oblique==nil then t.oblique=false end
    if t.bold==nil then t.bold=false end
    if t.radial ~= nil then
        if #t.radial~=6 then 
            print ("error in radial table")
            t.radial=nil 
        end
    end
    if t.orientation==nil then t.orientation="ww" end
    if t.h_align==nil then t.h_align="l" end
    if t.v_align==nil then t.v_align="b" end    
    if t.reflection_alpha == nil then t.reflection_alpha=0 end
    if t.reflection_length == nil then t.reflection_length=1 end
    if t.reflection_scale == nil then t.reflection_scale=1 end
    if t.skew_x==nil then t.skew_x=0 end
    if t.skew_y==nil then t.skew_y=0 end    
    cairo_translate(cr,(t.x+gap_conky_x),(t.y+gap_conky_y))
    cairo_rotate(cr,t.angle*math.pi/180)
    cairo_save(cr)       
     
 

    local slant = CAIRO_FONT_SLANT_NORMAL
    local weight =CAIRO_FONT_WEIGHT_NORMAL
    if t.italic then slant = CAIRO_FONT_SLANT_ITALIC end
    if t.oblique then slant = CAIRO_FONT_SLANT_OBLIQUE end
    if t.bold then weight = CAIRO_FONT_WEIGHT_BOLD end
    
    cairo_select_font_face(cr, t.font_name, slant,weight)
 
    for i=1, #t.colour do    
        if #t.colour[i]~=3 then 
            print ("error in color table")
            t.colour[i]={1,0xFFFFFF,1} 
        end
    end

    local matrix0 = cairo_matrix_t:create()
    skew_x,skew_y=t.skew_x/t.font_size,t.skew_y/t.font_size
    cairo_matrix_init (matrix0, 1,skew_y,skew_x,1,0,0)
    cairo_transform(cr,matrix0)
    cairo_set_font_size(cr,t.font_size)
    te=cairo_text_extents_t:create()
    cairo_text_extents (cr,t.text,te)
    
    set_pattern()


            
    mx,my=0,0
    
    if t.h_align=="c" then
        mx=-te.width/2
    elseif t.h_align=="r" then
        mx=-te.width
    end
    if t.v_align=="m" then
        my=-te.height/2-te.y_bearing
    elseif t.v_align=="t" then
        my=-te.y_bearing
    end
    cairo_move_to(cr,mx,my)
    
    cairo_show_text(cr,t.text)

     
        
        
   if t.reflection_alpha ~= 0 then 
        local matrix1 = cairo_matrix_t:create()
        cairo_set_font_size(cr,t.font_size)

        cairo_matrix_init (matrix1,1,0,0,-1*t.reflection_scale,0,(te.height+te.y_bearing+my)*(1+t.reflection_scale))
        cairo_set_font_size(cr,t.font_size)
        te=cairo_text_extents_t:create()
        cairo_text_extents (cr,t.text,te)
        
                
        cairo_transform(cr,matrix1)
        set_pattern()
        cairo_move_to(cr,mx,my)
        cairo_show_text(cr,t.text)

        local pat2 = cairo_pattern_create_linear (0,
                                        (te.y_bearing+te.height+my),
                                        0,
                                        te.y_bearing+my)
        cairo_pattern_add_color_stop_rgba (pat2, 0,1,0,0,1-t.reflection_alpha)
        cairo_pattern_add_color_stop_rgba (pat2, t.reflection_length,0,0,0,1)    
        
        
        cairo_set_line_width(cr,1)
        dy=te.x_bearing
        if dy<0 then dy=dy*(-1) end
        cairo_rectangle(cr,mx+te.x_bearing,te.y_bearing+te.height+my,te.width+dy,-te.height*1.05)
        cairo_clip_preserve(cr)
        cairo_set_operator(cr,CAIRO_OPERATOR_CLEAR)
        --cairo_stroke(cr)
        cairo_mask(cr,pat2)
        cairo_pattern_destroy(pat2)
        cairo_set_operator(cr,CAIRO_OPERATOR_OVER)
    end
    
end


function linear_orientation(t,te)
    local w,h=te.width,te.height
    local xb,yb=te.x_bearing,te.y_bearing
    
    if t.h_align=="c" then
        xb=xb-w/2
    elseif t.h_align=="r" then
        xb=xb-w
       end    
    if t.v_align=="m" then
        yb=-h/2
    elseif t.v_align=="t" then
        yb=0
       end    
       
    if t.orientation=="nn" then
        p={xb+w/2,yb,xb+w/2,yb+h}
    elseif t.orientation=="ne" then
        p={xb+w,yb,xb,yb+h}
    elseif t.orientation=="ww" then
        p={xb,h/2,xb+w,h/2}
    elseif vorientation=="se" then
        p={xb+w,yb+h,xb,yb}
    elseif t.orientation=="ss" then
        p={xb+w/2,yb+h,xb+w/2,yb}
    elseif vorientation=="ee" then
        p={xb+w,h/2,xb,h/2}        
    elseif t.orientation=="sw" then
        p={xb,yb+h,xb+w,yb}
    elseif t.orientation=="nw" then
        p={xb,yb,xb+w,yb+h}
    end
    return p
end
La petite nouveauté, j'ai rajouté deux variables (gap_conky_x et y) pour spécifier le décalage de la fenêtre conky (histoire que, si vous voulez décaler votre conky, vous ayez que deux variables à changer. C'est mieux que se retaper toutes les coordonnées pour tous les éléments).

J'ai également changé de police pour la typo LCD : DS-Digital (dispo sur DaFont). Ce qui fait juste StyleBats et DS-Digital à installer.

Pour ceux qui veulent approfondir les scripts originaux, faites un tour sur le site du développer du script, y a pleins d'exemples (je viens même de découvrir l'histoire des bordures d'anneaux :-P )

J'ai commencé un conky avec le logo Ubuntu, mais je manque cruellement d'inspiration... Donc ça va très probablement passer à la trappe... 🙂
20 jours plus tard
Salut,

Vous savez si il est possible avec conky d'avoir des graphs aussi fluides que ceux de Gnome ? (Système > A propos de cet ordinateur > onglet Ressourcces)
A part en réduisant l'intervalle de rafraichissement de conky, je ne voit pas trop (et qui dit diminution de l'intervalle, dit augmentation de la charge de conky)
Donc si tu as une bécane puissante, tu peux faire ça, sinon, sur une config faiblarde, je déconseil vivement un intervalle inférieur à 1s (voir 0.5s)
Ok merci 🙂

Mais dans ce cas, est-ce possible de récupérer les graphs de Gnome?
21 jours plus tard
Ton travail Papsou est magnifique ! Mon seul regret c'est que tu a privilégié l'esthétisme à la visibilité... Je recherche qqc de plus visible.
llaumgui wrote:Ton travail Papsou est magnifique ! Mon seul regret c'est que tu a privilégié l'esthétisme à la visibilité... Je recherche qqc de plus visible.
T'as tout dis, j'ai privilégié l'esthétisme... Pour la visibilité, je ne me suis pas posé la question étant donné que j'avais tout le temps la tête dans le script, je connaissait les emplacements des jauges sur le bout des doigts. Et puis les valeurs exactes des taux ne m'intéressaient pas.

Peux être qu'une version plus grande pourra résoudre cela, ou sinon, virer des jauges qui ne sont pas forcément utiles... (mais lesquelles...)

En tout cas, pour ma part, je ne l'utilise plus du fait qu'au bout d'une ou deux heures, le process xorg monte en flèche et dépasse Virtualbox (qui est à 30% en utilisation CPU). Et je ne sais vraiment pas à quoi c'est dû... Mais une chose est sûr, sans utiliser de script lua, le process xorg reste normal toute la journée.

Et qu'entends-tu par ? :
llaumgui wrote:Je recherche qqc de plus visible.
Un logo plus gros pour avoir plus de place pour les taux en % , couleurs pas assez contrastées ?
llaumgui wrote:Moi je cherche quelque chose plus comme ça : http://www.tux-planet.fr/un-theme-conky-pour-ubuntu-lucid-lynx/ mais à la Fedora 😉
J'ai pigé, j'te fais ce background, par contre, je te laisse le soin de changer les couleurs du conkyrc ! :hammer:

Voila le bg (à afficher en taille réelle -> http://pix.toile-libre.org/upload/original/1291970141.png):




[edit 10/02/2011] : Le même background, issus cette fois-ci d'une version vectorielle.
1280x180 =>
1950x274 =>
Autres tailles sur demandes :-P
[/edit 10/02/2011]


Le conkyrc, pour ceux qui ont la fleme d'aller choper l'archive :-D :
# Tipo de letra por defecto.
use_xft yes
xftfont Droid Sans:size=9
override_utf8_locale yes

# Configuracion de rendimiento.
update_interval 1
total_run_times 0
double_buffer yes
no_buffers yes
net_avg_samples 2
text_buffer_size 1024

# Ejecutarlo en su propia ventana en lugar de usar el escritorio.
own_window yes
own_window_transparent yes
own_window_type override
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

# Borde.
draw_borders no
border_margin 1

# Color por defecto del fondo de la ventana
own_window_colour 393834

# Color por defecto.
default_color B7B2AD
#default_color EFEEED

# Dibuja marco.
draw_shades no

# Colores de trabajo.
color0 DD3A21

# Dimensiones mnimas.
minimum_size 1440 0

# Posicion de Conky.
alignment bottom_left
gap_x 0
gap_y 30

# Texto
TEXT
${image ~/.conkytheme/pix/frame.png -p 0,0 -s 1280x180}
${voffset 20}${font Droid Sans:style=Bold:size=12}${color0}${goto 256}Disques:${goto 512}Reseau:${goto 768}Temperature:${goto 1024}Date:${font}${color}
${voffset 6}${goto 256}Systeme (/):${goto 380}${fs_used /} / ${fs_size /}${goto 512}Upload: ${goto 612}${upspeedgraph eth0 10,100 B7B2AD B7B2AD}${font Droid Sans:style=Bold:size=9}  ${upspeed eth0}${font}${goto 768}CPU: ${goto 868}${execi 4 sensors | grep -A 0 'temp2' | cut -c15-18} ºC${goto 1024}${time %H:%M}  ${time %d/%m/%Y}
${goto 15}Kernel: ${goto 100}${kernel}${goto 380}${fs_bar 10,100 /}${goto 512}Download: ${goto 612}${downspeedgraph eth0 10,100 B7B2AD B7B2AD}${font Droid Sans:style=Bold:size=9}  ${downspeed eth0}${font}${goto 768}Disque dur: ${goto 868}${execi 4 sensors | grep -A 0 'temp1' | cut -c15-18} ºC${goto 1024}${time %A}, ${time %d} ${time %B} ${time %Y}
${goto 15}CPU: ${goto 100}${cpubar cpu1 10,100}${font Droid Sans:style=Bold:size=9}  ${cpu cpu1}%${font}${goto 256}Utilisateur (/Home):${goto 380}${fs_free /home} / ${fs_size /home}${goto 512}Envoi: ${goto 612}${totalup eth0}
${goto 15}RAM: ${goto 100}${membar 10,100}${font Droid Sans:style=Bold:size=9}  $memperc%${font}${goto 380}${fs_bar 10,100 /home}${goto 512}Reception: ${goto 612}${totaldown eth0}
${goto 15}SWAP:${goto 100}${swapbar 10,100}${font Droid Sans:style=Bold:size=9}  $swapperc%${font}${goto 512}Ip Locale: ${goto 612}${addr eth0}
${goto 15}Uptime: ${goto 100}${uptime}${goto 512}Ip Publique: ${goto 612}${execi 10800 wget -qO- whatismyip.org}
N'oubliez pas de changer le chemin vers le background. (et de virer les sections qui ne fonctionnent pas chez vous, comme par exemple les sensors, si vous ne les avez pas installés)

l'image background est en 1280 px de largeur, vous avez la possibilité de le couper à 3/4 de sa largeur pour répéter la zone sans laisser de trace de découpe.

Et désolé du crénelage du logo, faudrai que je me plonge dans le svg un de ces 4...
Ptain, j'ai de quoi m'occuper ce soir !
Merki !
Merci PapsOu !

Je suis en train de retravailler le mien mais impossible d'inclure l'image...
Conky: not implemented obj type 47
Erreur qui dit que lua n'est pas installé, et pourtant :
conky -v
Conky 1.7.2 compiled Sat Jan  2 15:19:27 CET 2010 for Linux 2.6.31.9-174.fc12.i686.PAE (i686)

Compiled in features:

System config file: /usr/local/etc/conky/conky.conf
Package library path: /usr/local/lib/conky

 X11:
  * Xdamage extension
  * XDBE (double buffer extension)
  * Xft

 Music detection:
  * MPD
  * MOC

 General:
  * math
  * hddtemp
  * portmon
  * nvidia
  * config-output
  * apcupsd
  * iostats
  * Lua

  Lua bindings:
J'attends de faire fonctionner le bg pour envoyer un screen 😉
Je crois si mes souvenirs sont bons que l'intégration des images n'est possible qu'à partir de conky 1.8, sinon l'alternative c'est d'inclure ton image à ton fond d'écran...

edit: je vois que la version dispo dans les dépôts est 1.8.1 pour F14 donc mets à jour 😉
Seule solution, compiler conky 1.8 à partir des sources (et c'est un jeu d'enfant).

J'avais ouvert un fil à propos de manque de dépendances, ici si tu as besoin d'aide pour savoir quelles options ajouter au ./configure.
il est dans les dépots Papsou, comme indiqué plus haut 😉 :hammer:
Hum, en fait, j'ai un conky 1.7.2 d'installé que j'avais du installer à la main.
Du coup, même si j'installe le 1.8.1, c'est le 1.7.2 qui est lancé.
Comment je fais pour virer le 1.7.2 ?
titimoi wrote:il est dans les dépots Papsou, comme indiqué plus haut 😉 :hammer:
Ah oui, pour F14 en effet, je suis toujours sous F12...
PapsOu wrote:
titimoi wrote:il est dans les dépots Papsou, comme indiqué plus haut 😉 :hammer:
Ah oui, pour F14 en effet, je suis toujours sous F12...
Je suis aussi sous f12 et il est bien dans les dépôts en 1.8.1.

Dès que je sais comment désinstaller mon 1.7.2 installé manuellement, je test ! 😉
15 jours plus tard
Voilà ma version actuelle, qui me plaît bien ! 🙂

Ici