Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1876 Le 17/10/2012, à 08:03

chepioq

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

@ Didier-t

Ne pourrait-on pas, dans le script, ajouter quelque chose qui enverrai une valeur numérique (0 ou 1) dans un fichier, puis ensuite indiquer à conky de lire ce fichier, si c'est 0, alors afficher la flèche descendante et si c'est 1, alors afficher la flèche montante.

Je ne suis pas caler en script, je ne sais pas si cela est possible...


Tout est dans tout et réciproquement....

Hors ligne

#1877 Le 17/10/2012, à 08:09

Didier-T

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

chepioq a écrit :

@ Didier-t

Ne pourrait-on pas, dans le script, ajouter quelque chose qui enverrai une valeur numérique (0 ou 1) dans un fichier, puis ensuite indiquer à conky de lire ce fichier, si c'est 0, alors afficher la flèche descendante et si c'est 1, alors afficher la flèche montante.

Je ne suis pas caler en script, je ne sais pas si cela est possible...

C'est une très bonne idée, et en effet sa pourrais fonctionner, il suffit pour écrire une valeur dans un fichier de faire un

echo "valeur">fichier

en ne mettant qu'un > le contenu précédent est écrasé, donc sa doit marcher.
Et dans le conky le retour d'information peut être obtenu par un

${execi x sed -e 'p' fichier}

mais il existe pleins d'autres solutions pour récupérer l'info contenu dans le fichier

Hors ligne

#1878 Le 17/10/2012, à 09:31

ragamatrix

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

@Phyllinux
Merci pour le conky DeadBeef amélioré joli travail !!

Hors ligne

#1879 Le 17/10/2012, à 09:52

Phyllinux

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

@ chepioq et Didier-T :
Merci pour vos idées !
Je suis en train de finaliser cela.
Pour le moment, j'avais trouvé une solution, en intégrant l'affichage de la flèche dans le script bash. Mais ce n'est qu'à moitié satisfaisant, car, en fait, je suis obligé de faire un mini script pour chaque cotation. En effet, si je fais afficher plusieurs widgets les uns en dessous des autres, la flèche doit se trouver à une position (hauteur) différente.
Je vais donc étudier maintenant l'idée proposée par chepioq wink


The ship is sinking normally...

Hors ligne

#1880 Le 17/10/2012, à 10:48

ragamatrix

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Mon conky concernant les infos système plante; des erreurs complètement incompréhensibles...(pour moi) peut être pourriez-vous mieux comprendre mon problème.
Voici le message :

 ┌─( climatix ) - ( 3.2.0-32-generic ) - ( ~ )
└─> conky -c /home/climatix/.conky/conky30/conkyrc
Conky: desktop window (ba) is root window
Conky: window type - desktop
Conky: drawing to created window (0x2600001)
Conky: drawing to double buffer
*** longjmp causes uninitialized stack frame ***: conky terminated
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x37)[0x7fcf1665d907]
/lib/x86_64-linux-gnu/libc.so.6(+0x10a87d)[0x7fcf1665d87d]
/lib/x86_64-linux-gnu/libc.so.6(__longjmp_chk+0x33)[0x7fcf1665d7e3]
/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4(+0xca45)[0x7fcf16e81a45]
/lib/x86_64-linux-gnu/libpthread.so.0(+0xfcb0)[0x7fcf18b3bcb0]
/lib/x86_64-linux-gnu/libc.so.6(__select+0x33)[0x7fcf16640123]
conky[0x430076]
conky[0x408c53]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed)[0x7fcf1657476d]
conky[0x408c89]
======= Memory map: ========
00400000-00462000 r-xp 00000000 08:01 1707723                            /usr/bin/conky
00661000-00662000 r--p 00061000 08:01 1707723                            /usr/bin/conky
00662000-00664000 rw-p 00062000 08:01 1707723                            /usr/bin/conky
00664000-00688000 rw-p 00000000 00:00 0 
02583000-04caf000 rw-p 00000000 00:00 0                                  [heap]
7fcee8000000-7fcee8021000 rw-p 00000000 00:00 0 
7fcee8021000-7fceec000000 ---p 00000000 00:00 0 
7fcef0000000-7fcef0021000 rw-p 00000000 00:00 0 
7fcef0021000-7fcef4000000 ---p 00000000 00:00 0 
7fcef4000000-7fcef4021000 rw-p 00000000 00:00 0 
7fcef4021000-7fcef8000000 ---p 00000000 00:00 0 
7fcef8000000-7fcef8021000 rw-p 00000000 00:00 0 
7fcef8021000-7fcefc000000 ---p 00000000 00:00 0 
7fcefc000000-7fcefc021000 rw-p 00000000 00:00 0 
7fcefc021000-7fcf00000000 ---p 00000000 00:00 0 
7fcf00000000-7fcf0004d000 rw-p 00000000 00:00 0 
7fcf0004d000-7fcf04000000 ---p 00000000 00:00 0 
7fcf071de000-7fcf071f3000 r-xp 00000000 08:01 6164013                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7fcf071f3000-7fcf073f2000 ---p 00015000 08:01 6164013                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7fcf073f2000-7fcf073f3000 r--p 00014000 08:01 6164013                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7fcf073f3000-7fcf073f4000 rw-p 00015000 08:01 6164013                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7fcf073f4000-7fcf073fb000 r-xp 00000000 08:01 6178213                    /lib/x86_64-linux-gnu/libnss_dns-2.15.so
7fcf073fb000-7fcf075fa000 ---p 00007000 08:01 6178213                    /lib/x86_64-linux-gnu/libnss_dns-2.15.so
7fcf075fa000-7fcf075fb000 r--p 00006000 08:01 6178213                    /lib/x86_64-linux-gnu/libnss_dns-2.15.so
7fcf075fb000-7fcf075fc000 rw-p 00007000 08:01 6178213                    /lib/x86_64-linux-gnu/libnss_dns-2.15.so
7fcf075fc000-7fcf075fe000 r-xp 00000000 08:01 6160438                    /lib/libnss_mdns4_minimal.so.2
7fcf075fe000-7fcf077fd000 ---p 00002000 08:01 6160438                    /lib/libnss_mdns4_minimal.so.2
7fcf077fd000-7fcf077fe000 r--p 00001000 08:01 6160438                    /lib/libnss_mdns4_minimal.so.2
7fcf077fe000-7fcf077ff000 rw-p 00002000 08:01 6160438                    /lib/libnss_mdns4_minimal.so.2
7fcf077ff000-7fcf07800000 ---p 00000000 00:00 0 
7fcf07800000-7fcf08000000 rw-p 00000000 00:00 0 
7fcf08000000-7fcf08086000 rw-p 00000000 00:00 0 
7fcf08086000-7fcf0c000000 ---p 00000000 00:00 0 
7fcf0c04d000-7fcf0c0dc000 r--p 00000000 08:01 2753245                    /usr/share/fonts/truetype/freefont/FreeSans.ttf
7fcf0c0dc000-7fcf0c0e8000 r-xp 00000000 08:01 6178206                    /lib/x86_64-linux-gnu/libnss_files-2.15.so
7fcf0c0e8000-7fcf0c2e7000 ---p 0000c000 08:01 6178206                    /lib/x86_64-linux-gnu/libnss_files-2.15.so
7fcf0c2e7000-7fcf0c2e8000 r--p 0000b000 08:01 6178206                    /lib/x86_64-linux-gnu/libnss_files-2.15.so
7fcf0c2e8000-7fcf0c2e9000 rw-p 0000c000 08:01 6178206                    /lib/x86_64-linux-gnu/libnss_files-2.15.so
7fcf0c2e9000-7fcf0c2ea000 ---p 00000000 00:00 0 
7fcf0c2ea000-7fcf0caea000 rw-p 00000000 00:00 0 
7fcf0caea000-7fcf0caeb000 ---p 00000000 00:00 0 
7fcf0caeb000-7fcf0d2eb000 rw-p 00000000 00:00 0 
7fcf0d2eb000-7fcf0d2ec000 ---p 00000000 00:00 0 
7fcf0d2ec000-7fcf0daec000 rw-p 00000000 00:00 0 
7fcf0daec000-7fcf0daed000 ---p 00000000 00:00 0 
7fcf0daed000-7fcf0e2ed000 rw-p 00000000 00:00 0 
7fcf0e2ed000-7fcf0e2ee000 ---p 00000000 00:00 0 
7fcf0e2ee000-7fcf0eaee000 rw-p 00000000 00:00 0 
7fcf0eaee000-7fcf0eaef000 ---p 00000000 00:00 0 
7fcf0eaef000-7fcf0f2ef000 rw-p 00000000 00:00 0 
7fcf0f2ef000-7fcf0f2f7000 r-xp 00000000 08:01 1712201                    /usr/lib/x86_64-linux-gnu/libxcb-render.so.0.0.0
7fcf0f2f7000-7fcf0f4f7000 ---p 00008000 08:01 1712201                    /usr/lib/x86_64-linux-gnu/libxcb-render.so.0.0.0
7fcf0f4f7000-7fcf0f4f8000 r--p 00008000 08:01 1712201                    /usr/lib/x86_64-linux-gnu/libxcb-render.so.0.0.0
7fcf0f4f8000-7fcf0f4f9000 rw-p 00009000 08:01 1712201                    /usr/lib/x86_64-linux-gnu/libxcb-render.so.0.0.0
7fcf0f4f9000-7fcf0f4fb000 r-xp 00000000 08:01 1712205                    /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0
7fcf0f4fb000-7fcf0f6fa000 ---p 00002000 08:01 1712205                    /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0
7fcf0f6fa000-7fcf0f6fb000 r--p 00001000 08:01 1712205                    /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0
7fcf0f6fb000-7fcf0f6fc000 rw-p 00002000 08:01 1712205                    /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0
7fcf0f6fc000-7fcf0f722000 r-xp 00000000 08:01 6164071                    /lib/x86_64-linux-gnu/libpng12.so.0.46.0
7fcf0f722000-7fcf0f922000 ---p 00026000 08:01 6164071                    /lib/x86_64-linux-gnu/libpng12.so.0.46.0
7fcf0f922000-7fcf0f923000 r--p 00026000 08:01 6164071                    /lib/x86_64-linux-gnu/libpng12.so.0.46.0
7fcf0f923000-7fcf0f924000 rw-p 00027000 08:01 6164071                    /lib/x86_64-linux-gnu/libpng12.so.0.46.0
7fcf0f924000-7fcf0f9a5000 r-xp 00000000 08:01 1712024                    /usr/lib/x86_64-linux-gnu/libpixman-1.so.0.24.4
7fcf0f9a5000-7fcf0fba4000 ---p 00081000 08:01 1712024                    /usr/lib/x86_64-linux-gnu/libpixman-1.so.0.24.4
7fcf0fba4000-7fcf0fbaa000 r--p 00080000 08:01 1712024                    /usr/lib/x86_64-linux-gnu/libpixman-1.so.0.24.4
7fcf0fbaa000-7fcf0fbab000 rw-p 00086000 08:01 1712024                    /usr/lib/x86_64-linux-gnu/libpixman-1.so.0.24.4
7fcf0fbab000-7fcf0fc64000 r-xp 00000000 08:01 1708668                    /usr/lib/x86_64-linux-gnu/libcairo.so.2.11000.2
7fcf0fc64000-7fcf0fe63000 ---p 000b9000 08:01 1708668                    /usr/lib/x86_64-linux-gnu/libcairo.so.2.11000.2
7fcf0fe63000-7fcf0fe65000 r--p 000b8000 08:01 1708668                    /usr/lib/x86_64-linux-gnu/libcairo.so.2.11000.2
7fcf0fe65000-7fcf0fe66000 rw-p 000ba000 08:01 1708668                    /usr/lib/x86_64-linux-gnu/libcairo.so.2.11000.2
7fcf0fe66000-7fcf0fe69000 rw-p 00000000 00:00 0 
7fcf0fe69000-7fcf0fe91000 r-xp 00000000 08:01 1707721                    /usr/lib/conky/libcairo.so.0.0.0
7fcf0fe91000-7fcf10090000 ---p 00028000 08:01 1707721                    /usr/lib/conky/libcairo.so.0.0.0
7fcf10090000-7fcf10091000 r--p 00027000 08:01 1707721                    /usr/lib/conky/libcairo.so.0.0.0
7fcf10091000-7fcf10092000 rw-p 00028000 08:01 1707721                    /usr/lib/conky/libcairo.so.0.0.0
7fcf10092000-7fcf10364000 r--p 00000000 08:01 1710435                    /usr/lib/locale/locale-archive
7fcf10364000-7fcf10376000 r-xp 00000000 08:01 1970547                    /usr/lib/x86_64-linux-gnu/pkcs11/gnome-keyring-pkcs11.so
7fcf10376000-7fcf10575000 ---p 00012000 08:01 1970547                    /usr/lib/x86_64-linux-gnu/pkcs11/gnome-keyring-pkcs11.so
7fcf10575000-7fcf10577000 r--p 00011000 08:01 1970547                    /usr/lib/x86_64-linux-gnu/pkcs11/gnome-keyring-pkcs11.so
7fcf10577000-7fcf10578000 rw-p 00013000 08:01 1970547                    /usr/lib/x86_64-linux-gnu/pkcs11/gnome-keyring-pkcs11.so
7fcf10578000-7fcf10581000 r-xp 00000000 08:01 6178205                    /lib/x86_64-linux-gnu/libcrypt-2.15.so
7fcf10581000-7fcf10781000 ---p 00009000 08:01 6178205                    /lib/x86_64-linux-gnu/libcrypt-2.15.so
7fcf10781000-7fcf10782000 r--p 00009000 08:01 6178205                    /lib/x86_64-linux-gnu/libcrypt-2.15.so
7fcf10782000-7fcf10783000 rw-p 0000a000 08:01 6178205                    /lib/x86_64-linux-gnu/libcrypt-2.15.so
7fcf10783000-7fcf107b1000 rw-p 00000000 00:00 0 
7fcf107b1000-7fcf1084f000 r-xp 00000000 08:01 1704145                    /usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6
7fcf1084f000-7fcf10a4f000 ---p 0009e000 08:01 1704145                    /usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6
7fcf10a4f000-7fcf10a51000 r--p 0009e000 08:01 1704145                    /usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6
7fcf10a51000-7fcf10a53000 rw-p 000a0000 08:01 1704145                    

etc...etc...Merci

Dernière modification par ragamatrix (Le 19/10/2012, à 13:18)

Hors ligne

#1881 Le 18/10/2012, à 13:40

