May 282011
 

xmonad Vi presento oggi questo utilissimo articolo che introduce Xmonad, un windows manager alternativo, l’articolo è di Fabio Viola e lo trovate insieme a molti altri articoli interessantissimi sulla pagina del SaLUG Journal, l’articolo è rilasciato sotto GNU Free Documentation License.

La settimana scorsa in quel di Bologna ho avuto il piacere di conoscere un geek padovano, un ragazzo in gambissima con il quale ho poi scambiato quattro chiacchiere.

Mi ha fatto conoscere un progetto interessantissimo, si tratta di xmonad. Sul sito ufficiale[0] e’ presente una frase che o vi colpisce e vi porta a divorare ogni pagina della documentazione o vi fa chiudere in un batti baleno la scheda del browser: “In a normal WM, you spend half your time aligning and searching for windows.” Se vi riconoscete in questa frase allora xmonad e’ cio’ che fa per voi. Di cosa si tratta?

Di un window manager intelligente scritto in Haskell la cui peculiarita’ principale e’ quella di posizionare automaticamente le finestre senza sovrapposizioni. Xmonad ha numerosi vantaggi (che reperiamo gia’ nella homepage del progetto): tiling delle finestre, minimalismo, stabilita’ (e avendolo provato intensamente posso confermare), estendibilita’, molte feature (ad esempio supporta xinerama), semplicita’, supporto…



HintedGridTrue

Prendere confidenza con l’ambiente

Spulciate il vostro gestore di pacchetti, trovate xmonad ed installatelo per iniziare subito un tour in questo interessantissimo wm! Appena avviato, xmonad non vi mostrera’ altro che uno schermo nero… Nessun crash, e’ tutto nella norma… Potete avviare un terminale con mod­shift­ return (su xmonad mod e’ normalmente il tasto alt, ma cio’ puo’ essere modificato tramite il
file di configurazione). Iterate un po’ e osservate come vengono posizionati i nuovi terminali…

Di default xmonad divide lo schermo in due pane, uno master (sulla sinistra) ed uno secondario (sulla destra). Se abbiamo soltanto due finestre, queste occuperanno ognuna un pane. Non appena ne creiamo di nuove, queste andranno ad occupare il pane secondario, spartendolo con le altre finestre gia’ presenti. Nel master pane rimarra’ dunque sempre una sola finestra a meno che non utilizziate mod+, o mod­. che permettono di aumentare o diminuire il numero di finestre in quell’area. Questo e’ uno dei layout proposti, ma ve ne sono altri fra i quali possiamo ciclare ogni volta che lo vogliamo con mod­space. Esistono anche altri algoritmi di posizionamento delle finestre che possono essere creati e/o adoperati dal file di configurazione (ma non ci soffermeremo su questo).

Spostare e ridimensionare finestre e’ tuttavia possibile anche su window manager cosi’ particolare. Possiamo spostare una finestra al posto di quella nel master pane con mod­return o al posto di quella superiore/inferiore con mod­shift­j / mod­shift­k.

Quanto a ridimensionare le finestre possiamo ingrandirle/rimpicciolirle adoperando le shortcut mod­h (h come higher) e mod­l (l come lower).

Anche xmonad permette di usare piu’ desktop.
Di default ne abbiamo 9. mod­[1..9] è la scorciatoia per accedere al desktop desiderato. Le numerose shortcut son ricapitolate nei comodi cheatsheet[1]. Dopo aver visto le shortcut basilari per muoversi all’interno di xmonad siam pronti a scoprire qualcosa di piu’.
Xmonad-screen-comp-xfce

Configurare xmonad

xmonad viene configurato tramite il file ~/.xmonad/xmonad.hs. Se non e’ presente verranno usate le impostazioni di default. Ogni modifica effettuata al suddetto file (a wm avviato) potra’ essere ricaricata tramite la shortcut mod­q. Non e’ frequentissimo imbattersi in Haskell, percio’ se come me non l’avete mai utilizzato vi conviene dare uno sguardo a [2] prima di iniziare a smanettarci. Son semplici regole di sintassi. Errori nel file di configurazione possono essere individuati con:

$ xmonad –recompile

Possiamo scrivere un file di configurazione di xmonad inserendo soltanto le righe che siamo intenzionati a variare un rispetto al setup originale, ad esempio:

import XMonad
main = xmonad defaultConfig
{
terminal = "urxvt"
}

che utilizziamo per impostare il nostro terminale su urxvt. Ma come facciamo a conoscere tutti i parametri con i quali possiamo giocare? Un modo e’ quello di cercare il template online [3].

Potremo cercare le voci di interesse li’ oppure adoperare direttamente quel template come file di configurazione ed avere dunque sempre a portata di mano tutte le opzioni.

xmonad

Floating windows

Xmonad supporta le finestre volanti. Alcune finestre infatti possono essere posizionate al di sopra delle altre, su un livello a se’ stante. Mod­button1 consente di rendere flottante una finestra e di trascinarla, al contrario mod­t re­inserisce una finestra all’interno del classico layout usato da xmonad. Un caso in cui per esempio le floating window sono utili e’ quello di mplayer…

Conclusione

Per chi e’ un fanatico della tastiera e metterebbe sulla brace i mouse e simil­mouse, questo window manager e’ sicuramente la scelta migliore. Ho sempre ritenuto fluxbox il top e son sempre stato innamorato pazzo di quell’ambiente cosi’ scarno, ma xmonad sembra esser ancor piu’ adatto alle mie esigenze… Il tempo dira’ se e’ vero amore :­)

Concludendo, siete curiosi di provare xmonad, ma ancora troppo legati a GNOME, KDE o XFCE? No problem, xmonad puo’ essere utilizzato con tutti questi desktop environment. Ad esempio su GNOME puo’ sostituire degnamente metacity…

Ma e’ tutto ben documentato sul sito ufficiale di xmonad! ;­)

Link utili

[0] http://xmonad.org/
[1] http://haskell.org/haskellwiki/Xmonad#Keybindings_cheatsheet
[2] http://cs.anu.edu.au/student/comp1100.2007.s2/haskell/tourofsyntax.html
[3] http://haskell.org/haskellwiki/Xmonad/Config_archive/Template_xmonad.hs_(0.9)

Popular Posts:

Flattr this!

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

*