Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

#301 Le 29/05/2013, à 18:03

6-ril

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

Vaykadji a écrit :

Un conky basique :

Salut à tous !
J'ai utilisé le conky basic de Vaykadji, mais mon conky s'affiche sur fond noir, il n'est pas transparent.
Est-ce un bug ou une option à ajouter ?

D'autre part, comment peut-t-on choisir l'écran sur lequel l'afficher?

Merci
6ril
Ubuntu 13.04

Hors ligne

#302 Le 30/05/2013, à 07:20

Didier-T

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

@ ragamatrix,

le script qui posait problème est corrigé.

doublerings.lua

 -- 2011 changed by LaGaDesk


settings_table = {
	{
		-- Edit this table to customise your rings.
		-- You can create more rings simply by adding more elements to settings_table.
		-- "name" is the type of stat to display; you can choose from 'cpu', 'memperc', 'fs_used_perc', 'battery_used_perc'.
		name='time',
		-- "arg" is the argument to the stat type, e.g. if in Conky you would write ${cpu cpu0}, 'cpu0' would be the argument. If you would not use an argument in the Conky variable, use ''.
		arg='%I.%M',
		-- "max" is the maximum value of the ring. If the Conky variable outputs a percentage, use 100.
		max=12,
		-- "bg_colour" is the colour of the base ring.
		bg_colour=0xFFFFFF,
		-- "bg_alpha" is the alpha value of the base ring.
		bg_alpha=0.1,
		-- "fg_colour" is the colour of the indicator part of the ring.
		fg_colour=0x6948FF,
		-- "fg_alpha" is the alpha value of the indicator part of the ring.
		fg_alpha=0.75,
		-- "x" and "y" are the x and y coordinates of the centre of the ring, relative to the top left corner of the Conky window.
		x=1180, y=35,
		-- "radius" is the radius of the ring.
		radius=23,
		-- "thickness" is the thickness of the ring, centred around the radius.
		thickness=2,
		-- "start_angle" is the starting angle of the ring, in degrees, clockwise from top. Value can be either positive or negative.
		start_angle=0,
		-- "end_angle" is the ending angle of the ring, in degrees, clockwise from top. Value can be either positive or negative, but must be larger than start_angle.
		end_angle=360
	},
	{
		name='cpu',
		arg='cpu1',
		max=100,
		bg_colour=0xFFFFFF,
		bg_alpha=0.1,
		fg_colour=0x00EE00,
		fg_alpha=0.8,
		x=590, y=35,
		radius=20,
		thickness=2,
		start_angle=0,
		end_angle=360
	},
	{
		name='cpu',
		arg='cpu2',
		max=100,
		bg_colour=0xFFFFFF,
		bg_alpha=0.1,
		fg_colour=0x00EE00,
		fg_alpha=0.8,
		x=660, y=35,
		radius=20,
		thickness=2,
		start_angle=0,
		end_angle=360
	},
	{
		name='memperc',
		arg='',
		max=100,
		bg_colour=0xFFFFFF,
		bg_alpha=0.1,
		fg_colour=0xFFFF00,
		fg_alpha=0.8,
		x=730, y=35,
		radius=20,
		thickness=2,
		start_angle=0,
		end_angle=360
	},
	
	{
		name='fs_used_perc',
		arg='/',
		max=100,
		bg_colour=0xFFFFFF,
		bg_alpha=0.1,
		fg_colour=0x1E90FF,
		fg_alpha=0.8,
		x=290, y=35,
		radius=23,
		thickness=2,
		start_angle=0,
		end_angle=360
	},
	{
		name='fs_used_perc',
		arg='/home',
		max=100,
		bg_colour=0xFFFFFF,
		bg_alpha=0.1,
		fg_colour=0x1E90FF,
		fg_alpha=0.8,
		x=290, y=35,
		radius=18,
		thickness=2,
		start_angle=0,
		end_angle=360
	},
	
		
}

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

clock_r=20

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

clock_x=1180
clock_y=35

show_seconds=true

require 'cairo'
local cs, cr = nil
--------------------------------------------------------------------------------------------------------------------------
--                                                                 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
--------------------------------------------------------------------------------------------------------------------------


function draw_ring(cr,t,pt)
	local w,h=conky_window.width,conky_window.height
	
	local xc,yc,ring_r,ring_w,sa,ea=pt['x'],pt['y'],pt['radius'],pt['thickness'],pt['start_angle'],pt['end_angle']
	local bgc, bga, fgc, fga=pt['bg_colour'], pt['bg_alpha'], pt['fg_colour'], pt['fg_alpha']

	local angle_0=sa*(2*math.pi/360)-math.pi/2
	local angle_f=ea*(2*math.pi/360)-math.pi/2
	local t_arc=t*(angle_f-angle_0)

	-- Draw background ring

	cairo_arc(cr,xc,yc,ring_r,angle_0,angle_f)
	cairo_set_source_rgba(cr,rgb_to_r_g_b(bgc,bga))
	cairo_set_line_width(cr,ring_w)
	cairo_stroke(cr)
	
	-- Draw indicator ring

	cairo_arc(cr,xc,yc,ring_r,angle_0,angle_0+t_arc)
	cairo_set_source_rgba(cr,rgb_to_r_g_b(fgc,fga))
	cairo_stroke(cr)		
end

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

function conky_clock_rings()
	local function setup_rings(cr,pt)
		local str=''
		local value=0
		
		str=string.format('${%s %s}',pt['name'],pt['arg'])
		str=conky_parse(str)
		
		value=tonumber(str)
		pct=value/pt['max']
		
		draw_ring(cr,pct,pt)
	end
	
	-- Check that Conky has been running for at least 5s

	if conky_window==nil then return end
	local cs=cairo_xlib_surface_create(conky_window.display,conky_window.drawable,conky_window.visual, conky_window.width,conky_window.height)
	
	local cr=cairo_create(cs)	
	
	local updates=conky_parse('${updates}')
	update_num=tonumber(updates)
	
	if update_num>5 then
		for i in pairs(settings_table) do
			setup_rings(cr,settings_table[i])
		end
	end
	
	draw_clock_hands(cr,clock_x,clock_y)
	cairo_destroy(cr)
	cairo_surface_destroy(cs)
    cr=nil
	collectgarbage()
end 

Hors ligne

#303 Le 30/05/2013, à 07:23

Didier-T

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

@ 6-ril,

tu peut essayer avec ceci.

