Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#176 Le 17/05/2013, à 18:06

enebre

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

Bonsoir Didier,
Dit moi s'il te plaît ce que tu pense des mes conkys qui ne tiennent pas, j'ai même repris un rc d'un conky sur le site de Crunchband et ça me fait pareil, ils ne tiennent pas longtemps avant de s'arrêter, est ce un site rss ou un soucis de mémoire, je ne sais pas interpréter le retour du terminal que j'ai posté en bas de la page précédente.
le revoilà

$ ▶ conky -c /home/enebre/.conky/conky-perso/Last-infos
Conky: desktop window (1400003) is subwindow of root window (26a)
Conky: window type - desktop
Conky: drawing to created window (0x3e00002)
Conky: drawing to double buffer
*** longjmp causes uninitialized stack frame ***: conky terminated
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(__fortify_fail+0x63)[0xb705fbc3]
/lib/i386-linux-gnu/libc.so.6(+0x106a6a)[0xb705fa6a]
/lib/i386-linux-gnu/libc.so.6(__longjmp_chk+0x4b)[0xb705f9db]
/usr/lib/i386-linux-gnu/libcurl-gnutls.so.4(+0x64a5)[0xb72714a5]
[0xb7735400]
[0xb7735424]
/lib/i386-linux-gnu/libc.so.6(__select+0x61)[0xb7042301]
conky[0x804f21c]
/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0xb6f72935]
conky[0x804f611]
etc etc etc....
b65f8000-b65f9000 r--p 000ac000 08:05 2891455    /usr/lib/i386-linux-gnu/libsqlite3.so.0.8.6
b65f9000-b65fa000 rw-p 000ad000 08:05 2891455    /usr/lib/i386-linux-gnu/libsqlite3.so.0.8.6
b65fa000-b65fb000 rw-p 00000000 00:00 0 
b65fb000-b663d000 r-xp 00000000 08:05 2891130    /usr/lib/i386-linux-gnu/libhx509.so.5.0.0
b663d000-b663e000 r--p 00042000 08:05 2891130    /usr/lib/i386-linux-gnu/libhx509.so.5.0.0Abandon

Dernière modification par enebre (Le 17/05/2013, à 18:08)

Hors ligne

#177 Le 17/05/2013, à 20:14

Didier-T

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

bonsoir enebre,
ce genre de message dépasse de loin mes compétences.

a tu tenté de ne conserver qu'un flux rss dans ton conky pour voir ce que sa donnait ?

Hors ligne

#178 Le 17/05/2013, à 20:36

enebre

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

Non pas encore, mais pour ne mettre qu'un fil, je préfère passer pour ce coup, j'avais récupéré un conky proposé sur Crunchband qui en avait plusieurs intégrés, je n'ai fait que changer les url, mais ça ne tient pas.

Tant pis, c'est pas très grave, merci de m'avoir répondu.
Pareil pour le compteur, j'utilise gkrellm minimisé au max, y a pas de soucis, il s'intègre assez bien dans mon tableau.  wink

Bonne soirée

Dernière modification par enebre (Le 17/05/2013, à 20:38)

Hors ligne

#179 Le 17/05/2013, à 22:03

loutch

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

Bonsoir Didier

le sript :

require 'cairo'

----------------START OF PARAMETERS ----------
function conky_main_bars()
	local bars_settings={		
		{
			name="Cpu",
			arg="cpu0",
			max=60,
			bg_colour={0xcacaca,0.2},
			fg_colour={0x00ff00,1},
			mid_colour={{0.25,0xFFFF00,1},{0.5,0xFF8000,1},{0.75,0xFF0000,1}},
			x=90,y=100,
			blocks=30,
			space=1,
			height=2,width=6,
			angle=90,
			smooth = true,
		        },
		{
		name="Cpu",
			arg="cpu1",
			max=60,
			bg_colour={0xcacaca,0.2},
			fg_colour={0x00ff00,1},
			mid_colour={{0.25,0xFFFF00,1},{0.5,0xFF8000,1},{0.75,0xFF0000,1}},
			x=90,y=126,
			blocks=30,
			space=1,
			height=2,width=6,
			angle=90,
			smooth = true	
			},
		{
		name="Cpu",
			arg="cpu2",
			max=60,
			bg_colour={0xcacaca,0.2},
			fg_colour={0x00ff00,1},
			mid_colour={{0.25,0xFFFF00,1},{0.5,0xFF8000,1},{0.75,0xFF0000,1}},
			x=90,y=152,
			blocks=30,
			space=1,
			height=2,width=6,
			angle=90,
			smooth = true	
			},    
		{
		name="Cpu",
			arg="cpu3",
			max=60,
			bg_colour={0xcacaca,0.2},
			fg_colour={0x00ff00,1},
			mid_colour={{0.25,0xFFFF00,1},{0.5,0xFF8000,1},{0.75,0xFF0000,1}},
			x=90,y=178,
			blocks=30,
			space=1,
			height=2,width=6,
			angle=90,
			smooth = true	
			},   
		{       --[ Graph for Memory ]--
                        name="memperc",
                        arg="",
                        max=100,
                        alarm=50,
                        alarm_colour={0xFF0000,0.72},
                        bg_colour={0xcacaca,0.22},
                        fg_colour={0x00FF00,1},
                        mid_colour={{0.45,0xFFFF00,0.70}},
                        x=190,y=214,
                        blocks=22,
                        space=1,
                        height=2,width=10,
                        angle=90,
                        smooth=true
                        },
		{       --[ Graph for Swap ]--
                        name="swapperc",
                        arg="",
                        max=100,
                        alarm=50,
                        alarm_colour={0xFF0000,0.72},
                        bg_colour={0xcacaca,0.25},
                        fg_colour={0x00FF00,0.55},
                        mid_colour={{0.45,0xFFFF00,0.70}},
                        x=190,y=229,
                        blocks=22,
                        space=1,
                        height=2,width=10,
                        angle=90,
                        smooth=true
                        },	    
		{       --[ Graph for Root ]--
                        name="fs_used_perc",
                        arg="/",
                        max=100,
                        alarm=50,
                        alarm_colour={0xFF0000,0.72},
                        bg_colour={0xcacaca,0.2},
                        fg_colour={0xa700a7,1},
                        mid_colour={{0.45,0xFFFF00,0.70}},
                        x=190,y=578,
                        blocks=22,
                        space=1,
                        height=2,width=10,
                        angle=90,
                        smooth=true
                        }, 
		{       --[ Graph for Root ]--
                        name="fs_used_perc",
                        arg="/home",
                        max=100,
                        alarm=50,
                        alarm_colour={0xFF0000,0.72},
                        bg_colour={0xcacaca,0.2},
                        fg_colour={0xa700a7,1},
                        mid_colour={{0.45,0xFFFF00,0.70}},
                        x=190,y=591,
                        blocks=22,
                        space=1,
                        height=2,width=10,
                        angle=90,
                        smooth=true
                        },      	    
	}
	
-----------END OF PARAMETERS--------------


    
	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)    
	--prevent segmentation error when reading cpu state
    if tonumber(conky_parse('${updates}'))>3 then
        for i in pairs(bars_settings) do
        	
        	draw_multi_bar_graph(bars_settings[i])
        	
        end
    end
	cairo_destroy(cr)
	cairo_surface_destroy(cs)
	cr=nil