Phyllinux

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Merci @ Didier-T et chepioq.
J'ai réussi à intégrer la variable dans le script pour obtenir l'effet suivant :
slection048.png
Un petit conky widget qui me permet de me passer des screenlets.
C'est toujours mieux quand c'est fait maison wink


The ship is sinking normally...

Hors ligne

#1882 Le 18/10/2012, à 16:13

chepioq

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Phyllinux a écrit :

Merci @ Didier-T et chepioq.
J'ai réussi à intégrer la variable dans le script pour obtenir l'effet suivant :
http://imageshack.us/a/img209/4305/slection048.png
Un petit conky widget qui me permet de me passer des screenlets.
C'est toujours mieux quand c'est fait maison wink

Tu peux nous donner le code ?


Tout est dans tout et réciproquement....

Hors ligne

#1883 Le 18/10/2012, à 17:02

Phyllinux

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

chepioq a écrit :
Phyllinux a écrit :

Merci @ Didier-T et chepioq.
J'ai réussi à intégrer la variable dans le script pour obtenir l'effet suivant :
http://imageshack.us/a/img209/4305/slection048.png
Un petit conky widget qui me permet de me passer des screenlets.
C'est toujours mieux quand c'est fait maison wink

Tu peux nous donner le code ?

En fait, j'ai choisi la simplicité.
N'arrivant pas à faire afficher la flèche par le conky lorsque je demande l'affichage de plusieurs places (Paris, Londres, NY...), j'ai choisi de la faire afficher par le script.
Du coup, mon conky lance x scripts, pour faire afficher x places. Et dans chacun d'eux je gère la position de la flèche :
Conky (sans l'avant text qui n'apporte rien...)

# -- Conky settings -- #
   .../...

         TEXT
#### Affichage des cadres  ####
${image ~/conky/weather_clock_cac/images/base.png -p 10,30 -s 175x50}
${image ~/conky/weather_clock_cac/images/base.png -p 190,30 -s 175x50}
${image ~/conky/weather_clock_cac/images/base.png -p 370,30 -s 175x50}
${image ~/conky/weather_clock_cac/images/base.png -p 550,30 -s 175x50}
${image ~/conky/weather_clock_cac/images/base.png -p 730,30 -s 175x50}
${image ~/conky/weather_clock_cac/images/base.png -p 910,30 -s 175x50}
#### Affichage Places ####
${voffset -210}${font Radio Space :size=20:style=bold}${color yellow}${goto 35}CAC 40${goto 215}FTSE${goto 395}DAX${goto 570}S&P 500${goto 755}NASDAQ${goto 935}NIKKEI
#### Affichage Cours ####
${voffset -15}${font Ubuntu :size=10:style=bold}${color white}${execpi 60 ~/conky/Bourse/widget/stockwidgetCAC-conky.sh quote ^FCHI}${goto 180}${color white}${execpi 60 ~/conky/Bourse/widget/stockwidgetFTSE-conky.sh quote ^FTSE}${goto 360}${color white}${execpi 60 ~/conky/Bourse/widget/stockwidgetDAX-conky.sh quote ^GDAXI}${goto 540}${color white}${execpi 60 ~/conky/Bourse/widget/stockwidgetSP-conky.sh quote ^GSPC}${goto 720}${color white}${execpi 60 ~/conky/Bourse/widget/stockwidgetNAS-conky.sh quote ^IXIC}${goto 900}${color white}${execpi 60 ~/conky/Bourse/widget/stockwidgetNIK-conky.sh quote ^N225}

un des scripts :

#!/bin/bash
# stock-conky.sh

wget -q "http://download.finance.yahoo.com/d/quotes.csv?s=$2&f=sl1d1t1c1ohgkp2n&e=.csv" -O - | awk -F "\"*,\"*" '{
#ticker = substr(substr($11, 0, length($11) - 1), 1, 8);
printf("%-8s %7.2f ", ticker, $2);

if ($5 > 0)
  printf("${color green}${image ~/conky/Bourse/widget/g.png -p 150,35}") 
else if ($5 < 0)
  printf("${color red}${image ~/conky/Bourse/widget/r.png -p 150,35}") 
else
  printf("${color grey}${image ~/conky/Bourse/widget/b.png -p 150,35}");

if ($5 == "N/A")
  printf("    ${color}N/A (   N/A) ")
else
  printf("%7.2f (%5.2f%%)$color ", $5, $10)

printf("\n");
}'

Ce n'est peut-être pas la solution la plus 'propre', car il y a très certainement la possibilité de gérer l'affichage des flèches par le conky, mais cela correspond à l'effet recherché. big_smile
Si quelqu'un est intéressé par les scripts complets pour faire des conkys relatifs aux cours de bourses ou de places boursières, j'ai une archive avec toutes les indications (et le 'décodeur' nécessaire à la compréhension des variables déclarées), en récupèrant les infos en direct sur le site de Yahoo finances. Me le faire savoir, et je posterai le lien.
J'avais envoyé cela à cherrak (alias lei00 sur DeviantArt), qui en a fait bon usage, voir ICI pour ceux qui apprécient les bureaux bien chargés avec de multiples conkys gérés.


The ship is sinking normally...

Hors ligne

#1884 Le 19/10/2012, à 13:19

ragamatrix

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

ragamatrix a écrit :

Mon conky concernant les infos système plante; des erreurs complètement incompréhensibles...(pour moi) peut être pourriez-vous mieux comprendre mon problème.
Voici le message :

 ┌─( climatix ) - ( 3.2.0-32-generic ) - ( ~ )
└─> conky -c /home/climatix/.conky/conky30/conkyrc
Conky: desktop window (ba) is root window
Conky: window type - desktop
Conky: drawing to created window (0x2600001)
Conky: drawing to double buffer
*** longjmp causes uninitialized stack frame ***: conky terminated
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x37)[0x7fcf1665d907]
/lib/x86_64-linux-gnu/libc.so.6(+0x10a87d)[0x7fcf1665d87d]
/lib/x86_64-linux-gnu/libc.so.6(__longjmp_chk+0x33)[0x7fcf1665d7e3]
/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4(+0xca45)[0x7fcf16e81a45]
/lib/x86_64-linux-gnu/libpthread.so.0(+0xfcb0)[0x7fcf18b3bcb0]
/lib/x86_64-linux-gnu/libc.so.6(__select+0x33)[0x7fcf16640123]
conky[0x430076]
conky[0x408c53]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed)[0x7fcf1657476d]
conky[0x408c89]
======= Memory map: ========
00400000-00462000 r-xp 00000000 08:01 1707723                            /usr/bin/conky
00661000-00662000 r--p 00061000 08:01 1707723                            /usr/bin/conky
00662000-00664000 rw-p 00062000 08:01 1707723                            /usr/bin/conky
00664000-00688000 rw-p 00000000 00:00 0 
02583000-04caf000 rw-p 00000000 00:00 0                                  [heap]
7fcee8000000-7fcee8021000 rw-p 00000000 00:00 0 
7fcee8021000-7fceec000000 ---p 00000000 00:00 0 
7fcef0000000-7fcef0021000 rw-p 00000000 00:00 0 
7fcef0021000-7fcef4000000 ---p 00000000 00:00 0 
7fcef4000000-7fcef4021000 rw-p 00000000 00:00 0 
7fcef4021000-7fcef8000000 ---p 00000000 00:00 0 
7fcef8000000-7fcef8021000 rw-p 00000000 00:00 0 
7fcef8021000-7fcefc000000 ---p 00000000 00:00 0 
7fcefc000000-7fcefc021000 rw-p 00000000 00:00 0 
7fcefc021000-7fcf00000000 ---p 00000000 00:00 0 
7fcf00000000-7fcf0004d000 rw-p 00000000 00:00 0 
7fcf0004d000-7fcf04000000 ---p 00000000 00:00 0 
7fcf071de000-7fcf071f3000 r-xp 00000000 08:01 6164013                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7fcf071f3000-7fcf073f2000 ---p 00015000 08:01 6164013                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7fcf073f2000-7fcf073f3000 r--p 00014000 08:01 6164013                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7fcf073f3000-7fcf073f4000 rw-p 00015000 08:01 6164013                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7fcf073f4000-7fcf073fb000 r-xp 00000000 08:01 6178213                    /lib/x86_64-linux-gnu/libnss_dns-2.15.so
7fcf073fb000-7fcf075fa000 ---p 00007000 08:01 6178213                    /lib/x86_64-linux-gnu/libnss_dns-2.15.so
7fcf075fa000-7fcf075fb000 r--p 00006000 08:01 6178213                    /lib/x86_64-linux-gnu/libnss_dns-2.15.so
7fcf075fb000-7fcf075fc000 rw-p 00007000 08:01 6178213                    /lib/x86_64-linux-gnu/libnss_dns-2.15.so
7fcf075fc000-7fcf075fe000 r-xp 00000000 08:01 6160438                    /lib/libnss_mdns4_minimal.so.2
7fcf075fe000-7fcf077fd000 ---p 00002000 08:01 6160438                    /lib/libnss_mdns4_minimal.so.2
7fcf077fd000-7fcf077fe000 r--p 00001000 08:01 6160438                    /lib/libnss_mdns4_minimal.so.2
7fcf077fe000-7fcf077ff000 rw-p 00002000 08:01 6160438                    /lib/libnss_mdns4_minimal.so.2
7fcf077ff000-7fcf07800000 ---p 00000000 00:00 0 
7fcf07800000-7fcf08000000 rw-p 00000000 00:00 0 
7fcf08000000-7fcf08086000 rw-p 00000000 00:00 0 
7fcf08086000-7fcf0c000000 ---p 00000000 00:00 0 
7fcf0c04d000-7fcf0c0dc000 r--p 00000000 08:01 2753245                    /usr/share/fonts/truetype/freefont/FreeSans.ttf
7fcf0c0dc000-7fcf0c0e8000 r-xp 00000000 08:01 6178206                    /lib/x86_64-linux-gnu/libnss_files-2.15.so
7fcf0c0e8000-7fcf0c2e7000 ---p 0000c000 08:01 6178206                    /lib/x86_64-linux-gnu/libnss_files-2.15.so
7fcf0c2e7000-7fcf0c2e8000 r--p 0000b000 08:01 6178206                    /lib/x86_64-linux-gnu/libnss_files-2.15.so
7fcf0c2e8000-7fcf0c2e9000 rw-p 0000c000 08:01 6178206                    /lib/x86_64-linux-gnu/libnss_files-2.15.so
7fcf0c2e9000-7fcf0c2ea000 ---p 00000000 00:00 0 
7fcf0c2ea000-7fcf0caea000 rw-p 00000000 00:00 0 
7fcf0caea000-7fcf0caeb000 ---p 00000000 00:00 0 
7fcf0caeb000-7fcf0d2eb000 rw-p 00000000 00:00 0 
7fcf0d2eb000-7fcf0d2ec000 ---p 00000000 00:00 0 
7fcf0d2ec000-7fcf0daec000 rw-p 00000000 00:00 0 
7fcf0daec000-7fcf0daed000 ---p 00000000 00:00 0 
7fcf0daed000-7fcf0e2ed000 rw-p 00000000 00:00 0 
7fcf0e2ed000-7fcf0e2ee000 ---p 00000000 00:00 0 
7fcf0e2ee000-7fcf0eaee000 rw-p 00000000 00:00 0 
7fcf0eaee000-7fcf0eaef000 ---p 00000000 00:00 0 
7fcf0eaef000-7fcf0f2ef000 rw-p 00000000 00:00 0 
7fcf0f2ef000-7fcf0f2f7000 r-xp 00000000 08:01 1712201                    /usr/lib/x86_64-linux-gnu/libxcb-render.so.0.0.0
7fcf0f2f7000-7fcf0f4f7000 ---p 00008000 08:01 1712201                    /usr/lib/x86_64-linux-gnu/libxcb-render.so.0.0.0
7fcf0f4f7000-7fcf0f4f8000 r--p 00008000 08:01 1712201                    /usr/lib/x86_64-linux-gnu/libxcb-render.so.0.0.0
7fcf0f4f8000-7fcf0f4f9000 rw-p 00009000 08:01 1712201                    /usr/lib/x86_64-linux-gnu/libxcb-render.so.0.0.0
7fcf0f4f9000-7fcf0f4fb000 r-xp 00000000 08:01 1712205                    /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0
7fcf0f4fb000-7fcf0f6fa000 ---p 00002000 08:01 1712205                    /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0
7fcf0f6fa000-7fcf0f6fb000 r--p 00001000 08:01 1712205                    /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0
7fcf0f6fb000-7fcf0f6fc000 rw-p 00002000 08:01 1712205                    /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0
7fcf0f6fc000-7fcf0f722000 r-xp 00000000 08:01 6164071                    /lib/x86_64-linux-gnu/libpng12.so.0.46.0
7fcf0f722000-7fcf0f922000 ---p 00026000 08:01 6164071                    /lib/x86_64-linux-gnu/libpng12.so.0.46.0
7fcf0f922000-7fcf0f923000 r--p 00026000 08:01 6164071                    /lib/x86_64-linux-gnu/libpng12.so.0.46.0
7fcf0f923000-7fcf0f924000 rw-p 00027000 08:01 6164071                    /lib/x86_64-linux-gnu/libpng12.so.0.46.0
7fcf0f924000-7fcf0f9a5000 r-xp 00000000 08:01 1712024                    /usr/lib/x86_64-linux-gnu/libpixman-1.so.0.24.4
7fcf0f9a5000-7fcf0fba4000 ---p 00081000 08:01 1712024                    /usr/lib/x86_64-linux-gnu/libpixman-1.so.0.24.4
7fcf0fba4000-7fcf0fbaa000 r--p 00080000 08:01 1712024                    /usr/lib/x86_64-linux-gnu/libpixman-1.so.0.24.4
7fcf0fbaa000-7fcf0fbab000 rw-p 00086000 08:01 1712024                    /usr/lib/x86_64-linux-gnu/libpixman-1.so.0.24.4
7fcf0fbab000-7fcf0fc64000 r-xp 00000000 08:01 1708668                    /usr/lib/x86_64-linux-gnu/libcairo.so.2.11000.2
7fcf0fc64000-7fcf0fe63000 ---p 000b9000 08:01 1708668                    /usr/lib/x86_64-linux-gnu/libcairo.so.2.11000.2
7fcf0fe63000-7fcf0fe65000 r--p 000b8000 08:01 1708668                    /usr/lib/x86_64-linux-gnu/libcairo.so.2.11000.2
7fcf0fe65000-7fcf0fe66000 rw-p 000ba000 08:01 1708668                    /usr/lib/x86_64-linux-gnu/libcairo.so.2.11000.2
7fcf0fe66000-7fcf0fe69000 rw-p 00000000 00:00 0 
7fcf0fe69000-7fcf0fe91000 r-xp 00000000 08:01 1707721                    /usr/lib/conky/libcairo.so.0.0.0
7fcf0fe91000-7fcf10090000 ---p 00028000 08:01 1707721                    /usr/lib/conky/libcairo.so.0.0.0
7fcf10090000-7fcf10091000 r--p 00027000 08:01 1707721                    /usr/lib/conky/libcairo.so.0.0.0
7fcf10091000-7fcf10092000 rw-p 00028000 08:01 1707721                    /usr/lib/conky/libcairo.so.0.0.0
7fcf10092000-7fcf10364000 r--p 00000000 08:01 1710435                    /usr/lib/locale/locale-archive
7fcf10364000-7fcf10376000 r-xp 00000000 08:01 1970547                    /usr/lib/x86_64-linux-gnu/pkcs11/gnome-keyring-pkcs11.so
7fcf10376000-7fcf10575000 ---p 00012000 08:01 1970547                    /usr/lib/x86_64-linux-gnu/pkcs11/gnome-keyring-pkcs11.so
7fcf10575000-7fcf10577000 r--p 00011000 08:01 1970547                    /usr/lib/x86_64-linux-gnu/pkcs11/gnome-keyring-pkcs11.so
7fcf10577000-7fcf10578000 rw-p 00013000 08:01 1970547                    /usr/lib/x86_64-linux-gnu/pkcs11/gnome-keyring-pkcs11.so
7fcf10578000-7fcf10581000 r-xp 00000000 08:01 6178205                    /lib/x86_64-linux-gnu/libcrypt-2.15.so
7fcf10581000-7fcf10781000 ---p 00009000 08:01 6178205                    /lib/x86_64-linux-gnu/libcrypt-2.15.so
7fcf10781000-7fcf10782000 r--p 00009000 08:01 6178205                    /lib/x86_64-linux-gnu/libcrypt-2.15.so
7fcf10782000-7fcf10783000 rw-p 0000a000 08:01 6178205                    /lib/x86_64-linux-gnu/libcrypt-2.15.so
7fcf10783000-7fcf107b1000 rw-p 00000000 00:00 0 
7fcf107b1000-7fcf1084f000 r-xp 00000000 08:01 1704145                    /usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6
7fcf1084f000-7fcf10a4f000 ---p 0009e000 08:01 1704145                    /usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6
7fcf10a4f000-7fcf10a51000 r--p 0009e000 08:01 1704145                    /usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6
7fcf10a51000-7fcf10a53000 rw-p 000a0000 08:01 1704145                    