# temps pour fermer conky en seconde. 0 = toujours actif 
total_run_times 0

# affiche le texte sur la sortie standard
out_to_console no

# réglage de la mémoire, pour éviter le clignotement
double_buffer yes
# Soustraire les mémoires tampons de la mémoire utilisée
no_buffers yes
text_buffer_size 2048

# taux de rafraichissement de la fenêtre (en secondes)
update_interval 1

# nombre d'échantillons à utiliser pour calculer la moyenne d'utilisation
cpu_avg_samples 4
net_avg_samples 2

# taille et positon
alignment top_right
minimum_size 200 180
maximum_width 200

# écart avec le bord x=gauche ou droit y= haut ou bas
gap_x 35
gap_y 55

#  afficher les ombres
draw_shades yes
# afficher des contours
draw_outline no
# contours autour des blocs de texte
draw_borders no
# largeur du contour
border_width 0

#pour que conky tourne en arrière plan background no pour les tests
background no

# utiliser sa propre fenêtre
own_window yes
own_window_argb_visual yes
#type de fenêtre : normal(avec le cadre) / override / desktop
own_window_type override
#pseudo transparence si vous avez des icones sous le conky elle ne seront plus accessibles une fois conky activé
own_window_transparent yes

# Utiliser Xft (polices lissées etc)
use_xft yes
xftalpha 0.5
override_utf8_locale yes # force UTF8

#police a utiliser : use_xft doit être a "yes"
xftfont caviar dreams:size=8
# Tout le texte en majuscule
uppercase no

# Ajoute des espaces après certains objets pour éviter de les faire bouger.
# Fonctionne uniquement avec les polices Fixes
use_spacer right

# Couleurs
default_color FFFFFF #blanc
default_shade_color 000000 #noir
default_outline_color black


TEXT
#DATE
${voffset 8}${color FF6600}${font caviar dreams:size=16}${time %A}${font}${voffset -8}${alignr 50}${color FFFFFF}${font caviar dreams:size=38}${time %e}${font}
${color FFFFFF}${voffset -30}${color FFFFFF}${font caviar dreams:size=18}${time %b}${font}${voffset 0} ${color FFFFFF}${font caviar dreams:size=20}${time %Y}${font}${color FF6600}${hr}
#INFOS CPU-RAM-BAT
${goto 0}${voffset 35}${color FF6600}CPU ${color FFFFFF}${cpu cpu0}%${color FFFFFF}${goto 82}${memperc}%${goto 150}${color FF6600}${goto 55}RAM${goto 150}${color FFFFFF}${goto 160}${battery_percent}%${color FF6600}${goto 115}Batterie

#INFOS SYSTEME
${color FF6600}${font caviar dreams:size=8}${alignr}${nodename}
${color FF6600}${font caviar dreams:size=8}${alignr}${pre_exec cat /etc/issue.net}  $machine
${color FF6600}${font caviar dreams:size=8}${alignr}Kernel: ${kernel}

conky basique

Hors ligne

#304 Le 30/05/2013, à 18:38

6-ril

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

Salut Didier-T

Si j'ai bien suivi, j'ai ajouté " own_window_argb_visual yes " à mon fichier .conkyrc

Mais le résultat reste le même...

Hors ligne

#305 Le 30/05/2013, à 19:10

Didier-T

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

6-ril a écrit :

Salut Didier-T

Si j'ai bien suivi, j'ai ajouté " own_window_argb_visual yes " à mon fichier .conkyrc

Mais le résultat reste le même...

étrange, tu es sous quelle distribution ?

Hors ligne

#306 Le 31/05/2013, à 08:28

ragamatrix

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

Didier-T a écrit :

@ ragamatrix,

le script qui posait problème est corrigé.

doublerings.lua

 -- 2011 changed by LaGaDesk


settings_table = {
	{
		-- Edit this table to customise your rings.
		-- You can create more rings simply by adding more elements to settings_table.
		-- "name" is the type of stat to display; you can choose from 'cpu', 'memperc', 'fs_used_perc', 'battery_used_perc'.
		name='time',
		-- "arg" is the argument to the stat type, e.g. if in Conky you would write ${cpu cpu0}, 'cpu0' would be the argument. If you would not use an argument in the Conky variable, use ''.
		arg='%I.%M',
		-- "max" is the maximum value of the ring. If the Conky variable outputs a percentage, use 100.
		max=12,
		-- "bg_colour" is the colour of the base ring.
		bg_colour=0xFFFFFF,
		-- "bg_alpha" is the alpha value of the base ring.
		bg_alpha=0.1,
		-- "fg_colour" is the colour of the indicator part of the ring.
		fg_colour=0x6948FF,
		-- "fg_alpha" is the alpha value of the indicator part of the ring.
		fg_alpha=0.75,
		-- "x" and "y" are the x and y coordinates of the centre of the ring, relative to the top left corner of the Conky window.
		x=1180, y=35,
		-- "radius" is the radius of the ring.
		radius=23,
		-- "thickness" is the thickness of the ring, centred around the radius.
		thickness=2,
		-- "start_angle" is the starting angle of the ring, in degrees, clockwise from top. Value can be either positive or negative.
		start_angle=0,
		-- "end_angle" is the ending angle of the ring, in degrees, clockwise from top. Value can be either positive or negative, but must be larger than start_angle.
		end_angle=360
	},
	{
		name='cpu',
		arg='cpu1',
		max=100,
		bg_colour=0xFFFFFF,
		bg_alpha=0.1,
		fg_colour=0x00EE00,
		fg_alpha=0.8,
		x=590, y=35,
		radius=20,
		thickness=2,
		start_angle=0,
		end_angle=360
	},
	{
		name='cpu',
		arg='cpu2',
		max=100,
		bg_colour=0xFFFFFF,
		bg_alpha=0.1,
		fg_colour=0x00EE00,
		fg_alpha=0.8,
		x=660, y=35,
		radius=20,
		thickness=2,
		start_angle=0,
		end_angle=360
	},
	{
		name='memperc',
		arg='',
		max=100,
		bg_colour=0xFFFFFF,
		bg_alpha=0.1,
		fg_colour=0xFFFF00,
		fg_alpha=0.8,
		x=730, y=35,
		radius=20,
		thickness=2,
		start_angle=0,
		end_angle=360
	},
	
	{
		name='fs_used_perc',
		arg='/',
		max=100,
		bg_colour=0xFFFFFF,
		bg_alpha=0.1,
		fg_colour=0x1E90FF,
		fg_alpha=0.8,
		x=290, y=35,
		radius=23,
		thickness=2,
		start_angle=0,
		end_angle=360
	},
	{
		name='fs_used_perc',
		arg='/home',
		max=100,
		bg_colour=0xFFFFFF,
		bg_alpha=0.1,
		fg_colour=0x1E90FF,
		fg_alpha=0.8,
		x=290, y=35,
		radius=18,
		thickness=2,
		start_angle=0,
		end_angle=360
	},
	
		
}

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