end



function draw_multi_bar_graph(t)
	cairo_save(cr)
	--check values
	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	
	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'")
		return
	end
	if t.name==nil then t.name="" end
	if t.arg==nil then t.arg="" end

	--set default values	
	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.blocks == nil	then t.blocks=10 end
	if t.height == nil	then t.height=10 end
	if t.angle == nil 	then t.angle=0 end
	t.angle = t.angle*math.pi/180
	--line cap style
	if t.cap==nil		then t.cap = "b" end
	local cap="b"
	for i,v in ipairs({"s","r","b"}) do 
		if v==t.cap then cap=v end
	end
	local delta=0
	if t.cap=="r" or t.cap=="s" then delta = t.height end
	if cap=="s" then 	cap = CAIRO_LINE_CAP_SQUARE
	elseif cap=="r" then
		cap = CAIRO_LINE_CAP_ROUND
	elseif cap=="b" then
		cap = CAIRO_LINE_CAP_BUTT
	end
	--end line cap style
	--if t.led_effect == nil	then t.led_effect="r" end
	if t.width == nil	then t.width=20 end
	if t.space == nil	then t.space=2 end
	if t.radius == nil	then t.radius=0 end
	if t.angle_bar == nil	then t.angle_bar=0 end
	t.angle_bar = t.angle_bar*math.pi/360 --halt angle
	
	--colours
	if t.bg_colour == nil 	then t.bg_colour = {0x00FF00,0.5} end
	if #t.bg_colour~=2 		then t.bg_colour = {0x00FF00,0.5} end
	if t.fg_colour == nil 	then t.fg_colour = {0x00FF00,1} end
	if #t.fg_colour~=2 		then t.fg_colour = {0x00FF00,1} end
	if t.alarm_colour == nil 	then t.alarm_colour = t.fg_colour end
	if #t.alarm_colour~=2 		then t.alarm_colour = t.fg_colour end

	if t.mid_colour ~= nil then	
		for i=1, #t.mid_colour do    
		    if #t.mid_colour[i]~=3 then 
		    	print ("error in mid_color table")
		    	t.mid_colour[i]={1,0xFFFFFF,1} 
		    end
		end
    end
    
	if t.bg_led ~= nil and #t.bg_led~=2	then t.bg_led = t.bg_colour end
	if t.fg_led ~= nil and #t.fg_led~=2	then t.fg_led = t.fg_colour end
	if t.alarm_led~= nil and #t.alarm_led~=2 then t.alarm_led = t.fg_led end
	
	if t.led_effect~=nil then
		if t.bg_led == nil then t.bg_led = t.bg_colour end
		if t.fg_led == nil 	then t.fg_led = t.fg_colour end
		if t.alarm_led == nil  then t.alarm_led = t.fg_led end
	end
	

	if t.alarm==nil then t.alarm = t.max end --0.8*t.max end
	if t.smooth == nil then t.smooth = false end

	if t.skew_x == nil then 
		t.skew_x=0 
	else
		t.skew_x = math.pi*t.skew_x/180	
	end
	if t.skew_y == nil then 
		t.skew_y=0
	else
		t.skew_y = math.pi*t.skew_y/180	
	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
	
	--end of default values
	

 	local function rgb_to_r_g_b(col_a)
		return ((col_a[1] / 0x10000) % 0x100) / 255., ((col_a[1] / 0x100) % 0x100) / 255., (col_a[1] % 0x100) / 255., col_a[2]
	end
	
	
	--functions used to create patterns

	local function create_smooth_linear_gradient(x0,y0,x1,y1)
		local pat = cairo_pattern_create_linear (x0,y0,x1,y1)
		cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(t.fg_colour))
		cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(t.alarm_colour))
		if t.mid_colour ~=nil then
			for i=1, #t.mid_colour do
				cairo_pattern_add_color_stop_rgba (pat, t.mid_colour[i][1], rgb_to_r_g_b({t.mid_colour[i][2],t.mid_colour[i][3]}))
			end
		end
		return pat
	end

	local function create_smooth_radial_gradient(x0,y0,r0,x1,y1,r1)
		local pat =  cairo_pattern_create_radial (x0,y0,r0,x1,y1,r1)
		cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(t.fg_colour))
		cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(t.alarm_colour))
		if t.mid_colour ~=nil then
			for i=1, #t.mid_colour do
				cairo_pattern_add_color_stop_rgba (pat, t.mid_colour[i][1], rgb_to_r_g_b({t.mid_colour[i][2],t.mid_colour[i][3]}))
			end
		end
		return pat
	end
	
	local function create_led_linear_gradient(x0,y0,x1,y1,col_alp,col_led)
		local pat = cairo_pattern_create_linear (x0,y0,x1,y1) ---delta, 0,delta+ t.width,0)
		cairo_pattern_add_color_stop_rgba (pat, 0.0, rgb_to_r_g_b(col_alp))
		cairo_pattern_add_color_stop_rgba (pat, 0.5, rgb_to_r_g_b(col_led))
		cairo_pattern_add_color_stop_rgba (pat, 1.0, rgb_to_r_g_b(col_alp))
		return pat
	end

	local function create_led_radial_gradient(x0,y0,r0,x1,y1,r1,col_alp,col_led,mode)
		local pat = cairo_pattern_create_radial (x0,y0,r0,x1,y1,r1)
		if mode==3 then
			cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(col_alp))				
			cairo_pattern_add_color_stop_rgba (pat, 0.5, rgb_to_r_g_b(col_led))
			cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(col_alp))				
		else
			cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(col_led))
			cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(col_alp))				
		end
		return pat
	end






	local function draw_single_bar()
		--this fucntion is used for bars with a single block (blocks=1) but 
		--the drawing is cut in 3 blocks : value/alarm/background
		--not zvzimzblr for circular bar
		local function create_pattern(col_alp,col_led,bg)
			local pat
			
			if not t.smooth then
				if t.led_effect=="e" then
					pat = create_led_linear_gradient (-delta, 0,delta+ t.width,0,col_alp,col_led)
				elseif t.led_effect=="a" then
					pat = create_led_linear_gradient (t.width/2, 0,t.width/2,-t.height,col_alp,col_led)
				elseif  t.led_effect=="r" then
					pat = create_led_radial_gradient (t.width/2, -t.height/2, 0, t.width/2,-t.height/2,t.height/1.5,col_alp,col_led,2)
				else
					pat = cairo_pattern_create_rgba  (rgb_to_r_g_b(col_alp))
				end
			else
				if bg then
					pat = cairo_pattern_create_rgba  (rgb_to_r_g_b(t.bg_colour))
				else
					pat = create_smooth_linear_gradient(t.width/2, 0, t.width/2,-t.height)
				end
			end
			return pat
		end
		
		local y1=-t.height*pct/100
		local y2,y3
		if pct>(100*t.alarm/t.max) then 
			y1 = -t.height*t.alarm/100
			y2 = -t.height*pct/100
			if t.smooth then y1=y2 end
		end
		
		if t.angle_bar==0 then
		
			--block for fg value
			local pat = create_pattern(t.fg_colour,t.fg_led,false)
			cairo_set_source(cr,pat)
			cairo_rectangle(cr,0,0,t.width,y1)
			cairo_fill(cr)
			cairo_pattern_destroy(pat)
		
			-- block for alarm value			
			if not t.smooth and y2 ~=nil then 
				pat = create_pattern(t.alarm_colour,t.alarm_led,false)
				cairo_set_source(cr,pat)
				cairo_rectangle(cr,0,y1,t.width,y2-y1)
				cairo_fill(cr)
				y3=y2
				cairo_pattern_destroy(pat)
			else
				y2,y3=y1,y1
			end
			-- block for bg value
			cairo_rectangle(cr,0,y2,t.width,-t.height-y3)
			pat = create_pattern(t.bg_colour,t.bg_led,true)
			cairo_set_source(cr,pat)
			cairo_pattern_destroy(pat)
			cairo_fill(cr)
		end		
	end  --end single bar
	





	local function draw_multi_bar()
		--function used for bars with 2 or more blocks
		for pt = 1,t.blocks do 
			--set block y
			local y1 = -(pt-1)*(t.height+t.space)
			local light_on=false
			
			--set colors
			local col_alp = t.bg_colour
			local col_led = t.bg_led
			if pct>=(100/t.blocks) or pct>0 then --ligth on or not the block
				if pct>=(pcb*(pt-1))  then 
					light_on = true
					col_alp = t.fg_colour
					col_led = t.fg_led
					if pct>=(100*t.alarm/t.max) and (pcb*pt)>(100*t.alarm/t.max) then 
						col_alp = t.alarm_colour 
						col_led = t.alarm_led 
					end
				end
			end

			--set colors
			--have to try to create gradients outside the loop ?
			local pat 
			
			if not t.smooth then
				if t.angle_bar==0 then
					if t.led_effect=="e" then
						pat = create_led_linear_gradient (-delta, 0,delta+ t.width,0,col_alp,col_led)
					elseif t.led_effect=="a" then
						pat = create_led_linear_gradient (t.width/2, -t.height/2+y1,t.width/2,0+t.height/2+y1,col_alp,col_led)					
					elseif  t.led_effect=="r" then
						pat = create_led_radial_gradient (t.width/2, y1, 0, t.width/2,y1,t.width/1.5,col_alp,col_led,2)	
					else
						pat = cairo_pattern_create_rgba  (rgb_to_r_g_b(col_alp))
					end
				else
					 if t.led_effect=="a"  then
						 pat = create_led_radial_gradient (0, 0, t.radius+(t.height+t.space)*(pt-1),
														 0, 0, t.radius+(t.height+t.space)*(pt),						 
											 col_alp,col_led,3)	
					else
						pat = cairo_pattern_create_rgba  (rgb_to_r_g_b(col_alp))					
					end
					
				end
			else
				
				if light_on then
					if t.angle_bar==0 then
						pat = create_smooth_linear_gradient(t.width/2, t.height/2, t.width/2,-(t.blocks-0.5)*(t.height+t.space))
					else
						pat = create_smooth_radial_gradient(0, 0, (t.height+t.space),  0,0,(t.blocks+1)*(t.height+t.space),2)
					end
				else		
					pat = cairo_pattern_create_rgba  (rgb_to_r_g_b(t.bg_colour))
				end
			end
			cairo_set_source (cr, pat)
			cairo_pattern_destroy(pat)

			--draw a block
			if t.angle_bar==0 then
				cairo_move_to(cr,0,y1)
				cairo_line_to(cr,t.width,y1)
			else		
				cairo_arc( cr,0,0,
					t.radius+(t.height+t.space)*(pt)-t.height/2,
					 -t.angle_bar -math.pi/2 ,
					 t.angle_bar -math.pi/2)
			end
			cairo_stroke(cr)
		end	
	end
	
	
	
	
	local function setup_bar_graph()
		--function used to retrieve the value to display and to set the cairo structure
		if t.blocks ~=1 then t.y=t.y-t.height/2 end
		
		local value = 0
		if t.name ~="" then
			value = tonumber(conky_parse(string.format('${%s %s}', t.name, t.arg)))
			--$to_bytes doesn't work when value has a decimal point,
			--https://garage.maemo.org/plugins/ggit/browse.php/?p=monky;a=commitdiff;h=174c256c81a027a2ea406f5f37dc036fac0a524b;hp=d75e2db5ed3fc788fb8514121f67316ac3e5f29f
			--http://sourceforge.net/tracker/index.php?func=detail&aid=3000865&group_id=143975&atid=757310
			--conky bug?
			--value = (conky_parse(string.format('${%s %s}', t.name, t.arg)))
			--if string.match(value,"%w") then
			--	value = conky_parse(string.format('${to_bytes %s}',value))
			--end
		else
			value = tonumber(t.arg)
		end

		if value==nil then value =0 end
		
		pct = 100*value/t.max
		pcb = 100/t.blocks
		
		cairo_set_line_width (cr, t.height)
		cairo_set_line_cap  (cr, cap)
		cairo_translate(cr,t.x,t.y)
		cairo_rotate(cr,t.angle)

		local matrix0 = cairo_matrix_t:create()
		tolua.takeownership(matrix0)
		cairo_matrix_init (matrix0, 1,t.skew_y,t.skew_x,1,0,0)
		cairo_transform(cr,matrix0)

	
		
		--call the drawing function for blocks
		if t.blocks==1 and t.angle_bar==0 then
			draw_single_bar()
			if t.reflection=="t" or t.reflection=="b" then cairo_translate(cr,0,-t.height) end
		else
			draw_multi_bar()
		end

		--dot for reminder
		--[[
		if t.blocks ~=1 then
			cairo_set_source_rgba(cr,1,0,0,1)
			cairo_arc(cr,0,t.height/2,3,0,2*math.pi)
			cairo_fill(cr)
		else
			cairo_set_source_rgba(cr,1,0,0,1)
			cairo_arc(cr,0,0,3,0,2*math.pi)
			cairo_fill(cr)
		end]]
		
		--call the drawing function for reflection and prepare the mask used		
		if t.reflection_alpha>0 and t.angle_bar==0 then
			local pat2
			local matrix1 = cairo_matrix_t:create()
			tolua.takeownership(matrix1)
			if t.angle_bar==0 then
				pts={-delta/2,(t.height+t.space)/2,t.width+delta,-(t.height+t.space)*(t.blocks)}
				if t.reflection=="t" then
					cairo_matrix_init (matrix1,1,0,0,-t.reflection_scale,0,-(t.height+t.space)*(t.blocks-0.5)*2*(t.reflection_scale+1)/2)
					pat2 = cairo_pattern_create_linear (t.width/2,-(t.height+t.space)*(t.blocks),t.width/2,(t.height+t.space)/2)
				elseif t.reflection=="r" then
					cairo_matrix_init (matrix1,-t.reflection_scale,0,0,1,delta+2*t.width,0)
					pat2 = cairo_pattern_create_linear (delta/2+t.width,0,-delta/2,0)
				elseif t.reflection=="l" then
					cairo_matrix_init (matrix1,-t.reflection_scale,0,0,1,-delta,0)
					pat2 = cairo_pattern_create_linear (-delta/2,0,delta/2+t.width,-0)
				else --bottom
					cairo_matrix_init (matrix1,1,0,0,-1*t.reflection_scale,0,(t.height+t.space)*(t.reflection_scale+1)/2)
					pat2 = cairo_pattern_create_linear (t.width/2,(t.height+t.space)/2,t.width/2,-(t.height+t.space)*(t.blocks))
				end
			end
			cairo_transform(cr,matrix1)

			if t.blocks==1 and t.angle_bar==0 then
				draw_single_bar()
				cairo_translate(cr,0,-t.height/2) 
			else
				draw_multi_bar()
			end
			
			
			cairo_set_line_width(cr,0.01)
			cairo_pattern_add_color_stop_rgba (pat2, 0,0,0,0,1-t.reflection_alpha)
			cairo_pattern_add_color_stop_rgba (pat2, t.reflection_length,0,0,0,1)
			if t.angle_bar==0 then
				cairo_rectangle(cr,pts[1],pts[2],pts[3],pts[4])
			end
			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 --reflection
		pct,pcb=nil
	end --setup_bar_graph()
	
	--start here !
	setup_bar_graph()
	cairo_restore(cr)