etc...etc...Merci

Salut;
En fait l'erreur venait du fait que le script lua n'acceptait pas les flux rss; depuis avoir modifié ce conky celui-ci tourne correctement...
Avec le script "draw_bg.lua" je peux facilement changer de fond d'écran tout en gardant une bonne lisibilité des conky.Peu-être cela intéressera Phyllinux ?
Aperçu :
conkys_draw_bg.lua

Hors ligne

#1885 Le 19/10/2012, à 16:54

Phyllinux

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

@ ragamatrix :
Sympa ton bureau avec les différents conkys wink
Une petite remarque : Pour la météo, tu intègres, dans les prévisions, la pression atmosphérique. Ce qui n'est pas possible, car les données sur la pression n'existent que pour l'instant présent. Il est impossible d'obtenir des prévisions de pression sad
Je serais intéressé par ton conky baro. Je ne sais pas ce que j'ai fait du mien, que j'avais avant ma bascule sous Voyager. Il n'a pas fait partie du 'déménagement' .
Une petite question :
Comment gères tu le fond d'écran avec le script draw_bg.lua ? Peux tu définir quel sera le fond d'écran qui sera lancé avec le conky ?
Il faut que j'exploite la piste que m'avait donné Didier-T avec 'feh'
Mais ce ne sera pas demain, car je vais aller participer à une Ubuntu Party marseillaise lol, et en plus je dois faire la mise à niveau de ma session Unity en 12.10 ! Donc, du boulot en perspective, et qui sait, des réglages à faire après mad


The ship is sinking normally...

Hors ligne

#1886 Le 19/10/2012, à 21:19

sunkart

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Hello,

J'ai travaillé sur mes conkys il y a un bon bout de temps et je suis en train de m'y remettre.
je vois beaucoup de conkys avec du LUA. Qu'est ce que ça apporte ? Est-ce que ça n'alourdit pas le conky ? Et la dernière, est-ce que c'est plus complexe à mettre en oeuvre que les variables conky de base ?


Cyril

Hors ligne

#1887 Le 19/10/2012, à 21:24

ragamatrix

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Phyllinux a écrit :

@ ragamatrix :
Sympa ton bureau avec les différents conkys wink
Une petite remarque : Pour la météo, tu intègres, dans les prévisions, la pression atmosphérique. Ce qui n'est pas possible, car les données sur la pression n'existent que pour l'instant présent. Il est impossible d'obtenir des prévisions de pression sad
Je serais intéressé par ton conky baro. Je ne sais pas ce que j'ai fait du mien, que j'avais avant ma bascule sous Voyager. Il n'a pas fait partie du 'déménagement' .
Une petite question :
Comment gères tu le fond d'écran avec le script draw_bg.lua ? Peux tu définir quel sera le fond d'écran qui sera lancé avec le conky ?
Il faut que j'exploite la piste que m'avait donné Didier-T avec 'feh'
Mais ce ne sera pas demain, car je vais aller participer à une Ubuntu Party marseillaise lol, et en plus je dois faire la mise à niveau de ma session Unity en 12.10 ! Donc, du boulot en perspective, et qui sait, des réglages à faire après mad

Merci !
Ah bon ok, comme le script proposait cette fonction, je croyais que la technologie météorologique permettait ce genre de prévisions.Donc les météorologues doivent faire les cartes et les tracés manuellement chaque jour.?RESPECT!!;)

Pour le conky baro tu parles de celui en graph (xy avec temp et pression) ou celui qui ressemble à un baromètre ? (avec les scripts "image meteo lua"?) car avec tous ces changements il y avait dans ce conky 3 éléménts un baromètre,une rose des vents et un thermo avec indication du taux d'humidité.
Malheureusement plus que deux fonctionnent et le script meteo lua de l'époque me renvoie des erreurs...
en haut à droite :
baro

Pour le fond d'écran...Je n'ai rien fait smile.Juste un script lua dans chaque conky, ce qui fait peut-être monter la ram un peu haut ?
Peut-être serait-il possible de faire un script fond d'écran avec les emplacements des "aplats lua"  en une fois ?(un seul script pour tous les aplats?)Bonne fête Linuxienne ! wink Et bonne chance pour ta mise à niveau wink

Hors ligne

#1888 Le 19/10/2012, à 21:27

Didier-T

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

sunkart a écrit :

Hello,

J'ai travaillé sur mes conkys il y a un bon bout de temps et je suis en train de m'y remettre.
je vois beaucoup de conkys avec du LUA. Qu'est ce que ça apporte ? Est-ce que ça n'alourdit pas le conky ? Et la dernière, est-ce que c'est plus complexe à mettre en oeuvre que les variables conky de base ?

En fait lua apporte un vrai plus par apport aux script bash, mais pour les fonction déjà intégré a conky, sa n’apporte rien, en ce qui concerne la lourdeur, c'est vrais que sa prend de la place en mémoire, et que parfois des codes sont mal écrit utilise une quantité de mémoire en constante augmentation.

Hors ligne

#1889 Le 20/10/2012, à 00:06

Sylvhem

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Salutations conkystadors ! Je travail sur un nouveau petit conky. Rien de particulier, sauf que depuis la mise à jour vers la 12.10, les fenêtres de conky s'affichent systématiquement par dessus toutes les autres applications. Avez-vous le même problème ?

EDIT : De plus en plus bizarre... En ouvrant le .conkyrc, en réécrivant override et en réenregistrant (donc sans rien changer au final), les conky repassent bien sous les fenêtres... Mais apparaissent maintenant sur un fond gris et non plus transparent. J'espère que ça sera vite corrigé.

Dernière modification par Sylvhem (Le 20/10/2012, à 14:01)


Membre discret de la brigade des S

Hors ligne

#1890 Le 20/10/2012, à 14:27

Didier-T

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Bonjour Sylvhem,

Tu utilise qu'elle distribution de ubuntu, ton premier soucis semble être du au fait que ton gestionnaire de fenêtre n'est pas encore fonctionnel quand tu lance tes conkys, et le second soucis me rappelle ce qui se passais sous xfce avec la 4.8, la fausse transparence utilisé par conky n'était pas bien géré, du coup ont voyais sous le fond d'écran.

Hors ligne

#1891 Le 20/10/2012, à 14:38

Sylvhem

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Comme indiqué, j'utilise Ubuntu 12.10. Ton idée me semble très pertinente, d'autant plus que l'ouverture de session sous Quantal est un peu longue chez moi, je vais essayer d'augmenter un peu le laps de temps avant le lancement de conky au démarrage. Pour ce qui est de la pseudo transparence, je pense ne pas avoir d'autre choix que d'attendre pour voir si le bogue est corrigé...


Membre discret de la brigade des S

Hors ligne

#1892 Le 20/10/2012, à 14:43

Didier-T

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

@ Sylvhem,

Pour le soucis de pseudo transparence il existe une solution donné sur le site de conky.

http://conky.sourceforge.net/faq.html a écrit :

Q: Transparency doesn't work! Why is this and how can I fix it?

A: Conky uses "pseudo"-transparency. What this means is that is not a truly "transparent" window. What it does is read the background of the root window, and changes it's own background to the section of the image it finds. Some Window or Desktop Managers do not set a background to the "real" root background, and instead place it on a layer above the root window. To fix this, you can use an application such as qiv (http://www.klografx.net/qiv/), "Esetroot" which is included with Eterm (http://www.eterm.org), "fbsetbg" which is included with fluxbox (http://www.fluxbox.org), or (my favourite) "feh" (http://linuxbrit.co.uk/feh/).

To set the background using "feh" from your ~/.xinitrc, try the following:

#!/bin/sh
sleep 1 && feh --bg-center ~/background.png &

Bien sure ce n'est pas dit que le soucis vienne de la, car Ubuntu a toujours bien géré cette forme de transparence.

Dernière modification par Didier-T (Le 20/10/2012, à 14:44)

Hors ligne

#1893 Le 20/10/2012, à 15:07

Sylvhem

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Merci pour l'astuce Didier-T, je vais regarder tout ça et je vous tiendrai au courant des évolutions au prochain démarrage.


Membre discret de la brigade des S

Hors ligne

#1894 Le 20/10/2012, à 16:10

ragamatrix

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Question:
Est-ce normal que conky utilise 1.5% de Ram au démarrage de la machine, et que plusieurs heures après il utilise de 20 à 50% ?
Si c'est un problème je ne trouve pas d'où il vient ?
Merci

Hors ligne

#1895 Le 20/10/2012, à 16:45

Didier-T

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

ragamatrix a écrit :

Question:
Est-ce normal que conky utilise 1.5% de Ram au démarrage de la machine, et que plusieurs heures après il utilise de 20 à 50% ?
Si c'est un problème je ne trouve pas d'où il vient ?
Merci

tu as un conky lua avec une fuite de mémoire, souvent les scripts graphique.
tu peut poster ton conky avec le script.

Hors ligne

#1896 Le 20/10/2012, à 19:43

ragamatrix

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

Didier-T a écrit :
ragamatrix a écrit :

Question:
Est-ce normal que conky utilise 1.5% de Ram au démarrage de la machine, et que plusieurs heures après il utilise de 20 à 50% ?
Si c'est un problème je ne trouve pas d'où il vient ?
Merci

tu as un conky lua avec une fuite de mémoire, souvent les scripts graphique.
tu peut poster ton conky avec le script.

Ok, voici :

conkyrc:

  ##############################################
#  Settings
##############################################
background no
use_xft yes
xftfont font caviar dreams:style=Bold:size=7
xftalpha 1
update_interval 1.0
total_run_times 0
own_window yes
own_window_transparent yes
own_window_type normal
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
double_buffer yes
minimum_size 1920 40
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
default_color 1f1f1f
default_shade_color 282828
alignment tr
gap_x 0
gap_y 3
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale yes
# -- Lua Load -- #
# SET THE PATH TO THE SCRIPT HERE
lua_load /home/climatix/.conky/conky30/widget.lua
lua_draw_hook_pre main

#lua_load /home/climatix/.conky/conky30/graph.lua
#lua_draw_hook_pre main_graph

#lua_load /home/climatix/.conky/conky30/text.lua
#lua_draw_hook_pre draw_text

TEXT
 

