GNOME, koji je uz KDE najpopularnije desktop okruženje za GNU/Linux, koristim gotovo od samih početaka ozbiljnijeg korištenja Linuxa. Nedavno sam još malo tweakao svoju konfiguraciju i složio vrlo ugodan desktop.

Kako sam počeo pratiti Haskell, naletio sam na jedan zanimljiv window manager napisan upravo u njemu – Xmonad. Xmonad je tzv. ’tiling’ window manager, što bi značilo da on sam raspoređuje prozore na vašem desktopu prema konfigurabilnim algoritmima i parametrima.

Dva prozora Firefoxa u Xmonadu Tiling window manageri nisu ništa novo, no ovo je bio moj prvi susret s njima. Konceptualno mi je cijela stvar izgledala dosta interesantno, te sam ih odlučio i isprobati. Rezultat: krajnje oduševljenje i gotovo potpuna migracija na Xmonad za sve moje potrebe.

Instalacija na Ubuntuu je poprilično jednostavna: sudo apt-get install xmonad instalira najosnovnije potrebne pakete, a da bi povukli sve pakete koji su potrebni za konfiguraciju sličnu mojoj, instalirajte sljedeće: xmonad, libghc6-xmonad-contrib-dev, libghc6-xmonad-dev i dzen2.

Samo pokretanje se može izvršiti na više načina, a onaj kojeg ja koristim je jednostavni one-liner u .xsessionu (echo xmonad > .xsession) i odabir ‘Run Xclient script’ prilikom logiranja u GDM-u. Ostali načini su opisani u odličnoj dokumentaciji. Prije samog Xmonada, dodatno pokrenem i gnome-settings-daemon (treba dodati gnome-settings-daemon & na početak .xsession datoteke), da bi mi GTK aplikacije izgledale prema mojim GNOME postavkama (jer inače izgledaju ružno :)).

Prvi susret nije najugodniji – dočeka vas apsolutno prazan ekran, a miš ne odgovara ni na što drugo osim micanja po ekranu. Kombinacija ALT+Shift+Enter otvara terminal, a ukoliko ste instalirali dzen2, ALT+P će vam otvoriti dmenu, vrlo jednostavan i minimalističan launcher. Tipkanjem prvih par znakova imena aplikacije (npr. ‘fire’ za Firefox) i pritiskom na Enter nakon odabira pokrećete aplikaciju.

Pidgin, IM klijent za GNU/Linux, na odvojenom virtualnom desktopu u Xmonadu Kombinacijom ALT+1 do ALT+9 se prebacujete između devet virtualnih desktopa. Ukoliko otvorite više od jednog prozora na jednom virtualnom desktopu (npr. dva prozora Firefoxa), vidjet ćete stvarnu moć Xmonada–automatski dijeli prozore za maksimalnu iskoristivost desktopa. Između raznih tiling algoritama se prebacujete kombinacijom ALT+Space. Ostale kombinacije tipki za raznoraznu manipulaciju prozorima su opisane u kratkom i informativnom Xmonad tutorialu.

Samo prilagođavanje Xmonada se vrši preko datoteke ~/.xmonad/xmonad.hs koja je obična Haskell source datoteka. Poznavanje Haskella za konfiguraciju nije potrebno, s obzirom da na službenim stranicama ima nekoliko primjera raznih konfiguracija koje nije teško prilagoditi vlastitim potrebama. Nakon editiranja xmonad.hs datoteke, dovoljno je pritisnuti ALT+q za reload konfiguracije bez resetiranja Xmonada.

S obzirom da Xmonad sam po sebi nema nikakvog status bara, nije moguće saznati na kojem ste virtualnom desktopu i koji prozor gledate. Ovo posljednje je posebno neugodno, budući da po defaultu ne vidite tzv. ukrase za prozore (tj. title bar). U Xmonadu su uobičajena dva status bara: dzen2 (kojeg ste već vjerojatno instalirali radi dmenu launchera) i Xmobar. U trenutku konfiguracije, dzen2 mi je bio lagano prekompleksan za proučavanje, pa sam odabrao Xmobar koji mi služi sasvim dobro. U Ubuntu repozitorijima ga nema, pa ćete ga morati kompajlirati sami–potreban vam je Haskell kompajler (GHC je u repozitorijima) i Xmobar source kojeg, zajedno s uputama, možete naći na službenim stranicama.

Moja konfiguracija se nalazi ovdje–ono što je drugačije od defaultne je:

  • Remapiranje ‘modifier’ tipke (po defaultu gore spominjani ALT) u Win tipku, da bi se izbjegli konflikti s drugim aplikacijama koje koriste slične shortcute.
  • Firefox, Gnome-Terminal, Pidgin, Rhythmbox, Liferea (RSS reader) i Nautilus se otvaraju na za to predviđenim virtualnim desktopima, koji su adekvatno preimenovani za tu svrhu.
  • Xmobar, vrlo jednostavan i konfigurabilan status bar, se pokreće zajedno s Xmonadom i uzima informacije o virtualnim desktopima, imenu trenutnog prozora i tiling algoritmu. Također, nevezano uz Xmonad, pokazuje trenutno zauzeće memorije, procesorskog vremena, stanje baterije i mreže te datum i vrijeme. Moja konfiguracijska datoteka se nalazi ovdje.
  • Print screen tipka pokreće scrot, mali programčić za uzimanje screenshotova.
  • Win+CTRL+X otvara Xmonadov launcher koji je vizualno ugodniji od dzenovog.

GVim u Xmonadu s Gnome-Terminalom Ukoliko vam nedostaje panel i popis prozora koje trenutno imate otvorene, možete koristiti Gnome-Panel ili instalirati neki alternativni. Pokretanje panela je analogno pokretanju gnome-settings-daemona, opisanog gore.

Vrijedi napomenuti da Xmonad odlično radi u kombinaciji s Vimperatorom, pluginom koji Firefox pretvara u browser koji se ponaša i funkcionira kao i svima omiljeni editor Vim. Vimperator dodatno smanjuje potrebu za korištenjem miša, što ovisno o vašoj volji za navikavanjem, može ubrzati rad s browserom.

Xmonad, a i tiling window manageri općenito, definitivno nisu za svakoga–niti izgledaju pretjerano lijepo, niti imaju jednostavan learning curve–no Xmonad svoj posao radi odlično i nevjerojatno stabilno i brzo. Svakako isprobati.