end

voila et en image
1368829790.png
Sur tout est vert mais quand ça vire au rouge les 10 derniers blocs se dégrade en vert
@+

Dernière modification par loutch (Le 17/05/2013, à 23:33)

Hors ligne

#180 Le 18/05/2013, à 05:27

Didier-T

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

@ loutch,
tu n'a pas mis tous le code, il manque l'entête (la ou est normalement expliqué le fonctionnement du script).

@ enebre,
je suis actuellement en train de finaliser les scripts pour pour le compteur de consommation internet.

Hors ligne

#181 Le 18/05/2013, à 07:55

Didier-T

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

@ enebre,
voici le conky suivi consommation internet.

1368859372.png

le retour terminal

bash ~/.conky/conky-perso/mobistar/lanceur.sh
Conky: desktop window (1600003) is subwindow of root window (1dd)
Conky: window type - normal
Conky: drawing to created window (0x5000002)
Conky: drawing to double buffer
mise a jour
Maj Ok

l'archive qui vas bien.

pour l'installation, tu décompresse l'archive ou tu veux.
puis depuis un terminal (j'insiste), tu lance le script install.sh

bash install.sh

ensuite il te faudra modifier le fichier conkyrc

mousepad ~/.conky/conky-perso/mobistar/conkyrc

pour y indiquer ton identifiant, et ton mot de passe

pour lancer le conkyrc donné en exemple.

bash ~/.conky/conky-perso/mobistar/lanceur.sh

le seul soucis est que tu ne pourras pas l'intégrer à ConkyControl, du moins pour le moment.

si tu a des questions, ou des idées, n'hésite pas.

Hors ligne

#182 Le 18/05/2013, à 08:15

loutch

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

Salutation matinale

@ loutch,
tu n'a pas mis tous le code, il manque l'entête (la ou est normalement expliqué le fonctionnement du script).

Désolé (savait pas )voila:

--[[ BARGRAPH WIDGET
	v2.1 by wlourf (07 Jan. 2011)
	this widget draws a bargraph with different effects 
	http://u-scripts.blogspot.com/2010/07/bargraph-widget.html
	
To call the script in a conky, use, before TEXT
	lua_load /path/to/the/script/bargraph.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:
x,y		- coordinates of the starting point of the bar, default = middle of the conky window
cap		- end of cap line, ossibles values are r,b,s (for round, butt, square), default="b"
		  http://www.cairographics.org/samples/set_line_cap/
angle	- angle of rotation of the bar in degress, default = 0 (i.e. a vertical bar)
		  set to 90 for an horizontal bar
skew_x	- skew bar around x axis, default = 0
skew_y	- skew bar around y axis, default = 0
blocks  - number of blocks to display for a bar (values >0) , default= 10
height	- height of a block, default=10 pixels
width	- width of a block, default=20 pixels
space	- space between 2 blocks, default=2 pixels
angle_bar	- this angle is used to draw a bar on a circular way (ok, this is no more a bar !) default=0
radius		- for cicular bars, internal radius, default=0
			  with radius, parameter width has no more effect.

Colours below are defined into braces {colour in hexadecimal, alpha}
fg_colour	- colour of a block ON, default= {0x00FF00,1}
bg_colour	- colour of a block OFF, default = {0x00FF00,0.5}
alarm		- threshold, values after this threshold will use alarm_colour colour , default=max
alarm_colour - colour of a block greater than alarm, default=fg_colour
smooth		- (true or false), create a gradient from fg_colour to bg_colour, default=false 
mid_colour	- colours to add to gradient, with this syntax {position into the gradient (0 to1), colour hexa, alpha}
			  for example, this table {{0.25,0xff0000,1},{0.5,0x00ff00,1},{0.75,0x0000ff,1}} will add
			  3 colurs to gradient created by fg_colour and alarm_colour, default=no mid_colour
led_effect	- add LED effects to each block, default=no led_effect
			  if smooth=true, led_effect is not used
			  possibles values : "r","a","e" for radial, parallelel, perdendicular to the bar (just try!)
			  led_effect has to be used with theses colours :
fg_led		- middle colour of a block ON, default = fg_colour
bg_led		- middle colour of a block OFF, default = bg_colour
alarm_led	- middle colour of a block > ALARM,  default = alarm_colour

reflection parameters, not avaimable for circular bars
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
reflection			- position of reflection, relative to a vertical bar, default="b"
					  possibles values are : "b","t","l","r" for bottom, top, left, right
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 (10 Feb. 2010) original release
v1.1 (13 Feb. 2010) numeric values can be passed instead conky stats with parameters name="", arg = numeric_value	
v1.2 (28 Feb. 2010) just renamed the widget to bargraph
v1.3 (03 Mar. 2010) added parameters radius & angle_bar to draw the bar in a circular way
v2.0 (12 Jul. 2010) rewrite script + add reflection effects and parameters are now set into tables
v2.1 (07 Jan. 2011) Add draw_me parameter and correct memory leaks, thanks to "Creamy Goodness"

--      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'

----------------START OF PARAMETERS ----------
function conky_main_bars()
	local bars_settings={		
		{
			name="Cpu",
			arg="cpu0",
			max=60,
			bg_colour={0xcacaca,0.2},
			fg_colour={0x00ff00,1},
			mid_colour={{0.25,0xFFFF00,1},{0.5,0xFF8000,1},{0.75,0xFF0000,1}},
			x=90,y=100,
			blocks=30,
			space=1,
			height=2,width=6,
			angle=90,
			smooth = true,
		        },
		{
		name="Cpu",
			arg="cpu1",
			max=60,
			bg_colour={0xcacaca,0.2},
			fg_colour={0x00ff00,1},
			mid_colour={{0.25,0xFFFF00,1},{0.5,0xFF8000,1},{0.75,0xFF0000,1}},
			x=90,y=126,
			blocks=30,
			space=1,
			height=2,width=6,
			angle=90,
			smooth = true	
			},
		{
		name="Cpu",
			arg="cpu2",
			max=60,
			bg_colour={0xcacaca,0.2},
			fg_colour={0x00ff00,1},
			mid_colour={{0.25,0xFFFF00,1},{0.5,0xFF8000,1},{0.75,0xFF0000,1}},
			x=90,y=152,
			blocks=30,
			space=1,
			height=2,width=6,
			angle=90,
			smooth = true	
			},    
		{
		name="Cpu",
			arg="cpu3",
			max=60,
			bg_colour={0xcacaca,0.2},
			fg_colour={0x00ff00,1},
			mid_colour={{0.25,0xFFFF00,1},{0.5,0xFF8000,1},{0.75,0xFF0000,1}},
			x=90,y=178,
			blocks=30,
			space=1,
			height=2,width=6,
			angle=90,
			smooth = true	
			},   
		{       --[ Graph for Memory ]--
                        name="memperc",
                        arg="",
                        max=100,
                        alarm=50,
                        alarm_colour={0xFF0000,0.72},
                        bg_colour={0xcacaca,0.22},
                        fg_colour={0xff8000,1},
                        mid_colour={{0.45,0xFFFF00,0.70}},
                        x=190,y=214,
                        blocks=22,
                        space=1,
                        height=2,width=10,
                        angle=90,
                        smooth=true
                        },
		{       --[ Graph for Swap ]--
                        name="swapperc",
                        arg="",
                        max=100,
                        alarm=50,
                        alarm_colour={0xFF0000,0.72},
                        bg_colour={0xcacaca,0.25},
                        fg_colour={0x00FF00,0.55},
                        mid_colour={{0.45,0xFFFF00,0.70}},
                        x=190,y=229,
                        blocks=22,
                        space=1,
                        height=2,width=10,
                        angle=90,
                        smooth=true
                        },	    
		{       --[ Graph for Root ]--
                        name="fs_used_perc",
                        arg="/",
                        max=100,
                        alarm=50,
                        alarm_colour={0xFF0000,0.72},
                        bg_colour={0xcacaca,0.2},
                        fg_colour={0xa700a7,1},
                        mid_colour={{0.45,0xFFFF00,0.70}},
                        x=190,y=578,
                        blocks=22,
                        space=1,
                        height=2,width=10,
                        angle=90,
                        smooth=true
                        }, 
		{       --[ Graph for Root ]--
                        name="fs_used_perc",
                        arg="/home",
                        max=100,
                        alarm=50,
                        alarm_colour={0xFF0000,0.72},
                        bg_colour={0xcacaca,0.2},
                        fg_colour={0xa700a7,1},
                        mid_colour={{0.45,0xFFFF00,0.70}},
                        x=190,y=591,
                        blocks=22,
                        space=1,
                        height=2,width=10,
                        angle=90,
                        smooth=true
                        },      	    
	}
	
-----------END OF PARAMETERS--------------


    
	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)    
	--prevent segmentation error when reading cpu state
    if tonumber(conky_parse('${updates}'))>3 then
        for i in pairs(bars_settings) do
        	
        	draw_multi_bar_graph(bars_settings[i])
        	
        end
    end
	cairo_destroy(cr)
	cairo_surface_destroy(cs)
	cr=nil

end



function draw_multi_bar_graph(t)
	cairo_save(cr)
	--check values
	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	
	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'")
		return
	end
	if t.name==nil then t.name="" end
	if t.arg==nil then t.arg="" end

	--set default values	
	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.blocks == nil	then t.blocks=10 end
	if t.height == nil	then t.height=10 end
	if t.angle == nil 	then t.angle=0 end
	t.angle = t.angle*math.pi/180
	--line cap style
	if t.cap==nil		then t.cap = "b" end
	local cap="b"
	for i,v in ipairs({"s","r","b"}) do 
		if v==t.cap then cap=v end
	end
	local delta=0
	if t.cap=="r" or t.cap=="s" then delta = t.height end
	if cap=="s" then 	cap = CAIRO_LINE_CAP_SQUARE
	elseif cap=="r" then
		cap = CAIRO_LINE_CAP_ROUND
	elseif cap=="b" then
		cap = CAIRO_LINE_CAP_BUTT
	end
	--end line cap style
	--if t.led_effect == nil	then t.led_effect="r" end
	if t.width == nil	then t.width=20 end
	if t.space == nil	then t.space=2 end
	if t.radius == nil	then t.radius=0 end
	if t.angle_bar == nil	then t.angle_bar=0 end
	t.angle_bar = t.angle_bar*math.pi/360 --halt angle
	
	--colours
	if t.bg_colour == nil 	then t.bg_colour = {0x00FF00,0.5} end
	if #t.bg_colour~=2 		then t.bg_colour = {0x00FF00,0.5} end
	if t.fg_colour == nil 	then t.fg_colour = {0x00FF00,1} end
	if #t.fg_colour~=2 		then t.fg_colour = {0x00FF00,1} end
	if t.alarm_colour == nil 	then t.alarm_colour = t.fg_colour end
	if #t.alarm_colour~=2 		then t.alarm_colour = t.fg_colour end

	if t.mid_colour ~= nil then	
		for i=1, #t.mid_colour do    
		    if #t.mid_colour[i]~=3 then 
		    	print ("error in mid_color table")
		    	t.mid_colour[i]={1,0xFFFFFF,1} 
		    end
		end
    end
    
	if t.bg_led ~= nil and #t.bg_led~=2	then t.bg_led = t.bg_colour end
	if t.fg_led ~= nil and #t.fg_led~=2	then t.fg_led = t.fg_colour end
	if t.alarm_led~= nil and #t.alarm_led~=2 then t.alarm_led = t.fg_led end
	
	if t.led_effect~=nil then
		if t.bg_led == nil then t.bg_led = t.bg_colour end
		if t.fg_led == nil 	then t.fg_led = t.fg_colour end
		if t.alarm_led == nil  then t.alarm_led = t.fg_led end
	end
	

	if t.alarm==nil then t.alarm = t.max end --0.8*t.max end
	if t.smooth == nil then t.smooth = false end

	if t.skew_x == nil then 
		t.skew_x=0 
	else
		t.skew_x = math.pi*t.skew_x/180	
	end
	if t.skew_y == nil then 
		t.skew_y=0
	else
		t.skew_y = math.pi*t.skew_y/180	
	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
	
	--end of default values
	

 	local function rgb_to_r_g_b(col_a)
		return ((col_a[1] / 0x10000) % 0x100) / 255., ((col_a[1] / 0x100) % 0x100) / 255., (col_a[1] % 0x100) / 255., col_a[2]
	end
	
	
	--functions used to create patterns

	local function create_smooth_linear_gradient(x0,y0,x1,y1)
		local pat = cairo_pattern_create_linear (x0,y0,x1,y1)
		cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(t.fg_colour))
		cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(t.alarm_colour))
		if t.mid_colour ~=nil then
			for i=1, #t.mid_colour do
				cairo_pattern_add_color_stop_rgba (pat, t.mid_colour[i][1], rgb_to_r_g_b({t.mid_colour[i][2],t.mid_colour[i][3]}))
			end
		end
		return pat
	end

	local function create_smooth_radial_gradient(x0,y0,r0,x1,y1,r1)
		local pat =  cairo_pattern_create_radial (x0,y0,r0,x1,y1,r1)
		cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(t.fg_colour))
		cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(t.alarm_colour))
		if t.mid_colour ~=nil then
			for i=1, #t.mid_colour do
				cairo_pattern_add_color_stop_rgba (pat, t.mid_colour[i][1], rgb_to_r_g_b({t.mid_colour[i][2],t.mid_colour[i][3]}))
			end
		end
		return pat
	end
	
	local function create_led_linear_gradient(x0,y0,x1,y1,col_alp,col_led)
		local pat = cairo_pattern_create_linear (x0,y0,x1,y1) ---delta, 0,delta+ t.width,0)
		cairo_pattern_add_color_stop_rgba (pat, 0.0, rgb_to_r_g_b(col_alp))
		cairo_pattern_add_color_stop_rgba (pat, 0.5, rgb_to_r_g_b(col_led))
		cairo_pattern_add_color_stop_rgba (pat, 1.0, rgb_to_r_g_b(col_alp))
		return pat
	end

	local function create_led_radial_gradient(x0,y0,r0,x1,y1,r1,col_alp,col_led,mode)
		local pat = cairo_pattern_create_radial (x0,y0,r0,x1,y1,r1)
		if mode==3 then
			cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(col_alp))				
			cairo_pattern_add_color_stop_rgba (pat, 0.5, rgb_to_r_g_b(col_led))
			cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(col_alp))				
		else
			cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(col_led))
			cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(col_alp))				
		end
		return pat
	end






	local function draw_single_bar()
		--this fucntion is used for bars with a single block (blocks=1) but 
		--the drawing is cut in 3 blocks : value/alarm/background
		--not zvzimzblr for circular bar
		local function create_pattern(col_alp,col_led,bg)
			local pat
			
			if not t.smooth then
				if t.led_effect=="e" then
					pat = create_led_linear_gradient (-delta, 0,delta+ t.width,0,col_alp,col_led)
				elseif t.led_effect=="a" then
					pat = create_led_linear_gradient (t.width/2, 0,t.width/2,-t.height,col_alp,col_led)
				elseif  t.led_effect=="r" then
					pat = create_led_radial_gradient (t.width/2, -t.height/2, 0, t.width/2,-t.height/2,t.height/1.5,col_alp,col_led,2)
				else
					pat = cairo_pattern_create_rgba  (rgb_to_r_g_b(col_alp))
				end
			else
				if bg then
					pat = cairo_pattern_create_rgba  (rgb_to_r_g_b(t.bg_colour))
				else
					pat = create_smooth_linear_gradient(t.width/2, 0, t.width/2,-t.height)
				end
			end
			return pat
		end
		
		local y1=-t.height*pct/100
		local y2,y3
		if pct>(100*t.alarm/t.max) then 
			y1 = -t.height*t.alarm/100
			y2 = -t.height*pct/100
			if t.smooth then y1=y2 end
		end
		
		if t.angle_bar==0 then
		
			--block for fg value
			local pat = create_pattern(t.fg_colour,t.fg_led,false)
			cairo_set_source(cr,pat)
			cairo_rectangle(cr,0,0,t.width,y1)
			cairo_fill(cr)
			cairo_pattern_destroy(pat)
		
			-- block for alarm value			
			if not t.smooth and y2 ~=nil then 
				pat = create_pattern(t.alarm_colour,t.alarm_led,false)
				cairo_set_source(cr,pat)
				cairo_rectangle(cr,0,y1,t.width,y2-y1)
				cairo_fill(cr)
				y3=y2
				cairo_pattern_destroy(pat)
			else
				y2,y3=y1,y1
			end
			-- block for bg value
			cairo_rectangle(cr,0,y2,t.width,-t.height-y3)
			pat = create_pattern(t.bg_colour,t.bg_led,true)
			cairo_set_source(cr,pat)
			cairo_pattern_destroy(pat)
			cairo_fill(cr)
		end		
	end  --end single bar
	





	local function draw_multi_bar()
		--function used for bars with 2 or more blocks
		for pt = 1,t.blocks do 
			--set block y
			local y1 = -(pt-1)*(t.height+t.space)
			local light_on=false
			
			--set colors
			local col_alp = t.bg_colour
			local col_led = t.bg_led
			if pct>=(100/t.blocks) or pct>0 then --ligth on or not the block
				if pct>=(pcb*(pt-1))  then 
					light_on = true
					col_alp = t.fg_colour
					col_led = t.fg_led
					if pct>=(100*t.alarm/t.max) and (pcb*pt)>(100*t.alarm/t.max) then 
						col_alp = t.alarm_colour 
						col_led = t.alarm_led 
					end
				end
			end

			--set colors
			--have to try to create gradients outside the loop ?
			local pat 
			
			if not t.smooth then
				if t.angle_bar==0 then
					if t.led_effect=="e" then
						pat = create_led_linear_gradient (-delta, 0,delta+ t.width,0,col_alp,col_led)
					elseif t.led_effect=="a" then
						pat = create_led_linear_gradient (t.width/2, -t.height/2+y1,t.width/2,0+t.height/2+y1,col_alp,col_led)					
					elseif  t.led_effect=="r" then
						pat = create_led_radial_gradient (t.width/2, y1, 0, t.width/2,y1,t.width/1.5,col_alp,col_led,2)	
					else
						pat = cairo_pattern_create_rgba  (rgb_to_r_g_b(col_alp))
					end
				else
					 if t.led_effect=="a"  then
						 pat = create_led_radial_gradient (0, 0, t.radius+(t.height+t.space)*(pt-1),
														 0, 0, t.radius+(t.height+t.space)*(pt),						 
											 col_alp,col_led,3)	
					else
						pat = cairo_pattern_create_rgba  (rgb_to_r_g_b(col_alp))					
					end
					
				end
			else
				
				if light_on then
					if t.angle_bar==0 then
						pat = create_smooth_linear_gradient(t.width/2, t.height/2, t.width/2,-(t.blocks-0.5)*(t.height+t.space))
					else
						pat = create_smooth_radial_gradient(0, 0, (t.height+t.space),  0,0,(t.blocks+1)*(t.height+t.space),2)
					end
				else		
					pat = cairo_pattern_create_rgba  (rgb_to_r_g_b(t.bg_colour))
				end
			end
			cairo_set_source (cr, pat)
			cairo_pattern_destroy(pat)

			--draw a block
			if t.angle_bar==0 then
				cairo_move_to(cr,0,y1)
				cairo_line_to(cr,t.width,y1)
			else		
				cairo_arc( cr,0,0,
					t.radius+(t.height+t.space)*(pt)-t.height/2,
					 -t.angle_bar -math.pi/2 ,
					 t.angle_bar -math.pi/2)
			end
			cairo_stroke(cr)
		end	
	end
	
	
	
	
	local function setup_bar_graph()
		--function used to retrieve the value to display and to set the cairo structure
		if t.blocks ~=1 then t.y=t.y-t.height/2 end
		
		local value = 0
		if t.name ~="" then
			value = tonumber(conky_parse(string.format('${%s %s}', t.name, t.arg)))
			--$to_bytes doesn't work when value has a decimal point,
			--https://garage.maemo.org/plugins/ggit/browse.php/?p=monky;a=commitdiff;h=174c256c81a027a2ea406f5f37dc036fac0a524b;hp=d75e2db5ed3fc788fb8514121f67316ac3e5f29f
			--http://sourceforge.net/tracker/index.php?func=detail&aid=3000865&group_id=143975&atid=757310
			--conky bug?
			--value = (conky_parse(string.format('${%s %s}', t.name, t.arg)))
			--if string.match(value,"%w") then
			--	value = conky_parse(string.format('${to_bytes %s}',value))
			--end
		else
			value = tonumber(t.arg)
		end

		if value==nil then value =0 end
		
		pct = 100*value/t.max
		pcb = 100/t.blocks
		
		cairo_set_line_width (cr, t.height)
		cairo_set_line_cap  (cr, cap)
		cairo_translate(cr,t.x,t.y)
		cairo_rotate(cr,t.angle)

		local matrix0 = cairo_matrix_t:create()
		tolua.takeownership(matrix0)
		cairo_matrix_init (matrix0, 1,t.skew_y,t.skew_x,1,0,0)
		cairo_transform(cr,matrix0)

	
		
		--call the drawing function for blocks
		if t.blocks==1 and t.angle_bar==0 then
			draw_single_bar()
			if t.reflection=="t" or t.reflection=="b" then cairo_translate(cr,0,-t.height) end
		else
			draw_multi_bar()
		end

		--dot for reminder
		--[[
		if t.blocks ~=1 then
			cairo_set_source_rgba(cr,1,0,0,1)
			cairo_arc(cr,0,t.height/2,3,0,2*math.pi)
			cairo_fill(cr)
		else
			cairo_set_source_rgba(cr,1,0,0,1)
			cairo_arc(cr,0,0,3,0,2*math.pi)
			cairo_fill(cr)
		end]]
		
		--call the drawing function for reflection and prepare the mask used		
		if t.reflection_alpha>0 and t.angle_bar==0 then
			local pat2
			local matrix1 = cairo_matrix_t:create()
			tolua.takeownership(matrix1)
			if t.angle_bar==0 then
				pts={-delta/2,(t.height+t.space)/2,t.width+delta,-(t.height+t.space)*(t.blocks)}
				if t.reflection=="t" then
					cairo_matrix_init (matrix1,1,0,0,-t.reflection_scale,0,-(t.height+t.space)*(t.blocks-0.5)*2*(t.reflection_scale+1)/2)
					pat2 = cairo_pattern_create_linear (t.width/2,-(t.height+t.space)*(t.blocks),t.width/2,(t.height+t.space)/2)
				elseif t.reflection=="r" then
					cairo_matrix_init (matrix1,-t.reflection_scale,0,0,1,delta+2*t.width,0)
					pat2 = cairo_pattern_create_linear (delta/2+t.width,0,-delta/2,0)
				elseif t.reflection=="l" then
					cairo_matrix_init (matrix1,-t.reflection_scale,0,0,1,-delta,0)
					pat2 = cairo_pattern_create_linear (-delta/2,0,delta/2+t.width,-0)
				else --bottom
					cairo_matrix_init (matrix1,1,0,0,-1*t.reflection_scale,0,(t.height+t.space)*(t.reflection_scale+1)/2)
					pat2 = cairo_pattern_create_linear (t.width/2,(t.height+t.space)/2,t.width/2,-(t.height+t.space)*(t.blocks))
				end
			end
			cairo_transform(cr,matrix1)

			if t.blocks==1 and t.angle_bar==0 then
				draw_single_bar()
				cairo_translate(cr,0,-t.height/2) 
			else
				draw_multi_bar()
			end
			
			
			cairo_set_line_width(cr,0.01)
			cairo_pattern_add_color_stop_rgba (pat2, 0,0,0,0,1-t.reflection_alpha)
			cairo_pattern_add_color_stop_rgba (pat2, t.reflection_length,0,0,0,1)
			if t.angle_bar==0 then
				cairo_rectangle(cr,pts[1],pts[2],pts[3],pts[4])
			end
			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 --reflection
		pct,pcb=nil
	end --setup_bar_graph()
	
	--start here !
	setup_bar_graph()
	cairo_restore(cr)
