Openbox - rc.xml bearbeiten um die Kontrolle über das Programm zu gewinnen
von Paul Arnote (parnote)Im November vergangenen Jahres behandelten wir die rc.xml-Datei von LXDE. Damals ging es um den LXDE Desktop. Weil LXDE Openbox als seinen Fenstermanager verwendet, sind eine Menge der Informationen, die wir angeschnitten haben auch auf die Openbox-Ausgabe von PCLinuxOS anwendbar.
Openbox verwendet eine Datei die, genauso wie die für die Konfiguration von LXDE, rc.xml heisst. Die Datei befindet sich im Ordner /home/username/.config/openbox und ist verantwortlich für die Definition von verschiedenen Aspekten, wie der Darstellung Ihrer Fenster auf dem Bildschirm, der Maustastenbelegung, der Tastaturbelegung und viele weitere Einstellungen. Sie müssen die Anzeige von versteckten Dateien im Datei-Manager aktivieren, damit Sie den versteckten Ordner angezeigt bekommen.
Damit Sie nun Ihre Openbox-Installation einstellen, optimieren und vollständig anpassen können, werfen wir einen Blick auf die verschiedenen Bereiche der Datei rc.xml, sowie auf einige Dinge, die Sie damit machen können.
Grundlegende Dateistruktur
Wie Sie vielleicht bereits bemerkt haben, verwendet die Datei rc.xml das XML-Format, welches für Extensible Markup Language steht. XML ist HTML sehr ähnlich. Genau wie bei HTML haben die Befehlssätze ein einleitendes und ein abschließendes Argument oder tags. Um beispielsweise eine dicke Schrift in HTML zu bekommen, würden Sie folgendes verwenden <b> hier der Text </b>, um den gewünschten dicken Text zwischen dem <b> und </b> zu erhalten.
In XML hat jeder Starttag ein Endtag. Also, wenn Sie ein < Keybind irgendetwas >-tag haben, haben Sie auch ein </keybind>-tag, um es wieder zu schließen. XML-Befehle können auch geschachtelt werden (sie sind es meistens), wie dieser Auszug aus der Datei rc.xml zeigt:
<keybind key="C-A-x">
<action name="Execute">
<command>xchat</command>
</action>
</keybind>
Wie Sie sehen, arbeiten die verschachtelten Befehle in XML von außen in die Mitte, dann wieder zurück nach außen. In obigem Auszug beginnen wir mit dem Keybinding-tag (< Keybind … >), definieren die Tasten, die wir auf der Tastatur verwenden (C-A-x), geben die Aktion an, für diese Tastenkombination stehen soll (Execute) und geben den Befehl an, der ausgeführt werden soll (<command> Xchat). Anschliessend gehen wir unseren Weg weiter nach draußen, schließen den Kommando-tag (</command>), dann den Aktions-tag (</action>), und schließlich den Keybind-tag (</keybind>). Fehler beim Schließen der tags oder Schließen der tags in der falschen Reihenfolge führen zu einer beschädigten XML-Datei. Tipp- oder Rechtschreibfehler erzeugen ebenfalls eine fehlerhafte XML-Datei. Prüfen Sie deshalb alles doppelt bevor Sie die Datei speichern! Ganz sicher wäre es eine umsichtige Entscheidung, eine Sicherungskopie der ursprünglichen, unveränderten rc.xml-Datei zu erstellen. Sollte in diesem Falle etwas absolut daneben gehen, so können Sie Ihren Computer immer noch in den früheren funktionierenden Zustand zurückversetzen, indem Sie die fehlerhafte rc.xml-Datei durch die rc.xml-Datei ersetzen, von der Sie wissen, dass sie funktioniert.
Glücklicherweise ist der Text-Editor Geany, der bei den PCLinuxOS Openbox-Versionen installiert ist, sehr gut beim Hervorheben der Syntax. Während es zunächst nicht den Anschein haben mag, können Sie mit einem Text-Editor mit Syntaxhervorhebung Stunden bei der Fehlersuche einsparen, sollten Sie sich am Ende mit einer beschädigten XML-Datei herumschlagen müssen. Da die Hervorhebung "in Echtzeit" geschieht, ist es auch einfach und schnell zu erkennen, wenn Sie beim Eingeben der Befehle einen Fehler gemacht haben.
Sie werden feststellen, dass die Datei rc.xml Kommentare enthält. Kommentarzeilen sehen folgendermaßen aus:
<!-- Kommentare stehen hier -->
Wenn Sie etwas zu Ihrer rc.xml-Datei hinzufügen, so wäre es eine gute Idee, auch Ihre eigenen Kommentare einzufügen. Sechs Monate nachdem Sie Änderungen oder Ergänzungen vorgenommen haben, können Sie vergessen haben, was das genau war. Hinterlassen Sie eine "Visitenkarte" in Form eines Kommentars, der beschreibt was Sie getan haben. Darüber hinaus können Ihnen die Kommentare der Standarddatei rc.xml auf lange Sicht dabei helfen zu verstehen, was in dem angegebenen Abschnitt der Datei zu tun ist.
Wenn Sie die rc.xml-Datei öffnen, werden Sie feststellen, dass das erste tag in der Datei mit < Openbox-Config irgendetwas > beginnt. Dies bedeutet, dass das letzte tag in der rc.xml-Datei < / Openbox-Config > lauten muss, um die rc.xml-Datei zu schließen. Dazwischen definieren alle anderen XML-tags, die Openbox-Optionen.
Erster Abschnitt: Resistance
Bei den Einstellungen für den Widerstand (Resistance) stellen Sie ein, wie stark Sie ein Fenster auf dem Bildschirm an den Bildschirmrand verschieben müssen, bevor sich das Fenster auf den nächsten virtuellen Desktop verschiebt. Je höher die Zahl, desto kräftiger müssen Sie "schieben" bevor dieses Fensters auf den nächsten Desktop übertragen wird. Hier sind die Standardeinstellungen der installierten Openbox:
<resistance>
<strength>10</strength>
<screen_edge_strength>20</screen_edge_strength>
</resistance>
Die Einstellung von "strength" (Stärke) legt fest, wie gross der Widerstand zwischen den benachbarten Fenstern sein wird, bevor sie sich überlappen. Die Einstellung von "Screen_edge_strength" (Stärke der Bildschirmränder) bestimmt, wieviel Widerstand am Bildschirmrand nötig ist, um das ausgewählte Fenster auf den nächsten Desktop zu verschieben.
Bei meinem Exemplar von Openbox habe ich die Einstellungen der Stärke auf 50 und die Stärke der Bildschirmränder auf 100 geändert. Dies bedeutet, ich muss ziemlich hart gegen den Bildschirmrand verschieben, bevor das Fenster zum nächsten Desktop verschoben wird. Ich habe dies gemacht, weil ich manchmal einfach ein Fenster am Bildschirmrand positionieren möchte, und ich nicht möchte, dass es auf einen anderen Desktop verschoben wird.
Zweiter Abschnitt: Fokus
Der zweite Abschnitt von rc.xml befasst sich damit, wie Openbox die Fenster auf Ihrem Desktop ansteuert. Es gibt eine Reihe von Optionen, aus denen Sie auswählen können. Hier sehen Sie den Abschnitt "Fokus" meiner Openbox-Installation:
<focus>
<focusNew>yes</focusNew>
<!-- always try to focus new windows when they appear. other rules do
apply -->
<followMouse>no</followMouse>
<!-- move focus to a window when you move the mouse into it -->
<focusLast>no</focusLast>
<!-- focus the last used window when changing desktops, instead of the
one under the mouse pointer. when followMouse is enabled -->
<underMouse>no</underMouse>
<!-- move focus under the mouse, even when the mouse is not moving -->
<focusDelay>200</focusDelay>
<!-- when followMouse is enabled, the mouse must be inside the window for
this many milliseconds (1000 = 1 sec) before moving focus to it -->
<raiseOnFocus>no</raiseOnFocus>
<!-- when followMouse is enabled, and a window is given focus by moving
the mouse into it, also raise the window -->
</focus>
Fangen wir damit an. Die Einstellung "FocusNew" (neu zentrieren) teilt Openbox mit, automatisch alle neuen Fenster, die auf Ihrem Desktop angezeigt werden, anzusteuern. Die Einstellung "FollowMouse" (dem Mauszeiger folgen) teilt Openbox mit, die Auswahl der Fenster auf das Fenster unter dem Mauszeiger zu ändern. Hier ist die Standardeinstellung "Ja", aber ich habe sie auf "Nein" geändert.
Die Einstellung "FocusLast" (zuletzt ausgewählt) hat nur dann eine Auswirkung, wenn "FollowMouse" aktiviert ist oder auf "Ja" steht. Der Standardwert für "FocusLast" ist "Nein". Wenn Sie dies auf "Ja" ändern, so wird es automatisch auf das letzte aktive Fenster auf einem anderen Desktop ausgerichtet, unabhängig davon, welches Fenster sich derzeit unter dem Mauszeiger befindet.
Mit der Einstellung "UnderMouse" (unter dem Mauszeiger) bewegt sich die Auswahl zum Fenster unter dem Mauszeiger auch dann, wenn die Maus selbst nicht bewegt wird. Der Standardwert ist "Nein". Die Einstellung "FocusDelay" (Auswahlverzögerung) bestimmt die Verzögerung in Millisekunden, bevor das Fenster ausgerichtet wird, wenn der Mauszeiger in ein Fenster verschoben wurde. Der Standardwert ist 200 ms. Die Einstellung "RaiseOnFocus" bewirkt, dass das ausgewählte Fenster automatisch nach oben kommt. Die Standardeinstellung ist auf "Nein." festgelegt. Diese drei Einstellungen sind abhängig von der Einstellung "FollowMouse", und wenn die Einstellung "FollowMouse" deaktiviert ist (auf "Nein" festgelegt), dann bewirkt diese Einstellung definitiv nichts.
Dritter Abschnitt: Placement
Der Abschnitt "Placement" (Platzierung) der Datei rc.xml teilt Openbox mit, wie die Fenster auf dem Desktop angeordnet werden. Die Standardwerte sind nachfolgend aufgeführt:
<placement>
<policy>Smart</policy>
<!-- 'Smart' or 'UnderMouse' -->
<center>yes</center>
<!-- whether to place windows in the center of the free area found or
the top left corner -->
<monitor>Active</monitor>
</placement>
Sie können auswählen, ob die Fenster unter der Maus angeordnet werden, oder ob Openbox die Fenster anordnen soll (die "kluge" Strategie). Indem Sie die Einstellunge "center" (zentriert) ändern, können Sie auch bestimmen, ob die Fenster auf Ihrem Desktop zentriert sein sollen oder nicht.
Vierter Abschnitt: Theme
Der Abschnitt "Theme" (Thema) von rc.xml teilt Openbox mit, welches Thema beim Anzeigen Ihrer Fenster verwendet werden soll, sowie welche Optionen dabei zu verwenden sind (Schriftarten, Fensterdekorationen, Fenster-Dekorations-Reihenfolge usw.). Unten ist ein Auszug aus dem Abschnitt Thema der Datei rc.xml:
<theme>
<name>Appleish</name>
<titleLayout>NSLIMC</titleLayout>
<!--
avaible characters are NDSLIMC, each can occur at most once.
N: window icon
L: window label (AKA title).
I: iconify
M: maximize
C: close
S: shade (roll up/down)
D: omnipresent (on all desktops).
-->
<keepBorder>yes</keepBorder>
<animateIconify>yes</animateIconify>
<font place="ActiveWindow">
<name>Liberation Sans</name>
<size>10</size>
<!-- font size in points -->
<weight>Bold</weight>
<!-- 'bold' or 'normal' -->
<slant>Normal</slant>
<!-- 'italic' or 'normal' -->
</font>
...
Die erste Einstellung "name", teilt Openbox mit, für welches Thema ich mich entschieden habe. In meinem Fall ist es das Thema "Appleish", welches ich über Synaptic installiert habe.
Die nächste Einstellung "TitleLayout" teilt Openbox mit, welche Fensterdekorationen Sie auf der Titelleiste des Fensters gemeinsam mit der Platzierung dieser Dekorationen angezeigt haben möchten. Glücklicherweise wird in in den Anmerkungen dieses Abschnitts der rc.xml-Datei ein "Schlüssel" zur Verfügung gestellt. Jedes Zeichen kann nur einmal in jedem der angegebenen Thema verwendet werden.
Die Einstellung "KeepBorder" teilt Openbox mit, ob es die Fensterrahmen behalten sollte, wenn die Fensterdekorationen deaktiviert sind. Hier ist der Standardwert "Ja." Die Einstellung "AnimateIconify" ermöglicht eine leichte Animations-Funktion, wenn die Fenster zur Leiste hin minimiert werden. Die Standardeinstellung ist "Ja."
Als nächstes legen wir die Attribute für die verschiedenen Textbereiche des Themas fest. Beginnend mit der Titelleiste des "Activewindow" (aktives Fensters), legen wir den Namen "name", die Grösse "size", die Stärke "weight" und die Neigung "slant" der Schriftart fest. Wir wiederholen dies für alle weiteren Fensterbereiche: InactiveWindow (inaktive Fenster), MenuHeader (Menütitel), MenuItem (Menüpunkt) und OnScreenDisplay (Bildschirmanzeige).
Wir werden in einem separaten Artikel die Themen ein wenig später ausführlicher behandeln.
Fünfter Abschnitt: Desktops
Wie Sie sich vorstellen können, gilt dieser Abschnitt der rc.xml-Datei den Informationen bezüglich Ihrer virtuellen Desktops.
<desktops>
<!-- this stuff is only used at startup, pagers allow you to change them
during a session
these are default values to use when other ones are not already set
by other applications, or saved in your session
use obconf if you want to change these without having to log out
and back in -->
<number>4</number>
<firstdesk>1</firstdesk>
<names>
<name>Water</name>
<name>Fire</name>
<name>Earth</name>
<name>Air</name>
</names>
<popupTime>500</popupTime>
<!-- The number of milliseconds to show the popup for when switching
desktops. Set this to 0 to disable the popup. -->
</desktops>
Die erste Einstellung "number" (Anzahl), legt die Anzahl der verfügbaren virtuellen Desktops fest. Die Einstellung "Firstdesk" (erster Desktop) gibt an, welcher Desktop zuerst angezeigt werden soll, wenn Openbox gestartet wird. Unter der Einstellung "names" (Namen) können Sie einen Namen für jeden virtuellen Desktop festlegen. Sie können einen beliebigen Namen vergeben. Sie können sie nach den Namen Ihrer Kinder benennen, ihnen philosophische Namen geben, oder es ganz schlicht halten und sie numerieren. Standardmäßig sind sie mit Wasser, Feuer, Erde und Luft benannt. Die letzte Einstellung, "PopupTime" legt die Zeit in Millisekunden fest, bevor das neu erscheinende Fenster auf dem Bildschirm angezeigt wird, wenn Sie die Desktops wechseln. Die Standardeinstellung ist 500 ms oder eine halbe Sekunde.
Sechster Abschnitt: Resize
Der Abschnitt "Resize" (Größenänderung) regelt wie Openbox Fenster beim Ändern der Größe oder beim Bewegen anzeigt. Nachstehend wird der Abschnitt "resize" der rc.xml-Datei mit allen Standardwerten angezeigt:
<resize>
<drawContents>yes</drawContents>
<popupShow>NonPixel</popupShow>
<!-- 'Always', 'Never', or 'Nonpixel' (xterms and such) -->
<popupPosition>Center</popupPosition>
<!-- 'Center' or 'Top' -->
<popupFixedPosition>
<x>0</x>
<y>0</y>
</popupFixedPosition>
</resize>
Die Einstellung "DrawContents" (Inhalt zeichnen) teilt Openbox mit, das Programm innerhalb des Fensters neu aufzubauen, wenn Sie die Größe ändern, oder wenn sie das Fenster verschieben. Wenn die Einstellung "PopupShow" (Dialogfeld anzeigen) auf "NonPixel" (kein Pixel) festgelegt ist, so wird nur ein aufspringendes Fenster auf dem Bildschirm erscheinen, wenn die Größenanpassung des Fenster die Größe um mehr als ein Pixel verändert hat. Das aufspringende Fenster zeigt die Bildschirmkoordinaten für das in der Größe angepasste Fenster, zusammen mit der Pixelgröße des Fensters an. Dies wird normalerweise für Terminals verwendet. Zudem lässt sich einstellen, ob "PopupShow" (das Dialogfeld) immer angezeigt werden soll oder ob es nie angezeigt werden soll.
Durch die Einstellung "PopupPosition" (Position des Dialogfeldes) können Sie den Ort angeben, an dem das aufspringende Fenster angezeigt wird. Mit der Standardeinstellung "Center" (Mitte), wird das aufspringende Fenster in der Mitte des Fensters angezeigt, welches in der Größe geändert oder verschoben wird. Die andere Auswahl wäre "top" (oben), wobei das aufspringende Fenster über der Titelleiste des Fensters angezeigt wird oder "fixed" (fixiert), wobei das aufspringende Fenster an einem Ort angezeigt wird, welcher unter "PopupFixedPosition" (an festgelegter Position) festgelegt wurde. Die Festlegungen für die beiden Einstellungen von x und y erfolgen unter der Einstellung "PopupFixedPosition".
Siebter Abschnitt: Margins
Der Abschnitt "margins" (Seitenränder) in der Datei rc.xml legt dementsprechend die Seitenränder auf dem Bildschirm fest.
<margins>
<top>1</top>
<bottom>2</bottom>
<left>2</left>
<right>2</right>
</margins>
Geben Sie die Anzahl der Pixel an, die Sie in den Einstellungen als Bildschirmrand oben, unten, links und rechts eingestellt haben möchten. Dann werden keine Elemente (außer dem Hintegrund) in diesen Bereichen des Bildschirms aufscheinen.
Achter Abschnitt: Dock
Openbox kann Elemente von anderen Desktops und Window-Managern gut verwenden. Dies ermöglicht es Ihnen, eine beliebige Anzahl von Dockapps (andockbare Anwendungen) zu verwenden, welche für WindowMaker wie Xfce, KDE, Gnome und viele andere verfügbar sind. Sie können eine ganze Reihe von verfügbaren Dockapps für die Verwendung mit Openbox bei dockapps.org finden. Der Abschnitt "Dock" in der rc.xml-Datei hilft zur Festlegung bei der Platzierung. Er hat nur Auswirkungen, wenn ein Dockapp ausgeführt wird.
<dock>
<position>TopLeft</position>
<!-- (Top|Bottom)(Left|Right|)|Top|Bottom|Left|Right|Floating -->
<floatingX>0</floatingX>
<floatingY>0</floatingY>
<noStrut>yes</noStrut>
<stacking>Above</stacking>
<!-- 'Above', 'Normal', or 'Below' -->
<direction>Horizontal</direction>
<!-- 'Vertical' or 'Horizontal' -->
<autoHide>no</autoHide>
<hideDelay>300</hideDelay>
<!-- in milliseconds (1000 = 1 second) -->
<showDelay>300</showDelay>
<!-- in milliseconds (1000 = 1 second) -->
<moveButton>Middle</moveButton>
<!-- 'Left', 'Middle', 'Right' -->
</dock>
Bei der Einstellung "Position" können Sie festlegen, wo das Dockapp angezeigt wird. Der Standardwert ist oben Links. Andere Möglichkeiten sind oben rechts, unten links, unten rechts, oben, unten, links, rechts oder frei schwebend. Wenn Sie frei schwebend auswählen, dann legen Sie bei den beiden nächsten Einstellungen, „floating“ (frei schwebend) X und „floating“ (frei schwebend) Y die horizontale bzw. die vertikale Positionierung fest.
Die Einstellung "noStrut" (nicht im Vordergrund) ermöglicht, dass Fenster über dem Dockapp platziert werden. Die Einstellung "stacking" (stapeln) bestimmt, auf welcher Ebene des Desktops das Dockapp zu platzieren ist. Durch die Einstellung "direction" (Richtung) können Sie entscheiden, ob Ihre Dockapps in einer vertikalen oder in einer horizontalen Reihe positioniert sind.
Durch Umschalten der Einstellung "autoHide" (automatisch ausblenden - der Standardwert ist "Nein"), können Sie Ihre Dockapps automatisch solange ausblenden, bis Sie mit dem Mauszeiger über deren Position gleiten. Wenn die Einstellung "autoHide" aktiviert ist, so werden auch die Einstellungen für "HideDelay" (Verzögerung beim Ausblenden) und "ShowDelay" (Verzögerung beim Einblenden) aktiviert. Die Einstellung für beide wird in Millisekunden angegeben. Der Standardwert ist 300 ms.
Schließlich bestimmt die Einstellung "MoveButton" (Bewegungstaste), welche Maustaste Sie verwenden um das Dockapp an eine neue Stelle auf dem Desktop zu verschieben. Der Standardwert ist "Middle" (Mitte).
Neunter Abschnitt: Keyboard
Der Abschnitt "keyboard" (Tastatur) ist in der Regel der größte Abschnitt der rc.xml-Datei. Hier können Sie hinsichtlich der Funktionalität von Openbox einige sehr interessante Änderungen vornehmen. Nachstehend ein Auszug der ersten Zeilen des Abschnitts Tastatur aus meiner rc.xml-Datei:
<keyboard>
<!-- Keybindings for desktop switching -->
<keybind key="C-A-Left">
<action name="DesktopLeft">
<dialog>no</dialog>
<wrap>yes</wrap>
</action>
</keybind>
<keybind key="C-A-Right">
<action name="DesktopRight">
<dialog>no</dialog>
<wrap>yes</wrap>
</action>
</keybind>
<keybind key="C-F1">
<action name="Desktop">
<desktop>1</desktop>
</action>
</keybind>
Ziemlich gründlich behandelte ich die Tastaturbelegungen schon im November 2010 im Artikel: LXDE: Die lxde-rc.xml - das Herz und die Seele. Da LXDE Openbox als seinen Fenstermanager verwendet, gelten die Informationen in diesem Artikel gleichermaßen auch für die rc.xml-Datei von Openbox. Anstatt nun all diese Informationen hier noch einmal zu wiederholen, verweise ich Sie einfach auf den genannten Artikel zur vollständigen Erörterung der Tastaturbelegungen.
Bei meiner Installation von Openbox fand ich doppelte Tastaturbelegungen vor oder Tasten-Kombinationen, die in der Regel für andere Funktionen reserviert und zugeordnet sind. Beispielsweise sind für die Einstellungen "Desktopleft" (Desktop nach links) und "Desktopright" (Desktop nach rechts) in meinem Auszug oben die Standardwerte als C-Links (Strg-Taste + linke Cursortaste) und C-rechts (Strg-Taste + rechten Cursor-Taste) definiert. Diese Tasten-Kombinationen sind jedoch in der Regel für den Einsatz in Textverarbeitungsprogrammen vorbehalten, um den Cursor in Ihrem Dokument um ein Wort weiter zu bewegen. Daher änderte ich meine Tastaturbelegung für "Desktopleft" und "Desktopright" in C-A-Links (Strg-Taste + Alt-Taste + linke Cursortaste) und C-A-Rechts (Strg-Taste + Alt-Taste + rechts-Taste). Dies garantiert das reibungslose Funktionieren der ursprünglichen Tastenkombination für den Einsatz in meinem Textverarbeitungsprogramm.
Eine andere dubiose Tastenkombination (zumindest für mich) ist die Definition der C-w (Strg-Taste + Taste "w") um die Funktion "Showmenu" (Menüanzeige) auszuführen. Diese öffnet ein Menü, das alle Desktops und die Anwendungen, die darauf ausgeführt werden, anzeigt. Ich verwende in der Regel die C-w-Taste um untergeordnete Fenster in einer Anwendung, ähnlich den einzelnen Registerkarten in meinem Web-Browser, zu schließen. Ich habe einfach meine Tastaturbelegung so geändert, dass C-A-w die Funktion von "Showmenu" ausführt, um die Verwendung von C-w dafür aufzubewahren, wofür ich es normalerweise verwende.
Darüber hinaus sind viele Tastaturbelegungen definiert, welche die Super-Taste (auch bekannt als die Windows-Taste) verwenden. Mein IBM T23 verfügt jedoch über keine Super-Taste, so dass die Verwendung dieser Tasten-Kombinationen für mich nicht möglich sind. Stattdessen habe ich die Tastaturbelegung der Super-Taste auf die Tastaturbelegung Strg + Alt geändert.
Eine wirklich tolle Sache im Abschnitt "Tastatur" der rc.xml-Datei ist, dass ich die Tasten-Kombinationen ändern kann um sie auf meine Bedürfnisse abzustimmen und um sie besser an meine Hardware anzupassen. Die vordefinierte Tastaturbelegung, die die Super-Taste benutzt, um Programme zu starten, verwende ich nie oder recht selten. Tastaturbelegungen für Aufgaben, die ich üblicherweise nicht über die Tastatur ausführe, ließ ich einfach unverändert.
Der Abschnitt "Tastatur" erlaubt auch auf elegante Weise einem Bash-Skript, welches Sie regelmäßig ausführen, eine Tasten-Kombination zuzuweisen. Somit ist das Script nur einem Tastenanschlag oder zwei von der Ausführung entfernt.
Ich empfehle, dass Sie den Abschnitt über die Einrichtung der Tastaturbelegungen genau durchlesen. Es wird nicht lange dauern bis Sie das Format ändern und damit beginnen wieder Ihre eigenen benutzerdefinierten Tastaturbelegungen festzulegen. Wenn Sie weitere Informationen zur Tastaturbelegung haben möchten, besuchen Sie den Openbox Wiki-Eintrag über Tastaturbelegungen, der eine vollständige Aufschlüsselung aller Tastaturbelegungseinstellungen auflistet. Wir werden die Tastaturbelegung auch später in weiteren Artikeln zu Openbox im PCLinuxOS Magazin erwähnen.
Zehnter Abschnitt: Mouse
Unter dem Abschnitt "mouse" (Maus ) der rc.xml Datei können Sie die meisten Einstellungen für das Verhalten Ihrer Maus unter Openbox steuern. Nachstehend ein Auszug aus der rc.xml-Datei meiner Openbox-Installation (dieser Abschnitt ist zu lang um vollständig dargestellt zu werden):
<mouse>
<dragThreshold>8</dragThreshold>
<!-- number of pixels the mouse must move before a drag begins -->
<doubleClickTime>200</doubleClickTime>
<!-- in milliseconds (1000 = 1 second) -->
<screenEdgeWarpTime>400</screenEdgeWarpTime>
<!-- Time before changing desktops when the pointer touches the edge of
the screen while moving a window, in milliseconds (1000 = 1 second).
Set this to 0 to disable warping -->
<context name="Frame">
<mousebind button="A-Left" action="Press">
<action name="Focus"/>
<action name="Raise"/>
</mousebind>
<mousebind button="C-A-Left" action="Click">
<action name="Unshade"/>
</mousebind>
<mousebind button="A-Left" action="Drag">
<action name="Move"/>
</mousebind>
<mousebind button="A-Right" action="Press">
<action name="Focus"/>
<action name="Raise"/>
<action name="Unshade"/>
</mousebind>
Einige grundlegende Mauseinstellungen, etwa wie schnell ein Doppelklick der Maus zu erfolgen hat, bevor er als Doppelklick erkannt wird, die Anzahl der Pixel beim Bewegen der Maus, bevor erkannt wird, dass Sie ein Fenster oder ein anderes Bildschirmelement ziehen, oder wie viel Zeit Sie haben, um ein Fenster auf einen Bildschirmrand zu schieben, bevor es auf den angrenzenden Desktop verschoben wird, werden oben rechts vorne behandelt.
Der Großteil des Abschnitts "Maus" befasst sich mit den Maustastenbelegungen. Maustastenbelegungen sind der Tastaturbelegung sehr sehr ähnlich und definieren, welche Aktion auszuführen ist, wenn verschiedene Maustasten gedrückt werden. Die Kombination mit bestimmten Tasteneingaben ist kontextabhängig, je nachdem wie Openbox sie erkennt. Letzteres wird durch die Einstellung "context name" (Kontextname) bestimmt.
Eine ausführliche Erörterung der Einstellungen erfahren Sie, wenn Sie die Wiki-Seite von Openbox zu Maustastenbelegungen aufrufen. Die meisten Benutzer werden wahrscheinlich nicht viele Gründe dafür finden um an den Maustastenbelegungen herumzufummeln – es sei denn, Sie sind ein Tweak-Aholic, oder, wenn Sie die neueste Maus für Spiele mit 56 Tasten-Kombinationen besitzen.
Elfter Abschnitt: Menu
Wie Sie sich vorstellen können, wird im Abschnitt "Menu" (Menü) das Verhalten des Menüs unter Openbox gesteuert. Nachstehend der gesamte Abschnitt Menü aus der rc.xml-Datei meiner Openbox-Installation:
<menu>
<!-- You can specify more than one menu file in here and they are all loaded,
just don't make menu ids clash or, well, it'll be kind of pointless -->
<!-- default menu file (or custom one in $HOME/.config/openbox/) -->
<file>menu.xml</file>
<hideDelay>200</hideDelay>
<middle>no</middle>
<submenuShowDelay>100</submenuShowDelay>
<applicationIcons>yes</applicationIcons>
</menu>
Der erste Eintrag "file" (Datei ) gibt an, welche Datei die Daten enthält, die Openbox zur Erstellung des Anwendungsmenüs benötigt. Sie sind über einen Rechtsklick auf den Desktop zugänglich. Sie können zwar mehrere Menü-Dateien haben, aber wie die Bemerkungen oben zeigen, müssen Sie sicherzustellen, dass es keine Konflikte zwischen den Menü Ids bei allen Menü-Dateien gibt. In der Regel befindet sich die hier angegebene Menüdatei im Ordner /home/username/.config/openbox. Es gibt noch eine weitere menu.xml Datei unter etc/xdg/openbox, aber um ganz ehrlich zu sein, ich kann nicht sehen, dass sie verwendet wird oder wo sie ins Bild passen würde.
Die Einstellung "HideDelay" (Verzögerung beim Ausblenden) bewirkt, dass das Menü sofort ausgeblendet wird, wenn Sie länger als die angegebene Zeitspanne darauf klicken (der Standard ist 200 ms). Wenn Sie ein "langsamer Mausklicker" sind, können Sie eine längere Zeit einstellen. Denken Sie daran, dass 1000 ms einer Sekunde entspricht und 500 ms eine halbe Sekunde wären. Anklicken und Loslassen des Menüs für eine geringere als die angegebene Zeit bewirkt, dass das Menü weiterhin angezeigt wird, selbst wenn Sie die Maustaste loslassen.
Die Einstellung "middle" (Mitte) bewirkt, dass die Menüs vertikal zentriert und nicht oben ausgerichtet werden. Die "SubmenuShowDelay" (Verzögerung beim Anzeigen des Untermenüs) und "SubmenuHideDelay" (Verzögerung beim Ausblenden des Untermenüs - nicht dargestellt!) bestimmen die zeitliche Verzögerung vor dem Anzeigen und anschließendem Ausblenden eines Untermenüs. Beide Werte müssen kleiner sein als die Einstellung "HideDelay" (Verzögerung beim Ausblenden), ansonsten werden sie ignoriert.
Mit der Einstellung "ApplicationsIcons" (Anwendungssymbole) können Sie bei Openbox festlegen, ob die Anwendungssymbole auf dem Desktop und im Programmmenü angezeigt werden oder nicht. Ich habe festgestellt, dass diese Einstellung keine Auswirkungen auf das Rechtsklickmenü im Anwendungsmenü von Openbox hat. Unabhängig von der Einstellung wurde mir noch nie irgendein Symbol von Anwendungen in diesem Menü angezeigt. Sie kann jedoch eine Rolle spielen, wenn Sie ein bona fide Menue zum Starten von Anwendungen verwenden, ähnlich dem, das Sie bei der Anwendung von LXDE-Panel (lxpanel) verwenden.
Die Einstellung "ManageDesktops" (Desktopverwaltung) ist im Abschnitt Menü der rc.xml-Datei meiner Openbox-Installation nicht enthalten. Durch einen Rechtsklick aus dem Kontextmenü von Openbox heraus ermöglicht diese Ihnen Desktops nach Ihren Wünschen spontan hinzufügen oder entfernen. Wenn Sie gerade am Arbeiten sind, und plötzlich feststellen, dass Ihnen ein weiterer Desktop helfen würde um Ihre Produktivität zu erhöhen, so können Sie dies an Ort und Stelle durch einen Rechtsklick aus dem Kontextmenü von Openbox heraus erledigen. Anscheinend ist der Standardwert für diese Einstellung "Ja," da ich diese Möglichkeit in meinem Openbox Kontextmenü habe, obwohl im Abschnitt Menü meiner rc.xml-Datei die entsprechenden Einträge fehlen.
Zwölfter Abschnitt: Applications
Unter dem Abschnitt "Applications" (Anwendungen) können Sie das Verhalten der einzelnen Anwendungen in Openbox definieren. Nachstehend eine Kopie des Abschnitts "Anwendungen" meiner rc.xml-Datei:
<applications>
<application name="draklive-install">
<maximized>true</maximized>
</application>
<application name="tint2">
<layer>below</layer>
</application>
… (example deleted)
</applications>
Dieser Abschnitt der rc.xml-Datei kann leicht ein bisschen größer werden als er hier angegeben ist. Mit den Einstellungen in diesem Abschnitt kann ich die Positionierung, die Desktops, den Status der Darstellung, die Ebenen und eine ganze Reihe von anderen Optionen für jede Anwendung angeben, die Sie normalerweise ausführen.
Wenn Sie wollen, nennen Sie mich ein Gewohnheitstier. Ich habe die Angewohnheit das Fenster meines Internetbrowsers auf Desktop1 zu haben und mein IRC Chat-Client ist auf Desktop 3 geöffnet. Ich mache dies auf allen meinen Computer so. Bei allen laufen verschiedene Versionen von PCLinuxOS. Es ist unter anderen eine Sache, die mir beim Organisieren hilft, wenn ich mehrere Anwendungen gleichzeitig geöffnet habe.
Wenn ich also auf einen Link im IRC klicke, möchte ich nicht wirklich, dass sich Firefox auf Desktop 3 öffnet. Dies macht einen Strich durch meine Routine. Mit den Einstellungen im Abschnitt "Anwendungen" meiner rc.xml-Datei ist es sehr einfach, das Öffnen von Firefox auf Desktop 1 zu beschränken.
Damit die benötigten Informationen an Openbox übergeben werden können, ist es hilfreich, ein Befehlszeilenprogramm namens Obxprop auszuführen. Wenn Sie Obxprop starten, ändert sich der Cursor in ein Fadenkreuz. Bewegen Sie den Mauszeiger über das Fenster von dem Sie Informationen erhalten wollen und klicken Sie darauf. Wie in der Abbildung unten dargestellt, wird Ihnen sofort eine Vielzahl an Informationen angezeigt.
Betrachten Sie die Informationen, die im Feld rot hervorgehoben sind. Damit Openbox die ordnungsgemäße Anwendung finden kann, müssen Sie entweder die _OB_APP_CLASS angeben oder den _OB_APP_NAME oder beides. Wenn Sie obxprop | grep "^_OB_APP" eingeben können Sie die Ausgabe auch verkürzen, um nur die von Openbox benötigten Informationen aufzulisten.
Jetzt haben Sie die Informationen die Openbox benötigt und können damit anfangen für Ihre Anwendung bestimmte Bedienelemente einzurichten. Zunächst müssen wir Openbox mitteilen für welche Anwendung wir die Regelung festlegen möchten. Das machen wir, indem wir den Namen und/oder die Klasse der Anwendung durch die von Obxprop ausgegebenen Informationen angeben.
<application name="chromium-browser" class=”Chromium-browser>
Nehmen wir mal an, dass wir immer Chromium auf Desktop 1 starten wollen. Als nächstes müssen wir Folgendes eingeben:
<desktop>1</desktop>
Wenn wir nun sicherzustellen wollen, dass die Anwendung immer maximiert geöffnet wird, dann würden wir eine weitere Zeile eingeben:
<maximized>true</maximized>
Schließlich schließen wir den "Anwendung"-tag ab:
</application>
Sie können in den Feldern Name und Klasse auch Platzhalter verwenden. Ein "*" entspricht einer beliebigen Anzahl von Zeichen, während ein "?" einem einzelnen Zeichen entspricht.
Es stehen verschiedene Optionen zur Verfügung um bestimmte Anwendungseinstellungen oder Regelungen festzulegen. Beziehen Sie sich auf den Abschnitt Openbox Wiki, um Beispiele zum Festlegen dieser Regeln und Einstellungen für die jeweilige Anwendung zu sehen. Sie können auch einen Blick auf die rc.xml Datei werfen, um einige Beispiele zum Einrichten der Anwendung und deren Regelungen und Einstellungen einsehen zu können.
Dreizehnter Abschnitt: Coordinates
Dieser Abschnitt der rc.xml-Datei ist in meiner Openbox-Installation nicht enthalten. Er sollte daher als optional betrachtet werden, da alles auch ohne ihn tadellos funktioniert. Wenn Sie mehr über den Abschnitt Koordinaten der Datei rc.xml wissen wollen, verweise ich Sie zum Abschnitt Koordinaten des Openbox Wiki.
Zusammenfassung
Wie Sie sehen, können Sie über die rc.xml-Datei Vieles vom Verhalten von Openbox steuern. Nachdem Sie einmal den Dreh über das XML-Format der Datei heraus haben, sind die Änderungen sehr einfach. Weil es so einfach ist sie zu ändern und weil es so viele Möglichkeiten gibt, haben Sie viel Spielraum beim Anpassen des Verhaltens der Openbox-Installation. Openbox kann tatsächlich auf einzigartige Art und Weise angepasst werden.