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.

#1051 Le 28/09/2011, à 13:48

kurapika29

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Phyllinux augmente le sleep au lancement de conky wink


Disponible sur IRC, sur le serveur irc.freenode.net salon ##ubuntu-voyager (et aussi sur plein d'autre serveur/salon)
Venez si vous avec besoin d'aide ou pour causer ;) suffit d'avoir Xchat ou un autre client IRC
Où sinon en cliquant sur se lien http://kiwiirc.com/client/irc.freenode. … tu-voyager

Hors ligne

#1052 Le 28/09/2011, à 14:30

Phyllinux

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

OK, merci Kurapika !
J'ai passé le lancement du 1er en différé à 20 secondes, et 40 pour le second, et tout est rentré dans l'ordre !
Je vais maintenant essayer tranquillement de baisser les délais d'attente pour voir quelle est la temporisation minimum.
Merci encore smile


The ship is sinking normally...

Hors ligne

#1053 Le 02/10/2011, à 21:32

Satchmo

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Salut tous,
J'ai eu un paquet de mises a jour hier, et depuis, j'ai un petit problème avec le conkyforecast, qui marchait exactement comme je voulais juste avant.... Ca se situe en bas à gauche de mon écran.
1317586947.png
Normalement, le texte "calme - CALM" devrait être aligné avec le texte du dessous. C'était comme ça avant les MaJ....
Ci-dessous mon conkyforecast d'origine, qui marchait au poil:

${color2}${font Arial:style=Bold:size=10}
${image [--datatype=WI] -p 20,100 -s 55x55}
${image [--datatype=WI --startday=1] -p 120,100 -s 55x55}
${image [--datatype=BI] -p 20,180 -s 50x50}
${image [--datatype=MI] -p 120,180 -s 50x50}
${voffset 60}${goto 15}[--datatype=DW --shortweekday --startday=0] [--datatype=LT --hideunits]${goto 110}[--datatype=DW --shortweekday --startday=1] [--datatype=LT --startday=1 --hideunits]/[--datatype=HT --startday=1 --hideunits]
${voffset 60}${goto 15}[--datatype=WS] - [--datatype=WD]
${voffset 5}${goto 15}MaJ: [--datatype=LU]

J'ai essayé de changer la valeur du goto, avec 5 au lieu de 15, le texte se déplace à droite ????? Avec 50 au lieu de 15, c'est le texte d'en dessous qui se déplace à droite ????? Bref, comprends pus rien !!!!
Après ces MaJ, il a fallu que je mette un "gap_y -200", car le conky était remonté vers le haut....
Je suis en LMDE avec openbox, conky est le 1.8.1.
Merci!

Le fond d'écran, c'est Lyon.... trouvé ici : http://www.olivewhite.com/

Edit: J'oubliais...... j'ai longtemps bavé devant vos créations, j'ai pas mal bidouillé dans mon coin grace à vos infos. Ce bug me donne la possibilité de vous montrer un bout de ce que vous m'avez aidé à faire. Merci et encore bravo à tous.

Dernière modification par Satchmo (Le 02/10/2011, à 21:39)


Baby we were born to run.....

Hors ligne

#1054 Le 04/10/2011, à 13:13

wlourf

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Hello,

Un petit conky en Lua assez discret :
conky_panel_by_wlourf-d4bs4ks.png

Les deux exemples ci-dessus sont réalisés à partir du même script (disponible sur deviant Art)

Hors ligne

#1055 Le 04/10/2011, à 18:10

spinoziste

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

SAlut à tous . @Satchmo tu peux filer ton conkyrc et ton lua ?


Nous mourrons tous .

Hors ligne

#1056 Le 04/10/2011, à 19:00

Satchmo

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Salut,
Le conky est vraiment tout bête, j'ai repiqué ça quelque part et fait très peu de modif. Pas de LUA du coté gauche, juste le conkyforecast.
Comme je suis pas trop du genre à me tourner les pouces pendant que les autres réfléchissent cool, j'ai fait quelques modifs et j'ai mis le conky en haut. Et là, tout marche .... Mais j'ai pas compris l'origine du pb, et ça c'est pénible....
Le conky

# conky configuration
# edited by Mark Buck (Kaivalagi) <m_buck@hotmail.com>

# set to yes if you want Conky to be forked in the background
background no

# Use Xft?
use_xft yes

# Xft font when Xft is enabled
xftfont Bitstream Vera Sans Mono:size=9

# Text alpha when using Xft
xftalpha 0.8

# Update interval in seconds
update_interval 600

# This is the number of times Conky will update before quitting.
# Set to zero to run forever.
total_run_times 0

# Create own window instead of using desktop (required in nautilus)
own_window yes

# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes

# Minimum size of text area
minimum_size 300 0
maximum_width 300

# Draw shades?
draw_shades yes

# Draw outlines?
draw_outline no

# Draw borders around text
draw_borders no
draw_graph_borders yes

# Stippled borders?
stippled_borders 8

# border margins
#border_margin 4

# border width
border_width 1

# Default colors and also border colors
default_color white
default_shade_color black
default_outline_color white

# own window options
own_window        yes
own_window_transparent    yes
own_window_type        override
own_window_hints    undecorated,below,sticky,skip_taskbar,skip_pager

# Text alignment, other possible values are commented
alignment top_left
#alignment top_right
#alignment bottom_left
#alignment bottom_right

# Gap between borders of screen and text
# same thing as passing -x at command line
gap_x 20
gap_y -80

# Subtract file system buffers from used memory?
no_buffers yes

# set to yes if you want all text to be in uppercase
uppercase no

# number of cpu samples to average
# set to 1 to disable averaging
cpu_avg_samples 2

# number of net samples to average
# set to 1 to disable averaging
net_avg_samples 2

# Force UTF8? note that UTF8 support required XFT
override_utf8_locale yes

# Add spaces to keep things from moving about?  This only affects certain objects.
use_spacer right

# colours
color1 white
# light blue
# color2 6892C6
# yellow
color2 ab8f0b
# orange
#E77320
#color3 FC8820
# green
#color4 78BF39
# red
#color5 CC0000

text_buffer_size 2048

TEXT
${execpi 1800 conkyForecast --location=FRXX2334 --template=~/conky/Meteo/conkyForecast.template}

Le forecast, nouvelle mouture

${color2}${font Arial:style=Bold:size=10}
${image [--datatype=WI] -p 10,100 -s 55x55}
${image [--datatype=WI --startday=1] -p 110,100 -s 55x55}
${voffset 95}[--datatype=DW --shortweekday --startday=0] [--datatype=LT --hideunits]${goto 110}[--datatype=DW --shortweekday --startday=1] [--datatype=LT --startday=1 --hideunits]/[--datatype=HT --startday=1 --hideunits]
${image [--datatype=BI] -p 10,180 -s 50x50}
${image [--datatype=MI] -p 110,180 -s 50x50}
${voffset 30}[--datatype=WS] - [--datatype=WD]
${voffset 5}MaJ: [--datatype=LU]

Je peux tout remettre comme c'était avant, mais bon, en haut finalement, c'est pas mal!
A+

Edit : @spinoziste: euh.... tu voulais peut-être le conky de droite.....? big_smile

Dernière modification par Satchmo (Le 04/10/2011, à 19:05)


Baby we were born to run.....

Hors ligne

#1057 Le 07/10/2011, à 15:39

Mario_26

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Bonjour,

A l'aide de vos Conky, j'ai fait celuis là :

1317998302.png

Merci !!

++

Dernière modification par Mario_26 (Le 07/10/2011, à 15:41)