end

@+

Hors ligne

#183 Le 18/05/2013, à 08:38

loutch

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

Re

Je suis une bille pour ne pas dire un calot j'ai lu et relu et j'ai vu qu'il faut mettre 100 à coté de MAX=  et moi j'avais laissé 60 .

@+

Dernière modification par loutch (Le 18/05/2013, à 08:39)

Hors ligne

#184 Le 18/05/2013, à 08:40

enebre

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

Bonjour Didier,

Merci pour ce conky qui me plait déjà beaucoup, j'ai bien suivi la procédure d'installation et de dépaquetage.
Mais voilà le retour du terminal :

 $ ▶ bash ~/.conky/conky-perso/mobistar/lanceur.sh
Conky: desktop window (1400003) is subwindow of root window (273)
Conky: window type - normal
Conky: drawing to created window (0x1c00002)
Conky: drawing to double buffer
mise a jour
Can't locate Test/WWW/Selenium.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at /home/enebre/.conky/conky-perso/mobistar/selenium.perl line 4.
BEGIN failed--compilation aborted at /home/enebre/.conky/conky-perso/mobistar/selenium.perl line 4.

deuxième essai avec les droits au Selenium.perl :

....Conky: drawing to double buffer
mise a jour
Conky: llua_getnumber: function conky_mobistar_pourc didn't return a number, result discarded
Conky: llua_getnumber: function conky_mobistar_pourc didn't return a number, result discarded
Conky: llua_getstring: function conky_mobistar_pourc didn't return a string, result discarded
Conky: llua_getstring: function conky_mobistar_conso didn't return a string, result discarded
Conky: llua_getstring: function conky_mobistar_conso didn't return a string, result discarded
Can't locate Test/WWW/Selenium.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at /home/enebre/.conky/conky-perso/mobistar/selenium.perl line 4.
BEGIN failed--compilation aborted at /home/enebre/.conky/conky-perso/mobistar/selenium.perl line 4.
Conky: llua_getnumber: function conky_mobistar_pourc didn't return a number, result discarded
et cette ligne se répète à l'infini....

