Openbox

Aus DebianforumWiki
Zur Navigation springen Zur Suche springen
Wiki ‹ Grafische Oberflächen ‹ Openbox


Review.png Review: Dieser Artikel ist für das Review freigegeben.


Getestet.png Getestet: Dieser Hinweis soll dir dabei helfen, zu entscheiden, ob dieser Artikel auf deinem System funktionieren wird oder nicht. Solltest du feststellen, dass dieser Artikel bei einer ungetestet Version funktioniert, kannst du das gerne hier korrigieren oder im Forum anmerken.



Openbox

Debianpackage.png Openbox ist ein sehr gut konfigurierbarer Fenstermanager, welchen man mit Fluxbox oder Blackbox vergleichen kann. Optisch unterscheidet er sich insbesondere dadurch, dass er auf ein Panel verzichtet. Bis Version 3.0 war Debianpackage.png Openbox ein Fork von Blackbox, wurde anschließend aber komplett neu geschrieben. Die Desktopumgebung LXDE verwendet Debianpackage.png Openbox als Fenstermanager. Sein Charme liegt in seiner Schlichtheit, wodurch er sich insbesondere für ältere Rechner, Laptops und Minimallisten eignet.

Installation

Die Installation erfolgt über das zugehörige .deb Paket.

root@debian:~# apt-get install openbox

Des Weiteren kann man die Pakete Debianpackage.png obmenu (Menüeditor) und Debianpackage.png obconf (Konfigurationsprogramm) installieren, wenn man auf die händische Einrichtung der Konfigurationsdateien verzichten will.

root@debian:~# apt-get install obmenu obconf
Hinweis.png Hinweis: Debianpackage.png Openbox benötigt selbstverständlich einen laufenden X, weshalb bei einer Minimalinstallation noch die Pakete Debianpackage.png xserver-xorg und Debianpackage.png xinit benötigt werden.


Aufruf

Debianpackage.png Openbox kann man über verschiedene Wege aufrufen. Ist ein Anmeldemanager installiert, muss Debianpackage.png openbox während der Anmeldung als Sitzung ausgewählt werden. Die meisten Openbox-Interessierten werden aber über kurz oder lang auf einen Anmeldemanager verzichten, wodurch Openbox über den Befehl startx gestartet wird.

user@debian:~$ startx

Diesen Prozess kann man durch ein ergänzen der /etc/profile automatisieren. Hierbei muss folgender Eintrag hinzugefügt werden.

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

Nun erfolgt beim Anmelden eines Users auf der ersten Konsole, automatisch der Start des X-Servers und somit von Debianpackage.png openbox.

Hinweis.png Hinweis: Ist im Alternativen-System ein anderer Windowmanager bzw. Desktopumgebung eingetragen, kann man Openbox über die Datei ~/.xsession starten. Diese Datei wird, falls vorhanden und ausführbar, anstelle von x-session-manager bzw. x-window-manager ausgeführt.

Beispieldatei ~/.xsession:

#!/bin/sh
openbox

Prinzipiell reicht allerdings ein Link auf die Datei /usr/bin/openbox-session:

user@debian:~$ ln -s /usr/bin/openbox-session  ~/.xsession


Innerhalb von Gnome, KDE und Xfce

Debianpackage.png Openbox kann auch innerhalb von Gnome, KDE und Xfce als Fenstermanager fungieren. Bei Gnome und KDE funktioniert die Auswahl über den grafischen Anmeldemanager (Auswahl "GNOME/Openbox" oder "KDE/Openbox"). Sollte diese nicht gegeben sein, kann Debianpackage.png openbox auch mittels der folgenden Befehle gestartet werden.

  • Gnome
user@debian:~$ openbox-gnome-session
  • KDE
user@debian:~$ openbox-kde-session

Damit Debianpackage.png Openbox dauerhaft die Rolle des Fenstermanagers übernimmt, ist ein Eintrag der jeweiligen Befehle in den Autostart der jeweiligen Umgebung notwendig.

  • Xfce

Die Integration in Xfce ist bis jetzt noch nicht standardmäßig vorgesehen. Allerdings lässt sie sich durch einen Kniff dennoch realisieren. Während einer laufenden Xfce-session lässt man folgenden Befehl laufen.

user@debian:~$ openbox --replace & exit

Damit diese Änderung dauerhaft aktiv ist, muss man nachdem sich das Terminal geschlossen hat, als nächstes ausloggen und dabei darauf achten, das die Checkbox Aktuelle Sitzung speichern aktiviert ist.


Steuerung

Die Bedienung von Debianpackage.png openbox erfolgt komplett über Tastenkombinationen und/oder Mauseingaben.

Tastenkombinationen

Eingabe Wirkung
Alt+F4 Schließt das aktive Fenster
Alt+Space Kontextmenü für Fensteroptionen wird geöffnet
Alt+Tab Wechsel zwischen Fenstern
Alt+Tab+Shift Wechsel zwischen Fenstern rückwärts
Win+D Minimieren/Wiederherstellen aller Fenster
Alt+Esc Wechselt zum zuletzt genutzten Fenster
Win+F1 Wechselt zum 1. Desktop(F2 zum 2.Desktop...)
Alt+shift+right Wechselt zum Desktop rechts vom aktiven und nimmt das aktive Fenster mit
Alt+Scrollrad Wechselt zwischen den Desktops
Alt+Linke Maustaste Aktives Fenster bewegen
Alt+Rechte Maustaste Größe des Fensters ändern

Mauseingaben

Eingabe Wirkung
Rechtsklick auf den Desktop Kontextmenü zum Aufrufen von Programmen wird geöffnet
Rechtsklick+Linksklick auf den Desktop Kontextmenü zum hinzufügen und entfernen von Desktops und zum Wechseln der Fenster über alle Arbeitsflächen wird geöffnet
Rechtsklick auf das Titelmenü Kontextmenü für Fensteroptionen wird geöffnet
Doppelklick auf das Titelmenü Maximieren des Fensters
Scrollen auf dem Titelmenü Fenster wird ein- bzw. ausgeklappt

Einrichtung

Debianpackage.png Openbox lässt sich komplett über 4 Einrichtungsdateien konfigurieren. Es handelt sich dabei um rc.xml, menu.xml, autostart und die enviroment. Diese Dateien befinden sich unter /etc/xdg/openbox/. Werden hier Änderungen vorgenommen, erfolgen diese Systemweit. Wenn die Änderungen nur für einen bestimmten Nutzer erfolgen sollen, sollten die Dateien in ~/.config/openbox/ kopiert werden. Damit die Änderung wirksam werden, muss Debianpackage.png openbox neu gestartet werden oder mit

user@debian:~$ openbox --reconfigure

aktualisiert werden.

Hinweis.png Hinweis: Debianpackage.png Openbox verarbeitet zuerst die Dateien im Verzeichnis des jeweiligen Nutzers und erst wenn keine entsprechende Datei oder Angabe gefunden wurde die systemweiten Dateien.


rc.xml

Die rc.xml ist die Haupteinrichtungsdatei von Debianpackage.png openbox. Alle wichtige Einstellungen wie unter anderem Fensterverhalten, Fensterdekoration, Anwendungsverhalten, Anzahl der virtuellen Desktops und Tastenkürzel werden hier vorgenommen. Dazu muss man die Datei /etc/xdg/openbox/rc.xml (oder ~/.config/openbox/rc.xml für den einzelnen Benutzer) mit einem Editor seiner Wahl editieren. Vieles lässt sich auch bereits mit dem Programm Debianpackage.png obconf realisieren.

Überblick über die Elemente der rc.xml

