darviniano.eu
IT EN

Finestra radice (root window): come avere uno sfondo leggero ma non inutile.

Passando da un più tradizionale ambiente grafico (Gnome, KDE, Xfce) a un leggerissimo tiling window manager, ci si può trovare inizialmente delusi dalla povertà dello sfondo o la mancanza di diverse comodità che un ambiente di lavoro minimalista inizialmente nasconde.
Iniziamo da estetica ed ergonomia visuale. Esistono molti strumenti per gestirne l'aspetto, ma anche per ridirigere sulla finestra radice l'uscita di programmi di nostro interesse. È per esempio possibile avere la riproduzione di video, gallerie fotografiche con prgrammi molto diffusi come mplayer per i video, e tantissimi (io per ora usa xli) per le foto.

È parimenti possibile avere una proiezione di più astronimico respriro con xplanet, con il quale è possibile realizzare immagini di estremo fascino, e sul quale scriverò una piccola guida appena sarò riuscito a recuperare gli indirizzi delle immagini dei vari oggetti del sistema solare.

Un'altra categoria di strumenti leggeri e potenti sono quelli contenuti, in Debian, nel pacchetto x11-apps, come xclock, xeyes (copiato da widget per kde o altri ambienti grafici) o xrootconsole. Descriverò rapidamente un esempio di questo ultimo programma perché mi ha consentito di ottenere uno sfondo che mi risparmia tempo e da anni desideravo. Come potete vedere dall'immagine seguente Finestra radice ho creato (chiedo scusa per la cattiva scelta dei colori, devo chiedere consiglio a persone più sensibili cromaticamente!) oltre a un'immagine di sfondo (questa è presa degli sfondi del delicatissimo e avvincente gioco Machinarium, in particolare questa) due finestre sullo sfondo che mi riportano gli ultimi messaggi del kernel (finestra in basso) e del sistema di posta (i colori in questo caso sono stati scelti per richiamare quelli di mutt, così da associarli istintivamente a informazioni legate alla posta).
Per creare questa struttura e averla sia in ratpoison che openbox, ho creato questo script bash:

richiamato nei file di configurazione dei (non-)gestori di finestre. Il file dovrebbe avere commenti sufficienti per capire la sua struttura semplice: creazione dei tubi (pipe) ed esecuzione dei comandi condizionata con il loro non essere già in esecuzione. L'unico commento che mi sento di fare è sul ruolo fondamentale delle "&" alla fine dei comandi "tail" e "xrootconsole". Un alternativa sarebbe trovare un'opzione che faccia rilasciare il terminale a questi eseguibili, altrimenti l'esecuzione dello script si blocca su di essi, in attesa che finiscano.

Tasti speciali

Molto importante è l'avere un ambiente di lavoro che ci consenta di compiere le azioni più frequenti con pochi rapidi gesti. A me interessava controllare il canale audio Master e PCM da tastiera. Non solo il Master come è comunemente offerto dalle interfacce grafiche per i mixer come kmix. Ho quindi usato xbindkeys, prendendo spunto da questo paragrafo delle immancabili Guide di Debianizzati.
Ora con un i tasti che X chiama XF86AudioRaiseVolume, XF86AudioLowerVolume e XF86AudioMute, cioè i comuni tasti per il controllo del volume ormai ubiqui sulle tastiere da portatile o da fisso, controllo il canale Master. Se invece li premo con il quarto tasto modificatore ("Mod4" nel file di configurazione sotto collegato), quello cui va appiccicato sopra un adesivo con Tux, controllo il canale PCM.
Il mio file Il problema del volume è solo il primo. Con xbindkeys si possono agevolare molte operazioni con il vantaggio dell'assoluta leggerezza e dell'indipendenza dal gestore di finestre utilizzato. L'importante è inserirlo nei processi avviati da X (inserendo la riga riportata di seguido in .xinitrc) o dal gestore stesso. Io ho optato per questa seconda scelta, inserendo exec xbindkeys -f .xbindkeysrc nell'ultima sezione del mio ratpoisonrc.

(1) Ho scelto di comprimere lo script con gzip per il collegamento al file .sh diretto crea un errore inteno del server. Finché non risolverò questo problema, se possibile, dovrete processarlo con "gunzip" per leggerlo.

GipPasso

Valid XHTML 1.1 Valid CSS!