graph.lua:

 --[[ GRAPH widget v1.0 by wlourf (31.10.2010)
	this widget draws some graphs with some effects 
	http://u-scripts.blogspot.com/2010/10/graph-widget.html
	
To call the script in a conky, use, before TEXT
	lua_load /path/to/the/script/graph.lua
	lua_draw_hook_pre main_graph
and add one line (blank or not) after TEXT


Parameters are :
3 parameters are mandatory
name		- the name of the conky variable to display,
			  for example for {$cpu cpu0}, just write name="cpu"
arg			- the argument of the above variable,
			  for example for {$cpu cpu1}, just write arg="cpu1"
		  	  arg can be a numerical value if name=""
max			- the maximum value the above variable can reach,
			  for example for {$cpu cpu1}, just write max=100 or less or more
	
Optional parameters:
x,y 		- coordinates of the bottom-left corner of the graph,
              relative to the top-left corner of the conky window 
			  default =  bottom-left corner of the conky window
width       - width of the graph, default = 100 pixels
height      - height of the graph, default = 20 pixels
nb_values   - number of values to display in the graph, default=width 
              i.e. 1 pixel for 1 value
autoscale   - if set to true, calculate the max valeu of the y axis and
              doesn't use the max parameter above, default=false
skew_x      - skew graph around x axis, défaut = 0
skew_y      - skew graph around y axis, défaut = 0
angle	    - angle of rotation of the graph in degress, default = 0
              i.e. a horizontal graph)
inverse     - if set to true, graph are draw from right to left, default=false
background  - if set to false, background is not drawn, default=true
foreground  - if set to false, foreground is not drawn, default=true
              foreground = plain graph
bg_bd_size  - size of the border of the background, default=0=no border
fg_bd_size  - size of the border of the foreground, default=0=no border


Colours tables below are defined into braces :
{position in the gradient (0 to 1), colour in hexadecimal, alpha (0 to 1)}
example for a single colour table : 
{{0,0xFFAA00,1}} position parameter doesn't matter
example for a two-colours table : 
{{0,0xFFAA00,1},{1,0x00AA00,1}} or {{0.5,0xFFAA00,1},{1,0x00AA00,1}}
example for a three-colours table : 
{{0,0xFFAA00,1},{0.5,0xFF0000,1},{1,0x00AA00,1}}

bg_colour	- colour table for background,
			  default = {{0,0x000000,.5},{1,0xFFFFFF,.5}}
fg_colour	- colour table for foreground,
			  default = {{0,0x00FFFF,1},{1,0x0000FF,1}}
bg_bd_colour- colour table for background border,
			  default = {{1,0xFFFFFF,1}}			  
fg_bd_colour- colour table for foreground border,
			  default = {{1,0xFFFF00,1}}			  

bg_orientation, bg_bd_orientation, fg_orientation, fg_bd_orientation,
        	- "orientation" defines the starting point of the gradient,
        	  default="nn"
			  there are 8 available starting points : 
			  "nw","nn","ne","ee","se","ss","sw","ww"
			  (n for north, w for west ...)
			  theses 8 points are the 4 corners + the 4 middles of graph
			  so a gradient "nn" will go from "nn" to "ss"
			  a gradient "nw" will go from "nw" to "se"


v1.0 (31 Oct. 2010) original release

--      This program is free software; you can redistribute it and/or modify
--      it under the terms of the GNU General Public License as published by
--      the Free Software Foundation version 3 (GPLv3)
--     
--      This program is distributed in the hope that it will be useful,
--      but WITHOUT ANY WARRANTY; without even the implied warranty of
--      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--      GNU General Public License for more details.
--     
--      You should have received a copy of the GNU General Public License
--      along with this program; if not, write to the Free Software
--      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
--      MA 02110-1301, USA.

]]

require 'cairo'

function set_settings()
	graph_settings={
	    
	    {--background
	    name="",
	    arg=0,
	    max=1,
	    x=0,
        y=38,
        width=1920,
        height=40,
        foreground=false,
        bg_colour=col_bg,
	    },
	    
	    {
	    name="cpu",
	    arg="cpu1",
	    max=100,
	    x=42,
        y=36,
        width=100,
        height=32,
        background=false,
        fg_colour=col_cpu1,
	    },
	    {
	    name="cpu",
	    arg="cpu2",
	    max=100,
	    x=162,
        y=36,
        width=100,
        height=32,
        background=false,
        fg_colour=col_cpu2,
	    },
	    
	   -- {--separator
	   -- name="",
	    --arg=1,
	   -- max=1,
	   -- x=522,
       -- y=36,
       -- width=1,
       -- height=32,
       -- foreground=false,
       -- bg_colour=col_sep,
	  --  },	  	    
	    {
	    name="fs_used_perc",
	    arg="/",
	    max=100,
	    x=430,
        y=36,
        width=10,
        height=32,
        nb_values=2,
        fg_colour=col_fs_sys,
        background=false,
	    },
	    {
	    name="fs_used_perc",
	    arg="/home",
	    max=100,
	    x=495,
        y=36,
        width=10,
        height=32,
        nb_values=2,
        fg_colour=col_fs_home,
        background=false,        
	    },
	    --{--separator
	   -- name="",
	   -- arg=1,
	   -- max=1,
	   -- x=588,
       -- y=36,
       -- width=1,
        --height=32,
        --foreground=false,
        --bg_colour=col_sep,
	 --   },
	   {--
	    name="downspeedf",
	    arg="eth0",
	    max=max_dl,
	    autoscale=true,
	    x=594, y=34,
        width=150,
        nb_values=100,
        height=32,
        background=false,
        foreground=false,
        fg_bd_size=0.8,
        fg_bd_colour=col_cpu3,
	    },
	    {--
	    name="upspeedf",
	    arg="eth0",
	    max=max_up,
	    autoscale=true,
	    x=594,y=36,
        width=150,
        nb_values=100,
        height=32,
        background=false,
        foreground=false,
        fg_bd_size=0.8,
        fg_bd_colour=col_cpu1,
	    },
	    --{--separator
	    --name="",
	   -- arg=1,
	   -- max=1,
	   -- x=835,
       -- y=36,
       -- width=1,
        --height=32,
       -- foreground=false,
       -- bg_colour=col_sep,
	    --},
	    
	    --{--separator
	    --name="",
	    --arg=1,
	   -- max=1,
	   -- x=916,
       -- y=36,
        --width=1,
       -- height=32,
        --foreground=false,
        --bg_colour=col_sep,
	  --  },	    
	    {
	    name="memperc",
	    arg="",
	    max=100,
	    x=921,
        y=36,
        width=100,
        nb_values=300,
        height=32,
        background=false,
        fg_colour=col_cpu2,
	    },
	    {--separator
	    name="",
	    arg=1,
	    max=1,
	    x=1040,
        y=36,
        width=1,
        height=32,
        foreground=false,
        bg_colour=col_sep,
	    },
	    {--separator
	    name="",
	    arg=1,
	    max=1,
	    x=1837,
        y=36,
        width=1,
        height=32,
        foreground=false,
        bg_colour=col_sep,
	    },		        	    	    	    		    	    	          	        
       }
end

---END OF PARAMETERS ---

function check_settings(t)
    --tables are check only when conky start
	if t.name==nil and t.arg==nil then 
		print ("No input values ... use parameters 'name'" .. 
			" with 'arg' or only parameter 'arg' ") 
		return 1
	end

	if t.max==nil then
		print ("No maximum value defined, use 'max'")
		print ("for name=" .. t.name .. " with arg=" .. t.arg)
		return 1
	end
	if t.name==nil then t.name="" end
	if t.arg==nil then t.arg="" end
	return 0
end

function conky_main_graph()

    if conky_window == nil then return end
	    
    local w=conky_window.width
    local h=conky_window.height
    local cs=cairo_xlib_surface_create(conky_window.display, 
            conky_window.drawable, conky_window.visual, w, h)
    cr=cairo_create(cs)

    updates=tonumber(conky_parse('${updates}'))
    --start drawing after "updates_gap" updates
    --prevent segmentation error for cpu
    updates_gap=5
    if updates==1 then    
        set_settings()
	    
	    flagOK=0
		for i in pairs(graph_settings) do
			if graph_settings[i].width==nil then graph_settings[i].width=100 end
        	if graph_settings[i].nb_values==nil then  
        	    graph_settings[i].nb_values= graph_settings[i].width
        	end
			--create an empty table to store values
			graph_settings[i]["values"]={}
			--beginning point
			graph_settings[i].beg = graph_settings[i].nb_values
			--graph_settings[i].beg = 0
			for j =1, graph_settings[i].nb_values do
			    graph_settings[i].values[j]=0
			end
		    graph_settings[i].flag_init=true
		    flagOK=flagOK + check_settings(graph_settings[i])

		end
    end

    if flagOK>0 then 
        --abort script if error in one of the tables
        print ("ERROR : Check the graph_setting table")
        return
    end

    --drawing process
    if updates > updates_gap then
		for i in pairs(graph_settings) do
			local nb_values=graph_settings[i].nb_values
			graph_settings[i].automax=0
			for j =1, nb_values do
				if graph_settings[i].values[j+1]==nil then 
				    graph_settings[i].values[j+1]=0 
				end
				
				graph_settings[i].values[j]=graph_settings[i].values[j+1]
				if j==nb_values then
					--store value
					if graph_settings[i].name=="" then
					    value=graph_settings[i].arg
					else
    					value=tonumber(conky_parse('${' .. 
    					    graph_settings[i].name .. " " ..
    					    graph_settings[i].arg ..'}'))
    			    end
					graph_settings[i].values[nb_values]=value
				end
				graph_settings[i].automax=math.max(graph_settings[i].automax,
				                                   graph_settings[i].values[j])
			end
            
			draw_graph(graph_settings[i])
		end
    end

    cairo_destroy(cr)
    cairo_surface_destroy(cs)

end


function draw_graph(t)
    --drawing function

    local function rgb_to_r_g_b(colour)
        return ((colour[2] / 0x10000) % 0x100) / 255., ((colour[2] / 0x100) % 0x100) / 255., (colour[2] % 0x100) / 255., colour[3]
    end
 
	local function linear_orientation(o,w,h)
	    --set gradient for bg and bg border
		if o=="nn" then
			p={w/2,h,w/2,0}
		elseif o=="ne" then
			p={w,h,0,0}
		elseif o=="ww" then
			p={0,h/2,w,h/2}
		elseif o=="se" then
			p={w,0,0,h}
		elseif o=="ss" then
			p={w/2,0,w/2,h}
		elseif o=="ee" then
			p={w,h/2,0,h/2}		
		elseif o=="sw" then
			p={0,0,w,h}
		elseif o=="nw" then
			p={0,h,w,0}
		end
		return p
	end

	local function linear_orientation_inv(o,w,h)
	    --set gradient for fg and fg border
		if o=="ss" then
			p={w/2,h,w/2,0}
		elseif o=="sw" then
			p={w,h,0,0}
		elseif o=="ee" then
			p={0,h/2,w,h/2}
		elseif o=="nw" then
			p={w,0,0,h}
		elseif o=="nn" then
			p={w/2,0,w/2,h}
		elseif o=="ww" then
			p={w,h/2,0,h/2}		
		elseif o=="ne" then
			p={0,0,w,h}
		elseif o=="se" then
			p={0,h,w,0}
		end
		return p
	end
		
	--set default values
	if t.height==nil	then t.height=20 end
	--checked in previous part : width and nb_values
		
	if t.background==nil    then t.background=true end
	if t.bg_bd_size==nil	then t.bg_bd_size=0 end
	if t.x==nil 		    then t.x=t.bg_bd_size end
	if t.y==nil 		    then t.y=conky_window.height -t.bg_bd_size end
	if t.bg_colour==nil 	then t.bg_colour={{0,0x000000,.5},{1,0xFFFFFF,.5}} end
	if t.bg_bd_colour==nil 	then t.bg_bd_colour={{1,0xFFFFFF,1}} end
	
	if t.foreground==nil    then t.foreground=true end
	if t.fg_colour==nil 	then t.fg_colour={{0,0x00FFFF,1},{1,0x0000FF,1}} end
	
	if t.fg_bd_size==nil	then t.fg_bd_size=0 end	
	if t.fg_bd_colour==nil  then t.fg_bd_colour={{1,0xFFFF00,1}} end
	
	if t.autoscale==nil     then t.autoscale=false end
	if t.inverse==nil       then t.inverse=false end
	if t.angle==nil         then t.angle=0 end
	
	if t.bg_bd_orientation==nil then t.bg_bd_orientation="nn" end
	if t.bg_orientation==nil then t.bg_orientation="nn" end
	if t.fg_bd_orientation==nil then t.fg_bd_orientation="nn" end
	if t.fg_orientation==nil then t.fg_orientation="nn" end

    --check colours tables
	for i=1, #t.fg_colour do    
        if #t.fg_colour[i]~=3 then 
        	print ("error in fg_colour table")
        	t.fg_colour[i]={1,0x0000FF,1} 
        end
    end
	
	for i=1, #t.fg_bd_colour do    
        if #t.fg_bd_colour[i]~=3 then 
        	print ("error in fg_bd_colour table")
        	t.fg_bd_colour[i]={1,0x00FF00,1} 
        end
    end
    
	for i=1, #t.bg_colour do    
        if #t.bg_colour[i]~=3 then 
        	print ("error in background color table")
        	t.bg_colour[i]={1,0xFFFFFF,0.5} 
        end
    end    

	for i=1, #t.bg_bd_colour do    
        if #t.bg_bd_colour[i]~=3 then 
        	print ("error in background border color table")
        	t.bg_bd_colour[i]={1,0xFFFFFF,1} 
        end
    end    

    --calculate skew parameters if needed
    if t.flag_init then
	    if t.skew_x == nil then 
		    t.skew_x=0 
	    else
		    t.skew_x = math.pi*t.skew_x/180	
	    end
	    if t.skew_y == nil then 
		    t.skew_y=0
	    else
		    t.skew_y = math.pi*t.skew_y/180	
	    end
	    t.flag_init=false
	end

    cairo_set_line_cap(cr,CAIRO_LINE_CAP_ROUND)
    cairo_set_line_join(cr,CAIRO_LINE_JOIN_ROUND)

    local matrix0 = cairo_matrix_t:create()
    cairo_save(cr)
    cairo_matrix_init (matrix0, 1,t.skew_y,t.skew_x,1,0,0)
    cairo_transform(cr,matrix0)
    
   	local ratio=t.width/t.nb_values

	cairo_translate(cr,t.x,t.y)
	cairo_rotate(cr,t.angle*math.pi/180)
	cairo_scale(cr,1,-1)

	--background
	if t.background then
	    local pts=linear_orientation(t.bg_orientation,t.width,t.height)
		pat = cairo_pattern_create_linear (pts[1],pts[2],pts[3],pts[4])
		for i=1, #t.bg_colour do
			--print ("i",i,t.colour[i][1], rgb_to_r_g_b(t.colour[i]))
		    cairo_pattern_add_color_stop_rgba (pat, t.bg_colour[i][1], rgb_to_r_g_b(t.bg_colour[i]))
		end
		cairo_set_source (cr, pat)
		cairo_rectangle(cr,0,0,t.width,t.height)	
		cairo_fill(cr)	
	end
	
    --autoscale
    cairo_save(cr)
	if t.autoscale then
		t.max= t.automax*1.1
	end
	
    local scale_x = t.width/(t.nb_values-1)
	local scale_y = t.height/t.max
	
    --define first point of the graph
	if updates-updates_gap <t.nb_values then 
		t.beg = t.beg - 1
    	--next line prevent segmentation error when conky window is redraw 
		--quicly when another window "fly" over it
		if t.beg<0 then t.beg=0 end
	else
		t.beg=0
	end
    if t.inverse then cairo_scale(cr,-1,1)
    cairo_translate(cr,-t.width,0) end

	--graph foreground
	if t.foreground then
	    local pts_fg=linear_orientation_inv(t.fg_orientation,t.width,t.height)
	    pat = cairo_pattern_create_linear (pts_fg[1],pts_fg[2],pts_fg[3],pts_fg[4])
		for i=1,#t.fg_colour,1 do
			cairo_pattern_add_color_stop_rgba (pat, 1-t.fg_colour[i][1], rgb_to_r_g_b(t.fg_colour[i]))
		end
		cairo_set_source (cr, pat)

		cairo_move_to(cr,t.beg*scale_x,0)
		cairo_line_to(cr,t.beg*scale_x,t.values[t.beg+1]*scale_y)
		for i=t.beg, t.nb_values-1 do
			cairo_line_to(cr,i*scale_x,t.values[i+1]*scale_y)		
		end
		cairo_line_to(cr,(t.nb_values-1)*scale_x,0)
		cairo_close_path(cr)
		cairo_fill(cr)
	end

	--graph_border
	if t.fg_bd_size>0 then
    	local pts=linear_orientation_inv(t.fg_bd_orientation,t.width,t.height)
		pat = cairo_pattern_create_linear (pts[1],pts[2],pts[3],pts[4])
		for i=1,#t.fg_bd_colour,1 do
			cairo_pattern_add_color_stop_rgba (pat, 1-t.fg_bd_colour[i][1], rgb_to_r_g_b(t.fg_bd_colour[i]))
		end
		cairo_set_source (cr, pat)
		cairo_move_to(cr,t.beg*scale_x,t.values[t.beg+1]*scale_y)
		for i=t.beg, t.nb_values-1 do
			cairo_line_to(cr,i*scale_x,t.values[i+1]*scale_y)		
		end
		cairo_set_line_width(cr,t.fg_bd_size)
		cairo_stroke(cr)
	end
	cairo_restore(cr)

	--background border
	
	if t.bg_bd_size>0 then
    	local pts=linear_orientation(t.bg_bd_orientation,t.width,t.height)
		pat = cairo_pattern_create_linear (pts[1],pts[2],pts[3],pts[4])
		for i=1, #t.bg_bd_colour do
			--print ("i",i,t.colour[i][1], rgb_to_r_g_b(t.colour[i]))
		    cairo_pattern_add_color_stop_rgba (pat, t.bg_bd_colour[i][1], rgb_to_r_g_b(t.bg_bd_colour[i]))
		end
		cairo_set_source (cr, pat)
		cairo_rectangle(cr,0,0,t.width,t.height)	
		cairo_set_line_width(cr,t.bg_bd_size)
		cairo_stroke(cr)	
	end	

	cairo_restore(cr)