Eintrag Bedeutung
<!-- blabla --> Kommentar
<openbox_config> Konfigurationssachen </openbox_config> Wurzelelement, damit wird die Datei begonnen bzw. geschlossen
<resistance> Fensterwiderstand </resistance> Ab welchen Abstand überlappen sich Fenster
<focus> aktuelles Fenster </focus> Wann wird ein Fenster zum aktuellen Fenster
<placement> Fensterposition </placement> Wo soll ein neues Fenster geöffnet werden
<theme> Fensterdesign </theme> Wie sehen die Fenster aus
<desktops> Multiple Arbeitsflächen </desktops> Optionen für mehrere Arbeitsflächen
<resize> Fenstergrößenveränderung </resize> Wie soll das Verändern von Fenstergrößen ablaufen
<margins> Ränder </margins> Festlegung des Arbeitsflächenrandes
<dock> Dockanwendung </dock> Verhalten von Dockanwendungen
<keyboard> Tastenkürzel </keyboard> Definition von Tastenkürzeln
<mouse> Mauseingaben </mouse> Was und wie passiert bei Mauseingaben
<menu> Kontextmenü </menu> Einstellungen zum Kontextmenü von Debianpackage.png openbox
<applications> Anwendungsverhalten </applications> Hier werden besondere Einstellungen für bestimmte Programme definiert

Wichtig ist zu beachten das jeder Tag(<>) auch mit einem entsprechenden Tag(</>) beendet wird und das alle Elemente, außer dem Kommentar, innerhalb des Wurzelelements stehen. Des weiteren müssen die oben stehenden Elemente durch weitere Tags, innerhalb, erweitert werden damit sie ihren gestaltenden Charakter entfalten.

Die Elemente der rc.xml im einzelnen

<resistance></resistance> -- Fensterwiderstand
Eintrag Werte
<strength>Wert</strength> Der Wert muss eine Zahl sein. Er beschreibt wie viel Pixelwiderstand zwischen zwei Fenster besteht, bevor sie sich überlappen können.
<screen_edge_strength>Wert</screen_edge_strength> Der Wert muss eine Zahl sein. Er beschreibt wie viel Pixelwiderstand zwischen einem Fenster und dem Bildschirmrand besteht, bevor das Fenster außerhalb des Bildschirmrandes verschoben werden kann.

Beispiel für den <resistance> Tag

<resistance>
<!-- Beispiel wobei sich die Fenster bei einem Pixelwiderstand von 10 Pixeln überlappen und den Rand
 ab 20 Pixeln. --> 
<strength>10</strength>
<screen_edge_strength>20</screen_edge_strength>
</resistance>
<focus></focus> -- aktuelles Fenster
Eintrag Werte
<focusNew>Wert</focusNew> Der Wert muss entweder yes oder no enthalten. Durch setzen von yes wird ein Fenster das geöffnet wird automatisch zum aktuellen.
<focusLast>Wert</focusLast> Der Wert muss entweder yes oder no enthalten. Durch setzen von yes wird immer das Fenster zum aktuellen, beim wechseln des Desktops, welches zuletzt aktuell war. Dies ist nur relevant, wenn der <followMouse> Tag den Wert yes enthält.
<followMouse>Wert</followMouse> Der Wert muss entweder yes oder no enthalten. Durch setzen von yes wird immer das Fenster zum aktuellen, welches sich bei der Mausbewegung unter dem Mauszeiger befindet.
<focusDelay>Wert</focusDelay> Der Wert muss eine Zahl sein. Er beschreibt die Zeit in Millisekunden die Debianpackage.png openbox wartet, bevor ein Fenster unter dem Mauszeiger zum aktuellen wird. Dies ist nur relevant, wenn der <followMouse> Tag den Wert yes enthält.
<underMouse>Wert</underMouse> Der Wert muss entweder yes oder no enthalten. Durch setzen von yes wird das Fenster zum aktuellen welches sich unter der Maus befindet, selbst wenn sie nicht bewegt wurden ist (z.B.: Das aktuelle Fenster wird minimiert wodurch sich das darunterliegende Fenster nun unter der Maus befindet und zum aktuellen wird). Dies ist nur relevant, wenn der <followMouse> Tag den Wert yes enthält.
<raiseOnFocus>Wert</raiseOnFocus> Der Wert muss entweder yes oder no enthalten. Durch setzen von yes wird das Fenster welches durch den <followMouse> Tag zum aktuellen wird, auch in den Vordergrund geholt. Dies ist nur relevant, wenn der <followMouse> Tag den Wert yes enthält.

Beispiel für den <focus> Tag

<focus>
<!-- Beispiel wobei neugeöffnete Fenster automatisch zum aktuellen werden, Fenster unter dem sich bewegenden 
Mauszeiger nach 500 Millisekunden zum aktuellen werden und automatisch in den Vordergrund geholt werden. --> 
<focusNew>yes</focusNew>
<focusLast>no</focusLast>
<followMouse>yes</followMouse>
<focusDelay>500</focusDelay>
<underMouse>no</underMouse>
<raiseOnFocus>yes</raiseOnFocus>
</focus>
<placement></placement> -- Fensterposition
Eintrag Werte
<policy>Wert</policy> Der Wert muss entweder smart oder undermouse enthalten. Das setzen von undermouse führt dazu, dass neue Fenster unterhalb des Mauszeigers positioniert werden. Durch smart hingegen, werden neue Fenster automatisch platziert.
<center>Wert Der Wert muss entweder yes oder no enthalten. Das setzen von yes führt dazu, dass Fenster welche neu geöffnet werden zentriert platziert werden. Durch no hingegen, werden neue Fenster im linken oberen Rand der Arbeitsfläche geöffnet. Ist bereits ein Fenster in jeweiligen Bereich geöffnet, wird das neue Fenster leicht versetzt platziert. Dies ist nur relevant, wenn der <policy> Tag den Wert smart enthält.
<monitor>Wert</monitor> Der Wert muss entweder any, mouse oder active enthalten. Das setzen von any führt dazu, dass neue Fenster auf jedem Monitor geöffnet werden. Bei mouse werden neue Fenster nur auf dem Monitor geöffnet auf dem sich die Maus befindet. Durch active hingegen, werden neue Fenster auf dem Monitor platziert wo sich das aktive Fenster bedindet. Dies ist nur relevant, wenn der <policy> Tag den Wert smart enthält und mehrere Monitor vorhanden sind. Virtuelle Arbeitsflächen erfüllen den Tatbestand hingegen nicht.
<primarymonitor>Wert</primarymonitor> Der Wert muss entweder eine Zahl sein, mouse oder active enthalten. Das setzen einer Zahl führt dazu, dass Popupdialoge auf dem jeweiligen Monitor eingeblendet werden. Bei mouse werden die Popupdialoge auf dem Monitor eingeblendet, auf dem sich die Maus aktuell befindet. Durch active hingegen werden die Popupdialoge auf dem Monitor eingeblendet, auf welchem sich das aktuelle Fenster befindet. Dies ist nur relevant, wenn mehrere Monitor vorhanden sind. Virtuelle Arbeitsflächen erfüllen den Tatbestand hingegen nicht.

Beispiel für den <placement> Tag

<placement>
<!-- Beispiel wobei neugeöffnete Fenster unterhalb des Mauszeigers geöffnet und Popupdialoge auf dem Monitor, 
wo sich die Maus befindet eingeblendet werden. Der <monitor> und der <center> Tag werden ignoriert,
da ihre Voraussetzungen nicht erfüllt sind. --> 
<policy>undermouse</policy>

<center>yes

