
Voilà comment faire un petit conky qui épatera tes amis avec ses formes en cercle
Installation
Pour cette recette, il nous faut conky et acpi
$ sudo apt-get install conky-all acpi
Les fichiers
Personnellement, je suis du style à oublier de récupérer le fichier caché .conkyrc
avant de réinstaller une distribution! Du coup je vous propose tout simplement de se faire un fichier “Conky” dans le répertoire “Documents”. Et de lancer
le conky depuis celui-ci!
$ mkdir ~/Documents/Conky
Nous allons remplir le fichier conkyrc:
$ nano ~/Documents/Conky/conkyrc
Mettez cette configuration:
# Conky settings #
background yes
update_interval 1
total_run_times 0
cpu_avg_samples 2
net_avg_samples 2
override_utf8_locale yes
double_buffer yes
#no_buffers yes
text_buffer_size 2048
#imlib_cache_size 0
temperature_unit celsius
# Window specifications #
own_window_class Conky
own_window yes
own_window_type normal
own_window_transparent yes
own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below
border_inner_margin 0
border_outer_margin 0
minimum_size 350 600
maximum_width 550
alignment tr
gap_x -20
gap_y 80
# Graphics settings #
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
# Text settings #
use_xft yes
override_utf8_locale yes
xftfont Pf Tempesta Five:bold:size=6
xftalpha 0.8
uppercase no
temperature_unit celsius
default_color grey74 # 333333
color0 red # text 1994D1 bleuclaire
color1 white # text detail
# Lua Load ##${voffset 750}
lua_load ~/Documents/conky/cercles.lua
lua_draw_hook_pre ring_stats
TEXT
${font Pf Tempesta Five:bold:size=6}${voffset 32}${goto 96}${color1}CPU ${alignr 145}${color1}${cpu}% / ${color1}${acpitemp}°C
${font Pf Tempesta Five:bold:size=6}${goto 79}${color1}RAM ${alignr 145}${color1}${memperc}% / ${color1}${memmax}
${font Pf Tempesta Five:bold:size=6}${goto 63}${color1}SWAP${alignr 145}${color1}${swapperc}% / ${color1}${swapmax}
${font Pf Tempesta Five:bold:size=6}${goto 48}Uptime${color1}${alignr 145}${uptime_short}
${font Pf Tempesta Five:bold:size=6}${goto 29}Processes:${alignr 145}${processes} / ${running_processes}
${font Pf Tempesta Five:bold:size=6}${goto 19}${pre_exec cat /etc/issue.net}${color1}${alignr 145}$kernel
${font Pf Tempesta Five:bold:size=6}${goto 19}${pre_exec lsb_release -c | cut -f 2| tr "[:upper:]" "[:lower:]"}${color1}${alignr 145}${machine}
${font Xirod:size=10}${color0}${voffset 3}${offset 3}SYSTEM INFO
${font Xirod:size=8}${color0}${voffset 91}${goto 178}INTERNET INFO
${font Pf Tempesta Five:bold:size=6}${goto 146}${voffset -3}${color1}Down${goto 205}${color1}${totaldown wlan0} / ${color1}${downspeed wlan0}
${font Pf Tempesta Five:bold:size=6}${goto 146}Up${goto 195}${color1}${totalup wlan0} / ${color1}${upspeed wlan0}
${font Pf Tempesta Five:bold:size=6}${goto 146}WiFi${goto 185}${color1}${wireless_essid wlan0}
${font Pf Tempesta Five:bold:size=6}${goto 107}${voffset 20}Rot${color1}${alignr 135}${fs_used_perc /}% / ${color1}${fs_size /}
${font Pf Tempesta Five:bold:size=6}${goto 95}Home${alignr 135}${color1}${fs_used_perc /home}% / ${color1}${fs_size /home}
${font Pf Tempesta Five:bold:size=6}${goto 86}Data${alignr 135}${color1}${fs_used_perc /media/data}% / ${color1}${fs_size /media/data}
${font Xirod:size=8}${color0}${goto 68}${voffset 2}HARD DRIVE
${font Xirod:size=8}${goto 185}${voffset 78}${color0}${time %d} ${color0}${time %A}
${font Xirod:size=18}${goto 165}${color1}${voffset -3}${time %H}:${time %M}
${font Xirod:size=8}${color0}${goto 143}${voffset 10}${color1}${battery_percent BAT1}%
${font Xirod:size=8}${color0}${goto 105}${voffset -1}BATERY
Maintenant, nous allons créer le script LUA qui gère les cercles:
$ nano ~/Documents/Conky/cercles.lua
et ajouter le script:
settings_table = {
{
name='cpu',
arg='cpu0',
max=100,
bg_colour=0x303535,
bg_alpha=0.8,
fg_colour=0x1B94D1,
fg_alpha=0.8,
x=220, y=120,
radius=70,
thickness=20,
start_angle=0,
end_angle=270
},
{
name='memperc',
arg='',
max=100,
bg_colour=0x304040,
bg_alpha=0.6,
fg_colour=0x1B94D1,
fg_alpha=0.8,
x=220, y=120,
radius=50,
thickness=15,
start_angle=0,
end_angle=270
},
{
name='swapperc',
arg='',
max=100,
bg_colour=0x304545,
bg_alpha=0.4,
fg_colour=0x1B94D1,
fg_alpha=0.8,
x=220, y=120,
radius=35,
thickness=10,
start_angle=0,
end_angle=270
},
{
name='fs_used_perc',
arg='/',
max=100,
bg_colour=0x303535,
bg_alpha=0.8,
fg_colour=0x1B94D1,
fg_alpha=0.8,
x=227, y=357,
radius=40,
thickness=15,
start_angle=0,
end_angle=270
},
{
name='fs_used_perc',
arg='/home',
max=100,
bg_colour=0x304040,
bg_alpha=0.6,
fg_colour=0x1B94D1,
fg_alpha=0.8,
x=227, y=357,
radius=25,
thickness=10,
start_angle=0,
end_angle=270
},
{
name='fs_used_perc',
arg='/media/data',
max=100,
bg_colour=0x304545,
bg_alpha=0.4,
fg_colour=0x1B94D1,
fg_alpha=0.8,
x=227, y=357,
radius=15,
thickness=5,
start_angle=0,
end_angle=270
},
{
name='downspeedf',
arg='wlan0',
max=1000,
bg_colour=0x303535,
bg_alpha=0.8,
fg_colour=0x1B94D1,
fg_alpha=0.8,
x=135, y=245,
radius=30,
thickness=12,
start_angle=180,
end_angle=450
},
{
name='upspeedf',
arg='wlan0',
max=100,
bg_colour=0x3044545,
bg_alpha=0.6,
fg_colour=0x1B94D1,
fg_alpha=0.8,
x=135, y=245,
radius=18,
thickness=8,
start_angle=180,
end_angle=450
},
{
name='time',
arg='%S',
max=60,
bg_colour=0x303535,
bg_alpha=0.8,
fg_colour=0x1B94D1,
fg_alpha=0.8,
x=140, y=460,
radius=30,
thickness=12,
start_angle=180,
end_angle=450
},
{
name='time',
arg='%M',
max=60,
bg_colour=0x304040,
bg_alpha=0.6,
fg_colour=0x1B94D1,
fg_alpha=0.8,
x=140, y=460,
radius=18,
thickness=8,
start_angle=180,
end_angle=450
},
{
name='time',
arg='%H',
max=24,
bg_colour=0x304545,
bg_alpha=0.4,
fg_colour=0x1B94D1,
fg_alpha=0.8,
x=140, y=460,
radius=10,
thickness=4,
start_angle=180,
end_angle=450
},
{
name='battery_percent',
arg='BAT1',
max=100,
bg_colour=0x303535,
bg_alpha=0.6,
fg_colour=0x1B94D1,
fg_alpha=0.8,
x=180, y=547,
radius=18,
thickness=10,
start_angle=0,
end_angle=270
},
{
name='',
arg='',
max=100,
bg_colour=0x305050,
bg_alpha=0.6,
fg_colour=0x1B94D1,
fg_alpha=0.6,
x=180, y=547,
radius=3,
thickness=13,
start_angle=0,
end_angle=360
},
}
require 'cairo'
function rgb_to_r_g_b(colour,alpha)
return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end
function draw_ring(cr,t,pt)
local w,h=conky_window.width,conky_window.height
local xc,yc,ring_r,ring_w,sa,ea=pt['x'],pt['y'],pt['radius'],pt['thickness'],pt['start_angle'],pt['end_angle']
local bgc, bga, fgc, fga=pt['bg_colour'], pt['bg_alpha'], pt['fg_colour'], pt['fg_alpha']
local angle_0=sa*(2*math.pi/360)-math.pi/2
local angle_f=ea*(2*math.pi/360)-math.pi/2
local t_arc=t*(angle_f-angle_0)
-- Draw background ring
cairo_arc(cr,xc,yc,ring_r,angle_0,angle_f)
cairo_set_source_rgba(cr,rgb_to_r_g_b(bgc,bga))
cairo_set_line_width(cr,ring_w)
cairo_stroke(cr)
-- Draw indicator ring
cairo_arc(cr,xc,yc,ring_r,angle_0,angle_0+t_arc)
cairo_set_source_rgba(cr,rgb_to_r_g_b(fgc,fga))
cairo_stroke(cr)
end
function conky_ring_stats()
local function setup_rings(cr,pt)
local str=''
local value=0
str=string.format('${%s %s}',pt['name'],pt['arg'])
str=conky_parse(str)
value=tonumber(str)
if value == nil then value = 0 end
pct=value/pt['max']
draw_ring(cr,pct,pt)
end
if conky_window==nil then return end
local cs=cairo_xlib_surface_create(conky_window.display,conky_window.drawable,conky_window.visual, conky_window.width,conky_window.height)
local cr=cairo_create(cs)
local updates=conky_parse('${updates}')
update_num=tonumber(updates)
if update_num>5 then
for i in pairs(settings_table) do
setup_rings(cr,settings_table[i])
end
end
cairo_surface_destroy(cs)
cairo_destroy(cr)
end
Vous pouvez tester tout ceci avec la commande:
$ conky -c ~/Documents/Conky/conkyrc
Lancer conky au démarrage
Il vous faut trouver l'applicatif qui gère les applications au démarrage.
Pour unity, vous trouverez l'information ici :
http://doc.ubuntu-fr.org/tutoriel/application_demarrage.
Pour XFCE (debian/ubuntu/Fedora), allez dans Menu > Settings Manager > Session & Startup.
Dans l'onglet "Application Autostart", faites "Add", puis remplicez ainsi:
name : conky
commande : sh -c "sleep 5 && (conky -c /home/linuxmoi/Documents/conky/conky-ring/conkyrc &)"
Enregistrer! Vous n'avez plus qu'à relancer votre distribution pour tester le démarrage.
J'ai rajouté un sleep de 5 secondes pour que le démarrage de conky se réalise bien.
Derniers Commentaires