Dernière modification par enebre (Le 18/05/2013, à 08:47)

Hors ligne

#185 Le 18/05/2013, à 09:29

Didier-T

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

@ enebre,
c'est étrange, le script d'installation installe en premier cette dépendance.
fait ceci

sudo apt-get install libtest-www-selenium-perl

sa devrai régler le problème

Hors ligne

#186 Le 18/05/2013, à 09:33

enebre

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

En effet Didier il n'était pas installé, il reste néanmoins un autre petit soucis.

Error requesting http://localhost:4444/selenium-server/driver/:
500 Can't connect to localhost:4444 (Connexion refusée)
Conky: llua_getnumber: function conky_mobistar_pourc didn't return a number, result discarded
^CConky: received SIGINT or SIGTERM to terminate. bye!
Xvfb: aucun processus trouvé

Hors ligne

#187 Le 18/05/2013, à 09:55

Didier-T

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

en fait, rien ne c'est installé, étrange.
donc

sudo apt-get install xvfb
sudo apt-get install -y default-jre

Hors ligne

#188 Le 18/05/2013, à 09:56

Didier-T

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

loutch a écrit :

Re

Je suis une bille pour ne pas dire un calot j'ai lu et relu et j'ai vu qu'il faut mettre 100 à coté de MAX=  et moi j'avais laissé 60 .

