Posts mit dem Label Window Buttons werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Window Buttons werden angezeigt. Alle Posts anzeigen

24. September 2013

GNOME: Titelleiste von maximierten Fenstern ausblenden auf Multi-Monitor-Systemen

Bereits in diesem Artikel wurde eine Möglichkeit vorgestellt, wie die Titelleisten von maximierten Fenstern ausgeblendet und deren Titel und Schaltflächen stattdessen in dem Top-Panel der GNOME-Shell angezeigt werden können, um wertvollen vertikalen Platz auf dem Bildschirm zu sparen. Wie jedoch anschließend im Fazit der Artikelserie, zu der dieser Artikel gehört, festgestellt wurde, eignet sich diese Möglichkeit weniger für Systeme, die Gebrauch von mehreren Monitoren machen, da die Titelleisten von maximierten Fenstern, die sich auf Monitoren befinden auf denen kein Panel angezeigt wird, ebenfalls ausgeblendet werden und deren Titel und Fenster-Schaltflächen dadurch verloren gehen. Aus diesem Grund habe ich einige bereits existieren Gnome Shell Extensions so modifiziert, dass es möglich ist, dass die Titelleisten von maximierten Fenstern, die sich auf dem Monitor befinden auf dem das Top-Panel der GNOME-Shell angezeigt wird, ausgeblendet werden, während die Titelleisten von Fenstern auf den übrigen Monitoren erhalten bleiben. In diesem Artikel sollen diese Shell-Erweiterungen vorgestellt werden und ihre Verwendung erläutert werden. Auf den unten dargestellten Screenshots ist das Ergebnis zu sehen, das dadurch erreicht werden kann.

Maximierte Fenster auf einem Dual-Monitor-System (Klicken zum Vergrößern)

Die Darstellung des GNOME-Panels wenn auf dem entsprechenden Monitor kein Fenster maximiert ist (Klicken zum Vergrößern)

Die Erweiterung "Hide Titelbar"


Die Gnome Shell Extension "Hide Titlebar" ist ein Fork der bereits bestehenden Extension "Maximus", die es erlaubt die Titelleisten von maximierten Fenstern auszublenden. Deren Konfigurationsdialog wurde, wie es auf dem unter diesem Abschnitt dargestellten Screenshot zu sehen ist, um Einstellungsmöglichkeiten erweitert, die es erlauben, dass nur Fenster berücksichtigt werden, die sich auf dem Monitor befinden, der das Top-Panel der GNOME-Shell beinhaltet. Außerdem lässt sich festlegen um welchen Monitor es sich dabei handelt.

Der Konfigurationsdialog der Gnome Shell Extension "Hide Titlebar" (Klicken zum Vergrößern)

Wenn die entsprechende Option aktiviert ist, werden nur die Titelleisten von Fenstern, die sich auf dem Monitor, der das GNOME-Panel beinhaltet, befinden, ausgeblendet. Die übrigen Fenster bleiben unangetastet und deren Titelleisten, samt Titel und Schaltflächen, werden somit weiterhin angezeigt. Die Gnome Shell Extension bietet ihrem Original entsprechend außerdem die Möglichkeiten auch die Titelleisten von teilweise maximierte Fenster auszublenden und eine Black- bzw. Whitelist für bestimmte Fenster zu definieren.

Da die hier genannten Erweiterungen zum Zeitpunkt der Veröffentlichung dieses Artikels noch nicht auf der Webseite extensions.gnome.org, von der aus Gnome Shell Extensions bequem aus dem Broweser heraus installiert werden können, freigegeben wurden, muss die Extension stattdessen über diesen Link als zip-Archiv manuell heruntergeladen und installiert werden. Unter dieser Adresse ist der Source-Code der Erweiterung außerdem auf Sourceforge verfügbar. Nachdem die Datei heruntergeladen wurde, kann sie über die folgenden Konsolenbefehle entpackt und installiert werden, wobei die Extension exklusiv für den aktuellen Benutzer in dem Verzeichnis ~/.local/share/gnome-shell/extensions installiert wird. Der Dateiname des zip-Archivs muss hierbei eventuell an die jeweilige Version angepasst werden.
 $ unzip gnome-shell-extension-hide-titlebar-v.1.0.zip  
 $ cd gnome-shell-extension-hide-titlebar  
 $ ./INSTALL.sh  
Nach die Shell-Erweiterung auf diese Weise installiert wurde, kann sie über ein Programm wie beispielsweise "Gnome Tweak Tool" aktiviert werden und deren Konfiguration angepasst werden.