clock_r=20

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

clock_x=1180
clock_y=35

show_seconds=true

require 'cairo'
local cs, cr = nil
--------------------------------------------------------------------------------------------------------------------------
--                                                                 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
--------------------------------------------------------------------------------------------------------------------------


function draw_ring(cr,t,pt)
	local w,h=conky_window.width,conky_window.height
	
	local xc,yc,ring_r,ring_w,sa,ea=pt['x'],pt['y'],pt['radius'],pt['thickness'],pt['start_angle'],pt['end_angle']
	local bgc, bga, fgc, fga=pt['bg_colour'], pt['bg_alpha'], pt['fg_colour'], pt['fg_alpha']

	local angle_0=sa*(2*math.pi/360)-math.pi/2
	local angle_f=ea*(2*math.pi/360)-math.pi/2
	local t_arc=t*(angle_f-angle_0)

	-- Draw background ring

	cairo_arc(cr,xc,yc,ring_r,angle_0,angle_f)
	cairo_set_source_rgba(cr,rgb_to_r_g_b(bgc,bga))
	cairo_set_line_width(cr,ring_w)
	cairo_stroke(cr)
	
	-- Draw indicator ring

	cairo_arc(cr,xc,yc,ring_r,angle_0,angle_0+t_arc)
	cairo_set_source_rgba(cr,rgb_to_r_g_b(fgc,fga))
	cairo_stroke(cr)		
end

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

function conky_clock_rings()
	local function setup_rings(cr,pt)
		local str=''
		local value=0
		
		str=string.format('${%s %s}',pt['name'],pt['arg'])
		str=conky_parse(str)
		
		value=tonumber(str)
		pct=value/pt['max']
		
		draw_ring(cr,pct,pt)
	end
	
	-- Check that Conky has been running for at least 5s

	if conky_window==nil then return end
	local cs=cairo_xlib_surface_create(conky_window.display,conky_window.drawable,conky_window.visual, conky_window.width,conky_window.height)
	
	local cr=cairo_create(cs)	
	
	local updates=conky_parse('${updates}')
	update_num=tonumber(updates)
	
	if update_num>5 then
		for i in pairs(settings_table) do
			setup_rings(cr,settings_table[i])
		end
	end
	
	draw_clock_hands(cr,clock_x,clock_y)
	cairo_destroy(cr)
	cairo_surface_destroy(cs)
    cr=nil
	collectgarbage()
end 

Merci Didier-T
Je testerais cette modif dès mon retour devant mon poste linux... Ici windows... hmm
Quelle est la modification ?
Est-il possible de la faire sur d'autres scripts ?
bonne journée

Hors ligne

#307 Le 31/05/2013, à 08:50

ragamatrix

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

Salut;
@6-ril

6-ril a écrit :

D'autre part, comment peut-t-on choisir l'écran sur lequel l'afficher?

