Vous êtes ici : Accueil > Astuces ubuntu > Surveiller son PC avec Conky – Part II

Surveiller son PC avec Conky – Part II

Conky est un petit utilitaire qui permet de superviser votre machine. En effet, il permet d'afficher l'usage de la ram, l'espace disque ainsi que différentes information comme l'utilisation du cpu, espace disque, upload, download,... Conky peut aussi fonctionnner à l'aide de scripts externe ce qui lui offre une très grande souplesse. A l'aide de ces scripts, il est possible d'afficher par exemple l'ip externe, des fils rss et bien d'autres choses encore ...

Installation :

Conky est disponible dans les dépôts ubuntu, donc il s'installe facilement à l'aide de la commande :

sudo apt-get install conky

Configuration :

Apparence de conky :

La configuration de Conky se fait à l'aide du fichier .conkyrc qui se trouve dans votre répertoire personnel. Si celui-ci n'existe pas créé le. Avant de commencer, vous devez savoir que la configuration dans le fichier .conkyrc se déroule en deux temps (préférence visuelle dans un premier temps et ensuite les données à afficher). Nous allons pour l'instant, nous occuper de configurer l'apparence de conky. Copiez/Collez ce qui suit au tout début de votre .conkyrc :

###
#   CONFIGURATION CONKY
#  12/10
#   by ced (http://www.ced-info.com)
###

#
# CONFIGURATION PRINCIPALE
#

## temps pour fermer conky en seconde. 0 = toujours actif
total_run_times 0

## affiche le texte sur la sortie standard
out_to_console no

## réglage de la mémoire, pour éviter le clignotement
double_buffer yes

## Soustraire les mémoires tampons de la mémoire utiliser
no_buffers yes
text_buffer_size 2048

## taux de rafraichissement de la fenêtre (en secondes)
update_interval 1

## nombre d'échantillons à utiliser pour calculer la moyenne d'utilisation
cpu_avg_samples 4
net_avg_samples 2

## taille et positon
alignment top_right
minimum_size 180 392
maximum_width 180

## écart avec le bord x=gauche ou droit y= haut ou bas
gap_x 5
gap_y 35

##  afficher les ombres
draw_shades no

## afficher des contours
draw_outline no

## contours autour des blocs de texte
draw_borders no

## largeur du contour
border_width 1

## largeur des marges
border_margin 5

## pour que conky tourne en arrière plan background no pour les tests
background yes

## utiliser sa propre fenêtre
 own_window yes
        #type de fenêtre : normal(avec le cadre) / override / desktop
        own_window_type override # normal / override / desktop
        #pseudo transparence si vous avez des icones sous le conky elle ne seront plus accessible une fois conky activé
        own_window_transparent yes
        own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

## Utiliser Xft (polices lissées etc)
use_xft yes
xftalpha 0.8
override_utf8_locale yes # force UTF8

## police a utiliser : use_xft doit être a "yes"
xftfont Trebuchet MS:size=8

## Tout le texte en majuscule
uppercase no

## Ajoute des espaces après certains objets pour éviter de les faire bouger.
## Fonctionne uniquement avec les polices Fixes
use_spacer right

## Couleurs
default_color FFFFFF #blanc
default_shade_color 333333
default_outline_color black

## Chargement des scripts Lua
lua_load ~/.conky/scripts/rings.lua
lua_draw_hook_pre ring_stats

Avec cette configuration, votre Conky s'affichera sur votre fond d'écran sans avoir de bordure et avec un arrière plan transparent. Tout ce qu'il faut donc pour que Conky s'intègre parfaitement à votre environnement de travail. La dernière partie de la configuration principale sert à charger les scripts LUA. Ces scripts permettent de styliser votre conky afin de le rendre plus agréable que le "basique" tableau récapitulatif par défaut.

Scripts LUA :

Pour utiliser Lua avec conky, vous devez avoir la version de conky 1.7.2 installée, ou mieux la 1.8.0 qui apporte plus de fonctionnalité AVEC le support pour Lua, la commande conky -v doit vous retourner ça au minimum :

Lua bindings:
   * Cairo
   * Imlib2

Si ce n'est pas le cas, installez le paquet conky-all :

sudo apt-get install conky-all

Comme indiqué plus haut, les scripts lua permettent de styliser votre conky. Pour par exemple afficher les informations comme la RAM sous forme "d'anneaux". Voici par exemple mon script lua qui est est stocké dans mon cas dans le chemin ~/.conky/scripts/. Vous pouvez bien entendu modifier ce chemin à votre guise mais penser à faire la modification dans le fichier .conkyrc!. Ce script me permet d'afficher mes infos sous forme "d'anneaux". Mon scripts lua étant assez long, je vais vous mettre l'exemple deux exemple (un anneau simple et un anneau double).

Commençons par exemple, par afficher la consommation cpu de votre ordinateur.

{
        name='cpu',
        arg='cpu1',
        max=100,
        bg_colour=0x606060,
        bg_alpha=0.6,
        fg_colour=0x1e7aa9,
        fg_alpha=0.8,
        x=32, y=35,
        radius=30,
        thickness=5,
        start_angle=270,
        end_angle=570,
    },

Passons maintenant aux explications de ces valeurs :

  • name : valeur de la variable utilsée par conky
  • arg : de la valeur name (ici cpu1 correspond au 1er coeur de mon processeur, pour le 2ème il faudrait mettre cpu2)
  • max : valeur max de l'anneau (ici 100 car un processeur ne peut pas monter à plus de 100% de charge, cette valeur est ajustable en fonction de ce que vous voulez afficher)
  • bg_colour : couleur d'arrière plan de l'anneau en hexadécimal
  • bg_alpha : valeur de l'alpha (transparence) pour l'arrière plan. Cette valeur est comprise entre 0 et 1
  • fg_colour : couleur de la barre de défilement dans l'anneau en hexadécimal aussi
  • fg_alpha : transparence de la barre de défilement. La valeur est aussi est comprise entre 0 et 1
  • x=??, y=?? : position de l'anneau sur le bureau
  • radius : rayon de l'anneau
  • thickness : épaisseur de l'anneau
  • start_angle : angle de départ de l'anneau
  • end_angle : angle de fin de l'anneau