Die Erweiterung "Buttons to Panel"


Um nicht nur die Titelleisten von maximierten Fenstern auszublenden, sondern auch deren Schaltflächen im Top-Panel der GNOME-Shell anzuzeigen kann die Gnome Shell Extension "Buttons to Panel" genutzt werden, bei der es sich um einen Fork der Extension "Window Buttons" handelt. Auch diese Shell-Extension wurde so erweitert, dass es möglich ist, dass nur Fenster berücksichtigt werden, die sich auf dem Monitor befinden, der das GNOME-Panel beinhaltet. Der entsprechende Konfigurationsdialog ist auf dem unten dargestellten Screenshot zu sehen.

Der Konfigurationsdialog der Gnome Shell Extension "Buttons to Panel" (Klicken zum Vergrößern)

Für Auswahl, wann die Fenster-Schaltflächen im Top-Panel der GNOME-Shell dargestellt werden sollen, sollte die Option "any window maximized" gewählt werden, so dass diese immer angezeigt werden wenn ein Fenster auf dem entsprechenden Monitor maximiert ist, selbst wenn es sich hinter einem nicht maximierten Fenster befindet. Außerdem bietet der Konfigurationsdialog die Möglichkeit die Position der Schaltflächen im Panel zu bestimmen und ein bestimmtes Button-Thema zu wählen.

Die Gnome Shell Extension "Buttons to Panel" kann unter diesem Downloadlink heruntergeladen werden und ist darüber hinaus unter dieser Adresse auf Sourceforge verfügbar. Nachdem das zip-Archiv heruntergeladen wurde, kann es über die folgenden Konsole, die in einem Terminal ausgeführt werden müssen, entpackt und die Erweiterung installiert werden.Der konkrete Dateiname des zip-Archivs muss dabei eventuell angepasst werden.
 $ unzip gnome-shell-extension-buttons-to-panel-v.1.0.zip  
 $ cd gnome-shell-extension-buttons-to-panel  
 $ ./INSTALL.sh  
Um die Shell-Extension zu aktivieren bedarf es ebenfalls eines Programms wie z.B. "Gnome Tweak Tool", über das auch deren Einstellungen erreichbar sind.

Die Erweiterung "Title to Panel"


Standardmäßig wird im Top-Panel der GNOME-Shell lediglich der Name der aktuell aktiven Anwendung angezeigt. Um stattdessen den kompletten Titel des aktuell maximierten Fensters dort anzuzeigen, kann die Gnome Shell Extension "Title to Panel" genutzt werden, bei der es sich um einen Fork der Extension "Status Title Bar" handelt. Die Einstellungsmöglichkeiten der Shell-Erweiterungen wurden im Vergleich zum Original um Möglichkeiten ergänzt, nur maximierte Fenster, die sich auf dem Monitor befinden, der das GNOME-Panel beinhaltet, zu berücksichtigen. Der Einstellungsdialog der Extension ist auf dem unten dargestellten Screenshot zu sehen. Die Standardeinstellungen der Erweiterung entsprechen bereits der empfohlenen Konfiguration.

Der Konfigurationsdialog der Gnome Shell Extension "Title to Panel" (Klicken zum Vergrößern)

Um die Gnome Shell Extension zu installieren ist es zunächst notwendig die entsprechende zip-Datei unter diesem Link herunterzuladen. Sie ist außerdem unter dieser Adresse auf Sourceforge frei verfügbar. Über die folgenden Konsolenbefehle kann die Extension installiert werden. Der Dateiname der zip-Datei muss hierbei eventuell angepasst werden.
 $ unzip gnome-shell-extension-title-to-panel-v.1.0.zip  
 $ cd gnome-shell-extension-title-to-panel  
 $ ./INSTALL.sh  
Für die Aktivierung der Extension ist ein Programm wie "Gnome Tweak Tool" notwendig, über das auch deren Einstellungen erreichbar sind.

Zur Verwendung der Extension "Title to Panel" werden außerdem die Extensions "Extend Left Box" und "Frippery Move Clock" empfohlen. Erstere sorgt dafür, dass der Titel, der in dem Top-Panel der GNOME-Shell dargestellt wird, den kompletten verfügbaren horizontalen Platz einnehmen kann, letztere verschiebt die Uhr, die standardmäßig in der Mitte des Panel dargestellt wird, nach rechts um weiteren Platz zu schaffen.

Weiterführende Links:

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: