Openbox

Aus wiki.archlinux.de

Diese Seite beschreibt die Installation und Konfiguration des Window-Managers „Openbox“. Openbox ist ein Fenstermanager für X basierend auf dem Quellcode von Blackbox 0.65.0. Ab Version 3 wurde Openbox komplett in C neu geschrieben, lehnt sich jedoch immer noch an das Aussehen von Blackbox an (Wikipedia).

Installation

Es wird davon ausgegangen, dass der X-Server bereits installiert ist, und funktioniert. Für die Verwendung von Openbox muss das gleichnamige Paket aus „extra“ installiert werden.

pacman -Sy openbox

Nach der Installation wird folgende Meldung auf der Standardausgabe (stdout) ausgegeben:

Place menu.xml and rc.xml in ~/.config/openbox
They can both be found in /etc/xdg/openbox

Das kopieren der Dateien ist nötig, um die Einstellungen je Benutzer verwalten zu können. Wenn Openbox diese Dateien nicht vorfindet, werden die Dateien in /etc/xdg/openbox verwendet. Es ist sinnvoll, die Dateien in das eigene home-Verzeichnis zu kopieren, da ansonsten einige Tools (s.u.) nicht richtig arbeiten, und man zum Bearbeiten der Konfiguration ansonsten root-Rechte braucht.

Zuerst wird also das Verzeichnis angelegt, und dann die angegebenen Dateien in dieses Verzeichnis kopiert.

mkdir -p ~/.config/openbox
cp /etc/xdg/openbox/rc.xml ~/.config/openbox/
cp /etc/xdg/openbox/menu.xml ~/.config/openbox/

Damit Openbox beim Start von X gleich mitgestartet wird, und man es sofort verwenden kann, bedarf es eines Eintrages in der Datei „~/.xinitrc“. Es ist diese Datei also in einem Texteditor zu öffnen, und dort folgendes am Ende hinzuzufügen.

exec openbox-session

Sollte die Datei nicht existieren, so ist sie anzulegen.

Einloggen

Das Einloggen in Openbox (bzw. X) ist einerseits mittels Login-Manager möglich, andererseits geht es aber auch ohne. Wer nur einen Fenstermanager verwendet, braucht nicht unbedingt einen Login-Manager, nur um sein Benutzernamen und sein Kennwort einzugeben.

Ohne Login-Manager

Das Einloggen funktioniert hier direkt nach dem Start von der Befehlszeile aus. Dort sieht man das Login-Prompt, an dem man seine Login-Daten eingeben muss, um in das System zu kommen. Man macht sich bei dieser Methode die Standardkonfiguration der Bash zunutze, die bei jedem Login gewisse Dateien ausführt.

Konfiguration

Zuerst öffnet oder erstellt man die Datei „.bashrc“ (bzw. „.bash_profile“ – siehe nächster Abschnitt) und erstellt dort eine If-Abrage.

if [ "$(tty)" = "/dev/vc/1" ]; then
 startx
 logout
fi

Diese Abfrage prüft, ob das verwendete Terminal das erste ist. Dies ist nach dem booten bei Standardkonfiguration der Fall. Wenn man sich hier nun mit seinem Benutzernamen anmeldet, und die .bashrc ausgeführt wird, wird über „startx“ umgehend X gestartet. Wenn man X wieder beendet (entweder durch Ausloggen aus Openbox, oder z.B. das Drücken von Strg+Alt+Backspace), wird man automatisch wieder ausgeloggt.

Problembehebung

Sollte die vorgestellte Technik nicht funktionieren, so kann man über einen Befehl nachprüfen, unter welchem Namen das aktuelle Terminal dem System bekannt ist.

tty

Das, was dieser Befehl zurückgibt, baut man nun anstelle von „/dev/vc/1“ in die If-Abfrage ein und loggt sich aus. Wenn man sich nun wieder einloggt, aber X immer noch nicht startet, kann es daran liegen, dass anstelle der „.bashrc“ die „.bash_profile“ automatisch ausgeführt wird. Nun hat man zwei Möglichkeiten: Entweder, man schreibt die Abfrage in die „.bash_profile“, oder man schreibt in die „.bash_profile“, dass die „.bashrc“ ausgeführt werden soll.

source .bashrc

Dies hat den Vorteil, dass man alles über die „.bashrc“ hat. Diese Datei wird wesentlich häufiger erwähnt, und man muss sich beim Konfigurieren nicht erst Gedanken darüber machen, ob und wo man etwas reinschreiben muss, da „.bash_profile“ auf einem so konfigurierten System ja nichts weiter macht, als „.bashrc“ zu starten.

Man kann auch einen Link anlegen, wovon aber abzuraten ist. Falls man doch irgendwann mal die „.bashrc“ und die „.bash_profile“ mit unterschiedlichen Inhalten füllen möchte, muss man nämlich erst wieder den Link entfernen und die Datei neu anlegen. Mit der Ausführungsanweisung erspart man sich im vorherein unnötige Arbeit.