@+

je ne l'avais pas remarqué non plus tongue

Hors ligne

#189 Le 18/05/2013, à 09:59

ljere

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

tu peux editer le fichier install.sh enebre didier-t a fait une faute de frappe
voila le début

#!/bin/bash
# Créé par Didier-T (forum.ubuntu-fr.org)

gksodu

il faut remplacer par

#!/bin/bash
# Créé par Didier-T (forum.ubuntu-fr.org)

gksudo

ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon

Hors ligne

#190 Le 18/05/2013, à 10:02

enebre

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

Encore un petit peu Didier, je sens que ça vient smile

Error requesting http://localhost:4444/selenium-server/driver/:
500 Can't connect to localhost:4444 (Connexion refusée)
Conky: llua_getnumber: function conky_mobistar_pourc didn't return a number, result discarded

http://www.perlmonks.org/?node_id=809121
j'y ai trouvé ceci, est ce en rapport, et que faire ??

Are you running the Selenium core? You need to have Selenium running before you can use the Selenium Remote-Control (driven by WWW::Selenium. It should be along the lines of (from memory and likely off a bit):

You can verify that you have something listening on port 4444 by doing a netstat -an | grep LISTEN | grep 4444. If you don't see anything then you haven't properly started Selenium.

Dernière modification par enebre (Le 18/05/2013, à 10:10)

Hors ligne

#191 Le 18/05/2013, à 10:06

Didier-T

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

on vas faire de petits essais

Xvfb :99 -ac

donne moi le retour terminal, puis ferme la fenetre.

export DISPLAY=:99
java -Djava.security.egd=file:/dev/./urandom -jar ~/.conky/conky-perso/mobistar/selenium-server-standalone-2.32.0.jar -browserSessionReuse

donne moi le retour terminal

Hors ligne

#192 Le 18/05/2013, à 10:12

enebre

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

$ ▶ Xvfb :99 -ac
Initializing built-in extension Generic Event Extension
Initializing built-in extension SHAPE
Initializing built-in extension MIT-SHM
Initializing built-in extension XInputExtension
Initializing built-in extension XTEST
Initializing built-in extension BIG-REQUESTS
Initializing built-in extension SYNC
Initializing built-in extension XKEYBOARD
Initializing built-in extension XC-MISC
Initializing built-in extension SECURITY
Initializing built-in extension XINERAMA
Initializing built-in extension XFIXES
Initializing built-in extension RENDER
Initializing built-in extension RANDR
Initializing built-in extension COMPOSITE
Initializing built-in extension DAMAGE
Initializing built-in extension MIT-SCREEN-SAVER
Initializing built-in extension DOUBLE-BUFFER
Initializing built-in extension RECORD
Initializing built-in extension DPMS
Initializing built-in extension X-Resource
Initializing built-in extension XVideo
Initializing built-in extension XVideo-MotionCompensation
Initializing built-in extension SELinux
Initializing built-in extension GLX
[dix] Could not init font path element /usr/share/fonts/X11/cyrillic, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/100dpi/:unscaled, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/75dpi/:unscaled, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/100dpi, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/75dpi, removing from list!
[dix] Could not init font path element /var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType, removing from list!

Hors ligne

#193 Le 18/05/2013, à 10:12

Didier-T

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

parfait
reste a voir le second retour.

Dernière modification par Didier-T (Le 18/05/2013, à 10:13)

Hors ligne

#194 Le 18/05/2013, à 10:13

enebre

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

enebre @ enebre-R3600  ~
└─ $ ▶ export DISPLAY=:99
enebre @ enebre-R3600  ~
└─ $ ▶ java -Djava.security.egd=file:/dev/./urandom -jar ~/.conky/conky-perso/mobistar/selenium-server-standalone-2.32.0.jar -browserSessionReuse
mai 18, 2013 11:12:33 AM org.openqa.grid.selenium.GridLauncher main
INFO: Launching a standalone server
11:12:44.053 INFO - Java: Oracle Corporation 23.7-b01
11:12:44.065 INFO - OS: Linux 3.8.0-19-generic i386
11:12:44.126 INFO - v2.32.0, with Core v2.32.0. Built from revision 6c40c18
11:12:44.127 INFO - Will recycle browser sessions when possible.
11:12:44.651 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
11:12:44.656 INFO - Version Jetty/5.1.x
11:12:44.659 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]
11:12:44.662 INFO - Started HttpContext[/selenium-server,/selenium-server]
11:12:44.663 INFO - Started HttpContext[/,/]
11:12:44.734 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@951aeb
11:12:44.735 INFO - Started HttpContext[/wd,/wd]
11:12:44.750 INFO - Started SocketListener on 0.0.0.0:4444
11:12:44.751 INFO - Started org.openqa.jetty.jetty.Server@bb94d9

