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.

#1351 Le 13/08/2016, à 15:11

pianistocrate

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Didier-T a écrit :

Bonjour a tous,
cela fait bien longtemps que je n'ai plus posté ici smile

je viens de modifier le flichier clock_rings.lua afin de régler le soucis remonté par pianistocrate concernant les rings qui ne suivent pas les aiguilles.

J’espère avoir bien saisi le problème

A+,
Didier.

@ DidierT
Le script que tu as écrit devrait bien fonctionner chez notre petit camarade jlfh0816, car il ressemble beaucoup à celui qu'il utilise chez lui ; et puisqu'il est en ligne, il va pouvoir nous dire rapidement son sentiment.
EDIT : il a testé et posté pendant que je rédigeais cette intervention. Et apparemment ça colle pour lui ! cool
Perso, je n'ai pas osé modifier le mien, car j'ai vu - en comparant ligne à ligne - que tu as modifié les intitulés heures minutes, et du coup, que tu as rajouté du code en-bas du script, pour que les modifs puissent coller avec tes appellations. Et de plus, mon script comporte une variante pur 2 proc, et le disque partitionné en / et /home.
Ce qui fait que je n'ai pas su/pu voir ce que tu as précisément changé pour faire coller les aiguilles au cercle.
Comme ton message avait pour objectif de résoudre le souci que j'avais fait remonter (mais qui ne concerne pas que moi, mais également chepioq et jlfh0816), je te colle ci-dessous le code de mon propre script lua, pour que tu puisses éventuellement y faire les modifs adéquates. wink

--[[
Clock Rings by Linux Mint (2011) reEdited by despot77

This script draws percentage meters as rings, and also draws clock hands if you want! It is fully customisable; all options are described in the script. This script is based off a combination of my clock.lua script and my rings.lua 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/clock_rings.lua
    lua_draw_hook_pre clock_rings
    
Changelog:
+ v1.0 -- Original release (30.09.2009)
   v1.1p -- Jpope edit londonali1010 (05.10.2009)
*v 2011mint -- reEdit despot77 (18.02.2011)
   -- Edit this settings_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'.
   -- "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 ''.
   -- "max" is the maximum value of the ring. If the Conky variable outputs a percentage, use 100.
   -- "bg_colour" is the colour of the base ring.
   -- "bg_alpha" is the alpha value of the base ring.
   -- "fg_colour" is the colour of the indicator part of the ring.
   -- "fg_alpha" is the alpha value of the indicator part of the ring.
   -- "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.
   -- "radius" is the radius of the ring.
   -- "thickness" is the thickness of the ring, centred around the radius.
   -- "start_angle" is the starting angle of the ring, in degrees, clockwise from top. Value can be either positive or negative.
   -- "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 than start_angle.
]]