Automatisch

Es besteht auch die Möglichkeit, beim Systemstart automatisch in X zu starten. Dies wird mittels Runlevels kontrolliert. Diese Runlevel werden in der Datei „/etc/inittab“ definiert. Diese Datei ist also zu bearbeiten. Es gibt dort einen Abschnitt, der Standardmäßig so aussehen wird:

## Only one of the following two lines can be uncommented!
# Boot to console
id:3:initdefault:
# Boot to X11
#id:5:initdefault:

Dieser Abschnitt muss geändert werden, so dass standardmäßig in Runlevel 5 gebootet wird. Dazu wird die Zeile „id:3:initdefault:“ auskommentiert, und die Zeile „#id:5:initdefault:“ einkommentiert. Zusätzlich muss weiter unten in dem Abschnitt „# Example lines for starting a login manager“ ebenfalls etwas angepasst werden. Dort müssen entweder alle Zeilen auskommentiert werden, und eine neue Zeile hinzugefügt werden, oder die vorhandene bereits einkommentierte Zeile geändert werden:

x:5:once:/bin/su BENUTZERNAME -l -c "/bin/bash -l -c startx"

BENUTZERNAME muss natürlich durch den tatsächlichen Benutzernamen ersetzt werden. Es ist hierbei zudem zu beachten, dass nach dem Booten automatisch X mit den Rechten und den sonstigen Einstellungen des angegebenen Benutzers gestartet wird, und zwar ohne dass das Kennwort für diesen Benutzer angegeben werden muss, und ebenfalls, ohne dass man den X-Start je Systemstart wählen kann.

Diese Option eignet sich daher nur, wenn man sich sicher ist, dass man immer automatisch nach dem Starten des Systems mit diesem Benutzer eingeloggt sein möchte. Jeder, der Zugriff auf den Rechner hat, kann mit diesem Benutzeraccount dann nach dem Start ohne Passworteingabe arbeiten. Man sollte diese Technik also nicht an Mehrbenutzersystemen oder sicherheitskritischen Systemen anwenden.

Mit Login-Manager

Wer Openbox per Login Manager starten will, sollte sich mal SLiM ansehen. SLiM hat keine Abhängigkeiten zu Gnome oder KDE. Einen überblick über verschiedene Login-Manager bietet der Wiki-Artikel Login-Manager.

Konfigurationswerkzeuge und -Dateien

Anzeige der Fensterkonfiguration in Obconf

Konfigurieren kann man Openbox über die Datei „~/.config/openbox/rc.xml“, jedoch gibt es für diese Aufgabe auch das grafische Interface "OBconf", welches zunächst installiert werden muss

pacman -Sy obconf

Gestartet wird das Programm mittels des Aufrufes „obconf“. Hier können nun diverse Anpassungen vorgenommen werden, so können zum Beispiel das Theme oder das Fensterverhalten angepasst werden, sowie die Fenstericons konfiguriert werden. Das Menü, das man sich über einen Rechtsklick auf dem Desktop anzeigen lassen kann, wird hier allerdings nicht konfiguriert, dies geschieht in der Datei „~/.config/openbox/menu.xml“. Natürlich gibt es auch für diese Datei ein grafisches Konfigurationstool. Dieses muss jedoch auch erst installiert werden.

pacman -Sy obmenu
Konfiguration des Openbox-Menüs über Obmenu

Danach ist das Tool über den Aufruf von „obmenu“ zu starten. Dieses Tool bietet für die Konfiguration ausreichende Funktionen, unterstützt aber nicht alle Funktionen der menu.xml, so sind derzeit (2008-12-05, Version 1.0-5) Labels für Seperatoren – die diese dann zu Überschriften machen – derzeit nicht unterstützt. Ein weiteres Problem ergibt sich, wenn man alle Menüs entfernt: Es kann kein neues Menü angelegt werden. Das „root-menu“ sollte darüber hinaus sowieso nicht entfernt werden. Innerhalb dieses Menüs wird alles angezeigt, was über Rechtsklick verfügbar ist.

Die Desktopwechsel-Anzeige beim Wechseln auf einen mit „Temporär“ benannten Desktop

Desktopverwaltung

Openbox unterstützt selbstverständlich mehrere virtuelle Desktops. Diese können mit den Tastenkombinationen „Windowstaste+F*“ ausgewählt werden, wobei „F*“ eine der F-Tasten (F1 bis F12) ist, die Zahl der Taste entspricht dabei der Nummer des virtuellen Desktops, den man anwählen möchte. Zudem besteht die Möglichkeit, mittels Strg+Alt+CursorLinks/CursorRechts zum jeweils nächsten bzw. vorherigen Desktop zu wechseln. Auch das Drehen des Mausrades auf dem Desktop, bzw. bei gedrücktem Strg+Alt auch „in“ Anwendungsfenstern wechselt den Desktop.

