12. August 2013

Arch Linux: Der Weg zu "meinem" GNOME - Titelleiste von maximierten Fenstern verbergen (Teil 2)

In diesem zweiten Teil der Serie, die sich darum dreht, welche Veränderungen ich an der GNOME-Shell meines Arch Linux-Systems vorgenommen habe, soll gezeigt werden, wie es möglich ist die Titelleiste von maximierten Fenstern auszublenden. Dieses Verhalten ist z.B. aus der Desktopumgebung "Unity" unter Ubuntu bekannt. Dabei werden die Titelleisten von Fenstern ausgeblendet um vertikalen Platz auf dem Bildschirm zu sparen, sobald sie maximiert werden. Die Schaltflächen zum Minimieren, Maximieren und Schließen eines Fensters, die üblicherweise in dessen Titelleiste angezeigt werden, werden dann stattdessen in das Panel der Desktopumgebung, das sich am oberen Bildschirmrand befindet, verschoben. Für ein einheitliches Erscheinungsbild ist es außerdem sinnvoll, die Fenster-Schaltflächen, die sich unter GNOME 3 standardmäßig rechts befinden, nach links zu verschieben, da sie im Panel ebenfalls nur links dargestellt werden können, da sich auf der rechten Seite der System-Tray befindet. Außerdem bietet es sich an, die Aktivitäten-Schaltfläche, die unter GNOME 3 standardmäßig links im Panel angezeigt wird, auszublenden, so dass die Schaltflächen direkt am linken Bildschirmrand angezeigt werden können. Die unten stehende Abbildung verdeutlicht dieses Verhalten.

Darstellung der Fenster-Schaltflächen im GNOME-Panel am Beispiel von Chromium (Klicken zum Vergrößern)

1 Fenster-Schaltflächen nach links verschieben


Unter GNOME 3 werden die Fenster-Schaltflächen standardmäßig rechts in der Titelleiste angezeigt. Außerdem sind der Minimieren- und Maximieren-Button von Haus aus ausgeblendet. Durch Ausführen des folgenden Befehls können alle drei Schaltflächen zum Minimieren, Maximieren und Schließen eines Fensters auf der linken Seite dessen Titelleiste angezeigt werden:
 $ dconf write /org/gnome/shell/overrides/button-layout "'close,minimize,maximize:'"
Die Reihenfolge, in der die Buttons dem Befehl übergeben werden, bestimmt hierbei auch die Reihenfolge, in der sie von links nach rechts dargestellt werden.

Die Fenster-Schaltflächen nach der GNOME Standard-Einstellung
Die Fenster-Schaltflächen nach der hier vorgestellten Modifikation

2 Titelleiste von maximierten Fenstern ausblenden


Anschließend muss bewerkstelligt werden, dass die Titelleiste ausgeblendet wird, wenn das zugehörige Fenster maximiert wird. Dies ist möglich, indem die Konfigurationsdatei des genutzten Fenster-Themes editiert wird. Bei der betroffenen Datei handelt es sich um die metacity-theme-3.xml, die sich in dem Verzeichnis metacity-1 innerhalb des Ordners des jeweiligen Themes befindet. Da der Name des hier verwendeten Themes "Numix" lautet, lautet der komplette Pfad zu der betroffenen Datei dementsprechend /usr/share/themes/Numix/metacity-1/metacity-theme-3.xml. Diese XML-Datei muss nun mit Root-Rechten in einem Editor geöffnet werden. Hierfür eignet sich z.B. der folgende Befehl:
 $ sudo nano /usr/share/themes/Numix/metacity-1/metacity-theme-3.xml  
Dann muss in der Datei die Zeile, die mit "<frame_geometry name="max" [...]" beginnt ausfindig gemacht werden. In das betroffene frame_geometry-Tag muss dann das Attribute has_title="false" und das Kind-Element <distance name="title_vertical_pad" value="0" /> eingefügt werden. Ersteres dient zum eigentlichen Ausblenden der Titelleiste, zweiteres muss gesetzt werden, um zu verhindern, dass ein vertikaler Abstand zwischen dem Fensterinhalt und dem GNOME-Panel entsteht. Außerdem sollte sichergestellt sein, dass alle übrigen Kind-Element den Wert 0 besitzen. Der folgende Ausschnitt aus einer solchen XML-Datei zeigt, wie der betroffene Abschnitt nach dem Editieren aussehen könnte. Die relevanten Stellen sind dabei fett hervorgehoben.
 <frame_geometry name="max" has_title="false" title_scale="medium" parent="normal" rounded_top_left="false" rounded_top_right="false">  
     <distance name="left_width" value="0" />  
     <distance name="right_width" value="0" />  
     <distance name="title_vertical_pad" value="0" />  
     <distance name="bottom_height" value="0" />  
 </frame_geometry>