Tu peux faire ça avec ce script et tous les conkys que tu veux à condition d'enlever l'option "sticky" sur chacun d'eux.
Tu dois installer wmctrl (dans synaptic ou en ligne de commande c'est dans la boite)
Pour l'explication et les script c'est par ici post#4883
Si l' Anglais pose problème j'essaierais de traduire. 0=bureau 1 1=bureau 2 etc...

Hors ligne

#308 Le 31/05/2013, à 10:28

6-ril

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

@ Didier-T
Je suis sous Ubuntu 13.04 64bit

J'ai remplacé mon script par celui là :

# 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

temperature_unit fahrenheit

# Window specifications #

own_window yes
own_window_type override
own_window_transparent yes
own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below

border_inner_margin 0
border_outer_margin 0

minimum_size 200 250
maximum_width 200

alignment tr
gap_x 35
gap_y 55

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

# Text settings #
use_xft yes
xftfont caviar dreams:size=8
xftalpha 0.5

uppercase no

temperature_unit celsius


default_color FFFFFF

# Lua Load  #
lua_load ~/.conky/clock_rings.lua
lua_draw_hook_pre clock_rings

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

${color FFFFFF}${goto 25}${voffset 35}${cpu cpu0}%
${color FF6600}${goto 25}CPU
${color FFFFFF}${goto 50}${voffset 23}${memperc}%
${color FF6600}${goto 50}RAM
${color FFFFFF}${goto 75}${voffset 23}${swapperc}%
${color FF6600}${goto 75}Swap
${color FFFFFF}${goto 100}${voffset 23}${fs_used_perc /}%
${color FF6600}${goto 100}Disk
${color FFFFFF}${goto 125}${voffset 25}${downspeed eth0}
${color FFFFFF}${goto 125}${upspeed eth0}
${color FF6600}${goto 125}Net

${color FFFFFF}${font caviar dreams:size=8}Uptime: ${uptime_short}
${color FFFFFF}${font caviar dreams:size=8}Processes: ${processes}
${color FFFFFF}${font caviar dreams:size=8}Running: ${running_processes}

${color FF6600}${font caviar dreams:size=8}${alignr}${nodename}
${color FF6600}${font caviar dreams:size=8}${alignr}${pre_exec cat /etc/issue.net}  $machine
${color FF6600}${font caviar dreams:size=8}${alignr}Kernel: ${kernel}

Maintenant, j'ai bien mon conky que est transparent mais pas immédiatement !
Quand il se lance, le fond est noir puis au bout d'un moment il devient transparent ... bizarre non ?
Et je ne vois pas de différence au niveau de # Window specifications # par rapport au script précédent ...

Hors ligne

#309 Le 31/05/2013, à 10:28

6-ril

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

@ ragamatrix,
Merci, je vais regarder ça de plus prés. L'anglais ne va pas poser problème ;-)

Hors ligne

#310 Le 31/05/2013, à 22:24

Didier-T

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

@ ragamatrix,
j'ai ajouté les lignes suivantes.

	cairo_destroy(cr)
	cairo_surface_destroy(cs)
        cr=nil
	collectgarbage()

dans l'ordre, ont détruit le dessin, puis la surface à dessiner, comme parfois le dessin résiste, on passe sa valeur à nil, et enfin une petite purge des mémoires local.

la sa correspond aux besoins, mais tout dépend des objet créés.



@ 6-ril,
tu peut tenter d'ajouter ceci

own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below

c'est la seul différence que je remarque en ce qui concerne l'affichage.
pour l'histoire du fond noir qui devient transparent, c'est lié a la fausse transparence de conky, il y a une latence, c'est pour sa que j'ajoute le own_window_argb_visual yes.

Hors ligne

#311 Le 04/06/2013, à 14:48

ragamatrix

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

Salut Didier-T;
Merci pour ces modifications et explications. (pour les rings)
On ne peut pas ajouter ces lignes dans différents scripts où faut-il les déclarer ?

Tu m'avais aussi expliqué comment récupérer une url pour une image en faisant une extraction à cette page
Mon problème c'est que l'adresse de ma radio préférée à changé ou n'est plus valide; on peut l'écouter que via ce site: wegofunk
J'ai essayer de faire ctrl+i (firefox) ensuite media et rechercher celle ci mais ça ne fonctionne pas...
Donc ma question big_smile : Est-il possible d'extraire l'adresse de la radio jouée sur ce site ?

Il existe toujours une radio qui diffuse avec l'url de wegofunk mais ce n'est pas cette musique que j'écoute habituellement... Ancienne adresse url valide sur laquelle une autre radio diffuse : http://listen.radionomy.com/wegofunk.m3u
Tout cela me parait un peu "louche"...
Si tu m'as compris BRAVO ! J'ai essayé d'être clair pour quelque chose qui ne l'est pas lol
Je pourrais ensuite re-utiliser mon conky me donnant les informations des artistes joués.

Hors ligne

#312 Le 05/06/2013, à 16:12

Didier-T

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

@ ragamatrix,

c'est ligne peuvent être ajoutées a d'autres scripts, mais ne seront pas forcement utiles, sa dépend des objets créés.
il faut les mettre a la fin de la fonction appelé par le conky.

en ce qui concerne la radio, cher moi sa fonctionne, j'ai simplement ouvert le lien avec clémentine, par contre il l'appel "radionomy".
mais tu devrais regarder ceci

Hors ligne

#313 Le 05/06/2013, à 17:19

ragamatrix

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

@Didier-T
Hé oui je sais que c'est fini... sad
Mais ce que je trouve étrange c'est que sur ce site la musique jouée correspond exactement aux playlists de wegofunk mais pas celle ?

Dernière modification par ragamatrix (Le 05/06/2013, à 17:53)

Hors ligne

#314 Le 05/06/2013, à 22:23

ragamatrix

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

Didier-T a écrit :

@ ragamatrix,
j'ai ajouté les lignes suivantes.

    cairo_destroy(cr)
    cairo_surface_destroy(cs)
        cr=nil
    collectgarbage()

dans l'ordre, ont détruit le dessin, puis la surface à dessiner, comme parfois le dessin résiste, on passe sa valeur à nil, et enfin une petite purge des mémoires local.

la sa correspond aux besoins, mais tout dépend des objet créés.

J'ai essayé dans ce script de placer ces quatre lignes à la fin du menu demandé par conky mais cela ne fonctionne pas ... hmm
Pour l'autre c'est nickel ! Merci
rings.lua:

 --[[ RINGS with SECTORS widget
	v1.1 by wlourf (07 Jan. 2011)
	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

draw_me     - if set to false, text is not drawn (default = true or 1)
              it can be used with a conky string, if the string returns 1, the text is drawn :
              example : "${if_empty ${wireless_essid wlan0}}${else}1$endif",

v1.0 (08 Aug. 2010) original release
v1.1 (07 Jan. 2011) Add draw_me parameter and correct memory leaks, thanks to "Creamy Goodness"
                    text is parsed inside the function, not in the array of settings

--      This program is free software; you can redistribute it and/or modify
--      it under the terms of the GNU General Public License as published by
--      the Free Software Foundation version 3 (GPLv3)
--     
--      This program is distributed in the hope that it will be useful,
--      but WITHOUT ANY WARRANTY; without even the implied warranty of
--      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--      GNU General Public License for more details.
--     
--      You should have received a copy of the GNU General Public License
--      along with this program; if not, write to the Free Software
--      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
--      MA 02110-1301, USA.		

]]


require 'cairo'

function conky_main_rings()
-- START PARAMETERS HERE
local rings_settings={
	--line1
   
	{
	name="cpu",
	arg="",
	max=100,
	xc=530,
	yc=35,
	thickness=4,
	radius=22,
	sectors=100,
 	gap_sectors=0,
	bg_colour1={{0,0xFFFFFF,0.1},{0.5,0xFFFFFF,0.4},{1,0xFFFFFF,0.1}},
	fg_colour1={{0,0x00FF00,0.1},{0.5,0x00FF00,1.0},{1,0x00FF00,0.1}},
	fg_colour2={{0,0xFF0000,0.1},{0.5,0xFF0000,1.0},{1,0xFF0000,0.1}},
	},

	{
	name="memperc",
	arg="",
	max=100,
	xc=600,
	yc=35,
	thickness=4,
	radius=22,
	sectors=100,
	gap_sectors=0,
	start_angle=0,
	end_angle=360,
	bg_colour1={{0,0xFFFFFF,0.1},{0.5,0xFFFFFF,0.6},{1,0xFFFFFF,0.1}},
	fg_colour1={{0,0xFFFF00,0.1},{0.5,0xFFFF00,1.0},{1,0xFFFF00,0.1}},
	fg_colour2={{0,0xFF0000,0.1},{0.5,0xFF0000,1.0},{1,0xFF0000,0.1}},
	},

	{
	name="cpu",
	arg="cpu0",
	max=100,
	xc=670,
	yc=35,
	thickness=4,
	radius=22,
	sectors=100,
 	gap_sectors=0,
	bg_colour1={{0,0xFFFFFF,0.1},{0.5,0xFFFFFF,0.4},{1,0xFFFFFF,0.1}},
	fg_colour1={{0,0x00FF00,0.1},{0.5,0x00FF00,1.0},{1,0x00FF00,0.1}},
	fg_colour2={{0,0xFF0000,0.1},{0.5,0xFF0000,1.0},{1,0xFF0000,0.1}},
	},

	{
		name="fs_used_perc",
		arg='/',
		max=100,
		gap_sectors=0,
		sectors=100,
		bg_colour1={{0,0xFFFFFF,0.1},{0.5,0xFFFFFF,0.4},{1,0xFFFFFF,0.1}},
		fg_colour1={{0,0x1E90FF,0.1},{0.5,0x1E90FF,1.0},{1,0x1E90FF,0.1}},
		fg_colour2={{0,0xFF0000,0.1},{0.5,0xFF0000,1.0},{1,0xFF0000,0.1}},
		xc=230,
		yc=35,
		radius=23,
		thickness=2,
		
	},

	{
		name="fs_used_perc",
		arg="/home",
		max=100,
		gap_sectors=0,
		sectors=100,
		bg_colour1={{0,0xFFFFFF,0.1},{0.5,0xFFFFFF,0.4},{1,0xFFFFFF,0.1}},
		fg_colour1={{0,0x1E90FF,0.1},{0.5,0x1E90FF,1.0},{1,0x1E90FF,0.1}},
		fg_colour2={{0,0xFF0000,0.1},{0.5,0xFF0000,1.0},{1,0xFF0000,0.1}},
		xc=230,
		yc=35,
		radius=20,
		thickness=2,
		
	},
	
}
--END OF PARAMETERS HERE

--main function

	--if conky_window==nil then return end
if conky_window==nil then return end
	local cs=cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, conky_window.width, conky_window.height)
    local cr=cairo_create(cs)
	local cr=cairo_create(cs)
    local extents=cairo_text_extents_t:create()
	  tolua.takeownership(extents)
	if tonumber(conky_parse('${updates}'))>3 then
		for i in pairs(rings_settings) do
			draw_ring(cr,rings_settings[i])
		end
	end

	cairo_destroy(cr)