end
 

text.lua:

 
--[[TEXT WIDGET v1.3 by Wlourf 25/06/2010
This widget can drawn texts set in the "text_settings" table with some parameters
http://u-scripts.blogspot.com/2010/06/text-widget.html

The parameters (all optionals) are :
text        - text to display, default = "Conky is good for you"
			  use conky_parse to display conky value ie text=conly_parse("${cpu cpu1}")
            - coordinates below are relative to top left corner of the conky window
x           - x coordinate of first letter (bottom-left), default = center of conky window
y           - y coordinate of first letter (bottom-left), default = center of conky window
h_align		- horizontal alignement of text relative to point (x,y), default="l"
			  available values are "l": left, "c" : center, "r" : right
v_align		- vertical alignment of text relative to point (x,y), default="b"
			  available values "t" : top, "m" : middle, "b" : bottom
font_name   - name of font to use, default = Free Sans
font_size   - size of font to use, default = 14
italic      - display text in italic (true/false), default=false
oblique     - display text in oblique (true/false), default=false (I don' see the difference with italic!)
bold        - display text in bold (true/false), default=false
angle       - rotation of text in degrees, default = 0 (horizontal)
colour      - table of colours for text, default = plain white {{1,0xFFFFFF,1}}
			  this table contains one or more tables with format {P,C,A}
              P=position of gradient (0 = beginning of text, 1= end of text)
              C=hexadecimal colour 
              A=alpha (opacity) of color (0=invisible,1=opacity 100%)
              Examples :
              for a plain color {{1,0x00FF00,0.5}}
              for a gradient with two colours {{0,0x00FF00,0.5},{1,0x000033,1}}
              or {{0.5,0x00FF00,1},{1,0x000033,1}} -with this one, gradient will start in the middle of the text
              for a gradient with three colours {{0,0x00FF00,0.5},{0.5,0x000033,1},{1,0x440033,1}}
			  and so on ...
orientation	- in case of gradient, "orientation" defines the starting point of the gradient, default="ww"
			  there are 8 available starting points : "nw","nn","ne","ee","se","ss","sw","ww"
			  (n for north, w for west ...)
			  theses 8 points are the 4 corners + the 4 middles of text's outline
			  so a gradient "nn" will go from "nn" to "ss" (top to bottom, parallele to text)
			  a gradient "nw" will go from "nw" to "se" (left-top corner to right-bottom corner)
radial		- define a radial gradient (if present at the same time as "orientation", "orientation" will have no effect)
			  this parameter is a table with 6 numbers : {xa,ya,ra,xb,yb,rb}
			  they define two circle for the gradient :
			  xa, ya, xb and yb are relative to x and y values above
reflection_alpha    - add a reflection effect (values from 0 to 1) default = 0 = no reflection
                      other values = starting opacity
reflection_scale    - scale of the reflection (default = 1 = height of text)
reflection_length   - length of reflection, define where the opacity will be set to zero
					  calues from 0 to 1, default =1
skew_x,skew_y    - skew text around x or y axis
			  

Needs conky 1.8.0 

To call this script in the conkyrc, in before-TEXT section:
    lua_load /path/to/the/lua/script/text.lua
    lua_draw_hook_pre draw_text
 
v1.0	07/06/2010, Original release
v1.1	10/06/2010	Add "orientation" parameter
v1.2	15/06/2010  Add "h_align", "v_align" and "radial" parameters
v1.3	25/06/2010  Add "reflection_alpha", "reflection_length", "reflection_scale", 
                    "skew_x" et "skew_y"


]]
require 'cairo'

function conky_draw_text()
	--BEGIN OF PARAMETRES
	ts=os.date("*t")
    text_settings={
		{--crunchbang logo
			text="#!",
			font_size=40,
			bold=true,
			h_align="l",
			v_align="c",
			y=35,
			x=2,
			colour=col_logo,
			orientation="nn"
		},				
		{
			text=conky_parse"${cpu cpu1}%",
			font_size=12,
			h_align="l",
			angle=-90,
			y=35,
			x=155,
			colour=col_cpu1,
			orientation="ee"
		},
		{
			text=conky_parse"${cpu cpu2}%",
			font_size=12,
			h_align="l",
			angle=-90,
			y=35,
			x=275,
			colour=col_cpu2,
			orientation="ee"
		},					
		
		{
			text=conky_parse"${fs_used_perc /}",
			font_size=12,
			h_align="l",
			angle=-90,
			y=35,
			x=452,
			colour=col_fs_sys,
			orientation="ee"
		},	
		{
			text=conky_parse"${fs_used_perc /home}",
			font_size=12,
			h_align="l",
			angle=-90,
			y=35,
			x=520,
			colour=col_fs_home,
			orientation="ee"
		},
		{
			text=conky_parse"${downspeedf eth0}Kb",
			font_size=12,
			h_align="l",
			y=35,
			x=750,
			colour={{0,col_cpu3[2][2],1},{1,0x000000,1}},
			orientation="nn"
		},
		{
			text=conky_parse"${upspeedf eth0}Kb",
			font_size=12,
			h_align="l",
			y=16,
			x=750,
			colour={{0,col_cpu1[2][2],1},{1,0xfffffF,1}},
			orientation="ss"
		},
		
		---cpuinfo
---${execi 99999 cat /proc/cpuinfo | grep "model name" -m1 | cut -d":" -f2 | cut -d" " -f2-}
		{
			text=conky_parse"${kernel}",
			font_size=12,
			h_align="c",
			y=25,
			x=850,
			colour=col_fs_home,
			orientation="nn"
		},
		
		{--clock
			text=string.format("%02d",ts.hour) .. ":" .. 
			   string.format("%02d",ts.min),
			font_size=25,
			h_align="c",
			y=25,
			x=1790,
			colour=col_logo,
			orientation="nn"
		},

---news
		{
			text=conky_parse"Processus Actifs: $running_processes    Lancés: ${threads}",
			font_size=12,
			h_align="c",
			y=15,
			x=1300,
			colour=col_fs_home,
			orientation="nn"
		},

		{
---news
			text=conky_parse"Utilisation RAM:  $mem / $memmax",
			font_size=12,
			h_align="c",
			y=30,
			x=1300,
			colour=col_fs_home,
			orientation="nn"
		},
			{
---news
			text=conky_parse"Actif depuis: $uptime}",
			font_size=12,
			h_align="c",
			y=15,
			x=1580,
			colour=col_fs_home,
			orientation="nn"
		},
{
---news
			text=conky_parse"Modèle CPU: ${execi 1000 cat /proc/cpuinfo | grep 'model name' | sed -e 's/model name.*: //'| uniq}",
			font_size=12,
			h_align="c",
			y=30,
			x=1580,
			colour=col_fs_home,
			orientation="nn"
		},


		{--date
			text=string.format("%02d",ts.day) .. "/" .. 
    			string.format("%02d",ts.month),
			font_size=25,
			h_align="c",
			y=25,
			x=1875,
			colour={col_logo[1],col_logo[2]},
			orientation="nn"
		},	
		{
			text=conky_parse"${memperc}%",
			font_size=12,
			h_align="l",
			angle=-90,
			y=35,
			x=1033,
			colour=col_cpu4,
			orientation="ee"
		},

		{
			text="cpu 1",
			font_size=12,
			h_align="c",
			y=15,
			x=90,
			colour={{0,col_logo[1][2],col_logo[1][3]},{1,col_logo[2][2],col_logo[2][3]},},
		},	
		{
			text="cpu 2",
			font_size=12,
			h_align="c",
			y=15,
			x=210,
			colour={{0,col_logo[1][2],col_logo[1][3]},{1,col_logo[2][2],col_logo[2][3]},},
		},
		---machine
			
		--{
			--text=conky_parse"${nodename}${machine}",
			---font_size=12,
			--h_align="c",
			--y=25,
			--x=380,
			--colour=col_fs_home,
		--},			 
		{
			text="Root",
			font_size=12,
			h_align="c",
			y=15,
			x=455,
			colour={{0,col_logo[1][2],col_logo[1][3]},{1,col_logo[2][2],col_logo[2][3]},},
		},				
		{
			text="home",
			font_size=12,
			h_align="c",
			y=15,
			x=525,
			colour={{0,col_logo[1][2],col_logo[1][3]},{1,col_logo[2][2],col_logo[2][3]},},
		},				
--[[		{
			text=conky_parse("${addr "..interface.."}"),
			font_size=12,
			h_align="c",
			y=15,
			x=670,
			colour={{0,0x000000,1}},
		},]]

		{
			text="mem",
			font_size=12,
			h_align="c",
			y=15,
			x=969,
			colour={{0,col_logo[1][2],col_logo[1][3]},{1,col_logo[2][2],col_logo[2][3]},},
		},
		{
			text=conky_parse"${top_mem name 1}${top_mem mem 1}%",
			font_size=11,
			h_align="l",
			y=13,
			x=1047,
			colour=col_fs_home,
			orientation="nn",
		},			

		{
			text=conky_parse"${top_mem name 2}${top_mem mem 2}%",
			font_size=10,
			h_align="l",
			y=24,
			x=1047,
			colour=col_logo,
			orientation="nn",
		},
		{
			text=conky_parse"${top_mem name 3}${top_mem mem 3}%",
			font_size=10,
			h_align="l",
			y=35,
			x=1047,
			colour={{0,col_logo[2][2],col_logo[2][3]},{1,col_logo[3][2],col_logo[3][3]},},
			orientation="nn",
		},

---cpu
{
			text=conky_parse"${top name 1}${top cpu 1}%",
			font_size=11,
			h_align="l",
			y=13,
			x=300,
			colour=col_cpu1,
			orientation="nn",
		},			

		{
			text=conky_parse"${top name 2}${top cpu 2}%",
			font_size=10,
			h_align="l",
			y=24,
			x=300,
			colour=col_cpu2,
			orientation="nn",
		},
		{
			text=conky_parse"${top name 3}${top cpu 3}%",
			font_size=10,
			h_align="l",
			y=35,
			x=300,
			colour={{0,col_logo[2][2],col_logo[2][3]},{1,col_logo[3][2],col_logo[3][3]},},
			orientation="nn",
		},								
    }
    

	
 
           
    
    
--------------END OF PARAMETERES----------------
    if conky_window == nil then return end
    if tonumber(conky_parse("$updates"))<5 then return end
       
    local cs = cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, conky_window.width, conky_window.height)

    for i,v in pairs(text_settings) do    
        cr = cairo_create (cs)
        display_text(v)
        cairo_destroy(cr)
    end
    
    cairo_surface_destroy(cs)
    


end

function rgb_to_r_g_b2(tcolour)
    colour,alpha=tcolour[2],tcolour[3]
    return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end

