[Managery okien, cz. 4] dwm i kumple
13.09.2011 | aktual.: 24.05.2012 23:22
Czym byłaby seria wpisów o managerach okien bez dwma i jego pochodnych? Pisałem już kiedyś o awesome, ale takich managerów jest więcej (wbrew przesadnie onetowemu tytułowi tamtego wpisu...). Omówię je raczej powierzchownie, nie miałem czasu by je wszystkie dogłębnie przetestować. Skupię się na najbardziej widocznych różnicach.
Cechy wspólne
Wszystkie managery wywodzące się z dwm są dość charakterystyczne: - okna są rozmieszczane w pełni automatycznie. Jest kilka układów, które można zmieniać, można zamieniać okna miejscami i można w pewnym stopniu zmieniać ich proporcje. To tyle, reszta dzieje się sama, - raczej nie mają graficznych konfiguratorów - przeważnie używa się plików konfiguracyjnych pisanych w poważnych językach programowania. Daje to bardzo duże możliwości konfiguracyjne, - nacisk jest położony na obsługę klawiaturą.
Bez wnikania w szczegóły, dwmoidy różnią się między sobą głównie językiem w jakim się je konfiguruje i często paskiem informacyjnym.
dwm
Konfiguracja dwm to zwykły C. Język dość powszechnie znany, przez co myślę, że wiele osób szybko się w niej odnajdzie. Niespodzianek większych nie ma. W jednej tablicy są zapisane klawisze, w drugiej - elementy paska z informacjami, w jeszcze innej - lista tagów. Podejrzewam, że nawet bez wcześniejszej znajomości C, dałoby się zmienić podstawowe rzeczy.
Po modyfikacji tego pliku trzeba przekompilować dwm, co niestety nie jest w żaden sposób uproszczone, jak np. w xmonadzie. Przeżyć można, ale nie jest to najwygodniejsze rozwiązanie. Pewnie dałoby się coś naskrobać w konfigu, żeby to uprościć, ale jakoś mi nie zależało, skoro i tak jedynie testowałem dwm na potrzeby tego wpisu.
Podsumowując, dwm spełnia swoje zadanie jako manager okien i to chyba tyle, ale za to pod względem lekkości nie ma sobie równych.
xmonad
Główną atrakcją xmonada jest język w jakim go napisano - Haskell. Dość ciekawy wybór. Haskella znam w stopniu, powiedzmy, pół‑podstawowym, ale mniej więcej rozumiałem co się tam dzieje. Jeśli ktoś nigdy nie widział na oczy Haskella, może mieć na początku problemy, bo to zupełnie inna filozofia niż ta stosowana w popularnych językach typu C, Java, Perl czy Python. Zastosowanie Haskella ma jeszcze jedną wadę - trzeba zainstalować GHC, kompilator Haskella. Ponad pół gigabajta dla minimalistycznego managera okien to dość dużo. Mimo wszystko, można się spodziewać, że ktoś, kto się decyduje na xmonad, ma już zainstalowany GHC.
By przekompilować plik konfiguracyjny wystarczy wcisnąć odpowiednią kombinację klawiszy i chwilę poczekać. Jeśli były jakieś błędy, xmonad uruchomi się z domyślnym konfigiem, dzięki czemu raczej nie "zbrickujemy" sobie managera okien. Podobne rozwiązanie jak w opisywanym przeze mnie ostatnio i3.
xmobar, który jest wykorzystywany jako pasek zadań, wydaje się mieć spore możliwości, ale nie miałem czasu by się z nim bardziej pobawić. Tego akurat nie sprawdzałem, ale podobno dokumentacja xmonada jest dłuższa niż jego kod. Całkiem imponujące, niezależnie od tego czy to kod jest krótki, czy dokumentacja długa. ;)
xmonad sprawia wrażenie bardzo potężnego, ale trudnego w opanowaniu. Głównie za sprawą Haskella, ale to raczej kwestia znajomości języka.
UPDATE 24.05.2012: No i przeczucie mnie nie zawiodło. Bardzo skrzywdziłem XMonada powyższym opisem. Jak znajdę wolną chwilę (czytaj: po sesji, czyli koło lipca), to naskrobię erratę aka piątą część cyklu o managerach okien. Note to self: nie pisać o rzeczach, które znam słabo.
awesome
Językiem wykorzystywanym w awesome jest Lua. Przed poznaniem awesome nic nigdy nie pisałem w Lua. Mimo to, byłem w stanie zmienić to i owo, a z czasem nauczyłem się podstaw tego języka jedynie eksperymentując z awesome.
Z drugiej strony, domyślny konfig jest mocno chaotyczny i nie zawsze łatwo się szuka fragmentów odpowiedzialnych za dane rzeczy. Jeśli chodzi o pasek, jest kilka niezależnych wtyczek do tworzenia widgetów na nim. Ja używałem Vicious i nie narzekałem. Proste w obsłudze i robiło to co kazałem. Czego chcieć więcej?
Przeładowanie konfiguracji jest błyskawiczne - Lua to język interpretowany. Niestety nie ma żadnych ostrzeżeń o błędach. Jeśli coś popsujemy, to dalsza część konfigu się nie wczytuje. Jeśli skrót odpowiedzialny za restart się już załadował to pół biedy, gorzej gdy błąd jest na początku pliku i de facto pracujemy na gołych Xach.
Z tej trójki awesome to najcięższy manager, ale oczywiście nie może się równać z KDE czy GNOME.
scrotwm
scrotwm nie zapadł mi szczególnie w pamięć. Konfiguracja była zwykłą listą opcji, jak w i3. Cech szczególnych nie zauważyłem. Melduję, że testowałem, nic poza tym.
Co dalej?
Zachęcam do komentowania i wytykania mi przeoczeń, chętnie dopiszę to i owo, zwłaszcza, że temat zaledwie musnąłem. Chętnie posłucham co mają do powiedzenia bardziej doświadczeni użytkownicy. Zróbmy z tego taki eksperymentalny wpis zbiorowy.