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:

16. September 2013

Arch Linux: Der Weg zu "meinem" GNOME - Fazit (Teil 7)

Abschließend zu dieser Serie, in der ich einige Anpassungen vorgestellt habe, die ich an meiner GNOME-Shell unter Arch Linux vorgenommen habe, möchte ich nun in diesem letzten Artikel ein persönliches Fazit zu GNOME 3 ziehen.

Als GNOME in der Version 3.0 erschienen ist, habe ich mir die Desktopumgebung bereits angeschaut, jedoch ziemlich schnell beschlossen, dass sie mir überhaupt nicht gefällt. Im Zuge meines Umstiegs auf Arch Linux, über den ich auch in diesem Blog berichtet habe, habe ich es allerdings erneut gewagt einen Blick auf die aktuelle GNOME-Shell zu werfen, da ich mit der Entwicklung von Canonical's Unity-Oberfläche, die ich zuvor unter Ubuntu genutzt habe, nicht mehr zufrieden war. Und wider Erwarten hat das aktelle GNOME einen deutlich besseren Eindruck bei mir hinterlassen, als ich ihn in Erinnerung hatte. Ich kann nicht genau sagen, was sich seitdem geändert hat, jedoch muss die Desktopumgebung einen deutlich gereifteren Eindruck gemacht haben und somit mir für den täglichen Gebrauch als besser geeignet erschienen sein. Zwar gibt es eine ganze Reihe von Designentscheidungen, die ich für falsch halte, jedoch bietet die Anpassbarkeit über Gnome Shell Extensions eine Möglichkeit diese auszugleichen.

Das Erscheinungsbild


Mein erster Gedanke, wenn ich die Standard-GNOME-Shell sehe, ist, dass mir das Standard-Thema überhaupt nicht gefällt, weil die Titelleisten von Fenstern meiner Meinung nach ziemlich hässlich aussehen und viel zu groß sind. Überhaupt scheinen die Entwickler an unnötigen Stellen an Platz zu sparen um ihn stattdessen an anderen Stellen regelrecht zu verschwenden. So kann ich die Entscheidung nicht nachvollziehen, warum standardmäßig nur noch die Schließen-Schaltfläche in der Titelleiste von Fenstern angezeigt wird, wo doch dort genug Raum für alle drei herkömmlichen Schaltflächen wäre, während die Aktivitäten-Schaltfläche im Top-Panel dauerhaft angezeigt wird, obwohl der Benutzer bereits nach einer sehr kurzen Eingewöhnungsphase weiß, wie man das Aktivitäten-Menü erreicht und welche Funktion es besitzt. Glücklicherweise lässt sich das Fenster-Thema sehr leicht anpassen und auch die Fenster-Schaltflächen lassen sich auf den gewohnten Zustand zurück versetzen. Und für andere Anpassungen, wie etwa dem Ausblenden der Aktivitäten-Schaltfläche, gibt es, wie bereits erwähnt, zahlreiche Shell-Erweiterungen.

Das Benachrichtigungssystem


Über das neue Benachrichtigungssytem kann man sich sicherlich streiten. Die Entwicklung auch bei anderen Desktopumgebungen, wie z.B. Unity, geht weg von einem System-Tray, hin zu einem alternativen System, wie der Benachrichtungsleiste von GNOME. Ich bin ebenfalls der Meinung, dass ein System-Tray, in dem jedes Programm seine Benachrichtigungen und Icons ablegen darf, nicht mehr zeitgemäß ist, weil es schnell überfüllt ist. Jedoch möchte ich mir die Möglichkeit offen halten, wenige ausgewählte Programm dort stets zugänglich anzuzeigen. Die Tray-Icons übriger Anwendungen kann man in deren Einstellungen üblicherweise deaktivieren. Um dieses Verhalten zu erreichen gibt es ebenfalls einen relativ einfachen Weg, der in dieser Serie von Artikeln vorgestellt wurde.

Das Aktivitäten-Menü


Ansonsten machte die GNOME-Shell bei mir einen sehr stabilen Eindruck und läuft stets flüssig. Auch die  von vielen geäußerte Kritik über das Fehlen einer Übersicht der aktuell geöffneten Programme, kann ich nicht teilen, da dies durch das Aktivitäten-Menü meiner Meinung nach ausreichend abbildet wird. Abgesehen davon lässt sich diese fehlende Funktion ebenfalls über eine Shell-Erweiterung in Form einer Task-Leiste nachrüsten. Ich würde mir lediglich wünschen, dass zwischen den Programmen, die in der Aktivitäten-Übersicht angezeigt werden, mit der Tastatur umgeschalten werden kann. Überhaupt gefällt mir das Konzept des Aktivitäten-Menüs sehr gut und beispielsweise besser als das des Dashboards in Unity, welches ich nur sehr ungern benutzt habe. Es bietet eine Übersicht über alle geöffneten Programme, die aktuellen Workspaces und erlaubt es, die meist genutzten Programme zu starten, womit es für mich alle Funktionen abdeckt, die ich von einer solchen Funktion erwarte. Insbesondere die Suche funktioniert sehr zuverlässig und schnell und im Vergleich mit Unity muss lobenswert erwähnt werden, dass dort glücklicherweise auf die Einbeziehung von zweifelhaften Online-Suchergebnissen verzichtet wird. Als weitere Verbesserung des Aktivitäten-Menüs könnte darüber nachgedacht werden, ob das Dock, über das die favorisierten Programme gestartet werden können, nicht auch durch eine Bewegung der Maus an den linken Bildschirmrand angezeigt werden können soll. Dies ist ebenfalls über eine Erweiterung namens "Dash to Dock" möglich, die es darüber hinaus auch erlaubt, die aktuell geöffneten Programm ebenfalls anzuzeigen. Damit würde das Dock der Sidebar von Unity ähneln und den Kritikern, die das Fehlen einer Task-Leiste bemängeln, könnte der Wind aus den Segeln genommen werden.

Globale Titelleisten