settings_table = {
    {
        name='time',
        arg='%I,%M',
        max=12,
        bg_colour=0xffffff,
        bg_alpha=0.1,
        fg_colour=0xFF6600,
        fg_alpha=0.6,
        x=100, y=150,
        radius=50,
        thickness=5,
        start_angle=0,
        end_angle=360
    },
    {
        name='time',
        arg='%M,%S',
        max=60,
        bg_colour=0xffffff,
        bg_alpha=0.1,
        fg_colour=0xFF6600,
        fg_alpha=0.7,
        x=100, y=150,
        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=0xFF6600,
        fg_alpha=0.8,
        x=100, y=150,
        radius=62,
        thickness=5,
        start_angle=0,
        end_angle=360
    },
    {
        name='time',
        arg='%d',
        max=31,
        bg_colour=0xffffff,
        bg_alpha=0.1,
        fg_colour=0xFF6600,
        fg_alpha=0.9,
        x=100, y=150,
        radius=70,
        thickness=5,
        start_angle=-90,
        end_angle=90
    },
    {
        name='time',
        arg='%m',
        max=12,
        bg_colour=0xffffff,
        bg_alpha=0.1,
        fg_colour=0xFF6600,
        fg_alpha=1,
        x=100, y=150,
        radius=76,
        thickness=5,
        start_angle=-90,
        end_angle=90
    },
    {
        name='cpu',
        arg='cpu0',
        max=100,
        bg_colour=0xffffff,
        bg_alpha=0.2,
        fg_colour=0xFF6600,
        fg_alpha=0.8,
        x=50, y=300,
        radius=25,
        thickness=4,
        start_angle=-90,
        end_angle=180
    },
    {
        name='cpu',
        arg='cpu1',
        max=100,
        bg_colour=0xffffff,
        bg_alpha=0.2,
        fg_colour=0xFF6600,
        fg_alpha=0.8,
        x=50, y=300,
        radius=20,
        thickness=4,
        start_angle=-90,
        end_angle=180
    },    
    {
        name='memperc',
        arg='',
        max=100,
        bg_colour=0xffffff,
        bg_alpha=0.2,
        fg_colour=0xFF6600,
        fg_alpha=0.8,
        x=75, y=350,
        radius=25,
        thickness=5,
        start_angle=-90,
        end_angle=180
    },
    {
        name='swapperc',
        arg='',
        max=100,
        bg_colour=0xffffff,
        bg_alpha=0.2,
        fg_colour=0xFF6600,
        fg_alpha=0.8,
        x=100, y=400,
        radius=25,
        thickness=5,
        start_angle=-90,
        end_angle=180
    },
    {
        name='fs_used_perc',
        arg='/',
        max=100,
        bg_colour=0xffffff,
        bg_alpha=0.2,
        fg_colour=0xFF6600,
        fg_alpha=0.8,
        x=125, y=450,
        radius=25,
        thickness=4,
        start_angle=-90,
        end_angle=180
    },
    {
        name='fs_used_perc',
        arg='/home',
        max=100,
        bg_colour=0xffffff,
        bg_alpha=0.2,
        fg_colour=0xFF6600,
        fg_alpha=0.8,
        x=125, y=450,
        radius=20,
        thickness=4,
        start_angle=-90,
        end_angle=180
    },    
        {
        name='downspeedf',
        arg='eth0',
        max=100,
        bg_colour=0xffffff,
        bg_alpha=0.2,
        fg_colour=0x339900,
        fg_alpha=0.8,
        x=150, y=500,
        radius=25,
        thickness=4,
        start_angle=-90,
        end_angle=180
    },
        {
        name='upspeedf',
        arg='eth0',
        max=100,
        bg_colour=0xffffff,
        bg_alpha=0.2,
        fg_colour=0xFF3300,
        fg_alpha=0.8,
        x=150, y=500,
        radius=20,
        thickness=4,
        start_angle=-90,
        end_angle=180
    },
}

-- Use these settings to define the origin and extent of your clock.

clock_r=65

-- "clock_x" and "clock_y" are the coordinates of the centre of the clock, in pixels, from the top left of the Conky window.

clock_x=100
clock_y=150

show_seconds=true

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 draw_clock_hands(cr,xc,yc)
    local secs,mins,hours,secs_arc,mins_arc,hours_arc
    local xh,yh,xm,ym,xs,ys
    
    secs=os.date("%S")    
    mins=os.date("%M")
    hours=os.date("%I")
        
    secs_arc=(2*math.pi/60)*secs
    mins_arc=(2*math.pi/60)*mins+secs_arc/60
    hours_arc=(2*math.pi/12)*hours+mins_arc/12
        
    -- Draw hour hand
    
    xh=xc+0.7*clock_r*math.sin(hours_arc)
    yh=yc-0.7*clock_r*math.cos(hours_arc)
    cairo_move_to(cr,xc,yc)
    cairo_line_to(cr,xh,yh)
    
    cairo_set_line_cap(cr,CAIRO_LINE_CAP_ROUND)
    cairo_set_line_width(cr,5)
    cairo_set_source_rgba(cr,1.0,1.0,1.0,1.0)
    cairo_stroke(cr)
    
    -- Draw minute hand
    
    xm=xc+0.85*clock_r*math.sin(mins_arc)
    ym=yc-0.85*clock_r*math.cos(mins_arc)
    cairo_move_to(cr,xc,yc)
    cairo_line_to(cr,xm,ym)
    
    cairo_set_line_width(cr,3)
    cairo_stroke(cr)
    
    -- Draw seconds hand
    
    if show_seconds then
        xs=xc+clock_r*math.sin(secs_arc)
        ys=yc-clock_r*math.cos(secs_arc)
        cairo_move_to(cr,xc,yc)
        cairo_line_to(cr,xs,ys)
    
        cairo_set_line_width(cr,1)
        cairo_stroke(cr)
    end
end

function conky_clock_rings()
    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
    
    -- Check that Conky has been running for at least 5s

    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
    
    draw_clock_hands(cr,clock_x,clock_y)
end

