# I3 (Fenstermanager)

i3 ist ein in C geschriebener Fenstermanager für das X Window System. Der Fokus der Bedienung liegt auf Tiling, anderweitige Konzepte sind jedoch auch wählbar.

## Entwicklung

i3 wurde 2009 von Michael Stapelberg initiiert, in der Absicht, einen alternativen Fenstermanager für Power-User und Entwickler zu programmieren. Dabei wurden einige Aspekte von wmii zum Vorbild genommen, i3 wurde jedoch nicht abgespalten, sondern von Grund auf neu geschrieben.
Oberste Prämisse war es, den Quelltext übersichtlich zu halten und detailreich zu dokumentieren, damit auch Entwickler, die keine Grundkenntnisse über das X Window System besitzen, Zugang zum Projekt finden können. Technisch wurde die bevorzugte Verwendung von XCB- sowie eine möglichst reibungslose Unterstützung von mehreren Anzeigegeräten (Monitore, Projektoren etc.) mittels XRandR als Ziel festgelegt. Für die flexible Anordnung der Fenster wird eine Baumstruktur verwendet und dem Benutzer mehrere Modi zur Hand gegeben, konzeptionell angelehnt an den Texteditor Vim. i3 bietet anderen Programmen eine interne Schnittstelle für die Interprozesskommunikation, um Verzögerungen bei einer höheren Auslastung des Systems zu reduzieren. Eine vollständige Unterstützung der Unicode Kodierung UTF-8 gehörte ebenfalls zu den Entwicklungszielen.
Bezüglich der Gestaltung der Benutzeroberfläche einigte man sich auf Schlichtheit, so wird auf aufwändige Animationen oder schmückende grafische Elemente zu Gunsten der Geschwindigkeit verzichtet.

## Bedienung

Wie viele unixoide Fenstermanager, bietet auch i3 die Möglichkeit, zwischen mehreren virtuellen Desktops („Workspaces“) zu wechseln, was bei i3 im alltäglichen Gebrauch eine deutlich wichtigere Rolle einnimmt als bei Nicht-Tiling-Fenstermanagern. Die Anzahl der Desktops wird nicht festgelegt, sondern nach Bedarf erhöht bzw. verringert. Verschiebt der Benutzer ein Fenster auf einen noch nicht vorhandenen Desktop, wird er in diesem Moment angelegt und automatisch wieder entfernt, sobald alle beinhalteten Fenster geschlossen wurden und der Benutzer zu einem anderen wechselt. Auch können Anwendungsfenster fest einem bestimmten Desktop zugeordnet werden, sodass sie ausnahmslos dort erscheinen.
Neben dem Tiling kann der Benutzer die Fenster gestapelt oder getabbt (Vergleiche: Tabbed Browsing) anordnen lassen. In beiden Fällen wird nur der Inhalt eines Fensters angezeigt, alle weiteren sind über die übereinander bzw. nebeneinander liegenden Titelleisten anwählbar. Mittels einer Tastenkombination kann ein Fenster jedoch auch schnell als Vollbild dargestellt werden, wobei dann andere Fenster vollständig verdeckt werden. Fenster können ferner gezielt aus dem Tiling herausgenommen- und konventionell schwebend/überlappend dargestellt werden, was vornehmlich bei klein-proportionierten Dialogen ästhetischer ist. Zumeist erkennt i3 selbständig, wann eine schwebende Darstellung sinnvoller wäre, notfalls kann der Benutzer festlegen, welche Anwendungsfenster stets schwebend geöffnet werden sollen.
Die Bedienung verläuft wie bei vielen Tiling-Fenstermanagern vornehmlich über die Tastatur, ein einfaches Anwählen von Fenstern oder Desktops kann alternativ über die Maus erfolgen; Ferner lassen sich Tastenkombinationen erstellen, sowie Tasten der Maus frei belegen.
Während vergleichbare Fenstermanager (wie DWM, awesome, XMonad etc.) die Fenster nach bestimmten Verfahren anordnen, ordnet der Nutzer bei i3 seine Fenster komplett selbst an. Dies wird unter Zuhilfenahme verschiedener Layouts für bestimmte Abschnitte ermöglicht.

### Komponenten

i3 umfasst standardmäßig den Programmstarter „dmenu“ (vom Fenstermanager dwm), womit installierte Anwendungen gesucht- und aufgerufen werden können. Der Sperrbildschirm „i3lock“, die Taskleiste „i3bar“ sowie „i3status“, das Systeminformationen – beispielsweise die Uhrzeit – ermittelt und an letztere weiterreicht, sind ebenfalls als eigenständige Programme realisiert. Sie lassen sich daher leicht austauschen bzw. in anderen Fenstermanagern verwenden.

### Verfügbarkeit

i3 ist auf vielen unixoiden Betriebssystemen verfügbar, unter anderem auf Linux und BSD. Für viele Linux-Distributionen stehen bereits vorgefertigte Pakete zur Verfügung (u. a. Arch Linux, Debian und Ubuntu).

## Ähnliche Projekte
### i3-gaps

i3-gaps ist eine Abspaltung, die zusätzliche Design-Funktionen bietet. So lassen sich Abstände zwischen den Fenstern einrichten, damit diese deutlicher voneinander getrennt dargestellt werden. Die Taskleiste i3bar bietet mehrere Funktionen für die Manipulation von Farben, Größe und Transparenz. Das Projekt basiert zum Teil auf zusammengefassten Patches der i3-Nutzergemeinschaft.

### Sway

Sway ist ein neuer Fenstermanager, der sich von Handhabung und Konfiguration her an i3 orientiert, jedoch für Wayland statt für das X Window System geschrieben wurde. Sway kann die gleichen Konfigurationsdateien wie i3 verwenden und bietet, ähnlich i3-gaps, einige zusätzliche Funktionen.