OpenOffice.org - najpopularniji slobodni kancelarijski paket; obrada teksta, tablice, prezentacije, baze podataka; preuzmite besplatno sa http://sr.openoffice.org
 

Upravnik popločanih prozora u Gnomu

Za ovu vrstu upravnika prozora (engl. tiling window manager) sam prvi put čuo u kontaktu sa ekipom sa Zagrebačke razmjenevještina, mislim da je ion na marcellovom računaru bio u pitanju.

Ideja je da se korisnik maksimalno oslobodi baratanjem prozora (premeštanje, razvlačenje, itd.), već da su to poslovi kojima upravnik prozorima treba da se bavi automatski. Prozori se posmatraju kao pločice kojima treba pokriti ekran i upravnik ih raspoređuje u jednom od zadatih rasporeda (jedan levo, svi ostali poređani desno, jedan gore, svi ostali poređani ispod ili samo jedan ispred) tako da u svakom trenutku popunjavaju ceo ekran. Skoro celokupna interakcija je moguća direktno sa tastature.

Nedavno sam se i ja prebacio, i makar za sada nemam nameru da se vraćam na staro. Želeo sam da zadržim Gnom okruženje (gnome-session, gnome-panel, privezak za ključeve...) tako da mi je bilo važno da se upravnik što bolje uklapa. Gledao sam Awesome i Xmonad i bez nekog posebnog razloga odlučio se za ovaj drugi.

 

Snimak ekrana sa xmonad upravnikom prozora u Gnom okruženju
Uspravni raspored
 Snimak ekrana sa xmonad upravnikom prozora (horizontalni raspored) u Gnom okruženju
Horizontalni raspored

 

Pidgin sam odmah prebacio na deveti radni prostor i posebno podesio da prozor sa listom drugara uvek bude u levom uglu. Gnomov klijent za e-poštu, Evoluciju, držim na posebnom radnom prostoru sa horizontalnom postavkom kako bih imao optimalan prostor za pisanje novih poruka. U panel sam dodao programče za Izbor prozora, Čarobnu liniju kao osnovni pokretač (neki koriste i Gnome Do, ja sam probao ali mi nije to odgovaralo) i par ikonica koje otvaraju nekoliko lokacija na računaru u Nautilusu (jedna od njih je „computer:///“ odakle mogu da priključim i skinem montirane diskove i uređaje pošto sam ikonice na radnoj površini isključio).

Da biste koristili Xmonad neophodno je da isti instalirate naredbom sudo apt-get install xmonad xmonadcontrib. Kako je Xmonad pisan u Haskellu biće povučeno dosta međuzavisnosti, ali to ni na koji način neće kasnije opteretiti sistem.

Otvorite gconf-editor i izmenite vrednost ključa /desktop/gnome/session/required_components/windowmanager u xmonad. Da isključite prikaz ikonica na radnoj površini isključite /apps/nautilus/preferences/show_desktop.

Sada ostaje još da podesite ~/.xmonad/xmonad.hs datoteku sa postavkama prema potrebama. Evo minimalnih postavki koje ja koristim:

 

import XMonad
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.EwmhDesktops
import XMonad.Layout.IM
import Data.Ratio ((%))
import qualified Data.Map as M
import qualified XMonad.StackSet as W

myModMask = mod1Mask

myKeys conf = M.fromList $
               [ ((myModMask .|. shiftMask, xK_q), spawn "gnome-session-save --kill")
               , ((myModMask .|. shiftMask, xK_l), spawn "gnome-screensaver-command -l")
               ]

myLayoutHook = withIM (1%5) (Role "buddy_list")

myManageHook = composeAll
               [ className =? "Deskbar-applet"   --> doFloat
               , className =? "Totem"            --> doFloat
               , className =? "Pidgin"           --> doF (W.shift "9")
               ]

main = xmonad $ defaultConfig
                { manageHook = manageDocks <+> myManageHook <+> manageHook defaultConfig
                , modMask = myModMask
                , keys = \c -> myKeys c `M.union` keys defaultConfig c
                , logHook = ewmhDesktopsLogHook
                , layoutHook = myLayoutHook $ ewmhDesktopsLayout $ avoidStruts $ layoutHook defaultConfig
                , borderWidth = 2
                , focusedBorderColor = "#C11B17"
                , normalBorderColor = "#2e3436"
                }

 

Na veb stranici xmonad projekta moguće je pronaći dokumentaciju i primere različitih postavki. Pre nego što se odjavite i prijavite u novo okruženje pogledajte i brzi ilustrovani vodič za nove korisnike i spisak podrazumevanih prečica sa tastature.

Ovakva vrsta upravnika je naročito pogodna velikim ekranima ili postavkama sa više ekrana (što se nadam da ću nabaviti sebi uskoro) mada planiram da ga koristim i na mom malom X60s ThinkPadu. Videću kako će to ispasti u praksi, za sada mi ne izgleda da ću se vraćati na metacity skorije.

Ima još stvari koje bih rado dodao u konfiguracionu datoteku, pre svega lepljenje još nekih prozora za određene radne prostore i automatske različite rasporede na radnim prostorima. Takođe morao bih da ispravno podesim Gimp koji relativno često koristim kako ne bih svaki put morao da mu razvlačim prozore.

Voleo bih i da isprobam još neke od dostupnih rasporeda (Grid, Cross, Accordion,...) ali hoću polako da se privikavam i da sam dođem do zaključka kakva mi postavka radnog okruženja najviše odgovara.

Upravnike popločanih prozora svakako treba isprobati, uostalom neograničena mogućnost prilagođavanja i jeste jedna od prednosti slobodnih okruženja pa je šteta ne koristiti je.

 

March 10, 2009 1:23 PM | fsn, gnome

Komentari

Hoces reci, bez posebnog razloga osim sto je pisan u Haskell-u :)