Was mir ebenfalls sehr bald negativ auffiel war, dass die Titelleisten der meisten Programm unnötig Platz wegnehmen, wenn sie maximiert sind. Meiner Meinung bietet es sich bei einer Desktopumgebung, die über ein Top-Panel verfügt, an, dass die Fenster-Schaltflächen und der Fenstertitel von maximierten Programmen in eben diesem Panel angezeigt wird, was, insbesonders bei den heute üblichen breitformatigen Monitoren, wertvollen vertikalen Platz einsparen würde. Ich halte die Wahrscheinlichkeit, dass ein solches Verhalten Einzug in kommende Versionen von GNOME finden wird, jedoch für ziemlich gering, da der Top-Leiste von Seiten der Entwickler, durch das Anzeigen der Aktivitäten-Schaltfläche und der Uhrzeit in der Mitte des Panels, eine andere Funktion eingeräumt wurde. In einem Artikel dieser Serie habe ich eine Möglichkeit vorgestellt, wie eine solche Nutzung des Top-Panels als globale Titelleiste, erreicht werden kann. Dieses Vorgehen besitzt jedoch, wie ich zugeben muss, deutliche Nachteile bei der Verwendung mit mehreren Monitoren, da die Titelleisten von Fenstern, die sich nicht auf dem primären Monitor befinden, ebenfalls ausgeblendet werden und diese deshalb nur über die Schaltflächen im Panel, das sich auf einem anderen Monitor befindet, geschlossen werden können. Falls ich eine Möglichkeit finden sollte, wie dieses Problem behoben werden kann, werde ich einen dementsprechenden Artikel auf diesem Blog veröffentlichen.

Fazit


Als letztendliches Fazit über GNOME 3 kann gesagt werden, dass ich wohl bei dieser Desktopumgebung bleiben werde. Man bekommt eine moderne, performante Shell angeboten, die über eine Vielzahl von verfügbaren Shell-Erweiterungen an die eigenen Wünsche angepasst werden kann. Diese Möglichkeit ist für mich der Punkt, weshalb sich die GNOME-Shell, trotz weitreichender Kritik, relativ großer Beliebtheit erfreut. Der Ehrlichkeit wegen muss ich jedoch zugeben, dass ich GNOME nicht nutzen würde, wenn diese Möglichkeit nicht bestehen würde.

Als Abschluss dieser Artikelserie über die Veränderungen, die ich an meiner GNOME-Shell vorgenommen habe, sind im Folgenden noch einige Screenshots als Impressionen zu sehen.

Der Desktop meiner GNOME-Shell (Klicken zum Vergrößern)

Das Dock meiner GNOME-Shell (Klicken zum Vergrößern)

Das Aktivitäten-Menü meiner GNOME-Shell (Klicken zum Vergrößern)

Darstellung der Titelleiste eines maximierten Fensters im Top-Panel (Klicken zum Vergrößern)

Arch Linux: Der Weg zu "meinem" GNOME - Benutzerdefinierte Tray-Icons (Teil 6)

Seit GNOME 3 werden von der Desktopumgebung keine Programm-Icons mehr im Top-Panel erlaubt, stattdessen wurde ein alternatives Benachrichtungssystem implementiert, das vorsieht, dass Benachrichtigungen von Programmen in einer speziell dafür geschaffenen Benachrichtungsleiste am unteren Bildschirmrand angezeigt wird. Hinweise über vorliegende Benachrichtigungen in dieser Leiste werden im Aktivitäten-Menü und auf dem Sperrbildschirm angezeigt und die Leiste selbst wird sichtbar, indem man den Mauszeiger an den unteren Bildschirmrand bewegt. Im Top-Panel werden dagegen nur noch wenige ausgewählte Icons angezeigt, wie z.B. diejenigen zum aktuellen Netzwerkstatus, der Lautstärken-Kontrolle oder dem Akku-Zustand.

Die Benachrichtigungsleiste von GNOME 3 (Klicken zum Vergrößern)

Mir persönlich gefällt dieses Verhalten nicht, da ich stattdessen lieber diejenigen wenigen Programme, die dauerhaft im Hintergrund laufen und von denen ich regelmäßig Benachrichtigungen erwarte, über ein Tray-Icon im Top-Panel zur Verfügung habe und auch dort gerne sofort sichtbar über vorliegende Benachrichtigungen informiert werde. Aus diesem Grund sollen in diesem sechsten Artikel der Serie über die Veränderungen, die ich unter der GNOME-Shell meines Arch Linux-Systems vorgenommen habe, gezeigt werden, wie man die Benachrichtungsleiste von GNOME 3 deaktivieren kann und stattdessen die Tray-Icons ausgewählter Programme dauerhaft im Top-Panel anzeigen lassen kann. Zu diesen, im Folgenden angesprochenen Programmen, die automatisch beim Systemstart im Hintergrund gestartet werden sollen und in dem Top-Panel als Icon verfügbar sein sollen, gehören der Media Player "Banshee", der Mail-Client "Thunderbird", der Instant Messenger "Pidgin" und der Cloud-Speicher-Client "Dropbox".  Die PopUp-Benachrichtigungen, die von allen Programmen ausgegeben werden können, sollen von den vorgenommenen Änderungen nicht unterbunden werden. 

Tray-Icons im Top-Panel erlauben


Um trotz des Paradigmenwechsels, der mit GNOME 3 Einzug fand, Tray-Icons im Top-Panel zu erlauben, existieren verschiedene GNOME Shell Extensions. Ich habe mich für die Extension "TopIcons" entschieden, die bereits in dem vergangenen Artikel, über die von mir verwendeten Shell-Erweiterungen, erwähnt wurde. Sie ist über diesen Link verfügbar und kann bei installiertem "Gnome Shell Integration"-PlugIn direkt aus dem Browser heraus aktiviert werden. Die Erweiterung verfügt über keinerlei Einstellungsmöglichkeiten und sorgt dafür, dass die Tray-Icons aller Anwendungen, die eine solche Funktionalität mit sich bringen, im Top-Panel angezeigt werden.

Dropbox


Der Client für den Cloud-Speicher-Service "Dropbox", der es ermöglicht, die Dateien innerhalb eines lokalen Ordners auf dem System autmatisch mit den Daten in der Cloud zu snychronisieren, ist über das AUR verfügbar. Laut der Installationsanleitung in diesem Artikel des Arch-Wikis soll neben dem Paket dropbox auch nautilus-dropbox installiert werden um eine bessere Integration in den GNOME-Dateimanager "Nautilus" zu erreichen. Die beiden Pakete können mittels des Kommandozeilentools "yaourt" über den folgenden Befehl installiert werden.
 $ yaourt -S dropbox nautilus-dropbox  