<monitor>active</mouse>
<primarymonitor>mouse</primarymonitor>
</placement>
<theme></theme> -- Fensterdesign
Eintrag Werte
<name>Wert</name> Der Wert kann eine beliebige Kombination aus Zeichen sein. Er gibt den Namen der zuverwendenden Theme an. Die Themen sind im Verzeichnis /usr/share/themes (oder im selbsterstellten ~/.themes für den einzelnen Benutzer) gespeichert. Für jede Theme wird ein eigener Ordner benötigt, mit einem Unterordner namens openbox-3 der die Dateien der Theme (die themerc) enthält. Der Name des Ordners ist der Wert des <name> Tag. Diese Ordner werden beim ausführen eines .obt-file automatisch angelegt. Wie man selbst eine Theme erstellen kann, wird im Openboxwiki (Englisch) erläutert. Viele fertige Themen findet man auf Box-look.org.
<titlelayout>Wert</titlelayout> Der Wert regelt die Reihenfolge der Bereiche in der Titelzeile (v.l.n.r.). Er kann folgende Werte erhalten:
  • N Button "Programmicon" (Fenstermenü)
  • L Titelbeschriftung
  • I Button "Minimieren"
  • M Button "Maximieren"
  • C Button "Schließen"
  • S Button "Fenster ein- bzw. ausklappen"
  • D Button "Omnipräsenz" (Sichtbarkeit auf allen Arbeitsflächen regeln)
<keepBorder>Wert</keepBorder> Der Wert muss entweder yes oder no enthalten. Durch setzen von yes werden die Fensterrahmen auch gezeichnet, wenn das Fenster undekoriert ist,
<animateIconify>Wert</animateIconify> Der Wert muss entweder yes oder no enthalten. Durch setzen von yes wird eine kleine Animation beim minimieren eines Fensters ausgeführt.
<font place=Wert1>weitere Einträge </font> Der Wert1 muss entweder "ActiveWindow" (aktives Fenster), "InactiveWindow" (inaktive(s) Fenster), "MenuHeader" (Menüüberschrift(en)), "MenuItem" (Menüeinträge) oder "OnScreenDisplay" (Popupdialoge) enthalten. Er bestimmt in welchem Bereich, die folgenden Einstellungen für die Schrift gelten sollen. Diese wird durch folgende weitere Einträge bestimmt:
  • <name>Name der Schriftart</name>
  • <size>Schriftgröße</size>
  • <weight>bold oder normal</weight> Durch setzen von bold wird die Schrift fett gezeichnet.
  • <slant>italic oder normal</slant> Durch setzen von italic wird die Schrift kursiv gezeichnet.

Beispiel für den <theme> Tag

<theme>
<!--  Beispiel entspricht untenstehendem Bild. Es wird die MediterraneanNight-theme verwendet. 
Die Buttons "Schließen", "Maximieren" und "Minimieren" befinden sich in der linken Titelseite und erst dann 
folgt der Titelname. Der Rahmen wird beim undekorieren auch gezeichnet und es findet keine Animation 
beim minimieren statt. -->
 <name>MediterraneanNight</name>
 <titleLayout>CMIL</titleLayout>
 <keepBorder>yes</keepBorder>
 <animateIconify>no</animateIconify>
 <font place"ActiveWindow">
 <name>sans</name>
 <size>8</size>
 <weight>bold</weight>
 <slant>normal</slant>
 </font>
 <font place"InactiveWindow">
 <name>sans</name>
 <size>8</size>
 <weight>bold</weight>
 <slant>normal</slant>
 </font>
 <font place"MenuHeader">
 <name>sans</name>
 <size>9</size>
 <weight>normal</weight>
 <slant>normal</slant>
 </font>
 <font place"MenuItem">
 <name>sans</name>
 <size>9</size>
 <weight>normal</weight>
 <slant>normal</slant>
 </font>
 <font place"OnScreenDisplay">
 <name>sans</name>
 <size>8</size>
 <weight>bold</weight>
 <slant>normal</slant>
 </font>
 </theme>
Beispiel der obenstehenden <theme>-Konfiguration.
<desktops></desktops> -- Multiple Arbeitsflächen
Eintrag Werte
<number>Wert</number> Der Wert muss eine Zahl sein. Er beschreibt wie viele virtuelle Arbeitsfläche zur Verfügung gestellt werden.
<firstdesk>Wert</firstdesk> Der Wert muss eine Zahl sein. Er gibt die Arbeitsfläche an, welche beim ersten starten von Debianpackage.png Openbox angezeigt wird.
<popupTime>Wert</popupTime> Der Wert muss eine Zahl sein. Er beschreibt die Zeit in Millisekunden, wie lange der Popupdialog beim Wechseln der Arbeitsfläche angezeigt wird. Das setzen der Zahl 0 führt dazu, dass das Einblenden des Popupdialoges deaktiviert wird.
<names>Wert</names> Der Wert kann eine beliebige Kombination aus Zeichen sein. Der erste <names> Tag benennt den ersten Desktop, der zweite <names> Tag den zweiten...

Beispiel für den <desktops> Tag

<desktops>
<!-- Beispiel für 3 Arbeitsflächen mit unterschiedlichen Bezeichnungen und ohne Popupdialog. Die aktuelle 
Arbeitsfläche nachdem Starten von openbox ist Nummer 3. --> 
<number>3</number>
<firstdesk>3</firstdesk>
<popupTime>0</popupTime>
<names>
<name>Lenny</name>
<name>Sid</name>
<name>Woody</name>
</names>
</desktops>
<resize></resize> -- Fenstergrößenveränderung
Eintrag Werte
<drawContents>Wert</drawContents> Der Wert muss entweder yes oder no enthalten. Das setzen von yes führt dazu, dass der Fensterinhalt während des Änderns der Größe eines Fensters neu gezeichnet wird. Wird der Wert no gesetzt, wird der Fensterinhalt erst nach dem Abschluss des Änderns (loslassen der Maustaste oder betätigen von Enter) der Größe neu gezeichnet.
<popupShow>Wert</popupShow> Der Wert muss entweder nonpixel, always oder never enthalten. Das setzen von nonpixel führt dazu, dass ein Popupdialog erscheint während die Größe eines Terminals verändert wird. Der Popupdialog zeigt die aktuelle Größe des Fensters an. Durch setzen von always wird der Popupdialog bei allen Anwendungen eingeblendet. Der Wert never führt dazu das der Dialog nie erscheint.
<popupPosition>Wert</popupPosition> Der Wert muss entweder center, top oder fixed enthalten. Das setzen von center führt dazu, dass der Popupdialog in der Mitte des Fensters beim dem die Größe verändert wird erscheint. Durch setzen des top Wertes, wird der Popupdialog mittig der Titelleiste eingeblendet. Der Wert fixed ermöglicht, in Verbindung mit dem <popupFixedPosition> Tag die Position des Popupdialoges generell zu bestimmen.
<popupFixedPosition>weitere Einträge</popupFixedPosition> Die weiteren Einträge spezifizieren die Position des Popupdialogs, anhand der X-Achse und Y-Achse.
  • <x>Wert oder center</x> Der Wert beschreibt die horizontale Positon in Pixeln vom Bildschirmrand des Popupdialoges. Positive Zahlen haben ihren Ursprung im linken Bildschirmrand, negative hingegen im rechten Bildschrimrand. Das setzen von center platziert den Popupdialog in die Mitte der X-Achse.
  • <y>Wert oder center</y> Der Wert beschreibt die vertikale Positon in Pixeln vom Bildschirmrand des Popupdialoges. Positive Zahlen haben ihren Ursprung im oberen Bildschirmrand, negative hingegen im unteren Bildschrimrand. Das setzen von center platziert den Popupdialog in die Mitte der Y-Achse.

Beispiel für den <resize> Tag