function display_text(t)

    local function set_pattern()
        --this function set the pattern
        if #t.colour==1 then 
            cairo_set_source_rgba(cr,rgb_to_r_g_b2(t.colour[1]))
        else
            local pat
            
            if t.radial==nil then
                local pts=linear_orientation(t,te)
                pat = cairo_pattern_create_linear (pts[1],pts[2],pts[3],pts[4])
            else
                pat = cairo_pattern_create_radial (t.radial[1],t.radial[2],t.radial[3],t.radial[4],t.radial[5],t.radial[6])
            end
        
            for i=1, #t.colour do
                cairo_pattern_add_color_stop_rgba (pat, t.colour[i][1], rgb_to_r_g_b2(t.colour[i]))
            end
            cairo_set_source (cr, pat)
        end
    end
    
    --set default values if needed
    if t.text==nil then t.text="Conky is good for you !" end
    if t.x==nil then t.x = conky_window.width/2 end
    if t.y==nil then t.y = conky_window.height/2 end
    if t.colour==nil then t.colour={{1,0xFFFFFF,1}} end
    if t.font_name==nil then t.font_name="FreeSans" end
    if t.font_size==nil then t.font_size=14 end
    if t.angle==nil then t.angle=0 end
    if t.italic==nil then t.italic=false end
    if t.oblique==nil then t.oblique=false end
    if t.bold==nil then t.bold=false end
    if t.radial ~= nil then
        if #t.radial~=6 then 
            print ("error in radial table")
            t.radial=nil 
        end
    end
    if t.orientation==nil then t.orientation="ww" end
    if t.h_align==nil then t.h_align="l" end
    if t.v_align==nil then t.v_align="b" end    
    if t.reflection_alpha == nil then t.reflection_alpha=0 end
    if t.reflection_length == nil then t.reflection_length=1 end
    if t.reflection_scale == nil then t.reflection_scale=1 end
    if t.skew_x==nil then t.skew_x=0 end
    if t.skew_y==nil then t.skew_y=0 end    
    cairo_translate(cr,t.x,t.y)
    cairo_rotate(cr,t.angle*math.pi/180)
    cairo_save(cr)       
     
 

    local slant = CAIRO_FONT_SLANT_NORMAL
    local weight =CAIRO_FONT_WEIGHT_NORMAL
    if t.italic then slant = CAIRO_FONT_SLANT_ITALIC end
    if t.oblique then slant = CAIRO_FONT_SLANT_OBLIQUE end
    if t.bold then weight = CAIRO_FONT_WEIGHT_BOLD end
    
    cairo_select_font_face(cr, t.font_name, slant,weight)
 
    for i=1, #t.colour do    
        if #t.colour[i]~=3 then 
            print ("error in color table")
            t.colour[i]={1,0xFFFFFF,1} 
        end
    end

    local matrix0 = cairo_matrix_t:create()
    skew_x,skew_y=t.skew_x/t.font_size,t.skew_y/t.font_size
    cairo_matrix_init (matrix0, 1,skew_y,skew_x,1,0,0)
    cairo_transform(cr,matrix0)
    cairo_set_font_size(cr,t.font_size)
    te=cairo_text_extents_t:create()
    cairo_text_extents (cr,t.text,te)
    
    set_pattern()


            
    mx,my=0,0
    
    if t.h_align=="c" then
        mx=-te.width/2
    elseif t.h_align=="r" then
        mx=-te.width
    end
    if t.v_align=="m" then
        my=-te.height/2-te.y_bearing
    elseif t.v_align=="t" then
        my=-te.y_bearing
    end
    cairo_move_to(cr,mx,my)
    
    cairo_show_text(cr,t.text)

     
        
        
   if t.reflection_alpha ~= 0 then 
        local matrix1 = cairo_matrix_t:create()
        cairo_set_font_size(cr,t.font_size)

        cairo_matrix_init (matrix1,1,0,0,-1*t.reflection_scale,0,(te.height+te.y_bearing+my)*(1+t.reflection_scale))
        cairo_set_font_size(cr,t.font_size)
        te=cairo_text_extents_t:create()
        cairo_text_extents (cr,t.text,te)
        
                
        cairo_transform(cr,matrix1)
        set_pattern()
        cairo_move_to(cr,mx,my)
        cairo_show_text(cr,t.text)

        local pat2 = cairo_pattern_create_linear (0,
                                        (te.y_bearing+te.height+my),
                                        0,
                                        te.y_bearing+my)
        cairo_pattern_add_color_stop_rgba (pat2, 0,1,0,0,1-t.reflection_alpha)
        cairo_pattern_add_color_stop_rgba (pat2, t.reflection_length,0,0,0,1)    
        
        
        cairo_set_line_width(cr,1)
        dy=te.x_bearing
        if dy<0 then dy=dy*(-1) end
        cairo_rectangle(cr,mx+te.x_bearing,te.y_bearing+te.height+my,te.width+dy,-te.height*1.05)
        cairo_clip_preserve(cr)
        cairo_set_operator(cr,CAIRO_OPERATOR_CLEAR)
        --cairo_stroke(cr)
        cairo_mask(cr,pat2)
        cairo_pattern_destroy(pat2)
        cairo_set_operator(cr,CAIRO_OPERATOR_OVER)
    end
    
end


function linear_orientation(t,te)
    local w,h=te.width,te.height
    local xb,yb=te.x_bearing,te.y_bearing
    
    if t.h_align=="c" then
        xb=xb-w/2
    elseif t.h_align=="r" then
        xb=xb-w
       end    
    if t.v_align=="m" then
        yb=-h/2
    elseif t.v_align=="t" then
        yb=0
       end    
       
    if t.orientation=="nn" then
        p={xb+w/2,yb,xb+w/2,yb+h}
    elseif t.orientation=="ne" then
        p={xb+w,yb,xb,yb+h}
    elseif t.orientation=="ww" then
        p={xb,h/2,xb+w,h/2}
    elseif vorientation=="se" then
        p={xb+w,yb+h,xb,yb}
    elseif t.orientation=="ss" then
        p={xb+w/2,yb+h,xb+w/2,yb}
    elseif t.orientation=="ee" then
        p={xb+w,h/2,xb,h/2}        
    elseif t.orientation=="sw" then
        p={xb,yb+h,xb+w,yb}
    elseif t.orientation=="nw" then
        p={xb,yb,xb+w,yb+h}
    end
    return p
end  

widget.lua:

 function conky_main()
    dofile ('/home/climatix/.conky/conky30/graph.lua')
    dofile ('/home/climatix/.conky/conky30/text.lua')

    --colors can be changed here or in the lua files above
    --more info in theses files
    --crunchbang logo
    col_logo={{0,0x999999,1},{0.75,0xFFFFFF,1},{1,0x000000,1}}
    --background
    col_bg={{0,0x434343,1},{0.75,0x121212,1},{1,0x000000,1}}
    --cpus
    col_cpu1={{0,0xFFFFFF,1},{0.75,0xFF0000,1},{1,0x5B202C,1}}
    col_cpu2={{0,0xFFFFFF,1},{0.75,0xFFFF00,1},{1,0x5B5A20,1}}
    col_cpu3={{0,0xFFFFFF,1},{0.75,0x00FF00,1},{1,0x205B25,1}}
    col_cpu4={{0,0xFFFFFF,1},{0.75,0x00FFFF,1},{1,0x205B5B,1}}
    --separator
    col_sep ={{0.25,0xFFFFFF,0},{0.50,0xFFFFFF,0.7},{0.75,0xFFFFFF,0}}
    --file system /
    col_fs_sys ={{0,0xFFFFFF,1},{0.75,0xFF00F4,1},{1,0x141950,1}}
    --file system /home    
    col_fs_home={{0,0xFFFFFF,1},{0.75,0xFED308,1},{1,0x6C602B,1}}
    --internet interface with maximun dl and ul speeds
    interface="eth0"
    max_up=200
    max_dl=2000
    --command for temperature and fan
    --cmd_temperature="sensors | grep 'MB Temp' | cut -c22-23"
    --max_temp=60
    --cmd_fan="sensors | grep 'CPU FAN' | cut -c20-23"
    --max_fan=1500

    --call of the two mains functions in the lua files
    conky_main_graph()
    conky_draw_text()

end  

Ouf....c' est peut-être un peu long.:rolleyes:

Hors ligne

#1897 Le 21/10/2012, à 05:42

Didier-T

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

@ ragamatrix,

a priori, il n'y avait pas grand choses, voici les scripts qui devaient poser problèmes, teste, et fait nous un retour, merci.

graph.lua

 --[[ GRAPH widget v1.0 by wlourf (31.10.2010)
	this widget draws some graphs with some effects 
	http://u-scripts.blogspot.com/2010/10/graph-widget.html
	
To call the script in a conky, use, before TEXT
	lua_load /path/to/the/script/graph.lua
	lua_draw_hook_pre main_graph
and add one line (blank or not) after TEXT


Parameters are :
3 parameters are mandatory
name		- the name of the conky variable to display,
			  for example for {$cpu cpu0}, just write name="cpu"
arg			- the argument of the above variable,
			  for example for {$cpu cpu1}, just write arg="cpu1"
		  	  arg can be a numerical value if name=""
max			- the maximum value the above variable can reach,
			  for example for {$cpu cpu1}, just write max=100 or less or more
	
Optional parameters:
x,y 		- coordinates of the bottom-left corner of the graph,
              relative to the top-left corner of the conky window 
			  default =  bottom-left corner of the conky window
width       - width of the graph, default = 100 pixels
height      - height of the graph, default = 20 pixels
nb_values   - number of values to display in the graph, default=width 
              i.e. 1 pixel for 1 value
autoscale   - if set to true, calculate the max valeu of the y axis and
              doesn't use the max parameter above, default=false
skew_x      - skew graph around x axis, défaut = 0
skew_y      - skew graph around y axis, défaut = 0
angle	    - angle of rotation of the graph in degress, default = 0
              i.e. a horizontal graph)
inverse     - if set to true, graph are draw from right to left, default=false
background  - if set to false, background is not drawn, default=true
foreground  - if set to false, foreground is not drawn, default=true
              foreground = plain graph
bg_bd_size  - size of the border of the background, default=0=no border
fg_bd_size  - size of the border of the foreground, default=0=no border


Colours tables below are defined into braces :
{position in the gradient (0 to 1), colour in hexadecimal, alpha (0 to 1)}
example for a single colour table : 
{{0,0xFFAA00,1}} position parameter doesn't matter
example for a two-colours table : 
{{0,0xFFAA00,1},{1,0x00AA00,1}} or {{0.5,0xFFAA00,1},{1,0x00AA00,1}}
example for a three-colours table : 
{{0,0xFFAA00,1},{0.5,0xFF0000,1},{1,0x00AA00,1}}

bg_colour	- colour table for background,
			  default = {{0,0x000000,.5},{1,0xFFFFFF,.5}}
fg_colour	- colour table for foreground,
			  default = {{0,0x00FFFF,1},{1,0x0000FF,1}}
bg_bd_colour- colour table for background border,
			  default = {{1,0xFFFFFF,1}}			  
fg_bd_colour- colour table for foreground border,
			  default = {{1,0xFFFF00,1}}			  

bg_orientation, bg_bd_orientation, fg_orientation, fg_bd_orientation,
        	- "orientation" defines the starting point of the gradient,
        	  default="nn"
			  there are 8 available starting points : 
			  "nw","nn","ne","ee","se","ss","sw","ww"
			  (n for north, w for west ...)
			  theses 8 points are the 4 corners + the 4 middles of graph
			  so a gradient "nn" will go from "nn" to "ss"
			  a gradient "nw" will go from "nw" to "se"


v1.0 (31 Oct. 2010) original release

--      This program is free software; you can redistribute it and/or modify
--      it under the terms of the GNU General Public License as published by
--      the Free Software Foundation version 3 (GPLv3)
--     
--      This program is distributed in the hope that it will be useful,
--      but WITHOUT ANY WARRANTY; without even the implied warranty of
--      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--      GNU General Public License for more details.
--     
--      You should have received a copy of the GNU General Public License
--      along with this program; if not, write to the Free Software
--      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
--      MA 02110-1301, USA.

]]

require 'cairo'

function set_settings()
	graph_settings={
	    
	    {--background
	    name="",
	    arg=0,
	    max=1,
	    x=0,
        y=38,
        width=1920,
        height=40,
        foreground=false,
        bg_colour=col_bg,
	    },
	    
	    {
	    name="cpu",
	    arg="cpu1",
	    max=100,
	    x=42,
        y=36,
        width=100,
        height=32,
        background=false,
        fg_colour=col_cpu1,
	    },
	    {
	    name="cpu",
	    arg="cpu2",
	    max=100,
	    x=162,
        y=36,
        width=100,
        height=32,
        background=false,
        fg_colour=col_cpu2,
	    },
	    
	   -- {--separator
	   -- name="",
	    --arg=1,
	   -- max=1,
	   -- x=522,
       -- y=36,
       -- width=1,
       -- height=32,
       -- foreground=false,
       -- bg_colour=col_sep,
	  --  },	  	    
	    {
	    name="fs_used_perc",
	    arg="/",
	    max=100,
	    x=430,
        y=36,
        width=10,
        height=32,
        nb_values=2,
        fg_colour=col_fs_sys,
        background=false,
	    },
	    {
	    name="fs_used_perc",
	    arg="/home",
	    max=100,
	    x=495,
        y=36,
        width=10,
        height=32,
        nb_values=2,
        fg_colour=col_fs_home,
        background=false,        
	    },
	    --{--separator
	   -- name="",
	   -- arg=1,
	   -- max=1,
	   -- x=588,
       -- y=36,
       -- width=1,
        --height=32,
        --foreground=false,
        --bg_colour=col_sep,
	 --   },
	   {--
	    name="downspeedf",
	    arg="eth0",
	    max=max_dl,
	    autoscale=true,
	    x=594, y=34,
        width=150,
        nb_values=100,
        height=32,
        background=false,
        foreground=false,
        fg_bd_size=0.8,
        fg_bd_colour=col_cpu3,
	    },
	    {--
	    name="upspeedf",
	    arg="eth0",
	    max=max_up,
	    autoscale=true,
	    x=594,y=36,
        width=150,
        nb_values=100,
        height=32,
        background=false,
        foreground=false,
        fg_bd_size=0.8,
        fg_bd_colour=col_cpu1,
	    },
	    --{--separator
	    --name="",
	   -- arg=1,
	   -- max=1,
	   -- x=835,
       -- y=36,
       -- width=1,
        --height=32,
       -- foreground=false,
       -- bg_colour=col_sep,
	    --},
	    
	    --{--separator
	    --name="",
	    --arg=1,
	   -- max=1,
	   -- x=916,
       -- y=36,
        --width=1,
       -- height=32,
        --foreground=false,
        --bg_colour=col_sep,
	  --  },	    
	    {
	    name="memperc",
	    arg="",
	    max=100,
	    x=921,
        y=36,
        width=100,
        nb_values=300,
        height=32,
        background=false,
        fg_colour=col_cpu2,
	    },
	    {--separator
	    name="",
	    arg=1,
	    max=1,
	    x=1040,
        y=36,
        width=1,
        height=32,
        foreground=false,
        bg_colour=col_sep,
	    },
	    {--separator
	    name="",
	    arg=1,
	    max=1,
	    x=1837,
        y=36,
        width=1,
        height=32,
        foreground=false,
        bg_colour=col_sep,
	    },		        	    	    	    		    	    	          	        
       }
end

---END OF PARAMETERS ---

function check_settings(t)
    --tables are check only when conky start
	if t.name==nil and t.arg==nil then 
		print ("No input values ... use parameters 'name'" .. 
			" with 'arg' or only parameter 'arg' ") 
		return 1
	end

	if t.max==nil then
		print ("No maximum value defined, use 'max'")
		print ("for name=" .. t.name .. " with arg=" .. t.arg)
		return 1
	end
	if t.name==nil then t.name="" end
	if t.arg==nil then t.arg="" end
	return 0
end

