[Managery okien, cz. 2] wmii
Jakiś czas temu pisałem o jednym z tzw. tilingujących (ang. tiling) managerów okien - awesome. Przyznam, że wtedy jeszcze nie siedziałem aż tak w tym temacie i nie byłem świadomy ile jest managerów okien o podobnej filozofii. Dzisiaj chciałbym Wam przybliżyć inny ciekawy okaz - wmii.
Uwagi wstępne
Zanim się zagłębię w działanie tego managera, mam kilka uwag. Każdy skrót klawiszowy wykonuje się z klawiszem Super (ten z logiem Windowsa) lub Altem. Z którym - to już zależy od wyboru przy pierwszym uruchomieniu. Każdy wymieniany przeze mnie skrót wykonuje się z tym klawiszem, o czym nie będę za każdym razem powiadamiał. Dla uproszczenia będę też czasem używał skrótu "wm" - window manager.
Kolumnada okien
W wmii podstawową jednostką organizacji okien jest kolumna. Można mieć kilka okien w jednej kolumnie, można mieć kilka kolumn (z kilkoma oknami) obok siebie. Da się dość swobodnie przekładać okna między nimi czy zmieniać kolejność okien w obrębie jednej kolumny. Aktywne okno zmieniamy klawiszami hjkl - jak w Vimie. Jeśli chcemy okno przesunąć - przytrzymujemy przy tym Shift. Używa się tego bardzo sprawnie i intuicyjnie*. Jest to moim zdaniem bardzo dobre wypośrodkowanie między wolno latającymi oknami z klasycznych wm'ów a względnie sztywną siatką znaną np. z awesome czy dwm.
*Dłuższy czas korzystałem z awesome, a i w Vimie pracuję niemało, więc mogę nie być do końca obiektywny w tej kwestii.
Tagi skrojone na miarę
Pierwsza rzecz jaka rzuciła mi się w oczy w wmii to nietypowe podejście do tagów/wirtualnych pulpitów. W większości wm'ów tagów przeważnie jest albo za dużo, albo za mało. Tutaj taka sytuacja nie występuje z prostej przyczyny - tagi są tworzone dynamicznie, w każdej chwili możemy utworzyć nowy, a puste same się kasują. Tagi od 0 do 9 są pod odpowiadającymi im klawiszami, a można jeszcze wcisnąć t i wpisać dowolną nazwę, by został utworzony np. tag "gołepanie" czy - nieco bardziej przyziemny - "pidgin".
EDIT: Właśnie odkryłem kolejną ciekawą własność tagów wmii - można w nich używać wyrażeń regularnych. Np. okno o tagu /^foo/ będzie widoczne na każdym tagu zaczynającym się na "foo".
Wszystko jest plikiem
Być może najciekawsza cecha wmii jest trochę mało widoczna. wmii zostało zaprojektowane zgodnie z filozofią Uniksa - wszystko jest plikiem. Okno przeglądarki jest plikiem, tak samo jak komunikatora, terminala czy Emacsa, w którym piszę ten wpis. Z wirtualnym systemem plików wmii komunikujemy się programem wmiir. Np. `wmiir cat /client/sel/label' odczyta nam nazwę aktywnego okna, a `wmiir xwrite /ctl view pidgin' przeniesie nas na wspomniany tag "pidgin" (tworząc go, jeśli trzeba). Podobno można ten wirtualny system plików gdzieś zamontować i używać jak zwykłego dysku, ale na razie mi się to nie udało. Taka konstrukcja daje wprost niesamowite możliwości skrypcenia i to w dowolnym języku - wystarczy, żeby język potrafił uruchamiać zewnętrzne polecenia.
Podsumowanie
Zalety: - świeże podejście do tagów/pulpitów, - wygodne rozmieszczanie okien, - potencjał jeśli chodzi o pisanie skryptów, - wbudowany tray (to nie jest standard w tego typu managerach okien), - dwie warstwy okien (tiling i stacking), - sposób obsługi wielu monitorów może się podobać.
Wady: - problemy ze współpracą z notification-daemonem, - brak możliwości łatwego przeładowania pliku konfiguracyjnego, - ...który do najczytelniejszych nie należy (ten domyślny przynajmniej), - sposób obsługi wielu monitorów może się równie dobrze nie podobać.
Jeśli komuś z jakiegoś powodu coś nie pasuje w wmii, ale sama idea mu się podoba, polecam wypróbować i3. Trochę mu brakuje do dojrzałości, ale myślę, że warto śledzić ten projekt. Być może w najbliższym czasie napiszę o nim coś więcej.
Jakby ktoś pytał gdzie się podziała część pierwsza - powiedzmy, że był nią mój stary wpis o awesome.