Objavio Slartibartfast u March 13, 2009 7:28 PM

Hteo sam prvo to da napišem, ali zvučalo je tako diskriminaciono prema svim drugim programskim jezicima da mi je bilo žao ;)

Objavio Goran Rakić u March 13, 2009 8:15 PM

Nova konfiguracija:


import XMonad
import XMonad.Config.Gnome
import XMonad.ManageHook
import XMonad.Layout.IM
import Data.Ratio ((%))
import qualified Data.Map as M
import qualified XMonad.StackSet as W

myModMask = mod1Mask

myKeys conf = M.fromList $
[ ((myModMask .|. shiftMask, xK_q), spawn "gnome-session-save --kill")
, ((myModMask .|. shiftMask, xK_l), spawn "gnome-screensaver-command -l")
]

myLayoutHook = withIM (1%5) (Role "buddy_list")

myManageHook = composeAll
[ className =? "Deskbar-applet" --> doFloat
, className =? "Totem" --> doFloat
, className =? "Pidgin" --> doF (W.shift "9")
]

main = xmonad gnomeConfig
{ modMask = myModMask
, keys = \c -> myKeys c `M.union` keys defaultConfig c
, layoutHook = myLayoutHook $ layoutHook gnomeConfig
, manageHook = manageHook gnomeConfig myManageHook
, borderWidth = 2
, focusedBorderColor = "#C11B17"
, normalBorderColor = "#2e3436"
}

Objavio Goran u April 26, 2009 12:20 AM

Objavite komentar









Zapamti lične podatke i za naredni unos?




Zbog povećane količine SPAM-a u komentarima, prinuđen sam da vas malo maltretiram... Kao što je i očekivano, upišite dve reči sa slike u polje ispod (ako su reči nejasne, kliknite na crvene strelice za novu kombinaciju):



Slanjem komentara odobravate prikazivanje i trajno arhiviranje teksta komentara na ovom blogu uz uslov navođenja unesenog imena autora i zadržavate sva ostala prava i punu odgovornost za objavljeni sadržaj.




GNOME lover
blog.goranrakic.com - Goran Rakić / Горан Ракић
Objavljeno pod uslovima licence Creative Commons Autorstvo 3.0 Srbija.
Sva prava i odgovornost za objavljene komentare zadržavaju njihovi autori.

Creative Commons License