@ jlfh0816
Je souscris à ton analyse, mais je ne trouve pas gênant (même en cas d'insomnie big_smile ) qu'on ait un 24hxx minutes jusqu'à ce qu'il soit 1h du mat'. Une autre solution - peut-être plus facile à programmer ? -  serait également de trouver comment rendre la tranche 0h - 1h avec un cercle vide et de faire une pendule sur 12h avec une mention AM / PM.
Mais vu mon niveau de compétence, j'dis ça, j'dis rien... wink

Dernière modification par pianistocrate (Le 13/08/2016, à 15:15)


« Un spécialiste est un homme qui sait de plus en plus de choses, sur un sujet de plus en plus restreint, et qui finit par tout savoir… sur rien. »      Oscar Wilde

Hors ligne

#1352 Le 13/08/2016, à 15:13

jlfh0816

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

@pianistocrate
Je ne t'ai pas oublié: tu trouveras ci-dessus au post #1404 les captures d'écran que tu souhaitais.
Et pour le nouveau clock_rings.lua modifié par DidierT, il fonctionne super bien (vois mon post #1343 ci-dessus).
Kenavo !

Dernière modification par jlfh0816 (Le 03/12/2017, à 22:55)


Xubuntu - Voyager 18.04 et 22.04

Hors ligne

#1353 Le 13/08/2016, à 15:21

pianistocrate

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

jlfh0816 a écrit :

@pianistocrate
Je ne t'ai pas oublié: tu trouveras ci-dessus au post #1404 les captures d'écran que tu souhaitais.
Kenavo !

J'les avions vues ! wink Effectivement ton fond est plus soft que le mien cool et ton calibrage de couleurs va bien ; mais je garde le mien, comme tu peux en juger sur la capture que j'ai postée plus haut : des valeurs comme les tiennes ne tranchent pas assez chez moi.
J'espère juste maintenant que DidierT va me modifier  mon script pour résoudre le pb d'aiguilles. wink S'il nous sort de cette galère, on va le faire Breton d'honneur (à moins qu'il ne soit déjà un pur beurre... lol )
Kenavo !


« Un spécialiste est un homme qui sait de plus en plus de choses, sur un sujet de plus en plus restreint, et qui finit par tout savoir… sur rien. »      Oscar Wilde

Hors ligne

#1354 Le 13/08/2016, à 15:40

chepioq

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

jlfh0816 a écrit :

.................................................
Par contre, là où ça devient moins logique, c'est qu'à minuit, le cercle des heures va probablement afficher exactement les mêmes indications que s'il était midi (donc cercle totalement plein) et ceci jusqu'à 00H59 du matin.
Là, tu as raison, il y a un hic.
En fait, le cercle des heures devrait être totalement vide de 00H00 jusqu'à 00H59. Ce qui n'est sans doute pas le cas (désolé, je ne suis pas un couche-tard, je n'ai pas pu vérifier par moi-même ...).
....................................................

J'ai vérifié à partir de minuit il n'y a pas de soucis, et c'est logique vu que après minuit c'est 0.00 jusqu'à 0.59, et non 12.00 ==> 12.59 et donc pris en charge par "max=12,"


Tout est dans tout et réciproquement....

Hors ligne

#1355 Le 13/08/2016, à 16:39

jlfh0816

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

chepioq a écrit :

J'ai vérifié à partir de minuit il n'y a pas de soucis, et c'est logique vu que après minuit c'est 0.00 jusqu'à 0.59, et non 12.00 ==> 12.59 et donc pris en charge par "max=12,"

@chepioq
D'accord, merci pour l'information et merci surtout d'avoir vérifié à cette heure là !


Xubuntu - Voyager 18.04 et 22.04

Hors ligne

#1356 Le 13/08/2016, à 19:18

Didier-T

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

@pianistocrate,
voici ton script modifié, avec correction du bug 12h00

--[[
Clock Rings by Linux Mint (2011) reEdited by despot77

This script draws percentage meters as rings, and also draws clock hands if you want! It is fully customisable; all options are described in the script. This script is based off a combination of my clock.lua script and my rings.lua 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/clock_rings.lua
    lua_draw_hook_pre clock_rings

Changelog:
+ v1.0 -- Original release (30.09.2009)
   v1.1p -- Jpope edit londonali1010 (05.10.2009)
*v 2011mint -- reEdit despot77 (18.02.2011)

   -- Edit this settings_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'.
   -- "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 ''.
   -- "max" is the maximum value of the ring. If the Conky variable outputs a percentage, use 100.
   -- "bg_colour" is the colour of the base ring.
   -- "bg_alpha" is the alpha value of the base ring.
   -- "fg_colour" is the colour of the indicator part of the ring.
   -- "fg_alpha" is the alpha value of the indicator part of the ring.
   -- "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.
   -- "radius" is the radius of the ring.
   -- "thickness" is the thickness of the ring, centred around the radius.
   -- "start_angle" is the starting angle of the ring, in degrees, clockwise from top. Value can be either positive or negative.
   -- "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 than start_angle.
]]

settings_table = {
    {
        name='clock',
        arg='heure',
        max=12,
        bg_colour=0xffffff,
        bg_alpha=0.1,
        fg_colour=0xFF6600,
        fg_alpha=0.6,
        x=100, y=150,
        radius=50,
        thickness=5,
        start_angle=0,
        end_angle=360
    },
    {
        name='clock',
        arg='minutes',
        max=60,
        bg_colour=0xffffff,
        bg_alpha=0.1,
        fg_colour=0xFF6600,
        fg_alpha=0.7,
        x=100, y=150,
        radius=56,
        thickness=5,
        start_angle=0,
        end_angle=360
    },
    {
        name='clock',
        arg='secondes',
        max=60,
        bg_colour=0xffffff,
        bg_alpha=0.1,
        fg_colour=0xFF6600,
        fg_alpha=0.8,
        x=100, y=150,
        radius=62,
        thickness=5,
        start_angle=0,
        end_angle=360
    },
    {
        name='time',
        arg='%d',
        max=31,
        bg_colour=0xffffff,
        bg_alpha=0.1,
        fg_colour=0xFF6600,
        fg_alpha=0.9,
        x=100, y=150,
        radius=70,
        thickness=5,
        start_angle=-90,
        end_angle=90
    },
    {
        name='time',
        arg='%m',
        max=12,
        bg_colour=0xffffff,
        bg_alpha=0.1,
        fg_colour=0xFF6600,
        fg_alpha=1,
        x=100, y=150,
        radius=76,
        thickness=5,
        start_angle=-90,
        end_angle=90
    },
    {
        name='cpu',
        arg='cpu0',
        max=100,
        bg_colour=0xffffff,
        bg_alpha=0.2,
        fg_colour=0xFF6600,
        fg_alpha=0.8,
        x=50, y=300,
        radius=25,
        thickness=4,
        start_angle=-90,
        end_angle=180
    },
    {
        name='cpu',
        arg='cpu1',
        max=100,
        bg_colour=0xffffff,
        bg_alpha=0.2,
        fg_colour=0xFF6600,
        fg_alpha=0.8,
        x=50, y=300,
        radius=20,
        thickness=4,
        start_angle=-90,
        end_angle=180
    },
    {
        name='memperc',
        arg='',
        max=100,
        bg_colour=0xffffff,
        bg_alpha=0.2,
        fg_colour=0xFF6600,
        fg_alpha=0.8,
        x=75, y=350,
        radius=25,
        thickness=5,
        start_angle=-90,
        end_angle=180
    },
    {
        name='swapperc',
        arg='',
        max=100,
        bg_colour=0xffffff,
        bg_alpha=0.2,
        fg_colour=0xFF6600,
        fg_alpha=0.8,
        x=100, y=400,
        radius=25,
        thickness=5,
        start_angle=-90,
        end_angle=180
    },
    {
        name='fs_used_perc',
        arg='/',
        max=100,
        bg_colour=0xffffff,
        bg_alpha=0.2,
        fg_colour=0xFF6600,
        fg_alpha=0.8,
        x=125, y=450,
        radius=25,
        thickness=4,
        start_angle=-90,
        end_angle=180
    },
    {
        name='fs_used_perc',
        arg='/home',
        max=100,
        bg_colour=0xffffff,
        bg_alpha=0.2,
        fg_colour=0xFF6600,
        fg_alpha=0.8,
        x=125, y=450,
        radius=20,
        thickness=4,
        start_angle=-90,
        end_angle=180
    },
        {
        name='downspeedf',
        arg='eth0',
        max=100,
        bg_colour=0xffffff,
        bg_alpha=0.2,
        fg_colour=0x339900,
        fg_alpha=0.8,
        x=150, y=500,
        radius=25,
        thickness=4,
        start_angle=-90,
        end_angle=180
    },
        {
        name='upspeedf',
        arg='eth0',
        max=100,
        bg_colour=0xffffff,
        bg_alpha=0.2,
        fg_colour=0xFF3300,
        fg_alpha=0.8,
        x=150, y=500,
        radius=20,
        thickness=4,
        start_angle=-90,
        end_angle=180
    },
}
-- Use these settings to define the origin and extent of your clock.

clock_r=65

-- "clock_x" and "clock_y" are the coordinates of the centre of the clock, in pixels, from the top left of the Conky window.

clock_x=100
clock_y=150

show_seconds=true

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 draw_clock_hands(cr,xc,yc)
    local secs,mins,hours,secs_arc,mins_arc,hours_arc
    local xh,yh,xm,ym,xs,ys

    secs=os.date("%S")
    mins=os.date("%M")
    hours=os.date("%I")

    secs_arc=(2*math.pi/60)*secs
    mins_arc=(2*math.pi/60)*mins+secs_arc/60
    hours_arc=(2*math.pi/12)*hours+mins_arc/12

    -- Draw hour hand

    xh=xc+0.7*clock_r*math.sin(hours_arc)
    yh=yc-0.7*clock_r*math.cos(hours_arc)
    cairo_move_to(cr,xc,yc)
    cairo_line_to(cr,xh,yh)

    cairo_set_line_cap(cr,CAIRO_LINE_CAP_ROUND)
    cairo_set_line_width(cr,5)
    cairo_set_source_rgba(cr,1.0,1.0,1.0,1.0)
    cairo_stroke(cr)

    -- Draw minute hand

    xm=xc+0.85*clock_r*math.sin(mins_arc)
    ym=yc-0.85*clock_r*math.cos(mins_arc)
    cairo_move_to(cr,xc,yc)
    cairo_line_to(cr,xm,ym)

    cairo_set_line_width(cr,3)
    cairo_stroke(cr)

    -- Draw seconds hand

    if show_seconds then
        xs=xc+clock_r*math.sin(secs_arc)
        ys=yc-clock_r*math.cos(secs_arc)
        cairo_move_to(cr,xc,yc)
        cairo_line_to(cr,xs,ys)

        cairo_set_line_width(cr,1)
        cairo_stroke(cr)
    end
end

function conky_clock_rings()
    local function setup_rings(cr,pt)
        local secs, mins, hours, mins_secs, hours_mins
        local str=''
        local value=0

        if pt['name']=='clock' then
            secs=os.date("%S")
            mins=os.date("%M")
            hours=os.date("%I")

            mins_secs=mins+secs/60
            hours_mins=hours+mins/60
            if hours_mins > 12 then hours_mins=hours_mins-12 end
            if pt['arg']=="heure" then
            str=hours_mins
            elseif pt['arg']=="minutes" then
            str=mins_secs
            else
            str=secs
            end
        else
            str=string.format('${%s %s}',pt['name'],pt['arg'])
            str=conky_parse(str)
        end

        value=tonumber(str)

        if value==nil then -- Gestion du problème de séparateur décimale
            str=conky_parse(str):gsub("%.",",")
            value=tonumber(str)
        end

        if value == nil then value = 0 end
        pct=value/pt['max']

        draw_ring(cr,pct,pt)
    end

    -- Check that Conky has been running for at least 5s

    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

    draw_clock_hands(cr,clock_x,clock_y)
end

@Tous,
voici la correction apporté pour le soucis 12h00

code avant correction

            hours_mins=hours+mins/60
            if pt['arg']=="heure" then

code après correction

            hours_mins=hours+mins/60
            if hours_mins > 12 then hours_mins=hours_mins-12 end
            if pt['arg']=="heure" then

A bientôt,
Didier.

Hors ligne

#1357 Le 13/08/2016, à 19:57

chepioq

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Merci Didier-T pour cette correction.
Je l'ai ajouté mais je ne pourrais le tester que dimanche prochain (demain je part à Londres avec mon fils pour une semaine).


Tout est dans tout et réciproquement....

Hors ligne

#1358 Le 14/08/2016, à 07:10

chepioq

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

@Didier-T
Je viens de m'apercevoir d'une chose
Quand je lançai l'ancienne version de conky en console, j'avais ceci

[dominique@host-192-168-1-2 .conkyrc]$ conky -c conky-testconky: desktop window (2200012) is subwindow of root window (284)
conky: window type - normal
conky: drawing to created window (0x4200002)
conky: drawing to double buffer

Avec ta version j'ai ceci :

[dominique@host-192-168-1-2 .conkyrc]$ conky -c conky-testconky: desktop window (2200012) is subwindow of root window (284)
conky: window type - normal
conky: drawing to created window (0x4200002)
conky: drawing to double buffer
0,5875
0,059166666666667
0,55
0,45161290322581
0,66666666666667
0,03
0,03
0,09
0,0
0,48
0,1
0,0
0,0
0,5875
0,059444444444444
0,56666666666667
0,45161290322581
0,66666666666667
0,03
0,03
0,09
0,0
0,48
0,1
0,0
0,0
0,5875
0,059722222222222
0,58333333333333
0,45161290322581
0,66666666666667
0,1
0,06
0,09
0,0
0,48
0,1
0,0
0,0
0,5875
0,06
0,6
0,45161290322581
0,66666666666667
0,1
0,06
0,09
0,0
0,48
0,1
0,0
0,0
0,5875
0,060277777777778
0,61666666666667
0,45161290322581
0,66666666666667
0,04
0,03
0,09
0,0
0,48
0,1
0,0
0,0
0,5875
0,060555555555556
0,63333333333333
0,45161290322581
0,66666666666667
0,03
...........................

et les chiffres se succèdent jusqu'à ce que j'arrête le conky.
As-tu une explication ?

EDIT
J'oubliai une chose : les chiffres apparaissent quand les cercles sont affichés, pas avant.

Dernière modification par chepioq (Le 14/08/2016, à 07:12)


Tout est dans tout et réciproquement....

Hors ligne

#1359 Le 14/08/2016, à 07:49

Didier-T

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Bonjour chepioq,
J'ai simplement oublier de retirer une ligne de débogage.
Recherche dans le code lua la ligne contenant "print" et supprime la, sa réglera le soucis.

Hors ligne

#1360 Le 14/08/2016, à 08:08

chepioq

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Ok merci, je vais tester ça vite fait et puis je m'en vais pour uns semaine.

EDIT
OK, j'ai retiré la ligne et plus de soucis.
Merci et à dans une semaine


Tout est dans tout et réciproquement....

Hors ligne

#1361 Le 14/08/2016, à 08:40

Didier-T

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Bonne vacances

Hors ligne

#1362 Le 14/08/2016, à 10:15

pianistocrate

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Didier-T a écrit :

@pianistocrate,
voici ton script modifié, avec correction du bug 12h00
[...]
A bientôt,
Didier.

Ça marche !
Un grand merci ! smile


« Un spécialiste est un homme qui sait de plus en plus de choses, sur un sujet de plus en plus restreint, et qui finit par tout savoir… sur rien. »      Oscar Wilde

Hors ligne

#1363 Le 15/08/2016, à 14:36

jlfh0816

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Didier-T a écrit :

@Tous,
voici la correction apporté pour le soucis 12h00

code avant correction

            hours_mins=hours+mins/60
            if pt['arg']=="heure" then

code après correction

            hours_mins=hours+mins/60
            if hours_mins > 12 then hours_mins=hours_mins-12 end
            if pt['arg']=="heure" then

A bientôt,
Didier.

@DidierT
J'ai pu vérifié le comportement du conky après ta modification pour le bug 12H00 et tout fonctionne très bien hormis la toute première minute qui suit midi ainsi que celle qui suit minuit durant laquelle le cercle des heures reste entièrement plein alors qu'il devrait logiquement être entièrement vide.
Voici en images ce que ça donne:

1°) à midi:
1471262904.png   1471262938.png   1471262969.png
cercle des heures            cercle des heures            cercle des heures
15 août à 11H56              15 août entre midi et         15 août à partir de 12H01
                                        12H00 et 59 secondes

2°) à minuit:
Et à minuit, rebelote: cercle plein entre 00 heures 00 minutes 00 secondes et 00 heures 00 minutes et 59 secondes comme le montrent ces captures d'écran:
1471263329.png   1471263358.png   1471263386.png
cercle des heures           cercle des heures          cercle des heures
14 août à 23H50            15 août entre minuit et   15 août à partir de 00H01
                                       00H00 et 59 secondes

Personnellement, ce problème des 59 secondes ne me gêne pas du tout et je suis bien content d'avoir un conky qui dans l'ensemble fonctionne très bien.
Encore merci de ton aide DidierT !

Dernière modification par jlfh0816 (Le 15/08/2016, à 14:38)


Xubuntu - Voyager 18.04 et 22.04

Hors ligne

#1364 Le 15/08/2016, à 18:00

pianistocrate

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

@jlfh0816
Bin dis donc toi, je te croyais à la plage ! Et voilà que tu nous fais des heures sup à attendre minuit ! lol
Enfin, on a réduit (enfin "on" : moi, j'ai rien fait ! tongue  ) le problème de l'heure à 59 secondes, c'est pas rien ; encore un petit effort des velus et tout ça sera nickel-chrome.
Mais je suis comme toi, cette histoire des 59 secondes ça gêne pas des masses, mais bon, pour la beauté du sport, arranger ce tout petit truc ça serait cool cool cool


« Un spécialiste est un homme qui sait de plus en plus de choses, sur un sujet de plus en plus restreint, et qui finit par tout savoir… sur rien. »      Oscar Wilde

Hors ligne

#1365 Le 15/08/2016, à 18:12

Didier-T

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Bonjour,
Dans la ligne ajouté remplacez le > par un ==
Bien les deux signes égales.

Sa devrait coller ;-)

Hors ligne

#1366 Le 15/08/2016, à 18:36

jlfh0816

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Didier-T a écrit :

Bonjour,
Dans la ligne ajouté remplacez le > par un ==
Bien les deux signes égales.

Sa devrait coller ;-)

@Didier-T
Super !
Merci Didier-T, j'ai modifié et je vais guetter ce petit bug des 59 secondes.
Je te tiens au courant.

@pianistocrate
Ouh, la plage, c'était ce matin à la fraîche parce que là ... ça chauffe un peu trop pour moi  tongue
Porte-toi bien et n'oublie pas le parasol lol


Xubuntu - Voyager 18.04 et 22.04

Hors ligne

#1367 Le 16/08/2016, à 00:18

jlfh0816

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Didier-T a écrit :

Bonjour,
Dans la ligne ajouté remplacez le > par un ==
Bien les deux signes égales.

Sa devrait coller ;-)