<resize>
<!-- Beispiel bei dem der Fensterinhalt während der Größenveränderung nicht neu gezeichnet wird. 
Der Popupdialog, während der Größenveränderung der die Größe des Fensters anzeigt, 
wird bei allen Fenstern angezeigt und befindet sich mittig am linken Bildschirmrand. --> 
<drawContents>no</drawContents>
<popupShow>always</popupShow>
<popupPosition>Fixed</popupPosition>
<popupFixedposition>
<x>center</x>
<y>1</y>
</popupFixedPosition>
</resize>
<margins></margins> -- Ränder
Eintrag Werte
<top>Wert</top> Der Wert muss eine Zahl sein. Er legt den oberen Rand der Arbeitsfläche in Pixeln fest. Fenster im Vollbildmodus können ihn nicht überlappen und neue Fenster werden nicht in ihm platziert.
<left>Wert</left> Der Wert muss eine Zahl sein. Er legt den linken Rand der Arbeitsfläche in Pixeln fest. Fenster im Vollbildmodus können ihn nicht überlappen und neue Fenster werden nicht in ihm platziert.
<right>Wert</right> Der Wert muss eine Zahl sein. Er legt den rechten Rand der Arbeitsfläche in Pixeln fest. Fenster im Vollbildmodus können ihn nicht überlappen und neue Fenster werden nicht in ihm platziert.
<bottom>Wert</bottom> Der Wert muss eine Zahl sein. Er legt den unteren Rand der Arbeitsfläche in Pixeln fest. Fenster im Vollbildmodus können ihn nicht überlappen und neue Fenster werden nicht in ihm platziert.

Beispiel für den <margins> Tag

<margins>
<!-- Beispiel für eine Arbeitsfläche ohne Ränder. --> 
<top>0</top>
<left>0</left>
<right>0</right>
<bottom>0</bottom>
</margins>
<dock></dock> -- Dockanwendungen

Das Dock gibt den Bereich an, in dem die Dockapps des User laufen. Dockapps sind kleine nützliche Programme welche als eine Mischung zwischen Panel und Fenster angesehen werden können. Einstellungen im <dock> Tag wirken sich nur aus, wenn wenigstens ein Dockapp läuft. Eine Auswahl von Dockapps befindet sich unter Dockapps.

Eintrag Werte
<position>Wert</position> Der Wert muss entweder topleft, left, bottomleft, topright, right, bottom right, top, bottom oder floating enthalten. Er gibt an in welchem Bereich, die dockapps laufen sollen.
<stacking>Wert</stacking> Der Wert muss entweder above, normal oder below enthalten. Das setzen von above führt dazu das, dass Dock nicht von Fenster überlappt werden kann. Bei normal können die Fenster das Dock überlappen und unterlappen. Durch below hingegen können liegen die Fenster immer über dem Dock.
<direction>Wert</direction> Der Wert muss entweder horizontal oder vertical enthalten. Er beschreibt die Linie, auf welcher sich die Dockapps aufreihen sollen.
<floatingX>Wert</floatingX> Der Wert muss eine Zahl sein. Er legt die Position des Dock auf der X-Achse (Abzissenachse) fest. Dies ist nur relevant, wenn der <position> Tag den Wert floating enthält.
<floatingY>Wert</floatingY> Der Wert muss eine Zahl sein. Er legt die Position des Dock auf der Y-Achse (Ordinatenachse) fest. Dies ist nur relevant, wenn der <position> Tag den Wert floating enthält.
<autohide>Wert</autohide> Der Wert muss entweder yes oder no enthalten. Das setzen von yes führt dazu das, dass Dock automatisch eingeblendet/ausgeblendet wird wenn sich die Maus über ihm befindet bzw. diesen Bereich verlässt.
<hideDelay>Wert</hideDelay> Der Wert muss eine Zahl sein. Er beschreibt die Zeit in Millisekunden, welche vergehen soll damit das Dock sich verbirgt, wenn sich die Maus nicht mehr über ihm befindet. Dies ist nur relevant, wenn der <autohide> Tag den Wert yes enthält.
<showDelay>Wert</showDelay> Der Wert muss eine Zahl sein. Er beschreibt die Zeit in Millisekunden, welche vergehen soll damit das Dock erscheint, wenn sich die Maus über ihm befindet. Dies ist nur relevant, wenn der <autohide> Tag den Wert yes enthält.
<moveButton>Wert</moveButton> Der Wert muss entweder right, middle oder left enthalten. Er gibt an, mit welcher Maustaste die Dockapps verschoben werden können.
<noStrut>Wert</noStrut> Der Wert muss entweder yes oder no enthalten. Das setzen von yes führt dazu das, dass Dock am Rand keinen Extrabereich einnimmt. Sein Verhalten richtet sich dann nach dem <stacking> Tag. Dies ist nur relevant, wenn der <position> Tag nicht den Wert floating enthält.

Beispiel für den <dock> Tag

<dock>
<!-- Beispiel für ein Dock am rechten Rand. Welches die Fenster überlappt, aber keinen 
Extrabereich einnimmt. Die einzelnen Dockapps lassen sich mit der linken Maustaste verschieben. --> 
<position>topright</position>
<stacking>above</stacking>
<direction>Vertical</direction>
<floatingX>0</floatingX>
<floatingY>0</floatingY>
<autoHide>no</autoHide>
<hideDelay>300</hideDelay>
<showDelay>300</showDelay>
<moveButton>left</moveButton>
<noStrut>yes</noStrut>
</dock>
<keyboard></keyboard> -- Tastaturkürzel
Eintrag Werte
<keybind key=Wert>weitere Einträge"</keybind> Der Wert enthält die Taste(n) die zusammen gedrückt werden müssen um die unter weitere Einträge definierten Aktionen ausführen zu können. Eine Liste von möglichen Aktionen findet man im openboxwiki (Englisch). Die einzelnen Tasten werden durch einen Bindestrich getrennt und über ihren Namen bzw. ihren Hexadezimalwert angesprochen (Groß- und Kleinschreibung beachten). Tasten Für folgende Tasten gelten abweichende Namen:
  • Alt A
  • Shift S
  • Strg C
  • Super W

Es ist nicht möglich Tastenkombinationen mit mehr als einer "normalen" Taste (alle Taste die nicht zu den obengenannten gehören) zu erstellen. Um eine Tastenkombination zu definieren bei der die Tasten nacheinander gedrückt werden müssen, muss man <keybind key=Wert> entsprechend schachteln. Werden Tasten dieser Kombination gedrückt, erscheint nach kurzer Zeit ein Dialog im oberen linken Bildschirmbereich. Dieser verschwindet, und somit die Möglichkeit die Tastenkombination auszuführen, nach kurzer Zeit oder durch ausführen der Tastenkombination im <chainQuitKey> Tag. Um Aktionen in Verbindung mit Tasten- und Mauseingaben auszuführen müssen diese im <mouse> Tag definiert werden.

<chainQuitKey>Wert</chainQuitKey> Der Wert enthält die Taste(n) die zusammen gedrückt werden müssen, um Tastenkombinationen abzubrechen die nacheinander eingegeben werden müssen,

Welchen Namen bzw. Hexadezimalwert eine Taste hat kann man mit dem Programm xev aus dem Paket Debianpackage.png x11-utils ermitteln.

Beispiel der Ausgabe von xev für Kontextmenütaste, die relevanten Werte sind hervorgehoben

KeyRelease event, serial 45, synthetic NO, window 0x1000001,
   root 0x14e, subw 0x0, time 9650674, (721,-205), root:(852,97),
   state 0x0, keycode 135 (keysym 0xff67, Menu), same_screen YES,
   XLookupString gives 0 bytes: 
   XFilterEvent returns: False
Hinweis.png Hinweis: Bei Definition eigener Tastenkombinationen, sollten die vorhanden Tastenkombinationen bestehen gelassen werden und nur abgeglichen werden ob die selbst definierten Eingaben zu keiner Überschneidung führen.


Beispiel für den <keyboard> Tag

