Connexion

Conky -bases et +


Requis



  • Avoir Conky d'installé sur sa Mageia
  • Afficher les fichiers cachés pour son /home


Conky est un petit logiciel qui permet d'afficher un peu prêt tout sur son écran, on peut faire :


du simple:



au compliquer avec plusieurs:



ou avec du lua:




Les chemins ainsi que les images des conkys seront toujours les miens, donc il faudra les modifier en fonction de votre configuration. Pour la partie des conkys avant TEXT c'est toujours la même (elle fonctionne parfaitement chez moi sur Mageia 2 et 3 x64 ,seul gap_x= - gap_y= changent ).
Je pars toujours d'un conkyrc trouvé sur le net, que je modifie à ma sauce ou j'ajoute la partie qui me plais et je la modifie pour ma configuration.




Installer conky



Ici je ne vais pas m'attarder , donc

CCM - installer des logiciels - dans recherche on tape:

conky , on installe

lm-sensors , on installe avec les dépendances (pour les températures)

hddtemp, pour les disques durs




Créer son conkyrc



Au premier lancement de conky : ALT-F2 on tape :conky

Il est tout moche avec un fond noir et il clignote. Pour avoir un conky un peu correct ,nous allons créer un fichier qui

va s'appeler .conkyrc à placer dans votre Home .

Chez moi : /home/romuald/