Wenn das Paket nautilus-dropbox ebenfalls installiert wurde, sollte ein neuer Autostart-Eintrag angelegt worden sein, der Dropbox beim Systemstart automatisch über den Befehl dropboxd im Hintergrund startet. In diesem Fall sollte Dropbox nach einem Neustart des Systems gestartet werden und nach der Anmeldung mit den persönlichen Benutzerdaten sollte die Synchronisation zwischen dem lokalen Ordner und der Cloud funktionieren. Die Existenz eines solchen Autostart-Eintrags lässt sich über die GNOME-Startprogrammeinstellungen überprüfen, die über den folgenden Befehl gestartet werden können. Falls in der Liste der Startprogramme kein solcher Befehl existiert muss er manuell angelegt werden.
 $ gnome-session-properties  
Bei aktivierter TopIcons-Erweiterung sollte nach dem Start des Services das Dropbox-Symbol im Top-Panel angezeigt werden. Wie zu Beginn dieser Artikelserie bereits erwähnt nutze ich das Fenster- und Icon-Thema "Numix" im Zusammenspiel mit dem Shell-Thema "EleganceColors", das das GNOME-Top-Panel farblich passend in einem sehr dunklen Grau erscheinen lässt. Im "Numix"-Icon Thema sind bereits Tray-Icons für Dropbox enthalten aber diese passen aufgrund ihrer Helligkeit leider nicht zu einem solch dunklen Panel. Aus diesem Grund habe ich diese Icons so angepasst, dass sie auch in einem dunklen Panel sehr gut sichtbar sind. Unter diesem Download-Link ist das "Numix - Dropbox Tray Icons" genannte Icon-Pack als zip-Archiv verfügbar. Nach dem Herunterladen des Archivs, lässt es sich über die folgenden Konsolenbefehle entpacken und anschließend installieren, wobei der Dateinamen der zip-Datei eventuell an die jeweilige Version anzupassen ist. Die originalen Icons des "Numix"-Icon Themas werden dadurch überschrieben.
 $ unzip numix-dropbox-tray-icons-v.1.0.zip  
 $ cd numix-dropbox-tray-icons  
 $ sudo ./INSTALL.sh  
Die Änderungen werden eventuell erst nach einem Neustart der GNOME-Shell sichtbar. Ein solcher Neustart lässt sich erzwingen, indem man die Tastenkombination Alt + F2 drückt, in den erscheinenden Dialog den Befehl "r" eingibt und anschließend mit der Enter-Taste bestätigt.

Das Icon-Pack enthält drei verschiedene Icons, die unten abgebildet sind. Dazu gehören (von links nach rechts) ein Standard-Icon, ein Icon, das bei laufender Synchronisation angezeigt wird und ein Icon, das darauf hinweist, dass bei der Synchronisation ein Fehler aufgetreten ist.

Eine Vorschau über die, in "Numix - Dropbox Tray Icons" enthaltenen, Symbole

Banshee


Auch der Media-Player "Banshee" soll beim Start meines Arch Linux im Hintergrund gestartet werden und als Symbol im GNOME-Top-Panel verfügbar sein. Er ist über das offizielle Repository "extra" verfügbar und kann dementsprechend über folgenden Befehl über den Paketmanager "Pacman" installiert werden:
 $ sudo pacman -S banshee  
Insofern die Erweiterung "Symbol im Benachrichtigungsfeld" in den Einstellungen von Banshee aktiviert ist, zeigt auch Banshee ein Tray-Icon an. Um diese Einstellung zu überprüfen, können die Einstellungen über den Menüeintrag "Bearbeiten"  "Einstellungen" geöffnet werden. Unter dem Reiter "Erweiterungen" ist eine Liste aufgeführt, die alle installierten Erweiterungen enthält.

Liste aller installierten Erweiterungen in den Einstellungen von Banshee (Klicken zum Vergrößern)

Um Banshee beim Systemstart im Hintergrund zu starten muss ein neuer Autostart-Eintrag über den Dialog "Startprogrammeinstellungen" erstellt werden, der über den folgenden Befehl erreichbar ist. 
 $ gnome-session-properties  
Über die Schaltfläche hinzufügen kann ein neuer Eintrag erstellt werden, dem eine beliebige Bezeichnung und ein Befehl zugeordnet werden muss. Um Banshee minimiert im Hintergrund zu starten muss der folgende Befehl eingegeben werden. Das Programm wird dadurch erst 10 Sekunden nach Systemstart gestartet, was sinnvoll ist, da ansonsten Funktionen, die eine Internetverbindung benötigen, eventuell nicht funktionieren, wenn das Herstellen des Internetverbindung noch nicht abgeschlossen ist.
 bash -c "sleep 10;banshee --hide"  

Anlegen eines neuen Autostart-Eintrags, um Banshee im Hintergrund zu starten (Klicken zum Vergrößern)

Auch die Tray-Icons für Banshee sind bereits im "Numix"-Icon Thema enthalten und leider passen auch diese farblich nicht zu einem dunklen Top-Panel. Deshalb habe ich auch für diese Icons ein Icon Pack erstellt, das unter diesem Downloadlink heruntergeladen werden kann. Nach dem Herunterladen des zip-Archivs kann dieses über die folgenden Befehle entpackt und die Icons installiert werden, wobei der übergebene Dateinamen des zip-Archivs eventuell an die jeweilige Version angepasst werden muss:
 $ unzip numix-banshee-tray-icons-v.1.0.zip  
 $ cd numix-banshee-tray-icons  
 $ sudo ./INSTALL.sh  
Die geänderten Icons werden eventuell erst nach einem Neustart der GNOME-Shell sichtbar. Hierfür drückt man die Tastenkombination Alt + F2 und gibt in den erscheinenden Dialog den Befehl "r" ein.

Dieses "Numix - Banshee Tray Icons" genannte Icon-Pack enthält die drei, unten in einer Vorschau dargestellten, Symbole. Von links nach rechts stellen diese Symbole das Standard-Icon, das Icon, das angezeigt wird, wenn ein Audio- oder Video-Stream gepuffert wird und das Icon, das angezeigt wird, wenn die Wiedergabe gestoppt wurde, dar.

Eine Vorschau über die, im Icon-Pack "Numix - Banshee Tray Icons" enthaltenen Symbole

Thunderbird