<keyboard>
<!-- Beispiel wobei Tastenombinationen über Strg+g abgebrochen werden. Das root-menu würde über die Kontextmenutaste aufgerufen. 
Des weiteren wird über die Supertaste und die Pfeiltaste Windows Aero Snap nachgebildet. 
Als letztes noch eine Schachtelung bei der nach dem drücken der Taste Alt mit der Taste l die Anwendung LibreOffice aufgerufen wird 
oder mit der Taste d das aktuelle Fenster immer im Vordergrund ist. --> 
<chainQuitKey>C-g</chainQuitKey>
<keybind key="Menu">
<action name="ShowMenu">
<menu>root-menu</menu>
</action>
</keybind>
<keybind key="W-Left">
<action name="UnmaximizeFull"/>
<action name="MaximizeVert"/>
<action name="MoveResizeTo">
<width>50%</width>
</action>
<action name="MoveToEdge"><direction>west</direction></action>
</keybind>
<keybind key="W-Right">
<action name="UnmaximizeFull"/>
<action name="MaximizeVert"/>
<action name="MoveResizeTo">
<width>50%</width>
</action>
<action name="MoveToEdge"><direction>east</direction></action>
</keybind>
<keybind key="W-Down">
<action name="Unmaximize"/>
</keybind>
<keybind key="W-Up">
<action name="Maximize"/>
</keybind>
<keybind key="A">
<keybind key="l">
<action name="Execute"/>
<command>libreoffice</command>
</keybind>
<keybind key="d">
<action name="ToggleAlwaysOntop"/>
</keybind>
</keybind>
</keyboard>
<mouse></mouse> -- Mauseingaben
Eintrag Werte
<dragThreshold>Wert</dragThreshold> Der Wert muss eine Zahl sein. Er beschreibt den Pixelwiderstand bis ein Fenster tatsächlich mit der Maus verschoben werden kann.
<doubleClickTime>Wert</doubleClickTime> Der Wert muss eine Zahl sein. Er beschreibt die Zeit in Millisekunden die zwischen zwei Mausklicks vergehen darf, damit diese als Doppelklick wahrgenommen werden.
<screenEdgeWarpTime>Wert</screenEdgeWarpTime> Der Wert muss eine Zahl sein. Er beschreibt die Zeit in Millisekunden wie lange ein Fenster am Bildschirmrand gehalten werden muss, bevor es automatisch auf die nächste Arbeitsfläche verschoben wird. Das setzen der Zahl 0 führt dazu, dass das automatische Verschieben deaktiviert wird.
<context name=Wert1>weiterer Eintrag</context> Der Wert1 muss entweder
  • "Frame" (komplettes Fenster),
  • "Titlebar" (Titelleiste),
  • "Top" (oberer Rand eines Fensters),
  • "Left" (linker Rand eines Fensters),
  • "Right" (rechter Rand eines Fensters),
  • "Bottom" (unterer Rand eines Fensters),
  • "BLCorner" (untere linke Ecke eines Fensters),
  • "BRCorner" (untere rechte Ecke eines Fensters),
  • "TLCorner" (obere linke Ecke eines Fensters),
  • "TRCorner" (obere rechte Ecke eines Fensters),
  • "Client" (das Fenster innerhalb der Dekoration),
  • "Icon" (Programmicon Button in der Titelleiste),
  • "AllDesktops" (Omnipräsenz (Sichtbarkeit auf allen Arbeitsflächen regeln) Button der Titelleiste),
  • "Shade" (Fenster ein- bzw. ausklappen Button in der Titelleiste),
  • "Iconify" (Minimieren Button der Titelleiste),
  • "Maximize" (Maximieren Button der Titelleiste),
  • "Close" (Schließen Button der Titelleiste),
  • "Desktop" (Arbeitsfläche),
  • "Root" (Arbeitsfläche - nur relevant wenn kein Programm für Desktopicons läuft) oder
  • "MoveResize" (während das Fenster bewegt wird bzw. wenn die Größe verändert wird) enthalten.

Er bestimmt in welchem Zusammenhang bzw. Bereich, die folgenden Mauseingaben gelten sollen. Diese werden durch folgenden weiteren Eintrag bestimmt:

  • <mousebind button=Taste action=Wert><action name=Aufgabe></mousebind>

Unter Taste wird definiert welche Mauseingabe die folgende Aufgabe auslösen soll. Als Werte für Taste können left, right, middle, up (nach oben scrollen) und down (nach unten scrollen) definiert werden. Für eine Maus mit mehr Tasten können des weiteren die Werte button6, button7... für Taste genutzt werden. Es ist auch möglich Tastaturkombinationen mit einzubinden.

Der Wert muss entweder press (klicken einer Taste), click (klicken und loslassen einer Taste), doubleclick(doppeltes Klicken einer Taste). release (loslassen einer Taste) oder drag (bewegen der Maus während ein Objekt angeklickt ist) enthalten. Er definiert in welcher Art die Mauseingabe ausgeführt werden muss, um die folgende Aufgabe auszulösen.

Unter Aufgabe wird festgelegt welche Aktion, nach der Mauseingabe ausgeführt werden soll. Eine Liste von möglichen Aktionen findet man im openboxwiki (Englisch).

Hinweis.png Hinweis: Bei Definition eigener Mauseingaben, sollten die vorhanden Mauseingaben bestehen gelassen werden und nur abgeglichen werden ob die selbst definierten Eingaben zu keiner Überschneidung führen.


Beispiel für den <mouse> Tag

