Conky

Bureaux,conky et autres personnalisations esthétiques.
Avatar du membre
loutch
Messages : 517
Enregistré le : lun. 13 juil. 2015 17:32
Localisation : Sarreguemines

Re: Conky

Message par loutch »

Dernier message de la page précédente :

Hello

Un tout simple:

Code : Tout sélectionner


background yes
use_xft yes
xftfont URW Chancery L:style=Bold:size=10
xftalpha 1
update_interval 1.0
total_run_times 0
own_window yes
own_window_transparent yes
own_window_argb_visual yes
own_window_type normal
own_window_hints undecorated,below,skip_taskbar,skip_pager
double_buffer yes
minimum_size 700 50
maximum_width 700
text_buffer_size 2048
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
default_color ffffff
default_outline_color black
alignment top_left
gap_x 50
gap_y 780
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale yes
# Fonctionne uniquement avec les polices Fixes
#use_spacer yes
imlib_cache_size 0 
 uppercase no



TEXT

${voffset 20}${color EAEAEA}${font GE Inspira:pixelsize=120}${time %H:%M}${font}${voffset -84}${offset 10}${color FFA300}${font GE Inspira:pixelsize=42}${time %d} ${voffset -15}${color EAEAEA}${font GE Inspira:pixelsize=22}${time  %B} ${time %Y}${font}${voffset 24}${font GE Inspira:pixelsize=58}${offset -148}${time %A}${font}
${voffset 10}${offset 12}${font Ubuntu:pixelsize=12}${color FFA300}HD ${offset 9}$color${fs_free /} / ${fs_size /}${offset 30}${color FFA300}RAM ${offset 9}$color$mem / $memmax${offset 30}${color FFA300}CPU ${offset 9}$color${cpu cpu0}%
${voffset 70}
Image
@+
Modifié en dernier par zeb le mer. 29 avr. 2020 14:55, modifié 1 fois.
Raison : image mise sur FFLMpics
HP Pavilion g 7 1357 sf avec ssd Tessa cinnamon Mageia 7rc mate
Asus ROG avec xubuntu 18.04 et xubuntu 19.04

Image

zeb
Messages : 16473
Enregistré le : ven. 19 juin 2015 22:13
Localisation : plus ici

Re: Conky

Message par zeb »

Salut, Robinwood m'a demandé mon conky,
Capture.png
en voici le code:

Code : Tout sélectionner

  background yes
    use_xft yes
    xftfont HandelGotD:size=9
    xftalpha 0.5
    update_interval 1.0
    total_run_times 0
    own_window yes
    own_window_type override
    own_window_transparent yes
    own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
    double_buffer yes
    minimum_size 220
    maximum_width 300
    draw_shades no
    draw_outline no
    draw_borders no
    draw_graph_borders no
    default_color green
    default_shade_color red
    default_outline_color green
    alignment top_right
    gap_x 10
    gap_y 10
    no_buffers yes
    uppercase no
    cpu_avg_samples 4
    net_avg_samples 4
    override_utf8_locale yes

 
    TEXT
 ${color1}${font URW Chancery L:style=Medium Italic:pixelsize=25}-Nous sommes le:
  ${color1}${font URW Chancery L:style=Medium Italic:pixelsize=25}${time %A %d %B}${font}${color}
 ${color1}${font URW Chancery L:style=Medium Italic:pixelsize=25}-depuis:
  ${color1}${font URW Chancery L:style=Medium Italic:pixelsize=34}${time %H:%M:%S}${font}${color}

${color}${font Ozone:style=Bold:size=10}-ROCESSEUR ${hr 2}
  ${font}core 1  ${hwmon 1 temp 2}°C ${goto 100}$alignr  ${cpu cpu1}%
  ${cpubar cpu1}
  core 2  ${hwmon 1 temp 3}°C ${goto 100}$alignr  ${cpu cpu2}%
  ${cpubar cpu2}
  core 3  ${hwmon 1 temp 4}°C ${goto 100}$alignr  ${cpu cpu3}%
  ${cpubar cpu3}
  core 4  ${hwmon 1 temp 5}°C ${goto 100}$alignr  ${cpu cpu4}%
  ${cpubar cpu4}
    
  Frequence globale ${freq_g} GHz
    
  Temperature cpu ${hwmon 1 temp 1} °C
