Conky affiche les infos système sur le bureau

hightech-conky-1

Personnaliser son bureau avec des infos pertinentes

Conky est un utilitaire incontournable sur un système Linux, il permet d’afficher toute sorte d’informations plus ou moins pertinente sur le bureau.

C’est un fork du moniteur système Torsmo (plus maintenu) il a été créé par Brenden Matthews sous licence GPL et est disponible sur le site officiel pour les systèmes GNU/LINUX et BSD. En plus de rendre l’affichage du bureau plus sexy et fonctionnel, Conky vous ouvre la porte du scripting, après avoir installé l’utilitaire, il vous faudra mettre les mains dans le moteur pour le personnaliser selon vos besoin en informations et votre fibre artistique.

Vous pouvez afficher ou obtenir des informations sur a peu près tout ce que vous voulez sur votre bureau comme la date, la météo ou le morceau de musique que vous écoutez. On peut aussi afficher des images, les faire défiler, afficher le flux rss de votre site préféré etc …. Coté système vous pouvez afficher toutes les informations qui vous intéresse comme l’espace disque, la ram utilisée, le swap, l’utilisation du processeur, les informations réseau, votre adresse IP publique et bien plus encore.

 

Conky manager pour les débutants

Il existe un Front End pour les débutants et les allergiques au code, le Conky Manager se charge de créer le script en fonction des options que vous sélectionnez. C’est juste une interface graphique qui ne vous empêchera pas de mettre les mains dans le code si vous en avez envie. Evidemment la personnalisation est limitée avec l’outil mais cela permet d’entrevoir les énormes possibilités qu’offre Conky par le plus grand nombre. C’est donc une bonne solution pour s’initier a Conky sans douleurs.

Si vous voulez vraiment exploiter toutes les possibilités de personnalisation et d’affichage pour créer votre thème original il faudra apprendre la syntaxe et les variables utilisées par Conky

conky-manager

Il existe un fork du Conky Manager original créé par  Teejee c’est le Conky Manager 2 disponible sur GitHub

Installation de Conky et Conky Manager

Certaines variables intégrées dans Conky nécessitent l’installation de paquets supplémentaires pour pouvoir être utilisées, par exemple Hddtemp pour la température du disque dur et mpd pour la musique, lm-sensors pour les températures.Il existe des paquets .deb de Conky  disponibles sur le site de Teejee :

 

conky-manager-latest-i386.deb

conky-manager-latest-amd64.deb

 

Pour installer Conky et toutes les dépendances :

Debian et dérivés

sudo apt install lua5.4 jq curl conky-all

Arch Linux

sudo pacman -S conky lua jq curl

 

Fedora/RHEL

 sudo dnf install conky lua jq curl

 

Installer Conky Manager 2 :

 

wget –no-check-certificate https://github.com/teejee2008/conky-manager/releases/download/v2.4/conky-manager-v2.4-amd64.run

chmod +x conky-manager-v2.4-amd64.run

sudo ./conky-manager-v2.4-amd64.run

 

Explications et fonctionnement du script utilisé par Conky

Après l’installation, il suffit de lancer Conky avec la commande « conky » , l’outil va alors se lancer grâce au script basique installé pendant l’installation.

C’est un script minimum qui constitue une bonne base pour afficher les informations systèmes courantes, le script se trouve (normalement) dans le dossier /etc/conky/conky.conf.

Pour aller plus loin avec Conky il faut copier ce script dans votre dossier utilisateur et lui donner le nom « conkyrc » pour le personnaliser. Si vous ne le trouvez pas il suffit d’en récupérer un sur la toile ou copier coller  les deux parties  dans un fichier conkyrc.

 

Pour récupérer le script basique tapez la commande suivante dans un terminal :

 

cp /etc/conky/conky.conf.  ~ / .conkyrc

 

Vous pouvez aussi récupérer un script sur la toile et le coller dans votre dossier utilisateur en le renommant « .conkyrc »

 

Le script de base (syntaxe et explications)

Le script de Conky se divise en deux parties, la première partie concerne les paramètres et sert a configurer Conky (la position, la taille, les fonts, la couleur etc) , la deuxième partie concerne les variables et sert a définir et afficher les informations dans Conky.

C’est le script minimum pour afficher Conky, il est bien sur possible de personnaliser les paramètres et d’ajouter des variables selon vos besoins.

 

 

conky-classique

Première partie conky.config = { }

Seconde partie conky.text = [[ ]]

