← Sommaire SkyLinux

Leçon 36 : Conky — Surveillance Système sur le Bureau

Qu'est-ce que Conky ?

**Conky** est un outil de surveillance système léger et ultra-configurable qui affiche des informations en temps réel directement sur le bureau. Contrairement aux widgets lourds, Conky tourne avec un impact minimal sur les ressources.

**Utilisations courantes :**


1. Installation

# Debian / Ubuntu / Linux Mint

sudo apt install conky

# Vérifier la version

conky --version


2. Lancement et Arrêt Rapide

# Lancer Conky (premier lancement)

conky

# Lancer avec un fichier de config précis

conky -c ~/.config/conky/ma-config.conf

# Arrêter tous les Conky

killall conky

Par défaut, Conky utilise le fichier ~/.conkyrc (ou /etc/conky/conky.conf).


3. Structure d'un Fichier de Config

Un fichier Conky a **deux sections** principales :

# ======== SECTION 1 : PARAMÈTRES GÉNÉRAUX ========

# Position, taille, transparence, couleurs...

# ======== SECTION 2 : CONTENU (TEXT/GRAPHICS) ========

# Ce qui s'affiche à l'écran

**Exemple minimaliste complet :**

conky.config = {

update_interval = 1,

double_buffer = true,

no_buffers = true,

use_xft = true,

font = 'DejaVu Sans:size=10',

alignment = 'top_right',

gap_x = 10,

gap_y = 10,

own_window = true,

own_window_class = 'Conky',

own_window_argb_visual = true,

own_window_argb_value = 150,

own_window_type = 'desktop',

own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',

};

conky.text = [[

${color grey}Hostname:${color} $nodename

${color grey}Kernel:${color} $kernel

${color grey}Uptime:${color} $uptime

${color grey}CPU:${color} $cpu%

${color grey}RAM:${color} $mem / $memmax

${color grey}Swap:${color} $swap / $swapmax

${color grey}Disk (root):${color} $fs_used / $fs_size

${color grey}Download:${color} $downspeed

${color grey}Upload:${color} $upspeed

]]


4. Les Paramètres Essentiels

Position et Apparence

ParamètreRôleExemple
alignmentPosition sur l'écrantop_right, bottom_left, middle_middle
gap_x / gap_yMarge depuis le bordgap_x = 10, gap_y = 50
own_window = trueFenêtre propre (pas un vrai cadre)
own_window_argb_visual = trueTransparence ARGB
own_window_argb_valueNiveau de transparence (0-255)150 = semi-transparent
own_window_typeType de fenêtredesktop, dock, normal
double_buffer = trueÉvite le clignotement (important !)
use_xft = truePolice anti-aliasée
fontPolice par défaut'DejaVu Sans:size=10'
update_intervalRafraîchissement (secondes)1 = chaque seconde

Couleurs Prédéfinies

${color grey} → gris

${color red} → rouge

${color green} → vert

${color blue} → bleu

${color yellow} → jaune

${color cyan} → cyan

${color orange} → orange

${color white} → blanc

Définir une couleur personnalisée :

