#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
@ 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
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 :
Un petit conky widget qui me permet de me passer des screenlets.
C'est toujours mieux quand c'est fait maison
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
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
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
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 maisonTu 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é.
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
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
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
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 , 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
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
@ ragamatrix :
Sympa ton bureau avec les différents conkys
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
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 , 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
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 .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 ! Et bonne chance pour ta mise à niveau
Hors ligne
#1888 Le 19/10/2012, à 21:27
- Didier-T
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 ?
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.
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
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
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 ?
Mercitu 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"
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