Leksykon IT › Infrastruktura › TinyWM

TinyWM

Infrastruktura Svenska → Zaktualizowano: 2026-10-09
Więcej informacji
Twórca
Nick Welch
Rok
Typ
Menedżer okien
Licencja
Domena publiczna
Kod źródłowy
github.com/mackstann/tinywm

Menedżer okien w około pięćdziesięciu liniach C, napisany w 2005 roku, by pokazać, że wszystko, co potrzeba do przesuwania, zmiany rozmiaru i podnoszenia okien w X, mieści się na jednym ekranie.

Nick Welch napisał TinyWM jako przykład dydaktyczny i oddał kod do domeny publicznej. Program otwiera wyświetlacz, zakłada pasywne grabs na Alt+F1 oraz na Alt z lewym i prawym przyciskiem myszy w oknie root i wchodzi w pętlę wokół XNextEvent. Alt+F1 podnosi okno pod wskaźnikiem przez XRaiseWindow; przeciąganie z Alt lewym przyciskiem przesuwa, a prawym zmienia rozmiar, przez XMoveResizeWindow przy każdym MotionNotify. I tyle. Bez reparentingu, bez ramek, bez ICCCM, bez obsługi fokusu: aplikacje dostają fokus, bo X daje go oknu pod wskaźnikiem — o ile w ogóle o niego poproszą.

Wartość tkwi w tym, czego brakuje. Kto czyta ten kod, widzi, że menedżer okien to w gruncie rzeczy zwykły klient, który poprosił serwer o przekierowywanie do siebie pewnych zdarzeń, i że wszystko, co czyni dwm czy Openbox użytecznymi, jest zbudowane na tych trzech grabach. W zestawie jest wersja w Pythonie o tej samej długości, a TinyWM stał się punktem wyjścia długiej linii hobbystycznych menedżerów okien i stałym pierwszym ćwiczeniem w tutorialach Xlib.

← Wróć do leksykonu