<mouse>
<!-- Beispiel bei dem Fenster mit geringer Mausbewegung verschoben werden können und nach 200 Millisekunden, während sie mit der Maus am Arbeitsflächenrand 
gehalten wurden, automatisch auf die nächste Arbeitsfläche verschoben werden. Zwei Mausklicks werden als Doppelklick wahrgenommen,
wenn sie innerhalb von 200 Millisekunden erfolgt sind. Die Mauseingaben sind für die Titelleiste definiert. Das betätigen der linken Taste führt dazu, 
dass das Fenster in den Vordergrund geholt und fokussiert wird. Die zweite Mauseingabe klappt, nach dem drücken und wieder loslassen der linken Maustaste, 
ein eingerolltes Fenster wieder aus. Die dritte Mauseingabe ermöglicht es, durch das gedrückt halten der linken Maustaste und der Umschalttaste,
Fenster zu verschieben. Der vierte Eintrag maximiert ein Fenster nach einem Doppelklick der linken Maustaste.
Im fünften Eintrag wird das Fenster eingeklappt und wenn sich mit wenigstens einem Fenster überlappt, dann wird dieses zum aktiven Fenster und fokusiert. 
Durch die sechste Mauseingabe wird, beim herunter scrollen, das Fenster wieder ausgerollt. Das betätigen der mittleren Maustaste schließt das Fenster.  -->
<dragThreshold>3</dragThreshold>
<doubleClickTime>200</doubleClickTime>
<screenEdgeWarpTime>200</screenEdgeWarpTime>
<context name="Titlebar">
<mousebind button="Left" action="Press">
<action name="Focus"/>
<action name="Raise"/>
</mousebind>
<mousebind button="Left" action="Click">
<action name="Unshade"/>
</mousebind>
<mousebind button="S-Left" action="Drag">
<action name="Move"/>
</mousebind>
<mousebind button="Left" action="DoubleClick">
<action name="ToggleMaximizeFull"/>
</mousebind>
<mousebind button="Up" action="Click">
<action name="Shade"/>
<action name="FocusToBottom"/>
<action name="Unfocus"/>
</mousebind>
<mousebind button="Down" action="Click">
<action name="Unshade"/>
</mousebind>
<mousebind button="Middle" action="Press">
<action name="Close"/>
</mousebind>
</context>
</mouse>
<menu></menu> -- root-menu
Eintrag Werte
<hideDelay>Wert</hideDelay> Der Wert muss eine Zahl sein. Er beschreibt die Zeit in Millisekunden welche vergehen muss, bis sich das Menü automatisch nach der Betätigung einer Maustaste verbergen lässt.
<middle>Wert</middle> Der Wert muss entweder yes oder no enthalten. Das setzen von yes führt dazu, dass Untermenüs mittig des öffneden Menüeintrages geöffnet werden.
<submenuShowDelay>Wert</submenuShowDelay> Der Wert muss eine Zahl sein. Er beschreibt die Zeit in Millisekunden die vergehen muss bevor im root-menu ein Untermenü automatisch geöffnet wird wenn der entsprechende Menüeintrag markiert ist. Ein negativer Wert führt dazu das, dass Untermenü aktiv durch klicken oder -> geöffnet werden muss.
<submenuHideDelay>Wert</submenuHideDelay> Der Wert muss eine Zahl sein. Er beschreibt die Zeit in Millisekunden die vergehen muss bevor im root-menu ein Untermenü automatisch geschlossen wird wenn der entsprechende Menüeintrag nicht mehr markiert ist. Ein negativer Wert führt dazu das, dass Untermenü nur geschlossen werden kann wenn ein anderes Untermenü geöffnet wird.
<applicationIcons>Wert</applicationIcons> Der Wert muss entweder yes oder no enthalten. Das setzen von yes führt dazu, dass im client-list-combined-menu und im client-list-menu Icons angezeigt werden (Anmerkung: Die Namen entsprechen den jeweiligen Aktionen (Englisch) und in der Version 3.5 von Debianpackage.png openbox funktioniert dieser Tag nicht).
<showIcons>Wert</showIcons> Der Wert muss entweder yes oder no enthalten. Das setzen von yes führt dazu, dass Icons für eigene Menüeinträge in der menu.xml angezeigt werden. Dies ist nur relevant wenn beim jeweiligen Menüeintrag der Pfad zum gewünschten Icon angegeben ist.
<manageDesktops>Wert</manageDesktops> Der Wert muss entweder yes oder no enthalten. Das setzen von yes ermöglicht das über dass Menü zum Aufrufen von Programmen dynamisch neue Arbeitsfläche erzeugt und auch wieder entfernt werden können.
<file>Wert</file> Der Wert enthält eine Pfadangabe zu einer .xml Datei. Diese enthält Menüeinträge entsprechend der menu.xml Syntax und erweitert das root-menu. Der <file> Tag kann mehrfach verwendet werden um verschiedene Dateien einzubinden, hierbei muss aber beachtet werden das die "id"s sich nicht überschneiden dürfen.
Hinweis.png Hinweis: Für ein Menü welches sich automatisch aktualisiert wird das Paket Debianpackage.png menu und die Einträge /var/lib/openbox/debian-menu.xml und menu.xml in jeweils einem <file> Tag benötigt.


Beispiel für den <menu> Tag

<menu>
<!-- Beispiel für ein root-menu Verhalten bei dem das root-menu 2000 Millisekunden geöffnet bleibt nachdem eine Maustaste betätigt wurde.
Untermenüs werden mittig automatisch nach 100 Millisekunden geöffnet und nach 400 Millisekunden automatisch wieder geschlossen, wenn sie markiert 
beziehungsweise nicht mehr markiert sind. Im root-menu können Icons angezeigt werden, wenn die entsprechenden Menüeinträge einen Iconpfad enthalten. 
Das root-menu erhält durch die beiden letzten Einträge ein funktionierendes Debianmenü.
 -->
<hideDelay>2000</hideDelay>
<middle>yes</middle> 
<submenuShowDelay>100</submenuShowDelay> 
<submenuHideDelay>400</submenuHideDelay> 
<showIcons>yes</showIcons>
<manageDesktops>yes</manageDesktops> 
<file>/var/lib/openbox/debian-menu.xml</file> 
<file>menu.xml</file> 
</menu>
<applications></applications> -- Anwendungsverhalten

Um für Anwendungen oder Gruppen von Anwendungen bestimmte Voreinstellungen vornehmen zu können, benötigt man die Werte welche Debianpackage.png openbox verwendet um diese Anwendungen zu verwalten. Diese Werte kann man mit folgenden Befehl ermitteln.

user@debian:~$ obxprop | grep "^_OB_APP"

Der Mauszeiger wird nach dem ausführen des Befehls zu einem Fadenkreuz. Klickt man nun die gewünschte Anwendung über die man die Angaben in Erfahrung bringen möchte an, werden diese Angaben im Anschluss im Terminal ausgegeben.

Beispiel der Ausgabe für iceweasel in Jessie

_OB_APP_TYPE(UTF8_STRING) = "normal"
_OB_APP_TITLE(UTF8_STRING) = "Iceweasel"
_OB_APP_GROUP_CLASS(UTF8_STRING) = "Iceweasel"
_OB_APP_GROUP_NAME(UTF8_STRING) = "iceweasel"
_OB_APP_CLASS(UTF8_STRING) = "Iceweasel"
_OB_APP_NAME(UTF8_STRING) = "Navigator"
_OB_APP_ROLE(UTF8_STRING) = "browser"

Jede Anwendung oder Gruppe von Anwendungen muss nun mit wenigstens einer dieser Angaben in Anführungszeichen und mit Anführungszeichen im <application> Tag spezifiziert werden. Es besteht auch die Möglichkeit "*" für mehrere oder "?" für ein Zeichen als Joker zu verwenden.

Eintrag Werte
<application type=Wert1 title=Wert1 groupclass=Wert1 groupname=Wert1 class=Wert1 name=Wert1 role=Wert1 >weitere Einträge</application> Der Wert1 muss die Angaben der jeweiligen Anwendung, welche über obxprop | grep "^_OB_APP" ermittelt werden können, enthalten. Es müssen dabei nicht alle Wert1 gesetzt werden, wodurch es möglich ist Einstellungen für Gruppen von Anwendungen vorzunehmen. Damit die Einstellungen für die jeweilige Anwendung greifen, muss diese allen gesetzten Wert1 entsprechen. Die Einstellungen werden über die folgenden weiteren Einträge (Tags) vorgenommen. Es müssen auch hier nicht alle Tags verwendet werden, da der Standardwert weiterhin gilt.
<decor>Wert</decor> Der Wert muss entweder yes oder no enthalten. Das setzen von no führt dazu das, die Anwendung ohne Titelleiste und Rahmen geöffnet wird.
<shade>Wert</shade> Der Wert muss entweder yes oder no enthalten. Das setzen von yes führt dazu das, die Anwendung eingerollt geöffnet wird. Dies ist nur relevant, wenn der <focusNew> Tag den Wert no enthält.
<positions force=Wert1>weitere Einträge</position> Der Wert1 muss entweder yes oder no enthalten. Das setzen von yes führt dazu das, die Anwendung wider aller anderen Angaben an der in den weitere Einträge spezifizierten Position geöffnet wird.
  • <x>Wert oder center</x> Der Wert beschreibt die horizontale Positon in Pixeln vom Bildschirmrand der Anwendung. Positive Zahlen haben ihren Ursprung im linken Bildschirmrand, negative hingegen im rechten Bildschirmrand. Das setzen von center platziert die Anwendung in der Mitte der X-Achse.
  • <y>Wert oder center</y> Der Wert beschreibt die vertikale Positon in Pixeln vom Bildschirmrand der Anwedung. Positive Zahlen haben ihren Ursprung im oberen Bildschirmrand, negative hingegen im unteren Bildschrimrand. Das setzen von center platziert die Anwendung in der Mitte der Y-Achse.
  • <monitor> Wert </monitor> Der Wert muss entweder eine Zahl sein, mouse oder active enthalten. Das setzen einer Zahl führt dazu das, die Anwendung auf dem jeweiligen Monitor eingeblendet werden. Bei mouse wird die Anwendung auf dem Monitor eingeblendet, auf dem sich die Maus aktuell befindet. Durch active hingegen wird die Anwendung auf dem Monitor eingeblendet, auf welchem sich das aktuelle Fenster befindet. Dies ist nur relevant, wenn mehrere Monitor vorhanden sind. Virtuelle Arbeitsflächen erfüllen den Tatbestand hingegen nicht.