function conky_main_graph()

    if conky_window == nil then return end
	    
    local w=conky_window.width
    local h=conky_window.height
    local cs=cairo_xlib_surface_create(conky_window.display, 
            conky_window.drawable, conky_window.visual, w, h)
    cr=cairo_create(cs)

    updates=tonumber(conky_parse('${updates}'))
    --start drawing after "updates_gap" updates
    --prevent segmentation error for cpu
    updates_gap=5
    if updates==1 then    
        set_settings()
	    
	    flagOK=0
		for i in pairs(graph_settings) do
			if graph_settings[i].width==nil then graph_settings[i].width=100 end
        	if graph_settings[i].nb_values==nil then  
        	    graph_settings[i].nb_values= graph_settings[i].width
        	end
			--create an empty table to store values
			graph_settings[i]["values"]={}
			--beginning point
			graph_settings[i].beg = graph_settings[i].nb_values
			--graph_settings[i].beg = 0
			for j =1, graph_settings[i].nb_values do
			    graph_settings[i].values[j]=0
			end
		    graph_settings[i].flag_init=true
		    flagOK=flagOK + check_settings(graph_settings[i])

		end
    end

    if flagOK>0 then 
        --abort script if error in one of the tables
        print ("ERROR : Check the graph_setting table")
        return
    end

    --drawing process
    if updates > updates_gap then
		for i in pairs(graph_settings) do
			local nb_values=graph_settings[i].nb_values
			graph_settings[i].automax=0
			for j =1, nb_values do
				if graph_settings[i].values[j+1]==nil then 
				    graph_settings[i].values[j+1]=0 
				end
				
				graph_settings[i].values[j]=graph_settings[i].values[j+1]
				if j==nb_values then
					--store value
					if graph_settings[i].name=="" then
					    value=graph_settings[i].arg
					else
    					value=tonumber(conky_parse('${' .. 
    					    graph_settings[i].name .. " " ..
    					    graph_settings[i].arg ..'}'))
    			    end
					graph_settings[i].values[nb_values]=value
				end
				graph_settings[i].automax=math.max(graph_settings[i].automax,
				                                   graph_settings[i].values[j])
			end
            
			draw_graph(graph_settings[i])
		end
    end

    cairo_destroy(cr)
    cairo_surface_destroy(cs)
    collectgarbage()

end


function draw_graph(t)
    --drawing function

    local function rgb_to_r_g_b(colour)
        return ((colour[2] / 0x10000) % 0x100) / 255., ((colour[2] / 0x100) % 0x100) / 255., (colour[2] % 0x100) / 255., colour[3]
    end
 
	local function linear_orientation(o,w,h)
	    --set gradient for bg and bg border
		if o=="nn" then
			p={w/2,h,w/2,0}
		elseif o=="ne" then
			p={w,h,0,0}
		elseif o=="ww" then
			p={0,h/2,w,h/2}
		elseif o=="se" then
			p={w,0,0,h}
		elseif o=="ss" then
			p={w/2,0,w/2,h}
		elseif o=="ee" then
			p={w,h/2,0,h/2}		
		elseif o=="sw" then
			p={0,0,w,h}
		elseif o=="nw" then
			p={0,h,w,0}
		end
		return p
	end

	local function linear_orientation_inv(o,w,h)
	    --set gradient for fg and fg border
		if o=="ss" then
			p={w/2,h,w/2,0}
		elseif o=="sw" then
			p={w,h,0,0}
		elseif o=="ee" then
			p={0,h/2,w,h/2}
		elseif o=="nw" then
			p={w,0,0,h}
		elseif o=="nn" then
			p={w/2,0,w/2,h}
		elseif o=="ww" then
			p={w,h/2,0,h/2}		
		elseif o=="ne" then
			p={0,0,w,h}
		elseif o=="se" then
			p={0,h,w,0}
		end
		return p
	end
		
	--set default values
	if t.height==nil	then t.height=20 end
	--checked in previous part : width and nb_values
		
	if t.background==nil    then t.background=true end
	if t.bg_bd_size==nil	then t.bg_bd_size=0 end
	if t.x==nil 		    then t.x=t.bg_bd_size end
	if t.y==nil 		    then t.y=conky_window.height -t.bg_bd_size end
	if t.bg_colour==nil 	then t.bg_colour={{0,0x000000,.5},{1,0xFFFFFF,.5}} end
	if t.bg_bd_colour==nil 	then t.bg_bd_colour={{1,0xFFFFFF,1}} end
	
	if t.foreground==nil    then t.foreground=true end
	if t.fg_colour==nil 	then t.fg_colour={{0,0x00FFFF,1},{1,0x0000FF,1}} end
	
	if t.fg_bd_size==nil	then t.fg_bd_size=0 end	
	if t.fg_bd_colour==nil  then t.fg_bd_colour={{1,0xFFFF00,1}} end
	
	if t.autoscale==nil     then t.autoscale=false end
	if t.inverse==nil       then t.inverse=false end
	if t.angle==nil         then t.angle=0 end
	
	if t.bg_bd_orientation==nil then t.bg_bd_orientation="nn" end
	if t.bg_orientation==nil then t.bg_orientation="nn" end
	if t.fg_bd_orientation==nil then t.fg_bd_orientation="nn" end
	if t.fg_orientation==nil then t.fg_orientation="nn" end

    --check colours tables
	for i=1, #t.fg_colour do    
        if #t.fg_colour[i]~=3 then 
        	print ("error in fg_colour table")
        	t.fg_colour[i]={1,0x0000FF,1} 
        end
    end
	
	for i=1, #t.fg_bd_colour do    
        if #t.fg_bd_colour[i]~=3 then 
        	print ("error in fg_bd_colour table")
        	t.fg_bd_colour[i]={1,0x00FF00,1} 
        end
    end
    
	for i=1, #t.bg_colour do    
        if #t.bg_colour[i]~=3 then 
        	print ("error in background color table")
        	t.bg_colour[i]={1,0xFFFFFF,0.5} 
        end
    end    

	for i=1, #t.bg_bd_colour do    
        if #t.bg_bd_colour[i]~=3 then 
        	print ("error in background border color table")
        	t.bg_bd_colour[i]={1,0xFFFFFF,1} 
        end
    end    

    --calculate skew parameters if needed
    if t.flag_init then
	    if t.skew_x == nil then 
		    t.skew_x=0 
	    else
		    t.skew_x = math.pi*t.skew_x/180	
	    end
	    if t.skew_y == nil then 
		    t.skew_y=0
	    else
		    t.skew_y = math.pi*t.skew_y/180	
	    end
	    t.flag_init=false
	end

    cairo_set_line_cap(cr,CAIRO_LINE_CAP_ROUND)
    cairo_set_line_join(cr,CAIRO_LINE_JOIN_ROUND)

    local matrix0 = cairo_matrix_t:create()
    cairo_save(cr)
    cairo_matrix_init (matrix0, 1,t.skew_y,t.skew_x,1,0,0)
    cairo_transform(cr,matrix0)
    
   	local ratio=t.width/t.nb_values

	cairo_translate(cr,t.x,t.y)
	cairo_rotate(cr,t.angle*math.pi/180)
	cairo_scale(cr,1,-1)

	--background
	if t.background then
	    local pts=linear_orientation(t.bg_orientation,t.width,t.height)
		pat = cairo_pattern_create_linear (pts[1],pts[2],pts[3],pts[4])
		for i=1, #t.bg_colour do
			--print ("i",i,t.colour[i][1], rgb_to_r_g_b(t.colour[i]))
		    cairo_pattern_add_color_stop_rgba (pat, t.bg_colour[i][1], rgb_to_r_g_b(t.bg_colour[i]))
		end
		cairo_set_source (cr, pat)
		cairo_rectangle(cr,0,0,t.width,t.height)	
		cairo_fill(cr)	
	end
	
    --autoscale
    cairo_save(cr)
	if t.autoscale then
		t.max= t.automax*1.1
	end
	
    local scale_x = t.width/(t.nb_values-1)
	local scale_y = t.height/t.max
	
    --define first point of the graph
	if updates-updates_gap <t.nb_values then 
		t.beg = t.beg - 1
    	--next line prevent segmentation error when conky window is redraw 
		--quicly when another window "fly" over it
		if t.beg<0 then t.beg=0 end
	else
		t.beg=0
	end
    if t.inverse then cairo_scale(cr,-1,1)
    cairo_translate(cr,-t.width,0) end

	--graph foreground
	if t.foreground then
	    local pts_fg=linear_orientation_inv(t.fg_orientation,t.width,t.height)
	    pat = cairo_pattern_create_linear (pts_fg[1],pts_fg[2],pts_fg[3],pts_fg[4])
		for i=1,#t.fg_colour,1 do
			cairo_pattern_add_color_stop_rgba (pat, 1-t.fg_colour[i][1], rgb_to_r_g_b(t.fg_colour[i]))
		end
		cairo_set_source (cr, pat)

		cairo_move_to(cr,t.beg*scale_x,0)
		cairo_line_to(cr,t.beg*scale_x,t.values[t.beg+1]*scale_y)
		for i=t.beg, t.nb_values-1 do
			cairo_line_to(cr,i*scale_x,t.values[i+1]*scale_y)		
		end
		cairo_line_to(cr,(t.nb_values-1)*scale_x,0)
		cairo_close_path(cr)
		cairo_fill(cr)
	end

	--graph_border
	if t.fg_bd_size>0 then
    	local pts=linear_orientation_inv(t.fg_bd_orientation,t.width,t.height)
		pat = cairo_pattern_create_linear (pts[1],pts[2],pts[3],pts[4])
		for i=1,#t.fg_bd_colour,1 do
			cairo_pattern_add_color_stop_rgba (pat, 1-t.fg_bd_colour[i][1], rgb_to_r_g_b(t.fg_bd_colour[i]))
		end
		cairo_set_source (cr, pat)
		cairo_move_to(cr,t.beg*scale_x,t.values[t.beg+1]*scale_y)
		for i=t.beg, t.nb_values-1 do
			cairo_line_to(cr,i*scale_x,t.values[i+1]*scale_y)		
		end
		cairo_set_line_width(cr,t.fg_bd_size)
		cairo_stroke(cr)
	end
	cairo_restore(cr)

	--background border
	
	if t.bg_bd_size>0 then
    	local pts=linear_orientation(t.bg_bd_orientation,t.width,t.height)
		pat = cairo_pattern_create_linear (pts[1],pts[2],pts[3],pts[4])
		for i=1, #t.bg_bd_colour do
			--print ("i",i,t.colour[i][1], rgb_to_r_g_b(t.colour[i]))
		    cairo_pattern_add_color_stop_rgba (pat, t.bg_bd_colour[i][1], rgb_to_r_g_b(t.bg_bd_colour[i]))
		end
		cairo_set_source (cr, pat)
		cairo_rectangle(cr,0,0,t.width,t.height)	
		cairo_set_line_width(cr,t.bg_bd_size)
		cairo_stroke(cr)	
	end	

	cairo_restore(cr)

end
 

