Conky : affichage des ressources système

Conky permet la surveillance de pratiquement toutes les variables du système : CPU, mémoire, swap, espace disque, température, téléchargements, messages du système, et bien d'autres encore. L'affichage peut se faire en arrière-plan sur le bureau.

Conky est extrêmement configurable bien que sa configuration puisse être difficile. Pour voir des exemples de configuration de Conky, consultez ce sujet ou cette archive.

Pré-requis

Installation

Depuis les dépôts

Pour installer ce logiciel, il suffit d'installer le paquet conky, ou bien la version complète conky-all, qui intègre plus de fonctionnalités (X11, XDamage, XDBE, Xft, MPD, MOC, math, hddtemp, portmon, RSS, Weather, wireless, IBM, nvidia, eve-online, Imlib2, ALSA mixer, apcupsd, I/O stats, argb, Lua+the cairo+imlib2 lua bindings, Audacious, and XMMS2).

Depuis le PPA

Pour installer la version la plus récente version 1.9.1 au lieu de 1.8.1 pour ubuntu 12.04 (Precise) ,14.04(Trusty) et 14.10(Utopic) :

Conky passe en version 1.10. Cela entraîne de gros changements sur la configuration :
  1. Mettre la partie configuration dans :
    conky.config = { ... }
  2. Mettre la partie TEXT dans :
    conky.text = [[ ... ]]
  3. Toutes les valeurs doivent être précédées de "=" dans la partie configuration
  4. Finir chaque ligne par une virgule ","
  5. Remplacer tous les "yes"/"no" en "true"/"false" (sans les guillemets)
  6. Toutes les valeurs autres que nombres,"true" et "false", doivent être entre quotes (ex: use_space = 'left' )
  7. Les commentaires doivent commencer avec "" à la place de "#"
  •  Ajoutez le PPA ppa:vincent-c/conky1) dans vos sources de logiciels. Soit la commande :
sudo add-apt-repository ppa:vincent-c/conky
sudo apt-get update
sudo apt-get install conky-all

Configuration

Il existe un logiciel permettant d'installer simplement des thèmes conky, Conky Manager, vous devez ajouter le PPA Ajoutez le PPA ppa:teejee2008/ppa2) dans vos sources de logiciels. Puis installer le paquet installez le paquet conky-manager
Vous pouvez coloriser un code conky sur gedit (Affichage → Mode de coloration).

Pour configurer Conky, créez le fichier .conkyrc dans votre dossier personnel et mettez à l'intérieur de celui-ci du code spécial conky, par exemple : Intégrée au fond d'écran ou Interface simple fenêtrée.

Retrouvez les fonctions de Conky.

Retrouvez les variables de Conky.

Certaines fonctions et variables listées dans les liens ci-dessus ne sont plus à jour avec les nouvelles versions de Conky. Si vous n'avez pas peur de l'anglais, dirigez-vous plutôt vers la documentation de Conky.

Conky avant text

- La première partie du Conky sert à configurer le Conky, il ne faut pas oublier de mettre à la suite la partie TEXT qui comporte ce que va afficher Conky ; sans quoi il ne démarrera pas.

# temps pour fermer conky en secondes. 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 utilisée
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 320 5
maximum_width 320

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

#  afficher les ombres
draw_shades yes
# 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 4

#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 accessibles une fois Conky activé
own_window_transparent yes

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

#police a utiliser : use_xft doit être a "yes"
xftfont Fixed:size=7#OCR A Std:size=6
# 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

color1 e49c16 
color2 CA0000 #rouge

color6 EEEEEE
color7 DDDDDD
color8 CCCCCC
color9 BBBBBB

Autres exemples

Sur le site officiel : site officiel

Sur le forum : "Conky : Postez vos conkyrc ou certaines parties intéressantes" et la suite du topic ici, et puis encore la suite et je suis gentil alors une autre suite pour faire plaisir… ;)

Exécution

Pour exécuter ponctuellement Conky, faites ALT + F2 et vous tapez conky.

Si vous voulez le charger à chaque démarrage : Système → Préférence → Sessions → Programmes au démarrage (ou dans xubuntu : paramètres → session et démarrage → démarrage automatique ; dans Unity, chercher dans le tableau de bord : Applications au démarrage).

Cliquez sur Ajouter et vous tapez "conky". Éventuellement, il faudra retarder son exécution afin que votre bureau (GNOME/KDE/XFCE) soit initialisé :

conky -d

ou

conky -p 10

ou le nombre derrière -p est un nombre de secondes d'attente.

Si on souhaite lancer un conky différent du conky standard défini dans ~/.conkyrc : conky -c ~/chemin_répertoires/nom_du_fichier_conky. L'option -c indique de ne pas utiliser le conky par défaut (~/.conkyrc). Exemple concret pour un conky connu comme Gotham :

conky -c ~/conky/Gotham/config/Gotham

Et avec une temporisation de 20 secondes :

conky -p 20 -c ~/conky/Gotham/config/Gotham

Note : l'option -p doit être avant l'option -c, sinon cela ne fonctionne pas.

Si la commande de retardement (-d ou -p 10) ne fonctionne pas avec un Conky par dessus les autres fenêtres suite au démarrage de votre session, voir le chapitre 4.4 de cette documentation ou cliquer ICI pour y accéder directement.

Problèmes rencontrés

Conflit entre Conky et les icônes du bureau

Lorsque l'on configure Conky en intégration bureau, il arrive que les icônes soient masquées par l'option "double_buffer" mise à yes. Vous pouvez tester en la mettant à "no" mais le code clignote à chaque réactualisation.

Ce problème est connu avec Nautilus, mais aussi avec xfdesktop (donc affecte à priori Ubuntu et Xubuntu 9.04+ mais pas Kubuntu)

On peut régler ce problème de différentes façons. Voici une façon simple rapide et ne dépendant pas d'autres applications (On peut classiquement utiliser Compiz pour mettre en œuvre une solution similaire).

Éditer le .conkyrc pour changer la valeur de own_window à yes et rajouter deux options :

 own_window        yes    # On dit à Conky de ne pas se mettre sur le bureau mais dans une fenêtre propre
 own_window_type   override  # type de fenêtre "maison" (le type desktop convient si on n'a pas d'ombre)
 own_window_hints  undecorated,below,sticky,skip_taskbar,skip_pager # définition du type 

Cette solution provient de la FAQ de Conky, légèrement adaptée (override au lieu de desktop) afin de supprimer l'ombre. Si own_window_type override ne fonctionne pas, vous pouvez essayer own_window_type desktop, cela fonctionne généralement.

Pour s'en sortir avec Compiz, il s'agit essentiellement de créer une règle grâce au plugin regexp matching pour appliquer la décoration et l'ombrage seulement aux fenêtres autres que celle de Conky.

Edit : Essayer le paramètre :

own_window_argb_visual yes

Conflit entre Conky et LXDE

Sous LXDE, lorsque l'on veut intégrer conky au bureau, deux problèmes peuvent apparaître : - Conky disparaît lorsque l'on clique sur le bureau - Conky disparaît lorsque l'on fait "minimiser toutes les fenêtres" avec LXPanel

Pour régler le problème, utilisez les paramètres suivants dans votre conkyrc :

background no
own_window yes
own_window_class Conky
own_window_type dock
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
own_window_transparent yes

(Ce code permet également de résoudre ce type de problème sous Kubuntu, ajoutez-le simplement dans votre fichier.)

Puis, allez dans Préférences > openBox configuration manager > dock.

Dans "Position", cochez "Permettre aux fenêtres d'être placées dans la zone de Dock". Puis dans "Empilement", choisissez "Gardez les docks en dessous des autres fenêtres".

Le tour est joué !

Transparence avec Openbox

On peut émuler une fausse transparence avec Openbox (qui normalement ne gère pas la transparence), permettant d'afficher le fond d'écran sous le Conky. Normalement, cette configuration fonctionne dans votre conkyrc :

own_window no
own_window_transparent yes
own_window_type override
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
double_buffer yes

Conky ne s’affiche pas au démarrage de votre session

Au démarrage de votre session, il se peut que Conky soit masqué par d’autres éléments, comme le fond d’écran, qui sont affichés après et donc par dessus. Pour y remédier, il suffit donc de retarder le lancement automatique de Conky.3)

Sans script (plus simple)

Créez une ligne dans votre gestionnaire de session (sur Xfce, on le trouve dans le panneau paramétrage, icone Session et démarrage, par exemple).

conky -p 20

ou

sh -c "sleep 20; conky;"