end




function draw_ring(cr, t)

	local function rgba_to_r_g_b_a(tcolour)
		local 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
	
	if t.draw_me == true then t.draw_me = nil end
	if t.draw_me ~= nil and conky_parse(tostring(t.draw_me)) ~= "1" then return end	
	--initialize table
	setup(t)
	
	--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 :
	local angleA = ((t.end_angle-t.start_angle)/t.sectors)*math.pi/180
	--value of a sector : 
	local valueA = t.max/t.sectors
	--first angle of a sector : 
	local 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 #
	 	local tcolor
		 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
		local b0,b1
		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, angle_d
		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
		local d0,d1
		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]] 

Hors ligne

#315 Le 06/06/2013, à 06:30

Didier-T

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

@ ragamatrix,

est tu certain que ce soit le script lua qui pose problème, tous les scripts de wourlf que j'ai testé étaient optimisés (dans leurs dernières version, bien sure).

Hors ligne

#316 Le 06/06/2013, à 09:25

ragamatrix

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

Didier-T a écrit :

@ ragamatrix,

est tu certain que ce soit le script lua qui pose problème, tous les scripts de wourlf que j'ai testé étaient optimisés (dans leurs dernières version, bien sure).

Salut;
Bien je ne comprends pas j'utilisais un script rings.lua pour deadbeef que tu m'avais aidé à modifié (même base wlourf) afin de faire un "anneau de progression" et il n'y avait pas de problèmes...
Je vais repartir avec celui-ci pour tester.

Hors ligne

#317 Le 06/06/2013, à 12:31

ragamatrix

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

@Didier-T
Je viens de laisser tourner ce script quelques heures et celui-ci pose problème avec xorg (au début 1.5%topcpu xorg et après 13%)... Tandis que doublerings.lua aucun problème.
Lorsque le script rings.lua tourne avec deadbeef pas de problème non plus(un seul ring)... Je me demande si cela ne concerne pas les tables avec les différentes couleurs et "differentes couches" pouvant être une demande d'xorg excessive..?

  bg_colour1={{0,0xFFFFFF,0.1},{0.5,0xFFFFFF,0.4},{1,0xFFFFFF,0.1}},
		fg_colour1={{0,0x1E90FF,0.1},{0.5,0x1E90FF,1.0},{1,0x1E90FF,0.1}},
		fg_colour2={{0,0xFF0000,0.1},{0.5,0xFF0000,1.0},{1,0xFF0000,0.1}},

Hors ligne

#318 Le 11/06/2013, à 14:16

ragamatrix

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

@Didier-T

@ ragamatrix,

est tu certain que ce soit le script lua qui pose problème, tous les scripts de wourlf que j'ai testé étaient optimisés (dans leurs dernières version, bien sure).

@Didier-T
Je viens de laisser tourner ce script quelques heures et celui-ci pose problème avec xorg (au début 1.5%topcpu xorg et après 13%)... Tandis que doublerings.lua aucun problème.
Lorsque le script rings.lua tourne avec deadbeef pas de problème non plus(un seul ring)... Je me demande si cela ne concerne pas les tables avec les différentes couleurs et "differentes couches" pouvant être une demande d'xorg excessive..?

J'ai donc enlevé une couche de couleur  pour tous les rings et ajouté les lignes que tu as proposé et xorg reste aux alentours de 0.5 à 1.5%.
Je pense que le script peut faire ces trois couches de couleurs mais cela fait mal aux xorg des vieilles machines... wink
exemple avec 2 couches :

bg_colour1={{0.5,0xFFFFFF,0.6},{1,0xFFFFFF,0.1}}, 

Hors ligne

#319 Le 15/06/2013, à 20:30

chepioq

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

Bonjour,
J"ai trouvé un conky qui permet de m'afficher le nombre de mail dans ma boite gmail ( http://bliezkrieg.deviantart.com/art/Gm … -336207580 )

Est -ce qu'il y a un moyen, en cliquant sur ce conky, de lancer firefox dans mon compte gmail ?

Dernière modification par chepioq (Le 15/06/2013, à 20:33)


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

Hors ligne

#320 Le 15/06/2013, à 20:31

Didier-T

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

oui smile

Hors ligne

#321 Le 15/06/2013, à 20:34

chepioq

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

merci de ta réponse, mais où puis-je chercher ? roll


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

Hors ligne

#322 Le 15/06/2013, à 20:41

Didier-T

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

excuse moi, dépannage en cours.
voici un script lua qui te permettra de le faire.
Clic_info.lua

