#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
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
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.
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 :
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 , 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.....?
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à :
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
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.
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 !
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
Edit : @spinoziste: euh.... tu voulais peut-être le conky de droite.....?
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
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
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
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:
(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
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
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
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
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
The ship is sinking normally...
Hors ligne