conky.config = {

    alignment = 'top_left',
    background = false,
    border_width = 1,
    cpu_avg_samples = 2,
    default_color = 'white',
    default_outline_color = 'white',
    default_shade_color = 'white',
    draw_borders = false,
    draw_graph_borders = true,
    draw_outline = false,
    draw_shades = false,
    use_xft = true,
    font = 'DejaVu Sans Mono:size=12',
    gap_x = 5,
    gap_y = 60,
    minimum_height = 5,
    minimum_width = 5,
    net_avg_samples = 2,
    no_buffers = true,
    out_to_console = false,
    out_to_stderr = false,
    extra_newline = false,
    own_window = true,
    own_window_class = 'Conky',
    own_window_type = 'desktop',
    stippled_borders = 0,
    update_interval = 1.0,
    uppercase = false,
    use_spacer = 'none',
    show_graph_scale = false,
    show_graph_range = false
}

 

conky.text = [[
${scroll 16 $nodename - $sysname $kernel on $machine | }
$hr
${color grey}Uptime:$color $uptime
${color grey}Frequency (in MHz):$color $freq
${color grey}Frequency (in GHz):$color $freq_g
${color grey}RAM Usage:$color $mem/$memmax - $memperc% ${membar 4}
${color grey}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar 4}
${color grey}CPU Usage:$color $cpu% ${cpubar 4}
${color grey}Processes:$color $processes  ${color grey}Running:$color $running_processes
$hr
${color grey}File systems:
 / $color${fs_used /}/${fs_size /} ${fs_bar 6 /}
${color grey}Networking:
Up:$color ${upspeed eth0} ${color grey} - Down:$color ${downspeed eth0}
$hr
${color grey}Name              PID   CPU%   MEM%
${color lightgrey} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
${color lightgrey} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4}
]]

 

Voici un lien qui liste toutes les variables utilisables dans un script Conky :

 

https://conky.sourceforge.net/variables.html

Quelques screen de scripts réalisés par les utilisateurs

future-blue
automatik
revolutionary-clock-1

Exemple de script personnalisé en utilisant les variables de Conky

Le script a été créé pour s’afficher sur un fond sombre, il affiche en incrustation entre autre l’heure, la date avec la fête du jour, le nombre et le nom d’utilisateur connecté, les informations systèmes classique ainsi que votre IP locale et l’ IP publique avec l’interface utilisée pour la connexion. Vous pouvez bien sur l’améliorer et le modifier a votre convenance.