Hors ligne

#195 Le 18/05/2013, à 10:15

Didier-T

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

tous fonctionne bien.
refait un test avec le lanceur

Hors ligne

#196 Le 18/05/2013, à 10:16

enebre

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

pareil il bloque sur 4444

Hors ligne

#197 Le 18/05/2013, à 10:17

enebre

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

enebre @ enebre-R3600  ~
└─ $ ▶ bash ~/.conky/conky-perso/mobistar/lanceur.sh
Conky: desktop window (1600003) is subwindow of root window (273)
Conky: window type - normal
Conky: drawing to created window (0x4c00002)
Conky: drawing to double buffer
mise a jour
Conky: llua_getnumber: function conky_mobistar_pourc didn't return a number, result discarded
Conky: llua_getnumber: function conky_mobistar_pourc didn't return a number, result discarded
Conky: llua_getstring: function conky_mobistar_pourc didn't return a string, result discarded
Conky: llua_getstring: function conky_mobistar_conso didn't return a string, result discarded
Conky: llua_getstring: function conky_mobistar_conso didn't return a string, result discarded
Error requesting http://localhost:4444/selenium-server/driver/:
500 Can't connect to localhost:4444 (Connexion refusée)
Conky: llua_getnumber: function conky_mobistar_pourc didn't return a number, result discarded