@Didier-T
J'ai fait la modification du clock_rings.lua comme tu l'as proposé et ta modification est efficace pour la première minute après minuit: le cercle est bien vide de 00H00min00sec jusqu'à 00H00min59sec.
Par contre, il redevient entièrement plein à partir de 00H01min ...
Voici ce que ça donne en images:
1471298695.png   1471299408.png   1471298915.png
cercle des heures           cercle des heures          cercle des heures
15/08 à 23H52               16/08 de minuit              16/08 à partir de 00H01min
                                       jusqu'à
                                       00H00min59sec
Donc, maintenant, c'est à partir de la deuxième minute que ça ne colle plus (cercle de nouveau plein).

Dernière modification par jlfh0816 (Le 16/08/2016, à 00:20)


Xubuntu - Voyager 18.04 et 22.04

Hors ligne

#1368 Le 16/08/2016, à 10:13

loutch

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Hello

Voila j'ai un souci avec un conky.sh ,sur toute mes distribution kde il fonctionne au poil .
C'est un script qui lance radiotray et son conky au premier clic et qui les referme au deuxième clic mais voila sur une distro cannelle ou xfce cela ne fonctionne pas .J'ai remplacé les "kill" par des "killall" idem nada .
le script lance bien la première fois radiotray et le conky mais lors du second clic ,au lieu de tout refermer il m'arrête la radio  et relance le conky .