<focus>Wert</focus> Der Wert muss entweder yes oder no enthalten. Das setzen von yes führt dazu das, Debianpackage.png openbox versucht dass die Anwendung im Fenster zum aktuellen Fenster wird.
<desktop>Wert</desktop> Der Wert muss eine Zahl sein oder all enthalten. Er gibt an auf welcher Arbeitsfläche die Anwendung oder ob die Anwendung auf allen Arbeitsflächen, nach dem öffnen, sichtbar sein soll.
<layer>Wert</layer> Der Wert muss entweder above, normal oder below enthalten. Das setzen von above führt dazu das, die Anwendung nicht von Fenstern überlappt werden kann. Bei normal können die Fenster die Anwendung überlappen und unterlappen. Durch below hingegen können liegen die Fenster immer über der Anwendung.
<iconic>Wert</iconic> Der Wert muss entweder yes oder no enthalten. Das setzen von yes führt dazu das, die Anwendung minimiert geöffnet wird.
<skip_pager>Wert</skip_pager> Der Wert muss entweder yes oder no enthalten. Das setzen von yes führt dazu das, Debianpackage.png openbox versucht dass die Anwendung nicht im jeweiligen pager angezeigt wird.
<skip_taskbar>Wert</skip_taskbar> Der Wert muss entweder yes oder no enthalten. Das setzen von yes führt dazu das, Debianpackage.png openbox versucht dass die Anwendung nicht in der Taskbar des Panels und nicht im Menü beim Wechseln der Fenster angezeigt wird.
<fullscreen>Wert</fullscreen> Der Wert muss entweder yes oder no enthalten. Das setzen von yes führt dazu das, die Anwendung im Vollbildmodus (also ohne Titelleiste, Rahmen und mit automatisch verbergender Menüleiste) geöffnet wird.
<maximized>Wert</maximized> Der Wert muss entweder yes, no, horizontal oder vertical enthalten. Das setzen von yes führt dazu das, die Anwendung maximiert geöffnet wird. Über das setzten von horizontal oder vertical hingegen, kann definiert werden das nur eine Achse der Anwendung beim öffnen maximiert ist.
<size>weitere Einträge</size> Als weitere Einträge können folgende Tags verwendet werden:
  • <width>Wert</width>Der Wert ist eine absolute oder relative Angabe der Breite des Fensters in dem die Anwendung gezeichnet wird. Der absolute Wert wird als Zahl in Pixeln angegeben. Der relative Wert wird in Prozent angegeben und verhält sich entsprechend der Breite des Bildschirms.
  • <height>Wert</height>Der Wert ist eine absolute oder relative Angabe der Höhe des Fensters in dem die Anwendung gezeichnet wird. Der absolute Wert wird als Zahl in Pixeln angegeben. Der relative Wert wird in Prozent angegeben und verhält sich entsprechend der Höhe des Bildschirms.

Beispiel für den <applications> Tag in Wheezy

<!-- Beispiel wobei Iceweasel ohne Titelleiste und Rahmen und maximiert geöffnet wird.  
Der zweite Eintrag öffnet die Anwendung Icedove im Hintergrund maximiert und ohne Rahmen. Beim dritten Eintrag 
versucht openbox die Anwendung xterm nicht beim Fensterumschaltendialog und nicht im Panel anzuzeigen.
Evince wird auf der zweiten Arbeitsfläche geöffnet, wobei die Längsseite maximiert ist. Mit dem letzten
Eintrag wird das Spiel Gnibbels in der rechten oberen Ecke der Arbeitsfläche und mit vordefinierter Größe geöffnet. --> 
<applications>
<application name="Navigator">
<fullscreen>yes</fullscreen>
</application>
<application type="normal" title="Icedove Mail/News" class="Icedove" name="Mail" role="3pane">
<layer>below</layer>
<maximized>yes</maximized>
<decor>no</decor>
</application>
<application name="xterm">
<skip_taskbar>yes</skip_taskbar> 
</application>
<application title="Document Viewer" name="evince">
<desktop>2</desktop>
<maximized>vertical</maximized>
</application>
<application name="gnibbles">
<positions force=yes>
<x>-5</x>
<y>5</y>
</position> 
<size>
<width>300</width>
<height>50%<height>
</size>
</application> 
</applications>

Obconf

Debianpackage.png Obconf im Theme Reiter

Debianpackage.png Obconf ist ein nützliches grafisches Tool um die rc.xml einfach bearbeiten zu können. Es bietet derzeit 8 Reiter in welchen Einstellungen vorgenommen werden können.

Reiter Einstellungsmöglichkeiten
Theme Innerhalb des Theme Reiters kann die zu verwendende Theme ausgewählt werden. Des weiteren können neue Themenarchive eingespielt bzw. im .obt Format erstellt werden. Wie man selbst eine Theme erstellen kann, wird im Openboxwiki (Englisch) erläutert. Viele fertige Themen findet man auf Box-look.org. Der Reiter entspricht teilweise dem <theme> Tag.
Appearance Dieser Reiter ermöglicht Einstellungen zum Fensterdesign (bzgl. Fensterrahmen bei undekorierten Fenstern, Animation beim minimieren, Reihenfolge der Bereiche in Titelzeile und Schriftarten) vorzunehmen. Der Reiter entspricht nahezu dem <theme> Tag.
Windows Im Reiter Windows kann man definieren ob das Fenster dass geöffnet wird automatisch zum aktuellen werden soll, ob das Fenster zentriert oder im linken oberen Bildschirmrand geöffnet werden soll, ob das neue Fenster unter dem Mauszeiger geöffnet werden sollen und auf welchem bzw. welchen Monitor(en) es geöffnet werden soll. Der Reiter entspricht teilweise dem <focus> Tag und nahezu dem<placement> Tag.
Move & Resize Innerhalb des Move & Resize Reiters sind Einstellungen bzgl. Überlappen von Fenstern mit dem Rand bzw. anderen Fenstern und bzgl. Größenveränderung eines Fensters und dem dazu gehörigen Popupdialog möglich. Auch kann festgelegt werden, wann ein Fenster auf eine andere Arbeitsfläche verschoben wird. Der Reiter entspricht dem <resize> Tag und dem <resistance> Tag. Des weiteren entspricht er teilweise dem <mouse> Tag.
Mouse Dieser Reiter ermöglicht festzulegen wann ein Fenster in Verbindung mit der Maus zum aktuellen werden kann und Einstellungen zum Doppelklick vorzunehmen. Der Reiter entspricht teilweise dem <focus> Tag und teilweise dem <mouse> Tag.
Desktops Der Reiter Desktops ermöglicht Einstellungen zum Popupdialog, ob und wie lange dieser beim Wechseln der Arbeitsfläche eingeblendet wird. Des weiteren kann die Anzahl der Arbeitsflächen definiert werden. Der Reiter entspricht dem <desktops> Tag.
Margins In diesem Reiter kann der Rand der Arbeitsflächen festgelegt werden. Der Reiter entspricht dem <margins> Tag.
Dock Im Dock Reiter besteht die Möglichkeit Einstellungen zu Position und Orientierung, sowie der Ebene und dem automatischen Ausblenden des Docks vorzunehmen. Der Reiter entspricht nahezu dem <dock> Tag.

menu.xml

Das Menü von Debianpackage.png openbox, welches zum Aufrufen von Programmen notwendig ist (root-menu), wird mit einem Rechtsklick auf den Desktop geöffnet. Es bestehen 2 Möglichkeiten dieses Menü den eigenen Bedürfnissen anzupassen. Zum einen kann man die Datei /etc/xdg/openbox/menu.xml (oder ~/.config/openbox/menu.xml für den einzelnen Benutzer) mit einem Editor seiner Wahl bearbeiten oder das Programm Debianpackage.png obmenu benutzen.

