[[conky]]
Piste: » conky
Affichage des ressources système : Conky
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 :
Pré-requis
Pour installer ce logiciel, vous devez avoir activé l'accès au dépôt Universe.
Installation
Il vous suffit, pour cela, d'installer le paquet conky.
Versions de conky disponible sous Ubuntu:
- Dapper Drake (6.06) : 1.3.5 (ou 1.4.4 si vous activez les dépots backports)
- Edgy Eft (6.10) : 1.4.2 (ou 1.4.5 si vous activez les dépots backports)
- Feisty Fawn (7.04) : 1.4.5
- Gutsy Gibbon (7.10) : 1.4.7 (ou 1.4.9 si vous activez les dépots backports)
- Hardy Heron (8.04) : 1.5.1
Configuration
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 :
Interface simple fenêtrée
use_xft yes
xftfont Arial:size=8
xftalpha 0.8
update_interval 1.0
total_run_times 0
own_window yes
own_window_transparent yes
double_buffer yes
minimum_size 280 5
draw_shades no
draw_outline no
draw_borders no
stippled_borders 8
border_margin 4
border_width 1
default_color 4582B5
default_shade_color black
default_outline_color black
alignment bottom_right
gap_x 8
gap_y 50
no_buffers yes
uppercase no
cpu_avg_samples 2
net_avg_samples 2
override_utf8_locale no
use_spacer no
TEXT
$nodename - $sysname $kernel on $machine
$stippled_hr
${color #4582B5}Uptime:$color $uptime ${color #FFFFFF}- Load:$color $loadavg
${color #4582B5}Usage CPU:$color $cpu% ${color #FFFFFF} ${cpubar}
$color ${cpugraph FFFFFFF FFFFFFF}
${color #4582B5}Usage RAM:${color #FFFFFF} $mem/$memmax - $memperc% ${membar}
${color #4582B5}Usage Swap:${color #FFFFFF} $swap/$swapmax - $swapperc% ${swapbar}
${color #4582B5}Processus:$color $processes ${color #FFFFFF}Running:$color $running_processes
$color$stippled_hr
${color #4582B5}Reseau:
Down:${downspeed eth1} k/s${color #FFFFFF} ${offset 80}Up:${color #FFFFFF} ${upspeed eth1} k/s
$color${downspeedgraph eth1 32,150 FFFFFF FFFFFF} $color${upspeedgraph eth1 32,150 FFFFFF FFFFFF}
$color$stippled_hr
${color #4582B5}Espace Disque:
ext3: $color${fs_free /}/${fs_size /} ${fs_bar /}
$color$stippled_hr
${color #4582B5} PID CPU% MEM%
CPU usage
${color #FFFFFF} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
${color #FFFFFF} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
${color #FFFFFF} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
${color #4582B5}Mem usage
${color #FFFFFF} ${top_mem name 1} ${top_mem pid 1} ${top_mem cpu 1} ${top_mem mem 1}
${color #FFFFFF} ${top_mem name 2} ${top_mem pid 2} ${top_mem cpu 2} ${top_mem mem 2}
${color #FFFFFF} ${top_mem name 3} ${top_mem pid 3} ${top_mem cpu 3} ${top_mem mem 3}
${color #FFFFFF} ${top_mem name 4} ${top_mem pid 4} ${top_mem cpu 4} ${top_mem mem 4}
Intégrée au fond d'écran
# set to yes if you want Conky to be forked in the background
background no
cpu_avg_samples 2
net_avg_samples 2
out_to_console no
# X font when Xft is disabled, you can pick one with program xfontsel
#font 7x12
#font 6x10
#font 7x13
#font 8x13
#font 7x12
#font *mintsmild.se*
#font -*-*-*-*-*-*-34-*-*-*-*-*-*-*
#font -artwiz-snap-normal-r-normal-*-*-100-*-*-p-*-iso8859-1
# Use Xft?
use_xft yes
# Xft font when Xft is enabled
xftfont Bitstream Vera Sans Mono:size=8
own_window_transparent yes
own_window_colour hotpink
# Text alpha when using Xft
xftalpha 0.8
on_bottom yes
# mail spool
mail_spool $MAIL
# Update interval in seconds
update_interval 1
# Create own window instead of using desktop (required in nautilus)
own_window no
# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes
# Minimum size of text area
#minimum_size 280 5
#maximum_width 150
# Draw shades?
draw_shades no
# Draw outlines?
draw_outline no
# Draw borders around text
draw_borders no
# Stippled borders?
stippled_borders 10
# border margins
border_margin 4
# border width
border_width 1
# Default colors and also border colors
default_color white
default_shade_color white
default_outline_color white
# Text alignment, other possible values are commented
#alignment top_left
#minimum_size 10 10
gap_x 13
gap_y 34
alignment top_right
#alignment bottom_left
#alignment bottom_right
# Gap between borders of screen and text
# Add spaces to keep things from moving about? This only affects certain objects.
use_spacer no
# Subtract file system buffers from used memory?
no_buffers yes
# set to yes if you want all text to be in uppercase
uppercase no
# boinc (seti) dir
# seti_dir /opt/seti
# Possible variables to be used:
#
# Variable Arguments Description
# acpiacadapter ACPI ac adapter state.
# acpifan ACPI fan state
# acpitemp ACPI temperature.
# adt746xcpu CPU temperature from therm_adt746x
# adt746xfan Fan speed from therm_adt746x
# battery (num) Remaining capasity in ACPI or APM
# battery. ACPI battery number can be
# given as argument (default is BAT0).
# buffers Amount of memory buffered
# cached Amount of memory cached
# color (color) Change drawing color to color
# cpu CPU usage in percents
# cpubar (height) Bar that shows CPU usage, height is
# bar's height in pixels
# downspeed net Download speed in kilobytes
# downspeedf net Download speed in kilobytes with one
# decimal
# exec shell command Executes a shell command and displays
# the output in torsmo. warning: this
# takes a lot more resources than other
# variables. I'd recommend coding wanted
# behaviour in C and posting a patch :-).
# execi interval, shell Same as exec but with specific interval.
# command Interval can't be less than
# update_interval in configuration.
# fs_bar (height), (fs) Bar that shows how much space is used on
# a file system. height is the height in
# pixels. fs is any file on that file
# system.
# fs_free (fs) Free space on a file system available
# for users.
# fs_free_perc (fs) Free percentage of space on a file
# system available for users.
# fs_size (fs) File system size
# fs_used (fs) File system used space
# hr (height) Horizontal line, height is the height in
# pixels
# i2c (dev), type, n I2C sensor from sysfs (Linux 2.6). dev
# may be omitted if you have only one I2C
# device. type is either in (or vol)
# meaning voltage, fan meaning fan or temp
# meaning temperature. n is number of the
# sensor. See /sys/bus/i2c/devices/ on
# your local computer.
# kernel Kernel version
# loadavg (1), (2), (3) System load average, 1 is for past 1
# minute, 2 for past 5 minutes and 3 for
# past 15 minutes.
# machine Machine, i686 for example
# mails Mail count in mail spool. You can use
# program like fetchmail to get mails from
# some server using your favourite
# protocol. See also new_mails.
# mem Amount of memory in use
# membar (height) Bar that shows amount of memory in use
# memmax Total amount of memory
# memperc Percentage of memory in use
# new_mails Unread mail count in mail spool.
# nodename Hostname
# outlinecolor (color) Change outline color
# pre_exec shell command Executes a shell command one time before
# torsmo displays anything and puts output
# as text.
# processes Total processes (sleeping and running)
# running_processes Running processes (not sleeping),
# requires Linux 2.6
# shadecolor (color) Change shading color
# stippled_hr (space), Stippled (dashed) horizontal line
# (height)
# swapbar (height) Bar that shows amount of swap in use
# swap Amount of swap in use
# swapmax Total amount of swap
# swapperc Percentage of swap in use
# sysname System name, Linux for example
# time (format) Local time, see man strftime to get more
# information about format
# totaldown net Total download, overflows at 4 GB on
# Linux with 32-bit arch and there doesn't
# seem to be a way to know how many times
# it has already done that before torsmo
# has started.
# totalup net Total upload, this one too, may overflow
# updates Number of updates (for debugging)
# upspeed net Upload speed in kilobytes
# upspeedf net Upload speed in kilobytes with one
# decimal
# uptime Uptime
# uptime_short Uptime in a shorter format
#
# seti_prog Seti@home current progress
# seti_progbar (height) Seti@home current progress bar
# seti_credit Seti@hoome total user credit
# variable is given either in format $variable or in ${variable}. Latter
# allows characters right after the variable and must be used in network
# stuff because of an argument
#${font Dungeon:style=Bold:pixelsize=10}I can change the font as well
#${font Verdana:size=10}as many times as I choose
#${font Perry:size=10}Including UTF-8,
#${font Luxi Mono:size=10}justo como este texto que o google traduz fêz o português
# stuff after 'TEXT' will be formatted on screen
#${font Grunge:size=12}${time %a %b %d}${alignr -25}${time %k:%M}
TEXT
$nodename - $sysname $kernel on $machine
$stippled_hr
${color lightgrey}Uptime:$color $uptime ${color lightgrey}- Load:$color $loadavg
${color lightgrey}CPU Usage:${color #5000a0} ${cpu}% ${cpubar}
${color black}${cpugraph 000000 5000a0}
${color lightgrey}RAM Usage:$color $mem/$memmax - $memperc% $membar
${color lightgrey}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar}
${color lightgrey}Processes:$color $processes ${color grey}Running:$color $running_processes
$color$stippled_hr
${color lightgrey}Networking:
Down:${color #8844ee} ${downspeed eth0} k/s${color lightgrey} ${offset 70}Up:${color #22ccff} ${upspeed eth0} k/s
${color black}${downspeedgraph eth0 32,150 ff0000 0000ff} $alignr${color black}${upspeedgraph eth0 32,150 0000ff ff0000}
${color lightgrey}File systems:
/ $color${fs_used /}/${fs_size /} ${fs_bar /}
${color lightgrey}Temperatures:
CPU:$color ${i2c temp 2}C${color grey} - MB:$color ${i2c temp 1}C
${font Dungeon:style=Bold:pixelsize=12}${color #88aadd}MPD: ${alignc}$mpd_artist - $mpd_title
${color #88aadd}$mpd_bar
${color #88aadd}${alignc}$mpd_status
${color}Name PID CPU% MEM%
${color #ddaa00} ${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}Mem usage
${color #ddaa00} ${top_mem name 1} ${top_mem pid 1} ${top_mem cpu 1} ${top_mem mem 1}
${color lightgrey} ${top_mem name 2} ${top_mem pid 2} ${top_mem cpu 2} ${top_mem mem 2}
${color lightgrey} ${top_mem name 3} ${top_mem pid 3} ${top_mem cpu 3} ${top_mem mem 3}
${color #FFFFFF} ${top_mem name 1} ${top_mem pid 1} ${top_mem cpu 1} ${top_mem mem 1}
${color #FFFFFF} ${top_mem name 2} ${top_mem pid 2} ${top_mem cpu 2} ${top_mem mem 2}
${color #FFFFFF} ${top_mem name 3} ${top_mem pid 3} ${top_mem cpu 3} ${top_mem mem 3}
${color #FFFFFF} ${top_mem name 4} ${top_mem pid 4} ${top_mem cpu 4} ${top_mem mem 4}
Autres exemples
Sur le site officiel : site officiel
Sur le forum : http://forum.ubuntu-fr.org/viewtopic.php?id=99471
Exécution
Pour exécuter conky, faites ALT + F2 et vous tapez conky.
Si vous voulez le charger au démarrage : Système → Préférence → Sessions → Programme 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é :
xterm -e sleep 5 && conky && exit
Problèmes rencontrés
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 gksudo gedit /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 : pour les personnes ou ç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"
PS_2: (Ou plus simple, cas perso.) Pour supprimer tout clignotement, il faut créer une ligne de "texte pur" légerement 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 tiré "-" en fontion) : ${color #666666}———————————————————–
Éviter une fenêtre dans la barre des taches
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 taches
- 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 icones 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) :
sudo apt-get install 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'apparait pas quand on fait alt-tab
- skip_tasklist : conky n'apparait pas dans la barre des taches
- 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 surement 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 apparait 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à
Conflit entre conky et les icônes du bureau
Il arrive lorsque l'on configure Conky en intégration bureau 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. Pour garder cette option, j'ai trouvé la solution, en m'inspirant de HowTo: Embedded Terminal On Your Gutsy Desktop
Tout d'abord, éditez le fichier ~/.conkyrc et ajoutez l'argument :
own_window yes
Conky apparait ainsi en mode fenêtré, et ne gène plus les icônes du bureau. Ah, vous ne voulez quand-même que Conky soit intégré en transparence au bureau, pas de souci. Si ce n'est pas déjà fait, installez le paquet compizconfig-settings-manager
.
Lancez le depuis Système\Préférences\Advanced Desktop Effects Settings ou en tapant ccsm dans un terminal. Commencez par vous rendre dans Utility et activez Regex Matching. Allez ensuite dans Effects, Décoration de la fenêtre (activée par défaut, ne la désactivez pas). Dans la partie Decoration windows, insérez
!title=x
où x est le titre de la fenêtre de conky, composé en général du nom de votre PC, suivi de conky :
!title=ma-machine - conky
Indiquez la même chose dans Shadow windows. Ceci aura pour effet de laisser activé le cadre de fenêtre et l'ombrage pour toutes les fenêtres exceptées celle de Conky. Si vous aviez déjà placé quelque chose dans ces zones, séparez-les par un &.
Ensuite, rendez-vous dans la partie Window Management, et ouvrez la partie Windows Rules (cochez-là si ce n'est pas fait). Entrez cette fois
title=x
où x est le titre de la fenêtre de Conky (sans le ! cette fois) dans les catégories Skip taskbar, Skip pager, Below, Sticky, Non resizable windows, Non minimizable windows, Non maximizable windows, Non closable windows..., selon vos préférences pour que ces paramètres s'activent pour Conky.
Voilà, c'est prêt, tapez
conky
dans un terminal pour exécuter le logiciel avec les nouveaux paramètres. On a une illusion d'intégration dans le fond d'écran, sans répercussion pour les icônes.
Scripts pour votre .conkyrc
AmaroK
Si vous desirez voir sur votre Conky, ce que vous ecoutez sur AmaroK, voici la portion à rajouter dans votre .conkyrc
${if_running amarok}
${color}AmaroK${color white}
${alignc}${execi 10 ~/.conky/amarok artist}
${alignc}${execi 10 ~/.conky/amarok title}
${execibar 1 ~/.conky/amarok progress}
${alignc}"${execi 10 ~/.conky/amarok album}"
${alignc}${execi 10 ~/.conky/amarok year} - ${color white}${alignc}${execi 10 ~/.conky/amarok genre}$endif
Ensuite vous créez un dossier caché dans le home nommé ".conky"
Créez un dossier caché dans le home:
mkdir ~/.conky
Aller dans ce dossier :
cd ~/.conky/
Puis créez un fichier nommé "amarok"
gedit ~/.conky/amarok
Et ajouter :
#!/bin/bash
# amaroK info display script by eirc <eirc.eirc@gmail.com>
case "$1" in
# Now Playing Info
artist) dcop amarok player artist ;;
title) dcop amarok player title ;;
album) dcop amarok player album ;;
year) dcop amarok player year ;;
genre) dcop amarok player genre ;;
progress)
curr=`dcop amarok player trackCurrentTime`
tot=`dcop amarok player trackTotalTime`
if (( $tot )); then
expr $curr \* 100 / $tot
fi
;;
esac
sudo chmod +x ~/.conky/amarok
Voila :)
Audacious (v1.2)
Audacious intègre un outil dédié très pratique : "audtool". Celui-ci fourni des informations console qui peuvent être utilisé ensuite pour des programmes tels que le plugin "music" de aMSN, ou bien ici Conky.
Pour cela, il faut rajouter des "exec audtool <commande>" dans votre script, par exemple :
${color #e49c16}Audacious:${color white} ${exec audtool --current-song-length} ${exec audtool --current-song-bitrate-kbps} kbps
${exec audtool --current-song | cut -b-50}
${color #ffc11f}${execbar expr 99 \* $(audtool --current-song-output-length-seconds) \/ $(audtool --current-song-length-seconds)}
Pour plus de commandes :
man audtool
Attention tout de même, si Audacious n'est pas lancé, vous aurez des messages d'erreur. Ceux-ci peuvent déformer Conky, alors pour éviter cela, il faut bidouiller l'argument "maximum_width" dans l'en-tête (350 semble être une valeur correcte pour du 1024*768 :)). Rien compris, ça veut dire quoi bidouiller l'argument maximum width? c'est de l'arabe ou du chinois peut être?
Moi j'ai une formule simple pour éviter le message d'erreur : ${if_running audacious} au début de la partie "audacious", puis on ajoute à la fin de cette partie : $endif on pourra "bidouiller" pour rajouter des choses comme une barre etc... mais ça je sais pas faire.
Ainsi on peut faire comme conseillé sur un site anglais :
${if_running audacious}
${color black}AUD:${color #C0C8CD} ${exec audtool --current-song | cut -b-34}
${color #C0C8CD} ${exec audtool --current-song-bitrate-kbps} kbps * ${exec audtool --current-song-length} ${execbar expr 100 \* $(audtool --current-song-output-length-seconds) \/ $(audtool --current-song-length-seconds)}
${color black}${hr 2}$endif
gmusicbrowser
Conky peut afficher les informations de lecture de gmusicbrowser grâce à un patch créé par l'auteur Quentin Sculo ; par contre, cela nécessite de compiler soi-même conky depuis les sources. Pas de panique cependant, un How-To est disponible ici.
La météo
Installez le paquet curl.
créer un dossier que vous appellerez " scripts " et dedans vous créez un dossier " weather " dans lequel vous créez un fichier texte . Vous mettez dedans :
#!/bin/sh
#
# Grab weather data from weather.com and format it according to the given XSLT
# Script written by boojit
# Modified by Hellf[i]re
# The orignal script and xslt can be downloaded from http://pondol.com/weather.tar.gz
# Usage:
# ${execi 1800 /path/to/weather/weather.sh location}
# Usage Example:
# ${execi 1800 /home/user/weather/weather.sh 03833}
# your Location ID: use http://xoap.weather.com/search/search?where=[yourcity] to find it
# U.S. users can just use their zip code; doubt that works for anyone else though (YMMV)
LOCID=$1
# s=standard units, m=metric units
UNITS=m
# where this script and the XSLT lives
RUNDIR=/home/[votre nom d'utilisateur]/scripts/weather
# there's probably other stuff besides CURL that will work for this, but i haven't
# tried any others.
# you can get curl at http://curl.haxx.se/
CURLCMD=/usr/bin/curl
# get it at http://xmlsoft.org/XSLT/
XSLTCMD=/usr/bin/xsltproc
# you probably don't need t[b][/b]o modify anything below this point....
# CURL url. Use cc=* for current forecast or dayf=10 to get a multi-day forecast
CURLURL="http://xoap.weather.com/weather/local/$LOCID?cc=*&unit=$UNITS&dayf=2"
# The XSLT to use when translating the response from weather.com
# You can modify this xslt to your liking
XSLT=$RUNDIR/.weather.xslt
#filter (if you want to convert stuff to lower-case or upper case or something)
#FILTER="|gawk '{print(tolower(\$0));}'"
#####
eval "$CURLCMD \"$CURLURL\" 2>/dev/null| $XSLTCMD $XSLT - $FILTER"
Ce dossier vous le nommez .weather.sh (n'oubliez pas le premier point : c'est un fichier caché, pour le voir : "affichage"/"afficher fichiers cachés")
puis vous créez un autre fichier texte dans lequel vous mettez cela :
<!--
This XSLT is used to translate an XML response from the weather.com
XML API.
You can format this file to your liking. Two things you may feel
like doing:
1) Modify the layout of the fields or static text already defined
2) Add other fields from the XML response file that aren't referenced in this
XSLT. You can grab a full list by just doing a:
wget "http://xoap.weather.com/weather/local/$LOCID?cc=*&unit=$UNITS"
(change $LOCID and $UNITS to suit your needs)
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
<xsl:output method="text" disable-output-escaping="yes"/>
<xsl:template match="weather">
<xsl:apply-templates select="cc"/>
<xsl:apply-templates select="dayf/day[@d='1']"/>
</xsl:template>
<xsl:template match="cc">
<xsl:text>Location: </xsl:text><xsl:value-of select="obst"/>
<xsl:text>:
</xsl:text>
<xsl:text>
Température : </xsl:text><xsl:value-of select="tmp"/><xsl:value-of select="/weather/head/ut"/>
<xsl:if test="tmp != flik">
<xsl:text>
Température ressentie : </xsl:text><xsl:value-of select="flik"/><xsl:value-of select="/weather/head/ut"/>
</xsl:if>
<xsl:text>
Conditions : </xsl:text><xsl:value-of select="t"/>
<xsl:text>
Vent : </xsl:text>
<xsl:choose>
<xsl:when test="wind/s = 'calm'"><xsl:text>0</xsl:text></xsl:when>
<xsl:otherwise><xsl:value-of select="wind/s"/></xsl:otherwise>
</xsl:choose>
<xsl:value-of select="/weather/head/us"/>
<xsl:choose>
<xsl:when test="wind/s = 'calm'"><xsl:text>(0mph)</xsl:text></xsl:when>
<xsl:otherwise><xsl:text> (</xsl:text><xsl:value-of select="round(wind/s * 0.6214)"/><xsl:text>mph)</xsl:text></xsl:otherwise>
</xsl:choose>
<xsl:text> (</xsl:text><xsl:value-of select="wind/t"/>
<xsl:text>)</xsl:text>
</xsl:template>
<xsl:template match="dayf/day[@d='1']">
<xsl:text>
Demain : </xsl:text><xsl:value-of select="low"/><xsl:value-of select="/weather/head/ut"/>
<xsl:text> to </xsl:text><xsl:value-of select="hi"/><xsl:value-of select="/weather/head/ut"/>
<xsl:text>, </xsl:text><xsl:value-of select="part[@p='d']/t"/>
<xsl:text>
Levé du soleil : </xsl:text><xsl:value-of select="flik"/><xsl:value-of select="/weather/loc/sunr"/>
<xsl:text>
Couché du soleil : </xsl:text><xsl:value-of select="flik"/><xsl:value-of select="/weather/loc/suns"/>
</xsl:template>
</xsl:stylesheet>
vous nommerez ce fichier .weather.xslt (n'oubliez pas le premier point)
Authorisez les droit d'utilisateurs pour les deux fichiers weather créés (clic droit/authoriser l'execution, ou terminal comme vous voulez).
Ensuite vous allez sur le site www.weather.com . Tapez le nom de votre ville dans le champ "Local weather". Après avoir validé,
Cliquez alors sur le lien de votre ville puis regardez l'adresse du lien qui vient de s'ouvrir. (pour Tours par exemple il y a ceci : http://www.weather.com/outlook/travel/businesstraveler/local/FRXX0100?from=search_city Le FRXX00100 est le code qu'il y a pour la ville que je veux...
donc il me suffit de taper ce code dans le .conkyrc (sudo gedit .conkyrc) à l'aide de cette ligne , à l'endroit où vous voulez que la météo apparaisse :
$color ${execi 1800 /home/[votre pseudo]/scripts/weather/.weather.sh FRXX0100}
(évidemment vous tapez le code de la ville qui vous interesse à la place de FRXX0100).
Voila normalement ça devrait marcher...
Liens
Tutoriel : http://www.pcinpact.com/forum/index.php?showtopic=97542
Doc officielle (très bien faite, mais en anglais... ) :
http://conky.sourceforge.net/variables.html
http://conky.sourceforge.net/config_settings.html
Pour voir quelques jolis bureaux postés par les utilisateurs et intégrant Conky, découvrir de nouveaux scripts et poser vos questions, vous pouvez également vous rendre sur le forum ubuntu-fr consacré :
http://forum.ubuntu-fr.org/viewtopic.php?id=99471
