Difference between revisions of "Conky (Italiano)"
(New page: Category:System Monitor Category:HOWTOs (Italiano) Category:Eye candy (Italiano) {{i18n_links_start}} {{i18n_entry|English|Conky}} {{i18n_entry|Italiano|Conky}} {{i18n_links_en...) |
Kynikos.bot (talk | contribs) (replace old-style direct package links with Pkg/AUR templates) |
||
(41 intermediate revisions by 14 users not shown) | |||
Line 1: | Line 1: | ||
− | [[Category: | + | [[Category:Status monitoring and notification (Italiano)]] |
− | |||
[[Category:Eye candy (Italiano)]] | [[Category:Eye candy (Italiano)]] | ||
− | + | [[en:Conky]] | |
− | + | [[es:Conky]] | |
− | + | [[fr:Conky]] | |
− | + | [[ru:Conky]] | |
− | + | [[tr:Conky]] | |
− | Conky | + | [[zh-CN:Conky]] |
+ | Conky è un monitor di sistema per X. È disponibile per sistemi Gnu/Linux e FreeBSD. ed è un software libero rilasciato con licenza GPL. Conky è in grado di monitorare molte variabili di sistena come CPU, memoria, swap, spazio su disco, temperatura, processi in top, upload, download, messaggi di sistema, e molto altro (tramite script aggiuntivi per es.). É estramamente configurabile, comunque, la configurazione può essere un pò difficile da capire.Conky è un fork di torsmo. | ||
+ | |||
==Installazione & Configurazione== | ==Installazione & Configurazione== | ||
*Conky è fornito dal repo extra di pacman | *Conky è fornito dal repo extra di pacman | ||
# pacman -S conky | # pacman -S conky | ||
− | *Editare il file di configurazione usandone uno di esempio | + | *Editare il file di configurazione usandone uno di esempio reperibile su [http://conky.sourceforge.net/screenshots.html homeproject-screenshot] |
$ nano ~/.conkyrc | $ nano ~/.conkyrc | ||
− | == | + | *In alternativa, è possibile utilizzare la configurazione di default presente in {{ic|/etc/conky/conky.conf}}: |
− | Conky necessita del supporto Double Buffer Extension (DBE) | + | $ cp /etc/conky/conky.conf ~/.conkyrc |
+ | |||
+ | ==Pacchetti AUR== | ||
+ | |||
+ | Oltre al pacchetto conky presente nei repository, in [[AUR (Italiano)|AUR]] sono disponibili vari pacchetti con abilitate diverse opzioni extra di compilazione: | ||
+ | |||
+ | *Installare {{AUR|conky-cli}} per le dipendenze della famiglia di caratteri sans di X11 | ||
+ | *Installare {{AUR|conky-nvidia}} per abilitare il supporto nvidia. | ||
+ | *Installare {{AUR|conky-lua}} per abilitare il supporto lua. | ||
+ | *Installare {{AUR|conky-lua-nv}} per abilitare il supporto nvidia e lua. | ||
+ | |||
+ | ==Suggerimenti== | ||
+ | ===Abilitare la transparenza vera (KDE4)=== | ||
+ | Dalla versione 1.8.0 conky suppporta la transparenza vera. Per abilitarla (e farla funzionare bene con KDE4), aggiungere le seguenti righe a {{ic|~/.conkyrc}}: | ||
+ | own_window yes | ||
+ | own_window_transparent yes | ||
+ | own_window_argb_visual yes | ||
+ | own_window_type normal | ||
+ | own_window_class conky-semi | ||
+ | own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager | ||
+ | Si rimpiazzerà così il metodo feh descritto in seguito. | ||
+ | |||
+ | ===Prevenire lo sfarfallio=== | ||
+ | Conky necessita del supporto Double Buffer Extension (DBE) del server X per prevenire lo sfarfallio, perchè non può aggiornarsi abbastanza velocemente senza di esso. Può essere abilitato tramite {{ic|/etc/X11/xorg.conf}} dalla riga {{Ic|Load "dbe"}} in {{Ic|Section "Module"}}. Il file xorg.conf è stato sostituito (patch 1.8.x) da {{ic|/etc/X11/xorg.conf.d}} che contiene file di configurazioni particolari. ''DBE'' è caricato automaticamente. | ||
+ | |||
+ | Per verificarlo: | ||
+ | # grep dbe /var/log/Xorg.0.log | ||
+ | |||
+ | L'output (si dovrebbe ottenere qualcosa di simile): | ||
+ | # [ 86.101] (II) LoadModule: "dbe" | ||
+ | # [ 86.101] (II) Loading /usr/lib/xorg/modules/extensions/libdbe.so | ||
+ | # [ 86.111] (II) Module dbe: vendor="X.Org Foundation" | ||
+ | |||
+ | Per abilitare il double-buffer assicurarsi di avere in {{ic|~/.conkyrc}}: | ||
+ | # Place below the other options, not below TEXT or XY | ||
double_buffer yes | double_buffer yes | ||
− | ==Integrazione | + | |
− | Conky con la configurazione screenshot di default causa problemi con la visualizzazione delle icone sul desktop. Per evitarlo basta seguire questi semplici passi | + | ===Non minimizzare quando si abilita Mostra Desktop (Compiz)=== |
− | *Aggiungere queste righe a ~/.conkyrc | + | Se premendo "Mostra Desktop" oppure la scorciatoia da tastiera conky viene minimizzato insieme a tutte le altre finestre, aprire il gestore delle impostazioni di compiz, andare su Opzioni Generali e deselezionare l'opzione "Hide Skip Taskbar Windows". |
+ | |||
+ | ===Integrazione con KDesktop=== | ||
+ | Conky con la configurazione screenshot di default causa problemi con la visualizzazione delle icone sul desktop. Per evitarlo basta seguire questi semplici passi: | ||
+ | *Aggiungere queste righe a {{ic|~/.conkyrc}}: | ||
own_window yes | own_window yes | ||
own_window_type normal | own_window_type normal | ||
own_window_transparent yes | own_window_transparent yes | ||
− | own_window_hints undecorated,below,sticky,skip_taskbar, | + | own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager |
− | *Controllare di non avere questa impostazione cancellando la linea o commentandola | + | *Controllare di non avere questa impostazione cancellando la linea o commentandola |
minimum_size | minimum_size | ||
*Creare questo link simbolico per avere conky al login | *Creare questo link simbolico per avere conky al login | ||
− | $ ln -s /usr/bin/conky ~/.kde/Autostart/conkylink | + | $ ln -s /usr/bin/conky ~/.kde/share/autostart/conkylink |
+ | Per KDE4 | ||
+ | $ ln -s /usr/bin/conky ~/.kde4/Autostart/conkylink | ||
*Installare feh | *Installare feh | ||
# pacman -S feh | # pacman -S feh | ||
− | * | + | *Creare uno script per abilitare la trasparenza al desktop |
− | $ nano -w ~/.kde/ | + | Per KDE3 |
+ | $ nano -w ~/.kde/share/autostart/fehconky | ||
#!/bin/bash | #!/bin/bash | ||
feh --bg-scale `dcop kdesktop KBackgroundIface currentWallpaper 1` | feh --bg-scale `dcop kdesktop KBackgroundIface currentWallpaper 1` | ||
− | + | Per KDE4 | |
+ | $ nano -w ~/.kde4/Autostart/fehconky | ||
+ | |||
+ | #!/bin/bash | ||
+ | feh --bg-scale "`grep 'wallpaper=' ~/.kde4/share/config/plasma-desktop-appletsrc | tail --lines=1 | sed 's/wallpaper=//'`" | ||
+ | utilizzare {{Ic|--bg-center}} se si utilizza un wallpaper centrato. | ||
*Renderlo eseguibile | *Renderlo eseguibile | ||
− | $ chmod +x ~/.kde/Autostart/fehconky | + | $ chmod +x ~/.kde/share/autostart/fehconky |
− | * | + | KDE4 |
+ | $ chmod +x ~/.kde4/Autostart/fehconky | ||
+ | *In alternativa, anzichè utilizzare uno script, è possibile aggiungere la linea corrispondente alla fine di {{ic|.conkyrc}} | ||
$ nano ~/.conkyrc | $ nano ~/.conkyrc | ||
+ | Per KDE3 | ||
+ | ${exec feh --bg-scale `dcop kdesktop KBackgroundIface currentWallpaper 1`} | ||
+ | Per KDE4 | ||
+ | ${exec feh --bg-scale "`grep 'wallpaper=' ~/.kde4/share/config/plasma-desktop-appletsrc | tail --lines=1 | sed 's/wallpaper=//'`"} | ||
+ | |||
+ | ===Visualizzare informazioni di aggiornamento del pacchetto=== | ||
+ | *[https://bbs.archlinux.org/viewtopic.php?id=68104 Paconky] - Visualizza informazioni inerenti l'aggiornamento di un pacchetto in un formato definito dall'utente. L'output di questo comando può essere incluso in Conky con il comando ${execpi}. | ||
+ | *[https://bbs.archlinux.org/viewtopic.php?id=53761 Scrolling Notifications] - Visualizza le notifiche degli aggiornamenti e supporta lo scroll. Dall'autore di Paconky. | ||
+ | *[https://bbs.archlinux.org/viewtopic.php?id=57291 Perl Script] - Semplice script dell'autore di Paconky. Visualizza solamente il numero dei pacchetti da aggiornare. | ||
+ | *[https://bbs.archlinux.org/viewtopic.php?id=37284 Python Script] - Notificatore di aggiornamenti scritto in Python ed abbastanza configurabile. | ||
+ | *[https://bbs.archlinux.org/viewtopic.php?pid=483742#p483742 Bash Script] - Script in Bash per utenti che hanno abilitato ShowSize. | ||
+ | |||
+ | ===Visualizzazione previsioni meteo=== | ||
+ | Vedere [https://bbs.archlinux.org/viewtopic.php?id=37381 questa discussione]. | ||
+ | |||
+ | ===Visualizzazione feed RSS=== | ||
+ | Conky ha la possibilità di visualizzare i feed RSS in modo nativo, senza bisogno di eseguire uno script esterno. Ad esempio, per visualizzare i titoli degli ultimi dieci aggiornamenti del Planet di Arch Linux ed aggiornare il feed ogni minuto aggiungere nel proprio {{ic|.conkyrc}} quanto segue: | ||
+ | |||
+ | ${rss https://planet.archlinux.org/rss20.xml 1 item_titles 10 } | ||
+ | |||
+ | ===Visualizzazione ranking Arch Linux su Distrowatch=== | ||
+ | Vedere [https://bbs.archlinux.org/viewtopic.php?id=88779 questa discussione]. | ||
+ | |||
+ | ===Visualizzazione rTorrent=== | ||
+ | Vedere [https://bbs.archlinux.org/viewtopic.php?id=67304 questa discussione]. | ||
+ | |||
+ | ===Visualizzazione numero di nuove email (GMail)=== | ||
+ | Creare, in una directory a piacere (nell'esempio si userà {{ic|~/.scripts/}}), un file chiamato {{ic|gmail.py}} contenente il seguente codice Python: | ||
+ | |||
+ | import os | ||
+ | |||
+ | #Enter your username and password below within double quotes | ||
+ | # eg. username="username" and password="password" | ||
+ | username="****" | ||
+ | password="****" | ||
+ | com="wget -q -O - https://"+username+":"+password+"@mail.google.com/mail/feed/atom --no-check-certificate" | ||
+ | |||
+ | temp=os.popen(com) | ||
+ | msg=temp.read() | ||
+ | index=msg.find("<fullcount>") | ||
+ | index2=msg.find("</fullcount>") | ||
+ | fc=int(msg[index+11:index2]) | ||
− | + | if fc==0: | |
− | == | + | print "0 new" |
− | + | else: | |
− | *[http:// | + | print str(fc)+" new" |
− | + | ||
− | *[ | + | Lo script su riportato non funziona con l'account Google Apps. Occorre quindi modificare il codice [[Python]] come segue: |
− | *[ | + | import os |
+ | |||
+ | #Enter your domain, username and password below within double quotes | ||
+ | # eg. domain="yourdomain.com", username="username" and password="password" | ||
+ | domain="yourdomain.com" | ||
+ | username="username" | ||
+ | password="password" | ||
+ | com="wget -q -O - https://mail.google.com/a/"+domain+"/feed/atom --http-user="+username+"@"+domain+" --http-password="+password+" --no-check-certificate" | ||
+ | |||
+ | temp=os.popen(com) | ||
+ | msg=temp.read() | ||
+ | index=msg.find("<fullcount>") | ||
+ | index2=msg.find("</fullcount>") | ||
+ | fc=int(msg[index+11:index2]) | ||
+ | |||
+ | if fc==0: | ||
+ | print "0 new" | ||
+ | else: | ||
+ | print str(fc)+" new" | ||
+ | |||
+ | Con versioni inferiori di Python3, gli scripts precedenti riporteranno un errore relativo al print. Per risolvere, apportare questa modifica: | ||
+ | if fc==0: | ||
+ | print ("0 new") | ||
+ | else: | ||
+ | print (str(fc)+" new") | ||
+ | |||
+ | Per controllare l'arrivo di nuove mail ogni cinque minuti (300 secondi), aggiungere al proprio {{ic|.conkyrc}} la seguente stringa: ''# new'' | ||
+ | ${execpi 300 python ~/.scripts/gmail.py} | ||
+ | |||
+ | In alternativa, è possibile utilizzare [http://www.stunnel.org/ stunnel]. | ||
+ | pacman -S stunnel | ||
+ | |||
+ | La seguente configurazione è presa dalle [http://conky.sourceforge.net/faq.html FAQ di conky] | ||
+ | |||
+ | Modificare /etc/stunnel/stunnel.conf: | ||
+ | # Service-level configuration for TLS server | ||
+ | [imap] | ||
+ | client = yes | ||
+ | accept = 143 | ||
+ | connect = imap.gmail.com:143 | ||
+ | protocol = imap | ||
+ | sslVersion = TLSv1 | ||
+ | # Service-level configuration for SSL server | ||
+ | [imaps] | ||
+ | client = yes | ||
+ | accept = 993 | ||
+ | connect = imap.gmail.com:993 | ||
+ | |||
+ | ...ed avviare stunnel: | ||
+ | rc.d start stunnel | ||
+ | |||
+ | Ora non resta che conkyrc: | ||
+ | imap localhost username * -i 120 -p 993 | ||
+ | TEXT | ||
+ | Inbox: ${imap_unseen}/${imap_messages} | ||
+ | |||
+ | In questo caso si è assunto * come password per l'avvio di conky, ma non è necessario ''averne'' una. | ||
+ | |||
+ | ===Visualizzazione nuove email (IMAP + SSL)=== | ||
+ | Conky include il supporto per gli accounts IMAP, ma non supporta SSL. Si può ovviare utilizzando lo script presente in [http://www.unix.com/shell-programming-scripting/115322-perl-conky-gmail-imap-unread-message-count.html questo post]. Affinchè tutto funzioni, sono richiesti Perl/CPAN Modules Mail::IMAPClient e IO::Socket::SSL, presenti nei pacchetti perl-mail-imapclient e perl-io-socket-ssl | ||
+ | |||
+ | Creare un file chiamato imap.pl. Aggiungere al suo interno (apportando le opportune modifiche): | ||
+ | #!/usr/bin/perl | ||
+ | |||
+ | # gimap.pl by gxmsgx | ||
+ | # description: get the count of unread messages on imap | ||
+ | |||
+ | use strict; | ||
+ | use Mail::IMAPClient; | ||
+ | use IO::Socket::SSL; | ||
+ | |||
+ | my $username = 'example.username'; | ||
+ | my $password = 'password123'; | ||
+ | |||
+ | my $socket = IO::Socket::SSL->new( | ||
+ | PeerAddr => 'imap.server', | ||
+ | PeerPort => 993 | ||
+ | ) | ||
+ | or die "socket(): $@"; | ||
+ | |||
+ | my $client = Mail::IMAPClient->new( | ||
+ | Socket => $socket, | ||
+ | User => $username, | ||
+ | Password => $password, | ||
+ | ) | ||
+ | or die "new(): $@"; | ||
+ | |||
+ | if ($client->IsAuthenticated()) { | ||
+ | my $msgct; | ||
+ | |||
+ | $client->select("INBOX"); | ||
+ | $msgct = $client->unseen_count||'0'; | ||
+ | print "$msgct\n"; | ||
+ | } | ||
+ | |||
+ | $client->logout(); | ||
+ | |||
+ | Aggiungere al file .conkyrc: | ||
+ | ${execpi 300 ~/.conky/imap.pl} | ||
+ | o la directory contenente il file. | ||
+ | |||
+ | In alternativa, è possibile utilizzare stunnel, come indicato sopra: [[Conky (Italiano)#Visualizzazione numero di nuove email (GMail)]] | ||
+ | |||
+ | == Contributo-Utenti Configurazioni d'esempio== | ||
+ | === Graysky === | ||
+ | [[http://img9.imageshack.us/img9/3153/imageffj.jpg Screen shot]] | ||
+ | |||
+ | [[https://github.com/graysky2/configs/raw/master/dotfiles/.conkyrc Disponibile qui]] - modificarlo per adattarlo al proprio sistema. Ottimizzato per chip quad core w/ e numerosi hdds (anche se uno di essi non è collegato nello screenshot) ed una scheda grafica nvidia. E' possibile modificare facilmente a dual o single core con uno o un qualunque altro numero di hdds. | ||
+ | |||
+ | ==Un semplice script ad anelli con supporto nvidia:== | ||
+ | |||
+ | 1 # -- Conky settings -- # | ||
+ | 2 background no | ||
+ | 3 update_interval 1 | ||
+ | 4 | ||
+ | 5 cpu_avg_samples 2 | ||
+ | 6 net_avg_samples 2 | ||
+ | 7 | ||
+ | 8 override_utf8_locale yes | ||
+ | 9 | ||
+ | 10 double_buffer yes | ||
+ | 11 no_buffers yes | ||
+ | 12 | ||
+ | 13 text_buffer_size 2048 | ||
+ | 14 imlib_cache_size 0 | ||
+ | 15 | ||
+ | 16 # -- Window specifications -- # | ||
+ | 17 | ||
+ | 18 own_window yes | ||
+ | 19 own_window_type normal | ||
+ | 20 own_window_transparent yes | ||
+ | 21 own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below | ||
+ | 22 | ||
+ | 23 border_inner_margin 0 | ||
+ | 24 border_outer_margin 0 | ||
+ | 25 | ||
+ | 26 minimum_size 320 800 | ||
+ | 27 maximum_width 320 | ||
+ | 28 | ||
+ | 29 alignment bottom_right | ||
+ | 30 gap_x 0 | ||
+ | 31 gap_y 0 | ||
+ | 32 | ||
+ | 33 # -- Graphics settings -- # | ||
+ | 34 draw_shades no | ||
+ | 35 draw_outline no | ||
+ | 36 draw_borders no | ||
+ | 37 draw_graph_borders yes | ||
+ | 38 | ||
+ | 39 # -- Text settings -- # | ||
+ | 40 use_xft yes | ||
+ | 41 xftfont MaiandraGD:size=24 | ||
+ | 42 xftalpha 0.4 | ||
+ | 43 | ||
+ | 44 uppercase no | ||
+ | 45 | ||
+ | 46 default_color 888888 | ||
+ | 47 | ||
+ | 48 # -- Lua Load -- # | ||
+ | 49 lua_load ~/conky/lua/lua.lua | ||
+ | 50 lua_draw_hook_pre ring_stats | ||
+ | 51 | ||
+ | 52 TEXT | ||
+ | 53 ${alignr}${voffset 53}${goto 90}${font MaiandraGD:size=11}${time %A, %d %B %Y} | ||
+ | 54 | ||
+ | 55 | ||
+ | 56 ${voffset 5}${goto 164}${font MaiandraGD:size=16}${time %H:%M} | ||
+ | 57 | ||
+ | 58 | ||
+ | 59 | ||
+ | 60 ${voffset -40}${goto 100}${font MaiandraGD:size=9}Kernel:${offset 70}Uptime: | ||
+ | 61 ${goto 90}${font MaiandraGD:size=9}$kernel${offset 40}$uptime | ||
+ | 62 ${voffset 57}${goto 117}${font snap:size=8}${cpu cpu0}% | ||
+ | 63 ${goto 117}${cpu cpu1}% | ||
+ | 64 ${goto 117}CPU | ||
+ | 65 ${voffset 19}${goto 145}${memperc}% | ||
+ | 66 ${goto 145}$swapperc% | ||
+ | 67 ${goto 145}MEM | ||
+ | 68 ${voffset 25}${goto 170}${nvidia gpufreq} | ||
+ | 69 ${goto 170}${nvidia memfreq} | ||
+ | 70 ${goto 170}GPU | ||
+ | 71 ${voffset 27}${goto 198}${totaldown ppp0} | ||
+ | 72 ${goto 198}${totalup ppp0} | ||
+ | 73 ${goto 205}NET | ||
+ | 74 ${voffset 21} | ||
+ | 75 ${goto 222}${fs_used /home} | ||
+ | 76 ${goto 230}DISK | ||
+ | |||
+ | *Ed il relativo script lua.lua: | ||
+ | |||
+ | {{bc|1= | ||
+ | 1 --[[ | ||
+ | 2 Ring Meters by londonali1010 (2009) | ||
+ | 3 | ||
+ | 4 This script draws percentage meters as rings. It is fully customisable; all options are described in the script. | ||
+ | 5 | ||
+ | 6 IMPORTANT: if you are using the 'cpu' function, it will cause a segmentation fault if it tries to draw a ring straight away. The if s tatement on line 145 uses a delay to make sure that this does not happen. It calculates the length of the delay by the number of updat es since Conky started. Generally, a value of 5s is long enough, so if you update Conky every 1s, use update_num > 5 in that if state ment (the default). If you only update Conky every 2s, you should change it to update_num > 3; conversely if you update Conky every 0 .5s, you should use update_num > 10. ALSO, if you change your Conky, is it best to use "killall conky; conky" to update it, otherwise the update_num will not be reset and you will get an error. | ||
+ | 7 | ||
+ | 8 To call this script in Conky, use the following (assuming that you save this script to ~/scripts/rings.lua): | ||
+ | 9 lua_load ~/scripts/rings-v1.2.1.lua | ||
+ | 10 lua_draw_hook_pre ring_stats | ||
+ | 11 | ||
+ | 12 Changelog: | ||
+ | 13 + v1.2.1 -- Fixed minor bug that caused script to crash if conky_parse() returns a nil value (20.10.2009) | ||
+ | 14 + v1.2 -- Added option for the ending angle of the rings (07.10.2009) | ||
+ | 15 + v1.1 -- Added options for the starting angle of the rings, and added the "max" variable, to allow for variables that output a numer ical value rather than a percentage (29.09.2009) | ||
+ | 16 + v1.0 -- Original release (28.09.2009) | ||
+ | 17 ]] | ||
+ | 18 | ||
+ | 19 settings_table = { | ||
+ | 20 { | ||
+ | 21 -- Edit this table to customise your rings. | ||
+ | 22 -- You can create more rings simply by adding more elements to settings_table. | ||
+ | 23 -- "name" is the type of stat to display; you can choose from 'cpu', 'memperc', 'fs_used_perc', 'battery_used_perc'. | ||
+ | 24 name='time', | ||
+ | 25 -- "arg" is the argument to the stat type, e.g. if in Conky you would write ${cpu cpu0}, 'cpu0' would be the argument . If you would not use an argument in the Conky variable, use ''. | ||
+ | 26 arg='%I.%M', | ||
+ | 27 -- "max" is the maximum value of the ring. If the Conky variable outputs a percentage, use 100. | ||
+ | 28 max=12, | ||
+ | 29 -- "bg_colour" is the colour of the base ring. | ||
+ | 30 bg_colour=0x888888, | ||
+ | 31 -- "bg_alpha" is the alpha value of the base ring. | ||
+ | 32 bg_alpha=0.3, | ||
+ | 33 -- "fg_colour" is the colour of the indicator part of the ring. | ||
+ | 34 fg_colour=0x888888, | ||
+ | 35 -- "fg_alpha" is the alpha value of the indicator part of the ring. | ||
+ | 36 fg_alpha=0.5, | ||
+ | 37 -- "x" and "y" are the x and y coordinates of the centre of the ring, relative to the top left corner of the Conky wi ndow. | ||
+ | 38 x=191, y=145, | ||
+ | 39 -- "radius" is the radius of the ring. | ||
+ | 40 radius=32, | ||
+ | 41 -- "thickness" is the thickness of the ring, centred around the radius. | ||
+ | 42 thickness=4, | ||
+ | 43 -- "start_angle" is the starting angle of the ring, in degrees, clockwise from top. Value can be either positive or n egative. | ||
+ | 44 start_angle=0, | ||
+ | 45 -- "end_angle" is the ending angle of the ring, in degrees, clockwise from top. Value can be either positive or negat ive, but must be larger (e.g. more clockwise) than start_angle. | ||
+ | 46 end_angle=360 | ||
+ | 47 }, | ||
+ | 48 { | ||
+ | 49 name='time', | ||
+ | 50 arg='%M.%S', | ||
+ | 51 max=60, | ||
+ | 52 bg_colour=0x888888, | ||
+ | 53 bg_alpha=0.3, | ||
+ | 54 fg_colour=0x888888, | ||
+ | 55 fg_alpha=0.5, | ||
+ | 56 x=191, y=145, | ||
+ | 57 radius=37, | ||
+ | 58 thickness=4, | ||
+ | 59 start_angle=0, | ||
+ | 60 end_angle=360 | ||
+ | 61 }, | ||
+ | 62 { | ||
+ | 63 name='time', | ||
+ | 64 arg='%S', | ||
+ | 65 max=60, | ||
+ | 66 bg_colour=0x888888, | ||
+ | 67 bg_alpha=0.3, | ||
+ | 68 fg_colour=0x888888, | ||
+ | 69 fg_alpha=0.5, | ||
+ | 70 x=191, y=145, | ||
+ | 71 radius=42, | ||
+ | 72 thickness=4, | ||
+ | 73 start_angle=0, | ||
+ | 74 end_angle=360 | ||
+ | 75 }, | ||
+ | 76 { | ||
+ | 77 name='cpu', | ||
+ | 78 arg='cpu0', | ||
+ | 79 max=100, | ||
+ | 80 bg_colour=0x888888, | ||
+ | 81 bg_alpha=0.3, | ||
+ | 82 fg_colour=0x888888, | ||
+ | 83 fg_alpha=0.5, | ||
+ | 84 x=140, y=300, | ||
+ | 85 radius=26, | ||
+ | 86 thickness=5, | ||
+ | 87 start_angle=-90, | ||
+ | 88 end_angle=180 | ||
+ | 89 }, | ||
+ | 90 { | ||
+ | 91 name='cpu', | ||
+ | 92 arg='cpu1', | ||
+ | 93 max=100, | ||
+ | 94 bg_colour=0x888888, | ||
+ | 95 bg_alpha=0.3, | ||
+ | 96 fg_colour=0x888888, | ||
+ | 97 fg_alpha=0.5, | ||
+ | 98 x=140, y=300, | ||
+ | 99 radius=20, | ||
+ | 100 thickness=5, | ||
+ | 101 start_angle=-90, | ||
+ | 102 end_angle=180 | ||
+ | 103 }, | ||
+ | 104 { | ||
+ | 105 name='memperc', | ||
+ | 106 arg='', | ||
+ | 107 max=100, | ||
+ | 108 bg_colour=0x888888, | ||
+ | 109 bg_alpha=0.3, | ||
+ | 110 fg_colour=0x888888, | ||
+ | 111 fg_alpha=0.5, | ||
+ | 112 x=170, y=350, | ||
+ | 113 radius=26, | ||
+ | 114 thickness=5, | ||
+ | 115 start_angle=-90, | ||
+ | 116 end_angle=180 | ||
+ | 117 }, | ||
+ | 118 { | ||
+ | 119 name='swapperc', | ||
+ | 120 arg='', | ||
+ | 121 max=100, | ||
+ | 122 bg_colour=0x888888, | ||
+ | 123 bg_alpha=0.3, | ||
+ | 124 fg_colour=0x888888, | ||
+ | 125 fg_alpha=0.5, | ||
+ | 126 x=170, y=350, | ||
+ | 127 radius=20, | ||
+ | 128 thickness=5, | ||
+ | 129 start_angle=-90, | ||
+ | 130 end_angle=180 | ||
+ | 131 }, | ||
+ | 132 { | ||
+ | 133 name='time', | ||
+ | 134 arg='%d', | ||
+ | 135 max=31, | ||
+ | 136 bg_colour=0x888888, | ||
+ | 137 bg_alpha=0.3, | ||
+ | 138 fg_colour=0x888888, | ||
+ | 139 fg_alpha=0.5, | ||
+ | 140 x=191, y=145, | ||
+ | 141 radius=50, | ||
+ | 142 thickness=5, | ||
+ | 143 start_angle=-140, | ||
+ | 144 end_angle=-30 | ||
+ | 145 }, | ||
+ | 146 { | ||
+ | 147 name='time', | ||
+ | 148 arg='%m', | ||
+ | 149 max=12, | ||
+ | 150 bg_colour=0x888888, | ||
+ | 151 bg_alpha=0.3, | ||
+ | 152 fg_colour=0x888888, | ||
+ | 153 fg_alpha=0.5, | ||
+ | 154 x=191, y=145, | ||
+ | 155 radius=50, | ||
+ | 156 thickness=5, | ||
+ | 157 start_angle=30, | ||
+ | 158 end_angle=140 | ||
+ | 159 }, | ||
+ | 160 -- { | ||
+ | 161 -- name='fs_used_perc', | ||
+ | 162 -- arg='/', | ||
+ | 163 -- max=100, | ||
+ | 164 -- bg_colour=0x888888, | ||
+ | 165 -- bg_alpha=0.3, | ||
+ | 166 -- fg_colour=0x888888, | ||
+ | 167 -- fg_alpha=0.5, | ||
+ | 168 -- x=260, y=503, | ||
+ | 169 -- radius=26, | ||
+ | 170 -- thickness=5, | ||
+ | 171 -- start_angle=-90, | ||
+ | 172 -- end_angle=180 | ||
+ | 173 -- }, | ||
+ | 174 { | ||
+ | 175 name='fs_used_perc', | ||
+ | 176 arg='/home', | ||
+ | 177 max=100, | ||
+ | 178 bg_colour=0x888888, | ||
+ | 179 bg_alpha=0.3, | ||
+ | 180 fg_colour=0x888888, | ||
+ | 181 fg_alpha=0.5, | ||
+ | 182 x=260, y=503, | ||
+ | 183 radius=20, | ||
+ | 184 thickness=5, | ||
+ | 185 start_angle=-90, | ||
+ | 186 end_angle=180 | ||
+ | 187 }, | ||
+ | 188 { | ||
+ | 189 name='totalup', | ||
+ | 190 arg='ppp0', | ||
+ | 191 max=2, | ||
+ | 192 bg_colour=0x888888, | ||
+ | 193 bg_alpha=0.3, | ||
+ | 194 fg_colour=0x888888, | ||
+ | 195 fg_alpha=0.5, | ||
+ | 196 x=230, y=452, | ||
+ | 197 radius=20, | ||
+ | 198 thickness=5, | ||
+ | 199 start_angle=-90, | ||
+ | 200 end_angle=180 | ||
+ | 201 }, | ||
+ | 202 { | ||
+ | 203 name='totaldown', | ||
+ | 204 arg='ppp0', | ||
+ | 205 max=2, | ||
+ | 206 bg_colour=0x888888, | ||
+ | 207 bg_alpha=0.3, | ||
+ | 208 fg_colour=0x888888, | ||
+ | 209 fg_alpha=0.5, | ||
+ | 210 x=230, y=452, | ||
+ | 211 radius=26, | ||
+ | 212 thickness=5, | ||
+ | 213 start_angle=-90, | ||
+ | 214 end_angle=180 | ||
+ | 215 }, | ||
+ | 216 { | ||
+ | 217 name='nvidia', | ||
+ | 218 arg='gpufreq', | ||
+ | 219 max=475, | ||
+ | 220 bg_colour=0x888888, | ||
+ | 221 bg_alpha=0.3, | ||
+ | 222 fg_colour=0x888888, | ||
+ | 223 fg_alpha=0.5, | ||
+ | 224 x=200, y=401, | ||
+ | 225 radius=26, | ||
+ | 226 thickness=5, | ||
+ | 227 start_angle=-90, | ||
+ | 228 end_angle=180 | ||
+ | 229 }, | ||
+ | 230 { | ||
+ | 231 name='nvidia', | ||
+ | 232 arg='memfreq', | ||
+ | 233 max=700, | ||
+ | 234 bg_colour=0x888888, | ||
+ | 235 bg_alpha=0.3, | ||
+ | 236 fg_colour=0x888888, | ||
+ | 237 fg_alpha=0.5, | ||
+ | 238 x=200, y=401, | ||
+ | 239 radius=20, | ||
+ | 240 thickness=5, | ||
+ | 241 start_angle=-90, | ||
+ | 242 end_angle=180 | ||
+ | 243 }, | ||
+ | 244 } | ||
+ | 245 | ||
+ | 246 require 'cairo' | ||
+ | 247 | ||
+ | 248 function rgb_to_r_g_b(colour,alpha) | ||
+ | 249 return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha | ||
+ | 250 end | ||
+ | 251 | ||
+ | 252 function draw_ring(cr,t,pt) | ||
+ | 253 local w,h=conky_window.width,conky_window.height | ||
+ | 254 | ||
+ | 255 local xc,yc,ring_r,ring_w,sa,ea=pt['x'],pt['y'],pt['radius'],pt['thickness'],pt['start_angle'],pt['end_angle'] | ||
+ | 256 local bgc, bga, fgc, fga=pt['bg_colour'], pt['bg_alpha'], pt['fg_colour'], pt['fg_alpha'] | ||
+ | 257 | ||
+ | 258 local angle_0=sa*(2*math.pi/360)-math.pi/2 | ||
+ | 259 local angle_f=ea*(2*math.pi/360)-math.pi/2 | ||
+ | 260 local t_arc=t*(angle_f-angle_0) | ||
+ | 261 | ||
+ | 262 -- Draw background ring | ||
+ | 263 | ||
+ | 264 cairo_arc(cr,xc,yc,ring_r,angle_0,angle_f) | ||
+ | 265 cairo_set_source_rgba(cr,rgb_to_r_g_b(bgc,bga)) | ||
+ | 266 cairo_set_line_width(cr,ring_w) | ||
+ | 267 cairo_stroke(cr) | ||
+ | 268 | ||
+ | 269 -- Draw indicator ring | ||
+ | 270 | ||
+ | 271 cairo_arc(cr,xc,yc,ring_r,angle_0,angle_0+t_arc) | ||
+ | 272 cairo_set_source_rgba(cr,rgb_to_r_g_b(fgc,fga)) | ||
+ | 273 cairo_stroke(cr) | ||
+ | 274 end | ||
+ | 275 | ||
+ | 276 function conky_ring_stats() | ||
+ | 277 local function setup_rings(cr,pt) | ||
+ | 278 local str='' | ||
+ | 279 local value=0 | ||
+ | 280 | ||
+ | 281 str=string.format('${%s %s}',pt['name'],pt['arg']) | ||
+ | 282 str=conky_parse(str) | ||
+ | 283 | ||
+ | 284 value=tonumber(str) | ||
+ | 285 if value == nil then value = 0 end | ||
+ | 286 pct=value/pt['max'] | ||
+ | 287 | ||
+ | 288 draw_ring(cr,pct,p<nowiki><nowiki>Insert non-formatted text here'''Bold text'''</nowiki></nowiki>t) | ||
+ | 289 end | ||
+ | 290 | ||
+ | 291 if conky_window==nil then return end | ||
+ | 292 local cs=cairo_xlib_surface_create(conky_window.display,conky_window.drawable,conky_window.visual, conky_window.width,conky_w indow.height) | ||
+ | 293 | ||
+ | 294 local cr=cairo_create(cs) | ||
+ | 295 | ||
+ | 296 local updates=conky_parse('${updates}') | ||
+ | 297 update_num=tonumber(updates) | ||
+ | 298 | ||
+ | 299 if update_num>5 then | ||
+ | 300 for i in pairs(settings_table) do | ||
+ | 301 setup_rings(cr,settings_table[i]) | ||
+ | 302 end | ||
+ | 303 end | ||
+ | 304 end | ||
+ | ~ | ||
+ | }} | ||
+ | |||
+ | == Una nota inerente i caratteri simbolici == | ||
+ | |||
+ | La maggior parte delle decorazioni presenti nei .conkyrc's utilizzano i caratteri PizzaDude Bullets e Pie Charts for Maps. Essi sono disponibili in AUR, rispettivamente, come 'ttf-pizzadude-bullets' e 'ttf-piechartsformaps', oopure possono essere trovati e scaricati con una rapida ricerca e installati manualmente seguendo le istruzioni presenti in [[Fonts (Italiano)|Fonts]]. | ||
+ | |||
+ | == Universal method to enable true transparency == | ||
+ | |||
+ | La trasparenza è ostica da impostare in Conky, ma c'è un metodo universale per applicare la vera trasparenza con qualsiasi ambiente desktop e gestore di finestre, ossia utilizzando xcompmgr e transset-df. Installare xcompmgr da [extra] e transset-df da [community] con {{Ic|pacman -Sy xcompmgr transset-df}}. Questi pacchetti richiedono le stesse dipendenze, perciò questo è il metodo più leggero per abilitare l'effetto ed è anche, per coloro che utilizzano un gestore di finestre standalone, il più gestibile. | ||
+ | |||
+ | NOTA: Questo potrebbe andare in conflitto con un altro compositing manager già in uso. | ||
+ | |||
+ | Controllare la documentazione di xcompmgr per ottenere informazioni inerenti le opzioni di composite da abilitare. Quanto segue è un comando standard usato comunemente. | ||
+ | |||
+ | {{bc| | ||
+ | xcompmgr -c -t-5 -l-5 -r4.2 -o.55 & | ||
+ | }} | ||
+ | |||
+ | Assicurarsi che Conky sia avviato con {{Ic|conky &}}. Utilizzare transset-df per abilitare la trasparenza sulla finestra di Conky. Impostare '.5' ad ogni valore del range 0 - 1. | ||
+ | |||
+ | {{bc| | ||
+ | transset-df .5 -n Conky | ||
+ | }} | ||
+ | |||
+ | Ciò dovrebbe attivare la trasparenza in Conky. Se si ottiene un errore del genere, | ||
+ | {{hc|$ transset-df .5 -n Conky|No Window matching Conky exists!}} | ||
+ | Verificare che conky sia in esecuzione, utilizzare xprop e cliccare sulla finestra di conky per trovare il nome che si vuole processare con {{Ic|transset-df}}. | ||
+ | {{hc|$ xprop | grep WM_NAME|2=WM_NAME(STRING) = "Conky (ArchitectLinux)"}} | ||
+ | |||
+ | In questo caso, "Conky" è impostato correttamente, ma ciò potrebbe non funzionare su ogni sistema, quindi assicurarsi di utilizzare il valore restituito dal proprio aoutput. Se ~/.conkyrc ha {{Ic|own_window_type panel}} allora l'invocazione di xprop potrebbe mostrare un output. Provare ad utilizzare una delle seguenti opzioni. {{Ic|own_window_type {dock,normal,override,desktop}}} | ||
+ | |||
+ | Aggiungere quanto segue al file ~/.xinitrc pre rendere conky trasparente quando si esegue {{Ic|startx}}. | ||
+ | |||
+ | {{bc| | ||
+ | xcompmgr -c -t-5 -l-5 -r4.2 -o.55 & | ||
+ | conky -d; sleep 1 && transset-df .5 -n Conky | ||
+ | }} | ||
− | [[ | + | == Collegamenti esterni == |
+ | *[https://bbs.archlinux.org/viewtopic.php?id=39906 Configurazioni di conky sul forum di Arch] | ||
+ | *[http://conky.sourceforge.net/ Sito ufficiale] | ||
+ | *[http://freshmeat.net/projects/conky/ Conky] su [[wikipedia:Freshmeat|Freshmeat]] | ||
+ | *[http://sourceforge.net/projects/conky/ Conky] su [[wikipedia:sourceforge.net|SourceForge]] | ||
+ | *[irc://chat.freenode.org/conky #conky] Canale IRC su [[wikipedia:Freenode|freenode]] | ||
+ | *[http://novel.evilcoder.org/wiki/index.php?title=ConkyFAQ&oldid=12463 FAQ] |
Revision as of 08:52, 12 May 2013
zh-CN:Conky Conky è un monitor di sistema per X. È disponibile per sistemi Gnu/Linux e FreeBSD. ed è un software libero rilasciato con licenza GPL. Conky è in grado di monitorare molte variabili di sistena come CPU, memoria, swap, spazio su disco, temperatura, processi in top, upload, download, messaggi di sistema, e molto altro (tramite script aggiuntivi per es.). É estramamente configurabile, comunque, la configurazione può essere un pò difficile da capire.Conky è un fork di torsmo.
Contents
- 1 Installazione & Configurazione
- 2 Pacchetti AUR
- 3 Suggerimenti
- 3.1 Abilitare la transparenza vera (KDE4)
- 3.2 Prevenire lo sfarfallio
- 3.3 Non minimizzare quando si abilita Mostra Desktop (Compiz)
- 3.4 Integrazione con KDesktop
- 3.5 Visualizzare informazioni di aggiornamento del pacchetto
- 3.6 Visualizzazione previsioni meteo
- 3.7 Visualizzazione feed RSS
- 3.8 Visualizzazione ranking Arch Linux su Distrowatch
- 3.9 Visualizzazione rTorrent
- 3.10 Visualizzazione numero di nuove email (GMail)
- 3.11 Visualizzazione nuove email (IMAP + SSL)
- 4 Contributo-Utenti Configurazioni d'esempio
- 5 Un semplice script ad anelli con supporto nvidia:
- 6 Una nota inerente i caratteri simbolici
- 7 Universal method to enable true transparency
- 8 Collegamenti esterni
Installazione & Configurazione
- Conky è fornito dal repo extra di pacman
# pacman -S conky
- Editare il file di configurazione usandone uno di esempio reperibile su homeproject-screenshot
$ nano ~/.conkyrc
- In alternativa, è possibile utilizzare la configurazione di default presente in
/etc/conky/conky.conf
:
$ cp /etc/conky/conky.conf ~/.conkyrc
Pacchetti AUR
Oltre al pacchetto conky presente nei repository, in AUR sono disponibili vari pacchetti con abilitate diverse opzioni extra di compilazione:
- Installare conky-cliAUR per le dipendenze della famiglia di caratteri sans di X11
- Installare conky-nvidiaAUR per abilitare il supporto nvidia.
- Installare conky-luaAUR per abilitare il supporto lua.
- Installare conky-lua-nvAUR per abilitare il supporto nvidia e lua.
Suggerimenti
Abilitare la transparenza vera (KDE4)
Dalla versione 1.8.0 conky suppporta la transparenza vera. Per abilitarla (e farla funzionare bene con KDE4), aggiungere le seguenti righe a ~/.conkyrc
:
own_window yes own_window_transparent yes own_window_argb_visual yes own_window_type normal own_window_class conky-semi own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
Si rimpiazzerà così il metodo feh descritto in seguito.
Prevenire lo sfarfallio
Conky necessita del supporto Double Buffer Extension (DBE) del server X per prevenire lo sfarfallio, perchè non può aggiornarsi abbastanza velocemente senza di esso. Può essere abilitato tramite /etc/X11/xorg.conf
dalla riga Load "dbe"
in Section "Module"
. Il file xorg.conf è stato sostituito (patch 1.8.x) da /etc/X11/xorg.conf.d
che contiene file di configurazioni particolari. DBE è caricato automaticamente.
Per verificarlo:
# grep dbe /var/log/Xorg.0.log
L'output (si dovrebbe ottenere qualcosa di simile):
# [ 86.101] (II) LoadModule: "dbe" # [ 86.101] (II) Loading /usr/lib/xorg/modules/extensions/libdbe.so # [ 86.111] (II) Module dbe: vendor="X.Org Foundation"
Per abilitare il double-buffer assicurarsi di avere in ~/.conkyrc
:
# Place below the other options, not below TEXT or XY double_buffer yes
Non minimizzare quando si abilita Mostra Desktop (Compiz)
Se premendo "Mostra Desktop" oppure la scorciatoia da tastiera conky viene minimizzato insieme a tutte le altre finestre, aprire il gestore delle impostazioni di compiz, andare su Opzioni Generali e deselezionare l'opzione "Hide Skip Taskbar Windows".
Integrazione con KDesktop
Conky con la configurazione screenshot di default causa problemi con la visualizzazione delle icone sul desktop. Per evitarlo basta seguire questi semplici passi:
- Aggiungere queste righe a
~/.conkyrc
:
own_window yes own_window_type normal own_window_transparent yes own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
- Controllare di non avere questa impostazione cancellando la linea o commentandola
minimum_size
- Creare questo link simbolico per avere conky al login
$ ln -s /usr/bin/conky ~/.kde/share/autostart/conkylink
Per KDE4
$ ln -s /usr/bin/conky ~/.kde4/Autostart/conkylink
- Installare feh
# pacman -S feh
- Creare uno script per abilitare la trasparenza al desktop
Per KDE3
$ nano -w ~/.kde/share/autostart/fehconky
#!/bin/bash feh --bg-scale `dcop kdesktop KBackgroundIface currentWallpaper 1`
Per KDE4
$ nano -w ~/.kde4/Autostart/fehconky
#!/bin/bash feh --bg-scale "`grep 'wallpaper=' ~/.kde4/share/config/plasma-desktop-appletsrc | tail --lines=1 | sed 's/wallpaper=//'`"
utilizzare --bg-center
se si utilizza un wallpaper centrato.
- Renderlo eseguibile
$ chmod +x ~/.kde/share/autostart/fehconky
KDE4
$ chmod +x ~/.kde4/Autostart/fehconky
- In alternativa, anzichè utilizzare uno script, è possibile aggiungere la linea corrispondente alla fine di
.conkyrc
$ nano ~/.conkyrc
Per KDE3
${exec feh --bg-scale `dcop kdesktop KBackgroundIface currentWallpaper 1`}
Per KDE4
${exec feh --bg-scale "`grep 'wallpaper=' ~/.kde4/share/config/plasma-desktop-appletsrc | tail --lines=1 | sed 's/wallpaper=//'`"}
Visualizzare informazioni di aggiornamento del pacchetto
- Paconky - Visualizza informazioni inerenti l'aggiornamento di un pacchetto in un formato definito dall'utente. L'output di questo comando può essere incluso in Conky con il comando ${execpi}.
- Scrolling Notifications - Visualizza le notifiche degli aggiornamenti e supporta lo scroll. Dall'autore di Paconky.
- Perl Script - Semplice script dell'autore di Paconky. Visualizza solamente il numero dei pacchetti da aggiornare.
- Python Script - Notificatore di aggiornamenti scritto in Python ed abbastanza configurabile.
- Bash Script - Script in Bash per utenti che hanno abilitato ShowSize.
Visualizzazione previsioni meteo
Vedere questa discussione.
Visualizzazione feed RSS
Conky ha la possibilità di visualizzare i feed RSS in modo nativo, senza bisogno di eseguire uno script esterno. Ad esempio, per visualizzare i titoli degli ultimi dieci aggiornamenti del Planet di Arch Linux ed aggiornare il feed ogni minuto aggiungere nel proprio .conkyrc
quanto segue:
${rss https://planet.archlinux.org/rss20.xml 1 item_titles 10 }
Visualizzazione ranking Arch Linux su Distrowatch
Vedere questa discussione.
Visualizzazione rTorrent
Vedere questa discussione.
Visualizzazione numero di nuove email (GMail)
Creare, in una directory a piacere (nell'esempio si userà ~/.scripts/
), un file chiamato gmail.py
contenente il seguente codice Python:
import os #Enter your username and password below within double quotes # eg. username="username" and password="password" username="****" password="****" com="wget -q -O - https://"+username+":"+password+"@mail.google.com/mail/feed/atom --no-check-certificate" temp=os.popen(com) msg=temp.read() index=msg.find("<fullcount>") index2=msg.find("</fullcount>") fc=int(msg[index+11:index2]) if fc==0: print "0 new" else: print str(fc)+" new"
Lo script su riportato non funziona con l'account Google Apps. Occorre quindi modificare il codice Python come segue:
import os #Enter your domain, username and password below within double quotes # eg. domain="yourdomain.com", username="username" and password="password" domain="yourdomain.com" username="username" password="password" com="wget -q -O - https://mail.google.com/a/"+domain+"/feed/atom --http-user="+username+"@"+domain+" --http-password="+password+" --no-check-certificate" temp=os.popen(com) msg=temp.read() index=msg.find("<fullcount>") index2=msg.find("</fullcount>") fc=int(msg[index+11:index2]) if fc==0: print "0 new" else: print str(fc)+" new"
Con versioni inferiori di Python3, gli scripts precedenti riporteranno un errore relativo al print. Per risolvere, apportare questa modifica:
if fc==0: print ("0 new") else: print (str(fc)+" new")
Per controllare l'arrivo di nuove mail ogni cinque minuti (300 secondi), aggiungere al proprio .conkyrc
la seguente stringa: # new
${execpi 300 python ~/.scripts/gmail.py}
In alternativa, è possibile utilizzare stunnel.
pacman -S stunnel
La seguente configurazione è presa dalle FAQ di conky
Modificare /etc/stunnel/stunnel.conf:
# Service-level configuration for TLS server [imap] client = yes accept = 143 connect = imap.gmail.com:143 protocol = imap sslVersion = TLSv1 # Service-level configuration for SSL server [imaps] client = yes accept = 993 connect = imap.gmail.com:993
...ed avviare stunnel:
rc.d start stunnel
Ora non resta che conkyrc:
imap localhost username * -i 120 -p 993 TEXT Inbox: ${imap_unseen}/${imap_messages}
In questo caso si è assunto * come password per l'avvio di conky, ma non è necessario averne una.
Visualizzazione nuove email (IMAP + SSL)
Conky include il supporto per gli accounts IMAP, ma non supporta SSL. Si può ovviare utilizzando lo script presente in questo post. Affinchè tutto funzioni, sono richiesti Perl/CPAN Modules Mail::IMAPClient e IO::Socket::SSL, presenti nei pacchetti perl-mail-imapclient e perl-io-socket-ssl
Creare un file chiamato imap.pl. Aggiungere al suo interno (apportando le opportune modifiche):
#!/usr/bin/perl # gimap.pl by gxmsgx # description: get the count of unread messages on imap use strict; use Mail::IMAPClient; use IO::Socket::SSL; my $username = 'example.username'; my $password = 'password123'; my $socket = IO::Socket::SSL->new( PeerAddr => 'imap.server', PeerPort => 993 ) or die "socket(): $@"; my $client = Mail::IMAPClient->new( Socket => $socket, User => $username, Password => $password, ) or die "new(): $@"; if ($client->IsAuthenticated()) { my $msgct; $client->select("INBOX"); $msgct = $client->unseen_count||'0'; print "$msgct\n"; } $client->logout();
Aggiungere al file .conkyrc:
${execpi 300 ~/.conky/imap.pl}
o la directory contenente il file.
In alternativa, è possibile utilizzare stunnel, come indicato sopra: Conky (Italiano)#Visualizzazione numero di nuove email (GMail)
Contributo-Utenti Configurazioni d'esempio
Graysky
[Disponibile qui] - modificarlo per adattarlo al proprio sistema. Ottimizzato per chip quad core w/ e numerosi hdds (anche se uno di essi non è collegato nello screenshot) ed una scheda grafica nvidia. E' possibile modificare facilmente a dual o single core con uno o un qualunque altro numero di hdds.
Un semplice script ad anelli con supporto nvidia:
1 # -- Conky settings -- # 2 background no 3 update_interval 1 4 5 cpu_avg_samples 2 6 net_avg_samples 2 7 8 override_utf8_locale yes 9 10 double_buffer yes 11 no_buffers yes 12 13 text_buffer_size 2048 14 imlib_cache_size 0 15 16 # -- Window specifications -- # 17 18 own_window yes 19 own_window_type normal 20 own_window_transparent yes 21 own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below 22 23 border_inner_margin 0 24 border_outer_margin 0 25 26 minimum_size 320 800 27 maximum_width 320 28 29 alignment bottom_right 30 gap_x 0 31 gap_y 0 32 33 # -- Graphics settings -- # 34 draw_shades no 35 draw_outline no 36 draw_borders no 37 draw_graph_borders yes 38 39 # -- Text settings -- # 40 use_xft yes 41 xftfont MaiandraGD:size=24 42 xftalpha 0.4 43 44 uppercase no 45 46 default_color 888888 47 48 # -- Lua Load -- # 49 lua_load ~/conky/lua/lua.lua 50 lua_draw_hook_pre ring_stats 51 52 TEXT 53 ${alignr}${voffset 53}${goto 90}${font MaiandraGD:size=11}${time %A, %d %B %Y} 54 55 56 ${voffset 5}${goto 164}${font MaiandraGD:size=16}${time %H:%M} 57 58 59 60 ${voffset -40}${goto 100}${font MaiandraGD:size=9}Kernel:${offset 70}Uptime: 61 ${goto 90}${font MaiandraGD:size=9}$kernel${offset 40}$uptime 62 ${voffset 57}${goto 117}${font snap:size=8}${cpu cpu0}% 63 ${goto 117}${cpu cpu1}% 64 ${goto 117}CPU 65 ${voffset 19}${goto 145}${memperc}% 66 ${goto 145}$swapperc% 67 ${goto 145}MEM 68 ${voffset 25}${goto 170}${nvidia gpufreq} 69 ${goto 170}${nvidia memfreq} 70 ${goto 170}GPU 71 ${voffset 27}${goto 198}${totaldown ppp0} 72 ${goto 198}${totalup ppp0} 73 ${goto 205}NET 74 ${voffset 21} 75 ${goto 222}${fs_used /home} 76 ${goto 230}DISK
- Ed il relativo script lua.lua:
1 --[[ 2 Ring Meters by londonali1010 (2009) 3 4 This script draws percentage meters as rings. It is fully customisable; all options are described in the script. 5 6 IMPORTANT: if you are using the 'cpu' function, it will cause a segmentation fault if it tries to draw a ring straight away. The if s tatement on line 145 uses a delay to make sure that this does not happen. It calculates the length of the delay by the number of updat es since Conky started. Generally, a value of 5s is long enough, so if you update Conky every 1s, use update_num > 5 in that if state ment (the default). If you only update Conky every 2s, you should change it to update_num > 3; conversely if you update Conky every 0 .5s, you should use update_num > 10. ALSO, if you change your Conky, is it best to use "killall conky; conky" to update it, otherwise the update_num will not be reset and you will get an error. 7 8 To call this script in Conky, use the following (assuming that you save this script to ~/scripts/rings.lua): 9 lua_load ~/scripts/rings-v1.2.1.lua 10 lua_draw_hook_pre ring_stats 11 12 Changelog: 13 + v1.2.1 -- Fixed minor bug that caused script to crash if conky_parse() returns a nil value (20.10.2009) 14 + v1.2 -- Added option for the ending angle of the rings (07.10.2009) 15 + v1.1 -- Added options for the starting angle of the rings, and added the "max" variable, to allow for variables that output a numer ical value rather than a percentage (29.09.2009) 16 + v1.0 -- Original release (28.09.2009) 17 ]] 18 19 settings_table = { 20 { 21 -- Edit this table to customise your rings. 22 -- You can create more rings simply by adding more elements to settings_table. 23 -- "name" is the type of stat to display; you can choose from 'cpu', 'memperc', 'fs_used_perc', 'battery_used_perc'. 24 name='time', 25 -- "arg" is the argument to the stat type, e.g. if in Conky you would write ${cpu cpu0}, 'cpu0' would be the argument . If you would not use an argument in the Conky variable, use . 26 arg='%I.%M', 27 -- "max" is the maximum value of the ring. If the Conky variable outputs a percentage, use 100. 28 max=12, 29 -- "bg_colour" is the colour of the base ring. 30 bg_colour=0x888888, 31 -- "bg_alpha" is the alpha value of the base ring. 32 bg_alpha=0.3, 33 -- "fg_colour" is the colour of the indicator part of the ring. 34 fg_colour=0x888888, 35 -- "fg_alpha" is the alpha value of the indicator part of the ring. 36 fg_alpha=0.5, 37 -- "x" and "y" are the x and y coordinates of the centre of the ring, relative to the top left corner of the Conky wi ndow. 38 x=191, y=145, 39 -- "radius" is the radius of the ring. 40 radius=32, 41 -- "thickness" is the thickness of the ring, centred around the radius. 42 thickness=4, 43 -- "start_angle" is the starting angle of the ring, in degrees, clockwise from top. Value can be either positive or n egative. 44 start_angle=0, 45 -- "end_angle" is the ending angle of the ring, in degrees, clockwise from top. Value can be either positive or negat ive, but must be larger (e.g. more clockwise) than start_angle. 46 end_angle=360 47 }, 48 { 49 name='time', 50 arg='%M.%S', 51 max=60, 52 bg_colour=0x888888, 53 bg_alpha=0.3, 54 fg_colour=0x888888, 55 fg_alpha=0.5, 56 x=191, y=145, 57 radius=37, 58 thickness=4, 59 start_angle=0, 60 end_angle=360 61 }, 62 { 63 name='time', 64 arg='%S', 65 max=60, 66 bg_colour=0x888888, 67 bg_alpha=0.3, 68 fg_colour=0x888888, 69 fg_alpha=0.5, 70 x=191, y=145, 71 radius=42, 72 thickness=4, 73 start_angle=0, 74 end_angle=360 75 }, 76 { 77 name='cpu', 78 arg='cpu0', 79 max=100, 80 bg_colour=0x888888, 81 bg_alpha=0.3, 82 fg_colour=0x888888, 83 fg_alpha=0.5, 84 x=140, y=300, 85 radius=26, 86 thickness=5, 87 start_angle=-90, 88 end_angle=180 89 }, 90 { 91 name='cpu', 92 arg='cpu1', 93 max=100, 94 bg_colour=0x888888, 95 bg_alpha=0.3, 96 fg_colour=0x888888, 97 fg_alpha=0.5, 98 x=140, y=300, 99 radius=20, 100 thickness=5, 101 start_angle=-90, 102 end_angle=180 103 }, 104 { 105 name='memperc', 106 arg=, 107 max=100, 108 bg_colour=0x888888, 109 bg_alpha=0.3, 110 fg_colour=0x888888, 111 fg_alpha=0.5, 112 x=170, y=350, 113 radius=26, 114 thickness=5, 115 start_angle=-90, 116 end_angle=180 117 }, 118 { 119 name='swapperc', 120 arg=, 121 max=100, 122 bg_colour=0x888888, 123 bg_alpha=0.3, 124 fg_colour=0x888888, 125 fg_alpha=0.5, 126 x=170, y=350, 127 radius=20, 128 thickness=5, 129 start_angle=-90, 130 end_angle=180 131 }, 132 { 133 name='time', 134 arg='%d', 135 max=31, 136 bg_colour=0x888888, 137 bg_alpha=0.3, 138 fg_colour=0x888888, 139 fg_alpha=0.5, 140 x=191, y=145, 141 radius=50, 142 thickness=5, 143 start_angle=-140, 144 end_angle=-30 145 }, 146 { 147 name='time', 148 arg='%m', 149 max=12, 150 bg_colour=0x888888, 151 bg_alpha=0.3, 152 fg_colour=0x888888, 153 fg_alpha=0.5, 154 x=191, y=145, 155 radius=50, 156 thickness=5, 157 start_angle=30, 158 end_angle=140 159 }, 160 -- { 161 -- name='fs_used_perc', 162 -- arg='/', 163 -- max=100, 164 -- bg_colour=0x888888, 165 -- bg_alpha=0.3, 166 -- fg_colour=0x888888, 167 -- fg_alpha=0.5, 168 -- x=260, y=503, 169 -- radius=26, 170 -- thickness=5, 171 -- start_angle=-90, 172 -- end_angle=180 173 -- }, 174 { 175 name='fs_used_perc', 176 arg='/home', 177 max=100, 178 bg_colour=0x888888, 179 bg_alpha=0.3, 180 fg_colour=0x888888, 181 fg_alpha=0.5, 182 x=260, y=503, 183 radius=20, 184 thickness=5, 185 start_angle=-90, 186 end_angle=180 187 }, 188 { 189 name='totalup', 190 arg='ppp0', 191 max=2, 192 bg_colour=0x888888, 193 bg_alpha=0.3, 194 fg_colour=0x888888, 195 fg_alpha=0.5, 196 x=230, y=452, 197 radius=20, 198 thickness=5, 199 start_angle=-90, 200 end_angle=180 201 }, 202 { 203 name='totaldown', 204 arg='ppp0', 205 max=2, 206 bg_colour=0x888888, 207 bg_alpha=0.3, 208 fg_colour=0x888888, 209 fg_alpha=0.5, 210 x=230, y=452, 211 radius=26, 212 thickness=5, 213 start_angle=-90, 214 end_angle=180 215 }, 216 { 217 name='nvidia', 218 arg='gpufreq', 219 max=475, 220 bg_colour=0x888888, 221 bg_alpha=0.3, 222 fg_colour=0x888888, 223 fg_alpha=0.5, 224 x=200, y=401, 225 radius=26, 226 thickness=5, 227 start_angle=-90, 228 end_angle=180 229 }, 230 { 231 name='nvidia', 232 arg='memfreq', 233 max=700, 234 bg_colour=0x888888, 235 bg_alpha=0.3, 236 fg_colour=0x888888, 237 fg_alpha=0.5, 238 x=200, y=401, 239 radius=20, 240 thickness=5, 241 start_angle=-90, 242 end_angle=180 243 }, 244 } 245 246 require 'cairo' 247 248 function rgb_to_r_g_b(colour,alpha) 249 return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha 250 end 251 252 function draw_ring(cr,t,pt) 253 local w,h=conky_window.width,conky_window.height 254 255 local xc,yc,ring_r,ring_w,sa,ea=pt['x'],pt['y'],pt['radius'],pt['thickness'],pt['start_angle'],pt['end_angle'] 256 local bgc, bga, fgc, fga=pt['bg_colour'], pt['bg_alpha'], pt['fg_colour'], pt['fg_alpha'] 257 258 local angle_0=sa*(2*math.pi/360)-math.pi/2 259 local angle_f=ea*(2*math.pi/360)-math.pi/2 260 local t_arc=t*(angle_f-angle_0) 261 262 -- Draw background ring 263 264 cairo_arc(cr,xc,yc,ring_r,angle_0,angle_f) 265 cairo_set_source_rgba(cr,rgb_to_r_g_b(bgc,bga)) 266 cairo_set_line_width(cr,ring_w) 267 cairo_stroke(cr) 268 269 -- Draw indicator ring 270 271 cairo_arc(cr,xc,yc,ring_r,angle_0,angle_0+t_arc) 272 cairo_set_source_rgba(cr,rgb_to_r_g_b(fgc,fga)) 273 cairo_stroke(cr) 274 end 275 276 function conky_ring_stats() 277 local function setup_rings(cr,pt) 278 local str= 279 local value=0 280 281 str=string.format('${%s %s}',pt['name'],pt['arg']) 282 str=conky_parse(str) 283 284 value=tonumber(str) 285 if value == nil then value = 0 end 286 pct=value/pt['max'] 287 288 draw_ring(cr,pct,p<nowiki>Insert non-formatted text here'''Bold text'''</nowiki>t) 289 end 290 291 if conky_window==nil then return end 292 local cs=cairo_xlib_surface_create(conky_window.display,conky_window.drawable,conky_window.visual, conky_window.width,conky_w indow.height) 293 294 local cr=cairo_create(cs) 295 296 local updates=conky_parse('${updates}') 297 update_num=tonumber(updates) 298 299 if update_num>5 then 300 for i in pairs(settings_table) do 301 setup_rings(cr,settings_table[i]) 302 end 303 end 304 end ~
Una nota inerente i caratteri simbolici
La maggior parte delle decorazioni presenti nei .conkyrc's utilizzano i caratteri PizzaDude Bullets e Pie Charts for Maps. Essi sono disponibili in AUR, rispettivamente, come 'ttf-pizzadude-bullets' e 'ttf-piechartsformaps', oopure possono essere trovati e scaricati con una rapida ricerca e installati manualmente seguendo le istruzioni presenti in Fonts.
Universal method to enable true transparency
La trasparenza è ostica da impostare in Conky, ma c'è un metodo universale per applicare la vera trasparenza con qualsiasi ambiente desktop e gestore di finestre, ossia utilizzando xcompmgr e transset-df. Installare xcompmgr da [extra] e transset-df da [community] con pacman -Sy xcompmgr transset-df
. Questi pacchetti richiedono le stesse dipendenze, perciò questo è il metodo più leggero per abilitare l'effetto ed è anche, per coloro che utilizzano un gestore di finestre standalone, il più gestibile.
NOTA: Questo potrebbe andare in conflitto con un altro compositing manager già in uso.
Controllare la documentazione di xcompmgr per ottenere informazioni inerenti le opzioni di composite da abilitare. Quanto segue è un comando standard usato comunemente.
xcompmgr -c -t-5 -l-5 -r4.2 -o.55 &
Assicurarsi che Conky sia avviato con conky &
. Utilizzare transset-df per abilitare la trasparenza sulla finestra di Conky. Impostare '.5' ad ogni valore del range 0 - 1.
transset-df .5 -n Conky
Ciò dovrebbe attivare la trasparenza in Conky. Se si ottiene un errore del genere,
$ transset-df .5 -n Conky
No Window matching Conky exists!
Verificare che conky sia in esecuzione, utilizzare xprop e cliccare sulla finestra di conky per trovare il nome che si vuole processare con transset-df
.
$ xprop | grep WM_NAME
WM_NAME(STRING) = "Conky (ArchitectLinux)"
In questo caso, "Conky" è impostato correttamente, ma ciò potrebbe non funzionare su ogni sistema, quindi assicurarsi di utilizzare il valore restituito dal proprio aoutput. Se ~/.conkyrc ha own_window_type panel
allora l'invocazione di xprop potrebbe mostrare un output. Provare ad utilizzare una delle seguenti opzioni. own_window_type {dock,normal,override,desktop
}
Aggiungere quanto segue al file ~/.xinitrc pre rendere conky trasparente quando si esegue startx
.
xcompmgr -c -t-5 -l-5 -r4.2 -o.55 & conky -d; sleep 1 && transset-df .5 -n Conky
Collegamenti esterni
- Configurazioni di conky sul forum di Arch
- Sito ufficiale
- Conky su Freshmeat
- Conky su SourceForge
- #conky Canale IRC su freenode
- FAQ