Elemente der menu.xml

Eintrag Wirkung
<!-- blabla --> Kommentar, nicht sichtbar im Menü.
<openbox_menu> Menüsachen </openbox_menu> Wurzelelement, damit wird die Datei begonnen bzw. geschlossen.
<menu id="root-menu" label="Openbox3" icon="Pfad"> einzelne Menüeinträge </menu> Tag für ein einzelnes Menü bzw. Untermenü. Die "id" muss dabei einmalig sein. Der "label"-Eintrag ist ab dem zweiten Tag, also für ein Untermenü, sichtbar. Als "Pfad" kann der Speicherort einer Bildatei angegeben werden, damit diese als Icon im Menü angezeigt werden kann. "Pfad" wird auch erst ab dem zweiten Tag und wenn der <showicons> Tag yes enthält sichtbar. Wenigstens ein Menü muss vorhanden sein.
<item label="Bezeichnung" icon="Pfad"> Aktion </item> Einzelner Menüeintrag. Die Bezeichnung wird im Menü angezeigt. Als "Pfad" kann der Speicherort einer Bildatei angegeben werden, damit diese als Icon im Menü angezeigt werden kann. Dies ist nur relevant wenn der <showicons> Tag yes enthält.
<action name="Execute"><execute> Befehl </execute></action> Hier wird festgelegt, dass der Zweck des Menüeintrages ein Programm zu starten ist (weitere Aktionen (Englisch)). Als Befehl wird das entsprechende Programm eingetragen.
<separator/> Trennlinie

Wichtig ist, auch hierbei, zu beachten das jeder Tag(<>) auch mit einem entsprechenden Tag(</>) beendet wird. Ansonsten werden die folgenden Elemente von Debianpackage.png openbox ignoriert. Eine Ausnahme bilden hierbei Elemente die sofort beendet werden, wie der separator oder der Kommentar. Des weiteren ist auch hier wichtig das alle Elemente, außer dem Kommentar, innerhalb des Wurzelelements stehen.

Beispieldatei menu.xml

<!-- Beispiel mit einem Menüeintrag und einem Untermenü mit 2 Einträgen --> 
<openbox_menu>                                           
<menu id="root-menu" label="Openbox3">    
<item label="xterm" icon="/usr/share/icons/hicolor/scalable/apps/mc.svg">                     
<action name="Execute"><execute>          
xterm -e mc                      
</execute></action>
</item>                
<separator/>                              
<menu id="Untermenü" label="Programme">
<item label="obconf">
<action name="Execute"><execute>
obconf
</execute></action> 
</item> 
<item label="Iceweasel" icon="/usr/share/icons/hicolor/scalable/apps/iceweasel.svg">
<action name="Execute"><execute>
iceweasel
</execute></action> 
</item> 
</menu>                                   
</menu>                                   
</openbox_menu>

Pipemenüs

In die menu.xml lassen sich noch sogenannte Pipemenüs integrieren. Dabei handelt es sich um eine Debianpackage.png openbox Besonderheit, bei der Skripte ins Menü eingebunden werden. Diese dynamischen Menüpunkte werden beim Aufruf jedes mal neu geladen. Dies erweitert die Möglichkeiten von Debianpackage.png openbox ungemein (z.B. kann ein Kalender ins Menü integriert werden oder eine Batterieanzeige). Um diese Pipemenüs nutzen zu können, muss die menu.xml um einen Verweis innerhalb des Wurzelelementes erweitert werden.

<menu id="Kalender" label="Kalender" execute="~/cal.sh" /> 
<!-- Die "id muss wieder einmalig sein, "label" bezeichnet den Menüeintrag und "execute" verweist 
 auf das Skript. -->

Einige fertige Skripte findet man im Openboxwiki (Englisch).

Obmenu

Debianpackage.png Obmenu mit geöffneten Menübaum

Debianpackage.png Obmenu ist ein nützliches grafisches Tool um die menu.xml einfach bearbeiten zu können. Es können nahezu alle Einstellungen vorgenommen werden, die ein Nutzer auch händisch vornehmen könnte. Einschränkungen bestehen lediglich darin, dass nicht alle möglichen Aktionen (Englisch) definiert werden können. Die fehlenden Aktionen sind im Normalfall, für ein Menü auch nicht zweckmäßig.

environment

In der environment Datei können für Debianpackage.png openbox globale Einstellungen vorgenommen werden. So lässt sich hier unter anderem die Locale Umgebungsvariable für Meldungen, Datums- und Zeitausgaben in der jeweiligen Landessprache und die PATH Umgebungsvariable um ein weiteres Verzeichnis welches beim Programmaufruf durchsucht wird hinzuzufügen definieren. Die Datei für den einzelnen Nutzer befindet sich bzw. muss erstellt werden unter ~/.config/openbox/environment. Sollen die Einstellungen Systemweit gelten, befindet sich die Datei unter /etc/xdg/openbox/environment.

Beispieldatei environment

#Locale Umgebungsvariable
LANG=de_DE.UTF8
#PATH Umgebungsvariable
export PATH=/Pfad/zu/den/Programmen:$PATH

autostart

Viele neuere Nutzer vermissen die bei größeren Desktopumgebungen üblichen Funktionen wie das Anzeigen der Uhrzeit und offener Programme und das setzen eines Hintergrundbildes. Diese Funktionen liefert Debianpackage.png openbox nicht von sich aus, sondern sie müssen von anderen Programmen übernommen werden. Mit der vierten Einrichtungsdatei autostart kann Debianpackage.png openbox bequem, den Start der zusätzlichen Programmen automatisieren.

Hinweis.png Hinweis: Openbox bringt diese Funktionen bewusst nicht mit, da jeder zusätzliche Prozess zu lasten der Effizienz geht.


Wird Debianpackage.png openbox über den Befehl openbox-session gestartet, übernimmt die Datei autostart den Start von weiteren Programmen. Die Datei für den einzelnen Nutzer befindet sich bzw. muss erstellt werden unter ~/.config/openbox/autostart. Sollen die Einstellungen Systemweit gelten, befindet sich die Datei unter /etc/xdg/openbox/autostart. Nachdem Debianpackage.png openbox gestartet wurde, wird zu erst die systemweite autostart und erst danach die des einzelnen users ausgeführt. In die autostart können die gewünschten Programme eingetragen werden und müssen mit einem '&' jeweils schließen.

Beispieldatei autostart

 #!/bin/sh
 Programm zum setzen des Hintergrundbildes  & 
 Panel &

Neben der autostart, werden auch die Dateien in /etc/xdg/autostart und ~/.config/autostart/ abgearbeitet. Welche dies im Detail sind, zeigt folgendes Kommando:

user@debian:~$ openbox-xdg-autostart --list

Der Befehl openbox-xdg-autostart ist allerdings, erst ab wheezy verfügbar. Des weiteren muss generell beachtet werden, dass wenn der Start von Debianpackage.png openbox über den Befehl openbox erfolgt, kein Autostart stattfindet.

Erweiterungsprogramme

Eine Auswahl, aus der stable Paketquelle, von Programmen mit denen man Debianpackage.png openbox erweitern kann:

  • Panel

Debianpackage.png tint2Debianpackage.png fbpanelDebianpackage.png awnDebianpackage.png conkyDebianpackage.png lxpanel

  • Programme zum setzen des Hintergrundbildes

Debianpackage.png imagemagickDebianpackage.png nitrogenDebianpackage.png feh

  • Programm für Desktopicons

Debianpackage.png iDesk

  • Bildschirmsperre

Debianpackage.png xscreensaver

Quellenverzeichnis

Wikiseiten

Weblinks