Come perdere 1 ora dietro ad un programma

← Fili? No grazie     Lavori in corso →

È domenica pomeriggio e decido di rimettere torsmo. Piccolissimo programma che non fa altro che scrivere sullo schermo alcune statistiche come la temperatura della CPU e la velocità del download. A differenza di programmi come gkrellm questo può essere controllato tramite un semplice file di testo, non crea una finestra che svolazza per lo schermo quindi è decisamente meno fastidioso e leggero.

Decido quindi di aprire aptitude e cerco il pacchetto ma stranamente non lo trovo. Dopo pochi secondi google mi informa che lo sviluppo di torsmo è cessato da un bel po' ed ora si chiama conky. Poco male penso. Cerco questo nuovo programma su aptitude. Lo trovo ed in pochi secondi ecco che ho il programma installato. Cosi passano i primi 3 minuti.

Lancio il programma felice come un bambino piccolo la mattina di natale ma una triste realtà mi sorprende pochi nanosecondi dopo che ho lanciato l'eseguibile. SIG11. Il programma no ne vuole sapere di funzionare e va in segfault ogni volta che viene lanciato.

Prima di perdere ore con gdb decido che è il caso di guardare su bugs.debian.org. Qui le informazioni sono piuttosto contrastanti. Ad alcuni sembra andare mentre per altri continua a crashare. Scopro anche che è uscita una nuova versione che dovrebbe risolvere ma non è ancora stata pacchettizata. Scarico i sorgenti del pacchetto Debian e quelli della nuova versione e mi creo un pacchetto .deb su misura. In pochi minuti ho il .deb e decido di provarlo cosi scrivo nella shell conky e premo invio.... Yay!! Funziona. Sono passati circa 10 minuti da quando ho deciso di installarlo e finalmente sembra essere tutto a posto.

I successivi 30 minuti li passo a modificare il file di configurazione e lanciando l'eseguibile circa un centinaio di volte. Ottenendo un buon risultato. Per chi fosse interessato riporto anche il mio file di configurazione.

background yes
use_xft yes
on_bottom yes
xftfont Monospace:size=9
xftalpha 0.6
update_interval 5.0
total_run_times 0
own_window yes
own_window_transparent yes
own_window_colour black
double_buffer yes
minimum_size 280 5
draw_shades no
draw_outline yes
draw_borders no
default_color white
default_shade_color darkgrey
default_outline_color black
alignment bottom_left
gap_x 0
gap_y 32
no_buffers yes
uppercase no
cpu_avg_samples 2
net_avg_samples 2
override_utf8_locale no
use_spacer no
TEXT
$color$nodename ${color grey}- $color$sysname $kernel ${color grey}on $color$machine
${color grey}Uptime:$color $uptime ${color grey}- Load:$color $loadavg
${color grey}CPU Usage:$color $cpu% ${color grey}CPU Temp:$color ${i2c 9191-6000 temp 1}C
${color grey}RAM Usage:$color $mem / $memmax - $memperc%
${color grey}Swap Usage:$color $swap / $swapmax - $swapperc%
${color grey}Networking:
 Down: $color${downspeed eth0} k/s ${color grey}${offset 40}Up: $color${upspeed eth0} k/s
${color grey}File systems:
 /     $color${fs_used /} ${color grey}/$color ${fs_size /}
 ${color grey}/home $color${fs_used /home} ${color grey}/$color ${fs_size /home}

Ora però noto una cosa molto strana. La finestra di conky è completamente nera e viene riportata sia nella taskbar che nel pager di KDE. Queste cose in torsmo non succedevano quindi osservo piuttosto perplesso il schermo.

La soluzione per una parte del problema mi coglie dopo pochi istanti e si chiama kstart. Apro kwrite e scrivo un piccolo script da mettere in .kde/Autostart ma invece di lanciare direttamente conky lo faccio chiamare da kstart specificando che la sua finestra non deve essere riportata ne nella taskbar ne nel pager. Lancio lo script e sorpresa funziona al primo colpo.

Ora mancano circa 5 minuti allo scoccare dell'ora e sto cercando di capire come mai ho questo mascherone nero sul desktop e non viene usato la mia immagine. Sto navigando sul sito di conky e guardando alcuni screenshot quando mi accorgo che tutti usano Fluxbox e finalmente realizzo la sorgente del problema.

Conky legge l'immagine del desktop per creare la falsa trasparenza sempre dalla root di X mentre kde crea una finestra sopra questa root tramite kdesktop. Una volta scoperto la sorgente del problema anche la soluzione mi è ben chiara. Devo trovare un modo per impostare lo sfondo di kde anche nella root. Prima di tutto cerco su google un modo per impostare l'imamgine dello sfondo con un programma e trovo xsetbg. A questo punto mi manca solo il file da usare con questo programma.

È in questo momento che kdcop e dcop si mostrano in tutta la loro magnifica potenza. Tramite kdcop scopro con pochi click quale chiamata devo effettuare per avere il file mentre con dcop riesco ad avere il file nello script che lancia conky. Provo questo piccolo frankenstein e quando vedo che la mia piccola creatura funziona sono piuttosto felice. Guardo l'orologio e mi accogo che è passata un ora e qualche minuto. Poco male spero che questo script possa servire anche ad altri.

#!/bin/sh
WALLPAPER_NAME=`dcop kdesktop KBackgroundIface currentWallpaper 1`
xsetbg $WALLPAPER_NAME
kstart --skippager --skiptaskbar conky

Nessun TrackBack

URL TrackBack: http://www.pigaz.org/cgi-bin/mt/mt-tb.cgi/44

Lascia un Commento