Si quelqu'un aurait la soluce, merci d'avance

et

@+

#!/bin/bash

PROG_NAME1="conky -c /home/$USER/.conky/radiotray/conkyrc"	# Nom du programme à  démarrer/arrêter.
PROG_NAME2="/usr/bin/radiotray" # Nom du programme à  démarrer/arrêter.

PROCESSPID1=$(pgrep -f /home/$USER/.conky/radiotray/conkyrc)	# Récupère le PID du processus.
PROCESSPID2=$(pgrep -f "usr/bin/radiotray")	# Récupére le PID du processus.


if [[ "$PROCESSPID1" != ""  && "$PROCESSPID2" != "" ]]; then	# Si les deux processus existe alors on le(s) kill.
        kill $PROCESSPID1 && echo "Stop $PROG_NAME1 (PID: $PROCESSPID1)"
        kill $PROCESSPID2  && echo "Stop $PROG_NAME2 (PID: $PROCESSPID2)"
else	# Si aucun processus on démarre le programme.
        kill $PROCESSPID1 
        $PROG_NAME1 & 
        echo "Start $PROG_NAME1"
        kill $PROCESSPID2  
        $PROG_NAME2 & 
        echo "Start $PROG_NAME2"
        if [[ "$PROCESSPID1" == ""  || "$PROCESSPID2" == "" ]]; then	# Si un des processus n'existe pas alors on le(s) kill.
                kill $PROCESSPID1 && echo "Stop $PROG_NAME1 (PID: $PROCESSPID1)"
                kill $PROCESSPID2  && echo "Stop $PROG_NAME2 (PID: $PROCESSPID2)"
                echo "Il y a eu un souci au lancement tout a été coupé"
        fi
