A mi personalment em cansen de seguida els fons de pantalla, cada dos o tres dies haig de canviar-lo. Però a banda no m’agrada perdre el temps buscant un bon fons d’escriptori, així que em vaig decidir per programar una xicoteta utilitat per al GNOME (que és el gestor de finestres que utilitze) que fes aquesta tasca per mi.
La idea inicial era fer una espècie de daemon que estigués sempre executant-se i que cada cert temps canviés automàticament el fons d’escriptori. Però com que els meus coneixements sobre Python (que és el llenguatge que he utilitzat per programar la utilitat) no són massa extensos, de moment em conforme amb aquesta versió 0.1 del Canvpan.
Com funciona per dins?
Canvpan es connecta a socwall.com i fa una recerca en busca de fonts d’escriptori que complisquen un requisits (especificats en l’arxiu config, bàsicament grandària i categoria). Com que la gent de socwall.com no té disponible cap API per connectar-se a la seva base de dades, com si tenen els de Flickr, el meu programeta ha de filtrar TOT el contingut de l’arxiu HTML generat en el servidor de socwall.com (cosa que el fa lent). Per això utilitze una llibreria que em presenta l’arxiu HTML en un DOM, cosa que facilita enormement la recerca d’enllaços a les imatges que m’interessen.
Les imatges que es troben en la recerca es guarden en una llista i es fa un random entre els elements d’aquesta. L’element elegit es descarregat (amb la funció urlretrieve de la llibreria urllib) i es col·locat com a fons d’escriptori fent ús d’una fantàstica llibreria que incorpora Python per entendre’s amb el GNOME (la llibreria gconf).
I cara a l’usuari?
- Per canviar de fons d’escriptori:
$python canvpan.py change
- Per canviar el directori de descàrrega:
$python canvpan.py dir /nou/directori
- Per canviar la grandària del fons:
$python canvpan.py size [Standard, Widescreen, Dual%20Monitor, All]
- Per canviar la categoria del fons:
$python canvpan.py cat [Everything, Abstract, Anime, Art, Buildings, Computer%20Related, Creatures, Fantasy, Games, Music, Nature, People, Products, Sci-Fi, Seasonal, Space, Sports, Transportation, TV%20and%20Movies]
La configuració per defecte
Arxiu conf:
/home/usuari
Default
Everything
Evidentment hauràs de canviar el directori al teu home o a qualsevol altre lloc on tingues permisos d’escriptura. Allí es crearà l’arxiu .temp_wallpaper.jpg (recordeu que el punt de davant significa que és un arxiu ocult) que contindrà la imatge descarregada de socwall.com.
Per configurar el programeta, utilitzeu els comandaments que he mencionat abans. El programa és molt sensible als salts de línia, espais en blanc i demés, així que si no us voleu arriscar a fer malbé quelcom, utilitzeu els comandaments dir, size i cat. I apunteu a un directori, a una grandària i a una categoria vàlides. Confie en vosaltres ;-).
Pròximes millores
El pròxim que faré (i ja estic fent alguna cosa), quant tinga més temps, és fer-lo més ràpid. Com? Doncs he pensat en guardar en un arxiu la llista amb els enllaços a les imatges de socwall.com i fer un random dels elements d’aquesta llista i eliminar el seleccionat, fins que la llista quede buida i aleshores es torne a carregar de la mateixa forma. Així no hauríem de descarregar la llista d’imatges cada vegada.
Se vos n’acudeix alguna més?
Pegueu-li una miradeta al codi font i perfeccioneu-lo, això si… compartiu-lo amb nosaltres!
Arxius
limxml2dom-0.4.4.tar.gz (Llibreria necessària per llegir l’HTML en DOM).
canvpan.tgz (El meu programeta).

Quina cosa més xula. Pot ser que la pose a l’ordinador.
Per cert, allò de fer d’Olivia és de veritat.
1 | Jesús November 29th, 2007 at 6:27 pmPerò tu tens Linux? De quina corrent filosòfica eres, de la GNU? (Festival del humoooor!)
2 | Joan November 29th, 2007 at 7:12 pmEl de l’Olivia Newton? Si suspenc què?