Als Mail-Client für diverse E-Mail-Konten verwende ich seit jeher "Thunderbird". Leider bietet das Programm von Haus aus keine Möglichkeit an, minimiert gestartet zu werden, weshalb es nicht ganz so trivial ist, den Mail-Client beim Systemstart unsichtbar im Hintergrund zu starten. Auch das Anzeigen eines Tray-Icons wird standardmäßig nicht unterstützt. Diese beiden Funktionalitäten lassen sich jedoch über das AddOn "FireTray" nachrüsten, das die Möglichkeit mit sich bringt, Thunderbird aus dem System-Tray heraus zu nutzen. Das AddOn kann entweder von dieser Seite heruntergeladen und anschließend durch Ausführen der Datei installiert werden oder man installiert es direkt aus Thunderbird heraus, indem man dessen integrierte Suchfunktion nutzt, die über die Option "Add-ons" im Anwendungsmenü erreicht werden kann.

Über die Einstellungen des AddOns kann unter dem Reiter "Windows" die Option "Start application hidden to tray" aktiviert werden, die dafür sorgt, dass Thunderbird stets minimiert gestartet wird. Die übrigen Einstellungen, die ich unter diesem Reiter getroffen habe, sind auf dem unten dargestellten Screenshot zu sehen.

Einstellungen unter dem Reiter "Windows" des Thunderbird-AddOns "FireTray" (Klicken zum Vergrößern)

Um anschließend einen neuen Autostart-Eintrag anzulegen, der das Programm beim Systemstart startet, muss der entsprechende Einstellungs-Dialog über den folgenden Befehl gestartet werden:
 $ gnome-shell-properties  
Dem neu angelegten Eintrag muss dann der folgende Befehl zugeordnet werden, der Thunderbird 10 Sekunden nach dem Systemstart startet. Diese Verzögerung ist notwendig, da das Programm ansonsten eventuell eine Fehlermeldung ausgibt, dass keine Verbindung zu dem Server hergestellt werden konnte. Dies ist der Fall, wenn die Herstellung der Internetverbindung noch nicht abgeschlossen ist, wie es bei der Verwendung von WLAN der Fall sein kann.
 $ bash -c "sleep 10;thunderbird"

Unter dem Reiter "Icon" der Erweiterung "FireTray" kann außerdem das Tray-Icon ausgewählt werden, das standardmäßig im Top-Panel von der GNOME-Desktopumgebung angezeigt werden soll. Wenn man unter dem Reiter "Mail" außerdem noch die Option "Enable mail notification" aktiviert, kann man unter diesem Reiter zusätzlich noch ein zweites Tray-Icon wählen, welches angezeigt wird, wenn neue bzw. ungelesene Mails vorliegen. Standardmäßig werden für diese Icons Dateien verwendet, die dem ausgewählten Icon-Thema entnommen werden. Im Falle des Numix-Themas, das von mir verwendet wird, ist es wiederrum so, dass diese Icons nicht für die Verwendung in einem dunklen Top-Panel geeignet sind. Aus diesem Grund habe ich wie einmal ein Icon-Pack namens "Numix - Thunderbird Tray Icons" erstellt, das passende Icons enthält. Diese Icon-Pack kann unter diesem Downloadlink heruntergeladen werden und anschließend über die folgenden Konsolenbefehle entpackt und installiert werden. Der Dateiname des zip-Archivs muss hierbei eventuell an die jeweilige Version angepasst werden.
 $ unzip numix-thunderbird-tray-icons-v.1.0.zip  
 $ cd numix-thunderbird-tray-icons  
 $ sudo ./INSTALL.sh  
Um die Icons anschließend in FireTray auszuwählen, muss für das Standard-Icon der Pfad /usr/share/icons/Numix/status/22/thunderbird-default-tray-icon.svg und für das Icon, das bei ungelesenen Nachrichten angezeigt wird, der Pfad /usr/share/icons/Numix/status/22/thunderbird-indicator-tray-icon.svg ausgewählt werden. Das unten dargestellte Bild zeigt diese beiden Grafiken in einer Vorschau.

Eine Vorschau über die, im Icon-Pack "Numix - Thunderbird Tray Icons" enthaltenen Symbole.

Pidgin


Bei dem letzten Programm, für das ich gerne ein Tray-Icon auf meinem System darstellen möchte und das hier vorgestellt werden soll, handelt es sich um den Instant Messenger "Pidgin". Es kann aus den offiziellen Repositories über den folgenden Befehl installiert werden:
 $ sudo pacman -S pidgin  
Pidgin zeigt zwar standardmäßig ein Tray-Icon an, doch um das Programm minimiert zu starten benötigt man ein dementsprechendes PlugIn namens "Extended Preferences", das über das AUR installiert werden kann. Hierfür eignet sich beispielsweise der folgende Befehl, der das Kommandozeilentool "yaourt" nutzt:
 $ yaourt -S pidgin-extprefs  
Nach der Installation des PlugIns sollten dieses in Pidgin unter den Menüpunkt "Werkzeuge" → "Plugins" aufgeführt werden. Über die Schaltfläche "Plugin konfigurieren" lassen sich dann dessen Einstellungen anpassen. Um Pidgin minimiert zu starten, muss die Option "Hide buddy list at startup" aktiviert sein. Der folgende Screenshot zeigt den Einstellungsdialog des PlugIns.

Einstellungen des Pidgin-Plugins "Extended Preferences" (Klicken zum Vergrößern)

Anschließend kann ein neuer Autostart-Eintrag für Pidgin angelegt werden. Hierfür muss ein Weiteres mal der entsprechende Einstellungsdialog über den folgenden Befehl gestartet werden:
 $ gnome-session-properties
Dem neuen Eintrag muss als Befehl der folgende Wert übergeben werden. Da auch Pidgin eine bestehende Internetverbindung benötigt, wird das Programm auch dieses mal erst 10 Sekunden nach dem eigentlichen Systemstart ausgeführt.
 bash -c "sleep 10;pidgin"  
Die Tray-Icons, die standardmäßig von Pidgin angezeigt werden, passen optisch nicht zu dem, von mir verwendeten, Numix-Thema. Über diesen Downloadlink kann jedoch das von mir erstelltes Icon-Pack "Numix - Pidgin Tray Icons" heruntergeladen werden, dessen Icons grafisch auf das Numix-Thema abgestimmt sind. Das Icon-Pack enthält verschiedene Symbole, die den aktuellen Status des Benutzers visualisieren, ein Icon das angezeigt wird, wenn die Verbindung zum Server hergestellt wird, ein Icon, das über ungelesene Mails informiert, ein Icon, das über ungelesene Nachrichten informiert und ein Icon, das über unbeantwortete Freundschaftsanfragen informiert. Die unten dargestellte Abbildung zeigt eine Vorschau dieser Symbole.