fi

Dernière modification par loutch (Le 16/08/2016, à 11:43)

Hors ligne

#1369 Le 17/08/2016, à 08:21

chepioq

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Je ne comprend pas pourquoi tu kill les process après le premier else : si les process n'existent pas tu n'as pas besoin de les killer.

else    # Si aucun processus on démarre le programme.
        kill $PROCESSPID1
        $PROG_NAME1 &
        echo "Start $PROG_NAME1"
        kill $PROCESSPID2 
        $PROG_NAME2 &

Dernière modification par chepioq (Le 17/08/2016, à 08:53)


Tout est dans tout et réciproquement....

Hors ligne

#1370 Le 17/08/2016, à 11:30

loutch

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

hello

le script kill les processus s'il y en y un des deux qui est fermé pour ré-ouvrir les deux proprement exemple
je lance le script
1-je bidouille le conkyrc et il ne redémarre pas (mauvaise variable) un clic et le script ferme radiotray et relance les deux processus
2 radiotray "merdoie" il ferme le conky proprement et ré-ouvre tout
@+

Hors ligne

#1371 Le 19/08/2016, à 15:18

Didier-T

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Bonjour,

if hours_mins >= 12 then hours_mins=hours_mins-12 end

il y a une légère modification wink

@loutch,
je n'ai pas de solution toute prête pour toi, mais a ta place je regarderai le retour de ses commandes conky et radiotray lancés et conky et radiotray fermés, a mon avis le souci est a ce niveau.