Um bei der Verwendung des Numix-Themes in Verbindung mit dem Shell-Theme "Elegance Colors" einen hellen, störenden Streifen zwischen GNOME-Panel und Fenster zu verhindern, sollte außerdem der Wert der Option "Border width" in der Kategorie "Panel" der Elegance Colors-Konfiguration auf 0 gesetzt werden. Der unten abgebildete Screenshot zeigt eine dementsprechende Konfiguration.

Konfiguration des GNOME-Panels über das Shell-Theme "Elegance Colors" (Klicken zum Vergrößern)

3 Aktivitäten-Schaltfläche ausblenden


Standardmäßig wird am linken Rand des GNOME-Panels eine Schaltfläche mit entsprechender Beschriftung dargestellt, die es erlaubt das Aktivitäten-Menü zu öffnen. Da jedoch die Schaltflächen eines maximierten Fensters an dieser Stelle angezeigt werden soll, empfiehlt es sich aus optischen Gründen, diese Schaltfläche auszublenden. Meiner Meinung nach stellt dies keine Einschränkung der Usability dar, da das Aktivitäten-Menü trotz Ausblenden der Schaltfläche weiterhin über die Super-Taste oder über die Bewegung der Maus in die linke, obere Ecke geöffnet werden kann.

Um die Aktivitäten-Schaltfläche auszublenden kann die GNOME-Extension "Activities Configurator" genutzt werden, die unter dieser Adresse installiert werden kann, insofern das Plugin "Gnome Shell Integration" im Browser aktiviert ist. Um die Schaltfläche auszublenden muss die Option "Aktivitäten-Schaltfläche entfernen" in den Einstellungen der Extension aktiviert werden. Die Einstellungen einer Extension lassen sich z.B. über die Kategorie "Shell-Erweiterungen" des Gnome Tweak Tools öffnen. Eine dementsprechende Konfiguration der Extension ist auf dem unten stehenden Screenshot zu sehen.

Die Konfiguration der GNOME-Extension "Activities Configurator" zum Ausblenden der Aktivitäten-Schaltfläche (Klicken zum Vergrößern)

4 Schaltflächen im GNOME-Panel anzeigen


Zuletzt müssen die Schaltflächen des maximierten Fensters im GNOME-Panel statt in der versteckten Titelleiste angezeigt werden. Auch hierfür existiert eine GNOME-Extension namens "Window Buttons", die unter diesem Link installiert werden kann. Der unten stehende Screenshot zeigt die Einstellungen der Extension, die getroffen werden müssen, um die Fenster-Schaltflächen in der korrekten Reihenfolge am linken Rand des GNOME-Panels anzuzeigen, wenn das aktuell aktive Fenster maximiert ist. 

Einstellungen der GNOME-Extension "Window Buttons" (Klicken zum Vergrößern)

Um als zu verwendendes Theme "Numix" auswählen zu können und dementsprechend das Aussehen der Schaltflächen identisch zu denen des Fenster-Themes zu gestalten, muss dieses Theme zuerst manuell angelegt werden. Hierfür muss der Ordner "Numix" unter dem Verzeichnis ~/.local/share/gnome-shell/extensions/window_buttons@biox.github.com/themes angelegt werden. In diesem Verzeichnis müssen dann Grafiken für die einzelnen Buttons in ihren verschiedenen Zuständen (normal, fokusiert, angeklickt), sowie eine XML-Datei zur Definition des Themes enthalten sein. 

Die notwendigen Grafiken können aus dem Numix-Theme kopiert werden. Sie befinden sich im Verzeichnis /usr/share/themes/Numix/metacity-1. Es handelt sich dabei um alle, in dem Verzeichnis enthaltenen png-Dateien. 

Die XML-Datei zur Definition des Themes muss style.css heißen und enthält die Zuweisung der einzelnen Grafiken zu den verschiedenen Zuständen der einzelnen Schaltflächen. Sie kann von einem der bereits verfügbaren Themes der GNOME-Extension kopiert werden. Hierfür eignet sich beispielsweise die CSS-Datei des Themes "Ambiance", da dies gleichnamige Grafiken enthält, weshalb die Datei nicht weiter angepasst werden muss. Lediglich der Wert der Eigenschaft "spacing" der Klasse "button-box" sollte auf 4px gesetzt werden und die Werte der Eigenschaften "width" und "height der Klasse "window-button" sollten auf jeweils 24px geändert werden, um ein identisches Aussehen wie beim Fenster-Theme zu erreichen. Diese Breiten- und Höhenangabe entspricht dabei den Abmessungen der Grafiken in Pixeln.

Die Dateien eines eigenen Themes für die GNOME-Extension "Window Buttons" (Klicken zum Vergrößern)

Weiterführende Links:

Keine Kommentare:

Kommentar veröffentlichen