Eine Vorschau über die, in dem Icon-Pack "Numix - Pidgin Tray Icons" enthalten Symbole (Klicken zum Vergrößern)

Nach dem Herunterladen kann das zip-Archiv über die folgenden Befehle entpackt und die Icons installiert werden. Der übergebene Dateiname des Archivs muss dabei eventuell an die konkrete Version angepasst werden.
 $ unzip numix-pidgin-tray-icons-v.1.0.zip  
 $ cd numix-pidgin-tray-icons  
 $ sudo ./INSTALL.sh  
Die Änderungen werden eventuell erst nach einem Neustart der GNOME-Shell oder von Pidgin sichtbar. Um die Shell neu zu starten drückt man die Tastenkombination Alt + F2. In den erscheinenden Dialog gibt man anschließend den Befehl "r" ein und bestätigt die Eingabe mit der Enter-Taste.

GNOME-Benachrichtigungsleiste deaktivieren


Mich störte außerdem die Benachrichtigungsleiste, die am unteren Bildschirmrand eingeblendet wird, wenn man den Mauszeiger dort hin bewegt, da ich sie des Öfteren aus Versehen aktivierte, die Benachrichtigungen die dort angezeigt wurden, jedoch nie benötigte. Alle Benachrichtigungen, die für mich von Interesse sind, werden durch die bereits angesprochenen Tray-Icons abgedeckt und weitere Statusmeldungen von diesen und anderen Programmen werden von den PopUp-Benachrichtigungen, die am unteren Rand des Bildschirms für kurze Zeit eingeblendet werden, ausreichend kenntlich gemacht.

Um aus diesem Grund die Benachrichtungsleiste zu deaktivieren existiert die GNOME Shell Extension "Remove Bottom Bar", die zwar scheinbar nicht über extensions.gnome.org, doch stattdessen über das AUR, verfügbar ist. Über den folgenden Befehl kann sie etwa über das Kommandozeilentool "yaourt" installiert werden:
 $ yaourt -S gnome-shell-extension-remove-bottom-bar  
Offiziell unterstützt die Extension aktuelle Versionen der GNOME-Shell nicht und daher wird sie nach der Installation auch nicht automatisch aktiviert und ist nicht in der Liste der installierten Extensions, wie sie beispielsweise das Programm "Gnome Tweak Tool" anbietet, sichtbar. Jedoch funktioniert die Extension technisch auch weiterhin problemlos und durch eine kleine Anpassung der Datei metadata.json, die sich im Installationsverzeichnis der Extension befindet und unter anderem festlegt, für welche Versionen der GNOME-Shell sie verwendbar ist, kann sie auch aktiviert werden. Um die Datei, die sich in dem Verzeichnis /usr/share/gnome-shell/extensions/remove_bottom_bar@k2z.com befindet mit dem Editor "nano" zu editieren kann beispielsweise der folgende Konsolenbefehl genutzt werden:
 $ sudo nano /usr/share/gnome-shell/extensions/remove_bottom_bar@k2z.com/metadata.json  
Zu den Werten der Zeile "shell-version", die alle unterstützen Versionen der GNOME-Shell beinhaltet, muss anschließend die Versionsnummer der genutzten Shell hinzugefügt werden. Um diese Versionsnummer herauszufinden kann der folgende Befehl in einem Terminal ausgeführt werden:
 $ gnome-shell --version  
Nach dem Hinzufügen der Shell-Version könnte die geänderte Datei z.B. wie folgt aussehen. Dabei wurde der Wert "3.8.4" zu der ersten Zeile hinzugefügt.
 {  
     "shell-version": ["3.0", "3.1.90", "3.1.91", "3.2", "3.4", "3.6", "3.8"],  
     "uuid": "remove_bottom_bar@k2z.com",  
     "name": "Remove bottom bar",  
     "description": "Removes the Message tray (bottom bar). I recommend to use with gnome-shell-gnome2-notifications.",  
     "url": "http://www.k2z.com"  
 }  
Anschließend sollte die Extension z.B. in dem Gnome Tweak Tool aktivieren aufgelistet sein und kann von dort aus aktiviert werden.

Die Extension verhindert, dass die Benachrichtigungsleiste beim Bewegen des Mauszeigers zur unteren Bildschirmkante angezeigt wird. Jedoch werden vom System weiterhin Benachrichtigungen dort abgelegt und wenn dies der Fall ist, wird am unteren Rand des Aktivitäten-Menüs ein entsprechender Hinweis angezeigt. Um dies zu verhindern, sollten außerdem die Benachrichtigungen der individuellen Programme deaktiviert werden. Man kann dies erreichen, indem man in den entsprechenden Einstellungen, die unter der Kategorie "Benachrichtigungen" der Systemeinstellungen erreichbar sind, den Regler "Benachrichtigungen" für jedes aufgeführte Programm auf den Wert "Aus" stellt. Über diesen Dialog kann man außerdem wählen, ob die Benachrichtigungen im Sperrbildschirm angezeigt werden sollen. Insofern man die Option "Einblend-Banner anzeigen" für die verschiedenen Programme aktiviert lässt, bleiben PopUp-Benachrichtigungen von der Änderung jedoch unangetastet und werden weiterhin angezeigt.

Die Einstellungen zu Benachrichtigungen in GNOME 3 (Klicken zum Vergrößern)

Weiterführende Links:

12. September 2013

Arch Linux: Automatische Google Drive-Synchronisation mit Grive

Obwohl schon lange von Google gefordert wird, einen Google Drive-Client für Linux bereit zu stellen, ist dies bisher noch nicht geschehen. Mit "Grive" existiert jedoch ein inoffizieller Client, der es erlaubt, die Dateien aus der Google Drive-Cloud mit einem lokalen Ordner unter Linux zu synchronisieren. Die Projektseite von Grive findet man unter diesem Link.

Grive installieren


Grive ist unter Arch Linux im AUR verfügbar und kann so z.B. über den folgenden Befehl über das Kommandozeilen-Tool "Yaourt" installiert werden:
 $ yaourt -S grive  
Anschließend muss ein Ordner erstellt werden, in dem die auf Google Drive befindlichen Dateien synchronisiert werden sollen. Um den Ordner "Google Drive" im Home-Verzeichnis zu erstellen kann etwa der folgende Konsolenbefehl genutzt werden:
 $ mkdir ~/Google\ Drive
Anschließend wechselt man über den folgenden Befehl in den neu angelegten Ordner:
 $ cd ~/Google\ Drive
Beim ersten Start von Grive muss das Programm mit dem Parameter -a ausgeführt werden, um den Zugriff auf Google Drive zu autorisieren (Wichtig ist dabei ist, dass das Programm aus dem Ordner heraus ausgeführt wird, der zur Synchronisation genutzt werden soll):
 $ grive -a
Durch den Befehl wird ein Link ausgegeben, der in einem Browser eingegeben wird. Dadurch wird eine Seite angezeigt über die man den Zugriff von Grive auf Google Drive autorisieren kann. Dadurch wird ein Code angezeigt, der wiederum in das Terminal eingefügt werden muss, über das zuvor der Befehl ausgeführt wurde. Nach dem Bestätigen der Eingabe über Enter wird der lokale Ordner mit Google Drive synchronisiert.

Autorisierung von Grive über einen Browser (Klicken zum Vergrößern)

Cronjob für automatische Synchronisation einrichten


Um den lokalen Ordner zu synchronisieren muss normalerweise aus einem Terminal heraus der Befehl "grive" in diesem Ordner ausgeführt werden. Um eine automatische Synchronisation zu erreichen kann alternativ ein Cronjob eingerichtet werden, der regelmäßig diesen Befehl ausführt und somit eine Synchronisation nach einem bestimmten Intervall anstößt.

Hierfür muss zunächst ein Bash-Skript erstellt werden, das die Grive-Synchronisation für den gewünschten Ordner ausführt. Um eine solches Skript mit dem Namen "grive-cron.sh" in dem Verzeichnis /bin über den Editor "nano" zu erstellen kann z.B. der folgende Befehl genutzt werden. Der Befehl muss dabei mit Root-Rechten ausgeführt werden, da nur der Root-Benutzer für dieses Verzeichnis Schreibrechte besitzt.
 $ sudo nano /bin/grive-cron.sh  
Als Inhalt der zu erstellenden Datei muss das folgende Shell-Skript eingegeben werden, das dafür sorgt, dass in den Ordner gewechselt wird, der synchronisiert werden soll und anschließend Grive ausgeführt wird. Ders absolute Pfad zu dem zu synchronisierenden Ordner muss natürlich je nach Anwendungsfall angepasst werden.
 #!/bin/bash  
 cd /home/user/Google\ Drive  
 grive  
Anschließend gilt es, einen neuen Cronjob zu erstellen, der in einem bestimmten Intervall dieses Skript ausführt. Um die Konfiguration der Cronjobs des aktuellen Benutzers beispielsweise mit dem Editor "nano" zu editieren kann der folgende Befehl genutzt werden.
 $ env EDITOR=nano crontab -e  
Die Datei die dadurch geöffnet wird, kann verschiedene Cronjobs enthalten, von denen jeder in einer neuen Zeile eingetragen wird. Jeder dieser Cronjobs bestehen aus sechs Spalten von denen die ersten fünf die Zeiten definieren zu denen der Job ausgeführt werden soll und die letzte Spalte den Befehl aufnimmt, der ausgeführt werden soll. Indem die folgende Zeile in die Datei eingefügt wird, wird ein neuer Cronjob definiert, der das zuvor erstellte Skript minütlich ausführt. Weitere Informationen über die Konfiguration der Ausführungszeit von Cronjobs finden sich unter diesem Wiki-Artikel.
 * * * * * /bin/grive-cron.sh
Nach dem Speichern der geänderten Datei über den Shortcut Strg+O und dem Schließen des Editors über Strg+X wird der neue Cronjob automatisch erstellt und gestartet. Über den folgenden Befehl kann man sich eine Liste der aktuell definierten Cronjobs anzeigen lassen:
 $ crontab -l
Über den erstellten Cronjob sollte die Synchronisierung des lokalen Ordners mit Google Drive minütlich oder je nach definiertem Intervall ausgeführt werden und dessen Inhalt somit stets abgeglichen sein.

Weiterführende Links:

11. September 2013

Arch Linux: Aktives GNOME-Fenster per Shortcut auf anderen Monitor verschieben

In diesem Artikel soll eine Möglichkeit vorgestellt werden, wie unter Arch Linux, bei Benutzung der GNOME 3-Shell, Shortcuts definiert werden können, die das aktuell fokussierte Fenster auf den linken, bzw. den rechten Monitor schieben. Dabei sollen zwei verschiedene Tastaturkürzel vergeben werden, von denen eines das Fenster auf den linken Monitor verschiebt, falls es sich dort nicht bereits befindet und das andere das Fenster auf den rechten Monitor verschiebt, falls notwendig. Bei den hierfür verwendeten Shell-Skripten handelt es sich um abgewandelte Versionen des Skripts, das unter diesem Artikel von "sabel's blog" zu finden ist.

Der wesentliche Unterschied zwischen dem dort vorgestellten Skript und der Variante, die in diesem Artikel verwendet wird, liegt darin, dass das Original-Skript in zwei Skripte aufgeteilt wurde. Eines dieser Skripte verschiebt das Fenster auf den linken Bildschirm, das andere verschiebt es auf den rechten Bildschirm. Hierdurch lassen sich diese beiden Aktionen auf zwei verschiedene Shortcuts legen, während das Original-Skript das aktuelle Fenster stets auf den anderen Monitor verschiebt. Wie auch das originale Skript funktioniert die hier vorgestellte Variante nur mit zwei Monitoren der gleichen Auflösung korrekt. Als kleine Optimierung muss jedoch diese Auflösung nicht manuell in das Skript eingetragen werden. Unter dem oben verlinkten Blog-Eintrag findet sich auch eine alternative Variante, die mit unterschiedlichen Auflösungen arbeitet, welche jedoch manuell in das Skript eingetragen werden müssen. Außerdem wurde das originale Skript insofern verbessert, als dass nicht maximierte Fenster nach dem Verschieben an der selben Position in Relation zu dem jeweiligen Monitor angezeigt werden, wie es auf dem ursprünglichen Monitor der Fall war, statt das Fenster einfach immer an den linken Monitor-Rand zu verschieben.

Erstellen der nötigen Bash-Skripte


Zunächst müssen zwei Bash-Skripte erstellt werden, die später über die zu vergebenden Shortcuts aufgerufen werden. Eines davon sorgt davon, dass das aktuell fokussierte Fenster auf den linken Monitor verschoben wird, das andere verschiebt das Fenster auf den rechten Monitor. In diesem Artikel werden diese Skripte in dem Verzeichnis /bin abgespeichert.

Um die Datei für das erste Skript zu erstellen, das das Fenster auf den linken Monitor verschiebt, kann etwa der Editor gedit über den folgenden Befehl geöffnet werden. Da nur der Root-Benutzer Schreibrechte in dem Verzeichnis /bin hat, muss der Befehl als sudo ausgeführt werden.
 $ sudo gedit /bin/move-window-to-left-monitor.sh  
In das dadurch geöffnete Editor-Fenster muss dann der folgende Inhalt eingefügt werden und die Datei anschließend abgespeichert werden:
 #!/bin/bash  
    
 # screen width  
 total_screen_width=$(xdpyinfo | grep dimensions | uniq | awk '{print $2}' | cut -d 'x' -f1);  
 screen_width=$(($total_screen_width/2));  
   
 # active window  
 window=`xdotool getactivewindow`  
    
 # get active window size and position  
 x=`xwininfo -id $window | grep "Absolute upper-left X" | awk '{print $4}'`  
 w=`xwininfo -id $window | grep "Width" | awk '{print $2}'`  
    
 maximized=false  
 if [[ "$w" -eq "$screen_width" ]]; then  
   maximized=true  
 fi  
   
 # window on left monitor  
 if [ "$x" -lt "$screen_width" ]; then   
  :  
 # window on right monitor  
 else  
      
   if $maximized; then  
     wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz  
   fi  
   
   vert_offset=$(($x-$screen_width));  
   wmctrl -r :ACTIVE: -e 0,$vert_offset,-1,-1,-1  
   
   if $maximized; then  
     wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz  
   fi  
    
 fi  
Analog kann dann für das andere Bash-Skript vorgegangen werden, das das aktuell aktive Fenster auf den rechten Monitor schiebt. Um hierfür den Editor zu öffnen, kann zunächst der folgende Befehl genutzt werden:
 $ sudo gedit /bin/move-window-to-right-monitor.sh  
Bei dem Inhalt, der in diese Datei eingefügt werden muss, handelt es sich um das folgende Skript:
 #!/bin/bash  
    
 # screen width  
 total_screen_width=$(xdpyinfo | grep dimensions | uniq | awk '{print $2}' | cut -d 'x' -f1);  
 screen_width=$(($total_screen_width/2));  
   
 # active window  
 window=`xdotool getactivewindow`  
    
 # get active window size and position  
 x=`xwininfo -id $window | grep "Absolute upper-left X" | awk '{print $4}'`  
 w=`xwininfo -id $window | grep "Width" | awk '{print $2}'`  
    
 maximized=false  
 if [[ "$w" -eq "$screen_width" ]]; then  
   maximized=true  
 fi  
   
 # window on left monitor  
 if [ "$x" -lt "$screen_width" ]; then   
   
   if $maximized; then  
     wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz  
   fi  
    
   vert_offset=$(($screen_width+$x));  
   wmctrl -r :ACTIVE: -e 0,$vert_offset,-1,-1,-1  
    
   if $maximized; then  
     wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz  
   fi  
   
 # window on right monitor  
 else  
   :  
 fi  
Außerdem müssen die Ausführungsrechte der beiden erstellten Dateien über die folgenden beiden Befehle angepasst werden:
 $ sudo chmod 755 move-window-to-left-monitor.sh  
 $ sudo chmod 755 move-window-to-right-monitor.sh  

Notwendige Pakete installieren


Um die zuvor erstellten Skripte ausführen zu können, müssen zusätzlich noch die Pakete xorg-utils, wmctrl und xdotool installiert werden. All diese Pakete sind über das offizielle Community-Repository von Arch Linux verfügbar und können über dessen Paketmanager "Pacman" installiert werden. Um die drei Pakete zu installieren genügt somit der folgende Befehl:
 $ sudo pacman -S xorg-utils wmctrl xdotool

Shortcuts definieren


Zuletzt müssen noch die Tastaturkürzel definiert werden, über die die beiden Bash-Skripte ausgeführt werden. Hierfür bietet die GNOME-Shell bereits von Haus aus eine Möglichkeit an. Die entsprechende Einstellungsmöglichkeit findet man unter den Systemeinstellungen in der Kategorie "Tastatur". In dem Tab "Tastaturkürzel" können eigene Tastenkombinationen definiert werden, indem man die entsprechende Option aus der links dargestellten Liste auswählt. Über die Hinzufügen-Schaltfläche öffnet sich ein Dialog, in dem man eine Bezeichnung für den Shortcut, sowie den Befehl, der über ihn ausgeführt werden soll, eintragen kann. Dieser Dialog ist auf dem unten abgebildeten Screenshot zu sehen.

Der Dialog zur Konfiguration eigener Tastaturkürzel unter GNOME 3 (Klicken zum Vergrößern)
Als Befehl für den Shortcut, der das aktuell fokussierte Fenster auf den linken Monitor verschieben soll, muss der Befehl /bin/move-window-to-left-monitor.sh eingetragen werden, für den anderen Shortcut, der das Fenster auf den rechten Monitor verschieben soll, muss der Befehl /bin/move-window-to-right-monitor.sh lauten. Nach dem die neuen Einträge erstellt wurden, können über die Rechte Spalte die jeweiligen Tastaturkürzel vergeben werden.

Weiterführende Links:

10. September 2013

Arch Linux: Zugriff auf Android-Gerät via MTP über Nautilus

Dieser Artikel soll nur ein kurzer Hinweis darauf sein, wie man unter Arch Linux auf das Dateisystem neuerer Android-Geräte über den GNOME-Dateimanager "Nautilus" zugreifen kann. Ab der Android-Version 3.0 wird hierfür das MTP-Protokoll verwendet, welches Anfangs nur sehr schlecht von den verschiedenen Linux-Distributionen unterstützt wurde. Als ich heute jedoch die MTP-Unterstützung unter Arch Linux installierte, war ich positiv überrascht darüber, wie einfach die Installation funktioniert und wie reibungslos ich auf mein Nexus 10-Tablet, das ich zu Testzwecken verwendete, zugreifen konnte.