pgrep -f /home/$USER/.conky/radiotray/conkyrc
pgrep -f "usr/bin/radiotray"

Hors ligne

#1372 Le 19/08/2016, à 18:01

loutch

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

hello

Merci Didier j'ai déjà regardé de ce coté-là ,j'ai vu que si je demande au raccourcis de se lancer dans un terminal il coupe tout alors je me suis fait un deuxième lanceur avec demande de lancement dans la console et là tout est fermé proprement le conky et radiotray.
Donc cela me fait deux lanceurs mais ça fonctionne .
Encore merci et

@+

Dernière modification par loutch (Le 19/08/2016, à 18:02)

Hors ligne

#1373 Le 21/08/2016, à 15:08

jlfh0816

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Didier-T a écrit :

Bonjour,

if hours_mins >= 12 then hours_mins=hours_mins-12 end

il y a une légère modification wink

@Didier-T
Merci Didier-T, j'ai effectué la modification et tout fonctionne désormais correctement, aussi bien avant qu'après midi et minuit, le bug de la première minute a disparu. Le conky est désormais en parfait ordre de marche !  big_smile
1471784596.png   1471784629.png   1471784673.png
   juste avant midi      de midi à 12H 00min 59sec      à partir de 12H01

Dernière modification par jlfh0816 (Le 21/08/2016, à 15:10)