--[[
!!! Nécessite l’installation de xdotool !!!
le conky appelant doit avoir sa propre fenêtre et un nom, par exemple
own_window_title Meteo
own_window yes

Dans le conky il faut ajouter :
Avant TEXT
lua_load     "Votre chemin"/Clic_info.lua

Après TEXT
${lua click}

Pour obtenir la position de la souris dans le script lié au clic utiliser
posx et posy

Pour ajouter des données récupérées via conky dans la commande à exécuter indiquer dans la ligne de commande arg(x), arg1 sera remplacer par le resultat 
de arg1, vous disposez de 5 arguments

Les commandes peuvent êtres exécutées par conky où directement par le système

le nom de la fenêtre conky doit être renseigné ci dessous
]]--
local Fenetre="Meteo"
local Bouton={
	{
	Posx=0,--position haute sur l'axe horizontale de la zone de clic
	Posy=295,--position haute sur l'axe verticale de la zone de clic
	Lageur=86,--Largeur de la zone de clic
	Hauteur=52,--Hauteur de la zone de clic
	Commande_Os='exec yad --geometry=+posx+posy --timeout=1 --skip-taskbar --no-buttons --fixed --undecorated --text "arg1" &',--Commande exécutée par le système
	Commande_Conky="",--Commande exécutée par conky
	arg1="template1 AM_CondMeteo 2",--argument 1
	arg2="",--argument 2
	arg3="",--argument 3
	arg4="",--argument 4
	arg5="",--argument 5
	},
	{
	Posx=68,
	Posy=295,
	Lageur=86,
	Hauteur=52,
	Commande_Os='yad --geometry=+posx+posy --timeout=1 --skip-taskbar --no-buttons --fixed --undecorated --text "arg1" &',
	Commande_Conky="",
	arg1="template1 AM_CondMeteo 3",
	arg2="",
	arg3="",
	arg4="",
	arg5="",
	},
	{
	Posx=133,
	Posy=295,
	Lageur=86,
	Hauteur=52,
	Commande_Os='yad --geometry=+posx+posy --timeout=1 --skip-taskbar --no-buttons --fixed --undecorated --text "arg1" &',
	Commande_Conky="",
	arg1="template1 AM_CondMeteo 4",
	arg2="",
	arg3="",
	arg4="",
	arg5="",
	},
	{
	Posx=200,
	Posy=295,
	Lageur=86,
	Hauteur=52,
	Commande_Os='yad --geometry=+posx+posy --timeout=1 --skip-taskbar --no-buttons --fixed --undecorated --text "arg1" &',
	Commande_Conky="",
	arg1="template1 AM_CondMeteo 5",
	arg2="",
	arg3="",
	arg4="",
	arg5="",
	},
	{
	Posx=0,
	Posy=375,
	Lageur=86,
	Hauteur=52,
	Commande_Os='yad --geometry=+posx+posy --timeout=1 --skip-taskbar --no-buttons --fixed --undecorated --text "arg1" &',
	Commande_Conky="",
	arg1="template1 Noct_CondMeteo 2",
	arg2="",
	arg3="",
	arg4="",
	arg5="",
	},
	{
	Posx=68,
	Posy=375,
	Lageur=86,
	Hauteur=52,
	Commande_Os='yad --geometry=+posx+posy --timeout=1 --skip-taskbar --no-buttons --fixed --undecorated --text "arg1" &',
	Commande_Conky="",
	arg1="template1 Noct_CondMeteo 3",
	arg2="",
	arg3="",
	arg4="",
	arg5="",
	},
	{
	Posx=133,
	Posy=375,
	Lageur=86,
	Hauteur=52,
	Commande_Os='yad --geometry=+posx+posy --timeout=1 --skip-taskbar --no-buttons --fixed --undecorated --text "arg1" &',
	Commande_Conky="",
	arg1="template1 Noct_CondMeteo 4",
	arg2="",
	arg3="",
	arg4="",
	arg5="",
	},
	{
	Posx=200,
	Posy=375,
	Lageur=86,
	Hauteur=52,
	Commande_Os='yad --geometry=+posx+posy --timeout=1 --skip-taskbar --no-buttons --fixed --undecorated --text "arg1" &',
	Commande_Conky="",
	arg1="template1 Noct_CondMeteo 5",
	arg2="",
	arg3="",
	arg4="",
	arg5="",
	},
	{
	Posx=111,
	Posy=210,
	Lageur=63,
	Hauteur=63,
	Commande_Os="yad --geometry=+posx+posy --timeout=3 --skip-taskbar --no-buttons --fixed --undecorated --text \"Taux visibilité = arg1 %\nAge de la lune = arg2\" &",
	Commande_Conky="",
	arg1="template3 Visibilite",
	arg2="template3 Age",
	arg3="",
	arg4="",
	arg5="",
	},
	{
	Posx=0,
	Posy=120,
	Lageur=100,
	Hauteur=28,
	Commande_Os="bash ~/conky/script/ChangeVille posx posy &",
	Commande_Conky="",
	arg1="",
	arg2="",
	arg3="",
	arg4="",
	arg5="",
	},
}


local start=1
local abstlx, abstly

function conky_click()
	local mousex, mousey, localx, localy, arg1, arg2, arg3, arg4, arg5
	if conky_window == nil then return end
	local updates=tonumber(conky_parse('${updates}'))
	if updates>2 then

		localx,localy=clickfunction()

		for i in pairs(Bouton) do
			if localx>=Bouton[i].Posx and localx<=Bouton[i].Posx+Bouton[i].Lageur and localy>=Bouton[i].Posy and localy<=Bouton[i].Posy+Bouton[i].Hauteur then
				mousex=Bouton[i].Posx+abstlx
				mousey=Bouton[i].Posy+Bouton[i].Hauteur+abstly
				if Bouton[i].arg1 ~= "" then arg1=conky_parse( "${"..Bouton[i].arg1.."}" ) else arg1=" " end
				if Bouton[i].arg2 ~= "" then arg2=conky_parse( "${"..Bouton[i].arg2.."}" ) else arg2=" " end
				if Bouton[i].arg3 ~= "" then arg3=conky_parse( "${"..Bouton[i].arg3.."}" ) else arg3=" " end
				if Bouton[i].arg4 ~= "" then arg4=conky_parse( "${"..Bouton[i].arg4.."}" ) else arg4=" " end
				if Bouton[i].arg5 ~= "" then arg5=conky_parse( "${"..Bouton[i].arg5.."}" ) else arg5=" " end
				if Bouton[i].Commande_Os ~= "" then
					Bouton[i].Commande_Os=Bouton[i].Commande_Os:gsub("posx", mousex):gsub("posy", mousey):gsub("arg1", arg1):gsub("arg2", arg2):gsub("arg3", arg3):gsub("arg4", arg4):gsub("arg5", arg5)
					print(Bouton[i].Commande_Os)
					os.execute(Bouton[i].Commande_Os)
				end
				if Bouton[i].Commande_Conky ~= "" then
					Bouton[i].Commande_Conky=Bouton[i].Commande_Conky:gsub("posx", mousex):gsub("posy", mousey):gsub("arg1", arg1):gsub("arg2", arg2):gsub("arg3", arg3):gsub("arg4", arg4):gsub("arg5", arg5)
					conky_parse( "${"..Bouton[i].Commande_Os.."}")
				end
			end
		end
		collectgarbage()
	end
	return ""
end

function clickfunction()
	local xdot, geometry ,s ,f , click, mousex, mousey, localx, localy
	--start click logging and calculations ##########################################
	if start==1 then
		xdot=os.execute("exec ps ax | awk '/ xdotool search --name "..Fenetre.." behave %@ mouse-click getmouselocation / {print $1}'")
		if tonumber(xdot)==1 then
			os.execute("kill "..xdot)
		end
		os.execute("xdotool search --name "..Fenetre.." behave %@ mouse-click getmouselocation >> /tmp/xdo &")
		start=nil
		local f = io.popen("xwininfo -name '"..Fenetre.."' | grep 'Absolute'")
		geometry = f:read("*a")
		f:close()
		geometry=string.gsub(geometry,"[\n]","")
		s,f,abstlx=string.find(geometry,"X%p%s*(%d*)")
		s,f,abstly=string.find(geometry,"Y%p%s*(%d*)")
	end--if start=1 ######################################
	--click calculations #################################
	local f=io.open("/tmp/xdo")
	click=f:read()
	f:close()
	if click~=nil then
		local f = io.open("/tmp/xdo","w")
		f:write("")
		f:close() 
	end--if click=nil
	if click==nil then click="x:0 y:0 " end
	s,f,mousex=string.find(click,"x%p(%d*)%s")
	s,f,mousey=string.find(click,"y%p(%d*)%s")
	mousex=tonumber(mousex)
	mousey=tonumber(mousey)
	localx=mousex-abstlx
	localy=mousey-abstly
	--END CLICK CALCULATIONS #################################
	return localx,localy,mousex,mousey
end--function

bien entendu, il faudra le modifier un peut

Dernière modification par Didier-T (Le 15/06/2013, à 20:43)

Hors ligne

#323 Le 15/06/2013, à 20:55

chepioq

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

Merci je vais regarder cela...


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

Hors ligne

#324 Le 15/06/2013, à 21:08

Didier-T

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

si tu as des questions n'hésite pas

Hors ligne

#325 Le 16/06/2013, à 07:51

chepioq

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

Bon, cela ne fonctionne pas comme je veux.
J'ai installé xdotool.
le conkyrcGmail

#http://bliezkrieg.deviantart.com/

#Evitar el parpadeo:
double_buffer yes

#Ventana propia, para ejecutar dos conkys o más.
own_window_title Gmail
own_window  yes
own_window_transparent yes
own_window_type normal
own_window_hints undecorate,sticky,skip_taskbar,skip_pager 

#Bordes?
draw_borders no
#border_inner_margin 3

#Sombras?
draw_shades no

#Posición:
gap_x 40
gap_y 650

maximum_width 120
minimum_size 100

#Posicionamiento > Posibilidades: tl, tm, tr, ml, mm, ml, bl, bm, br. Siendo la t>Arriba m>medio, r>derecha y l>izquierda, m>medio, r>derecha.
#Arriba a la izquierda
alignment tr

#behaviour
update_interval 1

#Colores
#Color de la sombra, decomentar si draw_shades = yes.
#default_shade_color 000000
#Color del fondo
own_window_colour 191919
#Color default de la letra
default_color FFFFFF
#Color de las fuentes
color0 FFFFFF
color1 CE5C00

#Fuente
use_xft yes
xftfont Ubuntu:size=8

# Forzar a UTF8
override_utf8_locale yes

#Previene que la ventana se mueva.
use_spacer none

#Color de las fuentes
color0 0000FF #000FFF #Azul
color1 000000 #Negro
color3 00FF00 #Verde
color4 FF00FF #Rosa
color5 FFFFFF #Blanco
color6 FFF000 #Amarillo
color7 FF0000 #Rojo
color8 00FFF0 #Cyan

lua_load /home/dominique/.conkyrc/conky-gmail/Clic_info.lua

TEXT
${lua click}
${image ~/.conkyrc/conky-gmail/mail.png -p 0,5 -s 110x90}
${font ubuntu:pixelsize=18}
	${voffset 32}${offset 75} ${color5}${texeci 180 python ~/.conkyrc/conky-gmail/gmail.py}           

Le Clic_info.lua

--[[
!!! Nécessite l’installation de xdotool !!!
le conky appelant doit avoir sa propre fenêtre et un nom, par exemple
own_window_title Meteo
own_window yes

Dans le conky il faut ajouter :
Avant TEXT
lua_load     "Votre chemin"/Clic_info.lua

Après TEXT
${lua click}

Pour obtenir la position de la souris dans le script lié au clic utiliser
posx et posy

Pour ajouter des données récupérées via conky dans la commande à exécuter indiquer dans la ligne de commande arg(x), arg1 sera remplacer par le resultat 
de arg1, vous disposez de 5 arguments

Les commandes peuvent êtres exécutées par conky où directement par le système

le nom de la fenêtre conky doit être renseigné ci dessous
]]--
local Fenetre="Gmail"
local Bouton={
	{
	Posx=0,--position haute sur l'axe horizontale de la zone de clic
	Posy=120,--position haute sur l'axe verticale de la zone de clic
	Lageur=86,--Largeur de la zone de clic
	Hauteur=52,--Hauteur de la zone de clic
	Commande_Os='exec yad --geometry=+posx+posy --timeout=1 --skip-taskbar --no-buttons --fixed --undecorated --text "arg1" &',--Commande exécutée par le système
	Commande_Conky="",--Commande exécutée par conky
	arg1="firefox https://mail.google.com/mail/?shva=1#inbox",--argument 1
	arg2="",--argument 2
	arg3="",--argument 3
	arg4="",--argument 4
	arg5="",--argument 5
	},

}


