Awesome 3, historia pewnej znajomości
Od ponad miesiąca używam awesome3. Wcześniej byłem bardzo zadowolonym użytkownikiem gałęzi 2.X, dołączyłem jednak do społeczności pod sam koniec jej istnienia (maj/czerwiec 2008). Niemal od razu stałem się sceptykiem w sprawie powstającej właśnie trzeciej wersji menadżera okien. Odstraszał mnie przede wszystkim config napisany w lua oraz spore trudności w samodzielnej instalacji nowej wersji. Kolejnym powodem była znana tylko deweloperom data wydania, cała sprawa wyglądała tak jak gdyby programiści mieli do wypełnienia zadania z jakieś sekretnej listy, której założenia były znane tylko wąskiej grupie osób. Nie pojawiały się żadne deklaracje dot. stanu prac nad projektem. W pewnym momencie coś cię stało i nagle 18 października pojawiło się ogłoszenie o wydaniu awesome 3.0, zawiera ponad 1000 poprawek i jest wynikiem wytężonej pracy ponad 30 programistów trwającej jakieś pół roku. Od razu nie mal przyłączyłem się do fali krytyki zalewającej projekt, nie przetestowałem go i nie próbowałem nawet zainstalować, po prostu porzuciłem awesome. Zająłem się xmonadem i masą innych 'titling wmów'. Przez dłuższy czas nie mogłem znaleźć takiego, który spełniałby moje wymagania/przyzwyczajenia, na dłuższy czas osiadłem na dwm, a potem przyszedł czas na ratpoison - ten wm zachwalam sobie do tej pory. Po tym okresie przyszedł kaprys, aby spróbować awesome.
Nie lada wyzwaniem okazało się przygotowanie portu dla używanej przeze mnie dystrybucji CRUX. Potem przyszedł czas na konfigurację, przez pierwsze dwa-trzy dni byłem o krok od porzucenia tego zadania, jednak nie pozwoliła mi na to ciekawość i fascynacja nowo odkrytym językiem programowania - lua. Po kilku dniach udało mi się pojąć podstawy lua oraz konfiguracji awesome. Okazała się ona być niezwykle prosta (sporo łatwiejsza niż ta, znana mi z gałęzi 2.X). Lua daje niesamowita swobodę w dostosowywaniu menadżera do swoich potrzeb. Pisanie własnych widgetów, również okazało się być łatwym zadaniem. Małym nakładem pracy udało mi się stworzyć całkiem dobrze sprawujący się (lecz wciąż wymagający trochę pracy, na którą jednak nie mam chwilo weny) widget pokazujący status z mojego ulubionego odtwarzacza - xmms2.
Odkryłem też kilka dobrych stron awesome. Pierwszą z niech jest wspomniany już wyżej config w języku lua. Jego interpreter jest bardzo mały (waga paczki jego kodu źródłowego nie przekracza 1 mb), a bardzo dobry tutorial pozwala szybko złapać podstawy języka. Kolejną stroną jest łatwość konfiguracji awesome determinowana przez lua, można dodać do niego niemal wszystko czego dusza zapragnie, ograniczani jesteśmy tylko przez naszą wyobraźnię oraz znajomość lua. Trzecim punktem tej wyliczanki jest bardzo łatwe dostosowywanie wyglądu menadżera. Wystarcza modyfikacja zaledwie jednego pliku by otrzymać oczekiwany przez nas wygląd, który możemy rozszerzać poprzez dodawanie własnych ikon. Wszystko to w świetny sposób współgra dzięki lua, które powoduje, że 'osom' gra dokładnie tak jak mu zagramy.
Jednym z często pojawiających się argumentów w rozmowach dot. w/w managera są częste zmiany w konfiguracji. Chwilowo (w zasadzie od początku istnienia awesome) jest to mit nie do obalenia. Zmiany, choć rzadsze i mniej uciążliwe (dobrą praktyką okazało się szczegółowe opisywanie zmian przez deweloperów na wiki aplikacji) niż w gałęzi 2.X pojawiają się i zapewne pojawiać się będą. Jednak ich ilość stopniowo się z mniejsza. Jak niedawno (30 stycznia 2009) napisał Julien - jeden z deweloperów awesome, obecnie jest w fazie naprawiania poważnych błędów, poprawiania nowych funkcjonalności oraz stabilizacji. Po zakończeniu tego procesu (miejmy nadzieję, że nastąpi to niedługo) rozwój projektu zostanie znacząco spowolniony, nie jest wykluczone, że wtedy raz napisany config działać będzie przez lata.
Pokrzepiony więc tą myślą oraz zachęcony przez małą ilość zmian w zbliżającym się wydaniu 3.2, chcę na koniec tej krótkiej opowieści, gorąco zachęcić do podjęcia się konfiguracji tego menadżera okien. Może się to okazać całkiem niezłą 'informatyczną przygodą'.
