| M | T | W | T | F | S | S |
|---|---|---|---|---|---|---|
| « May | ||||||
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 | |||
Voilà un exemple de configuration pour conky.
L'installation de conky étant triviale sur la plupart des distributions et largement décrite, elle n'est pas abordée.
A noté que j'ai récupéré ces fichiers sur le site officiel de conky, en particulier les fichiers de Hellf[i]re.
J'ai surtout modifié le fichier principale pour l'adapter à mon matériel (dual core avec 2 sessions de folding@home, disques durs, carte graphique...) et j'ai aussi changé les couleurs.
Voilà déjà l'archive qui contient tous les fichiers utils: conkyrc-blue-aro
En plus de ces fichiers, pour afficher toutes les infos, vous aurez besoin de:
Les documents de références:
Voilà le fichier principal que l'on donne à conky:
conky -c /home/arofarn/conky/conky-blue-aro
Le fichier de configuration de conky s'organise en 2 parties:
${nom_de_la_variable paramètre1 paramètre2}
background yes
font 7x13
use_xft no
on_bottom yes
update_interval 1.0
On commence par les option les plus général: background permet de fusionner conky avec l'arrière plan du bureau, les deux option suivante concerne la police de caractère. L'option on_bottom a été abandonnée au profit de background. Enfin on défnit l'intervalle de mise à jour de conky en secondes.
total_run_times 0
own_window_transparent yes
double_buffer yes
minimum_size 280 900
maximum_width 308
total_run_times indique combien de rafraîchessement conky fait avant de quitter (0 le faisant tourner indéfiniment).
own_window_transparent rend conky pseudo-transparent.
double_buffer permet d'éliminer un éventuellement clignotement
minimum_size donne la taille minimal de la fenêtre conky (largeur hauteur)
maximum_width défini la largeur maximale de la fenêtre conky
draw_shades no
draw_outline no
draw_borders no
stippled_borders 8
border_margin 4
border_width 1
Ici on défini l'ombrage, les bordures et les marges.
default_color white
default_shade_color black
default_outline_color 2C4B68
Maintenant les couleurs par défaut, dans l'ordre, du texte, des ombres et des contours. Pour les couleurs de base, il y a les nom en anglais, sinon le code héxadécimal de la couleur (code type HTML). Perso, j'utilise kcoloredit pour les ajuster.
alignment top_left
gap_x 8
gap_y 8
Ces options permettent de placer conky sur le bureau, en haut à droite (alignment) avec un décalage de 8 pixel en abscisse et en ordonnée (pour qu'il ne soit pas collé contre le bord de l'écran.
no_buffers yes
cpu_avg_samples 2
net_avg_samples 2
no_buffers permet de soustraire le cache des systèmes de fichiers de la quantité de mémoire utilisé, lors de l'affichage
cpu_avg_samples et net_avg_samples permettent de définir le nombre d'échantillon à prendre en compte pour le calcul de la moyenne de l'utilisation du CPU et du réseau.
override_utf8_locale yes
uppercase no
ces deux option force (ou non) l'utilisation du jeux de caractères UTF-8 et des majuscules
use_spacer no
Pour ajouter un espace après certain objet spéciaux pour les empêcher de déplacer certain autres éléments. Surtout utils avec des polices à largeurs fixes.
Pour plus de clareté j'ai enlevé toutes les balise ${color #xxxxxx}
TEXT
$nodename linux-$kernel${alignr}${time %T}
nom du système (HOSTNAME), nom du noyau et heure
Système:
Uptime: $uptime - Charge: $loadavg
Fréquence CPU: $freq_dyn_g Maximum:$freq_g
Utilisation Core 1: ${cpu cpu1}% ${cpubar cpu1}
Utilisation Core 2: ${cpu cpu2}% ${cpubar cpu2}
${cpugraph cpu2 32,150 2C4B68 5C9CD9} ${cpugraph cpu1 32,150 2C4B68 5C9CD9}
Mémoire: $mem/$memmax - $memperc% ${membar}
Swap : $swap/$swapmax - $swapperc% ${swapbar}
Processus: $processes Running: $running_processes
Ce bloque permet l'affichage:
de l'uptime et de la charge moyenne du système les 1, 5 et 15 dernières minutes
la fréquence de fonctionnement du CPU actuelle et maximal depuis le lancment de conky
la charge respective des deux coeurs du CPU dual-core (comme les Core 2 Duo et les Athlon X2). Sous forme numérique, de barre et de graphe.
L'utilisation de la mémoire vive et du swap
le nombre de processus total et actifs
Réseau (Gigabit - eth1): ${alignr}IP: ${addr eth1}
Descendant: ${downspeed eth1} ko/s${offset 25}Montant:${upspeed eth1} ko/s
${downspeedgraph eth1 32,150 2C4B68 5C9CD9} ${upspeedgraph eth1 32,150 2C4B68 5C9CD9}
Les paramètres du réseau sur l'interface eth1 (Ethernet Gigabit filaire).
Réseau (Wifi - ra0): ${alignr}IP: ${addr ra0}
Descendant: ${downspeed ra0} ko/s${offset 25}Montant: ${upspeed ra0} ko/s
Status: ${linkstatus ra0}
${downspeedgraph ra0 32,150 2C4B68 5C9CD9} ${upspeedgraph ra0 32,150 2C4B68 5C9CD9}
idem mais pour l'interface ra0 (Wifi). On note en plus la variable linkstatus qui permet d'avoir la qualité de réception.
Systèmes de fichiers:
/ ${fs_used /}/${fs_size /} ${fs_bar /}
/home ${fs_used /home/}/${fs_size /home/} ${fs_bar /home/}
/usr ${fs_used /usr/}/${fs_size /usr/} ${fs_bar /usr/}
/opt ${fs_used /opt/}/${fs_size /opt/} ${fs_bar /opt/}
/var $${fs_used /var/}/${fs_size /var/} ${fs_bar /var/}
Sauvegarde ${fs_used /mnt/sauvegarde/}/${fs_size /mnt/sauvegarde/} ${fs_bar /mnt/sauvegarde/}
Le taux de remplissage de quelques système de fichiers importants.
Température des disques durs:
/dev/sda ${hddtemp /dev/sda}
/dev/sdb ${hddtemp /dev/sdb}
/dev/hde ${hddtemp /dev/hde}
Une variable relativement nouvelle: hddtemp, qui utilise le logiciel du même nom pour afficher la températures des disques durs.
Geforce 7600GS:
Fréquences: GPU: ${execi 10 nvclock -i | grep "GPU clock" | grep '[0-9][0-9][0-9].[0-9]' -o}MHz$ / RAM:${execi 300 nvclock -i | grep "Clock" | grep '[0-9][0-9][0-9].[0-9]' -o}MHz
Température GPU: ${execi 10 nvclock -T | grep "temperature" | grep '[0-9][0-9]' -o}°C
L'utilisation de la variable execi (execution d'une commande à intervalle régulier en seconde) permet de récupérer les paramètres de la carte graphique. En l'occurence, une Geforce 7600GS questionnée par nvclock.
Noms PID CPU% MEM%
Utilisation CPU
${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4}
${top name 5} ${top pid 5} ${top cpu 5} ${top mem 5}
Utilisation Mémoire
${top_mem name 1} ${top_mem pid 1} ${top_mem cpu 1} ${top_mem mem 1}
${top_mem name 2} ${top_mem pid 2} ${top_mem cpu 2} ${top_mem mem 2}
${top_mem name 3} ${top_mem pid 3} ${top_mem cpu 3} ${top_mem mem 3}
une section "top-like" qui donne les 5 plus gros consommateurs de resource processeur et les 3 plus gros consommateur de mémoire.
Avancement Folding@Home
Client 1:
${execi 300 /home/arofarn/.conky/fah_status_1.sh}
Client 2:
${execi 300 /home/arofarn/.conky/fah_status_2.sh}
Encore la variable execi. Ici pour lancer des scripts externes qui récupère les données des Work Unit de Folding@Home en cours. Je fait tourner une instance du client F@H par coeur de calcul. Il faut ainsi un script pour chacun. Le script en question est fournis juste après.
Il en faut un part instance de folding@home tournant sur la machine.
#!/bin/bash# Location of unitinfo.txt
FAH="/opt/foldingathome/client1/unitinfo.txt"
if [ -f $FAH ]
then
sed -e 's/^Name:.\(.\{20\}\).*$/Nom: \1.../' -e 's/Progress:/Progression /' -e 's/Due time:/A faire pour le :/' -e 's/Download time:/Téléchargé le :/' -e '/^Current/d' -e '/^-/d' $FAH
fi
exit 0
Dans chaque scripts, changer la variable FAH pour pointer vers le bon fichier unitinfo.txt . C'est améliorable facilement en faisant en sorte de donne ce chemin en paramètre au script, à voir par la suite.
Pour plus d'info sur le projet Folding@Home:
Voilà quelques scripts utils, qui peuvent être appelés grâce à la variable execi ou exec par exemple.
Nécessite perl avec le module Date::Manip.
#!/usr/bin/perl
use Date::Manip;$date = `grep "Sync completed" /var/log/emerge.log | tail -n1 | cut -c-10`;
$date = &DateCalc("Jan 1, 1970 00:00:00 GMT",$date);
$date = UnixDate("$date","le %x à %H:%M");
print "$date";
#!/bin/bash
# emerge-current.sh by Hellf[i]re
#
# This script is designed to read the name of the last package compiled.
#
# As this script does read the entirety of emerge.log, it will be rather
# heavy on the CPU. It shouldn't be enough to be noticable on newer (2.0Ghz+)
# processors, but it still should not be run more often than every 30 seconds.
#
# Usage:
# .conkyrc: ${execi [time] /path/to/script/emerge-current.sh}
#
# Usage Example
# ${execi 30 /home/youruser/scripts/emerge-current.sh}tac /var/log/emerge.log |\
grep 'Compiling' |\
head |\
sed -e 's/.*(//' |\
sed -e 's/::.*)//' |\
head -n 1 |\
cut -d \) -f 1
#!/bin/bash
#
# emerge-status.sh by Hellf[i]re
#
# This script will report the current status of portage.
#
# Usage:
# .conkyrc: ${execi [time] /path/to/script/emerge-current.sh}
#
# Usage Example
# ${execi 30 /home/youruser/scripts/emerge-current.sh}
#
# Known Bugs:
# 1) If there are two emerges running at once, when the first one finishes
# running, the script will report the current status as "Completed".
# 2) If there is a emerge running and you run a search, the script will
# report the current status as "Completed", until the running emerge
# moves to the next package, or itself completes.
# The reasons for this are twofold - one, it's a feature
and two, there
# would be far too much parsing required to find out the current status of
# every command which is run in parallel.STATUS=`tail -n 15 /var/log/emerge.log |\
grep -iE "Compiling|Cleaning|AUTOCLEAN|completed|search|terminating|rsync" |\
cut -d ' ' -f "2-" |\
grep -Ev 'Finished\.|Cleaning up\.\.\.' |\
tail -n 1`
#echo "$STATUS"
if [ "`echo "$STATUS" | grep -i compiling`" != "" ]; then echo Compiling
elif [ "`echo "$STATUS" | grep -i cleaning`" != "" ]; then echo Cleaning
elif [ "`echo "$STATUS" | grep -i autoclean`" != "" ]; then echo Autoclean
elif [ "`echo "$STATUS" | grep -i sync`" != "" ]; then echo Syncing
elif [ "`echo "$STATUS" | grep -i search`" != "" ]; then echo Searching
elif [ "`echo "$STATUS" | grep -i completed`" != "" ]; then echo Completed
elif [ "`echo "$STATUS" | grep -i terminating`" != "" ]; then echo Completed
else echo Script Error!
fi
Nécessite curl.
Il faut changer l'adresse du file RSS à suivre à la ligne commençant par URI. On peut aussi modifier le nombre de billet à afficher grâce à la variable LINES.
#!/bin/bash
# RSS Feed Display Script by Hellf[i]re v0.1
#
# This script is designed for most any RSS Feed. As some feeds may not be
# completely compliant, it may need a bit of tweaking
#
# This script depends on curl.
# Gentoo: emerge -av net-misc/curl
# Debian: apt-get install curl
# Homepage: http://curl.haxx.se/
#
# Usage:
# .conkyrc: ${execi [time] /path/to/script/conky-rss.sh}
#
# Usage Example
# ${execi 300 /home/youruser/scripts/conky-rss.sh}#RSS Setup
URI=http://www.pcinpact.com/include/news.xml #URI of RSS Feed
LINES=4 #Number of headlines
#Environment Setup
EXEC="/usr/bin/curl -s" #Path to curl
#Work Start
$EXEC $URI | grep title |\
sed -e :a -e 's/<[^>]*>//g;/
sed -e 's/[ \t]*//' |\
sed -e 's/\(.*\)/ \1/' |\
sed -e 's/\.//' |\
sed -e 's/\"//' |\
sed -e 's/\"//' |\
head -n $(($LINES + 2)) |\
tail -n $(($LINES))
Créer un fichier dans ~/.kde/Autostart (par exemple /home/arofarn/.kde/Autostart/conky), avec dedans:
#!/bin/sh
conky -d -c /chemin/de/votre/fichier/de/config
L'option -c [...] n'est pas util si votre fichier de configuration est ~.conkyrc.
L'option -d, pour daemonize, sert à mettre la tâche en arrière-plan.
Ensuite, il faut rendre ce fichier executable, soit par clic droit, Propriété/Droits dans Konqueror, soit en ligne de commande:
chmod u+x ~.kde/Autostart/conky
1 comment.
[...] Conky - Exemple de fichier de configuration [...]
Names and email addresses are required (email addresses aren't displayed), url's are optional.
Comments may contain the following xhtml tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>