local start=1
local abstlx, abstly

function conky_click()
	local mousex, mousey, localx, localy, arg1, arg2, arg3, arg4, arg5
	if conky_window == nil then return end
	local updates=tonumber(conky_parse('${updates}'))
	if updates>2 then

		localx,localy=clickfunction()

		for i in pairs(Bouton) do
			if localx>=Bouton[i].Posx and localx<=Bouton[i].Posx+Bouton[i].Lageur and localy>=Bouton[i].Posy and localy<=Bouton[i].Posy+Bouton[i].Hauteur then
				mousex=Bouton[i].Posx+abstlx
				mousey=Bouton[i].Posy+Bouton[i].Hauteur+abstly
				if Bouton[i].arg1 ~= "" then arg1=conky_parse( "${"..Bouton[i].arg1.."}" ) else arg1=" " end
				if Bouton[i].arg2 ~= "" then arg2=conky_parse( "${"..Bouton[i].arg2.."}" ) else arg2=" " end
				if Bouton[i].arg3 ~= "" then arg3=conky_parse( "${"..Bouton[i].arg3.."}" ) else arg3=" " end
				if Bouton[i].arg4 ~= "" then arg4=conky_parse( "${"..Bouton[i].arg4.."}" ) else arg4=" " end
				if Bouton[i].arg5 ~= "" then arg5=conky_parse( "${"..Bouton[i].arg5.."}" ) else arg5=" " end
				if Bouton[i].Commande_Os ~= "" then
					Bouton[i].Commande_Os=Bouton[i].Commande_Os:gsub("posx", mousex):gsub("posy", mousey):gsub("arg1", arg1):gsub("arg2", arg2):gsub("arg3", arg3):gsub("arg4", arg4):gsub("arg5", arg5)
					print(Bouton[i].Commande_Os)
					os.execute(Bouton[i].Commande_Os)
				end
				if Bouton[i].Commande_Conky ~= "" then
					Bouton[i].Commande_Conky=Bouton[i].Commande_Conky:gsub("posx", mousex):gsub("posy", mousey):gsub("arg1", arg1):gsub("arg2", arg2):gsub("arg3", arg3):gsub("arg4", arg4):gsub("arg5", arg5)
					conky_parse( "${"..Bouton[i].Commande_Os.."}")
				end
			end
		end
		collectgarbage()
	end
	return ""
end

function clickfunction()
	local xdot, geometry ,s ,f , click, mousex, mousey, localx, localy
	--start click logging and calculations ##########################################
	if start==1 then
		xdot=os.execute("exec ps ax | awk '/ xdotool search --name "..Fenetre.." behave %@ mouse-click getmouselocation / {print $1}'")
		if tonumber(xdot)==1 then
			os.execute("kill "..xdot)
		end
		os.execute("xdotool search --name "..Fenetre.." behave %@ mouse-click getmouselocation >> /tmp/xdo &")
		start=nil
		local f = io.popen("xwininfo -name '"..Fenetre.."' | grep 'Absolute'")
		geometry = f:read("*a")
		f:close()
		geometry=string.gsub(geometry,"[\n]","")
		s,f,abstlx=string.find(geometry,"X%p%s*(%d*)")
		s,f,abstly=string.find(geometry,"Y%p%s*(%d*)")
	end--if start=1 ######################################
	--click calculations #################################
	local f=io.open("/tmp/xdo")
	click=f:read()
	f:close()
	if click~=nil then
		local f = io.open("/tmp/xdo","w")
		f:write("")
		f:close() 
	end--if click=nil
	if click==nil then click="x:0 y:0 " end
	s,f,mousex=string.find(click,"x%p(%d*)%s")
	s,f,mousey=string.find(click,"y%p(%d*)%s")
	mousex=tonumber(mousex)
	mousey=tonumber(mousey)
	localx=mousex-abstlx
	localy=mousey-abstly
	--END CLICK CALCULATIONS #################################
	return localx,localy,mousex,mousey
end--function

Quand je lance le conky, mon mombre de mail non-lu s"affiche bien, mais lorsque je clique sur le conky, cela n'ouvre pas firefox, j'ai juste ce message en console :

[dominique@host conky-gmail]$ conky -c conkyrcGmail
Conky: desktop window (120021a) is subwindow of root window (284)
Conky: window type - normal
Conky: drawing to created window (0x3600001)
Conky: drawing to double buffer
--2013-06-16 07:35:44--  https://chepioq:*password*@mail.google.com/mail/feed/atom
Résolution de mail.google.com (mail.google.com)... 173.194.40.149, 173.194.40.150, 2a00:1450:4007:808::1016
Connexion vers mail.google.com (mail.google.com)|173.194.40.149|:443...connecté.
requête HTTP transmise, en attente de la réponse...401 Unauthorized
Réutilisation de la connexion existante vers mail.google.com:443.
requête HTTP transmise, en attente de la réponse...200 OK
Longueur: non spécifié [text/xml]
Sauvegarde en : «STDOUT»

    [ <=>                                                     ] 348         --.-K/s   ds 0s      

2013-06-16 07:35:45 (47,3 MB/s) - envoi sur stdout [348]

--2013-06-16 07:35:45--  https://chepioq:*password*@mail.google.com/mail/feed/atom
Résolution de mail.google.com (mail.google.com)... 173.194.40.149
Connexion vers mail.google.com (mail.google.com)|173.194.40.149|:443...connecté.
requête HTTP transmise, en attente de la réponse...401 Unauthorized
Réutilisation de la connexion existante vers mail.google.com:443.
requête HTTP transmise, en attente de la réponse...200 OK
Longueur: non spécifié [text/xml]
Sauvegarde en : «STDOUT»

    [ <=>                                                     ] 348         --.-K/s   ds 0s      

2013-06-16 07:35:46 (16,5 MB/s) - envoi sur stdout [348]

7081
7083
findclient: 56623105
findclient: 56623105
findclient: 56623105
findclient: 56623105
findclient: 56623105
findclient: 56623105
findclient: 56623105
findclient: 56623105
findclient: 56623105
findclient: 56623105
findclient: 56623105
findclient: 56623105
^CConky: received SIGINT or SIGTERM to terminate. bye!
[dominique@host conky-gmail]$ 

les findclient: 56623105 correspondent aux clics que j'ai fait.


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

Hors ligne

Haut de page ↑