Nemrég az interneten böngészve véletlenül belefutottam egy i3 nevű dologba: http://i3wm.org/
Az első pillanatban azt sem nagyon tudtam kivenni az oldalból, hogy ez most egy programozást segítő dolog, vagy egy ablakkezelő.
Mint kiderült, az utóbbi. Aki valami robosztus, csillogós, egerészős desktopot lát maga előtt, azt el kell keserítenem, ez egy billentyűzet-centrikus megoldása a desktopoknak, kifejezetten haladó felhasználóknak és programozóknak. A billentyűkombinációkat és az ablakkezelést a vim ihlette. Ami viszont igazán érdekes tulajdonsága, az az ablakkezelés megvalósítása, ugyanis a windowsban/compizban megismert "aero snap" funkciót terjeszti ki olyasforma módon, hogy a programablakokat un. fákba fűzhetjük. (lsd később)
Az érdeklődők a
sudo apt-get install i3
paranccsal fel is telepíthetik, és a bejelentkező képernyőn kiválasztva ki is próbálhatják a felületet.
Alapok
Az első bejelentkezés után csupán egyetlen kérdésre kell válaszolni, mégpedig hogy a win vagy az alt gomb legyen-e a vezérlőgomb (későbbiekben: mod)
Az i3 alapfelszerelése egy alsó "tálca", és egy felül megjelenő gyorsindító menü. alapértelmezésben még háttérképe sincs.
Az alsó tálcán conky-féle stílusban láthatjuk a gépünk fontosabb paramétereit, az esetleges tálcaikonokat, valamint a kölönböző asztalok sorszámait.
A mod+d kombináció hatására megjelenik a felső tálca, amely keresőként funkcionál, és gépelésre kilistázza a rendszeren elérhető parancsokat.
Ugyanezen a tálcán egyszerű terminálparancsokat is kiadhatunk (killall.. stb). Kissé zavaró hogy terminált igénylő parancsokhoz nem nyit külön terminált (mc, mocp, top stb.), de ezen hamar felül lehet kerekedni, hiszen a mod+enter kombinációval egy szempillantás alatt nyithatunk magunknak egy új terminált.
Ha megnyitunk két ablakot, láthatjuk, hogy a kép 50-50 százalékát foglalják el. Ez néha zavaró, sokszor viszont hasznos. A megjelenítési módok között az alábbi kombinációkkal válthatunk:
mod+e # eredeti üzemmód, a képernyő területét felosztja az ablakok között, az ablakok széle egérrel mozgatható
mod+w # tab-os üzemmód, az ablakok teljes méretűek, a képernyő tetején a fülekre kattintva válthatunk közöttük (vagy a mod+nyilak kombinációval)
mod+s # "stacked" üzemmód, némileg hasonlít a füles megjelenításhez, csak itt a fülek egymás alatt helyezkednek el
mod+f # az aktuális ablak/ablakcsoport teljes képernyőre való kiterjesztése
mod+shift+space # az aktuális ablak/ablakcsoport "float" azaz lebegő üzemmódjának aktiválása (ilyenkor egérrel szabadon mozgatható az ablak)
Az ablakokat a mod+shift+iránygombok kombinációval helyezhetjük át.
új asztal létrehozása vagy az adott asztalra váltás a mod+szám kombinációval lehetséges (pl: mod+1 == első asztal)
Mivel ablakkezelő gombok sincsenek, az ablakok bezeárása a mod+shift+q kombinációval történik, kijelentkezni pedig a mod+shift+e kombinációval tudunk.
Konfiguráció
Mivel alapértelmezésben hátterünk sincs, valamint a máshol alapértelmezetten induló programokat sem futtatja le az i3, így a számunkra szükséges programokat a konfigurációs fájba írva futtathatjuk.
Ubuntu alatt a konfigurációs fájl helye: ~/.i3/config
Ez a fájl felel az alapértelmezetten indítandó programokért, ebben módosíthatjuk a billenytűkombinációkat, valamint itt definiálhatunk újakat is.
Az alábbiakban felsorolom azt a pár beállítást, amit én használok a konfigurációs fájlban:
-háttér beállítása:
exec ~/.fehbg #feh használata esetén
nitrogen --restore #nitrogen használata esetén
#gnome-os megoldást már régóta nem használok, arról nem tudok írni
-gnome témák használata:
Írjuk a következőt a konfigurációs fájlba:
exec gnome-settings-daemon
#hasonló módon indíthatjuk az egyéb gnomeos daemonokat is
-xfce4 energiakezelő, beállításkezelő használata:
exec xfsettingsd
exec xfce4-volumed
-Grafikus jelszókérő daemon használata (én az lxpolkitet preferálom):
exec lxpolkit
-Hangerő ikon a tálcára (ÚJ):
exec volumeicon
-Ibus daemon (ha több bill kiosztás között váltogatsz):
exec ibus-daemon
-dropbox, network manager, egyéb programok indítása:
exec dropbox start
exec nm-applet #network manager ikonja
exec wicd-gtk #wicd hálózatkezelő használata esetén
exec gnome-keyring-daemon --start --components=pkcs11 #kulcstartó
exec gnome-keyring-daemon --start --components=secrets #kulcstartó
exec *amit futtatni akarsz*
(bár az i3-nak van saját keresője, a synapse sok plusz lehetőséget nyújt, valamint a szokatlan helyen elhelyezkedő alkalmazásokat az i3 nem látja (pl: a minitube a /opt mappában) )
-hangerő gyorsgomb (a laptopom funkciógomját mímelem ily módon, bármi más kombináció is megengedett):
bindsym Control+F7 exec amixer -q sset Master 5%- # ctrl+F7 csökkenti a hangerőt
bindsym Control+F8 exec amixer -q sset Master 5%+ # ctrl+F8 növeli a hangerőt
bindsym Control+F9 exec amixer -q -D pulse sset Master toggle # ctrl+F9 elnémítja/visszakapcsolja a hangot
- print screen gomb:
bindsym Print exec gnome-screenshot
VAGY
bindsym Print exec xfce4-screenshooter -f
- alt/mod-tab (nem járható vele be a teljes fa, de néha hiányolom)
bindsym $Mod+Tab focus right
bindsym $mod+Tab focus left
-Képernyő zárolása gyorsgomb:
bindsym $mod+l exec i3lock -c 000000 # az i3 saját képernyőzárja, fekete háttérrel
(az i3lock egy igazán sokrétü program, lásd: link1,link2,)
-Dmenu cseréje j4-dmenu-desktopra:
Az i3-ba integrált dmenu csak a programok nevei alapján tud programokat futtatni, ami meglehetősen zavaró lehet ha épp nem emlékszünk a fájlkezelő nevére, nem tudjuk pontosan mi a neve a számítógép beállításait kezelő programnak. A j4-dmenu-desktop telepítése után keressük meg a
bindsym $mod+d exec dmenu_run sort a konfigurációs fileban, és módosítsuk erre: bindsym $mod+d exec j4-dmenu-desktop || dmenu_run. Így a j4-dmenu fog futni amennyiben telepítve van, gond esetén meg a megszokott dmenu fok működésbe lépni. Ezzel azt értük el, hogy a "Webböngésző","Filekezelő" és hasonló kifejezésekre keresve elindíthatjuk azokat anélkül, hogy ismernünk kellene őket név szerint.
-Felhasználóváltás (GDM esetén - elavult??)
Állítsuk be valamely billenytűkombinációra: exec gdmflexiserver --new
-Felhasználóváltás (LightDM esetén, személyesen nem teszteltem)
Állítsuk be valamely billenytűkombinációra: dm-tool switch-to-greeter
-Értesítési buborékok:
Az i3 alapértelmezésben tartalmaz egy Dunst nevű csomagot, amely egyszerű értesítéseket jelenít meg. Szegény viszont elég csúnyácska :)
Ha a más asztali környezetekben megszokott értesítéseket szeretnénk látni, csak töröljük a Dunst csomagot. HA van a gépünkön más értesítési daemon, akkor a már megszokott designos buborékainkat fogjuk viszontlátni :)
Ha gondunk van a buborékok megjelenítésével, pozíciójával, mondjuk meg az i3-nak hogy ezeket a buborékokat kezelje máshogy:
for_window [class="Xfce4-notifyd"] floating enable; border none; focus mode_toggle
#itt az xfce4 értesítési daemonjára van írva egy szabály, de az általad használt értesítési daemonnal is működik
Ablakok, mint egy fa elemei ( ez már haladóbb cucc :) )
Most jön az érdekes rész :)
Az ablakokat úgy is tekinthetjük, mint egy fa elemeit. Az üres asztal a fa gyökere.
Ha azt akarjuk, hogy a későbbiekben megnyitott ablakok egymás mellett jelenjenek meg, a mod+h kombinációval adhatjuk ki (ez az alapbeállítás)
Ha inkább függőlegesen osztanánk fel a képernyőt, akkor a mod+v az ideális kombináció.
Ha most megnyitunk több ablakot, akkor azok "egy szinten" lesznek, azaz ugyanaz lesz a mélységük.
A fát úgy mélyíthetjük tovább, hogy kijelöljük az egyik megnyitott ablakot, és ismét mod+h, vagy mod+v kombinációt nyomunk. Ilyenkor a kijelölt ablak "mélyebbre kerül", és ha most egy új ablakot nyitunk, akkor az csak ezzel az ablakkal fog osztozni a képernyő adott helyén.
Íme egy példa:
Nyomjuk meg sorban a következőket:
mod+enter # terminál nyílik, teljes képernyőn (alapértelmezés a mod+h felosztás)
mod+enter # újabb terminál nyílik, a két terminál függőlegesen osztozik a képernyőn
jelöljük ki a jobboldai terminált # elég az egeret fölé vinni
mod+v # a jobboldali terminál "mélyebbre került"
mod+enter # nyílik egy új terminál, ami a jobboldali terminállal osztozik függőlegesen a képernyő jobb felén
Másik példa:
Nyomjuk meg sorban a következőket:
mod+v #az új ablakok egymás alatt fognak elhelyezkedni
mod+enter # új terminál, teljes képernyőn
mod+enter # új terminál, a két terminál most egymás alatt van, és úgy osztoznak a képernyőn
...
Egy ablak szülőelemét a mod+a kombinációval jelölhetjük ki. (ez kijelöl minden azonos szinten lévő ablakot)
Ilyenkor az összes azonos szinten lévő ablakot egyszerre mozgathatjuk (mod+shift+space), tehetjük teljes képernyőre (mod+f), vagy zárhatjuk be (mod+shift+q)
A mod+e,mod+w,mod+s kombinációk minden azonos szinten elhelyezkedő ablak elhelyezésére hatással vannak.
Esetleges gondok
-A különféle panelalkalmazásokat korlátozottan támogatja a felület. A Tint2 például gond nélkül elfut, de a CairoDock már "kiüti", törli a háttérképet.
-Eleinte nehézkes kezelés
Ha valaki kedvet érez egy minimalista, de használható ablakkezelő rendszer kipróbálásához, vágjon bele. Nekem openbox után ez az új kedvencem. :)
Update:
mod-tab konfig (fentebb), felhasználóváltás, hangerő ikon, kulcstartódémon, scriptek
Update2:
Mivel a cikk évekkel ezelőtt íródott, történt némi változás szoftveres téren, és a tudásomat illetően is. A korábbi scripteket jobb, egyszerűbb megoldásra cseréltem.