9.2. Awesome Window-Manager (ToKr)
Zunächst folgt eine kurze Einführung in das Konzept eines Window-Managers. Ein Window-Manager ist ein Programm, das Fenster auf dem Bildschirm eines Computers verwaltet. Konkret bietet er Programmen eine Schnittstelle, um Fenster zu erstellen und zu verwalten und ermöglicht dem Benutzer Fenster zu verschieben, zu vergrößern und zu schließen. Der Window-Manager ist ebenfalls dafür zuständig die Fenster zu positionieren und mit einer Titelleiste auszustatten, mit der das Fenster verschoben, vergrößert und geschlossen werden kann. Der Window-Manager ist daher ein wichtiger Bestandteil eines Betriebssystems mit einer Graphischen Benutzeroberfläche.
9.2.1. Auswahl
Es gibt eine Vielzahl von Window-Managern, die sich in ihrer Funktionalität und ihrem Aussehen unterscheiden. In diesem Projekt wird der Awesome Window-Manager verwendet. Der Awesome Window-Manager ist ein dynamischer Window-Manager für das Display-Protokoll X11. Er ist in Lua geschrieben und kann mit Lua-Code erweitert werden. Er ist unter der GPLv2 lizenziert.
Die Entscheidung für den Awesome Window-Manager wurde getroffen, weil dieser durch seine Konfiguration sehr flexibel ist und sich daher gut an die Anforderungen dieses Projektes anpassen lässt. Außerdem ist er sehr leichtgewichtig und benötigt daher nur wenig Systemressourcen.
9.2.2. Konfiguration
Die Konfiguration des Awesome Window-Managers wird in der Datei
/etx/xdg/awesome/rc.lua
gespeichert. Diese Datei wird beim Start des Awesome
gelesen und ausgeführt. Sie enthält die Konfiguration des Awesome
Window-Managers und kann durch den Benutzer angepasst werden. Die Konfiguration
wird in Lua geschrieben und kann durch den Benutzer beliebig erweitert werden.
Die folgenden Abschnitte beschreiben die Konfiguration des Awesome
Window-Managers in dieser Implementierung.
9.2.2.1. Allgemeine Konfiguration
Das Aussehen des Awesome Window-Managers kann durch seine Konfiguration angepasst werden. In diesem Projekt wurde das Standard-Theme verwendet und nur das Hintergrundbild wurde durch einen schwarzen Hintergrund ersetzt. Die Schriftgröße wurde auf 12pt gesetzt, um die Lesbarkeit zu verbessern.
Es wurden außerdem einige Zusatzfunktionen, die in der Standard-Konfiguration von Awesome enthalten sind, entfernt oder eingeschränkt. Dazu gehören die Folgenden:
Die Titelleiste enthält nur das Symbol, den Namen des Programmes und eine Schaltfläche zum Schließen des Fensters. Diese Funktionen sind für Dialogfenster notwendig, die durch manche Aktionen im Browser geöffnet werden. Funktionen wie Maximieren, Minimieren, Anheften, etc. werden nicht benötigt und wurden daher entfernt.
Es wird das Vollbild-Layout des Awesome Window-Managers verwendet. Fenster füllen immer den ganzen verfügbaren Platz aus können nicht verkleinert werden. Mehrere Fenster werden nicht gleichzeitig angezeigt, sondern werden übereinander positioniert. Die einzige Ausnahme davon sind bestimmte Fenster, beispielweise Dialogfenster, die nicht im Vollbild angezeigt werden. Es wird nur ein virtueller Desktop verwendet.
Der Benutzer kann nicht zwischen mehreren virtuellen Desktops wechseln. Die Verwendung von mehreren virtuellen Desktops ist nicht notwendig, da die Benutzeroberfläche nur für die Verwendung eines Programmes ausgelegt ist.
Die standardmäßig verwendete Statusleiste wurde entfernt und durch die Verwendung von Polybar ersetzt. Die Polybar wird in einem separaten Abschnitt dieses Dokuments beschrieben.
Um die Benutzerfreundlichkeit des Systems zu verbessern, wurde eine Funktion hinzugefügt, die es ermöglicht, den Browser nach einem Absturz oder versehentlichen Schließen durch einfaches Klicken auf den Hintergrund zu starten.
9.2.2.2. Autostart
Der Awesome Window-Manager bietet die Möglichkeit, Programme automatisch beim
Start des Window-Managers zu starten. Dazu wird ebenfalls die
Konfigurationsdatei /etc/xdg/awesome/rc.lua
verwendet. Diese Datei wird beim
Start ausgeführt und kann andere Programme starten. In diesem Projekt wird die
Datei verwendet, um automatisch mehrere Programme zu starten, die für die
Benutzeroberfläche benötigt werden.
Dazu gehören:
Der Browser (Firefox)
Die Polybar als Statusleiste
Das Netzwerk-Applet (nm-applet) zur Verwaltung der Netzwerkverbindungen