Window manager improved
# Window manager improved

window manager improved (wmi) ist ein schlanker Fenstermanager für das X Window System. Seine Entwicklung in C++ begann Ende 2003. Mit wmi wurde versucht, die besten Funktionen von larswm, Ion, evilwm und ratpoison zu vereinen. wmi wird von den Entwicklern als der „vi unter den Fenstermanagern“ bezeichnet: Ähnlich wie dieser hat wmi zwei Bedienungsmodi, einen normalen Modus und einen Kommandomodus. Im Kommandomodus führt man durch Tastenkombinationen verschiedene Funktionen aus, zum Beispiel das Starten von Programmen oder die Konfiguration des Fenstermanagers.

## wmii

Unter dem Namen wmii (window manager improved 2) wurde das Programm von Grund auf neu in C geschrieben. Die neue, modular aufgebaute Version ist ressourcenfreundlicher und schneller. Weiterhin bietet wmii eine flexiblere Konfiguration, ein komplett neues Fenster-Management, das auf sogenannten Layouts basiert, die es erlauben, zwischen Float-, Grid- und Tiled-Modi etc. zu wechseln, sowie eine verbesserte IPC-Schnittstelle, die sich am 9P-Protokoll von Plan 9 orientiert.

Da sich die Unterteilung in die oben genannten Layout-Modi als nicht simpel genug und zu statisch herausgestellt hat, wurde dieses Konzept für die Version 3 nahezu komplett überarbeitet. Als einziges Layout dient nun das Column-Layout, welches den Bildschirm in Spalten von Fenstern aufteilen kann. Die Fenster können zwischen diesen Spalten verschoben werden. Jede Spalte besitzt nun wieder ein individuell auswählbares Layout, wie zum Beispiel das größenmäßig gleichberechtigte Anzeigen von Fenstern untereinander oder das Stapeln von Fenstern (Stack). Dadurch wird dynamisches Fenstermanagement ermöglicht.

Auch wurden der Mechanismus der Workspaces und das interne Dateisystem überarbeitet.

### ruby-wmii

Ruby-wmii ist ein in Ruby geschriebenes erweitertes Konfigurations-Script für wmii-3, welches das Standard-Shellkonfigurationsscript ersetzt. Es ermöglicht komplexe Anpassungen des Verhaltens von wmii mit Hilfe der Programmiersprache Ruby.

