OK, mogę chyba przedstawić już mój ulubiony WM. Na początek trailer zawierający garść podstawowych informacji...
Disclaimer: FVWM to program. Złożony program. A więc ma wady, niedociągnięcia itp. Nie będę idealizował ani nawracał. OK, do rzeczy :)
Co to jest ten FVWM? Cóż, FVWM to WM. Skrót FVWM rozwija się w F? Virtual Window Manager. Przy czym nikt nie pamięta już, co miało oznaczać to "F" na początku, więc każdy może podstawić tam swoje ulubione słowo na "f".
FVWM jest "oficjalnym kocim managerem" - jeśli lubisz koty, jesteś niejako zobligowany by go używać. Szczegóły i zdjęcia kotów na stronie domowej projektu FVWM.
Co do zamieszania w wersjach: kiedyś istniał program "fvwm". Potem pojawił się fvwm2. Gdzieś tam pojawił się nawet fvwm95, który tak naprawdę był fvwm2 wystylizowanym pod Redmond. A potem fvwm2 się dalej rozwijało i zaczęło się nazwyać "fvwm". Tak więc "fvwm" to nie jest fvwm2, ani tym bardziej antyczne już "fvwm" ;)
Obecnie fvwm jest rozwijany w dwóch gałęziach: 2.4.x (stabilna) i 2.5.x (devel). Ja używam 2.5.x, a konkretniej to tej wersji "rozwojowo-rozwojowej", bo z CVS. Naprawdę warto, bo nie ma problemów z bugami czy niestabilnością, a jest dużo fajnych dodatków. Fvwm się bardzo prężnie rozwija, i warto z tego korzystać.
Ile to waży? Cóż, goły fvwm zeżre trochę ponad 2MB ramu. Mój zżera 3MB z hakiem. Na dysku zajmuje 5MB.
Jakie ma zależności? X-y i libXPM. Opcjonalnie może być Xft/Xft2, libpng, libgtk+, libstroke, librplay.
Co to potrafi? Dużo:
- Pulpity i biurka. Biurka składają się z pulpitów. Przy czym "aktualny" pulpit może być umiejscowiony na biurku z dokładnością do jednego piksela (czyli mam biurko o wymiarach 2x2 pulpity, a "pulpit" który widzę może być ułożony dokładnie na środku biurka, niekoniecznie w którymś z rogów) Ilość biurek jest praktycznie nieograniczona, idzie w miliony, (i tak naprawdę nie można powiedzieć "mam 4 biurka", bo nie da się narzucić górnego limitu). Biurkom można nadawać nazwy.
- Xinerama
- Obsługiwane formaty graficzne: XBM, XPM, oraz PNG. Nie obsługuje GIF czy JPG, ale PNG i tak jest najlepszy do tych zastosowań. Alpha-channel w plikach PNG jest wykorzystywany (oprócz prostej przezroczystości)
- Themes. Są, można je porównywać z tymi Sawfisha, choć sawfish ma tak naprawdę większe możliwości. Obsługiwane są gradienty i tekstury.
- Warstwy. Są. Podobnie jak w IceWM czy Sawfishu.
- Focus policies. Są, ale ostatnio się rozwinęły w coś nowego. Oprócz określenia "sloppy focus" można zestawić własną "focus policy" z kilkunastu klocków. Można ustalać osobne policies dla poszczególnych grup okien.
- Menu. Są. Dowolna ilość, każde może być osobno konfigurowane. Dynamicznie (re)generowane menu nie są problemem.
- Mysz–Klawiatura. Jest, działa bardzo fajnie. Bardzo konfigurowalna.
- Fonty. Jest obsługa antyaliasingu, wymagane jest Xft lub Xft2. Obsługiwane są efekty "cieni" pod fontami.
- Gestures/Strokes. Są obsługiwane, wymagana jest biblioteka libstroke (warto, bo jest malutka. libstroke.a ma niecałe 5KB wielkości)
- Ikonki dla okien minimalizowanych na pulpicie.
- Wewnętrzny język skryptowy. Nie ma pętli czy instrukcji warunkowych[*], ale na dużo pozwala. Istnieje możliwość wykonania dowolnego zewnętrznego programu i użycia tego, co wyrzuci na stdout jako listy poleceń dla FVWM - prosty sposób na rozbudowę programu.
- Moduły. Istnieje sporo przydatnych modułów (jak np. pager czy taskbar). Moduły można pisać w C lub Perlu.
- Konfigurowalność. Bardzo wysoka.
- Domyślne ustawienia: nie stwierdzono. No dobra, są, ale nikt przy zdrowych zmysłach się na nie nie zgodzi.
- Przypisywanie atrybutów do okien na podstawie wartości Name/Class/Title. Mniej niż w Sawfishu, ale zwykle wystarcza.
- I dużo, dużo innych. Strona manuala samego fvwm ma 8639 wierszy. Moduły mają osobne manuale.
OK, jeśli ktoś będzie zainteresowany, to niech potwierdzi. Wtedy mogę polecieć dalej i przejść do praktyki. Pierwszą prelekcją może być zestawienie sobie jakichś dekoracji okna które będą "less ugly" ;)
A, byłbym zapomniał. Są jakieś pytania?