Ouvrir ce fichier avec Kwrite ou autre et y mettre ceci (ce qui est en rouge sera à supprimer ou à commenter avec un # devant)


Caché :

background yes
use_xft yes
xftfont DejaVu Sans Mono:size=8
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 150 5 largeur du conky
maximum_width 150 largeur du texte
text_buffer_size 256
draw_shades no
draw_outline no
draw_borders yes
draw_graph_borders no
default_color white
default_outline_color white
alignment top_right droite _left gauche _middle milieu
gap_x 900 position horizontale
gap_y 690 position verticale
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale yes
#
color1 white
#
color2 cacaca
#
color3 cornflowerblue
#
color4 626262
#
color5 929292
#
color6 828282
#cornflowerblue


Ceci est pour la configuration du conky


Sauter une ligne

ajouter

TEXT

sauter une ligne

puis ceci (c'est un petit conky leger):

Caché :
${font Sans:size=8}${color3}Kernel: ${color2}$kernel
${color3}Uptime: ${color2}$uptime
${color3}Processus: ${color2}$processes${color3}${alignr}En cours: ${color2} $running_processes
${color3}KDE: ${color2}4.8.5
${color3}${hr}
${alignc}CPU
${goto 85}${color4}${cpugraph cpu0 20,160}
${voffset -20}${color3}Core 1:${color2} ${cpu cpu0}%${color2}${goto 250}${freq_g 1} GHz${goto 320}${exec expr `cat /sys/class/hwmon/hwmon1/device/temp1_input` / 1000}°C${goto 360}${color4}${execbar expr `cat /sys/class/hwmon/hwmon1/device/temp1_input` / 1000}
${goto 85}${color4}${cpugraph cpu1 20,160}
${voffset -20}${color3}Core 2:${color2} ${cpu cpu1}%${color2}${goto 250}${freq_g 2} GHz${goto 320}${exec expr `cat /sys/class/hwmon/hwmon1/device/temp2_input` / 1000}°C${goto 360}${color4}${execbar expr `cat /sys/class/hwmon/hwmon1/device/temp2_input` / 1000}
${goto 85}${color4}${cpugraph cpu2 20,160}
${voffset -20}${color3}Core 3:${color2} ${cpu cpu2}%${color2}${goto 250}${freq_g 3} GHz${goto 320}${exec expr `cat /sys/class/hwmon/hwmon1/device/temp1_input` / 1000}°C${goto 360}${color4}${execbar expr `cat /sys/class/hwmon/hwmon1/device/temp1_input` / 1000}
${goto 85}${color4}${cpugraph cpu3 20,160}
${voffset -20}${color3}Core 4:${color2} ${cpu cpu3}%${color2}${goto 250}${freq_g 4} GHz${goto 320}${exec expr `cat /sys/class/hwmon/hwmon1/device/temp2_input` / 1000}°C${goto 360}${color4}${execbar expr `cat /sys/class/hwmon/hwmon1/device/temp2_input` / 1000}


Laisser une ligne de libre à la fin du conkyrc

Cela donnera ceci:



A chaque fois que vous rajoutez ou modifiez votre conkyrc et que vous enregistrez le conky va s'effacer et réapparaitre avec les modifications .

S'il y a des problème ou que le conky ne se lance plus (mauvaises variables)

ALT F2 killall conky

ALT F2 conky



Multi conky



Créer un dossier dans votre Home nommé

.conky ( c'est dans ce dossier que l'on va mettre tous les conky que l'on souhaite avoir.)


créer un dossier par conky et lui donner un nom (c'est plus propre et plus clair )

dans ce dossier y mettre le conkyrc souhaité ou plusieurs ainsi que les scripts et les luas qui vont avec.



Exemple chez moi pour avoir ceci :



.conky

full

conkyrc 1

conkyrc 2

conkyrc3




Après chaque création du conkyrc correspondant nous allons le lancer avec une konsole.

Code BASH :
conky -c ~/.conky/full/conkyrc1


faire pareil pour conkyrc2 et conkyrc3

Maintenant nous allons faire un script pour les lancer au démarrage (sur ma mageia 3 ce script ne fonctionne pas mais sur la 2 c'est top)



Dans mon home créer un dossier nommé

.bin

dans ce dossier

créer un fichier .sh le nommé par exemple conky.sh et le rendre exécutable (comme sur l'image)

ouvrir avec kwrite ou autre et y mettre ceci:

killall conky
sleep 10
conky -c ~/.conky/full/conkyrc1 &
conky -c ~/.conky/full/conkyrc2 &
conky -c ~/.conky/full/conkyrc3 &

exit


et enfin l'ajouter au démarrage.


Le lua



Un script en lua permet de rajouter de la couleur ,des cercles et plein de choses à un conky .



Pour faire celui-ci ,dans notre dossier .conky créons un dossier nommé tous (toujours chez moi )

dans ce dossier : nous allons y mettre un conkyrc nommé : tous ainsi qu'un deuxième fichier nommé tous.lua



kwrite ou autre et on ouvre le fichier tous pour y mettre ceci (ce qui est en rouge est à supprimer)


Caché :


background yes
use_xft yes
xftfont Sans:size=10
xftalpha 1
update_interval 1.0
total_run_times 0
own_window yes
own_window_transparent no
own_window_color 000000
own_window_argb_visual yes
own_window_argb_value 0
own_window_type normal
own_window_hints undecorated,below,skip_taskbar,skip_pager
double_buffer yes
minimum_size 1000
maximum_width 1000
text_buffer_size 1024
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
default_color white
default_outline_color white
alignment top_left
gap_x 330
gap_y 10
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale yes
#
color1 white
#
color2 orange
#
color3 6495ee
#
color4 green
#cornflowerblue
color5 red
color6 yellow
# Lua Load
#lua_load ~/.conky/draw_bg.lua
#lua_draw_hook_pre draw_bg
#lua_load ~/.conky/conky_grey.lua
#lua_draw_hook_pre main
lua_load ~/.conky/tous/tous.lua chemin du .lua
lua_draw_hook_post main_rings ordre de lancement si demande de plusieurs lua

TEXT


${color4}${goto 68}${cpu cpu0}%${Goto 188}${cpu cpu1}% ${color4}${goto 308}$memperc% ${color4}${goto 430}${fs_used_perc /}% ${color4}${goto 550}${fs_used_perc /home}% ${color4}${goto 660}${downspeedf wlan0}k/s ${color5}${goto 780}${upspeedf wlan0}k/s

${color3}${goto 60}${voffset -10}Core 1 ${color3}${goto 180}Core 2 ${color3}${goto 299} Ram ${color3}${goto 410} /Racine ${color3}${goto 530} /Home ${color3}${goto 650} /Down ${color3}${goto 780} /Up${goto 885}${voffset 15}${color ff8000}${font Sans:size=12}${time %H}${color 00ff00}${time :%M}${color 6495EE}${time :%S}
${font Sans:size=10}${voffset -10}${goto 415}${color2}${fs_used /}${goto 535}${fs_used /home}
${color5}${goto 68}${voffset 4}${font Sans:size=10}${exec expr `cat /sys/class/hwmon/hwmon1/device/temp2_input` / 1000}°C${color5}${goto 188}${exec expr `cat /sys/class/hwmon/hwmon1/device/temp3_input` / 1000}°C ${color5}${goto 312}${swapperc}% ${goto 415}${color2}${fs_size /}${goto 535}${fs_size /home}${goto 655}${color4}${totaldown wlan0}${goto 775}${color5}${totalup wlan0}


${color1}PROCESSUS ${goto 400}INTERNET ${goto 700} GPU ${goto 890} ORDINATEUR
${color3}NOM ${goto 210}CPU ${goto 260}RAM ${color3}${goto 340}URL NB PORTS OUVERTS:${tcp_portmon 1 65535 count}
${color1} ${top name 1} ${goto 200}${top cpu 1} ${goto 250}${top mem 1} ${color2}${goto 340}${tcp_portmon 1 65535 rip 1}${goto 455}${tcp_portmon 1 65535 rport 1} ${goto 600}${color3}Carte Graphique: ${color2}${execi 1800 nvidia-settings -q gpus |grep '0] (' | cut -d '(' -f 2,2 | sed -e 's/.\{1\}$//'} ${goto 860}${font Sans:size=8}${color3}Kernel: ${color2}3.8.18
${color1} ${top name 2} ${goto 200}${top cpu 2} ${goto 250}${top mem 2} ${color2}${goto 340}${tcp_portmon 1 65535 rip 2}${goto 455}${tcp_portmon 1 65535 rport 2} ${goto 600}${color3}Pilote NVidia: ${color2}${execi 1800 nvidia-settings -q NvidiaDriverVersion -t} ${goto 860}${color3}Uptime:${color2} $uptime
${color1} ${top name 3} ${goto 200}${top cpu 3} ${goto 250}${top mem 3} ${color2}${goto 340}${tcp_portmon 1 65535 rip 3}${goto 455}${tcp_portmon 1 65535 rport 3} ${goto 600}${color3}Température GPU: ${color2}${exec nvidia-settings -q gpucoretemp | grep '):' | awk '{print $4}'}°C ${goto 860}${color3}KDE: ${color2}${exec expr ` konsole -v | grep KDE | cut -d":" -f2 | sed s/" "/""/`}
${color1} ${top name 4} ${goto 200}${top cpu 4} ${goto 250}${top mem 4} ${color2}${goto 340}${tcp_portmon 1 65535 rip 4}${goto 455}${tcp_portmon 1 65535 rport 4} ${goto 600}${color3}Fréquence gpu: ${color2}${execi 60 nvidia-settings -query 0/GPUCurrentClockFreqs |grep Attribute |awk '{print $4}' |cut -c1-7} Mhz
${color1} ${top name 5} ${goto 200}${top cpu 5} ${goto 250}${top mem 5} ${color2}${goto 340}${tcp_portmon 1 65535 rip 5}${goto 455}${tcp_portmon 1 65535 rport 5}


Faire pareil pour le tous.lua et y mettre ceci ( attention un script lua c'est long ,il peut avoir jusqu'a plus de 1000 lignes)

Caché :


--[[
Ring Meters by londonali1010 (2009)

This script draws percentage meters as rings. It is fully customisable; all options are described in the script.

IMPORTANT: if you are using the 'cpu' function, it will cause a segmentation fault if it tries to draw a ring straight away. The if statement on line 145 uses a delay to make sure that this doesn't happen. It calculates the length of the delay by the number of updates since Conky started. Generally, a value of 5s is long enough, so if you update Conky every 1s, use update_num>5 in that if statement (the default). If you only update Conky every 2s, you should change it to update_num>3; conversely if you update Conky every 0.5s, you should use update_num>10. ALSO, if you change your Conky, is it best to use "killall conky; conky" to update it, otherwise the update_num will not be reset and you will get an error.

To call this script in Conky, use the following (assuming that you save this script to ~/scripts/rings.lua):
lua_load ~/scripts/rings-v1.2.lua
lua_draw_hook_pre ring_stats

Changelog:
+ v1.2 -- Added option for the ending angle of the rings (07.10.2009)
+ v1.1 -- Added options for the starting angle of the rings, and added the "max" variable, to allow for variables that output a numerical value rather than a percentage (29.09.2009)
+ v1.0 -- Original release (28.09.2009)
]]

require 'cairo'

function conky_main_rings()

if (os.date("%l"))=='12' then
heure=(os.date("%M")/60)
else
heure=(os.date("%l"))+(os.date("%M")/60)
end

-- START PARAMETERS HERE
local rings_settings={

{
name="cpu",
arg="cpu0",
max=100,
xc=80,
yc=80,
radius=57,
thickness=5,
gap_sectors=2,
sectors=10,
bg_colour1={{0,0x999999,0},{0.5,0x999999,0.3}, {1,0x999999,0}},
fg_colour1={{0,0x00FF00,0},{0.5,0x00FF00,1}, {1,0x00FF00,0}},
fg_colour2={{0,0X00FF00,0},{0.5,0x00FF00,1}, {1,0x00FF00,0}},
bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
},
{
name="exec",
arg="exec expr `cat /sys/class/hwmon/hwmon1/device/temp2_input` / 1000",
max=100,
xc=80,
yc=80,
radius=53,
thickness=5,
gap_sectors=2,
sectors=10,
bg_colour1={{0,0x999999,0},{0.5,0x999999,0.3}, {1,0x999999,0}},
fg_colour1={{0,0xFF0000,0},{0.5,0xFF0000,1}, {1,0xFF0000,0}},
fg_colour2={{0,0XFF0000,0},{0.5,0xFF0000,1}, {1,0xFF0000,0}},
bd_colour1={{0,0XFF0000,1},{0.5,0xFF0000,1}, {1,0xFF0000,1}},
},
{
name="cpu",
arg="cpu1",
max=100,
xc=200,
yc=80,
radius=57,
thickness=5,
gap_sectors=2,
sectors=10,
bg_colour1={{0,0x999999,0},{0.5,0x999999,0.3}, {1,0x999999,0}},
fg_colour1={{0,0x00FF00,0},{0.5,0x00FF00,1}, {1,0x00FF00,0}},
fg_colour2={{0,0X00FF00,0},{0.5,0x00FF00,1}, {1,0x00FF00,0}},
bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
},
{
name="exec",
arg="exec expr `cat /sys/class/hwmon/hwmon1/device/temp3_input` / 1000",
max=100,
xc=200,
yc=80,
radius=53,
thickness=5,
gap_sectors=2,
sectors=10,
bg_colour1={{0,0x999999,0},{0.5,0x999999,0.3}, {1,0x999999,0}},
fg_colour1={{0,0xFF0000,0},{0.5,0xFF0000,1}, {1,0xFF0000,0}},
fg_colour2={{0,0XFF0000,0},{0.5,0xFF0000,1}, {1,0xFF0000,0}},
bd_colour1={{0,0XFF0000,1},{0.5,0xFF0000,1}, {1,0xFF0000,1}},
},
{
name="memperc",
arg="",
max=100,
xc=320,
yc=80,
radius=57,
thickness=5,
gap_sectors=2,
sectors=10,
bg_colour1={{0,0x999999,0},{0.5,0x999999,0.3}, {1,0x999999,0}},
fg_colour1={{0,0x00FF00,0},{0.5,0x00FF00,1}, {1,0x00FF00,0}},
fg_colour2={{0,0X00FF00,0},{0.5,0x00FF00,1}, {1,0x00FF00,0}},
bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
},
{
name="swapperc",
arg="",
max=100,
xc=320,
yc=80,
radius=53,
thickness=5,
gap_sectors=2,
sectors=10,
bg_colour1={{0,0x999999,0},{0.5,0x999999,0.3}, {1,0x999999,0}},
fg_colour1={{0,0xFF0000,0},{0.5,0xFF0000,1}, {1,0xFF0000,0}},
fg_colour2={{0,0XFF0000,0},{0.5,0xFF0000,1}, {1,0xFF0000,0}},
bd_colour1={{0,0XFF0000,1},{0.5,0xFF0000,1}, {1,0xFF0000,1}},
},
{
name="fs_used_perc",
arg="/",
max=100,
xc=440,
yc=80,
radius=57,
thickness=5,
gap_sectors=2,
sectors=10,
bg_colour1={{0,0x999999,0},{0.5,0x999999,0.3}, {1,0x999999,0}},
fg_colour1={{0,0x00FF00,0},{0.5,0x00FF00,1}, {1,0x00FF00,0}},
fg_colour2={{0,0X00FF00,0},{0.5,0x00FF00,1}, {1,0x00FF00,0}},
bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
},
{
name="fs_used_perc",
arg="/home",
max=100,
xc=560,
yc=80,
radius=57,
thickness=5,
gap_sectors=2,
sectors=10,
bg_colour1={{0,0x999999,0},{0.5,0x999999,0.3}, {1,0x999999,0}},
fg_colour1={{0,0x00FF00,0},{0.5,0x00FF00,1}, {1,0x00FF00,0}},
fg_colour2={{0,0X00FF00,0},{0.5,0x00FF00,1}, {1,0x00FF00,0}},
bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
},
{
name="downspeedf",
arg="eth0",
max=500,
xc=680,
yc=80,
radius=57,
thickness=5,
gap_sectors=2,
sectors=10,
bg_colour1={{0,0x999999,0},{0.5,0x999999,0.3}, {1,0x999999,0}},
fg_colour1={{0,0x00FF00,0},{0.5,0x00FF00,1}, {1,0x00FF00,0}},
fg_colour2={{0,0X00FF00,0},{0.5,0x00FF00,1}, {1,0x00FF00,0}},
bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
},
{
name="upspeedf",
arg="eth0",
max=100,
xc=800,
yc=80,
radius=57,
thickness=5,
gap_sectors=2,
sectors=10,
bg_colour1={{0,0x999999,0},{0.5,0x999999,0.3}, {1,0x999999,0}},
fg_colour1={{0,0xFF0000,0},{0.5,0xFF0000,1}, {1,0xFF0000,0}},
fg_colour2={{0,0XFF0000,0},{0.5,0xFF0000,1}, {1,0xFF0000,0}},
bd_colour1={{0,0XFF0000,1},{0.5,0xFF0000,1}, {1,0xFF0000,1}},
},
{
name="",
arg=heure,
max=11.99,
xc=920,
yc=80,
radius=57,
thickness=5,
gap_sectors=5,
sectors=12,
bg_colour1={{0,0x999999,0},{0.5,0x999999,0.3}, {1,0x999999,0}},
fg_colour1={{0,0xFF8000,0},{0.5,0xFF8000,1}, {1,0xFF8000,0}},
fg_colour2={{0,0XFF8000,0},{0.5,0xFF8000,1}, {1,0xFF8000,0}},
bd_colour1={{0,0XFF8000,1},{0.5,0xFF8000,1}, {1,0xFF8000,1}},
},
{
name="",
arg=(os.date("%M"))+(os.date("%S")/60),
max=59.99,
xc=920,
yc=80,
radius=50,
thickness=5,
start_angle=0,
end_angle=360,
gap_sectors=1,
sectors=60,
fill_sector=false,
bg_colour1={{0,0x999999,0},{0.5,0x999999,0.3}, {1,0x999999,0}},
fg_colour1={{0,0X00FF00,0},{0.5,0X00FF00,1}, {1,0X00FF00,1}},
fg_colour2={{0,0x00FF00,0},{0.5,0x00FF00,1}, {1,0x00FF00,0}},
bd_colour1={{0,0X00FF00,1},{0.5,0x00FF00,1}, {1,0x00FF00,1}},
},
{
name="time",
arg="%S",
max=60,
xc=920,
yc=80,
radius=43,
thickness=5,
start_angle=0,
end_angle=360,
sectors=60,
fill_sector=false,
bg_colour1={{0,0x999999,0},{0.5,0x999999,0.3}, {1,0x999999,0}},
fg_colour1={{1,0X6495EE,1},{1,0x6495EE,1}, {1,0x6495EE,1}},
fg_colour2={{1,0X6495EE,1},{1,0x6495EE,1}, {1,0x6495EE,1}},
bd_colour1={{0,0X6495EE,1},{0.5,0x6495EE,1}, {1,0x6495EE,1}},
},

}

--END OF PARAMETERS HERE

--main function

--if conky_window==nil then return end

local cs=cairo_xlib_surface_create(conky_window.display,
conky_window.drawable,
conky_window.visual, conky_window.width, conky_window.height)
local cr=cairo_create(cs)

if tonumber(conky_parse('${updates}'))>3 then
for i in pairs(rings_settings) do
draw_ring(cr,rings_settings[i])
end
end

cairo_destroy(cr)
end



function draw_ring(cr, t)

local function rgba_to_r_g_b_a(tcolour)
local colour,alpha=tcolour[2],tcolour[3]
return ((colour / 0x10000) % 0x100) / 255.,
((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end


local function calc_delta(tcol1,tcol2)
--calculate deltas P R G B A to table_colour 1

for x = 1, #tcol1 do
tcol1[x].dA = 0
tcol1[x].dP = 0
tcol1[x].dR = 0
tcol1[x].dG = 0
tcol1[x].dB = 0
if tcol2~=nil and #tcol1 == #tcol2 then
local r1,g1,b1,a1 = rgba_to_r_g_b_a(tcol1[x])
local r2,g2,b2,a2 = rgba_to_r_g_b_a(tcol2[x])
tcol1[x].dP = (tcol2[x][1]-tcol1[x][1])/t.sectors
tcol1[x].dR = (r2-r1)/t.sectors
tcol1[x].dG = (g2-g1)/t.sectors
tcol1[x].dB = (b2-b1)/t.sectors
tcol1[x].dA = (a2-a1)/t.sectors

end
end

return tcol1
end

--check values
local function setup(t)
if t.name==nil and t.arg==nil then
print ("No input values ... use parameters 'name'" +
" with 'arg' or only parameter 'arg' ")
return
end

if t.max==nil then
print ("No maximum value defined, use 'max'")
print ("for name=" .. t.name)
print ("with arg=" .. t.arg)
return
end
if t.name==nil then t.name="" end
if t.arg==nil then t.arg="" end

if t.xc==nil then t.xc=conky_window.width/2 end
if t.yc==nil then t.yc=conky_window.height/2 end
if t.thickness ==nil then t.thickness = 10 end
if t.radius ==nil then t.radius =conky_window.width/4 end
if t.start_angle==nil then t.start_angle =0 end
if t.end_angle==nil then t.end_angle=360 end
if t.bg_colour1==nil then
t.bg_colour1={{0,0x00ffff,0.1},{0.5,0x00FFFF,0.5},{1,0x00FFFF,0.1}}
end
if t.fg_colour1==nil then
t.fg_colour1={{0,0x00FF00,0.1},{0.5,0x00FF00,1},{1,0x00FF00,0.1}}
end
if t.bd_colour1==nil then
t.bd_colour1={{0,0xFFFF00,0.5},{0.5,0xFFFF00,1},{1,0xFFFF00,0.5}}
end
if t.sectors==nil then t.sectors=10 end
if t.gap_sectors==nil then t.gap_sectors=1 end
if t.fill_sector==nil then t.fill_sector=false end
if t.sectors==1 then t.fill_sector=false end
if t.border_size==nil then t.border_size=0 end
if t.cap==nil then t.cap="p" end
--some checks
if t.thickness>t.radius then t.thickness=t.radius*0.1 end
t.int_radius = t.radius-t.thickness

--check colors tables
for i=1, #t.bg_colour1 do
if #t.bg_colour1[i]~=3 then t.bg_colour1[i]={1,0xFFFFFF,0.5} end
end
for i=1, #t.fg_colour1 do
if #t.fg_colour1[i]~=3 then t.fg_colour1[i]={1,0xFF0000,1} end
end
for i=1, #t.bd_colour1 do
if #t.bd_colour1[i]~=3 then t.bd_colour1[i]={1,0xFFFF00,1} end
end

if t.bg_colour2~=nil then
for i=1, #t.bg_colour2 do
if #t.bg_colour2[i]~=3 then t.bg_colour2[i]={1,0xFFFFFF,0.5} end
end
end
if t.fg_colour2~=nil then
for i=1, #t.fg_colour2 do
if #t.fg_colour2[i]~=3 then t.fg_colour2[i]={1,0xFF0000,1} end
end
end
if t.bd_colour2~=nil then
for i=1, #t.bd_colour2 do
if #t.bd_colour2[i]~=3 then t.bd_colour2[i]={1,0xFFFF00,1} end
end
end

if t.start_angle>=t.end_angle then
local tmp_angle=t.end_angle
t.end_angle= t.start_angle
t.start_angle = tmp_angle
-- print ("inversed angles")
if t.end_angle-t.start_angle>360 and t.start_angle>0 then
t.end_angle=360+t.start_angle
print ("reduce angles")
end

if t.end_angle+t.start_angle>360 and t.start_angle<=0 then
t.end_angle=360+t.start_angle
print ("reduce angles")
end

if t.int_radius<0 then t.int_radius =0 end
if t.int_radius>t.radius then
local tmp_radius=t.radius
t.radius=t.int_radius
t.int_radius=tmp_radius
print ("inversed radius")
end
if t.int_radius==t.radius then
t.int_radius=0
print ("int radius set to 0")
end
end

t.fg_colour1 = calc_delta(t.fg_colour1,t.fg_colour2)
t.bg_colour1 = calc_delta(t.bg_colour1,t.bg_colour2)
t.bd_colour1 = calc_delta(t.bd_colour1,t.bd_colour2)
end

if t.draw_me == true then t.draw_me = nil end
if t.draw_me ~= nil and conky_parse(tostring(t.draw_me)) ~= "1" then return end
--initialize table
setup(t)

--initialize cairo context
cairo_save(cr)
cairo_translate(cr,t.xc,t.yc)
cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND)
cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND)

--get value
local value = 0
if t.name ~="" then
value = tonumber(conky_parse(string.format('${%s %s}', t.name, t.arg)))
else
value = tonumber(t.arg)
end
if value==nil then value =0 end

--initialize sectors
--angle of a sector :
local angleA = ((t.end_angle-t.start_angle)/t.sectors)*math.pi/180
--value of a sector :
local valueA = t.max/t.sectors
--first angle of a sector :
local lastAngle = t.start_angle*math.pi/180


local function draw_sector(type_arc,angle0,angle,valpc, idx)

--this function draws a portion of arc
--type of arc, angle0 = strating angle, angle= angle of sector,
--valpc = percentage inside the sector, idx = sctor number #
local tcolor
if type_arc=="bg" then --background
if valpc==1 then return end
tcolor=t.bg_colour1
elseif type_arc=="fg" then --foreground
if valpc==0 then return end
tcolor=t.fg_colour1
elseif type_arc=="bd" then --border
tcolor=t.bd_colour1
end

--angles equivalents to gap_sector
local ext_delta=math.atan(t.gap_sectors/(2*t.radius))
local int_delta=math.atan(t.gap_sectors/(2*t.int_radius))

--angles of arcs
local ext_angle=(angle-ext_delta*2)*valpc
local int_angle=(angle-int_delta*2)*valpc

--define colours to use for this sector
if #tcolor==1 then
--plain color
local vR,vG,vB,vA = rgba_to_r_g_b_a(tcolor[1])
cairo_set_source_rgba(cr,vR+tcolor[1].dR*idx,
vG+tcolor[1].dG*idx,
vB+tcolor[1].dB*idx,
vA+tcolor[1].dA*idx )
else
--radient color
local pat=cairo_pattern_create_radial(0,0,t.int_radius,0,0,t.radius)
for i=1, #tcolor do
local vP,vR,vG,vB,vA = tcolor[i][1], rgba_to_r_g_b_a(tcolor[i])
cairo_pattern_add_color_stop_rgba (pat,
vP+tcolor[i].dP*idx,
vR+tcolor[i].dR*idx,
vG+tcolor[i].dG*idx,
vB+tcolor[i].dB*idx,
vA+tcolor[i].dA*idx )
end
cairo_set_source (cr, pat)
cairo_pattern_destroy(pat)
end

--start drawing
cairo_save(cr)
--x axis is parrallel to start of sector
cairo_rotate(cr,angle0-math.pi/2)

local ri,re = t.int_radius ,t.radius

--point A
local angle_a

if t.cap == "p" then
angle_a = int_delta
if t.inverse_arc and type_arc ~="bg" then
angle_a = angle-int_angle-int_delta
end
if not(t.inverse_arc) and type_arc =="bg" then
angle_a = int_delta+int_angle
end
else --t.cap=="r"
angle_a = ext_delta
if t.inverse_arc and type_arc~="bg" then
angle_a = angle-ext_angle-ext_delta
end
if not(t.inverse_arc) and type_arc=="bg" then
angle_a = ext_delta+ext_angle
end
end
local ax,ay = ri*math.cos(angle_a),ri*math.sin(angle_a)


--point B
local angle_b = ext_delta
if t.cap == "p" then
if t.inverse_arc and type_arc ~="bg" then
angle_b = angle-ext_angle-ext_delta
end
if not(t.inverse_arc) and type_arc=="bg" then
angle_b = ext_delta+ext_angle
end
else
if t.inverse_arc and type_arc ~="bg" then
angle_b = angle-ext_angle-ext_delta
end
if not(t.inverse_arc) and type_arc=="bg" then
angle_b = ext_delta+ext_angle
end
end
local bx,by = re*math.cos(angle_b),re*math.sin(angle_b)

-- EXTERNAL ARC B --> C
local b0,b1
if t.inverse_arc then
if type_arc=="bg" then
b0,b1= ext_delta, angle-ext_delta-ext_angle
else
b0,b1= angle-ext_angle-ext_delta, angle-ext_delta
end
else
if type_arc=="bg" then
b0,b1= ext_delta+ext_angle, angle-ext_delta
else
b0,b1= ext_delta, ext_angle+ext_delta
end
end

---POINT D
local angle_c, angle_d
if t.cap == "p" then
angle_d = angle-int_delta
if t.inverse_arc and type_arc=="bg" then
angle_d = angle-int_delta-int_angle
end
if not(t.inverse_arc) and type_arc~="bg" then
angle_d=int_delta+int_angle
end
else
angle_d = angle-ext_delta
if t.inverse_arc and type_arc=="bg" then
angle_d =angle-ext_delta-ext_angle
end
if not(t.inverse_arc) and type_arc~="bg" then
angle_d = ext_angle+ext_delta
end
end
local dx,dy = ri*math.cos(angle_d),ri*math.sin(angle_d)

-- INTERNAL ARC D --> A
local d0,d1
if t.cap=="p" then
if t.inverse_arc then
if type_arc=="bg" then
d0,d1= angle-int_delta-int_angle,int_delta
else
d0,d1= angle-int_delta, angle- int_angle-int_delta
end
else
if type_arc=="bg" then
d0,d1= angle-int_delta, int_delta+int_angle
else
d0,d1= int_delta+int_angle, int_delta
end
end
else
if t.inverse_arc then
if type_arc=="bg" then
d0,d1= angle-ext_delta-ext_angle,ext_delta
else
d0,d1= angle-ext_delta, angle- ext_angle-ext_delta
end
else
if type_arc=="bg" then
d0,d1= angle-ext_delta,ext_delta+ext_angle
else
d0,d1= ext_angle+ext_delta, ext_delta
end
end
end

--draw sector
cairo_move_to(cr,ax,ay)
cairo_line_to(cr,bx,by)
cairo_arc(cr,0,0,re,b0,b1)
cairo_line_to(cr,dx,dy)
cairo_arc_negative(cr,0,0,ri,d0,d1)
cairo_close_path (cr);

--stroke or fill sector
if type_arc=="bd" then
cairo_set_line_width(cr,t.border_size)
cairo_stroke(cr)
else
cairo_fill(cr)
end

cairo_restore(cr)

end
--draw sectors
local n0,n1,n2 = 1,t.sectors,1
if t.inverse_arc then n0,n1,n2 = t.sectors,1,-1 end
local index = 0
for i = n0,n1,n2 do
index = index +1
local valueZ=1
local cstA, cstB = (i-1),i
if t.inverse_arc then cstA,cstB = (t.sectors-i), (t.sectors-i+1) end

if value>valueA *cstA and value<valueA*cstB then
if not t.fill_sector then
valueZ = (value-valueA*cstA)/valueA
end
else
if value<valueA*cstB then valueZ=0 end
end

local start_angle= lastAngle+(i-1)*angleA
if t.foreground ~= false then
draw_sector("fg",start_angle,angleA,valueZ, index)
end
if t.background ~= false then
draw_sector("bg",start_angle,angleA,valueZ, i)
end
if t.border_size>0 then draw_sector("bd",start_angle,angleA,1, i) end
end

cairo_restore(cr)
end

--[[END OF RING-SECTORS WIDGET]]


Pour voir si cela fonctionne :

Code BASH :
conky -c ~/.conky/tous/tous


Voila maintenant il ne vous reste plus qu'a vous lancer et faire du conky sur mesure.Avec conky il y a plein de chose à faire mais ils ont

tous les mêmes particularités à savoir :

une partie configuration avant TEXT

une partie variables après TEXT ou l'on y met ce que l'on veut

pour certain un chemin vers un script lua ou autre (amarok - fêtes - gmail .....)



Quelques adresses utiles



http://conky.sourceforge.net/

http://forum.ubuntu-fr.org/viewtopic.php?id=1229761&p=1

http://conky.sourceforge.net/config_settings.html

Ils y en pleins d'autres.


Voila si vous avez des problèmes venez ici vous y trouverez de l'aide.

Annexe



Voici quelqu'un de mes conky ils sont à cette adresse:

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

Écrit par: loutch, Le: 28/09/13

Cette page a été vue 22163 fois