Functioneel bureaublad
Systeemmonitoring met Conky Eén van de eerste dingen die je misschien doet als je Linux geïnstalleerd hebt, is een leuke bureaubladachtergrond instellen. Met het programma Conky kun je je bureaubladachtergrond ook nog eens nuttig maken. In deze workshop tonen we je de mogelijkheden. Koen Vervloesem
D
e makers van Conky omschrijven het programma als een zogenoemde systeemmonitor. Je kunt er allerlei systeeminformatie mee op je
bureaublad tonen, en dat zowel onder Linux als BSD. Een voordeel van Conky is dat het heel weinig systeembronnen vereist, want het gebruikt geen widgets
maar rendert zijn informatie direct op het X root-venster. Conky is daarom ook te gebruiken op oudere computers of als je een andere desktopomgeving dan Gnome of KDE gebruikt. Conky heeft veel mogelijkheden. Zo kan het onder andere de volgende informatie tonen: • Processorbelasting • Geheugengebruik
Afbeelding 1: Een ultrapersoonlijke Conky-desktop of juist over the top? (bron: conky.linux-hardcore.com)
8
WORKSHOP
Afbeelding 2: Het resultaat van onze basisconfiguratie van Conky
• Swapgebruik • Schijfgebruik • Temperaturen van sensoren • Draaiende processen • Up- en download van netwerkinterfaces • Batterijtoestand • E-mails • Huidige afspelende muziek • Weersvoorspellingen Dit is maar een greep uit de mogelijkheden, want Conky ondersteunt meer dan 250 objecten! Je kunt zelf in het configuratiebestand instellen welke informatie je wilt tonen. Heel wat gebruikers hebben hun eigen configuratiebestanden gemaakt en delen die op internet. Aan het eind van dit artikel geven we enkele links naar inspirende voorbeelden.
Tekstbestand Het slechte nieuws is dat Conky met een tekstbestand geconfigureerd moet worden. Het kost daarom wat tijd om de opbouw van het bestand te leren en alle mogelijke opties te ontdekken. Maar als die drempel eenmaal is genomen, kun je er ongelooflijk flexibele dingen mee doen.
Aan de slag Om te beginnen installeer je natuurlijk Conky op je Linux-systeem. Onder Ubuntu is dat bijvoorbeeld sudo apt-get install conky vanuit de terminal, of je zoekt het pakket op in de pakketbeheerder. Kopieer daarna het bestand /etc/conky/conky.conf naar .conkyrc. Nu kun je dit bestand in je home-directory naar hartenlust aanpas-
sen. Als je iets verkeerds hebt gedaan, kun je het standaardconfiguratiebestand /etc/ conky/conky.conf kopiëren en opnieuw beginnen. Het .conkyrc-bestand bestaat uit twee secties. De eerste sectie bestaat uit instellingen die onder andere het uiterlijk van Conky bepalen. In de tweede sectie configureer je regel per regel welke tekst Conky toont. Daarin kun je variabelen gebruiken die Conky invult met informatie uit je systeem. Beide secties worden afgescheiden door een regel TEXT. Het configuratiebestand is een gewoon tekstbestand dat je in een willekeurige teksteditor kunt aanpassen. Een bruikbaar en vrij volledig voorbeeld van de instellingen is het volgende: alignment top_right background no border_width 1 cpu_avg_samples 2 default_color white default_outline_color white default_shade_color white draw_borders no draw_graph_borders yes draw_outline no draw_shades no font 6x10 gap_x 5 gap_y 60 minimum_size 5 5 net_avg_samples 2 no_buffers yes out_to_console no double_buffer yes own_window yes own_window_type override own_window_transparent yes own_window_hints undecorated,below,sticky,skip_ taskbar,skip_pager stippled_borders 0 update_interval 3.0 uppercase no use_spacer none show_graph_scale no show_graph_range no De meeste instellingen spreken voor zich, en die kun je naar hartenlust wijzigen. Wil je Conky bijvoorbeeld liever in de linkeronderkant zien, dan verander je alignment naar bottom_left. Ook een
9
Configuratietip Als je Conky draait en iets aan het configuratiebestand wilt veranderen, hoef je het programma niet te killen en daarna weer te starten om .conkyrc in te lezen. Voer gewoon het volgende commando in een terminalvenster uit, waarna Conky de nieuwe aangepaste configuratie inleest: killall -HUP conky
elangrijke instelling is update_interval, b die aangeeft om de hoeveel seconden Conky zijn uitvoer aanpast. Drie seconden is een respectabele interval, maar als je de gegevens tot op de seconde wilt zien, dan pas je dit eenvoudig aan. Op de website van Conky vind je alle mogelijke instellingen. Na deze sectie komt zoals gezegd een regel TEXT en daarna de uitvoer met de variabelen. Een basisvoorbeeld is het volgende: TEXT ${scroll 16 $nodename - $sysname $kernel on $machine | } $hr ${color grey}Uptime:$color $uptime ${color grey}Frequency:$color $freq_g GHz ${color grey}RAM Usage:$color $mem/$memmax - $memperc% ${membar 4} ${color grey}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar 4} ${color grey}CPU Usage:$color $cpu% ${cpubar 4} ${color grey}Processes:$color $processes ${color grey} Running:$color $running_processes $hr ${color grey}File systems: / $color${fs_free /}/${fs_size /} ${fs_bar 6 /} ${color grey}Networking: Up:$color ${upspeed eth0} k/s${color grey} - Down:$color ${downspeed eth0} k/s $hr ${color grey}Name PID CPU% MEM% ${color lightgrey} ${top name 1}
${top pid 1} ${top cpu 1} ${top mem 1} ${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2} ${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3} ${color lightgrey} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4} Ook dit is goed te volgen. De namen met het $-teken en eventueel de accolades ({}) zijn variabelen die Conky zelf invult. Als je bijvoorbeeld $mem ingeeft in deze sectie, vult Conky hier de effectieve waarde van het gebruikte geheugen in. Op de website van Conky vind je alle mogelijke variabelen.
Starten maar Heb je een mooie configuratie, start Conky dan door in een terminalvenster conky –d in te typen. Wil je dat Conky automatisch opgestart wordt wanneer je inlogt, dan kun je het toevoegen aan je sessie in Gnome. Ga daarvoor in het menu System -> Preferences -> Sessions, in de tab Startup Programs, klik op Add en vul dan /usr/bin/conky in. Als je geen
desktopomgeving gebruikt, dan voeg je ‘conky –d’ toe aam aan je .xinitrc.
${execi 30 tail -n3 /var/log/ messages | fold -w50}
Eindeloze mogelijkheden
Met execi voer je een commando met een bepaald interval uit (hier is dat 30 seconden). Met tail -n3 vragen we de laatste drie regels van /var/log/messages op, zodat we dit logbestand in het oog kunnen houden. Met fold -w50 zorgen we ervoor dat de uitvoer binnen de 50 tekens breed blijft.
Conky is heel veelzijdig en de mogelijkheden eindeloos. Het is daarom onmogelijk om hiervan een goed overzicht te geven in één artikel. Wel hebben we een paar interessante mogelijkheden uitgelicht, waar we kort op ingaan. De beste manier om Conky te doorgronden is echter door te zoeken naar bestaande configuraties van andere gebruikers en die zelf over te nemen en aan te passen. Op de website Conky Hardcore (http://conky. linux-hardcore.com) zijn heel wat leuke voorbeelden te vinden. Om je inspiratie te prikkelen hebben we dit artikel geïllus treerd met een aantal opvallende Conkyconfiguraties.
Voer een programma uit Als je in Conky informatie wilt tonen die niet door één van de conky-variabelen aangeboden wordt, dan is er een oplossing. Je kunt namelijk de uitvoer van elk programma door Conky laten tonen. Een voorbeeld hiervan:
${execi 3600 fortune -s | fold -w50} Dit is ook een leuk voorbeeld. Om het uur tonen we met het commando fortune -s een korte (de optie -s) spreuk uit de fortune-database. Gebruik je execi, dan moet je wel opletten dat je enkel programma’s uitvoert die onmiddellijk na hun uitvoer stoppen, anders wordt Conky geblokkeerd zolang het programma draait.
Toon je muziek Conky heeft ook een aantal variabelen om de muziek op te vragen die op dit moment wordt afgespeeld in de pro-
Afbeelding 3: Combinatie van elegantie en functionaliteit (bron: blog.brixandersen.dk)
10
WORKSHOP
gramma’s MOC, MPD of XMMS2. Gebruik je een ander muziekprogramma, dan hoef je echter niet te wanhopen. De meeste programma’s bieden zelf een commandline argument aan om deze informatie op te vragen, en die kun je dan met execi alsnog in Conky tonen. Voor Rhythmbox en Exaile is dit bijvoorbeeld: ${execi 10 rhythmbox-client --print-playing --no-start} of ${execi 10 exaile --get-title} -${execi 10 exaile --get-artist}
Toon het weer Om de weersvoorspellingen op je bureaublad te tonen, kun je gebruik maken van het externe scriptje conkyForecast. Onder Ubuntu 9.04 installeer je dit als volgt: wsudo wget -q http://www.kaivalagi. Afbeelding 4: Overdaad schaadt?
com/ubuntu/ppa/m-buck-conky-jaunty. list -O /etc/apt/sources.list.d/mbuck-conky-jaunty.list wget -q http://www.kaivalagi.com/ ubuntu/ppa/m-buck-conky-key.gpg -O| sudo apt-key add sudo apt-get update && sudo apt-get install conkyforecast Daarna registreer je jezelf bij de XOAP-webservice van weather.com. Kopieer daarna het bestand /usr/share/ conkyforecast/conkyForecast.config naar ~/.conkyForecast.config en vul hierin je partner-id en registratiecode van weather. com in. Daarna moet je de locatiecode van je locatie zoeken. Dit kan door je plaats in te vullen in de url http://xoap.weather. com/search/search?where=PLAATS. Je krijgt dan een xml-bestand terug met lijnen loc id=”...” Dit id moet je na --location= ingeven als argument bij het programma conkyForecast in je .conkyrc. Een voorbeeld van hoe dit gaat vind je na installatie van conkyForecast in /usr/ share/conkyforecast/example/conkyrc. Kopieer dit naar je home-directory, pas de locatie aan en kijk welke uitvoer het geeft.
Ongelezen e-mails De auteur van het conkyForecast-script heeft ook een scriptje voor e-mail gemaakt. Dit kan met elke pop3- of imap-server verbinden (zelfs via ssl) om te kijken hoeveel ongelezen e-mails er op de server staan. Onder Ubuntu 9.04 installeer je dit als volgt: sudo wget -q http://www.kaivalagi. com/ubuntu/ppa/m-buck-conky-jaunty. list -O /etc/apt/sources.list.d/mbuck-conky-jaunty.list wget -q http://www.kaivalagi.com/ ubuntu/ppa/m-buck-conky-key.gpg -O| sudo apt-key add sudo apt-get update && sudo apt-get install conkyemail Daarna kun je het programma conkyEmail in je .conkyrc in execi runnen. Voer conkyEmail --help uit om alle argumenten te bekijken. Conky ondersteunt rss al van huis uit. Wil je de titels van de vijf laatste berichten op de website van Linux Magazine op je
11
bureaublad tonen, dan kan dat als volgt: ${rss http://www.linuxmag.nl/index. php?option=com_hubrss&id=1 1 item_titles 5 }
Het juiste lettertype Voor bepaalde doeleinden maakt het veel uit welk lettertype je kiest. Wil je bijvoorbeeld een kalender tonen in Conky door het programma ‘cal’ aan te roepen, gebruik dan een ‘mono’ of ‘fixed width’ lettertype. Doe je dit niet, dan wordt de kalender een rommeltje door een verAfbeelding 5: Sober en functioneel; zo kan het ook
keerde spatiëring. Het lettertype verander je bijvoorbeeld met de volgende regel: ${font LCDMono:size=19} Als je daarna terug naar het standaardlettertype wilt overschakelen, kan dat met: ${font} Aangezien Conky zijn uitvoer op het root-window tekent, kan dit wel eens Afbeelding 6: Vrolijke kleuren met overzichtelijke opmaak
problemen geven met Gnome of KDE. Een oplossing voor Gnome is: open het programma gconf_editor en haal het vinkje weg bij ‘show_desktop’ in /apps/nautilus/ preferences. Maar dan zie je ineens geen icoontjes meer op je bureaublad, wat waarschijnlijk niet je bedoeling is. De volgende instellingen in .conkyrc zouden moeten werken voor Gnome: double_buffer yes own_window yes own_window_type override own_window_transparent yes own_window_hints undecorated,below,sticky,skip_ taskbar,skip_pager
In je .conkyrc geef je dan het volgende in: own_window_title conky Zo zorg je ervoor dat je Conky-venster geen Compiz-schaduwen krijgt.
Eigen bureaublad Met Conky kun je van je bureaublad echt een eigen creatie maken, die nog nuttig is ook. Met de basis van dit artikel en de online documentatie kom je vast op goede ideeën om de informatie die jij belangrijk vindt op je bureaublad te tonen. Laat je inspireren door de voorbeelden uit dit artikel en kijk vooral eens rond op de website Conky Hardcore. «
Voor KDE zou dit moeten werken: double_buffer yes own_window yes own_window_hints undecorated,below,skip_taskbar background yes En voor Xfce dit: double_buffer yes own_window yes own_window_type override own_window_transparent yes Voor double_buffer moet X wel de double buffer extension laden. Normaal gebeurt dat standaard, maar indien niet dan kun je in de sectie Module van /etc/X11/xorg. conf de volgende regel toevoegen: Load “dbe” Een andere oplossing is om Conky niet op het root-window te tonen maar in een eigen venster. Dit kan met het argument -o of door ‘own_window yes’ aan .conkyrc toe te voegen. Lees dan in de man-pagina of de online documentatie zeker ook de uitleg bij de instellingen voor own_window_type. Gebruik je de visuele effecten van Compiz, dan kan er nog iets misgaan, zoals schaduwen rond het Conky-venster. Om dit tegen te gaan open je de Window Decoration-voorkeuren in de instellingen van Compiz en geef je bij ‘Shadow windows’ het volgende in: !(title=conky)
12
Nuttige links Conky http://conky.sourceforge.net Conky screenshots http://conky.sourceforge.net/screenshots.html Conky documentatie http://conky.sourceforge.net/docs.html Conky instellingen http://conky.sourceforge.net/config_ settings.html Conky variabelen http://conky.sourceforge.net/variables. html Conky FAQ http://conky.sourceforge.net/faq.html Honderden conkyrc’s voor Ubuntu http://ubuntuforums.org/showthread. php?p=1645914 Conky Hardcore http://conky.linux-hardcore.com ConkyForecast http://ubuntuforums.org/showthread. php?t=869328 ConkyEmail http://ubuntuforums.org/showthread. php?t=869771 Weather.com XOAP-registratie www.weather.com/services/xmloap. html