Dell Vostro 3700 | 4 Gib DDR | Geforce GT 330M | Intel Core I5 | Precise Pangolin -> I like ubuntu (-;
Communauté Devosi
Open Source Informatique

Hors ligne

#1058 Le 07/10/2011, à 19:58

neecride

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

me vla avec un autre conky basic mai je l'ai configuré moi même et j'aime bien tout en transparence il y a
encore un travail de finition mai bon pas mal pour un noob

2011100413177423721360x.png

2011100413177423801360x.png

Conky

####         ###  ############  ############
######       ###  ############  ############ 
### ###      ###  ###           ###
###  ###     ###  ###           ###
###   ###    ###  #########     #########
###    ###   ###  ###           ###
###     ###  ###  ###           ###
###      ### ###  ###           ###
###       ######  ############  ############
###          ###  ############  ############
#
#
#############################################
#
#conky configuration
#
# The list of variables has been removed from this file in favour
# of keeping the documentation more maintainable.
# Check http://conky.sf.net for an up-to-date-list.
#
# For ideas about how to modify conky, please see:
# http://crunchbanglinux.org/forums/topic/59/my-conky-config/
#
# For help with conky, please see:
# http://crunchbanglinux.org/forums/topic/2047/conky-help/
#
# Enjoy! :)
##############################################
#  Settings
##############################################
background yes
use_xft yes
xftfont monospace:size=9
xftalpha 1
update_interval 1.0
total_run_times 0
own_window yes
own_window_transparent yes
own_window_type desktop
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
double_buffer yes
minimum_size 200 200
maximum_width 450
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
default_color FFFFFF
default_shade_color 000000
default_outline_color d9d7d6
alignment top_right
gap_x 12
gap_y 12
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale no



color9 8EFBFF
color8 56F8FE #bleu
color7 AEFCFF #bleu
color6 00F7FF #bleu
color5 FF1B1B #rouge
color4 EF5A29 #orange foncer
color3 4BFF37 #vert
color2 
color1

lua_load /home/neecride/pfflulu.lua
lua_draw_hook_post main

##############################################
#  Output
##############################################
TEXT
${voffset 0}
${offset 0}${font Ubuntu:size=10}${color }${color3} Systeme ${font}${color}
${font Arial:Bold}${image /home/neecride/icons/fondconky.png -p -5,0 }
${voffset -63}
${offset 110}${font Ubuntu:size=10}${color }${color3} $nodename${font}${color}


${voffset 30}
${font Ubuntu:size=8}${color3}CPU : ${color6}${cpubar cpu1}${color}${image /home/neecride/icons/cpu.png -p 20,50 }

${font Ubuntu:size=8}${color3}RAM : ${color6}${membar}${color}${image /home/neecride/icons/ram2.png -p 62,42 }

${font Ubuntu:size=8}${color3}HDD : ${color6}${fs_bar /}${color}${image /home/neecride/icons/hdd2.png -p 115,45 }

${font Ubuntu:size=8}${color3}SWAP : ${color6}${swapbar}${color}${image /home/neecride/icons/swapp.png -p 164,45 }


${offset 0}${font Ubuntu:size=7,weight:normal}${color7}${top name 1}${alignr}${top cpu 1}%
${offset 10}${font Ubuntu:size=7,weight:normal}${color7}${top name 2}${alignr}${top cpu 2}%
${offset 20}${font Ubuntu:size=7,weight:normal}${color7}${top name 3}${alignr}${top cpu 3}%
${offset 30}${font Ubuntu:size=7,weight:normal}${color7}${top name 4}${alignr}${top cpu 4}%
${offset 40}${font Ubuntu:size=7,weight:normal}${color7}${top name 5}${alignr}${top cpu 5}%


${voffset 0}
${font Arial:Bold}${image /home/neecride/icons/fondconkhor.png -p 40,333 }
${alignc 25}${font Trebuchet MS:size=26}${color7}${time %H:%M}${font}
${alignc}${time %a %d %b %Y}

Lua

--==============================================================================
--           pfflulu              
--
--==============================================================================

require 'cairo'


--------------------------------------------------------------------------------
--                                                                    gauge DATA
gauge = {
{
    name='cpu',                    arg='cpu0',                  max_value=100,
    x=30,                          y=65,
    graph_radius=20,
    graph_thickness=5,
    graph_start_angle=180,
    graph_unit_angle=2.7,          graph_unit_thickness=2.7,
    graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
    graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.0,
    hand_fg_colour=0x00F7FF,       hand_fg_alpha=1.0,
    txt_radius=25,
    txt_weight=0,                  txt_size=8.0,
    txt_fg_colour=0x00F7FF,        txt_fg_alpha=1.0,
    graduation_radius=28,
    graduation_thickness=0,        graduation_mark_thickness=1,
    graduation_unit_angle=27,
    graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
    caption='',
    caption_weight=1,              caption_size=8.0,
    caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
},

{
    name='memperc',                arg='',                      max_value=100,
    x=80,                          y=65,
    graph_radius=20,
    graph_thickness=5,
    graph_start_angle=180,
    graph_unit_angle=2.7,          graph_unit_thickness=2.7,
    graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
    graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.0,
    hand_fg_colour=0x00F7FF,       hand_fg_alpha=1.0,
    txt_radius=25,
    txt_weight=0,                  txt_size=8.0,
    txt_fg_colour=0x00F7FF,        txt_fg_alpha=1.0,
    graduation_radius=23,
    graduation_thickness=0,        graduation_mark_thickness=2,
    graduation_unit_angle=27,
    graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.5,
    caption='',
    caption_weight=1,              caption_size=8.0,
    caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
},
{
    name='fs_used_perc',           arg='/',                     max_value=100,
    x=130,                          y=65,
    graph_radius=20,
    graph_thickness=5,
    graph_start_angle=180,
    graph_unit_angle=2.7,          graph_unit_thickness=2.7,
    graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
    graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.0,
    hand_fg_colour=0x00F7FF,       hand_fg_alpha=1.0,
    txt_radius=25,
    txt_weight=0,                  txt_size=8.0,
    txt_fg_colour=0x00F7FF,        txt_fg_alpha=1.0,
    graduation_radius=23,
    graduation_thickness=0,        graduation_mark_thickness=2,
    graduation_unit_angle=27,
    graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
    caption='',
    caption_weight=1,              caption_size=8.0,
    caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.5,
},

{
    name='swap',                arg='',                      max_value=100,
    x=180,                          y=65,
    graph_radius=20,
    graph_thickness=5,
    graph_start_angle=180,
    graph_unit_angle=2.7,          graph_unit_thickness=2.7,
    graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
    graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.0,
    hand_fg_colour=0x00F7FF,       hand_fg_alpha=1.0,
    txt_radius=25,
    txt_weight=0,                  txt_size=8.0,
    txt_fg_colour=0x00F7FF,        txt_fg_alpha=1.0,
    graduation_radius=23,
    graduation_thickness=0,        graduation_mark_thickness=2,
    graduation_unit_angle=27,
    graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.5,
    caption='',
    caption_weight=1,              caption_size=8.0,
    caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
},


-------------------------------------------------------------------------------
--                                                                 rgb_to_r_g_b
-- converts color in hexa to decimal
--
function rgb_to_r_g_b(colour, alpha)
    return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end

-------------------------------------------------------------------------------
--                                                            angle_to_position
-- convert degree to rad and rotate (0 degree is top/north)
--
function angle_to_position(start_angle, current_angle)
    local pos = current_angle + start_angle
    return ( ( pos * (2 * math.pi / 360) ) - (math.pi / 2) )
end


-------------------------------------------------------------------------------
--                                                              draw_gauge_ring
-- displays gauges
--
function draw_gauge_ring(display, data, value)
    local max_value = data['max_value']
    local x, y = data['x'], data['y']
    local graph_radius = data['graph_radius']
    local graph_thickness, graph_unit_thickness = data['graph_thickness'], data['graph_unit_thickness']
    local graph_start_angle = data['graph_start_angle']
    local graph_unit_angle = data['graph_unit_angle']
    local graph_bg_colour, graph_bg_alpha = data['graph_bg_colour'], data['graph_bg_alpha']
    local graph_fg_colour, graph_fg_alpha = data['graph_fg_colour'], data['graph_fg_alpha']
    local hand_fg_colour, hand_fg_alpha = data['hand_fg_colour'], data['hand_fg_alpha']
    local graph_end_angle = (max_value * graph_unit_angle) % 360

    -- background ring
    cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, 0), angle_to_position(graph_start_angle, graph_end_angle))
    cairo_set_source_rgba(display, rgb_to_r_g_b(graph_bg_colour, graph_bg_alpha))
    cairo_set_line_width(display, graph_thickness)
    cairo_stroke(display)

    -- arc of value
    local val = value % (max_value + 1)
    local start_arc = 0
    local stop_arc = 0
    local i = 1
    while i <= val do
        start_arc = (graph_unit_angle * i) - graph_unit_thickness
        stop_arc = (graph_unit_angle * i)
        cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
        cairo_set_source_rgba(display, rgb_to_r_g_b(graph_fg_colour, graph_fg_alpha))
        cairo_stroke(display)
        i = i + 1
    end
    local angle = start_arc

    -- hand
    start_arc = (graph_unit_angle * val) - (graph_unit_thickness * 2)
    stop_arc = (graph_unit_angle * val)
    cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
    cairo_set_source_rgba(display, rgb_to_r_g_b(hand_fg_colour, hand_fg_alpha))
    cairo_stroke(display)

    -- graduations marks
    local graduation_radius = data['graduation_radius']
    local graduation_thickness, graduation_mark_thickness = data['graduation_thickness'], data['graduation_mark_thickness']
    local graduation_unit_angle = data['graduation_unit_angle']
    local graduation_fg_colour, graduation_fg_alpha = data['graduation_fg_colour'], data['graduation_fg_alpha']
    if graduation_radius > 0 and graduation_thickness > 0 and graduation_unit_angle > 0 then
        local nb_graduation = graph_end_angle / graduation_unit_angle
        local i = 0
        while i < nb_graduation do
            cairo_set_line_width(display, graduation_thickness)
            start_arc = (graduation_unit_angle * i) - (graduation_mark_thickness / 2)
            stop_arc = (graduation_unit_angle * i) + (graduation_mark_thickness / 2)
            cairo_arc(display, x, y, graduation_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
            cairo_set_source_rgba(display,rgb_to_r_g_b(graduation_fg_colour,graduation_fg_alpha))
            cairo_stroke(display)
            cairo_set_line_width(display, graph_thickness)
            i = i + 1
        end
    end

    -- text
    local txt_radius = data['txt_radius']
    local txt_weight, txt_size = data['txt_weight'], data['txt_size']
    local txt_fg_colour, txt_fg_alpha = data['txt_fg_colour'], data['txt_fg_alpha']
    local movex = txt_radius * math.cos(angle_to_position(graph_start_angle, angle))
    local movey = txt_radius * math.sin(angle_to_position(graph_start_angle, angle))
    cairo_select_font_face (display, "ubuntu", CAIRO_FONT_SLANT_NORMAL, txt_weight)
    cairo_set_font_size (display, txt_size)
    cairo_set_source_rgba (display, rgb_to_r_g_b(txt_fg_colour, txt_fg_alpha))
    cairo_move_to (display, x + movex - (txt_size / 2), y + movey + 3)
    cairo_show_text (display, value)
    cairo_stroke (display)

    -- caption
    local caption = data['caption']
    local caption_weight, caption_size = data['caption_weight'], data['caption_size']
    local caption_fg_colour, caption_fg_alpha = data['caption_fg_colour'], data['caption_fg_alpha']
    local tox = graph_radius * (math.cos((graph_start_angle * 2 * math.pi / 360)-(math.pi/2)))
    local toy = graph_radius * (math.sin((graph_start_angle * 2 * math.pi / 360)-(math.pi/2)))
    cairo_select_font_face (display, "ubuntu", CAIRO_FONT_SLANT_NORMAL, caption_weight);
    cairo_set_font_size (display, caption_size)
    cairo_set_source_rgba (display, rgb_to_r_g_b(caption_fg_colour, caption_fg_alpha))
    cairo_move_to (display, x + tox + 5, y + toy + 1)
    -- bad hack but not enough time !
    if graph_start_angle < 105 then
        cairo_move_to (display, x + tox - 30, y + toy + 1)
    end
    cairo_show_text (display, caption)
    cairo_stroke (display)
end


-------------------------------------------------------------------------------
--                                                               go_gauge_rings
-- loads data and displays gauges
--
function go_gauge_rings(display)
    local function load_gauge_rings(display, data)
        local str, value = '', 0
        str = string.format('${%s %s}',data['name'], data['arg'])
        str = conky_parse(str)
        value = tonumber(str)
        draw_gauge_ring(display, data, value)
    end
    
    for i in pairs(gauge) do
        load_gauge_rings(display, gauge[i])
    end
end

-------------------------------------------------------------------------------
--                                                                         MAIN
function conky_main()
    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 display = cairo_create(cs)
    
    local updates = conky_parse('${updates}')
    update_num = tonumber(updates)
    
    if update_num > 5 then
        go_gauge_rings(display)
    end

    cairo_surface_destroy(cs)
    cairo_destroy(display)

end

Image de fond 1 : http://imageshack.us/photo/my-images/820/fondconky.png/

Image de fond horloge : http://imageshack.us/photo/my-images/40 … nkhor.png/

pour les icônes mettez ce que vous voulez. Voila si ça intéresse quelqu’un il y a tous.

PS : mon poste prend pas trop de place ??

Hors ligne

#1059 Le 07/10/2011, à 20:00

neecride

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Me re-vla double poste je vous le dit c'étais du taf tous ça.

1317985298.png

1317985273.png

image principal http://pix.toile-libre.org/?img=1317985211.png

l'idée viens de la http://www.kaj-max.dk/infusions/pro_dow … hp?did=330

batarang droite http://pix.toile-libre.org/?img=1317985238.png

batarang gauche http://pix.toile-libre.org/?img=1317985224.png

conky

####         ###  ############  ############
######       ###  ############  ############ 
### ###      ###  ###           ###
###  ###     ###  ###           ###
###   ###    ###  #########     #########
###    ###   ###  ###           ###
###     ###  ###  ###           ###
###      ### ###  ###           ###
###       ######  ############  ############
###          ###  ############  ############
#
#
#############################################
#
#conky configuration
#
# The list of variables has been removed from this file in favour
# of keeping the documentation more maintainable.
# Check http://conky.sf.net for an up-to-date-list.
#
# For ideas about how to modify conky, please see:
# http://crunchbanglinux.org/forums/topic/59/my-conky-config/
#
# For help with conky, please see:
# http://crunchbanglinux.org/forums/topic/2047/conky-help/
#
# Enjoy! :)
##############################################
#  Settings
##############################################
background yes
use_xft yes
xftfont monospace:size=9
xftalpha 1
update_interval 1.0
total_run_times 0
own_window yes
own_window_transparent yes
own_window_type desktop
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
double_buffer yes
minimum_size 800 650
maximum_width 450
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
default_color FFFFFF
default_shade_color 000000
default_outline_color d9d7d6
alignment top_right
gap_x 25
gap_y 10
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale no



color9 8EFBFF
color8 56F8FE #bleu
color7 000000 #bleu
color6 413F3F #gris
color5 FF1B1B #rouge
color4 EF5A29 #orange foncer
color3 ffffff #vert
color2 
color1

lua_load /home/neecride/batman.lua
lua_draw_hook_post main

##############################################
#  Output
##############################################
TEXT
${voffset 100}
${offset 210}${font Ubuntu:bold:size=10}${color }${color7}${image /home/neecride/icons/arang.png -p 150,110 } Bat System${image /home/neecride/icons/arang2.png -p 310,110 } ${font}${color}
${font Arial:Bold}${image /home/neecride/icons/batmanarkam.png -p 50,10 }
#${voffset -56}
#${offset 110}${font Ubuntu:bold:size=10}${color }${color3} $nodename${font}${color}

${voffset 20}
${alignr 90}${font Ubuntu:bold:size=8}${color7}CPU : ${color6}${cpubar cpu1 7,150}${color}${image /home/neecride/icons/amd.png -p 170,156 }

${alignr 100}${font Ubuntu:bold:size=8}${color7}RAM : ${color6}${membar 7,150}${color}${image /home/neecride/icons/ram2.png -p 237,156 }

${alignr 100}${font Ubuntu:bold:size=8}${color7}HDD : ${color6}${fs_bar 7,150}${color}${image /home/neecride/icons/hdd2.png -p 309,156 }

${offset 206}${font Ubuntu:bold:size=12}${color7}${image /home/neecride/icons/arang.png -p 150,280 }Use System ${image /home/neecride/icons/arang2.png -p 310,280 }
${offset 160}${font Ubuntu:bold:size=10}${color6}${top name 1}${alignr 100}${top cpu 1}%
${offset 160}${font Ubuntu:bold:size=9}${color6}${top name 2}${alignr 100}${top cpu 2}%
${offset 160}${font Ubuntu:bold:size=8}${color6}${top name 3}${alignr 100}${top cpu 3}%
${offset 160}${font Ubuntu:bold:size=7}${color6}${top name 4}${alignr 100}${top cpu 4}%
${offset 160}${font Ubuntu:bold:size=6}${color6}${top name 5}${alignr 100}${top cpu 5}%

#${voffset 5}
#${alignc 25}${font Trebuchet MS:size=26}${color7}${time %H:%M}${font}${image /home/neecride/icons/fondconkhor.png -p 40,333 }
#${alignc}${time %a %d %b %Y}

#${offset 25}${exec  cal $(date +'%b %Y' --date '1 month' -1)}

Lua j'utilise toujours le même j'en ai pas d'autre qui fonctionne aussi bien

--==============================================================================
--           pfflulu              
--
--==============================================================================

require 'cairo'


--------------------------------------------------------------------------------
--                                                                    gauge DATA
gauge = {
{
    name='cpu',                    arg='cpu0',                  max_value=100,
    x=190,                          y=176,
    graph_radius=20,
    graph_thickness=5,
    graph_start_angle=180,
    graph_unit_angle=2.7,          graph_unit_thickness=2.7,
    graph_bg_colour=0x000000,      graph_bg_alpha=0.1,
    graph_fg_colour=0x000000,      graph_fg_alpha=0.5,
    hand_fg_colour=0x00F7FF,       hand_fg_alpha=1.0,
    txt_radius=25,
    txt_weight=0,                  txt_size=8.0,
    txt_fg_colour=0x00F7FF,        txt_fg_alpha=1.0,
    graduation_radius=28,
    graduation_thickness=0,        graduation_mark_thickness=1,
    graduation_unit_angle=27,
    graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
    caption='',
    caption_weight=1,              caption_size=8.0,
    caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
},

{
    name='memperc',                arg='',                      max_value=100,
    x=258,                          y=176,
    graph_radius=20,
    graph_thickness=5,
    graph_start_angle=180,
    graph_unit_angle=2.7,          graph_unit_thickness=2.7,
    graph_bg_colour=0x000000,      graph_bg_alpha=0.1,
    graph_fg_colour=0x000000,      graph_fg_alpha=0.5,
    hand_fg_colour=0x00F7FF,       hand_fg_alpha=1.0,
    txt_radius=25,
    txt_weight=0,                  txt_size=8.0,
    txt_fg_colour=0x00F7FF,        txt_fg_alpha=1.0,
    graduation_radius=23,
    graduation_thickness=0,        graduation_mark_thickness=2,
    graduation_unit_angle=27,
    graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.5,
    caption='',
    caption_weight=1,              caption_size=8.0,
    caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
},
{
    name='fs_used_perc',           arg='/',                     max_value=100,
    x=330,                          y=176,
    graph_radius=20,
    graph_thickness=5,
    graph_start_angle=180,
    graph_unit_angle=2.7,          graph_unit_thickness=2.7,
    graph_bg_colour=0x000000,      graph_bg_alpha=0.1,
    graph_fg_colour=0x000000,      graph_fg_alpha=0.5,
    hand_fg_colour=0x00F7FF,       hand_fg_alpha=1.0,
    txt_radius=25,
    txt_weight=0,                  txt_size=8.0,
    txt_fg_colour=0x00F7FF,        txt_fg_alpha=1.0,
    graduation_radius=23,
    graduation_thickness=0,        graduation_mark_thickness=2,
    graduation_unit_angle=27,
    graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
    caption='',
    caption_weight=1,              caption_size=8.0,
    caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.5,
},


{

},
{
  
},
}

-------------------------------------------------------------------------------
--                                                                 rgb_to_r_g_b
-- converts color in hexa to decimal
--
function rgb_to_r_g_b(colour, alpha)
    return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end

-------------------------------------------------------------------------------
--                                                            angle_to_position
-- convert degree to rad and rotate (0 degree is top/north)
--
function angle_to_position(start_angle, current_angle)
    local pos = current_angle + start_angle
    return ( ( pos * (2 * math.pi / 360) ) - (math.pi / 2) )
end


-------------------------------------------------------------------------------
--                                                              draw_gauge_ring
-- displays gauges
--
function draw_gauge_ring(display, data, value)
    local max_value = data['max_value']
    local x, y = data['x'], data['y']
    local graph_radius = data['graph_radius']
    local graph_thickness, graph_unit_thickness = data['graph_thickness'], data['graph_unit_thickness']
    local graph_start_angle = data['graph_start_angle']
    local graph_unit_angle = data['graph_unit_angle']
    local graph_bg_colour, graph_bg_alpha = data['graph_bg_colour'], data['graph_bg_alpha']
    local graph_fg_colour, graph_fg_alpha = data['graph_fg_colour'], data['graph_fg_alpha']
    local hand_fg_colour, hand_fg_alpha = data['hand_fg_colour'], data['hand_fg_alpha']
    local graph_end_angle = (max_value * graph_unit_angle) % 360

    -- background ring
    cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, 0), angle_to_position(graph_start_angle, graph_end_angle))
    cairo_set_source_rgba(display, rgb_to_r_g_b(graph_bg_colour, graph_bg_alpha))
    cairo_set_line_width(display, graph_thickness)
    cairo_stroke(display)

    -- arc of value
    local val = value % (max_value + 1)
    local start_arc = 0
    local stop_arc = 0
    local i = 1
    while i <= val do
        start_arc = (graph_unit_angle * i) - graph_unit_thickness
        stop_arc = (graph_unit_angle * i)
        cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
        cairo_set_source_rgba(display, rgb_to_r_g_b(graph_fg_colour, graph_fg_alpha))
        cairo_stroke(display)
        i = i + 1
    end
    local angle = start_arc

    -- hand
    start_arc = (graph_unit_angle * val) - (graph_unit_thickness * 2)
    stop_arc = (graph_unit_angle * val)
    cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
    cairo_set_source_rgba(display, rgb_to_r_g_b(hand_fg_colour, hand_fg_alpha))
    cairo_stroke(display)

    -- graduations marks
    local graduation_radius = data['graduation_radius']
    local graduation_thickness, graduation_mark_thickness = data['graduation_thickness'], data['graduation_mark_thickness']
    local graduation_unit_angle = data['graduation_unit_angle']
    local graduation_fg_colour, graduation_fg_alpha = data['graduation_fg_colour'], data['graduation_fg_alpha']
    if graduation_radius > 0 and graduation_thickness > 0 and graduation_unit_angle > 0 then
        local nb_graduation = graph_end_angle / graduation_unit_angle
        local i = 0
        while i < nb_graduation do
            cairo_set_line_width(display, graduation_thickness)
            start_arc = (graduation_unit_angle * i) - (graduation_mark_thickness / 2)
            stop_arc = (graduation_unit_angle * i) + (graduation_mark_thickness / 2)
            cairo_arc(display, x, y, graduation_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
            cairo_set_source_rgba(display,rgb_to_r_g_b(graduation_fg_colour,graduation_fg_alpha))
            cairo_stroke(display)
            cairo_set_line_width(display, graph_thickness)
            i = i + 1
        end
    end

    -- text
    local txt_radius = data['txt_radius']
    local txt_weight, txt_size = data['txt_weight'], data['txt_size']
    local txt_fg_colour, txt_fg_alpha = data['txt_fg_colour'], data['txt_fg_alpha']
    local movex = txt_radius * math.cos(angle_to_position(graph_start_angle, angle))
    local movey = txt_radius * math.sin(angle_to_position(graph_start_angle, angle))
    cairo_select_font_face (display, "ubuntu", CAIRO_FONT_SLANT_NORMAL, txt_weight)
    cairo_set_font_size (display, txt_size)
    cairo_set_source_rgba (display, rgb_to_r_g_b(txt_fg_colour, txt_fg_alpha))
    cairo_move_to (display, x + movex - (txt_size / 2), y + movey + 3)
    cairo_show_text (display, value)
    cairo_stroke (display)

    -- caption
    local caption = data['caption']
    local caption_weight, caption_size = data['caption_weight'], data['caption_size']
    local caption_fg_colour, caption_fg_alpha = data['caption_fg_colour'], data['caption_fg_alpha']
    local tox = graph_radius * (math.cos((graph_start_angle * 2 * math.pi / 360)-(math.pi/2)))
    local toy = graph_radius * (math.sin((graph_start_angle * 2 * math.pi / 360)-(math.pi/2)))
    cairo_select_font_face (display, "ubuntu", CAIRO_FONT_SLANT_NORMAL, caption_weight);
    cairo_set_font_size (display, caption_size)
    cairo_set_source_rgba (display, rgb_to_r_g_b(caption_fg_colour, caption_fg_alpha))
    cairo_move_to (display, x + tox + 5, y + toy + 1)
    -- bad hack but not enough time !
    if graph_start_angle < 105 then
        cairo_move_to (display, x + tox - 30, y + toy + 1)
    end
    cairo_show_text (display, caption)
    cairo_stroke (display)
end


-------------------------------------------------------------------------------
--                                                               go_gauge_rings
-- loads data and displays gauges
--
function go_gauge_rings(display)
    local function load_gauge_rings(display, data)
        local str, value = '', 0
        str = string.format('${%s %s}',data['name'], data['arg'])
        str = conky_parse(str)
        value = tonumber(str)
        draw_gauge_ring(display, data, value)
    end
    
    for i in pairs(gauge) do
        load_gauge_rings(display, gauge[i])
    end
end

-------------------------------------------------------------------------------
--                                                                         MAIN
function conky_main()
    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 display = cairo_create(cs)
    
    local updates = conky_parse('${updates}')
    update_num = tonumber(updates)
    
    if update_num > 5 then
        go_gauge_rings(display)
    end

    cairo_surface_destroy(cs)
    cairo_destroy(display)

end

PS : si vous voulez travaillez dessus allez y si y'en a qui aime la chauve-sourie.

Hors ligne

#1060 Le 08/10/2011, à 23:02

lifala

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Salut tout le monde ! Je suis sur un new conky je suis venu récupérer des idées ! tongue


conky 1 --- conky 2 --- conkyForecast 2.09 --- Tuto Finch
Lucid minimal + openbox

Hors ligne

#1061 Le 08/10/2011, à 23:18

spinoziste

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Satchmo a écrit :

Edit : @spinoziste: euh.... tu voulais peut-être le conky de droite.....? big_smile

Salut je voulais le tout oui . Merci à toi ça rox !


Nous mourrons tous .

Hors ligne

#1062 Le 09/10/2011, à 12:27

Satchmo

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Salut,
Ce sont des fichiers que j'ai copié moi-même ! Les LUA sont des incontournables de l'excellent wlourf, dont on peut apprécier le travail un peu plus haut (très chouette ces petits panels, ça me fait bien envie).
Ces LUA sont maintenant célèbres et il doit bien y avoir un moyen de récupérer les derniéres versions, genre ici mais bon, pour faire court, je colle tout.
Voilà donc la partie droite
Le conkyrc

# -- Conky settings -- #
background no
update_interval 1

cpu_avg_samples 2
net_avg_samples 2

override_utf8_locale yes

double_buffer yes
no_buffers yes

text_buffer_size 2048
imlib_cache_size 0

# Use Xft?
use_xft yes

# own_window_type desktop
# own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below
own_window yes
own_window_type override
own_window_transparent yes
# own_window_argb_visual yes
# own_window_title rings + text widgets

border_inner_margin 0
border_outer_margin 0

alignment middle_right
minimum_size 350 900
#gap_x -100

# -- Graphics settings -- #
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no

# yellow
color2 ab8f0b

# -- Lua load -- #
lua_load ~/conky/rings.lua
lua_load ~/conky/text.lua

lua_draw_hook_pre main_rings
lua_draw_hook_post draw_text

#at least one line (empty or not) after TEXT
TEXT

Le LUA rings

--[[ 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
    
To call the script in a conky, use, before TEXT
    lua_load /path/to/the/script/rings.lua
    lua_draw_hook_pre main_rings
and add one line (blank or not) after TEXT


Parameters are :
3 parameters are mandatory
name        - the name of the conky variable to display,
              for example for {$cpu cpu0}, just write name="cpu"
arg            - the argument of the above variable,
              for example for {$cpu cpu0}, just write arg="cpu0"
                arg can be a numerical value if name=""
max            - the maximum value the above variable can reach,
              for example for {$cpu cpu0}, just write max=100
    
Optional parameters:
xc,yc        - coordinates of the center of the ring,
              default = middle of the conky window
radius        - external radius of the ring, in pixels,
              default = quarter of the width of the conky window
thickness    - thickness of the ring, in pixels, default = 10 pixels
start_angle    - starting angle of the ring, in degrees, value can be negative,
              default = 0 degree
end_angle    - ending angle of the ring, in degrees,
              value must be greater than start_angle, default = 360 degrees
sectors        - number of sectors in the ring, default = 10
gap_sectors - gap between two sectors, in pixels, default = 1 pixel
cap            - the way to close a sector, available values are
                "p" for parallel , default value 
                "r" for radial (follow the radius)
inverse_arc    - if set to true, arc will be anticlockwise, default=false
border_size    - size of the border, in pixels, default = 0 pixel i.e. no border
fill_sector    - if set to true, each sector will be completely filled,
              default=false, this parameter is inoperate if sectors=1
background    - if set to false, background will not be drawn, default=true
foreground    - if set to false, foreground will not be drawn, default=true

Colours tables below are defined into braces :
{position in the gradient (0 to 1), colour in hexadecimal, alpha (0 to 1)}
example for a single colour table : 
{{0,0xFFAA00,1}} position parameter doesn't matter
example for a two-colours table : 
{{0,0xFFAA00,1},{1,0x00AA00,1}} or {{0.5,0xFFAA00,1},{1,0x00AA00,1}}
example for a three-colours table : 
{{0,0xFFAA00,1},{0.5,0xFF0000,1},{1,0x00AA00,1}}

bg_colour1    - colour table for background,
              default = {{0,0x00ffff,0.1},{0.5,0x00FFFF,0.5},{1,0x00FFFF,0.1}}
fg_colour1    - colour table for foreground,
              default = {{0,0x00FF00,0.1},{0.5,0x00FF00,1},{1,0x00FF00,0.1}}
bd_colour1    - colour table for border,
              default = {{0,0xFFFF00,0.5},{0.5,0xFFFF00,1},{1,0xFFFF00,0.5}}              

Seconds tables for radials gradients :
bg_colour2    - second colour table for background, default = no second colour
fg_colour2    - second colour table for foreground, default = no second colour
bd_colour2    - second colour table for border, default = no second colour

v1.0 (08 Aug. 2010) original release

]]


require 'cairo'
function conky_main_rings()
-- START PARAMETERS HERE
rings_settings={

    {
    --ring 2-1 :cpu0
    name="cpu",
    arg="cpu",
    max=100,
    xc=50,
    yc=50,
    radius=40,
    thickness=10,
    start_angle=-120,
    end_angle=120,
    sectors=20,
    gap_sectors=0,
    bg_colour1={{0,0xa23516,0},{0.5,0xa23516,1}, {1,0xa23516,0}},
    fg_colour1={{0,0XFFFF00,0},{0.5,0xFFFF00,1}, {1,0xFFFF00,0}},
    fg_colour2={{0,0XFF0000,0},{0.5,0xFF0000,1}, {1,0xFF0000,0}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },
    
    {
    --ring 2-2 :cpu1
    name="freq_g",
    arg="freq_g",
    max=3.4,
    xc=50,
    yc=50,
    radius=30,
    thickness=10,
    start_angle=-120,
    end_angle=120,
    sectors=20,
    gap_sectors=0,
    bg_colour1={{0,0xa23516,0},{0.5,0xa23516,1}, {1,0xa23516,0}},
    fg_colour1={{0,0XFFFF00,0},{0.5,0xFFFF00,1}, {1,0xFFFF00,0}},
    fg_colour2={{0,0XFF0000,0},{0.5,0xFF0000,1}, {1,0xFF0000,0}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },
    {
    --ring 3 : memory
    name="memperc",
    arg="",
    max=100,
    xc=150,
    yc=110,
    radius=40,
    thickness=10,
    start_angle=-120,
    end_angle=120,
    sectors=20,
    gap_sectors=0,
    bg_colour1={{0,0xa23516,0},{0.5,0xa23516,1}, {1,0xa23516,0}},
    fg_colour1={{0,0XFFFF00,0},{0.5,0xFFFF00,1}, {1,0xFFFF00,0}},
    fg_colour2={{0,0XFF0000,0},{0.5,0xFF0000,1}, {1,0xFF0000,0}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },

    {
    --ring 4-1 : file system usage for /home
    name="fs_used_perc",
    arg="/home",
    max=100,
    xc=230,
    yc=180,
    radius=40,
    thickness=10,
    start_angle=-120,
    end_angle=120,
    sectors=20,
    gap_sectors=0,
    bg_colour1={{0,0xa23516,0},{0.5,0xa23516,1}, {1,0xa23516,0}},
    fg_colour1={{0,0XFFFF00,0},{0.5,0xFFFF00,1}, {1,0xFFFF00,0}},
    fg_colour2={{0,0XFF0000,0},{0.5,0xFF0000,1}, {1,0xFF0000,0}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },    
    
    {
    --ring 4-2 : file system usage for /data partition
    name="fs_used_perc",
    arg="/",
    max=100,
    xc=230,
    yc=180,
    radius=30,
    thickness=10,
    start_angle=-120,
    end_angle=120,
    sectors=20,
    gap_sectors=0,
    bg_colour1={{0,0xa23516,0},{0.5,0xa23516,1}, {1,0xa23516,0}},
    fg_colour1={{0,0XFFFF00,0},{0.5,0xFFFF00,1}, {1,0xFFFF00,0}},
    fg_colour2={{0,0XFF0000,0},{0.5,0xFF0000,1}, {1,0xFF0000,0}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },
    {
    --ring 5-1 : temperature
    name="exec",
    arg="sensors | grep 'MB Temperature' | cut -c22-23",
    max=100,
    xc=265,
    yc=275,
    radius=40,
    thickness=10,
    start_angle=-120,
    end_angle=120,
    border_size=0,
    sectors=12,
    gap_sectors=0,
    bg_colour1={{0,0xa23516,0},{0.5,0xa23516,1}, {1,0xa23516,0}},
    fg_colour1={{0,0XffFF00,0},{0.5,0xffFF00,1}, {1,0xffFF00,0}},
    fg_colour2={{0,0XFF0000,0},{0.5,0xFF0000,1}, {1,0xFF0000,0}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },    
        
    {
    --ring 5-2 : fan speed
    name="exec",
    arg="sensors | grep 'Chassis FAN' | cut -c20-23",
    max=3000,
    xc=265,
    yc=275,
    radius=30,
    thickness=10,
    start_angle=-120,
    end_angle=120,
    sectors=12,
    gap_sectors=0,
    bg_colour1={{0,0xa23516,0},{0.5,0xa23516,1}, {1,0xa23516,0}},
    fg_colour1={{0,0XFFFF00,0},{0.5,0xFFFF00,1}, {1,0xFFFF00,0}},
    fg_colour2={{0,0XFF0000,0},{0.5,0xFF0000,1}, {1,0xFF0000,0}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },            

    {
    --ring 6-1 : cpu temp
    name="exec",
    arg="sensors | grep 'CPU Temp' | cut -c22-23",
    max=100,
    xc=295,
    yc=370,
    radius=40,
    thickness=10,
    start_angle=-120, 
    end_angle=120,
    sectors=12,
    gap_sectors=0,
    bg_colour1={{0,0xa23516,0},{0.5,0xa23516,1}, {1,0xa23516,0}},
    fg_colour1={{0,0XffFF00,0},{0.5,0xffFF00,1}, {1,0xffFF00,0}},
    fg_colour2={{0,0XFF0000,0},{0.5,0xFF0000,1}, {1,0xFF0000,0}},
    },    

    {
    --ring 6-2 : cpu fan
    name="exec",
    arg="sensors | grep 'CPU FAN' | cut -c20-23",
    max=3000,
    xc=295,
    yc=370,
    radius=30,
    thickness=10,
    start_angle=-120,       
    end_angle=120,
    sectors=12,
    gap_sectors=0,
    bg_colour1={{0,0xa23516,0},{0.5,0xa23516,1}, {1,0xa23516,0}},
    fg_colour1={{0,0XFFFF00,0},{0.5,0xFFFF00,1}, {1,0xFFFF00,0}},
    fg_colour2={{0,0XFF0000,0},{0.5,0xFF0000,1}, {1,0xFF0000,0}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },    

    {
    --ring 7 : gpu temp
    name="exec",
    arg="aticonfig --od-gettemperature | grep Temperature | cut -c42-46",
    max=100,
    xc=295,
    yc=475,
    radius=40,
    thickness=10,
    start_angle=-120,
    end_angle=120,
    sectors=20,
    gap_sectors=0,
    bg_colour1={{0,0xa23516,0},{0.5,0xa23516,1}, {1,0xa23516,0}},
    fg_colour1={{0,0XFFFF00,0},{0.5,0xFFFF00,1}, {1,0xFFFF00,0}},
    fg_colour2={{0,0XFF0000,0},{0.5,0xFF0000,1}, {1,0xFF0000,0}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },    

    {
    --right half ring 8 : download speed
    name="downspeedf",
    arg="eth0",
    max=2000,
    xc=295,
    yc=580,
    radius=40,
    thickness=10,
    start_angle=1,
    end_angle=179,
    sectors=30,
    fill_sector=true,
    gap_sectors=0,
    bg_colour1={{0,0xa23516,0},{0.5,0xa23516,1}, {1,0xa23516,0}},
    --bg_colour2={{0,0X999999,1},{0.5,0x999999,1}, {1,0x111111,1}},
    fg_colour1={{0,0XFF4500,1},{0.5,0xFF4500,1}, {1,0xFFFFFF,1}},
    fg_colour2={{0,0XFFFFFF,1},{0.5,0xFFFFFF,1}, {1,0xFF4500,1}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },
    
    {
    --left half ring 9 : upload speed
    name="upspeedf",
    arg="eth0",
    max=100,
    xc=295,
    yc=580,
    radius=40,
    thickness=10,
    start_angle=359,
    end_angle=181,
    inverse_arc=true,
    sectors=30,
    fill_sector=true,
    gap_sectors=0,
    bg_colour1={{0,0xa23516,0},{0.5,0xa23516,1}, {1,0xa23516,0}},
    --bg_colour2={{0,0X999999,1},{0.5,0x999999,1}, {1,0x111111,1}},
    fg_colour1={{0,0xFFC125,1},{0.5,0xFFC125,1}, {1,0xFFFFFF,1}},
    fg_colour2={{0,0XFFFFFF,1},{0.5,0xFFFFFF,1}, {1,0xFFC125,1}},
    bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
    },
                        
}
--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

Le LUA Text

--[[TEXT WIDGET v1.3 by Wlourf 25/06/2010
This widget can drawn texts set in the "text_settings" table with some parameters
http://u-scripts.blogspot.com/2010/06/text-widget.html

The parameters (all optionals) are :
text        - text to display, default = "Conky is good for you"
              use conky_parse to display conky value ie text=conly_parse("${cpu cpu1}")
            - coordinates below are relative to top left corner of the conky window
x           - x coordinate of first letter (bottom-left), default = center of conky window
y           - y coordinate of first letter (bottom-left), default = center of conky window
h_align        - horizontal alignement of text relative to point (x,y), default="l"
              available values are "l": left, "c" : center, "r" : right
v_align        - vertical alignment of text relative to point (x,y), default="b"
              available values "t" : top, "m" : middle, "b" : bottom
font_name   - name of font to use, default = Free Sans
font_size   - size of font to use, default = 14
italic      - display text in italic (true/false), default=false
oblique     - display text in oblique (true/false), default=false (I don' see the difference with italic!)
bold        - display text in bold (true/false), default=false
angle       - rotation of text in degrees, default = 0 (horizontal)
colour      - table of colours for text, default = plain white {{1,0xFFFFFF,1}}
              this table contains one or more tables with format {P,C,A}
              P=position of gradient (0 = beginning of text, 1= end of text)
              C=hexadecimal colour 
              A=alpha (opacity) of color (0=invisible,1=opacity 100%)
              Examples :
              for a plain color {{1,0x00FF00,0.5}}
              for a gradient with two colours {{0,0x00FF00,0.5},{1,0x000033,1}}
              or {{0.5,0x00FF00,1},{1,0x000033,1}} -with this one, gradient will start in the middle of the text
              for a gradient with three colours {{0,0x00FF00,0.5},{0.5,0x000033,1},{1,0x440033,1}}
              and so on ...
orientation    - in case of gradient, "orientation" defines the starting point of the gradient, default="ww"
              there are 8 available starting points : "nw","nn","ne","ee","se","ss","sw","ww"
              (n for north, w for west ...)
              theses 8 points are the 4 corners + the 4 middles of text's outline
              so a gradient "nn" will go from "nn" to "ss" (top to bottom, parallele to text)
              a gradient "nw" will go from "nw" to "se" (left-top corner to right-bottom corner)
radial        - define a radial gradient (if present at the same time as "orientation", "orientation" will have no effect)
              this parameter is a table with 6 numbers : {xa,ya,ra,xb,yb,rb}
              they define two circle for the gradient :
              xa, ya, xb and yb are relative to x and y values above
reflection_alpha    - add a reflection effect (values from 0 to 1) default = 0 = no reflection
                      other values = starting opacity
reflection_scale    - scale of the reflection (default = 1 = height of text)
reflection_length   - length of reflection, define where the opacity will be set to zero
                      calues from 0 to 1, default =1
skew_x,skew_y    - skew text around x or y axis
              

Needs conky 1.8.0 

To call this script in the conkyrc, in before-TEXT section:
    lua_load /path/to/the/lua/script/text.lua
    lua_draw_hook_pre draw_text
 
v1.0    07/06/2010, Original release
v1.1    10/06/2010    Add "orientation" parameter
v1.2    15/06/2010  Add "h_align", "v_align" and "radial" parameters
v1.3    25/06/2010  Add "reflection_alpha", "reflection_length", "reflection_scale", 
                    "skew_x" et "skew_y"


]]
require 'cairo'

function conky_draw_text()
    --BEGIN OF PARAMETRES
    text_settings={

        {
            text=conky_parse("${cpu cpu0} - ${cpu cpu1} - ${cpu cpu2} - ${cpu cpu3} %"),
            font_name="arial",
            font_size=12,
            h_align="c",
            bold=true,
            x=55,
            y=82,
            colour={{0,0Xab8f0b,0.5},{0.5,0xab8f0b,1}, {1,0xab8f0b,0.5}},
        },

        {
            text=conky_parse("${freq_g} GHz "),
            font_name="arial",
            font_size=12,
            h_align="c",
            bold=true,
            x=55,
            y=95,
            colour={{0,0Xab8f0b,0.5},{0.5,0xab8f0b,1}, {1,0xab8f0b,0.5}},
        },
        
        {
            text=conky_parse("${memperc}%"),
            font_name="arial",
            font_size=12,
            h_align="c",
            bold=true,
            x=150,
            y=140,
            colour={{0,0Xab8f0b,0.5},{0.5,0xab8f0b,1}, {1,0xab8f0b,0.5}},
        },

        {
            text=conky_parse("${fs_used_perc /home}% - ${fs_used_perc /}%"),
            font_name="arial",
            font_size=12,
            h_align="c",
            bold=true,
            x=230,
            y=215,
            colour={{0,0Xab8f0b,0.5},{0.5,0xab8f0b,1}, {1,0xab8f0b,0.5}},
        },                

        {
            text=conky_parse("${exec sensors | grep 'MB Temperature' | cut -c22-23}°C - ${exec sensors | grep 'Chassis FAN' | cut -c20-23} rpm"),
            font_name="arial",
            font_size=12,
            h_align="c",
            bold=true,
            x=265,
            y=310,
            colour={{0,0Xab8f0b,0.5},{0.5,0xab8f0b,1}, {1,0xab8f0b,0.5}},
        },
                                
        {
            text=conky_parse("${exec sensors | grep 'CPU Temp' | cut -c22-23}°C - ${exec sensors | grep 'CPU FAN' | cut -c20-23} rpm"),
            font_name="arial",
            font_size=12,
            h_align="c",
            bold=true,
            x=295,
            y=405,
            colour={{0,0Xab8f0b,0.5},{0.5,0xab8f0b,1}, {1,0xab8f0b,0.5}},
        },

        {
            text=conky_parse("${execi 60 aticonfig --od-gettemperature | grep Temperature | cut -c42-46}°C"),
            font_name="arial",
            font_size=12,
            h_align="c",
            bold=true,
            x=295,
            y=510,
            colour={{0,0Xab8f0b,0.5},{0.5,0xab8f0b,1}, {1,0xab8f0b,0.5}},
        },
--[[                
        
        {
            text=conky_parse("${exec dcop amarok player artist}"),
            font_name="arial",
            font_size=10,
            h_align="c",
            bold=true,
            x=850,
            y=150,
            colour={{0,0X999999,0.5},{0.5,0x999999,1}, {1,0x999999,0.5}},
        },            
        {
            text=conky_parse("${exec dcop amarok player title}"),
            font_name="arial",
            font_size=10,
            h_align="c",
            x=850,
            y=160,
            colour={{0,0X999999,0.5},{0.5,0x999999,1}, {1,0x999999,0.5}},
        },            
]]        
    }
    
 
           
    
    
--------------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

Et voilà, à+


Baby we were born to run.....

Hors ligne

#1063 Le 09/10/2011, à 19:55

Phyllinux

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Petite question aux spécialistes de scripts Perl :

J'ai trouvé un script qui me permet de télécharger une image satellite de l'Europe de l'Ouest, afin de l'intégrer dans mon conky Météo.
Sur le site où sera téléchargée la photo (actualisée toutes les 3 heures), il y a le choix entre 'couleurs naturelles', 'infra rouge'...).
J'ai choisi un photo infra rouge pour que cela soit parlant ci dessous, vu qu'il fait nuit actuellement wink
Conky Météo

Voici le script :

#!/usr/bin/perl -w

use strict;
use warnings;

use constant VERSION => 0.03;

if(scalar @ARGV != 4) {
   &help;
}

my $image_web;
my $dimensions;

# Détermination des arguments
for(my $i = 0; $i < scalar @ARGV; $i +=2) {
   if($ARGV[$i] eq "-s") {
      $dimensions = $ARGV[$i + 1];
   }
   elsif($ARGV[$i] eq "-i") {
      $image_web = $ARGV[$i + 1];
   }
   else {
      print STDERR "Argument $ARGV[$i] inconnu\n";
      &help;
   }
}

# Détermination du nom de l'image
my @decoupage = split "/", $image_web;
my $image_sat = $decoupage[$#decoupage];

# On regarde si le fichier existe déjà
if(-e $image_sat) {
   # Récupération des informations de l'image
   my @infos_ancienne_image = (stat($image_sat))[7..10];

   # Téléchargement de l'image si besoin
   &telecharger($image_web, "-m -nd");
   
   # Récupération des informations de l'image
   my @infos_nouvelle_image = (stat($image_sat))[7..10];

   # Comparaison des informations pour déterminer si on a téléchargé une image
   my $comparaison = 0;
   for(my $i = 0; $i < scalar @infos_ancienne_image; $i++) {
      if($infos_ancienne_image[$i] != $infos_nouvelle_image[$i]) {
         $comparaison++;
         last;
      }
   }

   # Si l'image est nouvelle, il faut refaire un découpage
   if($comparaison) {
      &nouvelle_image($image_sat, $dimensions);
   }
}
else {
   &telecharger($image_web, "");
   &nouvelle_image($image_sat, $dimensions);
}

#######################
# Début des fonctions #
#######################

sub help {
   print "Utilisation : $0 [arguments]\n"
      . "arguments :\n"
      . "  -i : Permet d'indiquer l'emplacement où se trouve l'image\n"
      . "  -s : Permet d'indiquer le découpage de l'image\n";
   exit(0);
}

sub nouvelle_image {
   my ($image, $decoupage) = @_;

   # Sauvegarde de l'image actuelle
   system("cp $image imagesattmp.jpg");
   # Découpage de l'image
   system("convert imagesattmp.jpg -crop $decoupage image.jpg");
   # Suppression de l'image temporaire
   unlink "imagesattmp.jpg";
}
sub telecharger {
   my ($emplacement, $options) = @_;

   system("wget -q $options $emplacement");
}

__END__

=encoding utf8

=head1 Nom

Imagesat

=head1 SYNOPSIS

Il permet de télécharger et réduire une image

=head1 DESCRIPTION

Ce script Perl permet de télécharger une image, de la redimensionner pour ensuite l'afficher dans conky. Le script prend B<obligatoirement> deux paramètres à savoir l'emplacement de l'image à
télécharger ainsi que les dimensions de la future image.
Les différentes images (en fonction de vos envies) où vous pouvez trouver votre bonheur se trouvent ici :
L<http://oiswww.eumetsat.org/IPPS/html/latestImages.html>

=head1 AUTEUR

Chipster Julien

=head1 Programmes externes

Pour fonctionner, ce script a besoin de deux logiciels :

=over 4

=item wget

=item imagemagick

=back

=head1 UTILISATION

Ce script s'utilise comme ceci :

C<${exec perl Imagesat} [arguments]>

Si vous avez fait un chmod +x Imagesat :

C<${exec ./Imagesat} [arguments]>

[arguments] doit être défini comme ceci :

=over 4

=item -i http://......../mon_image.jpg

=item -s 200x200+0+0

=back

=head2 Exemple

C<${exec perl Imagesat -s 1274x657+0+110 -i http://oiswww.eumetsat.org/IPPS/html/latestImages/EUMETSAT_MSG_RGB-naturalcolor-westernEurope.jpg}>

Allez, je suis sympa, voici comment ça s'utilise dans conky après la balise TEXT
${exec perl /home/user/.conky/Imagesat -s 1274x657+0+110 -i http://oiswww.eumetsat.org/IPPS/html/latestImages/EUMETSAT_MSG_RGB-naturalcolor-westernEurope.jpg}${image /home/user/.conky/image.jpg -p -5,-5 -s 400x220}

=head1 BOGUES

Aucun connu actuellement

=head1 Évolutions

=head1 Changelog

=item1 Rajout de l'option -q à wget. Il était trop bavard :D Ceci avait tendance à faire boguer gnome

=over 4

=item 30/08/2009

Création du script

=item Big Bang

Création de l'univers connu :D

=back

Or, je ne vois pas dans ce script où il est indiqué à quel endroit enregistrer l'image satellite une fois qu'elle a été redimensionnée.
Le problème est que ces images (celle téléchargée ainsi que celle redimensionnée) se retrouvent sur le bureau.
Je souhaiterais pouvoir les enregistrer ailleurs. Car, une fois que je referme mon conky (qui est lancé par un script Nautilus), je me retrouve avec ces images sur le bureau, et que je dois les détruire 'à la main' en les mettant à la poubelle.

J'ai du adapter mon conkyrc pour lui indiquer le bon chemin pour afficher l'image. Si je peux l'enregistrer ailleurs, pas de problème pour changer le chemin.

Mon conkyrc :

background yes                # pour que conky tourne en arriere plan "no" pour les tests
own_window yes                # utiliser sa propre fenetre
own_window_transparent yes        # transparence
own_window_type override # yes        # type de fenetre normal "override / desktop"

own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
own_window_colour black

double_buffer yes            # pour eviter le clignotement
use_spacer left                # ? fonctionne uniquement avec la police Monospace
override_utf8_locale yes        # dépassement caractères accentués
use_xft yes                # utilise les polices lissées
font DejaVu Sans Mono:bold:size=9    # police et taille a utiliser
xftfont DejaVu Sans Mono:bold:size=9    # police et taille a utiliser
xftalpha 0.5                #
update_interval 4#5.1            # taux de raffraichissement de la fenetre en secondes
uppercase no                 # majuscule
stippled_borders 2#0             # longueur d'un trait en pixels
border_inner_margin 6 #2            # largeur des marges
border_width 1 #2            # largeur du contour
default_outline_color black        # couleur par defaut du contour
default_shade_color black        # couleur par defaut de l'ombre
draw_borders no                # afficher les contours autour des blocs de texte
draw_outline no#yes             # afficher les contours texte
draw_shades yes             # afficher les ombres
default_color DCDCDC             # couleur par défaut du texte
# ********      couleurs ci-dessous utilisées dans le script
color0 FF000C            # définition des couleurs "0 - 1 - 2 -3 - ect..
color1 708094            #
color2 E7E1D6            #
color3 ffcb48            #
color4 0000fa            #
color5 ff0000            #
#7FFFD4 #Aquamarine
#CD5C5C #IndianRed #00CED1 DarkTurquoise #FFA07A LightSalmon #00FFFF Cyan 
#FF8C00 #Darkorange #D2691E #Chocolate
#7FFF00 #Chartreuse
#778899 #LightSlateGrey
#FFDEAD #NavajoWhite
color6 00BFFF #DeepSkyBlue        
color7 48D1CC #MediumTurquoise
color8 FFFF00 #Yellow
color9 FF0000 #Red
# *******
minimum_size 200       # taille mini
maximum_width 430        # largeur maxi
alignment top_left  # Position sur l'écran : top_left (haut gauche), top_right (haut droit), bottom_left (bas gauche), bottom_right (bas droit)
gap_x 20                # ecart avec le bord gauche ou droit
gap_y 40#130            # ecart avec le bord haut ou bas

text_buffer_size 2500#1536#6144     # Augmente la taille de la mémoire tampon de 128k a 1024k
no_buffers yes             # soustraire la mémoire tampon de la mémoire utiliser
short_units yes
pad_percents 2            # commande à conky de n'afficher pour les pourcentages que 2 chiffres après la virgule (ou le point)

imlib_cache_size 4   # Taille du cache image pour Imlib2, en bytes. Defini à 4MiB par défaut. Augmentez la valeur si vous utilisez souvent $image

TEXT
${execpi 1800 conkyForecast --location=FRXX3327 --template=/home/gilles/scripts/Météo/meteo-4.jours}
${exec perl /home/gilles/scripts/Météo/imagesat.pl -s 1274x657+0+110 -i http://oiswww.eumetsat.org/IPPS/html/latestImages/EUMETSAT_MSG_RGB-naturalcolor-westernEurope.jpg}${image /home/gilles/Bureau/image.jpg -p -5,480 -s 440x235}

Merci de votre aide.


The ship is sinking normally...

Hors ligne

#1064 Le 09/10/2011, à 20:00

willcoyote

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

@ Phyllinux
La solution s'intéresse aussi car j'ai le même problème que toi

Je n'ai pas trouvé comment mettre l'image téléchargée ailleurs que sur mon /home

Un autre soucis : l'image sur mon conky ne se reactualise pas

Hors ligne

#1065 Le 09/10/2011, à 20:15

Didier-T

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Bonsoir Phyllinux,

à la ligne :

system("convert imagesattmp.jpg -crop $decoupage image.jpg")

Je tenterais d'indiquer la destination avec le image.jpg
par exemple sa pourrais donner ceci :

system("convert imagesattmp.jpg -crop $decoupage ~/.conky/satelite/image.jpg")

Avec un peut de chance.
A+

Hors ligne

#1066 Le 09/10/2011, à 20:38

willcoyote

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Didier-T a écrit :

Bonsoir Phyllinux,

à la ligne :

system("convert imagesattmp.jpg -crop $decoupage image.jpg")

Je tenterais d'indiquer la destination avec le image.jpg
par exemple sa pourrais donner ceci :

system("convert imagesattmp.jpg -crop $decoupage ~/.conky/satelite/image.jpg")

Avec un peut de chance.
A+

Puisque j'utilise le même script, je vais repondre a Didier-T
La manip fonctionne bien seulement il y a 2 images: celle téléchargée et celle renommée "image.jpg"

"image.jpg" va bien dans le dossier voulu mais l'image téléchargée reste sur le home

Hors ligne

#1067 Le 10/10/2011, à 06:08

Didier-T

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Bonjour,

#!/usr/bin/perl -w

use strict;
use warnings;

use constant VERSION => 0.03;

if(scalar @ARGV != 4) {
   &help;
}

my $image_web;
my $dimensions;

# Détermination des arguments
for(my $i = 0; $i < scalar @ARGV; $i +=2) {
   if($ARGV[$i] eq "-s") {
      $dimensions = $ARGV[$i + 1];
   }
   elsif($ARGV[$i] eq "-i") {
      $image_web = $ARGV[$i + 1];
   }
   else {
      print STDERR "Argument $ARGV[$i] inconnu\n";
      &help;
   }
}

# Détermination du nom de l'image
my @decoupage = split "/", $image_web;
my $image_sat = $decoupage[$#decoupage];

# détermination du répertoire de travail
my $repertoire = "~/.conky/satelite/"

# On regarde si le fichier existe déjà
if(-e $repertoire$image_sat) {
   # Récupération des informations de l'image
   my @infos_ancienne_image = (stat($repertoire.$image_sat))[7..10];

   # Téléchargement de l'image si besoin
   &telecharger($image_web, "-m -nd", $repertoire.$image_sat);
   
   # Récupération des informations de l'image
   my @infos_nouvelle_image = (stat($repertoire.$image_sat))[7..10];

   # Comparaison des informations pour déterminer si on a téléchargé une image
   my $comparaison = 0;
   for(my $i = 0; $i < scalar @infos_ancienne_image; $i++) {
      if($infos_ancienne_image[$i] != $infos_nouvelle_image[$i]) {
         $comparaison++;
         last;
      }
   }

   # Si l'image est nouvelle, il faut refaire un découpage
   if($comparaison) {
      &nouvelle_image($repertoire.$image_sat, $dimensions, $repertoire);
   }
}
else {
   &telecharger($image_web, "", $repertoire.$image_sat);
   &nouvelle_image($repertoire.$image_sat, $dimensions);
}

#######################
# Début des fonctions #
#######################

sub help {
   print "Utilisation : $0 [arguments]\n"
      . "arguments :\n"
      . "  -i : Permet d'indiquer l'emplacement où se trouve l'image\n"
      . "  -s : Permet d'indiquer le découpage de l'image\n";
   exit(0);
}

sub nouvelle_image {
   my ($image, $decoupage, $rep) = @_;

   # Sauvegarde de l'image actuelle
   system("cp $image "$rep"imagesattmp.jpg");
   # Découpage de l'image
   system("convert imagesattmp.jpg -crop $decoupage "$rep"image.jpg");
   # Suppression de l'image temporaire
   unlink "imagesattmp.jpg";
}
sub telecharger {
   my ($emplacement, $options, $nom) = @_;

   system("wget -q $options $emplacement" $nom);
}

__END__

=encoding utf8

=head1 Nom

Imagesat

=head1 SYNOPSIS

Il permet de télécharger et réduire une image

=head1 DESCRIPTION

Ce script Perl permet de télécharger une image, de la redimensionner pour ensuite l'afficher dans conky. Le script prend B<obligatoirement> deux paramètres à savoir l'emplacement de l'image à
télécharger ainsi que les dimensions de la future image.
Les différentes images (en fonction de vos envies) où vous pouvez trouver votre bonheur se trouvent ici :
L<http://oiswww.eumetsat.org/IPPS/html/latestImages.html>

=head1 AUTEUR

Chipster Julien

=head1 Programmes externes

Pour fonctionner, ce script a besoin de deux logiciels :

=over 4

=item wget

=item imagemagick

=back

=head1 UTILISATION

Ce script s'utilise comme ceci :

C<${exec perl Imagesat} [arguments]>

Si vous avez fait un chmod +x Imagesat :

C<${exec ./Imagesat} [arguments]>

[arguments] doit être défini comme ceci :

=over 4

=item -i http://......../mon_image.jpg

=item -s 200x200+0+0

=back

=head2 Exemple

C<${exec perl Imagesat -s 1274x657+0+110 -i http://oiswww.eumetsat.org/IPPS/html/latestImages/EUMETSAT_MSG_RGB-naturalcolor-westernEurope.jpg}>

Allez, je suis sympa, voici comment ça s'utilise dans conky après la balise TEXT
${exec perl /home/user/.conky/Imagesat -s 1274x657+0+110 -i http://oiswww.eumetsat.org/IPPS/html/latestImages/EUMETSAT_MSG_RGB-naturalcolor-westernEurope.jpg}${image /home/user/.conky/image.jpg -p -5,-5 -s 400x220}

=head1 BOGUES

Aucun connu actuellement

=head1 Évolutions

=head1 Changelog

=item1 Rajout de l'option -q à wget. Il était trop bavard :D Ceci avait tendance à faire boguer gnome

=over 4

=item 30/08/2009

Création du script

=item Big Bang

Création de l'univers connu :D

=back

Il y a certainement des boulettes, je connais rien au langage Perl big_smile

Hors ligne

#1068 Le 10/10/2011, à 16:17

S2S

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Bonjours,
je vient d'installer gnome-shell (pour cause d'utity)  (oneiric)
et j'ai un petit probleme avec conky...un décalage d'une 30ene de pixel du font d’écran.
je n'ai mit que le minimum (kernel) pour les test:
mini_511346pblmconky.jpg
(voyer la coupure vertical ~au 1er quart à gauche)

savez vous d'ou cela peut venir ?
config: ubuntu 11.10, conky(all) et gnome-shell du dépôt ubuntu.
rc:

total_run_times 0
out_to_console no
double_buffer yes
no_buffers yes
text_buffer_size 2048
update_interval 1
cpu_avg_samples 4
net_avg_samples 2
alignment top_right
minimum_size 256 400
maximum_width 256
gap_x 10
gap_y 300
draw_shades no
draw_outline no
draw_borders no
border_width 1
border_margin 4
background yes
own_window yes
own_window_type normal # normal / override / desktop
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
use_xft yes
xftalpha .1
override_utf8_locale yes 
xftfont Fixed:size=7
uppercase no
use_spacer right
default_color DC1E20

TEXT
${GOTO 36}Kernel:${GOTO 120}${kernel}

portable: Toshiba Qosmio x500 12Q
fixe: P5N72-T Premium//Core2Quad-Q9550//7950GT//2048DDR2
OS: 10.04 - 10.10 - 11.04, 7
... qui croit tout savoir, n'en saura jamais plus ...

Hors ligne

#1069 Le 10/10/2011, à 16:25

Phyllinux

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

En ce qui me concerne, vu que l'image originale est effectivement affichée sur le bureau, j'ai choisi l'option de laisser les 2 (originale et retaillée) sur le bureau. De la sorte c'est plus facile pour les mettre à la poubelle lorsque je ferme le conky smile
Mais cela ne règle pas pour le moment mon problème de répertoire...
Personne n'a une autre idée ou des connaissances en PERL ?
De plus, je ne vois nulle part dans le script où il est indiqué comment recouper l'image originale.
Pour info : L'image téléchargée est de 1273 X 892, et une fois retaillée, elle fait 1273 X 657. La découpe consiste à supprimer essentiellement une grande bande sur le haut, ainsi qu'une plus petite sur le bas de l'image. Or je souhaiterais pouvoir définir moi même la découpe en supprimant également une partie sur la gauche, car la couverture nuageuse en plein milieu de l'Atlantique, je m'en moque un peu.

Pour Wilicoyotte : En ce qui concerne le rafraîchissement de ton image, as tu essayé avec un 'execpi 3600' dans ton conkyrc ? Cela ne sert à rien d'avoir une actualisation plus fréquente, car je ne crois pas qu'il y ait d'édition de carte satellite plus souvent, y compris sur le site de Météo France ou Weather Channel où je vais parfois chercher mon image sat à cette adresse :
Image Sat France
A priori, cela devrait permettre d'actualiser, en relançant le script toutes les heures.
Perso, je ne sais pas si mes photos s'actualisent, car je ne laisse pas assez longtemps le conky ouvert.
J'en ai plusieurs qui se plaquent du même côté, que je lance par un script Nautilus, en fonction de mes besoins (Météo complète, Bourse complète, Horloge + Météo réduite + Bourse réduite, Système...)


The ship is sinking normally...

Hors ligne

#1070 Le 10/10/2011, à 16:37

willcoyote

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Pour le téléchargement de l'image, j'ai directement posé la question a la personne qui a ecrit le script
je te tiens au courant dés que j'ai une réponse

Pour ce qui est du rafraîchissement de l'image, l'image téléchargée se met bien a jour, c'est l'image affichée sur mon conky qui ne se reactualise pas
quelque soit la valeur que je met a  update_interval

J'essaie ta solution

Hors ligne

#1071 Le 10/10/2011, à 19:00

Didier-T

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Didier-T a écrit :

Bonjour,

#!/usr/bin/perl -w

use strict;
use warnings;

use constant VERSION => 0.03;

if(scalar @ARGV != 4) {
   &help;
}

my $image_web;
my $dimensions;

# Détermination des arguments
for(my $i = 0; $i < scalar @ARGV; $i +=2) {
   if($ARGV[$i] eq "-s") {
      $dimensions = $ARGV[$i + 1];
   }
   elsif($ARGV[$i] eq "-i") {
      $image_web = $ARGV[$i + 1];
   }
   else {
      print STDERR "Argument $ARGV[$i] inconnu\n";
      &help;
   }
}

# Détermination du nom de l'image
my @decoupage = split "/", $image_web;
my $image_sat = $decoupage[$#decoupage];

# détermination du répertoire de travail
my $repertoire = "~/.conky/satelite/"

# On regarde si le fichier existe déjà
if(-e $repertoire$image_sat) {
   # Récupération des informations de l'image
   my @infos_ancienne_image = (stat($repertoire.$image_sat))[7..10];

   # Téléchargement de l'image si besoin
   &telecharger($image_web, "-m -nd", $repertoire.$image_sat);
   
   # Récupération des informations de l'image
   my @infos_nouvelle_image = (stat($repertoire.$image_sat))[7..10];

   # Comparaison des informations pour déterminer si on a téléchargé une image
   my $comparaison = 0;
   for(my $i = 0; $i < scalar @infos_ancienne_image; $i++) {
      if($infos_ancienne_image[$i] != $infos_nouvelle_image[$i]) {
         $comparaison++;
         last;
      }
   }

   # Si l'image est nouvelle, il faut refaire un découpage
   if($comparaison) {
      &nouvelle_image($repertoire.$image_sat, $dimensions, $repertoire);
   }
}
else {
   &telecharger($image_web, "", $repertoire.$image_sat);
   &nouvelle_image($repertoire.$image_sat, $dimensions);
}

#######################
# Début des fonctions #
#######################

sub help {
   print "Utilisation : $0 [arguments]\n"
      . "arguments :\n"
      . "  -i : Permet d'indiquer l'emplacement où se trouve l'image\n"
      . "  -s : Permet d'indiquer le découpage de l'image\n";
   exit(0);
}

sub nouvelle_image {
   my ($image, $decoupage, $rep) = @_;

   # Sauvegarde de l'image actuelle
   system("cp $image "$rep"imagesattmp.jpg");
   # Découpage de l'image
   system("convert imagesattmp.jpg -crop $decoupage "$rep"image.jpg");
   # Suppression de l'image temporaire
   unlink "imagesattmp.jpg";
}
sub telecharger {
   my ($emplacement, $options, $nom) = @_;

   system("wget -q $options $emplacement" $nom);
}

__END__

=encoding utf8

=head1 Nom

Imagesat

=head1 SYNOPSIS

Il permet de télécharger et réduire une image

=head1 DESCRIPTION

Ce script Perl permet de télécharger une image, de la redimensionner pour ensuite l'afficher dans conky. Le script prend B<obligatoirement> deux paramètres à savoir l'emplacement de l'image à
télécharger ainsi que les dimensions de la future image.
Les différentes images (en fonction de vos envies) où vous pouvez trouver votre bonheur se trouvent ici :
L<http://oiswww.eumetsat.org/IPPS/html/latestImages.html>

=head1 AUTEUR

Chipster Julien

=head1 Programmes externes

Pour fonctionner, ce script a besoin de deux logiciels :

=over 4

=item wget

=item imagemagick

=back

=head1 UTILISATION

Ce script s'utilise comme ceci :

C<${exec perl Imagesat} [arguments]>

Si vous avez fait un chmod +x Imagesat :

C<${exec ./Imagesat} [arguments]>

[arguments] doit être défini comme ceci :

=over 4

=item -i http://......../mon_image.jpg

=item -s 200x200+0+0

=back

=head2 Exemple

C<${exec perl Imagesat -s 1274x657+0+110 -i http://oiswww.eumetsat.org/IPPS/html/latestImages/EUMETSAT_MSG_RGB-naturalcolor-westernEurope.jpg}>

Allez, je suis sympa, voici comment ça s'utilise dans conky après la balise TEXT
${exec perl /home/user/.conky/Imagesat -s 1274x657+0+110 -i http://oiswww.eumetsat.org/IPPS/html/latestImages/EUMETSAT_MSG_RGB-naturalcolor-westernEurope.jpg}${image /home/user/.conky/image.jpg -p -5,-5 -s 400x220}

=head1 BOGUES

Aucun connu actuellement

=head1 Évolutions

=head1 Changelog

=item1 Rajout de l'option -q à wget. Il était trop bavard :D Ceci avait tendance à faire boguer gnome

=over 4

=item 30/08/2009

Création du script

=item Big Bang

Création de l'univers connu :D

=back

Il y a certainement des boulettes, je connais rien au langage Perl big_smile

J'aurais du vous dire que le programme est un peut modifier, j'ai ajouter ceci au début et modifier quelques lignes par la suite :

# détermination du répertoire de travail
my $repertoire = "~/.conky/satelite/"

et dite moi ce serais pas plus simple d'utiliser ce code ci :

#! /bin/bash
cd /home/utilisateur/.conky/image/

# Telechargement (uniquement si image plus recente)
wget -m -nd http://oiswww.eumetsat.org/IPPS/html/latestImages/EUMETSAT_MSG_VIS006EColor-westernEurope.jpg
# Copie de l image
cp EUMETSAT_MSG_VIS006EColor-westernEurope.jpg /home/mpatout/.conky/images/imagesattmp.jpg

# Ajustement de l image : reduction recadrage et suppression de la bande inférieure
convert imagesattmp.jpg -resize 64% imagesattmp2.jpg
convert imagesattmp2.jpg -crop 395x200+0+50-10 image.jpg
exit

ce code viens de cette adresse Conky exemple

Dernière modification par Didier-T (Le 10/10/2011, à 19:33)

Hors ligne

#1072 Le 10/10/2011, à 20:48

Didier-T

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Bonjour S2S,

Pour ton souci tu pourrais tenter ceci :

  • changer ton type de fenetre

    own_window_type override
  • supprimer la ligne

    own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

si sa ne suffi pas le problème est sûrement lier à un lancement trop rapide de ton conky augmente le sleep avant son exécution dans ton script de démarrage.

Bon courage

Hors ligne

#1073 Le 10/10/2011, à 21:34

S2S

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

sad
Alors, si j’enlève les options own_window_hints, il disparaît derrière le wallpaper.
override over ride tellement que rien ne s'affiche (rien n'est visible en tous cas)

Une piste pourtant, je l'ai vue au reboot.
Ce n'est pas que conky décale l'image, c'est gnome-shell qui decale le wallpaper de l’épaisseur du panel.
Y a t'il des options pour le décalage de la capture dans conky ?


portable: Toshiba Qosmio x500 12Q
fixe: P5N72-T Premium//Core2Quad-Q9550//7950GT//2048DDR2
OS: 10.04 - 10.10 - 11.04, 7
... qui croit tout savoir, n'en saura jamais plus ...

Hors ligne

#1074 Le 11/10/2011, à 04:40

Didier-T

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

dis mois, a tu essayé de le lancer en mode console pour voir si il y avait des messages d'erreurs ?

Hors ligne

#1075 Le 11/10/2011, à 07:32

Phyllinux

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

@ Didier-T :
Merci pour le script, je vais essayer. D'autant plus que cela répond en partie à ma question sur la manière de redimensionner l'image et de la découper.

@Wilicoyote :
Mon script actuel, tel qu'il est lancé dans mon conkyrc actualise l'affichage de la carte satellite dans le conky. J'ai laissé tourné pour vérifier, et j'ai vu s'afficher automatiquement la photo satellite actualisée avec un décalage de 2H par rapport à sa prise de vue. En revanche, je ne pourrai pas dire quelle est la périodicité d'actualisation, car je ne suis pas resté scotché à l'écran pour voir le rythme lol


The ship is sinking normally...

Hors ligne