Xubuntu - Voyager 18.04 et 22.04

Hors ligne

#1374 Le 29/08/2016, à 10:28

pianistocrate

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Le conkyrc original - celui à la pendule dont le script conky a fait l'objet des posts et modifs cités précédemment - comportait une petite option météo bien sympathique qui permettait d'avoir la température de sa ville, avec les 4 lettres du code d'identification international, comme on peut le voir ci-dessous :

TEXT
${voffset 8}${color FF6600}${font caviar dreams:size=16}${time %A}${font}${voffset -8}${alignr 50}${color FFFFFF}${font caviar dreams:size=38}${time %e}${font}
${color FFFFFF}${voffset -30}${color FFFFFF}${font caviar dreams:size=18}${time %b}${font}${voffset -3} ${color FFFFFF}${font caviar dreams:size=20}${time %Y}${font}${color FF6600}${hr}
${voffset 140}${font caviar dreams:size=10}${alignr}HOME${font}
${font caviar dreams:size=12}${color FFFFFF}${alignr}${weather http://weather.noaa.gov/pub/data/observations/metar/stations/ LQBK temperature temperature 30} °C${font}
${image ~/.conky/new-ubuntu-logo.png -p 64,125 -s 70x20}

Cette fonction était basée sur un site américain (l'adresse est dans le code ci-dessus) qui a hélas cessé de fonctionner comme expliqué ici.
L'un(e) d'entre vous aurait-il trouvé une solution de remplacement ?


« Un spécialiste est un homme qui sait de plus en plus de choses, sur un sujet de plus en plus restreint, et qui finit par tout savoir… sur rien. »      Oscar Wilde

Hors ligne

#1375 Le 29/08/2016, à 10:37

chepioq

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Sur cette page : https://forums.bunsenlabs.org/viewtopic.php?id=189 ( et les suivantes) tu trouveras plusieurs conky-météo, à toi de choisir celui qui te convient le mieux

Dernière modification par chepioq (Le 29/08/2016, à 10:39)


Tout est dans tout et réciproquement....

Hors ligne