${color #FF6600}


5. Variables Systèmes (les Plus Utilisées)

Système

VariableDescription
$nodenameNom de la machine
$kernelVersion du noyau
$uptimeTemps depuis le dernier démarrage
$uptime_shortUptime condensé (plus court)
$timeHeure locale
$utc_timeHeure UTC
$dateDate courante

CPU

VariableDescription
$cpuUtilisation CPU totale (%)
$cpu cpu0Utilisation cœur 0
$cpubarBargraphique CPU
$freqFréquence CPU actuelle (GHz)
$freq_gFréquence CPU en GHz

Mémoire

VariableDescription
$memRAM utilisée
$memmaxRAM totale
$mempercPourcentage RAM utilisée
$membarBargraphique RAM
$swapSwap utilisée
$swapmaxSwap totale
$swappercPourcentage Swap

Disques

VariableDescription
$fs_used / $fs_sizeEspace utilisé / total d'un point de montage
$fs_used_percPourcentage utilisé
$fs_barBargraphique
$diskio_readDébit lecture disque
$diskio_writeDébit écriture disque

Réseau

VariableDescription
$upspeedVitesse upload actuelle
$upspeedfVitesse upload (flottant)
$downspeedVitesse download actuelle
$downspeedfVitesse download (flottant)
$totaldownTotal téléchargé
$totalupTotal uploadé
$netAdresse IP

**Attention :** L'interface réseau change selon ta distro. Vérifie avec ip a. Remplace eth0 par la tienne (ex: enp3s0, wlan0).

${upspeed eth0}

${downspeed eth0}

Processus

VariableDescription
$processesNombre total de processus
$running_processesProcessus actifs
$top name 1Processus le plus CPU (nom)
$top cpu 1% CPU du premier processus
$top mem 1% RAM du premier processus

6. Formatage et Alignement

Bargraphiques

${membar 5, 150} → barre RAM, 5 pixels de haut, 150px de large

${cpubar 5, 100} → barre CPU

${fs_bar 5, /} → barre espace disque /

Texte aligné (tableaux dans Conky)

${alignc} Centré

${alignr} Aligné à droite

${alignl} Aligné à gauche

Sauts de ligne

${goto X} → Se positionner à X pixels du bord gauche

${voffset Y} → Décaler verticalement de Y pixels

${offset X} → Décaler horizontalement de X pixels

Exemple de tableau formaté :

${color grey}CPU${goto 50}${color}${goto 90}${alignr}${color grey}RAM${color}

${color grey}$cpu%${goto 50}${membar 5, 90}${goto 150}${color grey}$memperc%${color}


7. Exemple Complet : Bureau Complet

conky.config = {

update_interval = 2,

double_buffer = true,

no_buffers = true,

use_xft = true,

font = 'DejaVu Sans:size=9',

alignment = 'top_right',

gap_x = 10,

gap_y = 10,

own_window = true,

own_window_class = 'Conky',

own_window_argb_visual = true,

own_window_argb_value = 180,

own_window_type = 'desktop',

own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',

default_color = 'e0e0e0',

color1 = '00d9ff', -- cyan

color2 = 'a855f7', -- violet

};

conky.text = [[

${color1}╔══════════════════╗${color}

${color1}║ ${color2}SYSTÈME${color1} ║${color}

${color grey}Hostname : ${color}$nodename

${color grey}Kernel : ${color}$kernel

${color grey}Uptime : ${color}$uptime

${color1}╔══════════════════╗${color}

${color1}║ ${color2}CPU${color1} ║${color}

${color grey}Usage : ${color}$cpu%

${color grey}$cpubar

${color grey}Fréquence : ${color}$freq_g GHz

${color1}╔══════════════════╗${color}

${color1}║ ${color2}MÉMOIRE${color1} ║${color}

${color grey}RAM : ${color}$mem / $memmax

${color grey}$membar

${color grey}Swap : ${color}$swap / $swapmax

${color1}╔══════════════════╗${color}

${color1}║ ${color2}DISQUES${color1} ║${color}

${color grey}/ (root) : ${color}$fs_used / $fs_size

${color grey}$fs_bar

${color1}╔══════════════════╗${color}

${color1}║ ${color2}RÉSEAU${color1} ║${color}

${color grey}Download : ${color}$downspeed

${color grey}Upload : ${color}$upspeed

${color grey}Total Dn : ${color}$totaldown

${color grey}Total Up : ${color}$totalup

${color1}╔══════════════════╗${color}

${color1}║ ${color2}TOP 3 CPU${color1} ║${color}

${color grey}1. ${color}$top name 1 ${color}$top cpu 1%

${color grey}2. ${color}$top name 2 ${color}$top cpu 2%

${color grey}3. ${color}$top name 3 ${color}$top cpu 3%

${color1}╔══════════════════╗${color}

${color1}║ ${color2}TOP 3 RAM${color1} ║${color}

${color grey}1. ${color}$top_mem name 1 ${color}$top_mem mem 1%

${color grey}2. ${color}$top_mem name 2 ${color}$top_mem mem 2%

${color grey}3. ${color}$top_mem name 3 ${color}$top_mem mem 3%

${color1}╔══════════════════╗${color}

${color1}║ ${color2}DATE & HEURE${color1} ║${color}

${color grey}$date

${color grey}$time

]]


8. Lancer Conky au Démarrage

Méthode automatique (Debian/Ubuntu)

# Créer le dossier de config

mkdir -p ~/.config/conky

# Copier ou créer ta config

cp ma-config.conf ~/.config/conky/default.conf

# Créer un lanceur automatique

cat > ~/.config/autostart/conky.desktop << 'EOF'

[Desktop Entry]

Type=Application

Name=Conky

Exec=conky -c ~/.config/conky/default.conf

X-GNOME-Autostart-enabled=true

EOF

Méthode alternative (systemd user)

mkdir -p ~/.config/systemd/user

cat > ~/.config/systemd/user/conky.service << 'EOF'

[Unit]

Description=Conky System Monitor

[Service]

ExecStart=/usr/bin/conky -c ~/.config/conky/default.conf

Restart=on-failure

[Install]

WantedBy=default.target

EOF

systemctl --user daemon-reload

systemctl --user enable --now conky


9. Diagnostic et Erreurs Courantes

Conky clignote

→ Ajouter double_buffer = true dans la section config.

Conky apparaît par-dessus les fenêtres

→ Modifier own_window_type :

own_window_type = 'desktop' # le plus stable

# ou

own_window_type = 'dock' # alternative

Transparence ne fonctionne pas

→ Assure-toi d'avoir own_window_argb_visual = true ET own_window_argb_value avec une valeur < 255.

Informations réseau absentes

→ Vérifie le nom de ton interface :

ip a

Puis remplace eth0 par le bon nom dans ta config.

Conky ne se lance pas

# Mode verbose pour voir les erreurs

conky -c ~/.config/conky/default.conf -v

Impossible de fermer un Conky

killall conky


10. Astuces Avancées

Plusieurs instances (multi-monitor)

# Monitor 1 (gauche)

conky -c ~/.config/conky/gauche.conf &

# Monitor 2 (droite)

conky -c ~/.config/conky/droite.conf &

Intégrer la météo

${execi 300 curl -s "wttr.in/Tavannes?format=3"}

L'option execi 300 exécute la commande toutes les 300 secondes (5 min).

Coloration conditionnelle

${if_match ${cpu}>80}${color red}${cpu}%${color}${else}${color grey}${cpu}%${endif}

Affiche le % CPU en rouge s'il dépasse 80%.

Inclure un script Lua (graphiques)

Conky supporte les scripts Lua pour dessiner des graphiques circulaires, jauges, etc. (avancé).


Résumé

ConceptCommande / Valeur
Installersudo apt install conky
Lancerconky ou conky -c
Stopperkillall conky
Config par défaut~/.conkyrc
Transparenceown_window_argb_value = 150
Positionalignment = 'top_right'
Rafraîchissementupdate_interval = 2
Template couleursgrey, red, green, cyan...

Conky est un outil puissant mais qui peut sembler intimidant au début. Le secret : commence simple, puis ajoute les variables une par une. Un bon fichier de config bien commenté vaut mieux qu'un fichier complexe et mystérieux.

*Leçon créée avec ❤️ pour SkyLinux*