(réduisez le nombre de secondes en fonction des besoins de votre machine : plus elle démarre vite, plus le nombre de secondes exigé est faible. Une seconde suffit sur des systèmes récents (en 2013)).

Puis redémarrez votre système.

Avec un script

Ce système est plus lourd est n'offre d’intérêt que pour des options de démarrage complexes (comme démarrer plusieurs Conky, par exemple).

On effectue le démarrage retardé à l’aide d’un script qu’on nomme .conkyboot par exemple, et qu’on place dans le répertoire contenant .conkyrc c’est-à-dire /home/$USER/. Voici son contenu :

#!/bin/bash
sleep 20;
conky;

Le retard, en secondes (20 secondes dans ce script), est à adapter selon ses préférences et le temps de démarrage de la machine.

Penser à rendre le fichier exécutable :

chmod +x ~/.conkyboot

Il faut ensuite spécifier que ce script sera lancé au démarrage. Dans Système → Préférences → Applications au démarrage, cliquer sur Ajouter :

  • Nom : Conky
  • Commande : /home/$USER/.conkyboot

Redémarrer le système. Cela devrait fonctionner.

Problème de clignotement

Pour éviter le clignotement éditez le fichier .conkyrc

Et vous mettez "yes" pour :

  • double_buffer

On peut aussi rajouter "yes" pour :

  • own_window_transparent

Pour que l'option double_buffer fonctionne, le module "dbe" (Double Buffer Extension) doit être activé dans /etc/X11/xorg.conf. On ajoute donc Load "dbe" dans la section Module du xorg.conf après l'avoir sauvegardé :

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.backup
sudo xdg-open /etc/X11/xorg.conf

chercher :

Section "Module"
...
EndSection

et insérer :

Load "dbe"

dans la liste des modules chargés. Relancer le serveur X (ctrl+alt+backspace) pour que les changements prennent effet.

En cas de problème :

sudo cp /etc/X11/xorg.backup /etc/X11/xorg.conf

Voilà ;)

PS_1 : au cas où ça continue toujours de clignoter, introduire ceci dans .conkyrc /etc/X11/xorg.conf :

  Load           "glx"
  Load           "dbe"
  Load           "i2c"
  Load           "bitmap"
  Load           "ddc"
  Load           "extmod"
  Load           "freetype"
  Load           "int10"
  Load           "vbe"

Puis, pour vérifier si Conky utilise le double buffer, lancez Conky dans le terminal. Si ces lignes apparaissent :

Conky: failed to set up double buffer
Conky: drawing to single buffer

Alors Conky n'utilise pas le double buffer.

PS_2: (ou plus simple, cas perso, ne fonctionne pas si le problème vient de la gestion du double buffer.) Pour supprimer tout clignotement, il faut créer une ligne de "texte pur" légèrement plus large que la plus large des lignes affichées avec des variables ou graph. exemple de ligne texte ajoutée dans .conkyrc (ajuster le nombre de tiret "-" en fontion) : ${color #666666}———————————————————–

Le double buffer ne fonctionne pas chez tout le monde, on recherche encore la solution miracle. Si vous l'avez, merci de la partager !
PARTAGE : cela ne supprime pas complètement le problème, mais il faut utiliser une police à chasse fixe. (type monospace)

Éviter une fenêtre dans la barre des tâches

Deux méthodes :

1. (conky 1.4.2) Il faut rajouter dans le .conkyrc, avant la section TEXT (cette méthode permet de ne pas avoir à lancer un deuxième processus au démarrage) :

own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

Les propriétés sont :

  • undecorated qui enlève le tour de la fenêtre
  • below qui permet de mettre la fenêtre de Conky sous les autres fenêtres
  • sticky qui laisse la fenêtre de Conky sur tous les bureaux
  • skip_taskbar qui enlève Conky de la barre des tâches
  • skip_pager qui enlève Conky du pager (alt-tab)

Ce type ne permet pas de conserver Conky visible lorsque l'on clique sur faire apparaître le bureau. En mettant la ligne :

own_window_type override

On conserve les options évoquées précédemment et en plus on conserve Conky même lorsque l'on clique sur faire apparaître le bureau (il peut y avoir un problème d'affichage des icônes du bureau).