conky.config = {
total_run_times = 0,
out_to_console = false,
use_xft = true,
font = ‘123:size=8’,
xftalpha = 0.1,
update_interval = 0.5,
own_window = true,
own_window_class = ‘Conky’,
own_window_type = ‘desktop’,
own_window_hints = ‘undecorated,below,sticky,skip_taskbar,skip_pager’,
own_window_transparent = true,
own_window_argb_visual = true,
own_window_argb_value = 60,
double_buffer = true,
no_buffers = true,
minimum_size = 5,
minimum_width = 250,
maximum_width = 400,
minimum_height = 5,
alignment = ‘middle_right’,
gap_x = 45,
gap_y = 5,

draw_shades = true,
draw_outline = false,
draw_borders = false,
draw_graph_borders = false,
background = true,
border_inner_margin = 10,
default_color = ‘gray’,
default_shade_color = ‘blue’,
default_outline_color = ‘green’,
uppercase = false,
cpu_avg_samples = 4,
net_avg_samples = 2,
override_utf8_locale = yes,
use_spacer = ‘right’
}
conky.text = [[
# pour afficher sur le deuxieme ecran mettre xinerama_head = 2, dans conky.config en dessous de gap_y ^

## Affiche l heure
${color DarkOrange1}${font :Bold:size=18} $alignc ${time %H}:${time %M}
${color}${font :Bold:size=14} $alignc ${time %A} ${time %e} ${time %h} ${time %Y}${font :size=08}

# Ephemeride
$alignc${color3}Fête du jour : ${color2}${texeci 1000 wget -O – -q  http://fetedujour.fr/  –user-agent= »Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0″ | grep « Fête du jour » | head -1 | cut -d »> » -f4 | cut -d »< » -f1 }
# $alignc(${color DarkOrange1}${time %A}${color})

# En-tete
${font Arial:size=20}${color #0080FF}RAPTO${color #00FFFF}ZONE{}
# Etat de la batterie
${color #AAAAAA}${font Arial:bold:size=10}$alignc${battery BAT0} | ${battery_time BAT0}

# Utilisateur connecte
${color DarkOrange1}${user_number} ${color}utilisateur connecte  ( ${color DarkOrange1}${user_names}${color} )

## Informations systeme
${voffset -50}
${color #505050}
${font}
${font Arial:bold:size=10}${color #00AAFF}SYSTEM ${color #0000AA} ${hr 2}
$font${color DarkOrange1}$sysname $kernel $alignr $machine${color #505050}
Frequency ${color #AAAAAA}$alignr${freq_g cpu0}Ghz${color #505050}
Uptime ${color #AAAAAA}$alignr${uptime}${color #505050}
File System ${color #AAAAAA}$alignr${fs_type}
## Affiche l occupation processeur
${font Arial:bold:size=10}${color #00AAFF}CPU ${color #0000AA}${hr 2}
$font${color #505050}Temp: $alignr ${color #AAAAAA}${exec /opt/vc/bin/vcgencmd measure_temp | cut -c6-9} C
$font${color #505050}CPU1  ${color #AAAAAA}${cpu cpu1}%${color #505050} ${cpubar cpu1}
CPU2  ${color #AAAAAA}${cpu cpu2}%${color #505050} ${cpubar cpu2}
CPU3  ${color #AAAAAA}${cpu cpu3}%${color #505050} ${cpubar cpu3}
CPU4  ${color #AAAAAA}${cpu cpu4}%${color #505050} ${cpubar cpu4}
CPU5  ${color #AAAAAA}${cpu cpu5}%${color #505050} ${cpubar cpu5}
# ${cpugraph #DarkOrange1 #DarkOrange1} $color
## Affiche la memoire
${font Arial:bold:size=10}${color #00AAFF}MEMORY ${color #0000AA}${hr 2}
$font${color #505050}MEM $alignc ${color #AAAAAA}$mem${color #505050} / $memmax $alignr ${color #AAAAAA} $memperc%
$membar${color #505050}
$font${color #505050}SWAP $alignc ${color #AAAAAA}$swap${color #505050} / $swapmax $alignr ${color #AAAAAA} $swapperc%
$swapbar${color #505050}
## Affiche l espace disque
${font Arial:bold:size=10}${color #00AAFF}HDD ${color #0000AA}${hr 2}
$font${color #505050}/home $alignc ${color #AAAAAA}${fs_used /home} / ${fs_size /home}${color #505050} $alignr ${fs_free_perc /home}%
${fs_bar /home}
## Affiche les processus
${font Arial:bold:size=10}${color #00AAFF}TOP PROCESSES ${color #0000AA}${hr 2}
${color #505050}$font${top_mem name 2}${alignr}${color #AAAAAA}${top mem 2} %
$font${color #505050}${top_mem name 3}${alignr}${color #AAAAAA}${top mem 3} %
$font${color #505050}${top_mem name 4}${alignr}${color #AAAAAA}${top mem 4} %
$font${color #505050}${top_mem name 5}${alignr}${color #AAAAAA}${top mem 5} %
## Affiche le reseau
${font Arial:bold:size=10}${color #00AAFF}NETWORK ${color #0000AA}${hr 2}${color}
# Si connecte en Wifi affiche:
${if_existing /proc/net/route wlp0s20f3}$font${color #505050}IP sur Wifi $alignr ${color #AAAAAA}${addr wlp0s20f3}

${color #505050}Down $alignr ${color #AAAAAA}${downspeed wlp0s20f3}
${color #505050}Up $alignr ${color #AAAAAA}${upspeed wlp0s20f3}

${color #505050}Downloaded: $alignr  ${color #AAAAAA}${totaldown wlp0s20f3}
${color #505050}Uploaded: $alignr  ${color #AAAAAA}${totalup wlp0s20f3}

${else}\
# Si connecte sur Ethernet affiche:
${if_existing /proc/net/route enp0s20f0u1u4}
$font${color #505050}IP sur Ethernet $alignr ${color #AAAAAA}${addr enp0s20f0u1u4}

${color #505050}Down $alignr ${color #AAAAAA}${downspeed enp0s20f0u1u4}
${color #505050}Up $alignr ${color #AAAAAA}${upspeed enp0s20f0u1u4}

${color #505050}Downloaded: $alignr  ${color #AAAAAA}${totaldown enp0s20f0u1u4}
${color #505050}Uploaded: $alignr  ${color #AAAAAA}${totalup enp0s20f0u1u4}
${else}\
# Si pas de connexion affiche:
${color #AAAAAA}Connexion non détectée
${endif}${endif}
# recupere l ip toutes les minutes
$alignc $font IP Publique : ${color DarkOrange1}${texeci 60 wget http://checkip.dyndns.org -O – -o /dev/null | cut -d : -f 2 | cut -d \< -f 1}${color}

GateWay IP $alignr (${gw_ip})
${color3}Latence : ${color2}${texeci 1 ping 8.8.8.8 -c 1 | grep time= | cut -d »= » -f4}
${color E6004D}${font Jet:size=8}${color E6004D}Port(s) ouvert(s): ${color3}${tcp_portmon 1 65535 count}
${color3}
#${tcp_portmon 1 65535 rhost 0}
#${tcp_portmon 1 65535 rhost 1}
#${tcp_portmon 1 65535 rhost 2}
]]

mon-conky