Openbox: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Keine Bearbeitungszusammenfassung
 
(83 dazwischenliegende Versionen von 14 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
<div style="float:right; padding-left:1em;">__TOC__</div>
{{righttoc}}
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).
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 ==
{{installation|name=Openbox|repo=extra|paket=openbox}}
Es wird davon ausgegangen, dass der [[X|X-Server]] bereits installiert ist, und funktioniert. Für die Verwendung von Openbox muss das gleichnamige Paket aus „[[Pacman#Repositorien_und_Spiegel-Server|extra]]“ installiert werden.
 
pacman -Sy openbox


Nach der Installation wird folgende Meldung auf der Standardausgabe (stdout) ausgegeben:
Nach der Installation wird folgende Meldung auf der Standardausgabe (stdout) ausgegeben:
Zeile 12: Zeile 9:
  They can both be found in /etc/xdg/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.
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 {{ic|/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.
Zuerst wird also das Verzeichnis angelegt, und dann die angegebenen Dateien in dieses Verzeichnis kopiert.
Zeile 20: Zeile 17:
  cp /etc/xdg/openbox/menu.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.
Damit Openbox beim Start von [[X]] gleich mitgestartet wird, und man es sofort verwenden kann, bedarf es eines Eintrages in der [[xinitrc]]. Es ist diese Datei also in einem Texteditor zu öffnen, und dort folgendes am Ende hinzuzufügen.


  exec openbox-session
  exec openbox-session


Sollte die Datei nicht existieren, so ist sie anzulegen.
Sollte die Datei nicht existieren, so ist sie anzulegen.
Wer Openbox per Login Manager starten will, sollte sich mal [[Login-Manager#SLiM|SLiM]] ansehen. SLiM hat keine Abhängigkeiten zu Gnome oder KDE. Einen Überblick über verschiedene Login-Manager bietet der Wiki-Artikel [[Login-Manager]].
Weitere Informationen hierzu finden sich im Artikel über [[X#Xorg starten]].


== Konfigurationswerkzeuge und -Dateien ==
== Konfigurationswerkzeuge und -Dateien ==
[[Bild:Obconf.png‎|thumb|Anzeige der Fensterkonfiguration in Obconf]]
[[Bild:Obconf.png‎|thumb|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 Rechtasklick 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
[[Bild:Obmenu.png‎|thumb|Konfiguration des Openbox-Menüs über Obmenu]]
[[Bild:Obmenu.png‎|thumb|Konfiguration des Openbox-Menüs über Obmenu]]
 
[[Bild:obkey.jpg|thumb|Tastenkombinationen mit Obkey anpassen]]
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 PRpoblem ergibt sich, wenn man alle Menüs entfernt: Es kann kein neues Menü angelegt werden. Das „root-menu“ sollte darüber hinaus nicht entfernt werden. Innerhalb dieses Menüs wird alles angezeigt, was über Rechtsklick verfügbar ist.
 
[[Bild:openbox-desktopwechsel.png‎|thumb|Die Desktopwechsel-Anzeige beim Wechseln auf einen mit „Temporär“ benannten Desktop]]
[[Bild:openbox-desktopwechsel.png‎|thumb|Die Desktopwechsel-Anzeige beim Wechseln auf einen mit „Temporär“ benannten Desktop]]
[[Bild:Desktopmenu_openbox.png‎|thumb|Das Desktop-Menü mit Anwendungen auf allen Desktops]]
[[Bild:Obkey_config.png‎|thumb|Anzeige einer Konfiguration mittels obkey]]


=== Desktopverwaltung ===
Konfigurieren kann man Openbox über die Datei {{ic|~/.config/openbox/rc.xml}}, jedoch gibt es für diese Aufgabe auch das grafische Interface ''OBconf'', welches zunächst installiert werden muss


Openbox unterstützt selbstverständlich mehrere virtuelle Desktops. Diese können mit den Tastenkombinationen „Windowstaste+F*“ ausgewählt werden, wobei „F*“ deine 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 Str+Alt auch „in“ Anwendungsfenstern wechselt den desktop.
pacman -S obconf


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 [[ArchLinux_User-Community_Repository|AUR]].
Gestartet wird das Programm mittels des Aufrufes {{ic|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 {{ic|~/.config/openbox/menu.xml}}. Natürlich gibt es auch für diese Datei ein grafisches Konfigurationstool. Dieses muss jedoch auch erst installiert werden.


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


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 …
Danach ist das Tool über den Aufruf von {{ic|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 Separatoren – die diese dann zu Überschriften machen – 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.


obpager &
Ein weiteres grafisches Programm, mit welchem Tastenkombinationen verändert werden können, heißt ''Obkey''. Es wurde von einem Benutzer aus dem englischen Arch Forum programmiert und findet sich im AUR: http://aur.archlinux.org/packages.php?ID=23822


… geschrieben. Das Kaufmanns-Und am Ende ist wichtig, damit nachfolgende Befehle ebenfalls ausgeführt werden.
== Desktopverwaltung ==
Openbox unterstützt selbstverständlich mehrere virtuelle Desktops. Diese können mittels {{taste|super}}+{{taste|F1}} bis {{taste|super}}+{{taste|F12}} angewählt werden. Zudem besteht die Möglichkeit, mittels {{taste|Strg}}+{{taste|Alt}}+{{taste|links}} bzw. {{taste|Strg}}+{{taste|Alt}}+{{taste|rechts}} zum jeweils vorherigen bzw. nächsten Desktop zu wechseln. Auch das Drehen des Mausrades auf dem Desktop, bzw. bei gedrücktem {{taste|Strg}}+{{taste|Alt}} auch „in“ Anwendungsfenstern wechselt den Desktop.


== Hintergrundbild anpassen ==
Openbox verfügt neben dem Hauptmenü, das per Rechtsklick erreichbar ist, noch über ein Desktop-Menü. Dieses ist per Mittelklick auf eine freie Stelle des Desktops aufrufbar, und zeigt alle Anwendungen je Desktop an. mit einem Klick auf die jeweilige Anwendung, wird auf den entsprechenden Desktop gewechselt, und die Anwendung in den Vordergrund geholt. Anwendungen, die minimiert sind, werden in der Liste eingeklammert angezeigt.
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.


=== Feh ===
Über dieses Menü ist es zudem möglich ad-hoc Desktops hinzuzufügen, oder zu entfernen, wenn auf den anderen Desktops mal kein Platz mehr sein sollte. Wer die Desktops grafisch verwalten möchte, der kann z.B. auf {{paket|bbpager}} zurückgreifen. Damit der Pager beim Start von Openbox auch mit gestartet wird, ist es sinnvoll, den Aufruf in die Autostart-Datei von Openbox zu legen. Diese befindet sich unter {{ic|~/.config/openbox/autostart.sh}}, oder muss dort erst angelegt werden.
Feh ist ein kleiner, schneller befehlszeilenbasierter Bildbetrachter, mittels dem es unter anderem auch möglich ist, das Hintergrundbild des X-Servers anzupassen. Zuerst muss Feh natürlich installiert werden.


pacman -Sy feh
== Menüverwaltung ==
[[Bild:Obconf_margins.png|thumb|Definition eines ein Pixel schmalen, linksseitigen Rahmens in obconf]]
Die beiden Openbox-Menüs, die standardmäßig auf Rechts- und Mittelklick liegen, und das Programm- bzw. Fenster-Menü anzeigen, können durch einen Klick nur erreicht werden, wenn man eine freie Stelle auf dem Desktop hat, wenn man Anwendungen wie die Textverarbeitung oder einen Browser im Vollbildmodus laufen lässt, hat man keine freie Fläche des Desktops zur Verfügung. Um dennoch auf die Menüs zugreifen zu können, gibt es zwei Möglichkeiten.


Feh bietet viele Optionen, die in der Manpage beschrieben werden. Im Einfachsten Fall setzt man ein Hintergrundbild mit dem folgenden Befehl:
=== Rahmen einrichten ===
Um auf die Menüs zugreifen zu können, benötigt man den Desktop. Es reicht dabei auch, wenn lediglich ein Pixel des Desktops erreichbar ist. Dies kann man über die Openbox-Funktion der Rahmenverwaltung ermöglichen.


feh --bg-center <path>/<image>.png
Durch einen ein Pixel schmalen Rahmen an einer beliebigen Fensterseite hat man auch bei maximierten Anwendungen immer die Möglichkeit, die Menüs zu öffnen, man muss lediglich den Mauszeiger bis an den Bildschirmrand bewegen und die entsprechende Maustaste drücken. Anwendungen werden von Openbox nie in dem definierten Bereich geöffnet. Fenster verdecken den Rahmen auch im Vollbildmodus nicht.


Der Hintergrund geht jedoch mit Beenden der Session verloren. Um ihn dauerhaft einzurichten wird die Datei ~/.xinitrc um den folgenden Eintrag ergänzt. Der eintrag sollte vor dem Openbox-Aufruf (s.o.) stehen:
Konfiguriert werden kann der Rahmen über obconf. Dort befindet sich als vorletzter seitlicher Reiter der Punkt „Margins“. Auf dieser Registerkarte kann über das leicht verständliche GUI in Echtzeit für alle vier Kanten des Desktops ein Rahmen eingerichtet werden.


feh --bg-center <path>/<image>.png &
Will man den Rahmen lieber manuell konfigurieren, so findet man die dazu nötigen Einstellungen etwa in der Mitte der Datei {{ic|~/.config/openbox/rc.xml}} im Abschnitt „<desktops>[…]</desktops>.


=== Nitrogen ===
<margins>
Wenn an es etwas Komfortabler – aber dennoch schlank – haben will kann auch [http://projects.l3ib.org/nitrogen/ Nitrogen] verwenden um ein Hintergrundbild zu setzen. Nitrogen zeigt alle Bilder in einem festgelegten Verzeichnis als Vorschau an und man kann eines auswählen.
  <top>0</top>
  <bottom>0</bottom>
  <left>0</left>
  <right>0</right>
</margins>


Zuerst muss Nitrogen installiert werden.
Der angegebene Wert entspricht dem Rand in Pixeln auf dieser Seite des Desktops.


pacman -Sy nitrogen
=== Menüaufruftaste definieren ===
Will man keinen Rahmen definieren, besteht auch die Möglichkeit, den Aufruf der Menüs auf Tasten der Tastatur zu legen. Hierzu eignen sich eher ungenutzte Tasten wie „Rollen“ oder „Pause“ gut, allerdings kann es auch eine beliebige, von Openbox verwaltbare, aber eher unübliche Tastenkombination sein. Zum Beispiel könnte man das Fenster-Menü auf {{taste|Strg}}+{{taste|shift}}+{{taste|F12}}, und das Programm-Menü auf {{taste|Strg}}+{{taste|shift}}+{{taste|F11}} legen, weil dies relativ leicht erreichbare, aber dennoch eher unübliche Tastenkombinationen sind.


Gestartet wird es mittels „nitrogen“ und der Angabe des Verzeichnisses, aus de die Bilder geladen werden sollen.
Konfiguriert werden Tastenkombinationen in der Datei {{ic|~/.config/openbox/rc.xml}} relativ weit am Ende der Datei im Abschnitt {{ic|<keyboard>[…]</keyboard>}}. Um die Menüs wie im vorherigen Absatz geschrieben auf {{taste|Strg}}+{{taste|shift}}+{{taste|F11}} und {{taste|Strg}}+{{taste|shift}}+{{taste|F12}} zu legen, müssen dort zwei Definitionen erstellt werden


  nitrogen /Pfad/zum/Bilderverzeichnis
  <keybind key="C-S-F11">
  <action name="ShowMenu">
    <menu>root-menu</menu>
  </action>
</keybind>
<keybind key="C-S-F12">
  <action name="ShowMenu">
    <menu>client-list-combined-menu</menu>
  </action>
</keybind>


Ein entsprechender Eintrag in der Openbox-Menüdatei könnte zum Beispiel so aussehen:
Danach muss die Konfigurationsdatei von Openbox neu eingelesen werden, dies wird mittels des Befehls …


  <item label="Nitrogen">
  openbox --reconfigure
  <action name="Execute"><command>nitrogen ~/.wallpapers</command></action>
</item>


Beim Neustart geht der Hintergrund allerdings wieder verloren. Damit der zuletzt aktive Hintergrund beim nächsten Start von Openbox wieder geladen wird, muss man in der Nitrogen-Oberfläche ein Häkchen bei „Save“ machen und folgendes in die ~/.xinitrc eintragen, auch hier sollte man darauf achten, dass der Aufruf vor dem Openbox-Start stehet. Ansonsten muss man den Openbox-Start ebenfalls mit einem Abschließenden Kaufmanns-Und versehen:
… bewerkstelligt, und ist sofort wirksam. Nun können über den Druck auf {{taste|Strg}}+{{taste|shift}}+{{taste|F11}} und {{taste|Strg}}+{{taste|shift}}+{{taste|F12}} die Menüs auch geöffnet werden, wenn man sich mit dem Mauscursor innerhalb eines Nicht-Desktop-Fensters befindet.


nitrogen --restore &
=== Icons in Menüs ===
[[Bild:openbox_icons_menu.png|thumb|Beispielmenü mit Icons]]
Wenn man Menü-Icons verwenden möchte, muss man deren Verwendung zuerst in der {{ic|rc.xml}} aktivieren, hierzu muss der {{ic|menu}}-Abschnitt um {{ic|<showIcons>yes</showIcons>}} erweitert werden. Nun können in der {{ic|menu.xml}} für alle Menüs, Untermenüs, und Menüeinträge Icons definiert werden.


=== display (Imagemagick) ===
<menu id="die-id" label="das Label" execute="programm" icon="icon.png" />  # Pipemenü
„display“ ist teil des [http://www.imagemagick.org/script/index.php ImageMagick]-Paketes, dieses Paket bietet neben diesem Programm noch eine Reihe weiterer sinnvoller Tools.
<menu id="die-id" label="das Label" icon="/pfad/icon.png">                # Normales Menü
<item label="Programm starten" icon=".icons/menu/mein_icon.png">          # Menüeinträge


pacman -Sy imagemagick
Der Übersichtlichkeit halber wurden weitere nötige Tags weg gelassen, und nur der Anfangstag beschrieben. Für das einbinden von Icons können gängige Pfadangaben genutzt werden. Nach dem Bearbeiten muss mittels {{ic|openbox --reconfigure}} oder, falls die Icons nicht übernommen werden, {{ic|openbox --restart}} Openbox neu geladen werden.


Nach der Installation kann mittels …
== Fensterverwaltung ==
Openbox ermöglicht es, Fenster unterschiedlich zu verwalten. So besteht die Möglichkeit, Firefox zum Beispiel immer 1024×768 Pixel groß zentriert auf dem zweiten Desktop zu öffnen, oder aber auch Die Werkzeugfenster von Gimp standardmäßig ohne Fensterumrandung darzustellen. Auch besteht die Möglichkeit, zu bestimmen, wo ein bestimmtes Fenster positioniert werden soll, indem man seine X- und Y-Koordinaten angibt.


display -window root wallpaper.png
Damit Openbox dies bewerkstelligen kann, muss in der Datei {{ic|~/.config/openbox/rc.xml}} im {{ic|<applications>}}-Block ein Unterblock {{ic|<application>}} mit folgender Syntax angelegt werden.


… das Hintergrundbild gesetzt werden. Damit das Hintergrundbild nach dem neustart auch weiterhin vorhanden ist, muss man den Aufruf zum Beispiel in die „autostart.sh“ von Openbox setzen. Selbstverständlich kann man den Eintrag aber auch in die .xinitrc schreiben:
<applications>
  ...
  <application name="NAME" class="CLASS" role="ROLE" type="TYPE">
    ...PROPERTIES...
  </application>
  ...
</applications>


display -window root .wallpaper.png &
Von den Angaben {{ic|name}}, {{ic|class}}, {{ic|role}} und {{ic|type}} muss mindestens {{ic|name}} oder {{ic|class}} angegeben werden. Um die Fenster spezieller zu definieren, kann man zusätzlich noch weitere mit angeben. Außerdem ist zu beachten, dass {{ic|name}} nicht der Fenstertitel ist. Ermitteln kann man die nötigen Informationen mittels des Programms ''obxprop'', das im Openbox-Paket enthalten ist.


=== Themes verwenden ===
obxprop | grep "^_OB_APP"
==== Openbox Themes ====
Die Openbox Themes legen das Aussehen der Fenster und des Openbox Menüs fest. Das Openbox Paket enthält einige Standard-Themes. Das Paket „openbox-themes“ stellt ein paar weitere Themes zur Verfügung.


pacman -S openbox-themes
Der Mauscursor wird nun als Fadenkreuz dargestellt. Wenn man nun ein Fenster anklickt, werden die Entsprechenden Informationen ausgegeben, die man dann in der Konfigurationsdatei von Openbox verwenden kann. Am Beispiel von Firefox ist dies


Es gibt aber noch weitaus mehr Themes. Eine gute Quelle ist z.B. [http://www.box-look.org/index.php?xcontentmode=7402 box-look.org].
_OB_APP_TYPE(UTF8_STRING) = "normal"
_OB_APP_CLASS(UTF8_STRING) = "Firefox-bin"
_OB_APP_NAME(UTF8_STRING) = "firefox-bin"
_OB_APP_ROLE(UTF8_STRING) = "browser"


Runtergeladene Themes sollten nach „~/.themes“ entpackt werden.  
=== Beispiel: Fenster von Firefox anpassen ===
Anhand der Angaben und der Anfangs erwähnten Idee kann man nun in der {{ic|rc.xml}} eine Anwendungsregel für Firefox definieren. Dazu erstellt man im Abschnitt {{ic|<applications>}} ziemlich am Ende der Datei einfach einen neuen Eintrag:


Die Themes können dann mittels „Obconf“ ausgewählt werden.
<application class="Firefox-bin">
  <desktop>2</desktop>
  <position force="yes">
    <x>center</x>
    <y>center</y>
  </position>
</application>


==== Gtk-Themes ====
Hier wird Firefox anhand seiner Klasse referenziert. Bei einigen Programmen kann es nötig sein, an die Klassendefinition als Wildcard-Zeichen ein Sternchen anhängen zu müssen, damit diese Definition auch greift.
[[Bild:Gtk-chtheme.png|thumb|Anzeigen eines Gtk-Themes über Gtk-chtheme]]


Gtk-2 Themes können mit dem Programm ''gtk-chtheme'' oder ''switch2'' verwaltet werden.
Nach der Definition muss Openbox neu konfiguriert werden, dies geschieht mittels …


  pacman -S gtk-chtheme
  openbox --reconfigure


bzw.
… und bedarf keines Neustarts von X oder Openbox. Alle ab sofort geöffneten Firefox-Hauptfenster werden nun zentriert auf dem zweiten Desktop angezeigt.


pacman -S gtk-theme-switch2
=== Beispiel: Gajim-Fenster anpassen ===
Möchte man zum Beispiel das das Fenster des [[Jabber|Jabber-Messengers]] [[Gajim]] immer oben Rechts auf dem Bildschirm haben, und soll das Fenster beim Start in die Icon-Anzeigefläche („Systray“) minimiert werden, kann man folgendes benutzen:


Einfach ''gtk-chtheme'' oder ''switch2'' ausführen und das gewünschte Theme auswählen.
<application class="Gajim.py">
  <position force="yes">
    <x>-100</x>
    <y>100</y>
  </position>
  <iconic>yes</iconic>
</application>


Gtk-1 Themes können mit dem Programm ''switch'' eingestellt werden.  
Hierdurch wird Gajim (bzw. alle Fenster deren Klasse {{ic|Gajim.py}} lautet) oben rechts auf dem Desktop mit 100 Pixeln zum Rand ausgerichtet angezeigt, wenn man es sichtbar macht. Beim Starten wird das Fenster automatisch ins Systray minimiert.


  pacman -S gtk-theme-switch
  <skip_pager>yes</skip_pager>
<skip_taskbar>yes</skip_taskbar>


==== Gtk-Schriftart ====
Wenn man dies hinzufügt, wird das entsprechende Fenster auch nicht bei Alt+Tab oder in der Fensterliste angezeigt.
Die Gtk Schriftart kann man mit den bereits genannten Programmen ''gtk-chtheme'' und ''switch2'' bzw. ''switch'' einstellen. Oder man fügt folgendes in die „~/gtkrc.mine“ ein


style "user-font"
=== Weiteres ===
{
In der {{ic|rc.xml}} von Openbox befindet sich im unteren Bereich eine ausführliche, auskommentierte, vollständig Dokumentierte Auflistung aller verfügbaren Optionen.
font_name = "[font-name] [size]"
}  
widget_class "*" style "user-font"
gtk-font-name = "[font-name] [size]"


Wobei [font-name] und [size] für die gewünschte Schriftart und deren Größe stehen. Zum Bispiel:
So bestehen zum Beispiel auch die Möglichkeiten, Fenster maximiert oder im Vollbildmodus darzustellen, oder zu bestimmen, ob das Fenster auf allen Desktops sichtbar sein soll, und auch, ob es einen Fensterrahmen besitzen soll.  


style "user-font"
Alle Optionen greifen nur, wenn das Fenster sie auch unterstützt. So kann man zwar definieren, dass [[PCManFM]] als Systray-Icon angezeigt werden soll, so lange der Dateimanager das aber nicht unterstützt, wird die Angabe einfach ignoriert.
{
font_name = "DejaVu Sans 8"
}
widget_class "*" style "user-font"
gtk-font-name = "DejaVu Sans 8"


Es werden beide Felder „font_name“ und „gtk-font-name“ benötigt, um Abwärtskompatibilität sicherzustellen.
Man muss auf jeden Fall etwas herumprobieren, bis man einerseits das Fenster „zu fassen bekommt“, und andererseits, bis man es mittels der verfügbaren Optionen so konfiguriert hat, wie man es braucht.


==== Gtk-Icons ====
Openbox hat ausgereifte Funktionen, mehrere Bildschirme gleichzeitig zu verwalten (dies unterscheidet sich von XrandR, Xinerama, etc.). Dazu muss Openbox je Bildschirm ein mal gestartet werden.
Das gewünschte Icon Theme entweder nach „/usr/share/icons“ (Systemweit) oder „~/.icons“ (User) entpacken.


Folgendes in der Datei „~/.gtkrc.mine“ hinzufügen:
DISPLAY=:0.0 openbox
DISPLAY=:0.1 openbox


gtk-icon-theme-name = "[name-of-icon-theme]"
Hiermit wird Openbox auf dem ersten und dem zweiten Display gestartet. Alle Instanzen können interagieren. Siehe [http://openbox.org/wiki/Help:Actions#MoveResizeTo Funktionsbeschreibung von {{ic|MoveResizeTo}} im Openbox-Wiki]


Wobei [name-of-icon-theme] der Name des Theme Verzeichnisses ist. Zum Beispiel:
Außerdem gibt es noch [http://sourceforge.net/apps/mediawiki/obapps/index.php?title=Main_Page OBApps]. Das ist eine GUI, mit der man die „per-application“ Fenstereinstellungen konfigurieren kann. OBApps ist im [http://aur.archlinux.org/packages.php?ID=37166 AUR] verfügbar.


gtk-icon-theme-name = "Tango"
== 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.
==== Mauszeiger-Themes ====
Das gewünschte Xcursor Theme entweder nach „/usr/share/icons“ (Systemweit) oder „~/.icons“ (User) entpacken.
 
Folgendes in der Datei „~/.Xdefaults“ hinzufügen:
 
Xcursor.theme:  [name-of-cursor-theme]
 
Wobei [name-of-cursor-theme] der Name des Theme Verzeichnisses ist. Zum Beispiel:
 
Xcursor.theme: Vanilla-DMZ-AA
 
Das Paket „xcursor-themes“ enthält die drei default Themes redglass, whiteglass und handhelds. Es wird automatisch beim installieren des XServers als Abhängigkeit mit installiert.
 
Einige Anwendungen ignorieren diese Einstellungen unter gewissen Umständen allerdings. Daher kann man auch einen Softlink erstellen. Dieser Verweist dann als „default“ auf das verwendete Theme.
 
ln -s /pfad/zum/cursortheme /usr/share/icons/default
 
== 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.
 
=== Mit Login-Manager ===
Wer Openbox per Login Manager starten will, sollte sich mal [[Login-Manager#SLiM|SLiM]] ansehen. SLiM hat keine Abhängigkeiten zu Gnome oder KDE. Einen überblick über verschiedene Login-Manager bietet der Wiki-Artikel [[Login-Manager]].
 
== 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 [http://sourceforge.net/projects/gmrun 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 widder einloggt.
 
==== Launchy ====
[http://www.launchy.net/ 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 [http://www.gnomefiles.org/app.php/LXPanel LXPanel] als Taskmanager benutzt kann, so kann der Ausführen-Dialog mittels
 
lxpanelctl run


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


==== Bashrun ====
== Weitere zusätzliche Dinge ==
[http://bashrun.sourceforge.net 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.
Wie man X11-Maus-Cursor-Themes installiert wird im Wiki-Artikel [[Maus Cursor Themes]] beschrieben.


pacman -S bashrun
Openbox verfügt in der Grundinstallation nicht über einen Ausführ-Dialog. Der Wiki-Artikel [[Ausführen-Dialog]] zeigt verschiedene Programme auf, mit denen diese Funktionalität nachgerüstet werden kann.


Die folgenden Einstellungen werden für openbox empfohlen:  
Openbox hat keine eigene Funktion um Icons auf dem Desktop darzustellen. Wer darauf dennoch nicht verzichten möchte, kann z.B. [http://idesk.sourceforge.net/wiki/index.php/Main_Page iDesk], [[ROX]], [[PCManFM]] oder auch Nautilus (plus 'gnome-settings-daemon') verwenden. ROX und PCManFM sind gleichzeitig auch noch schlanke Dateimanager.


<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. [http://idesk.sourceforge.net/wiki/index.php/Main_Page iDesk], [http://roscidus.com/desktop/ ROX], [http://pcmanfm.sourceforge.net/ 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:
Es gibt zahlreiche Panels, Pager, etc. die man mit Openbox verwenden kann. Zum Beispiel diese hier:


* [[Pypanel]]
* [[Fbpanel]]
* [http://fbpanel.sourceforge.net/ fbpanel]
* [https://github.com/vzxwco/neap neap], ein Systray-Pager
* [http://www.chatjunkies.org/fspanel/ fspanel]
* Weitere Panels siehe [[Liste von Panels]]
* [http://nsf.110mb.com/bmpanel/ BMPanel]
* [http://aur.archlinux.org/packages.php?ID=8336 PerlPanel]
* [http://code.google.com/p/ttm/ Tint]
* [http://sourceforge.net/projects/lxpanel LXPanel]
* [http://projects.l3ib.org/trac/visibility Visibility]
* [http://wbar.warlockshome.com.ar/ Wbar]
* [http://stalonetray.sourceforge.net/ Stalonetray]
* [http://bbtools.sourceforge.net/ bbpager]
* [http://www.xfce.org/projects/xfce4-panel/ xfce4-panel]
* ObPager (siehe oben)


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


=== Dateimanager ===
=== Dateimanager ===
Es gibt zahlreiche Dateimanager. Deshalb hier nur eine kleine Auswahl.
Da Openbox ein Fenstermanager ist, und keine Desktopumgebung, verfügt es nicht über einen Dateimanager. Hier im Wiki gibt es eine [[:Kategorie:Dateimanager|Dateimanager-Kategorie]].
 
=== Desktopeffekte ===
Um auch unter Openbox Desktopeffekte wie Transparenz, Fensterschatten, Menü- und Fensteranimationen, etc. nutzen zu können, muss man einen Composite-Manager installieren. Für die Nutzung zusammen mit Openbox eignen sich zum Beispiel diese hier:


* [http://thunar.xfce.org/index.html Thunar] ist der Standard-Dateimanager der Xfce-Desktop-Umgebung
* [[Cairo Composite Manager]]
* [http://www.fly-bird.org/news.php FlyBird]
* [[Compton]]
* [http://pcmanfm.sourceforge.net/ PCManFM]
* [https://wiki.archlinux.org/index.php/Xcompmgr Xcompmgr] {{sprache|en}}
* [http://roscidus.com/desktop/ ROX] kann auch Desktop Icons darstellen
* [http://roland65.free.fr/xfe/ X File Explorer] – erinnert an den „Explorer“ von Windows
* [http://emelfm.sourceforge.net/ emelFM] sehr schlank, Gtk-1
* [http://www.obsession.se/gentoo/ gentoo] sehr schlank, Gtk-1


Natürlich kann auch der [[Gnome|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.
==Weblinks==
* [http://openbox.org/ Openbox Homepage und Wiki] {{sprache|en}}
* [http://urukrama.wordpress.com/openbox-guide/ urukramas Openbox-Guide] {{sprache|en}}
* [http://de.wikipedia.org/wiki/Openbox Wikipedia Artikel] {{sprache|de}}
* [http://www.box-look.org Themes, Icons, Hintergrundbilder, ect.] {{sprache|en}}
* [http://themes.freshmeat.net/browse/1086/ Themes auf freshmeat.net] {{sprache|en}}


== Links ==
* http://www.icculus.org/openbox
* http://de.wikipedia.org/wiki/Openbox
* http://www.box-look.org
* http://themes.freshmeat.net/browse/1086/
* http://urukrama.wordpress.com/openbox-guide/


[[Kategorie:Fenstermanager]]
[[Kategorie:Fenstermanager]]
[[en:Openbox]]

Aktuelle Version vom 3. Mai 2022, 09:50 Uhr

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

Openbox ist als openbox in extra verfügbar, und kann von dort mittels Pacman installiert werden.

pacman -S 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 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.

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.

Weitere Informationen hierzu finden sich im Artikel über X#Xorg starten.

Konfigurationswerkzeuge und -Dateien

Anzeige der Fensterkonfiguration in Obconf
Konfiguration des Openbox-Menüs über Obmenu
Tastenkombinationen mit Obkey anpassen
Die Desktopwechsel-Anzeige beim Wechseln auf einen mit „Temporär“ benannten Desktop
Das Desktop-Menü mit Anwendungen auf allen Desktops
Anzeige einer Konfiguration mittels obkey

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 -S 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 -S 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 Separatoren – die diese dann zu Überschriften machen – 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.

Ein weiteres grafisches Programm, mit welchem Tastenkombinationen verändert werden können, heißt Obkey. Es wurde von einem Benutzer aus dem englischen Arch Forum programmiert und findet sich im AUR: http://aur.archlinux.org/packages.php?ID=23822

Desktopverwaltung

Openbox unterstützt selbstverständlich mehrere virtuelle Desktops. Diese können mittels ⊞ Super+F1 bis ⊞ Super+F12 angewählt werden. Zudem besteht die Möglichkeit, mittels Strg+Alt+ bzw. Strg+Alt+ zum jeweils vorherigen bzw. nächsten Desktop zu wechseln. Auch das Drehen des Mausrades auf dem Desktop, bzw. bei gedrücktem Strg+Alt auch „in“ Anwendungsfenstern wechselt den Desktop.

Openbox verfügt neben dem Hauptmenü, das per Rechtsklick erreichbar ist, noch über ein Desktop-Menü. Dieses ist per Mittelklick auf eine freie Stelle des Desktops aufrufbar, und zeigt alle Anwendungen je Desktop an. mit einem Klick auf die jeweilige Anwendung, wird auf den entsprechenden Desktop gewechselt, und die Anwendung in den Vordergrund geholt. Anwendungen, die minimiert sind, werden in der Liste eingeklammert angezeigt.

Über dieses Menü ist es zudem möglich ad-hoc Desktops hinzuzufügen, oder zu entfernen, wenn auf den anderen Desktops mal kein Platz mehr sein sollte. Wer die Desktops grafisch verwalten möchte, der kann z.B. auf bbpager zurückgreifen. Damit der Pager beim Start von Openbox auch mit gestartet 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.

Menüverwaltung

Definition eines ein Pixel schmalen, linksseitigen Rahmens in obconf

Die beiden Openbox-Menüs, die standardmäßig auf Rechts- und Mittelklick liegen, und das Programm- bzw. Fenster-Menü anzeigen, können durch einen Klick nur erreicht werden, wenn man eine freie Stelle auf dem Desktop hat, wenn man Anwendungen wie die Textverarbeitung oder einen Browser im Vollbildmodus laufen lässt, hat man keine freie Fläche des Desktops zur Verfügung. Um dennoch auf die Menüs zugreifen zu können, gibt es zwei Möglichkeiten.

Rahmen einrichten

Um auf die Menüs zugreifen zu können, benötigt man den Desktop. Es reicht dabei auch, wenn lediglich ein Pixel des Desktops erreichbar ist. Dies kann man über die Openbox-Funktion der Rahmenverwaltung ermöglichen.

Durch einen ein Pixel schmalen Rahmen an einer beliebigen Fensterseite hat man auch bei maximierten Anwendungen immer die Möglichkeit, die Menüs zu öffnen, man muss lediglich den Mauszeiger bis an den Bildschirmrand bewegen und die entsprechende Maustaste drücken. Anwendungen werden von Openbox nie in dem definierten Bereich geöffnet. Fenster verdecken den Rahmen auch im Vollbildmodus nicht.

Konfiguriert werden kann der Rahmen über obconf. Dort befindet sich als vorletzter seitlicher Reiter der Punkt „Margins“. Auf dieser Registerkarte kann über das leicht verständliche GUI in Echtzeit für alle vier Kanten des Desktops ein Rahmen eingerichtet werden.

Will man den Rahmen lieber manuell konfigurieren, so findet man die dazu nötigen Einstellungen etwa in der Mitte der Datei ~/.config/openbox/rc.xml im Abschnitt „<desktops>[…]</desktops>“.

<margins>
  <top>0</top>
  <bottom>0</bottom>
  <left>0</left>
  <right>0</right>
</margins>

Der angegebene Wert entspricht dem Rand in Pixeln auf dieser Seite des Desktops.

Menüaufruftaste definieren

Will man keinen Rahmen definieren, besteht auch die Möglichkeit, den Aufruf der Menüs auf Tasten der Tastatur zu legen. Hierzu eignen sich eher ungenutzte Tasten wie „Rollen“ oder „Pause“ gut, allerdings kann es auch eine beliebige, von Openbox verwaltbare, aber eher unübliche Tastenkombination sein. Zum Beispiel könnte man das Fenster-Menü auf Strg+⇧ Shift+F12, und das Programm-Menü auf Strg+⇧ Shift+F11 legen, weil dies relativ leicht erreichbare, aber dennoch eher unübliche Tastenkombinationen sind.

Konfiguriert werden Tastenkombinationen in der Datei ~/.config/openbox/rc.xml relativ weit am Ende der Datei im Abschnitt <keyboard>[…]</keyboard>. Um die Menüs wie im vorherigen Absatz geschrieben auf Strg+⇧ Shift+F11 und Strg+⇧ Shift+F12 zu legen, müssen dort zwei Definitionen erstellt werden

<keybind key="C-S-F11">
  <action name="ShowMenu">
    <menu>root-menu</menu>
  </action>
</keybind>
<keybind key="C-S-F12">
  <action name="ShowMenu">
    <menu>client-list-combined-menu</menu>
  </action>
</keybind>

Danach muss die Konfigurationsdatei von Openbox neu eingelesen werden, dies wird mittels des Befehls …

openbox --reconfigure

… bewerkstelligt, und ist sofort wirksam. Nun können über den Druck auf Strg+⇧ Shift+F11 und Strg+⇧ Shift+F12 die Menüs auch geöffnet werden, wenn man sich mit dem Mauscursor innerhalb eines Nicht-Desktop-Fensters befindet.

Icons in Menüs

Beispielmenü mit Icons

Wenn man Menü-Icons verwenden möchte, muss man deren Verwendung zuerst in der rc.xml aktivieren, hierzu muss der menu-Abschnitt um <showIcons>yes</showIcons> erweitert werden. Nun können in der menu.xml für alle Menüs, Untermenüs, und Menüeinträge Icons definiert werden.

<menu id="die-id" label="das Label" execute="programm" icon="icon.png" />  # Pipemenü
<menu id="die-id" label="das Label" icon="/pfad/icon.png">                 # Normales Menü
<item label="Programm starten" icon=".icons/menu/mein_icon.png">           # Menüeinträge

Der Übersichtlichkeit halber wurden weitere nötige Tags weg gelassen, und nur der Anfangstag beschrieben. Für das einbinden von Icons können gängige Pfadangaben genutzt werden. Nach dem Bearbeiten muss mittels openbox --reconfigure oder, falls die Icons nicht übernommen werden, openbox --restart Openbox neu geladen werden.

Fensterverwaltung

Openbox ermöglicht es, Fenster unterschiedlich zu verwalten. So besteht die Möglichkeit, Firefox zum Beispiel immer 1024×768 Pixel groß zentriert auf dem zweiten Desktop zu öffnen, oder aber auch Die Werkzeugfenster von Gimp standardmäßig ohne Fensterumrandung darzustellen. Auch besteht die Möglichkeit, zu bestimmen, wo ein bestimmtes Fenster positioniert werden soll, indem man seine X- und Y-Koordinaten angibt.

Damit Openbox dies bewerkstelligen kann, muss in der Datei ~/.config/openbox/rc.xml im <applications>-Block ein Unterblock <application> mit folgender Syntax angelegt werden.

<applications>
  ...
  <application name="NAME" class="CLASS" role="ROLE" type="TYPE">
    ...PROPERTIES...
  </application>
  ...
</applications>

Von den Angaben name, class, role und type muss mindestens name oder class angegeben werden. Um die Fenster spezieller zu definieren, kann man zusätzlich noch weitere mit angeben. Außerdem ist zu beachten, dass name nicht der Fenstertitel ist. Ermitteln kann man die nötigen Informationen mittels des Programms obxprop, das im Openbox-Paket enthalten ist.

obxprop | grep "^_OB_APP"

Der Mauscursor wird nun als Fadenkreuz dargestellt. Wenn man nun ein Fenster anklickt, werden die Entsprechenden Informationen ausgegeben, die man dann in der Konfigurationsdatei von Openbox verwenden kann. Am Beispiel von Firefox ist dies

_OB_APP_TYPE(UTF8_STRING) = "normal"
_OB_APP_CLASS(UTF8_STRING) = "Firefox-bin"
_OB_APP_NAME(UTF8_STRING) = "firefox-bin"
_OB_APP_ROLE(UTF8_STRING) = "browser"

Beispiel: Fenster von Firefox anpassen

Anhand der Angaben und der Anfangs erwähnten Idee kann man nun in der rc.xml eine Anwendungsregel für Firefox definieren. Dazu erstellt man im Abschnitt <applications> ziemlich am Ende der Datei einfach einen neuen Eintrag:

<application class="Firefox-bin">
  <desktop>2</desktop>
  <position force="yes">
    <x>center</x>
    <y>center</y>
  </position>
</application>

Hier wird Firefox anhand seiner Klasse referenziert. Bei einigen Programmen kann es nötig sein, an die Klassendefinition als Wildcard-Zeichen ein Sternchen anhängen zu müssen, damit diese Definition auch greift.

Nach der Definition muss Openbox neu konfiguriert werden, dies geschieht mittels …

openbox --reconfigure

… und bedarf keines Neustarts von X oder Openbox. Alle ab sofort geöffneten Firefox-Hauptfenster werden nun zentriert auf dem zweiten Desktop angezeigt.

Beispiel: Gajim-Fenster anpassen

Möchte man zum Beispiel das das Fenster des Jabber-Messengers Gajim immer oben Rechts auf dem Bildschirm haben, und soll das Fenster beim Start in die Icon-Anzeigefläche („Systray“) minimiert werden, kann man folgendes benutzen:

<application class="Gajim.py">
  <position force="yes">
    <x>-100</x>
    <y>100</y>
  </position>
  <iconic>yes</iconic>
</application>

Hierdurch wird Gajim (bzw. alle Fenster deren Klasse Gajim.py lautet) oben rechts auf dem Desktop mit 100 Pixeln zum Rand ausgerichtet angezeigt, wenn man es sichtbar macht. Beim Starten wird das Fenster automatisch ins Systray minimiert.

<skip_pager>yes</skip_pager>
<skip_taskbar>yes</skip_taskbar>

Wenn man dies hinzufügt, wird das entsprechende Fenster auch nicht bei Alt+Tab oder in der Fensterliste angezeigt.

Weiteres

In der rc.xml von Openbox befindet sich im unteren Bereich eine ausführliche, auskommentierte, vollständig Dokumentierte Auflistung aller verfügbaren Optionen.

So bestehen zum Beispiel auch die Möglichkeiten, Fenster maximiert oder im Vollbildmodus darzustellen, oder zu bestimmen, ob das Fenster auf allen Desktops sichtbar sein soll, und auch, ob es einen Fensterrahmen besitzen soll.

Alle Optionen greifen nur, wenn das Fenster sie auch unterstützt. So kann man zwar definieren, dass PCManFM als Systray-Icon angezeigt werden soll, so lange der Dateimanager das aber nicht unterstützt, wird die Angabe einfach ignoriert.

Man muss auf jeden Fall etwas herumprobieren, bis man einerseits das Fenster „zu fassen bekommt“, und andererseits, bis man es mittels der verfügbaren Optionen so konfiguriert hat, wie man es braucht.

Openbox hat ausgereifte Funktionen, mehrere Bildschirme gleichzeitig zu verwalten (dies unterscheidet sich von XrandR, Xinerama, etc.). Dazu muss Openbox je Bildschirm ein mal gestartet werden.

DISPLAY=:0.0 openbox
DISPLAY=:0.1 openbox

Hiermit wird Openbox auf dem ersten und dem zweiten Display gestartet. Alle Instanzen können interagieren. Siehe Funktionsbeschreibung von MoveResizeTo im Openbox-Wiki

Außerdem gibt es noch OBApps. Das ist eine GUI, mit der man die „per-application“ Fenstereinstellungen konfigurieren kann. OBApps ist im AUR verfügbar.

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.

Weitere zusätzliche Dinge

Wie man X11-Maus-Cursor-Themes installiert wird im Wiki-Artikel Maus Cursor Themes beschrieben.

Openbox verfügt in der Grundinstallation nicht über einen Ausführ-Dialog. Der Wiki-Artikel Ausführen-Dialog zeigt verschiedene Programme auf, mit denen diese Funktionalität nachgerüstet werden kann.

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.

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 reichen.

Dateimanager

Da Openbox ein Fenstermanager ist, und keine Desktopumgebung, verfügt es nicht über einen Dateimanager. Hier im Wiki gibt es eine Dateimanager-Kategorie.

Desktopeffekte

Um auch unter Openbox Desktopeffekte wie Transparenz, Fensterschatten, Menü- und Fensteranimationen, etc. nutzen zu können, muss man einen Composite-Manager installieren. Für die Nutzung zusammen mit Openbox eignen sich zum Beispiel diese hier:

Weblinks