Hors ligne

#198 Le 18/05/2013, à 10:18

Didier-T

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

firefox est installé cher toi ?

Hors ligne

#199 Le 18/05/2013, à 10:22

enebre

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

oui j'utilise firefox, je viens de trouver ceci...

Error requesting http://localhost:4444/selenium-server/driver/?cmd=getNewBrowserSession&1=*chrome&2=http%3A%2F%2Ffr.yahoo.com%2F:
500 Can't connect to localhost:4444 (connect: Connexion refusée)
# Looks like your test died before it could output anything.
zsh: exit 255   perl perl.pl


Ce qui signifie qu'il n'y a pas de serveur selenium de lancé.


Pour lancer un serveur selenium, il y a plusieurs méthodes :

1 - On télécharge le jar de selenium-server et on le lancer en java


    firefox http://seleniumhq.org/download/
    java -jar selenium-server.jar



2 - Sinon, on exécute le script groovy suivant (Il s'occupe de télécharger et lancer Selenium Server)


    import com.thoughtworks.selenium.*
    import org.openqa.selenium.server.*

    @Grab(group='org.seleniumhq.selenium.server', module='selenium-server', version='1.0.1')

    def server = new SeleniumServer()
    server.main(new String[0])
    println("Started")

http://geek-du-soir.blogspot.be/2011/03 … buntu.html

Si ça aide smile

Dernière modification par enebre (Le 18/05/2013, à 10:23)

Hors ligne

#200 Le 18/05/2013, à 10:23

ljere

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

tu n'aurais pas un parefeu d'activé?


ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon

Hors ligne