et le text.lua

 
--[[TEXT WIDGET v1.3 by Wlourf 25/06/2010
This widget can drawn texts set in the "text_settings" table with some parameters
http://u-scripts.blogspot.com/2010/06/text-widget.html

The parameters (all optionals) are :
text        - text to display, default = "Conky is good for you"
			  use conky_parse to display conky value ie text=conly_parse("${cpu cpu1}")
            - coordinates below are relative to top left corner of the conky window
x           - x coordinate of first letter (bottom-left), default = center of conky window
y           - y coordinate of first letter (bottom-left), default = center of conky window
h_align		- horizontal alignement of text relative to point (x,y), default="l"
			  available values are "l": left, "c" : center, "r" : right
v_align		- vertical alignment of text relative to point (x,y), default="b"
			  available values "t" : top, "m" : middle, "b" : bottom
font_name   - name of font to use, default = Free Sans
font_size   - size of font to use, default = 14
italic      - display text in italic (true/false), default=false
oblique     - display text in oblique (true/false), default=false (I don' see the difference with italic!)
bold        - display text in bold (true/false), default=false
angle       - rotation of text in degrees, default = 0 (horizontal)
colour      - table of colours for text, default = plain white {{1,0xFFFFFF,1}}
			  this table contains one or more tables with format {P,C,A}
              P=position of gradient (0 = beginning of text, 1= end of text)
              C=hexadecimal colour 
              A=alpha (opacity) of color (0=invisible,1=opacity 100%)
              Examples :
              for a plain color {{1,0x00FF00,0.5}}
              for a gradient with two colours {{0,0x00FF00,0.5},{1,0x000033,1}}
              or {{0.5,0x00FF00,1},{1,0x000033,1}} -with this one, gradient will start in the middle of the text
              for a gradient with three colours {{0,0x00FF00,0.5},{0.5,0x000033,1},{1,0x440033,1}}
			  and so on ...
orientation	- in case of gradient, "orientation" defines the starting point of the gradient, default="ww"
			  there are 8 available starting points : "nw","nn","ne","ee","se","ss","sw","ww"
			  (n for north, w for west ...)
			  theses 8 points are the 4 corners + the 4 middles of text's outline
			  so a gradient "nn" will go from "nn" to "ss" (top to bottom, parallele to text)
			  a gradient "nw" will go from "nw" to "se" (left-top corner to right-bottom corner)
radial		- define a radial gradient (if present at the same time as "orientation", "orientation" will have no effect)
			  this parameter is a table with 6 numbers : {xa,ya,ra,xb,yb,rb}
			  they define two circle for the gradient :
			  xa, ya, xb and yb are relative to x and y values above
reflection_alpha    - add a reflection effect (values from 0 to 1) default = 0 = no reflection
                      other values = starting opacity
reflection_scale    - scale of the reflection (default = 1 = height of text)
reflection_length   - length of reflection, define where the opacity will be set to zero
					  calues from 0 to 1, default =1
skew_x,skew_y    - skew text around x or y axis
			  

Needs conky 1.8.0 

To call this script in the conkyrc, in before-TEXT section:
    lua_load /path/to/the/lua/script/text.lua
    lua_draw_hook_pre draw_text
 
v1.0	07/06/2010, Original release
v1.1	10/06/2010	Add "orientation" parameter
v1.2	15/06/2010  Add "h_align", "v_align" and "radial" parameters
v1.3	25/06/2010  Add "reflection_alpha", "reflection_length", "reflection_scale", 
                    "skew_x" et "skew_y"


]]
require 'cairo'

function conky_draw_text()
	--BEGIN OF PARAMETRES
	ts=os.date("*t")
    text_settings={
		{--crunchbang logo
			text="#!",
			font_size=40,
			bold=true,
			h_align="l",
			v_align="c",
			y=35,
			x=2,
			colour=col_logo,
			orientation="nn"
		},				
		{
			text=conky_parse"${cpu cpu1}%",
			font_size=12,
			h_align="l",
			angle=-90,
			y=35,
			x=155,
			colour=col_cpu1,
			orientation="ee"
		},
		{
			text=conky_parse"${cpu cpu2}%",
			font_size=12,
			h_align="l",
			angle=-90,
			y=35,
			x=275,
			colour=col_cpu2,
			orientation="ee"
		},					
		
		{
			text=conky_parse"${fs_used_perc /}",
			font_size=12,
			h_align="l",
			angle=-90,
			y=35,
			x=452,
			colour=col_fs_sys,
			orientation="ee"
		},	
		{
			text=conky_parse"${fs_used_perc /home}",
			font_size=12,
			h_align="l",
			angle=-90,
			y=35,
			x=520,
			colour=col_fs_home,
			orientation="ee"
		},
		{
			text=conky_parse"${downspeedf eth0}Kb",
			font_size=12,
			h_align="l",
			y=35,
			x=750,
			colour={{0,col_cpu3[2][2],1},{1,0x000000,1}},
			orientation="nn"
		},
		{
			text=conky_parse"${upspeedf eth0}Kb",
			font_size=12,
			h_align="l",
			y=16,
			x=750,
			colour={{0,col_cpu1[2][2],1},{1,0xfffffF,1}},
			orientation="ss"
		},
		
		---cpuinfo
---${execi 99999 cat /proc/cpuinfo | grep "model name" -m1 | cut -d":" -f2 | cut -d" " -f2-}
		{
			text=conky_parse"${kernel}",
			font_size=12,
			h_align="c",
			y=25,
			x=850,
			colour=col_fs_home,
			orientation="nn"
		},
		
		{--clock
			text=string.format("%02d",ts.hour) .. ":" .. 
			   string.format("%02d",ts.min),
			font_size=25,
			h_align="c",
			y=25,
			x=1790,
			colour=col_logo,
			orientation="nn"
		},

---news
		{
			text=conky_parse"Processus Actifs: $running_processes    Lancés: ${threads}",
			font_size=12,
			h_align="c",
			y=15,
			x=1300,
			colour=col_fs_home,
			orientation="nn"
		},

		{
---news
			text=conky_parse"Utilisation RAM:  $mem / $memmax",
			font_size=12,
			h_align="c",
			y=30,
			x=1300,
			colour=col_fs_home,
			orientation="nn"
		},
			{
---news
			text=conky_parse"Actif depuis: $uptime}",
			font_size=12,
			h_align="c",
			y=15,
			x=1580,
			colour=col_fs_home,
			orientation="nn"
		},
{
---news
			text=conky_parse"Modèle CPU: ${execi 1000 cat /proc/cpuinfo | grep 'model name' | sed -e 's/model name.*: //'| uniq}",
			font_size=12,
			h_align="c",
			y=30,
			x=1580,
			colour=col_fs_home,
			orientation="nn"
		},


		{--date
			text=string.format("%02d",ts.day) .. "/" .. 
    			string.format("%02d",ts.month),
			font_size=25,
			h_align="c",
			y=25,
			x=1875,
			colour={col_logo[1],col_logo[2]},
			orientation="nn"
		},	
		{
			text=conky_parse"${memperc}%",
			font_size=12,
			h_align="l",
			angle=-90,
			y=35,
			x=1033,
			colour=col_cpu4,
			orientation="ee"
		},

		{
			text="cpu 1",
			font_size=12,
			h_align="c",
			y=15,
			x=90,
			colour={{0,col_logo[1][2],col_logo[1][3]},{1,col_logo[2][2],col_logo[2][3]},},
		},	
		{
			text="cpu 2",
			font_size=12,
			h_align="c",
			y=15,
			x=210,
			colour={{0,col_logo[1][2],col_logo[1][3]},{1,col_logo[2][2],col_logo[2][3]},},
		},
		---machine
			
		--{
			--text=conky_parse"${nodename}${machine}",
			---font_size=12,
			--h_align="c",
			--y=25,
			--x=380,
			--colour=col_fs_home,
		--},			 
		{
			text="Root",
			font_size=12,
			h_align="c",
			y=15,
			x=455,
			colour={{0,col_logo[1][2],col_logo[1][3]},{1,col_logo[2][2],col_logo[2][3]},},
		},				
		{
			text="home",
			font_size=12,
			h_align="c",
			y=15,
			x=525,
			colour={{0,col_logo[1][2],col_logo[1][3]},{1,col_logo[2][2],col_logo[2][3]},},
		},				
--[[		{
			text=conky_parse("${addr "..interface.."}"),
			font_size=12,
			h_align="c",
			y=15,
			x=670,
			colour={{0,0x000000,1}},
		},]]

		{
			text="mem",
			font_size=12,
			h_align="c",
			y=15,
			x=969,
			colour={{0,col_logo[1][2],col_logo[1][3]},{1,col_logo[2][2],col_logo[2][3]},},
		},
		{
			text=conky_parse"${top_mem name 1}${top_mem mem 1}%",
			font_size=11,
			h_align="l",
			y=13,
			x=1047,
			colour=col_fs_home,
			orientation="nn",
		},			

		{
			text=conky_parse"${top_mem name 2}${top_mem mem 2}%",
			font_size=10,
			h_align="l",
			y=24,
			x=1047,
			colour=col_logo,
			orientation="nn",
		},
		{
			text=conky_parse"${top_mem name 3}${top_mem mem 3}%",
			font_size=10,
			h_align="l",
			y=35,
			x=1047,
			colour={{0,col_logo[2][2],col_logo[2][3]},{1,col_logo[3][2],col_logo[3][3]},},
			orientation="nn",
		},

---cpu
{
			text=conky_parse"${top name 1}${top cpu 1}%",
			font_size=11,
			h_align="l",
			y=13,
			x=300,
			colour=col_cpu1,
			orientation="nn",
		},			

		{
			text=conky_parse"${top name 2}${top cpu 2}%",
			font_size=10,
			h_align="l",
			y=24,
			x=300,
			colour=col_cpu2,
			orientation="nn",
		},
		{
			text=conky_parse"${top name 3}${top cpu 3}%",
			font_size=10,
			h_align="l",
			y=35,
			x=300,
			colour={{0,col_logo[2][2],col_logo[2][3]},{1,col_logo[3][2],col_logo[3][3]},},
			orientation="nn",
		},								
    }
    

	
 
           
    
    
--------------END OF PARAMETERES----------------
    if conky_window == nil then return end
    if tonumber(conky_parse("$updates"))<5 then return end
       
    local cs = cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, conky_window.width, conky_window.height)

    for i,v in pairs(text_settings) do    
        cr = cairo_create (cs)
        display_text(v)
        cairo_destroy(cr)
    end
    
    cairo_surface_destroy(cs)
    collectgarbage()


end

function rgb_to_r_g_b2(tcolour)
    colour,alpha=tcolour[2],tcolour[3]
    return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end

function display_text(t)

    local function set_pattern()
        --this function set the pattern
        if #t.colour==1 then 
            cairo_set_source_rgba(cr,rgb_to_r_g_b2(t.colour[1]))
        else
            local pat
            
            if t.radial==nil then
                local pts=linear_orientation(t,te)
                pat = cairo_pattern_create_linear (pts[1],pts[2],pts[3],pts[4])
            else
                pat = cairo_pattern_create_radial (t.radial[1],t.radial[2],t.radial[3],t.radial[4],t.radial[5],t.radial[6])
            end
        
            for i=1, #t.colour do
                cairo_pattern_add_color_stop_rgba (pat, t.colour[i][1], rgb_to_r_g_b2(t.colour[i]))
            end
            cairo_set_source (cr, pat)
        end
    end
    
    --set default values if needed
    if t.text==nil then t.text="Conky is good for you !" end
    if t.x==nil then t.x = conky_window.width/2 end
    if t.y==nil then t.y = conky_window.height/2 end
    if t.colour==nil then t.colour={{1,0xFFFFFF,1}} end
    if t.font_name==nil then t.font_name="FreeSans" end
    if t.font_size==nil then t.font_size=14 end
    if t.angle==nil then t.angle=0 end
    if t.italic==nil then t.italic=false end
    if t.oblique==nil then t.oblique=false end
    if t.bold==nil then t.bold=false end
    if t.radial ~= nil then
        if #t.radial~=6 then 
            print ("error in radial table")
            t.radial=nil 
        end
    end
    if t.orientation==nil then t.orientation="ww" end
    if t.h_align==nil then t.h_align="l" end
    if t.v_align==nil then t.v_align="b" end    
    if t.reflection_alpha == nil then t.reflection_alpha=0 end
    if t.reflection_length == nil then t.reflection_length=1 end
    if t.reflection_scale == nil then t.reflection_scale=1 end
    if t.skew_x==nil then t.skew_x=0 end
    if t.skew_y==nil then t.skew_y=0 end    
    cairo_translate(cr,t.x,t.y)
    cairo_rotate(cr,t.angle*math.pi/180)
    cairo_save(cr)       
     
 

    local slant = CAIRO_FONT_SLANT_NORMAL
    local weight =CAIRO_FONT_WEIGHT_NORMAL
    if t.italic then slant = CAIRO_FONT_SLANT_ITALIC end
    if t.oblique then slant = CAIRO_FONT_SLANT_OBLIQUE end
    if t.bold then weight = CAIRO_FONT_WEIGHT_BOLD end
    
    cairo_select_font_face(cr, t.font_name, slant,weight)
 
    for i=1, #t.colour do    
        if #t.colour[i]~=3 then 
            print ("error in color table")
            t.colour[i]={1,0xFFFFFF,1} 
        end
    end

    local matrix0 = cairo_matrix_t:create()
    skew_x,skew_y=t.skew_x/t.font_size,t.skew_y/t.font_size
    cairo_matrix_init (matrix0, 1,skew_y,skew_x,1,0,0)
    cairo_transform(cr,matrix0)
    cairo_set_font_size(cr,t.font_size)
    te=cairo_text_extents_t:create()
    cairo_text_extents (cr,t.text,te)
    
    set_pattern()


            
    mx,my=0,0
    
    if t.h_align=="c" then
        mx=-te.width/2
    elseif t.h_align=="r" then
        mx=-te.width
    end
    if t.v_align=="m" then
        my=-te.height/2-te.y_bearing
    elseif t.v_align=="t" then
        my=-te.y_bearing
    end
    cairo_move_to(cr,mx,my)
    
    cairo_show_text(cr,t.text)

     
        
        
   if t.reflection_alpha ~= 0 then 
        local matrix1 = cairo_matrix_t:create()
        cairo_set_font_size(cr,t.font_size)

        cairo_matrix_init (matrix1,1,0,0,-1*t.reflection_scale,0,(te.height+te.y_bearing+my)*(1+t.reflection_scale))
        cairo_set_font_size(cr,t.font_size)
        te=cairo_text_extents_t:create()
        cairo_text_extents (cr,t.text,te)
        
                
        cairo_transform(cr,matrix1)
        set_pattern()
        cairo_move_to(cr,mx,my)
        cairo_show_text(cr,t.text)

        local pat2 = cairo_pattern_create_linear (0,
                                        (te.y_bearing+te.height+my),
                                        0,
                                        te.y_bearing+my)
        cairo_pattern_add_color_stop_rgba (pat2, 0,1,0,0,1-t.reflection_alpha)
        cairo_pattern_add_color_stop_rgba (pat2, t.reflection_length,0,0,0,1)    
        
        
        cairo_set_line_width(cr,1)
        dy=te.x_bearing
        if dy<0 then dy=dy*(-1) end
        cairo_rectangle(cr,mx+te.x_bearing,te.y_bearing+te.height+my,te.width+dy,-te.height*1.05)
        cairo_clip_preserve(cr)
        cairo_set_operator(cr,CAIRO_OPERATOR_CLEAR)
        --cairo_stroke(cr)
        cairo_mask(cr,pat2)
        cairo_pattern_destroy(pat2)
        cairo_set_operator(cr,CAIRO_OPERATOR_OVER)
    end
    
end


function linear_orientation(t,te)
    local w,h=te.width,te.height
    local xb,yb=te.x_bearing,te.y_bearing
    
    if t.h_align=="c" then
        xb=xb-w/2
    elseif t.h_align=="r" then
        xb=xb-w
       end    
    if t.v_align=="m" then
        yb=-h/2
    elseif t.v_align=="t" then
        yb=0
       end    
       
    if t.orientation=="nn" then
        p={xb+w/2,yb,xb+w/2,yb+h}
    elseif t.orientation=="ne" then
        p={xb+w,yb,xb,yb+h}
    elseif t.orientation=="ww" then
        p={xb,h/2,xb+w,h/2}
    elseif vorientation=="se" then
        p={xb+w,yb+h,xb,yb}
    elseif t.orientation=="ss" then
        p={xb+w/2,yb+h,xb+w/2,yb}
    elseif t.orientation=="ee" then
        p={xb+w,h/2,xb,h/2}        
    elseif t.orientation=="sw" then
        p={xb,yb+h,xb+w,yb}
    elseif t.orientation=="nw" then
        p={xb,yb,xb+w,yb+h}
    end
    return p
end

en fait je me suis contenter d'ajouter un collectgarbage() à la fin des fonctions appelées par conky de manière à purger les variables déclarées en Local quand elles deviennes obsolètes.
Donc le script widget.lua ne doit pas poser de problème car il n’emploie pas de variables déclarées en Local, mais il faudra peut être le faire.

Hors ligne

#1898 Le 21/10/2012, à 10:56

ragamatrix

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

@Didier-T
J'ai fais un test et ça fuit toujours.1% au début 16% d'utilisation de ram 2h après en en faisant tourner seulement ce conky...Pas facile la "plomberie Linuxienne" lol

Hors ligne

#1899 Le 21/10/2012, à 13:21

Didier-T

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

je regarderai plus en détails plus tard.

Hors ligne

#1900 Le 21/10/2012, à 13:47

Phyllinux

Re : (4) Conky : Postez vos conkyrc ou certaines parties intéressantes

@ ragamatrix :
Le conky qui m'intéresse, c'est celui avec le suivi des pressions et températures.
Si tu peux le mettre en partage avec un lien, c'est bon.
Pour le moment, j'ai de quoi m'occuper. La mise à niveau de Unity de 12.04 à 12.10 ne s'est pas passée correctement. J'ai perdu mes drivers graphiques, et la définition d'écran n'est plus respectée. De grosses barres noires de chaque côté de l'écran.
Vu que je n'avais pas grand chose à sauvegarder, je vais refaire une install propre, en reformatant le disque...


The ship is sinking normally...

Hors ligne