Wenn man allerdings lieber ein grafisches Verwaltungstool für die Desktops haben möchte, bedarf es eines Zusatztools. Allerdings befindet sich das originäre Openbox-Desktopverwaltungstool „obpager“ nicht in den Repositories, sondern derzeit nur im AUR.

Wem es nur darauf ankommt, die Desktops grafisch verwalten zu können, der kann auch auf z.B. „bbpager“ zurückgreifen, das sich im „extra“-Repository von Arch befindet, und ganz normal über pacman installiert werden kann. Wer lieber den Openbox-Pager verwenden möchte, muss diesen aus dem AUR installieren (ausführliche Informationen dazu siehe AUR-Wikiseite).

Damit der Pager beim Start von Openbox auch mitgestartet wird, ist es sinnvoll, den Aufruf in die Autostart-Datei von Openbox zu legen. Diese befindet sich unter „~/.config/openbox/autostart.sh“, oder muss dort erst angelegt werden. In diese Datei wird nun …

obpager &

… geschrieben. Das Kaufmanns-Und am Ende ist wichtig, damit nachfolgende Befehle ebenfalls ausgeführt werden.

Hintergrundbild anpassen

Openbox ist nicht darauf ausgerichtet, Hintergrundbilder zu verwalten. Man kann hier zum Beispiel auf den Bildbetrachter „feh“ zurückgreifen. Jedoch könnten dafür auch „display“ aus dem ImageMagick-Paket, „xsetbg“ oder „Nitrogen“ verwendet werden.

Der Wiki-Artikel Hintergrundbild anpassen bietet diesbezügliche, ausführliche Anleitungen, inklusive einiger Beispiele.

Maus Cursor Themes

Wie man X11-Maus-Cursor-Themes installiert wird hier beschrieben.

Empfehlenswerte Programme

Openbox hat von Haus aus keine Funktionen wie z.B. Panel, Systemtray, Dateimanager und ähnliches. Deshalb hier mal eine Auswahl von Programmen mit denen man sich seine individuelle Arbeitsumgebung schaffen kann.

Ausführen-Dialog

Gmrun

Wer eine Dialogbox zum Starten von Programmen, ähnlich der Alt-F2 Funktion in Gnome und KDE, haben möchte, kann sich gmrun installieren.

pacman -Sy gmrun

Um „gmrun“ mit Alt-F2 zu starten, folgendes in den <keyboard> Abschnitt in der „~/.config/openbox/rc.xml“ einfügen.

<keybind key="A-F2">
 <action name="execute"><execute>gmrun</execute></action>
</keybind>

Damit diese Einstellung übernommen wird, muss die Konfiguration neu eingelesen werden, dies geschieht mittels …

openbox --reconfigure

… oder indem man sich ausloggt, und wieder einloggt.

Launchy

Launchy verfolgt einen weniger minimalistischen Ansatz; das Aussehen kann mit Hilfe von Skins angepasst werden, es stellt Funktionen wie Rechner oder das Abrufen von Wetterberichten bereit. Ürsprünglich für Windows, ähnelt Gnome Do.

pacman -S launchy

Aufruf über Ctrl + Leertaste.

LXPanel

Wird LXPanel als Taskmanager benutzt kann, so kann der Ausführen-Dialog mittels

lxpanelctl run

aufgerufen werden.

Bashrun

bashrun bashrun stellt eine bash-Session im Stil eines Ausführen-Dialogs zur Verfügung. Programme können so mit Hilfe der von der Shell gewohnten Funktionen wie Tab-Completion und History ausgeführt werden.

pacman -S bashrun

Die folgenden Einstellungen werden für openbox empfohlen:

<application name="bashrun">
 <desktop>all</desktop>
 <decor>no</decor>
 <focus>yes</focus>
 <skip_pager>yes</skip_pager>
 <skip_taskbar>yes</skip_taskbar>
 <layer>above</layer>
</application>

Desktop-Icons

Openbox hat keine eigene Funktion um Icons auf dem Desktop darzustellen. Wer darauf dennoch nicht verzichten möchte, kann z.B. iDesk, ROX, PCManFM oder auch Nautilus (plus 'gnome-settings-daemon') verwenden. ROX und PCManFM sind gleichzeitig auch noch schlanke Dateimanager.

Panels

Es gibt zahlreiche Panels, Pager, etc. die man mit Openbox verwenden kann. Zum Beispiel diese hier:

Um die gewünschten Programme beim Start von Openbox zu starten, sollte ein entsprechender Eintrag in der Openbox-Autostartdatei (s.o.) reichen.

Dateimanager

Es gibt zahlreiche Dateimanager. Deshalb hier nur eine kleine Auswahl.

Natürlich kann auch der GNOME-Dateimanager Nautilus verwendet werden. Er ist zwar nicht so schlank wie die oben genannten, hat aber den Vorteil, dass z.B. remote SSH, FTP und Samba direkt unterstüzt werden. Zudem kann Nautilus, ebenso wie einige der oben genannten Dateimanager die Desktop-Icons anzeigen.

Links