If statements (fr)

From Conky PitStop

Jump to: navigation, search

L'instruction if

 Langue   English   Français   



La section Disks de mon conky comporte des variables du style $if_existing. La raison en est simple : j’utilise souvent des disques externes ou des clés usb. Comme je les monte et démonte assez souvent, aucun d’entre eux n’a été ajouté à mon /etc/fstab (qui définit les propriétés de montages des différents volumes), et rares sont les occasions de les monter au démarrage de mon ordinateur. J’ai également une partition Vista (ne me critiquez pas, elle était pré-installée sur mon portable...) à laquelle j’accède de temps en temps. J’aime connaître ce qui se passe sur mes disques comme la place restante, les cycles de lecture-écriture, des choses comme ça, mais seulement lorsque mes disques sont montés. Le reste du temps, j’aime que mon Conky soit le plus propre et sobre possible.

Commençons par ma section disks au plus simple (avec uniquement la racine et mon home montés)

If-1.png

C’est plutôt simple et sans fioritures, mais que se passe-t-il lorsque je monte ma partition Vista ?

If-2.png

Et maintenant, ajoutons une clé usb à l’ensemble…

If-3.png

On pourrait continuer longtemps, et j’ai assez de place réservée dans mon conkyrc, pas seulement pour ma partition Vista, mais pour 5 autres volumes qui se monteraient dans /media!

Voici comment parvenir simplement à ce résultat. Généralement, la racine et le dossier personnel home sont montés en permanence et sont les parties les plus importantes de votre système; voici en exemple comment les afficher, sans la barre de volume ni les graphiques de lecture/écriture.

${color2}Root:$color ${fs_used /}/${fs_size /} - ${alignr}${fs_free_perc /}% Free

Cette ligne montre la partie texte pour root (racine) de la capture du dessus. Vous pouvez noter l’utilisation des variables $fs_used et $fs_size qui nous indique l’espace disque utilisé par rapport à l’espace disque total. Puis, aligné sur la droite de l’image grâce à l’option $alignr, nous voyons l’espace libre exprimé en pourcentage grâce à l’option $fs_free_perc.

Maintenant, passons à la partie intéressante : imaginons que vous vouliez afficher ces même informations pour les volumes montés dans /media, seulement lorsqu’ils sont présents. Vous devez utiliser la variable $if_existing en fin de ligne de cette façon:

${color2}Root:$color ${fs_used /}/${fs_size /} - ${alignr}${fs_free_perc /}% Free${if_existing /media/disk}

Cette variable doit être placée en fin de ligne pour une raison simple – Tout ce qui est placé après TEXT dans votre .conkyrc sera affiché. Cela signifie que si vous placez cette variable en début de ligne (après un retour à la ligne), cette ligne sera affichée et, si aucun volume n’est monté, il en résultera l’affichage d’une ligne vide. Il faut donc inclure le retour à la ligne après la variable $if_existing. De cette façon, le retour à la ligne ne s’effectuera que lorsqu’un volume sera monté.

Pour garder le même format d’affichage, la ligne suivante doit ressembler à ceci:

${color2}Disk:$color ${fs_used /media/disk}/${fs_size /media/disk| - ${alignr}${fs_free_perc /media/disk}% Free${endif}

Notez la variable $endif en fin de ligne – c’est de cette façon que l’on cloture la commande $if_existing , ainsi les informations comprises entre ces deux variables ne s’affichent que lorsque les conditions de la variables sont remplies (dans notre cas, la présence d’un volume monté dans /media/disk).

Imaginons maintenant que vous vouliez faire apparaitre une seconde ligne pour un volume monté/démonté dans /mnt/Votre_Volume, les deux premières lignes seront les mêmes avec un petit rajout:

${color2}Root:$color ${fs_used /}/${fs_size /} - ${alignr}${fs_free_perc /}% Free${if_existing /media/disk}
${color2}Disk:$color ${fs_used /media/disk}/${fs_size /media/disk| - ${alignr}${fs_free_perc /media/disk}% Free${endif}${if_existing /mnt/Votre_Volume}

Cette opération peut se reproduire à l’infini, dans mon cas, pour ma partition Vista ou tout autre volume monté dans /mnt.

La variable $if_existing n’est pas spécifique aux volumes, par exemple, j’utilise cette variable dans la section Wireless Network de mon conky (connection wifi) qui affiche toute sortes d’informations telles que la puissance du signal sans fil, mes adresses IP internes et externes, le cumul en volume des données téléchargées et envoyées, les graphiques d’échanges de données etc… cela ressemble à ceci :

If-4.png

Mais que se passe-t-il lorsque j’utilise une liaison ethernet filaire à la place du wifi? C’est là qu’intervient la troisième variable rattachée à $if_existing$else (ou en français)

J’ai fait précédé la totalité de ma section ’wireless network’ de la variable ${if_existing ath0}. Aussi longtemps que ma connection wifi est active, mon conky affiche ma section Wireless Network comme vous avez pu le voir ci-dessus. A la fin de ma dernière ligne, j’ai ajouté la variable $else, puis, j’ai configué une section intitulée “Ethernet”, identique à ma section wifi.

If-5.png

La plupart des informations affichées sont les même, à part la puissance du signal wifi et le SSID. A la fin de cette section, j’ai utilisé la variable $endif qui cloture la série de commande initiés par $if . Et c’est ainsi que se termine mon conky.


Vous pouvez télécharger l’intégralité de mon .conkyrc afin de l’adapter à vos besoins sur la page Gallerie 2009 (1) ou ici.

09-1-Uncertain-1.png
Personal tools
Namespaces
Variants
Actions
Navigation
English
Français
Toolbox