/!\ NOTER LES VIRGULES À CHAQUE FIN DE LIGNE /!\

Voici le résultat obtenu pour cet anneau par exemple :

CPU 1

Nous allons maintenant voir comment faire pour afficher deux anneaux en même temps pour par exemple afficher la RAM utilisée ainsi que le SWAP sur le même cercle. Voici la partie du scripts lua en question :

{
        name='memperc',
        arg='',
        max=100,
        bg_colour=0x606060,
        bg_alpha=0.6,
        fg_colour=0x1e7aa9,
        fg_alpha=0.8,
        x=32, y=114,
        radius=30,
        thickness=5,
        start_angle=270,
        end_angle=570,
    },
    {
        name='swapperc',
        arg='',
        max=100,
        bg_colour=0x606060,
        bg_alpha=0.6,
        fg_colour=0x1e7aa9,
        fg_alpha=0.8,
        x=32, y=114,
        radius=23,
        thickness=5,
        start_angle=270,
        end_angle=450,
    },

Vous remarquerez que la configuration est identique à celle du processeur, l'astuce est donc de jouer avec les positions des cercles et avec leur taille respective. Voici le résultat obtenu :

MEM/SWAP

Le texte présent sur les deux visuels ne fait pas parti du scripts.lua il est à rajouter dans la seconde partie du fichier .conkyrc.

Informations affichées dans conky :

Comme expliqué plus haut, le fichier .conkyrc est construit en deux parties. Nous allons maintenant voir la seconde partie de ce fichier, celle qui permet d'afficher les infos que vous voulez sur votre PC. Pour reprendre l'exemple du CPU, voici le bout de code à rajouter à la fin de votre .conkyrc :

#
# INFOS A AFFICHER
#

TEXT
${voffset 15}${offset 15}CPU1${voffset 9}
${cpu cpu1} %

La valeur TEXT est obligatoire, sinon tout ce que vous mettrez ne s'affichera pas. Comme vous pouvez le voir, pour avoir les valeurs comme le pourcentage alignées comme il faut, il faut jouer avec la position au pixel près (grâce aux variables voffset et offset).

Utiliser des scripts externes avec Conky :

Conky peut afficher le résultat de divers scripts externes (pour avoir son ip externe, afficher diverses infos comme les flux rss, ...) et ce qui permet une très grande modularité. Par exemple, voici le script permettant d'obtenir son adresse IP externe et la méthode pour afficher le résultat dans conky.

Commencons par le script :

#!/bin/sh

# Afficher ip externe
wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d\< -f 1

Il faut ensuite rendre le script exécutable :

chmod +x /chemin/vers/votre/script.sh

Il faut ensuite mettre dans le fichier .conkyrc après la variable TEXT :

${alignc}IP WAN : ${execi 90 /home/ced/.conky/scripts/ip-ext.sh}

Pour exécuter un script externe, il faut utiliser la variable execi suivi du temps de raffraichissement en secondes. Ici 90 secondes c'est largement suffisant. Il faut ensuite renseigner le chemin complet du script que vous voulez utiliser.

Votre IP externe devrais normalement s'afficher sur votre bureau.

Vous pouvez maintenant vous amuser à configurer votre conky comme vous le souhaitez.

Lancement de conky au démarrage de l'ordinateur :

Pour lancer Conky au démarrage de votre ordinateur, il faut faire un script afin de lancer conky et exécuter le script au démarrage.

Voici le script conkystart.sh permettant de lancer conky :

#! /bin/bash

#Lancement conky
sleep 10&&
conky -c /chemin/vers/votre/.conkyrc
exit

Pensez à mettre les droits d'exécution sur ce script :

chmod +x /chemin/vers/conkystart.sh

Nous allons maintenant lancer ce script au démarrage, pour cela pour GNOME faites "Système > Préférences > Applications au démarrage". Cliquez ensuite sur "Ajouter", vous devriez avoir une fenêtre comme celle-ci :

Applications au démarrage GNOME

Le champ "Nom" correspond au nom qui sera visible dans le gestionnaires des applications au démarrage. Le champ "Description" est ... une description ... et oui :). C'est dans le champ "Commande" que vous allez lancer le script avec la commande suivante :

sh /chemin/vers/votre/conkystart.sh

Vous pouvez maintenant laisser libre court à votre imagination alors à vos claviers 😉 !

Pour ma part, voici ma configuration pour conky:

desktop Ced

Ainsi que tout mes fichiers de configurations :

  • Fichiers de conf conky:

.conkyrc

.conkyrc2

  • Scripts lua :

rings.lua

rings2.lua

  • Scripts externes (dans le conky de gauche)

ip-ext.sh

box.sh (permet d'afficher les diverses informations relatives à ma box ici une neufbox 4)

conkystart.sh

Fond d'écran

Comme vous pouvez le voir, il est tout à fait possible d'avoir plusieurs .conkyrc. Il suffit juste de changer leur position dans la première partie de chaque .conkyrc et de tous les lancer au démarrage 😉

Plus d'informations sur conky et lua ici

J'espère avoir été assez clair.

Et comme d'habitude, si vous avez des remarques ou des suggestions, n'hésitez pas à laisser des commentaires !