${color orange}${hr 2}
  ${font Ozone:style=Bold:size=10}Vitesse ventilo ${hwmon 2 fan 1} RPM
    
${color}${font Ozone:style=Bold:size=10}-MEMOIRE ${hr 2}
  ${font}RAM $alignc $mem / $memmax $alignr $memperc%
  $membar

${color orange}${font}-DISQUE ${hr 2}
  ${font}Home $alignc ${fs_used /home} / ${fs_size /home} $alignr ${fs_used_perc /home}%
  ${fs_bar /home}
  ${font}Racine $alignc ${fs_used /} / ${fs_size /} $alignr ${fs_used_perc /}%
  ${fs_bar /}
  ${font}Backup $alignc ${fs_used /mnt/sauvegarde} / ${fs_size /mnt/sauvegarde} $alignr ${fs_used_perc /mnt/sauvegarde}%
  ${fs_bar /mnt/sauvegarde}
 
${color}${font Ozone:style=Bold:size=10}-PROCESS ${hr 2}
${font}Noms${goto 120}CPU${goto 100}${alignr}RAM
${color #e09495}${top name 1}${goto 110}${top cpu 1}${goto 100}${alignr}${top_mem mem_res 1}
${color #e0d094}${top name 2}${goto 110}${top cpu 2}${goto 100}${alignr}${top_mem mem_res 2}
${color1}${top name 3}${goto 110}${top cpu 3}${goto 100}${alignr}${top_mem mem_res 3}
${color1}${top name 4}${goto 110}${top cpu 4}${goto 100}${alignr}${top_mem mem_res 4}
${color1}${top name 5}${goto 110}${top cpu 5}${goto 100}${alignr}${top_mem mem_res 5}

${color}${font Ozone:style=Bold:size=10}-RESEAU ${color}${hr 2}
  ${font}${color orange}Down:${color orange} ${downspeedf eth0}k/s
  ${color orange}Up:${color orange} ${upspeedf eth0}k/s
${hr 2} 
${font sans-serif:size=8,weight:bold}${color}IP${alignr}PORT
${font sans-serif:size=8,weight:normal}${color #000000}${tcp_portmon 1 65535 rip  0}${alignr 1}${tcp_portmon 1 65535 rport  0}
${font sans-serif:size=8,weight:normal}${color #000000}${tcp_portmon 1 65535 rip  1}${alignr 1}${tcp_portmon 1 65535 rport  1}
${font sans-serif:size=8,weight:normal}${color #000000}${tcp_portmon 1 65535 rip  2}${alignr 1}${tcp_portmon 1 65535 rport  2}
${font sans-serif:size=8,weight:normal}${color #000000}${tcp_portmon 1 65535 rip  3}${alignr 1}${tcp_portmon 1 65535 rport  3}
${font sans-serif:size=8,weight:normal}${color #000000}${tcp_portmon 1 65535 rip  4}${alignr 1}${tcp_portmon 1 65535 rport  4}
${font sans-serif:size=8,weight:normal}${color #000000}${tcp_portmon 1 65535 rip  5}${alignr 1}${tcp_portmon 1 65535 rport  5}
${font sans-serif:size=8,weight:normal}${color1}${tcp_portmon 1 65535 rip  6}${alignr 1}${tcp_portmon 1 65535 rport  6}
${font sans-serif:size=8,weight:normal}${color1}${tcp_portmon 1 65535 rip  7}${alignr 1}${tcp_portmon 1 65535 rport  7}
${font sans-serif:size=8,weight:normal}${color1}${tcp_portmon 1 65535 rip  8}${alignr 1}${tcp_portmon 1 65535 rport  8}
${font sans-serif:size=8,weight:normal}${color1}${tcp_portmon 1 65535 rip  9}${alignr 1}${tcp_portmon 1 65535 rport  9}
${font sans-serif:size=8,weight:normal}${color1}${tcp_portmon 1 65535 rip 10}${alignr 1}${tcp_portmon 1 65535 rport 10}
${font sans-serif:size=8,weight:normal}${color1}${tcp_portmon 1 65535 rip 11}${alignr 1}${tcp_portmon 1 65535 rport 11}
${font sans-serif:size=8,weight:normal}${color1}${tcp_portmon 1 65535 rip 12}${alignr 1}${tcp_portmon 1 65535 rport 12}
${font sans-serif:size=8,weight:normal}${color1}${tcp_portmon 1 65535 rip 13}${alignr 1}${tcp_portmon 1 65535 rport 13}
${font sans-serif:size=8,weight:normal}${color1}${tcp_portmon 1 65535 rip 14}${alignr 1}${tcp_portmon 1 65535 rport 14}
Bien sur il faut conky-all et configurer en fonction de son matériel.

Avatar du membre
Robinwood
Messages : 6843
Enregistré le : mar. 28 juil. 2015 20:30
Localisation : Auvergne

Re: Conky

Message par Robinwood »

Reçu 5/5, MERCI.
Intel nuc8i3phn Xero Linux
Packard Bell Imedia S2110 6Go RAM
linux mint 21 xfce
Firefox Audacious Dragon player

zeb
Messages : 16473
Enregistré le : ven. 19 juin 2015 22:13
Localisation : plus ici

Re: Conky

Message par zeb »

C'est moi qui te remercie, j'ai repéré au moins une faute

Avatar du membre
loutch
Messages : 517
Enregistré le : lun. 13 juil. 2015 17:32
Localisation : Sarreguemines

Re: Conky

Message par loutch »

Hello

Un petit avec du lua genre équalizer :

Code : Tout sélectionner

background yes
use_xft yes
xftfont URW Chancery L:style=Bold:size=10
xftalpha 1
update_interval 1.0
total_run_times 0
own_window yes
own_window_transparent yes
own_window_argb_visual yes
own_window_type normal
own_window_hints undecorated,below,skip_taskbar,skip_pager
double_buffer yes
minimum_size 400 250
maximum_width 400
text_buffer_size 2048
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
default_color ffffff
default_outline_color black
alignment tl
gap_x 20
gap_y 60
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale yes
# Fonctionne uniquement avec les polices Fixes
#use_spacer yes {color 87C9FF}
imlib_cache_size 0 
uppercase no

lua_load ~/.conky/dna/lua/conky_eq.lua
lua_draw_hook_pre main_bars


TEXT

${voffset 20} ${goto 8}cpu ${goto 40}temp                                                            ${goto 77}carte         ${goto 110}ram         ${goto 144}home                   ${goto 182}root             ${goto 215}down                 ${goto 256}up                 ${goto 287}wifi                               ${goto 318}disque
${goto 9}${cpu cpu0}%      ${goto 40}${exec expr `cat /sys/class/hwmon/hwmon2/temp1_input` / 1000}°C ${goto 77}${acpitemp} C ${goto 110}${memperc}% ${goto 144}${fs_used_perc /home}% ${goto 182}${fs_free_perc}% ${goto 218}${downspeedf wlp2s0} ${goto 254}${upspeedf wlp2s0} ${goto 289}${wireless_link_qual_perc wlp2s0}% ${goto 320}${execi 120 hddtemp -n /dev/sda} °C 

le lua :

Code : Tout sélectionner

--[[ Equalizer modified by plusdm 2012
	 	
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, possibles 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 available 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",

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

]]

require 'cairo'

----------------START OF PARAMETERS ----------
function conky_main_bars()
	local bars_settings={
		{
			name="cpu",
			arg="cpu",
			max=100,
			alarm=80,
			bg_colour={0xfffff,0.08},
			fg_colour={0x6699cc,0.80},
			alarm_colour={0xffffffcc,0.80},
			x=5,y=45,
			blocks=5,
			height=4,width=25,
			angle=360,
			smooth=true,
			cap="r",
			skew_y=0,
                        space=4,
			mid_colour={{0.5,0xfffff,0.60}}
		},
		{
			name="exec",
			arg="exec expr `cat /sys/class/hwmon/hwmon2/temp1_input` / 1000",
			max=100,
			alarm=80,
			bg_colour={0xfffff,0.08},
			fg_colour={0x6699cc,0.80},
			alarm_colour={0xffffffcc,0.80},
			x=40,y=45,
			blocks=5,
			height=4,width=25,
			angle=360,
			smooth=true,
			cap="r",
			skew_y=0,
                        space=4,
			mid_colour={{0.5,0xfffff,0.60}}
		},
		{
			name="hwmon",
			arg="1 temp 1",
			max=100,
			alarm=80,
			bg_colour={0xfffff,0.08},
			fg_colour={0x6699cc,0.80},
			alarm_colour={0xffffffcc,0.80},
			x=75,y=45,
			blocks=5,
			height=4,width=25,
			angle=360,
			smooth=true,
			cap="r",
			skew_y=0,
                        space=4,
			mid_colour={{0.5,0xfffff,0.60}}
		},
		{
			name="memperc",
			arg="memperc",
			max=100,
			alarm=80,
			bg_colour={0xfffff,0.08},
			fg_colour={0x6699cc,0.80},
			alarm_colour={0xffffffcc,0.80},
			x=110,y=45,
			blocks=5,
			height=4,width=25,
			angle=360,
			smooth=true,
			cap="r",
			skew_y=0,
                        space=4,
			mid_colour={{0.5,0xfffff,0.60}}
		},
		{
			name="fs_used_perc",
			arg="/home",
			max=100,
			alarm=80,
			bg_colour={0xfffff,0.08},
			fg_colour={0x6699cc,0.80},
			alarm_colour={0xffffffcc,0.80},
			x=145,y=45,
			blocks=5,
			height=4,width=25,
			angle=360,
			smooth=true,
			cap="r",
			skew_y=0,
                        space=4,
			mid_colour={{0.5,0xfffff,0.60}}
		},
		{
			name="fs_used_perc",
			arg="/",
			max=100,
			alarm=80,
			bg_colour={0xfffff,0.08},
			fg_colour={0x6699cc,0.80},
			alarm_colour={0xffffffcc,0.80},
			x=180,y=45,
			blocks=5,
			height=4,width=25,
			angle=360,
			smooth=true,
			cap="r",
			skew_y=0,
                        space=4,
			mid_colour={{0.5,0xfffff,0.60}}
		},
		{
			name="downspeedf",
			arg="wlp2s0",
			max=350,
			alarm=160,
			bg_colour={0xfffff,0.08},
			fg_colour={0x6699cc,0.80},
			alarm_colour={0xffffffcc,0.80},
			x=215,y=45,
			blocks=5,
			height=4,width=25,
			angle=360,
			smooth=true,
			cap="r",
			skew_y=0,
                        space=4,
			mid_colour={{0.5,0xfffff,0.60}}
		},
		{
			name="upspeedf",
			arg="wlp2s0",
			max=100,
			alarm=200,
			bg_colour={0xfffff,0.08},
			fg_colour={0x6699cc,0.80},
			alarm_colour={0xffffffcc,0.80},
			x=250,y=45,
			blocks=5,
			height=4,width=25,
			angle=360,
			smooth=true,
			cap="r",
			skew_y=0,
                        space=4,
			mid_colour={{0.5,0xfffff,0.60}}
		},
		{
			name="wireless_link_qual_perc",
			arg="wlp2s0",
			max=100,
			alarm=80,
			bg_colour={0xfffff,0.08},
			fg_colour={0x6699cc,0.80},
			alarm_colour={0xffffffcc,0.80},
			x=285,y=45,
			blocks=5,
			height=4,width=25,
			angle=360,
			smooth=true,
			cap="r",
			skew_y=0,
                        space=4,
			mid_colour={{0.5,0xfffff,0.60}}
		},
		                {
			name="execi",
			arg="120 hddtemp -n /dev/sda",
			max=100,
			alarm=80,
			bg_colour={0xfffff,0.08},
			fg_colour={0x6699cc,0.80},
			alarm_colour={0xfffffcc,0.80},
			x=320,y=45,
			blocks=5,
			height=4,width=25,
			angle=360,
			smooth=true,
			cap="r",
			skew_y=0,
                        space=4,
                        reflection=4,
			mid_colour={{0.5,0xfffff,0.60}}
		},
						
	}
	
-----------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

il faudra modifier la partie internet dans le conkyrc et dans le lua en fonction de votre configuration.


@+
Fichiers joints
06.png
06.png (25.16 Kio) Vu 2387 fois
HP Pavilion g 7 1357 sf avec ssd Tessa cinnamon Mageia 7rc mate
Asus ROG avec xubuntu 18.04 et xubuntu 19.04

Image

zeb
Messages : 16473
Enregistré le : ven. 19 juin 2015 22:13
Localisation : plus ici

Re: Conky

Message par zeb »

Salut loutch,
Très joli cet equalizer, il va falloir que je change le mien car je commence à me lasser, tes exemples me donnent des idées.
À bientôt pour des demandes de conseils.

Mint49

Re: Conky

Message par Mint49 »

Bonjour à toutes et tous,

Est-il possible de m'indiquer ou trouver un tutoriel sur Conky complet et compréhensible pour le commun des mortels ? (celui sur Ubuntu.fr est confus et manque d'indications claires)
Merci d'avance

Avatar du membre
loutch
Messages : 517
Enregistré le : lun. 13 juil. 2015 17:32
Localisation : Sarreguemines

Re: Conky

Message par loutch »

Hello

Regarde dans le wiki de MLO.org j'avais @ l'époque fait un petit truc sympa

http://www.mageialinux-online.org/wiki/conky-bases-et



@+
HP Pavilion g 7 1357 sf avec ssd Tessa cinnamon Mageia 7rc mate
Asus ROG avec xubuntu 18.04 et xubuntu 19.04

Image

zeb
Messages : 16473
Enregistré le : ven. 19 juin 2015 22:13
Localisation : plus ici

Re: Conky

Message par zeb »


Mint49

Re: Conky

Message par Mint49 »

Salut,

Merci à vous deux pour ces liens très intéressants

Avatar du membre
loutch
Messages : 517
Enregistré le : lun. 13 juil. 2015 17:32
Localisation : Sarreguemines

Re: Conky

Message par loutch »

Hello

Conky glanés sur la toile et que j'ai modifiés (pour certains, remplacement du lua par des graphs conky – ça prend moins de ressources), le pack d'origine est ici :
http://www.deviantart.com/art/ConkyBar- ... -401254455

Cpu:

Code : Tout sélectionner

background yes
use_xft yes
xftfont URW Chancery L:style=Bold:size=10
xftalpha 1
update_interval 1.0
total_run_times 0
own_window yes
own_window_transparent yes
own_window_argb_visual yes
own_window_type normal
own_window_hints undecorated,below,skip_taskbar,skip_pager
double_buffer yes
minimum_size 310 120
maximum_width 310
text_buffer_size 2048
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
default_color ffffff 		#220 220 220	Gainsboro
color0 1793d0			#Special Color
color1 DDDDDD			#Shades of grey
color2 AAAAAA
color3 888888
default_outline_color black
alignment tl
gap_x 10
gap_y 720
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale yes
# Fonctionne uniquement avec les polices Fixes
#use_spacer yes
imlib_cache_size 0 
uppercase no


TEXT

${GOTO 50}Processeur
${GOTO 50}${font}Utilisation Avg: ${cpu cpu0}% ${GOTO 215}${font}Freq: ${freq_g} Ghz
${goto 36}${voffset -10}${cpugraph cpu0 20,250 1793d0 1793d0}
${goto 36}${voffset -7}${cpugraph cpu2 -20,250 1793d0 1793d0}
${voffset -10}${GOTO 50}${color0}${top name 1}${GOTO 255}${top cpu 1}%
             ${GOTO 50}${color1}${top name 2}${GOTO 255}${top cpu 2}%
             ${GOTO 50}${color2}${top name 3}${GOTO 255}${top cpu 3}%
${voffset 5} ${GOTO 50}${color}${GOTO 100}${cpu cpu1}%${GOTO 150}${cpu cpu2}%${GOTO 200}${cpu cpu3} %${GOTO 250}${cpu cpu4} %
${GOTO 95}${exec expr `cat /sys/class/hwmon/hwmon2/temp1_input` / 1000}°C${GOTO 145}${exec expr `cat /sys/class/hwmon/hwmon2/temp2_input` / 1000}°C${GOTO 195}${exec expr `cat /sys/class/hwmon/hwmon2/temp3_input` / 1000}°C${GOTO 245}${exec expr `cat /sys/class/hwmon/hwmon2/temp1_input` / 1000}°C
${image ~/.conky/ConkyBar/img/cpu.png -p 0,0 -s 45x45}
${voffset -50}

Mémoire :

Code : Tout sélectionner

background yes
use_xft yes
xftfont URW Chancery L:style=Bold:size=10
xftalpha 1
update_interval 1.0
total_run_times 0
own_window yes
own_window_transparent yes
own_window_argb_visual yes
own_window_type normal
own_window_hints undecorated,below,skip_taskbar,skip_pager
double_buffer yes
minimum_size 310 100
maximum_width 310
text_buffer_size 2048
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
default_color ffffff 		#220 220 220	Gainsboro
color0 1793d0			#Special Color
color1 DDDDDD			#Shades of grey
color2 AAAAAA
color3 888888
default_outline_color black
alignment tl
gap_x 350
gap_y 730
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale yes
# Fonctionne uniquement avec les polices Fixes
#use_spacer yes
imlib_cache_size 0 
uppercase no

TEXT

${voffset 40}${GOTO 50}Mémoire
${GOTO 50}Usage: ${memperc}%  | ${mem}      [+${buffers} +${cached}]

${GOTO 50}${color0}${top_mem name 1}${GOTO 255}${top_mem mem 1}%
${GOTO 50}${color1}${top_mem name 2}${GOTO 255}${top_mem mem 2}%
${GOTO 50}${color2}${top_mem name 3}${GOTO 255}${top_mem mem 3}%
${GOTO 50}${color3}${top_mem name 4}${GOTO 255}${top_mem mem 4}%
${GOTO 50}${color3}${top_mem name 5}${GOTO 255}${top_mem mem 5}%
${image ~/.conky/ConkyBar/img/ram.png -p 0,45 -s 45x45}
Système :

Code : Tout sélectionner

background yes
use_xft yes
xftfont URW Chancery L:style=Bold:size=10
xftalpha 1
update_interval 1.0
total_run_times 0
own_window yes
own_window_transparent yes
own_window_argb_visual yes
own_window_type normal
own_window_hints undecorated,below,skip_taskbar,skip_pager
double_buffer yes
minimum_size 310 100
maximum_width 310
text_buffer_size 2048
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
default_color ffffff 		#220 220 220	Gainsboro
color0 1793d0			#Special Color
color1 DDDDDD			#Shades of grey
color2 AAAAAA
color3 888888
default_outline_color black
alignment tl
gap_x 700
gap_y 700
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale yes
# Fonctionne uniquement avec les polices Fixes
#use_spacer yes
imlib_cache_size 0 
uppercase no



TEXT
${voffset 35}${GOTO 50}Systeme
${GOTO 50}Uptime: ${color0}${uptime_short}$color
${goto 50}Carte:  ${color0}${hwmon 1 temp 1} °C $color

${GOTO 50}Processes:   ${processes} (${color0}${running_processes} ${color}running)
${GOTO 50}Threads:     ${running_threads}
${GOTO 50}Connections: ${tcp_portmon 1 65535 count}

${image ~/.conky/ConkyBar/img/system.png -p 0,25 -s 45x45}
Racine :

Code : Tout sélectionner

background yes
use_xft yes
xftfont URW Chancery L:style=Bold:size=10
xftalpha 1
update_interval 1.0
total_run_times 0
own_window yes
own_window_transparent yes
own_window_argb_visual yes
own_window_type normal
own_window_hints undecorated,below,skip_taskbar,skip_pager
double_buffer yes
minimum_size 310 100
maximum_width 310
text_buffer_size 2048
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
default_color ffffff 		#220 220 220	Gainsboro
color0 1793d0			#Special Color
color1 DDDDDD			#Shades of grey
color2 AAAAAA
color3 888888
default_outline_color black
alignment tl
gap_x 350
gap_y 730
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale yes
# Fonctionne uniquement avec les polices Fixes
#use_spacer yes
imlib_cache_size 0 
uppercase no

TEXT

${voffset 40}${GOTO 50}Mémoire
${GOTO 50}Usage: ${memperc}%  | ${mem}      [+${buffers} +${cached}]

${GOTO 50}${color0}${top_mem name 1}${GOTO 255}${top_mem mem 1}%
${GOTO 50}${color1}${top_mem name 2}${GOTO 255}${top_mem mem 2}%
${GOTO 50}${color2}${top_mem name 3}${GOTO 255}${top_mem mem 3}%
${GOTO 50}${color3}${top_mem name 4}${GOTO 255}${top_mem mem 4}%
${GOTO 50}${color3}${top_mem name 5}${GOTO 255}${top_mem mem 5}%
${image ~/.conky/ConkyBar/img/ram.png -p 0,45 -s 45x45}
et pour celui-ci son lua :

Code : Tout sélectionner

--==============================================================================
--                            seamod_rings.lua
--
--  Date    : 05/02/2012
--  Author  : SeaJey
--  Version : v0.1
--  License : Distributed under the terms of GNU GPL version 2 or later
--
--  This version is a modification of lunatico_rings.lua wich is modification of conky_orange.lua 
--
--  conky_orange.lua:    http://gnome-look.org/content/show.php?content=137503&forumpage=0
--  lunatico_rings.lua:  http://gnome-look.org/content/show.php?content=142884
--==============================================================================

require 'cairo'


--------------------------------------------------------------------------------
--                                                                    gauge DATA
gauge = {
{
    name='fs_used_perc',            arg='',                  max_value=100,
    x=155,                          y=180,
    graph_radius=110,
    graph_thickness=5,
    graph_start_angle=-60,
    graph_unit_angle=1.2,          graph_unit_thickness=2.7,
    graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
    graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.3,
    hand_fg_colour=0x1793d0,       hand_fg_alpha=1.0,
    txt_radius=120,
    txt_weight=0,                  txt_size=9.0,
    txt_fg_colour=0x1793d0,        txt_fg_alpha=1.0,
    graduation_radius=28,
    graduation_thickness=0,        graduation_mark_thickness=1,
    graduation_unit_angle=27,
    graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
    caption='',
    caption_weight=1,              caption_size=9.0,
    caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
},
}

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

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


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

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

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

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

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

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

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


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

-------------------------------------------------------------------------------
--                                                                         MAIN
function conky_main()
    if conky_window == nil then 
        return
    end

    local cs = cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, conky_window.width, conky_window.height)
    local display = cairo_create(cs)
    
    local updates = conky_parse('${updates}')
    update_num = tonumber(updates)
    
    if update_num > 5 then
        go_gauge_rings(display)
    end

    cairo_surface_destroy(cs)
    cairo_destroy(display)

end

Réseau :

Code : Tout sélectionner

background yes
use_xft yes
xftfont URW Chancery L:style=Bold:size=10
xftalpha 1
update_interval 1.0
total_run_times 0
own_window yes
own_window_transparent yes
own_window_argb_visual yes
own_window_type normal
own_window_hints undecorated,below,skip_taskbar,skip_pager
double_buffer yes
minimum_size 310 150
maximum_width 310
text_buffer_size 2048
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
default_color ffffff
default_outline_color black
alignment tr
gap_x 50
gap_y 720
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale yes
# Fonctionne uniquement avec les polices Fixes
#use_spacer yes
imlib_cache_size 0 
uppercase no

 
TEXT

${GOTO 55}Réseau ${goto 150}Signal: ${wireless_link_qual_perc wlp2s0} %
${voffset 85}${GOTO 50}Reçu à: ${downspeedf wlp2s0} k/s ${GOTO 200}Envoyé à: ${upspeedf wlp2s0} k/s
             ${goto 50}Total : ${totaldown wlp2s0}      ${goto 200}Total : ${totalup wlp2s0}
${goto 36}${voffset -90}${upspeedgraph wlp2s0 20,250 1793d0 1793d0}
${goto 36}${voffset -7}${downspeedgraph wlp2s0 -20,250 1793d0 1793d0}
${image ~/.conky/ConkyBar/img/networkhigh.png -p 0,5 -s 45x45}
${voffset -200}
@+
Fichiers joints
11.png
HP Pavilion g 7 1357 sf avec ssd Tessa cinnamon Mageia 7rc mate
Asus ROG avec xubuntu 18.04 et xubuntu 19.04

Image

Répondre