Der Inhalt des internen Speichers eines Nexus 10-Tablets im Dateimanager Nautilus (Klicken zum Vergrößern)

Installation der MTP-Unterstützung


Um MTP im Dateimanager Nautilus nutzen zu können ist lediglich die Installation von zwei Paketen notwendig. Zu diesen Paketen gehört libmtp und gvfs-mtp, welche beide über die offiziellen Repositories zur Verfügung stehen. Über die folgenden Konsolenbefehle können sie installiert werden:
 $ sudo pacman -S libmtp  
 $ sudo pacman -S gvfs-mtp  
Anschließend muss das System neu gestartet werden. Nachdem dann das Android-Gerät per USB mit dem PC verbunden wurde, sollte dieses automatisch erkannt werden und in der Seitenleiste von Nautilus sollte unter der Kategorie "Geräte" ein neuer Eintrag für das entsprechende Gerät erscheinen, wie es auf dem oben abgebildeten Screenshot zu erkennen ist.

Falls das Gerät nicht erkannt wird, sollte man überprüfen, ob das Android-Gerät überhaupt so eingestellt ist, dass es das MTP-Protokoll verwendet. Hierfür zieht man die Benachrichtigungsleiste nach unten, wodurch eine Benachrichtigung mit dem Titel "Als Mediengerät angeschlossen" sichtbar werden sollte. Wenn man auf diese Benachrichtigung klickt, öffnen sich die Verbindungseinstellungen. Hier muss sichergestellt sein, das die Option "Verbinden als Mediengerät (MTP)" aktiviert ist.

Weiterführende Links:

Nexus 4: CyanogenMod flashen

In diesem Artikel wurde bereits beschrieben, wie ein Nexus 4-Smartphone gerootet werden kann. In diesem Artikel sollen darüber hinaus die weiteren Schritte beschrieben werden, die nötig sind um auf einem solchen gerooteten Gerät das CustomROM "CyanogenMod" zu installieren, das unter Anderem erweiterte Einstellungsmöglichkeiten gegenüber dem Stock-Android bietet. Voraussetzung für die in diesem Artikel beschriebenen Schritte ist das vorherige Rooten des Geräts nach der bereits erwähnten Anleitung und dass das Kommandozeilentool adb auf dem PC installiert ist, von dem das Flashen des CustomROMs durchgeführt werden soll. In diesem Artikel wird davon ausgegangen, das es sich hierbei um ein Linux-System handelt, das Vorgehen unter Windows oder MacOS müsste jedoch analog erfolgen.

Die folgenden Schritte sind nötig um CyanogenMod auf ein bereits gerooteten Nexus 4 zu flashen:
  1. Zunächst muss das Gerät in den Recovery-Modus versetzt werden. Hierfür müssen die beiden Lautstärke-, sowie die Power-Taste gedrückt werden, bis das Gerät in den Bootloader-Modus neustartet. Über die Lautstärke-Tasten navigiert man Anschließend zu dem Menüpunkt "Recovery mode" und wählt diesen über die Power-Taste aus.
  2. Im Recovery-Modus wählt man auf die selbe Weise den Menüpunkt "install zip from sideload". Das Gerät muss Dabei per USB mit dem PC verbunden sein, von dem das Flashen von CyanogenMod durchgeführt werden soll. Die Konnektivität der Verbindung lässt sich anschließend über den folgenden Befehl überprüfen, wobei als Ausgabe eine Seriennummer und der Begriff "sideload" ausgegeben werden sollte.
     $ adb devices  
    
  3. Anschließend muss eine passende CyanogenMod-Version heruntergeladen und installiert werden. Unter dieser Downloadseite werden alle Releases von CyanogenMod für das Nexus 4 zum Download angeboten. Die Releases auf dieser Seite werden nach verschiedenen Release-Zyklen kategorisiert. Die wichtigsten sind die Nightly-Builds, die täglich aktualisiert werden und den aktuellen Entwicklungsstand repräsentieren, wobei die Stabilität nicht gewährleistet werden kann, sowie die Stable-Releases, die in größeren Zeitabständen veröffentlicht werden und jeweils einen stabilen Entwicklungsstand repräsentieren. Nachdem eine CyanogenMod-Version heruntergeladen wurde, kann anschließend über den folgenden Konsolenbefehl installiert werden, insofern das Gerät per USB mit dem PC verbunden ist und sich im Sideload-Modus befindet. Der übergebene Dateiname muss hierbei je nach Version angepasst werden. Außerdem sollte beachtet werden, dass bei diesem Vorgang alle Nutzerdaten auf dem Gerät verloren gehen!
     $ adb sideload cm-10.2-20130909-NIGHTLY-mako.zip  
    
  4. Anschließend müssen außerdem, falls erwünscht, die Google-Apps separat installiert werden, da diese aus rechtlichen Gründen nicht in CyanogenMod enthalten sind. Diese sogenannten Gapps lassen sich unter dieser Downloadseite herunterladen, wobei die jeweilige Version auf die Version des installierten CustomROMs angepasst sein muss. Nach Abschluss des Downloads lassen sich die Google-Apps über den Sideload-Modus analog zu dem CustomROM selbst über folgenden Befehl installieren, wobei der übergebene Dateiname wiederum an die Version angepasst werden muss.
     $ adb sideload gapps-jb-20130813-signed.zip  
    
Nach Abschluss der oben genannten Schritte sollte die installierte CyanogenMod-Version nach einem Neustart des Nexus 4 gestartet werden. Falls der Bootvorgang jedoch in dem, auf dem unten dargestellten, Bootscreen hängen bleibt, sollte dies durch einen Factory-Reset, bzw. durch Leeren des Dalvik-Caches zu beheben sein. Ein Factory-Reset kann durch die Option "wipe data/factory reset" im Menü von ClockwordMod Recovery durchgeführt werden, die Option zum Leeren des Dalvik-Caches ist unter dem Menüpunkt "advanced" → "wipe dalvik cache" zu finden.

Der Bootscreen von CyanogenMod (Bildquelle: zdnet.com, Klicken zum Vergrößern)

Weiterführende Links: