====== Conky ====== **Conky** est une application qui délivre en temps réel des informations sur votre système.\\ Ces informations s'affichent sur votre bureau, dans une fenêtre classique, dans une barre de status comme dzen ou dans une barre de statut propre à un gestionnaire de fenêtres, comme dwm ou wmfs.\\ Conky est livré avec de nombreuses options internes mais peut aussi faire appel à des scripts (bash,python,lua...),\\ ce qui lui permet d'afficher à peu près tout ce que vous voulez et comme vous le voulez.\\ \\ La configuration de Conky passe par l'édition du fichier **.conkyrc** situé généralement dans votre dossier utilisateur.\\ Ce fichier se divise en deux parties: * les **"[[personaliser:conky:fonctions|fonctions]]"** déterminent l'emplacement, la dimension, le type de fenêtre, la couleur du texte... * les **"[[personaliser:conky:variables|variables]]"** déterminent la nature des informations à afficher. La séparation se fait par la ligne "TEXT" dans le conkyrc; tout ce qui vient après TEXT sera affiché dans votre conky.\\ Si vous désirez vous appuyer sur des exemples pour construire votre conky, vous pouvez visiter ma [[http://arpinux.org/x/doku.php/user_tools:conky:arpconky| gallerie'conky]]. ===== Configuration ===== Le net est rempli de tutoriels plus ou moins complets à propos de conky. Une des meilleures sources d'information (en dehors du [[http://conky.sourceforge.net/|site officiel]]) reste [[http://conky.pitstop.free.fr/|Conky Pitstop]], où vous pourrez trouver de nombreuses astuces en français (merci wlourf). Vous trouverez une liste détaillée complète des [[personaliser:conky:fonctions|fonctions]] et [[personaliser:conky:variables|variables]] employées par conky dans ce wiki, mais quelques exemples seront plus explicatifs: en passant par ces configurations, vous aurez un apperçu assez complet des possibilités de conky. ==== Conky classique ==== Prenons pour exemple le conky de départ de [[http://crunchbanglinux-fr.org|crunchbanglinux]], une des quelques distributions proposant un conky par défaut. (le fichier est placé dans votre /home/$USER/.conkyrc).\\ {{http://arpinux.org/x/lib/exe/fetch.php/user_tools:conky:cbl_conky.png?200|conky crunchbanglinux}}\\ Nous allons détailler le conkyrc qui permet cet affichage.\\ ############################################## # Settings ############################################## background yes ## permet à conky de tourner en arrière-plan use_xft yes ## utilise la police xft xftfont sans:size=9 ## nom de la police xft à utiliser xftalpha 1 ## opacité de la police xft, ici 1=opaque update_interval 1.0 ## conky se recharge toutes les secondes total_run_times 0 ## conky se relance à l'infini own_window yes ## conky utilise sa propre fenêtre own_window_transparent yes ## conky dessine une fenêtre transparente own_window_type desktop ## type de fenêtre de conky: bureau own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager ## propriétés de la fenêtre double_buffer yes ## empêche le clignotement minimum_size 200 200 ## taille minimale largeur200,hauteur200 maximum_width 240 ## largeur maximale 240 px draw_shades no ## n'affiche pas les ombres sous le texte draw_outline no ## n'affiche pas le contour de la police draw_borders no ## n'affiche pas les bordures draw_graph_borders no ## n'affiche pas le contour des graphiques default_color d8d8d8 ## couleur des textes et bordures default_shade_color 000000 ## couleur des ombres default_outline_color d9d7d6 ## couleur du contour de la police alignment top_right ## alignement de conky, ici en haut à droite gap_x 12 ## décallage horizontal, ici 12px gap_y 24 ## décallage vertical, ici 24px no_buffers yes ## 'buffers' non pris en compte dans le calcul de mémoire. uppercase no ## police en mode normal (Maj/min) cpu_avg_samples 2 ## nombre de processeurs pris en compte: ici 2 override_utf8_locale yes ## pour avoir les caractères accentués ############################################## # Output ############################################## TEXT ## ici commencent les informations à afficher I N F O R M A T I O N S S Y S T E M E ## texte brut sans variables (pas de $) ${hr} ## ligne horizontale Hôte :$alignr$nodename ##--| Uptime :$alignr$uptime ## | RAM :$alignr$mem/$memmax ## |--variables notez que les {} ne sont pas Swap :$alignr$swap/$swapmax ## | nécessaires pour les variables sans arguments Partition / :$alignr${fs_used /}/${fs_size /} ## | CPU :$alignr${cpu cpu0}% ##--| ## lignes vides: notez que conky prend en compte ## les sauts de lignes. R A C C O U R C I S C L A V I E R ## texte brut sans variables (pas de $) ${hr} ## ligne horizontale Alt+F2$alignr Exécuter ## ici commencent la description des raccourcis clavier #! Alt+F3$alignr Exécuter (alternatif) Super+Space$alignr Menu Principal Super+Tab$alignr Menu du client Super+t$alignr Terminal Super+f$alignr Gestionnaire de fichiers ## notez la variable "$alignr" (alignement à droite) Super+e$alignr Editeur de texte ## qui permet une meilleure présentation Super+m$alignr Lecteur multimédia Super+w$alignr Navigateur web Super+l$alignr Vérouiller l'écran Super+v$alignr Contrôle du volume Super+x$alignr Déconnexion PrtSc$alignr Capture d'écran Hormis la description des raccourcis claviers, ce conky ressemble beaucoup à la configuration de conky par défaut (situé dans /etc/conky/conky.conf). Cette configuration de base est suffisamment explicite pour qui veut un conky simple. ==== Conky en ligne ==== Le conky en ligne, nommé ainsi car il tient sur une seule ligne (ou deux), est une façon élégante d'afficher ses informations système. C'est aussi très pratique, car combiné à la configuration des "marges" d'openbox, vos informations resteront toujours visibles. La configuration de ce genre de conky est un peu plus complexe car elle fait entrer en jeu les variables d'alignements et de décallage ainsi que quelques scripts.\\ {{http://arpinux.org/x/lib/exe/fetch.php/user_tools:conky:conky_one-line.png?600|conky en ligne}}\\ Examinons le conkyrc correspondant:\\ background yes use_xft yes ## une police à chasse fixe est recommandée pour xftfont Terminus:pixelsize=10 ## ce genre de conky. xftalpha 0.8 update_interval 1.0 total_run_times 0 own_window yes own_window_transparent no ## la fenêtre est opaque pour être toujours visible own_window_colour 161616 own_window_type override ## type "override": conky 100% indépendant own_window_title Infos System own_window_hints undecorated,below,sticky double_buffer yes minimum_size 1024 0 ## largeur mini=maxi=taille de l'écran, conky maximum_width 1024 ## ressemble à une barre de tâche draw_shades no draw_outline no draw_borders no border_inner_margin 0 draw_graph_borders no default_color grey60 ## couleur par défaut color1 FF3A3A # rouge ##--| color2 FFC13A # orange ## | color3 68FF3A # vert ## |--couleurs additionnelles color4 3AFFFD # bleu ciel ## | color5 443AFF # bleu marine ##--| alignment tr gap_x 0 gap_y 0 no_buffers yes uppercase no text_buffer_size 1024 top_name_width 10 ## limite la taille des noms des processus dans '$top' cpu_avg_samples 2 short_units yes override_utf8_locale yes use_spacer none if_up_strictness address ## attend d'obtenir une IP avant de déclarer le réseau ouvert ############################################## # Output ############################################## TEXT Pkg ${texeci 28800 ~/bin/debupdates.sh} update(s)${goto 150}BAT ${battery_bar 8,40 BAT0} $battery${goto 376}hdd:${ibm_temps 2}°C cpu:${ibm_temps 0}°C gpu:${ibm_temps 3}°C${goto 576}vol ${if_match "$ibm_volume" == "mute"}mute${else}${ibm_volume}/14${endif} - pcm ${mixer PCM}%${goto 760}R/W ${diskiograph 10,40} $diskio/s${goto 920}HDD ${fs_bar 8,40 /} ${fs_used_perc /}% ${if_up eth0} ${color4}DL ${downspeedgraph 8,40 eth0} ${downspeed eth0}/s${color3}${goto 156}UP ${upspeedgraph 8,40 eth0} ${upspeed eth0}/s${color}${goto 296}${color grey80}gMail ${texeci 120 python ~/bin/gmail.py}${else} no connection${endif}${goto 376}${color1}CPU ${cpugraph 8,40} $cpu% > ${top name 1}${goto 576}${color2}RAM ${membar 8,40} $memperc% > ${top_mem name 1}${color}${goto 760}${color #CCCCCC}LOAD $loadavg${color}${alignr 10}${time %a %d %b %I:%M} Voici donc à quoi ressemble un conkyrc en ligne. Passons en revue les éléments remarquables de cette configuration:\\ Notez l'emploi quasi systématique de la variable '$goto' qui permet de placer un élément à un endroit précis. Cette variable est très utile car elle permet d'éviter aux autres de 'bouger': en effet, une variable placée par exemple derrière '$cpu' sans '$goto' sera continuellement en mouvement en fonction de la valeur de '$cpu' (1%,10%,100%).\\ * La première expression remarquable est aussi la première sur la ligne: elle nous renvoie le nombre de paquets pouvant être mis à jour: '$texeci' execute le script "debupdates.sh" toutes les 28800 secondes(8 heures). Le script: #!/bin/bash # conky script for displaying available updates # in Debian. This script assumes you are in the # sudo group and require no password for root # access. Add something as such to your conkyrc: #${color}APT: ${color D7D3C5}${execi 28800 ~/bin/debupdates.sh} sudo apt-get -qy update > /dev/null NUMOFUPDATES=$(sudo aptitude search "~U" | wc -l) echo $NUMOFUPDATES Vous comprenez maintenant que '$texeci' éxécute ce sript, puis en lit le résultat afin de l'afficher à l'endroit voulu. * la seconde exression remarquable est le 'if_match' du volume ibm:\\ vol ${if_match "$ibm_volume" == "mute"}mute${else}${ibm_volume}/14${endif} pourquoi demander à conky de m'afficher 'mute' si 'mute' ?? et bien, pour pouvoir obtenir ces deux affichages: soit "vol mute" soit "vol 5/14" remarquez que "/14" n'apparait pas dans le premier exemple. * la seconde ligne commence par '${if_up eth0}, en effet, il semble inutile de demander à conky de délivrer des informations réseau si vous n'êtes pas connecté (j'aurais du y penser pour les mises à jour Debian ;) ): ${if_up eth0} ${color4}DL ${downspeedgraph 8,40 eth0} ${downspeed eth0}/s${color3}${goto 156}UP ${upspeedgraph 8,40 eth0} ${upspeed eth0}/s${color}${goto 296}${color grey80}gMail ${texeci 120 python ~/bin/gmail.py}${else} pas de connexion${endif} Dans cet exemple vous comprenez que si(if) eth0 est actif, conky affichera les graphiques (up/downspeedgraph), la quantité de données transférées (up/downspeed) ainsi que le nombre de nouveaux mails, sinon(else) "pas de connexion", fin des conditions(endif).\\ Nous retrouvons notre variable '$texeci' mais associé à "python" pour obtenir le nombre de nouveaux gmails. Le script: #! usr/bin/env python3 # simple mail script by tinara import imaplib import re # If you don't want to use the SSL version for IMAP # Mailbox = imaplib.IMAP4('host','port') # gmail ex: host = imap.gmail.com, port = 993 Mailbox = imaplib.IMAP4_SSL('host', 'port') rc,resp = Mailbox.login('username','password') if rc == 'OK': rc, message = Mailbox.status('INBOX', "(UNSEEN)") unreadCount = re.search("UNSEEN (\d+)",str( message[0])).group(1) print(unreadCount) else : print('Fail to connect') Mailbox.logout() Comme dans l'exemple du script debian, '$texeci' va éxécuter puis lire le résultat du script gmail.py. * La dernière expression remarquable est située dans la dernière section: ${alignr 10}${time %a %d %b %I:%M} Notez ici l'emploi de '${alignr 10}' qui aligne l'heure sur la droite du conky avec une marge de 10 pixels. Notez aussi que la variable '$time' respecte le formatage des arguments: les espaces sont restitués dans l'affichage de l'heure.\\ \\ Vous savez maintenant comment positionner votre conky, lui donner les propriétés appropriées, afficher vos informations à l'emplacement désiré et faire appel à des scripts pour receuillir des informations supplémentaires. ==== Conky fenêtré ==== Dans certains cas, conky peut être affiché de façon provisoire; pour donner des infos météo, des flux rss, ou pour pouvoir le déplacer et surtout, le fermer quand on veut. Dans cet exemple, nous utiliserons les flux rss:\\ {{http://arpinux.org/x/lib/exe/fetch.php/user_tools:conky:conky-rss.png?200|conkyrss}}\\ Comme vous pouvez le constater, cette fenêtre est normale :) .\\ Analysons le conkyrc afin de voir comment inclure des flux rss, afficher conky dans une fenêtre classique, afficher une image. ############################################## # Settings ############################################## background yes use_xft yes xftfont sans:size=9 xftalpha 1 update_interval 1.0 total_run_times 0 own_window yes own_window_transparent no ## fenêtre opaque own_window_type normal ## fenêtre de type normal afin de pouvoir être déplacée/fermée. own_window_title flux_rss ## indique un titre précis pour conky own_window_hints sticky ## conky apparaitra sur tous les bureaux virtuels double_buffer yes minimum_size 400 280 ## on fixe la taille de la fenêtre: maximum_width 400 ## à tester selon les flux choisis. draw_shades no draw_outline no draw_borders no draw_graph_borders no default_color d8d8d8 color1 white default_shade_color 000000 default_outline_color d9d7d6 alignment top_middle ## on centre la fenêtre sur l'écran à l'ouverture gap_x 0 gap_y 150 border_inner_margin 0 ## pas de marge entre le texte et la bordure border_outer_margin 0 ## pas de marge entre la bordure et le bord de la fenêtre. no_buffers yes uppercase no cpu_avg_samples 2 override_utf8_locale yes ############################################## # Output ############################################## TEXT ${image ~/.conky/conkyrssbg.png -p 0,0}${if_up eth0}${color1}${font Monospace:size=12:bold}CrunchBangLinux-fr${font}${color} ${rss http://crunchbanglinux-fr.org/forum/extern.php?action=feed&type=rss 10 item_titles 5} ${color1}${font Monospace:size=12:bold}Corenominal${font}${color} ${rss http://corenominal.org/feed/ 60 item_titles 5} ${color1}${font Monospace:size=12:bold}Darthwound${font}${color} ${rss http://darthwound.tumblr.com/rss 60 item_titles 5}${else} pas de connexion réseau.${endif} * La première variable affiche l'image de fond du conky (avec l'emblême rss). Notez que cette variable n'est pas seule sur une ligne: si c'était le cas, conky rajouterais une ligne vide à l'affichage. Pour rajouter une image de fond, vous pouvez soit prendre n'importe quelle image et la redimensionner avec conky (option -s LxH), soit préparer une image aux dimensions de votre conky, ce que j'ai fait avec cette image:\\ {{http://arpinux.org/x/lib/exe/fetch.php/user_tools:conky:conkyrssbg.png?80|conkyrss background}}\\ Il vous reste juste à déterminer la position par rapport au coin supérieur gauche (-p 0,0) et le tour est joué. * Vous notez le retour de notre '$if_up eth0' qui empêche conky d'aller chercher des informations si le réseau n'est pas disponible. Vous pouvez également constater que les variables et options se combinent : $color1 + $font pour afficher le titre dans une couleur et une police différente, le retour aux valeurs par défaut se faisant par un '${font}${color}' en fin de ligne. * Passons aux flux rss: il existe une variable pour afficher les titres des flux rss (ex : "${rss http://darthwound.tumblr.com/rss 10 feed_title}") mais j'ai préféré éditer les noms moi-même. J'utilise ici l'option "item_titles 'n'" qui permet d'afficher les 'n' premiers titres du flux, mais vous pouvez toujours appeler les titres de flux un par un avec l'option "item_title 'n'" où 'n' représente le numéro du titre (NB: les titres commencent à 0). * Le petit plus: vous avez certainement noté la différence de fréquence d'appel des flux rss selon les sites: le premier flux concerne les derniers posts actif du forum crunchbanglinux-fr, réglé pour être rafraichit toutes les 10 minutes: "${rss http://crunchbanglinux-fr.org/forum/extern.php?action=feed&type=rss **10** item_titles 5}", tandis que les autres flux pointant eux sur des blogs, se renouvellent toutes les heures: "${rss http://darthwound.tumblr.com/rss **60** item_titles 5}". * Le gros plus: ce style de conky se lance gràce à l'argument "-c" qui indique à conky qu'il ne doit pas utiliser son conkyrc par défaut (/home/$USER/.conkyrc) mais un autre fichier de configuration; il se lance comme ceci:\\ conky -c ~/.conky/conkyrc-rss il est donc très facile de rajouter cette ligne de commande à votre menu openbox ou créer un raccourcis clavier correspondant.\\ La section dans votre menu pour conkyrss (~/.config/openbox/menu.xml): conky -c ~/.conky/conkyrc-rss La section pour un raccourcis clavier (~/.config/openbox/rc.xml): true Conky RSS conky -c ~/.conky/conkyrc-rss *pour plus d'informations sur la manière d'éditer votre menu (menu.xml)ou votre fichier de configuration openbox (rc.xml), veuillez vous rendre sur les pages dédiées: [[http://crunchbanglinux-fr.org/wiki/crunchbang:openbox:menu|menu.xml]] - [[http://crunchbanglinux-fr.org/wiki/crunchbang:openbox:raccourcis|rc.xml]]. ==== Conky dans une barre de statut ==== C'est le conky qui s'affiche dans une barre de statut. Dans ce cas, conky ne s'affiche pas réellement: il s'éxécute et est "lu" par la statusbar. L'exemple classique est l'envoi de conky dans la barre de status de [[dwm]].\\ Pour cela , vous aurez besoin d'un conkyrc particulier car il indiquera à conky de ne rien afficher !! ... En fait, les informations seront envoyé vers STDOUT et récupérés par dwm. Voici comment procéder:\\ le conkyrc: ############################################## # Settings ############################################## background no out_to_console yes out_to_x no update_interval 1.0 total_run_times 0 uppercase no short_units yes use_spacer none if_up_strictness address ############################################## # Output ############################################## TEXT [info-system]-[cpu:${cpu}%]-[ram:${memperc}%]-[i/o:${diskio}/s]-[hdd:${fs_used_perc /}%]-[up:${upspeedf eth0}/s]-[down:${downspeedf eth0}/s}]--[${time %d/%m - %I:%M}] Vous constatez que les fonctions sont réduites lorsque conky ne s'affiche pas dans X. Bien sûr, les informatons étant supposées s'afficher dans une barre de statut, conky doit tenir sur une ligne.\\ Il se lance depuis le ~/.xinitrc, juste avant le lancement de la session dwm: ## set statusbar ## conky | while true; read line; do xsetroot -name "$line"; done & ## launch WM ## exec ck-launch-session /usr/local/bin/dwm ==== Conky dans dzen2 ==== {{ http://arpinux.org/x/lib/exe/fetch.php/user_tools:conky:conky-dzen2.png?600 |}} \\ [[personaliser:dzen2|dzen2]] est une barre d'information hautement configurable qui va lire les informations délivrées par conky comme pour la barre de statut de dwm. l'avantage de dzen2 est qu'il accepte les formats de couleurs, polices, peut afficher des images (xbm,xpm), graphiques ou des barres de progressions, et qu'il peut s'afficher partout sur votre écran. pour plus d'informations sur l'installation, la configuration et les ooptions de dzen2, je vous laisse visiter sa [[personaliser:dzen2|page dédiée]] sur ce wiki. pour un affichage simple de conky, une installation standard suffit, pour les débianistes: # apt-get install dzen2 le fichier de configuration du conky présenté dans le screenshot ressemble à celui utilisé pour dwm mais ajoute les options pour dzen: out_to_x no out_to_console yes update_interval 1.0 total_run_times 0 use_spacer none TEXT ^i(/home/arp/.arp_setups/dzicons/cal.xbm) ^fg(\#ccc)${time %d/%m}^fg() ^i(/home/arp/.arp_setups/dzicons/clock.xbm) ${time %I:%M}\ ^fg(\#ff4500)^i(/home/arp/.arp_setups/dzicons/cpu.xbm) ^fg(\#ccc)${cpu}%\ ^fg(\#ee2c2c)^i(/home/arp/.arp_setups/dzicons/temp.xbm) ^fg(\#ccc)${ibm_temps 0}°C\ ^fg(\#87ceeb)^i(/home/arp/.arp_setups/dzicons/monitor.xbm) ^fg(\#ccc)${loadavg}\ ^fg(\#00bfff)^i(/home/arp/.arp_setups/dzicons/mem.xbm) ^fg(\#ccc)$memperc% > $mem\ ^fg(\#ffd700)^i(/home/arp/.arp_setups/dzicons/home.xbm) ^fg(\#ccc)${fs_used_perc /}%\ ${if_mounted /media/arp500} ^fg(\#000)^i(/home/arp/.arp_setups/dzicons/usb.xbm) ^fg(\#ccc)${fs_used_perc /media/arp500/}%${endif}${if_mounted /media/lacie300} ^fg(\#1e90ff)^i(/home/arp/.arp_setups/dzicons/usb.xbm) ^fg(\#ccc)${fs_used_perc /media/lacie300/}%${endif}\ ^fg()${if_match ${battery_percent BAT0} >=26}^fg(\#7cfc00)^i(/home/arp/.arp_setups/dzicons/bat_full_01.xbm)${endif}\ ${if_match ${battery_percent BAT0} <=25} ^fg(\#CC0000)^i(/home/arp/.arp_setups/dzicons/bat_low_01.xbm)^fg()${endif} ^fg(\#ccc)${battery_percent}%\ ^fg()${if_up eth0} ^i(/home/arp/.arp_setups/dzicons/net_wired.xbm)\ ^fg(\#00cd00)^i(/home/arp/.arp_setups/dzicons/net_up_02.xbm) ^fg(\#ccc)${upspeedf eth0}\ ^fg(\#ffa500)^i(/home/arp/.arp_setups/dzicons/net_down_02.xbm) ^fg(\#ccc)${downspeedf eth0}\ ^fg() ${endif}\ ${if_match "$ibm_volume" == "mute" }^fg(\#000000) ^i(/home/arp/.arp_setups/dzicons/spkr_04.xbm)^fg(\#ccc) mute ${else}^fg(\#FFDF1D) ^i(/home/arp/.arp_setups/dzicons/spkr_01.xbm)^fg(\#ccc) ${ibm_volume}/14${endif} **note** l'emploi du "\" en fin de ligne permet l'annulation du saut de ligne dans conky mais aide à une meilleure lisiblilité du fichier.\\ \\ comme vous pouvez le constater, les options passées à conky sont "encadrées" par les options passées à dzen2: * ^fg(): pour la couleur du texte/de l'image * ^i() : pour l'adresse de l'image à afficher les images doivent être au format *xbm (facilement éditables avec the Gimp). une archive contenant 67 icones est [[http://arpinux.org/public/wiki/dzicons.tar.gz|disponible ici]].\\ ce fichier conky est appelé par dzen2 grâce à un script (que vous prendrez soin de rejouter à votre fichier ~autostart selon votre configuration): #!/bin/sh RC="$HOME/.conkyrc_dzen" FG="white" BG="#404240" ALIGN="left" WIDTH="744" HEIGHT="12" FONT="-*-terminus-medium-*-*-*-12-*-*-*-*-*-*-*" XPOS="30" YPOS="756" conky -d -c $RC | dzen2 -fg $FG -bg $BG -ta $ALIGN -w $WIDTH -h $HEIGHT -x $XPOS -y $YPOS -fn $FONT -dock & exit 0 //sources du script: [[http://xenull.deviantart.com/art/Minull-Conky-266829077|minull conky]] par [[http://xenull.deviantart.com/|xeNULL]]//. ==== Conky en pipe-menu ==== Il est possible d'afficher des informations venant de conky dans le menu openbox en utilisant les [[http://crunchbanglinux-fr.org/wiki/crunchbang:openbox:menu#pipe_menus|pipe-menus]]. //Cette fonction n'est pas accessible pour les variables '$cpu','$down/upspeed*'//\\ Nous allons utiliser pour cela l'exemple précédent: reprenons le conkyrc-dwm, effacons les variables et renommons-le ~/.conkyrc-ob (modifiez selons vos préférences mais pensez à faire correspondre le nom dans la suite de l'exemple): ############################################## # Settings ############################################## background no out_to_console yes update_interval 1.0 total_run_times 0 uppercase no short_units yes use_spacer none if_up_strictness address ############################################## # Output ############################################## TEXT Il faut __impérativement__ laisser une ligne vide après "TEXT".\\ Ce fichier est vide ... à quoi sert-il ?? Il sert de fichier de configuration pour les commandes passées dans ce script: #!/bin/sh LOAD=$(conky -c ~/.conkyrc-ob -q -i 1 -t '${loadavg}') TEMP=$(conky -c ~/.conkyrc-ob -q -i 1 -t '${acpitemp}°C') echo "" echo "" echo "" echo "" Sauvegardez-le comme ~/bin/sys_info.sh (modifiez selons vos préférences mais pensez à faire correspondre le nom dans la suite de l'exemple). Et rendez-le éxécutable: chmod +x ~/bin/sys_info.sh Il ne vous reste plus qu'à appeler ces informations à travers un pipe-menu. Insérez cette ligne à l'endroit où vous désirez voir le menu apparaitre: Si vous désirez changer les informations affichées, editez simplement votre "~/bin/sys_info.sh". ==== Conky diaporama ==== //sources et image:// [[http://crunchbanglinux-fr.org/forum/profile.php?id=48|zubi33]] sur le [[http://crunchbanglinux-fr.org/forum/viewtopic.php?id=1750|forum crunchbang-fr]].\\ \\ il est possible de faire afficher des images par conky grâce à la [[personaliser:conky:variables|variable]] '${image}'. couplé à un script qui choisit des images de façon aléatoire, vous obtenez un diaporama de vos photos ou images favorites:\\ {{ http://arpinux.org/x/lib/exe/fetch.php/user_tools:conky:conky-diapo-par-zubi33.png?400 |}}\\ l'exemple qui suit affiche 20 images sur un écran de 1600x900. pour une configuration différente, il faudra éditer le script et le conkyrc. \\ pour obtenir un diaporama sur votre bureau avec conky, il faudra tout d'abord choisir vos images, les placer dans un dossier, puis les modifier afin d'ajouter une bordure et de redimensionner vos photos. enfin, vous aurez besoin d'un script pour choisir vos images de façon aléatoire et les afficher dans conky. *création du dossier contenant les images à afficher en diaporama: $ mkdir ~/images/galerie_conky *copie des photos/images dans le dossier de destination *création du script de modification des images (dépend de **imagemagick**): $ touch ~/images/galerie_conky/polaroid.sh *édition du script de modification des images avec votre éditeur de texte préféré: #!/bin/bash # Script permettant de générer des images avec cadre et rotation dans le dossier ./final # en utilisant le remplacement. # ce script s'utilise dans le répertoire contenant les images en jpg. #Script start echo for fichier in *.jpg do ls -l "$fichier" # Liste tous les fichiers de $PWD (répertoire courant). done echo; echo for fichier in *.jpg do ANGLE=$(($RANDOM % 20)) # Angle aléatoire if [ $(($RANDOM % 2)) -eq 1 ] then ANGLE="-"$ANGLE fi convert "$fichier" -gravity center -resize 240x240 -bordercolor snow -background black -polaroid $ANGLE "$fichier.png" echo "Conversion de \"$fichier\"". done echo for fichier1 in *.JPG do ls -l "$fichier1" # Liste tous les fichiers de $PWD (répertoire courant). done echo; echo for fichier1 in *.JPG do ANGLE=$(($RANDOM % 20)) # Angle aléatoire if [ $(($RANDOM % 2)) -eq 1 ] then ANGLE="-"$ANGLE fi convert "$fichier1" -gravity center -resize 240x240 -bordercolor snow -background black -polaroid $ANGLE "$fichier1.png" echo "Conversion de \"$fichier1\"". done echo for fichier1 in *.jpeg do ls -l "$fichier1" # Liste tous les fichiers de $PWD (répertoire courant). done echo; echo for fichier1 in *.jpeg do ANGLE=$(($RANDOM % 20)) # Angle aléatoire if [ $(($RANDOM % 2)) -eq 1 ] then ANGLE="-"$ANGLE fi convert "$fichier1" -gravity center -resize 240x240 -bordercolor snow -background black -polaroid $ANGLE "$fichier1.png" echo "Conversion de \"$fichier1\"". done echo # création du répertoire de destination mkdir final/ # nettoyage des images originales rm *.jpg rm *.JPG rm *.jpeg # déplacement des images modifiées dans le dossier de destination mv *.png final/ echo exit 0 ce script ajoute une bordure à toutes les images jpg présentes dans le dossier où il se trouve, les redimensionne en 240x240 pixels maximum sans déformation de l'image, les sauvegarde au format png dans un dossier ~/images/galerie_conky/final, puis éfface les originaux. *rendre le script exécutable: $ chmod +x ~/images/galerie_conky/polaroid.sh *création du fichier de configuration de conky: $ touch ~/images/galerie_conky/conkyrc *édition du conkyrc avec votre éditeur de texte préféré: background yes update_interval 30 total_run_times 0 own_window yes own_window_transparent yes own_window_type override own_window_hints undecorated,below,sticky,skip_taskbar,skip_pagers double_buffer yes minimum_size 1500 3000 maximum_width 1500 alignment tl gap_x 10 gap_y 10 imlib_cache_size 0 text_buffer_size 2048 TEXT ${execpi 300 ~/images/galerie_conky/galleryconky.sh ~/images/galerie_conky/final} *création du script de choix d'images aléatoires: $ touch ~/images/galerie_conky/galleryconky.sh *édition du script de choix d'images #!/bin/bash # Photo aléatoire pour conky FILES=( /home/$USER/images/galerie_conky/final/*.png ) PICTURE1="${FILES[$(($RANDOM % ${#FILES[@]}))]}" PICTURE2="${FILES[$(($RANDOM % ${#FILES[@]}))]}" PICTURE3="${FILES[$(($RANDOM % ${#FILES[@]}))]}" PICTURE4="${FILES[$(($RANDOM % ${#FILES[@]}))]}" PICTURE5="${FILES[$(($RANDOM % ${#FILES[@]}))]}" PICTURE6="${FILES[$(($RANDOM % ${#FILES[@]}))]}" PICTURE7="${FILES[$(($RANDOM % ${#FILES[@]}))]}" PICTURE8="${FILES[$(($RANDOM % ${#FILES[@]}))]}" PICTURE9="${FILES[$(($RANDOM % ${#FILES[@]}))]}" PICTURE10="${FILES[$(($RANDOM % ${#FILES[@]}))]}" PICTURE11="${FILES[$(($RANDOM % ${#FILES[@]}))]}" PICTURE12="${FILES[$(($RANDOM % ${#FILES[@]}))]}" PICTURE13="${FILES[$(($RANDOM % ${#FILES[@]}))]}" PICTURE14="${FILES[$(($RANDOM % ${#FILES[@]}))]}" PICTURE15="${FILES[$(($RANDOM % ${#FILES[@]}))]}" PICTURE16="${FILES[$(($RANDOM % ${#FILES[@]}))]}" PICTURE17="${FILES[$(($RANDOM % ${#FILES[@]}))]}" PICTURE18="${FILES[$(($RANDOM % ${#FILES[@]}))]}" PICTURE19="${FILES[$(($RANDOM % ${#FILES[@]}))]}" PICTURE20="${FILES[$(($RANDOM % ${#FILES[@]}))]}" #echo $PICTURE ## Affichage dans conky echo "\${image $PICTURE1 -p 0,0}" echo "\${image $PICTURE2 -p 0,150}" echo "\${image $PICTURE3 -p 0,300}" echo "\${image $PICTURE4 -p 0,450}" echo "\${image $PICTURE5 -p 250,0}" echo "\${image $PICTURE6 -p 250,150}" echo "\${image $PICTURE7 -p 250,300}" echo "\${image $PICTURE8 -p 250,450}" echo "\${image $PICTURE9 -p 500,0}" echo "\${image $PICTURE10 -p 500,150}" echo "\${image $PICTURE11 -p 500,300}" echo "\${image $PICTURE12 -p 500,450}" echo "\${image $PICTURE13 -p 750,0}" echo "\${image $PICTURE14 -p 750,150}" echo "\${image $PICTURE15 -p 750,300}" echo "\${image $PICTURE16 -p 750,450}" echo "\${image $PICTURE17 -p 1000,0}" echo "\${image $PICTURE18 -p 1000,150}" echo "\${image $PICTURE19 -p 1000,300}" echo "\${image $PICTURE20 -p 1000,450}" exit 0 c'est dans ce script que vous pouvez régler le nombre et la position des images sur votre bureau. *rendre le script galleryconky exécutable: $ chmod +x ~/images/galerie_conky/gallery_conky.sh il ne vous reste plus maintenant qu'à choisir vos images, les placer dans le dossier ~/images/galerie_conky, puis d'exécuter le script polaroid.sh afin de modifier vos images, et enfin de lancer votre diaporama avec la commande: $ conky -c ~/images/galerie_conky/conkyrc ===== Les Scripts ===== la meilleure source d'info en français sur les scripts utilisable par conky reste [[http://conky.pitstop.free.fr/wiki/index.php5?title=Category:Tips_and_tricks_%28fr%29|Conky Pitstop-fr]] maintenu par [[http://wlourf.deviantart.com/gallery/?catpath=/|wlourf]]!! ===== Les Scripts Lua ===== Conky gère le lua depuis sa version 1.7.2 et c'est avec joie que les divers dev et passionnés de conky se sont lancés à la conquète de nouvelles configurations.\\ Conky ne pouvait afficher jusque là que du texte ou des barres de progression rudimentaires. Avec l'arrivée du lua , les moyens de distiller une information sont devenus quasi infinis.\\ [[http://londonali1010.deviantart.com/|Londonali1010]] est la première à avoir publié un conky s'appuyant sur un script LUA, il me semblait donc légitime de lui réserver mon premier exemple. Je la remercie encore pour son fabuleux travail. Petit exemple de simplicité et d'élégance par Londonali1010:\\ {{http://arpinux.org/x/lib/exe/fetch.php/user_tools:conky:rings-v1.2_ss.png?400|ring-meters by londonali1010}}\\ Ce résultat est obtenu par le chargement d'un script LUA par conky. Le script original est intégralement commenté par Londonali mais .. en anglais... Pour l'exemple, je vous propose ici une version traduite raccourcie :\\ --Ring Meters by londonali1010 (2009) --traduction par arpinux (2011) --Ce script dessine les valeurs en pourcentage sous forme de cercles. --Il est complètement personnalisable; toutes les options sont décrites dans le script. --IMPORTANT: si vous utilisez la fonction 'cpu, elle causera une erreur de segmentation -- si elle essaye de dessiner un cercle tout de suite. La condition 'if' de la ligne 255 -- utilise un delai pour être certain que cela n'arrive pas. Elle calcule le delai par -- rapport au nombre de rafraichissement de conky depuis son lancement. -- Generalement, une valeur de 5 est suffisante, donc, si vous relancez conky toutes -- les 5 secondes, utilisez update_num>5 comme condition (par défaut). -- Si vous relancez conky toutes les 2 secondes, vous devriez changer cette valeur -- pour update_num>3; à l'inverse, si vous relancez conky toutes les 0,5 secondes, -- vous devriez utilisez update_num>10. AUSSI, si vous modifiez votre conkyrc, -- il est préférable de faire "killall conky; conky" pour le recharger, autrement, -- le update_num ne sera pas rechargé et il y aura une erreur. -- Pour appeler ce script dans conky, ajouter ces lignes avant TEXT dans votre conkyrc -- (si il est placé dans ~/scripts/ring.lua): -- lua_load ~/scripts/rings-v1.2-fr.lua -- lua_draw_hook_pre ring_stats --Changelog: -- + v1.2 -- Added option for the ending angle of the rings (07.10.2009) -- + v1.1 -- Added options for the starting angle of the rings, -- and added the "max" variable, to allow for variables that output -- a numerical value rather than a percentage (29.09.2009) -- + v1.0 -- Original release (28.09.2009) settings_table = { { -- Editer cette table pour personnaliser vos cercles. -- Vous pouvez créer plus de cercles en ajoutant plus d'éléments à cette table. -- "name" est le type d'info à afficher; vous pouvez utiliser 'cpu', 'memperc', 'fs_used_perc', 'battery_used_perc'... name='time', -- "arg" est l'argument passé à "name"; si vous utiliseriez ${cpu cpu0}, 'cpu0' est l'argument, -- si vous n'utiliseriez pas d'arguments, employer ''. arg='%I.%M', -- "max" est la valeur maximum du cercle. Si conky affiche le résultat en pourcentage, employer 100. max=12, -- "bg_colour" est la couleur de fond du cercle. bg_colour=0xffffff, -- "bg_alpha" est la valeur alpha du fond (0=transparent, 1=opaque). bg_alpha=0.1, -- "fg_colour" est la couleur de premier plan du cercle. fg_colour=0xffffff, -- "fg_alpha" est la valeur alpha du premier du cercle (0=transparent, 1=opaque). fg_alpha=0.2, -- "x" and "y" sont les coordonnées du centre du cercle en partant du coin supérieur gauche du conky. x=165, y=170, -- "radius" est le rayon du cercle. radius=50, -- "thickness" est l'épaisseur du cercle, répartit autour du rayon. thickness=5, -- "start_angle" est l'angle de départ du cercle, en degrés, compté depuis le sommet -- dans le sens des aiguilles d'une montre. peut être positif ou négatif. start_angle=0, -- "end_angle" est l'angle de fin du cercle, en degrés, compté depuis le sommet -- dans le sens des aiguilles d'une montre. peut être positif ou négatif, -- mais doit être supérieur à l'angle de départ. end_angle=360 }, { name='time', arg='%M.%S', max=60, bg_colour=0xffffff, bg_alpha=0.1, fg_colour=0xffffff, fg_alpha=0.4, x=165, y=170, radius=56, thickness=5, start_angle=0, end_angle=360 }, (... . ...) { name='fs_used_perc', arg='/', max=100, bg_colour=0xffffff, bg_alpha=0.2, fg_colour=0xffffff, fg_alpha=0.3, x=165, y=170, radius=135, thickness=50, start_angle=-120, end_angle=120 }, } require 'cairo' function rgb_to_r_g_b(colour,alpha) return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha end function draw_ring(cr,t,pt) local w,h=conky_window.width,conky_window.height local xc,yc,ring_r,ring_w,sa,ea=pt['x'],pt['y'],pt['radius'],pt['thickness'],pt['start_angle'],pt['end_angle'] local bgc, bga, fgc, fga=pt['bg_colour'], pt['bg_alpha'], pt['fg_colour'], pt['fg_alpha'] local angle_0=sa*(2*math.pi/360)-math.pi/2 local angle_f=ea*(2*math.pi/360)-math.pi/2 local t_arc=t*(angle_f-angle_0) -- Dessine le fond du cercle cairo_arc(cr,xc,yc,ring_r,angle_0,angle_f) cairo_set_source_rgba(cr,rgb_to_r_g_b(bgc,bga)) cairo_set_line_width(cr,ring_w) cairo_stroke(cr) -- Dessine le premier plan du cercle cairo_arc(cr,xc,yc,ring_r,angle_0,angle_0+t_arc) cairo_set_source_rgba(cr,rgb_to_r_g_b(fgc,fga)) cairo_stroke(cr) end function conky_ring_stats() local function setup_rings(cr,pt) local str='' local value=0 str=string.format('${%s %s}',pt['name'],pt['arg']) str=conky_parse(str) value=tonumber(str) pct=value/pt['max'] draw_ring(cr,pct,pt) end if conky_window==nil then return end local cs=cairo_xlib_surface_create(conky_window.display,conky_window.drawable,conky_window.visual, conky_window.width,conky_window.height) local cr=cairo_create(cs) local updates=conky_parse('${updates}') update_num=tonumber(updates) if update_num>5 then for i in pairs(settings_table) do setup_rings(cr,settings_table[i]) end end end Pour tout vous avouer , je ne comprends absolument rien au lua :D et ce n'est pas le sujet de ce wiki, mais ce sript est si bien fait qu'il vous suffit de remplir les champs **correctement** et de suivre les instructions des archives téléchargées, pour obtenir toutes sortes de résultats:\\ {{http://arpinux.org/x/lib/exe/fetch.php/user_tools:conky:my_conky_config_311209_by_londonali1010.png?260|par londonali1010}}1 {{http://arpinux.org/x/lib/exe/fetch.php/user_tools:conky:conky_rings_3_by_jpope777.png?260|par jpope777}}2 {{http://arpinux.org/x/lib/exe/fetch.php/user_tools:conky:cornet_conky_by_g0rg0d-d2ucuou.png?260|par g0rg0d}}3\\ {{http://arpinux.org/x/lib/exe/fetch.php/user_tools:conky:eletric_conky_by_sunjack94-d3e1q96.jpg?260|par sunjack94}}4 {{http://arpinux.org/x/lib/exe/fetch.php/user_tools:conky:more_conky_rings_by_arpinux.png?260|par arpinux}}5 \\ 1: [[http://londonali1010.deviantart.com/art/My-Conky-Config-311209-148712243]] par londonali1010.\\ 2: [[http://jpope777.deviantart.com/art/Conky-Rings-3-139828675]] par jpope777.\\ 3: [[http://g0rg0d.deviantart.com/art/Cornet-Conky-171920478]] par g0rg0d.\\ 4: [[http://sunjack94.deviantart.com/art/Electric-Conky-204993834]] par sunjack94.\\ 5: [[http://arpinux.deviantart.com/art/more-conky-rings-139488211]] par arpinux.\\ **Londonali1010** a également publié un script "[[http://londonali1010.deviantart.com/art/Conky-Widgets-Script-141963883|widgets.lua]]" qui permet d'inclure des "morceaux" de code, les "widgets". L'utilisation de ce genre de widget permet des conkys de ce type:\\ {{http://arpinux.org/x/lib/exe/fetch.php/user_tools:conky:bargraph_widget_for_conky_3_by_wlourf.png?150|par wlourf}} {{http://arpinux.org/x/lib/exe/fetch.php/user_tools:conky:conky_for_some_players_by_wlourf-d2xq569.png?300|par wlourf bis}} {{http://arpinux.org/x/lib/exe/fetch.php/user_tools:conky:conky_with_bars_and_texts_by_wlourf-d349j2l.png?350|par wlourf aussi}}\\ {{http://arpinux.org/x/lib/exe/fetch.php/user_tools:conky:rings_and_sectors_conky_1_1_by_wlourf-d2vvzqk.png?200|encore wlourf}} {{http://arpinux.org/x/lib/exe/fetch.php/user_tools:conky:text_widget_for_conky_1_42_by_wlourf-d36njc0.png?200|}}\\ **tous** ces widgets ont été écrit par [[http://wlourf.deviantart.com/gallery/?catpath=/|wlourf]] :) \\ ===== Conky Weather ===== Alors là c'est super facile:\\ * ouvrez la fenêtre... non, pas sur le bureau, la **Vraie** * ouvrez les yeux et regardez dehors. :) Pour les prévisions, on a les proverbes populaires ou les fabuleux scripts de [[http://conky.pitstop.free.fr/wiki/index.php5?title=ConkyForecast_examples_(fr)|kaivalagi]] ;).\\ ===== Conclusion et Recommandations ===== Vous pouvez désormais personnaliser votre bureau à votre guise grâce à **conky**. Il existe quelques règles élémentaires lorsque vous récupérez un conkyrc/script.lua sur le net:\\ * toujours éditer les fichiers concernés et vérifier **chaque** variable. une erreur de variable ou de fonction peut conduire à une clôture prématurée du programme. * afin de tester votre configuration, je vous conseille de lancer votre conky depuis un terminal avec une commande du genre:\\ conky -c ~/chemin_de_votre_conky Ce qui vous permettra de visualiser les erreurs possibles et d'y remedier avant d'inclure votre conky dans votre ~/.config.openbox/autostart.sh. * les variables "$exec" "$execp" sont gourmandes en ressources, préférez les appels aux scripts externes avec une commande du genre:\\ ..${texeci 120 ~/bin/mon_script_bash}... ..${texeci 120 phython ~/bin/mon_script_python}... Ce qui permettra à conky de s'afficher sans attendre le résultat du script. L'affichage se mettra à jour dès l'arrivée des informations.\\ \\ //ce wiki ainsi que les fonctions et variables décrites concernent conky_1.7.2 et ultérieur.// ===== Liens ===== la page du projet sur sourceforge : [[http://conky.sourceforge.net/]]\\ le post dédié sur le forum crunchbanglinux-fr : [[http://crunchbanglinux-fr.org/forum/viewtopic.php?id=35&p=1]]\\ le post dédié sur le forum crunchbanglinux : [[http://crunchbanglinux.org/forums/topic/59/my-conky-config/]]\\ Conky Pitstop (maintenu en français par wlourf) : [[http://conky.pitstop.free.fr/wiki/index.php5?title=Main_page_(fr)]]\\ Le conky-artists-group sur deviantart: [[http://conky-artists-group.deviantart.com/]]\\ ma gallerie conky perso: [[http://arpinux.org/x/doku.php/user_tools:conky:arpconky|arp'conky]]