(plus d'info dans le man conky qui est reproduit sur http://conky.sourceforge.net/docs.html).

2. Il faut utiliser le packet devilspie (ce qui nécessite le lancement de conky et devilspie au démarrage ; l'intérêt est que l'on peut gérer plusieurs processus avec devilspie) : installez le paquet devilspie.

Deux méthodes de configuration de devilspie : Pour devilspie ⇐ 0.12

Méthode 1 : créer un fichier:

gedit $HOME/.devilspie.xml

Et vous mettez dedans :

<?xml version="1.0"?>
<!DOCTYPE devilspie SYSTEM "devilspie.dtd">
<devilspie>
<!-- This flurb configures devilspie to watch for a window called "conky" -->
<flurb name="conky">
<matchers>
<matcher name="DevilsPieMatcherWindowName">
<property name="application_name" value="conky"/>
</matcher>
</matchers>
<!-- The following controls what actions are preformed -->
<actions>
<!-- Hide conky from the taskbar and the pager -->
<action name="DevilsPieActionHide">
<property name="skip-tasklist" value="TRUE"/>
<property name="skip-pager" value="TRUE"/>
</action>
<!-- Show conky on all workspaces -->
<action name="DevilsPieActionSetWorkspace">
<property name="pinned" value="TRUE"/>
</action>
</actions>
</flurb>
</devilspie>
CETTE METHODE NE MARCHE PAS

Méthode 2 :

Créez un dossier caché dans le home :

mkdir ~/.devilspie

Aller dans ce dossier :

cd ~/.devilspie/

Editer le fichier de configuration (on peut lui donner n'importe quel nom) :

 gedit conky.ds

Coller les s-expressions utilisées par devilspie (infos supplémentaires sur http://wiki.foosel.net/linux/devilspie). Un fichier classique pour conky serait :

(if
    (is (application_name) "ubuntu - conky")
    (begin
       (pin)
       (skip_pager)
       (skip_tasklist)
       (below)
      (wintype "dock")
    )
)

Quelques explications :

  • application_name : nom de l'application
  • pin : permet de mettre Conky sur tous les bureaux
  • skip_pager : Conky n'apparaît pas quand on fait alt-tab
  • skip_tasklist : Conky n'apparaît pas dans la barre des tâches
  • below : Conky est toujours dessous les autres fenêtres
  • wintype "dock" : permet d'avoir Conky encore visible même lorsque l'on clique sur l'icône pour faire apparaître le bureau ;-) la classe ultime…

Il est possible qu'il faille adapter le champ application_name. Il y a sûrement une méthode plus simple mais j'ai pas encore trouvé… On fait un fichier test.ds dans le dossier caché devilspie avec dedans :

(debug)

Ensuite on lance l'application dont on cherche le nom (conky dans notre cas). Puis on lance devilspie dans la console. Il apparaît dans la console des informations sur les fenêtres ouvertes en ce moment, donc notre application, il suffit de repérer le nom de conky. Une fois cela fait on efface le fichier test.ds

Puis il faut le charger au démarrage : Système → Préférence → Sessions → Programme au démarrage Cliquez sur Ajouter et vous tapez devilspie

Voilà !

Le conky réapparaît parfois brièvement au premier plan, devant mes applications

J'ai rencontré ce problème avec les Conky de largeur variable (quand on affiche les ports ouverts et l'adresse distante par exemple).

Pour y remédier il faut fixer la largeur du Conky, en spécifiant une largeur minimale et une largeur maximale identiques :

minimum_size 260
maximum_width 260

Mon conky est tronqué

Par défaut la taille du buffer de conky est de 128. Si votre conky comporte une grande quantité de textes et d'images, il est possible que tout ne s'affiche pas correctement.

Pour y remédier il faut rajouter au .conkyrc avant la section TEXT :

text_buffer_size 1024

Conky et Gnome-shell

Sous Gnome-shell pensez à modifier votre conkyrc comme suit :

own_window yes
own_window_transparent no
own_window_type normal
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
#semi-transparent #
own_window_argb_visual yes
#couleur du font de conky ex:000000 = noire #
own_window_colour 000000
#niveau de transparence #
own_window_argb_value 0

Scripts pour votre .conkyrc

Système

Multimédia

La météo

Divers

Voir aussi


Contributeurs principaux : McPeter, ljere

  • conky.txt
  • Dernière modification: Le 28/04/2018, 11:15
  • (modification externe)