GNOME Window Session Manager
Mo, 11. Juli 2022, Ralf Hersel
In der letzten GNU/Linux.ch Show habe ich darüber gejammert, dass man in der GNOME-Desktop-Umgebung die Sessions nicht speichern kann. Was ist das und warum möchte man das haben? Viele Anwender:innen schalten ihr Notebook nie aus, sondern lassen es in das Standby fallen, um es bei der nächsten 'Session' unverändert weiterzuverwenden. Manche schalten ihren Computer über Nacht aus und am nächsten Tag wieder ein. Dann sieht man einen leeren Desktop, ohne gestartete Anwendungen und eine Verteilung der Fenster über die Arbeitsflächen. In vielen Desktop-Umgebungen kann die aktuelle Window-Session gespeichert werden, nicht jedoch in der GNOME-Shell. Und es geht doch!
Diese Funktion ist insbesondere dann sinnvoll, wenn man mit vielen offenen Anwendungen arbeitet und diese nach Kontext angeordnet hat. Auf der einen Arbeitsfläche hat man seine Office-Anwendungen, auf der anderen den Dateimanager und ein paar Terminals, und auf der dritten den Kalender und die E-Mail-App (zum Beispiel, oder ganz anders). Wer sich die Mühe dieser Aufteilung macht, möchte das nicht jeden Tag nach dem Booten wiederholen. An dieser Stelle wäre ein Window-Session-Manager wünschenswert, der die Arbeitsumgebung genau so wiederherstellt, wie man sie verlassen hat.
Einige Desktop-Umgebungen bieten diese Funktion an (z. B. KDE-Plasma und auch das alte GNOME 2). Für GNOME 3 finden sich zwar Anleitungen im Internet, doch diese funktionieren nicht. Meistens wird so etwa empfohlen:
gsettings set org.gnome.SessionManager auto-save-session true
Macht das nicht, es funktioniert nicht. Wie bei vielen Dingen, die in der GNOME-Shell (mit Absicht) fehlen, kann man mit einer GNOME-Shell-Extension Abhilfe schaffen. In diesem Fall heisst die Erweiterung Another Window Session Manager.
Dieser Session-Saver bietet folgende Funktionen:
- Schliessen, speichern und wiederherstellen der geöffneten Fenster
- Unterstützt sowohl X11 als auch Wayland
- Schliessen von Anwendungen mit mehreren Fenstern über `ydotool`, damit keine Sitzungen dieser Anwendung verloren gehen. Nähere Information dazu gibt es hier.
- Sitzung(en) wiederherstellen
- Wiederherstellen einer Sitzung beim Start (ist standardmäßig deaktiviert). Nähere Information dazu gibt es hier.
- Wiederherstellen des Fensterstatus, einschliesslich "Immer im Vordergrund", "Immer im sichtbaren Arbeitsbereich und Maximieren"
- Arbeitsbereich, Grösse und Position von Fenstern wiederherstellen
- Verschieben von Fenstern in ihren eigenen Arbeitsbereich entsprechend einer gespeicherten Sitzung
- Unterstützung von mehreren Monitoren
- Gespeicherte Sitzung löschen
- Gespeicherte Sitzung anhand des Sitzungsnamens suchen
Um das Werkzeug zu testen, habe ich zwei Arbeitsflächen erstellt. Auf der Ersten befindet sich Firefox mit zwei offenen Tabs, ein Taschenrechner und ein Dateimanager. Auf der zweiten Arbeitsfläche befinden sich Evolution und zwei Instanzen von Gedit.
Dann habe ich die Session gespeichert und auf "Alle Fenster schliessen" geklickt, was bestätigt werden muss. Bis auf die zwei Gedit-Fenster wurden alle anderen geschlossen. Das mag daran liegen, dass die Texte in Gedit nicht gespeichert waren, was durchaus sinnvoll ist, da ich ansonsten einen Datenverlust erlitten hätte.
Als Nächstes habe ich "Restore Session" ausgewählt. Daraufhin wurden alle Fenster wiederhergestellt. Die zwei Tabs in Firefox waren jedoch nicht mehr vorhanden und die beiden Gedit-Fenster befanden sich auf der ersten Arbeitsfläche. Danach habe ich die Gedit-Texte gespeichert und den Vorgang wiederholt. Das Ergebnis ist fast das gleiche wie vorher. Nun wurde aber nur ein Gedit-Fenster auf der ersten Arbeitsfläche wiederhergestellt, was falsch ist.
Während des Schreibens kam eine neue Version der Extension angeflattert. Danach wurde auch Gedit auf der korrekten Arbeitsfläche erstellt. Als letzten Test habe ich das automatische Herstellen nach dem Start eingeschaltet, was zu keiner Aktion führte. Das Projekt verweist für diese beiden Fälle (Multi-Instanz-Fenster und Restore nach Start) auf besondere Hinweise (siehe die beiden Links oben).
Mir gefällt dieses Werkzeug ziemlich gut. Besonders schön ist, dass man beliebig viele Sessions erstellen und benennen und, dass man zwischen manuellen und automatischem Wiederherstellen wählen kann. Wer gerne mit mehreren Arbeitsflächen arbeitet, viele Programme auf Knopfdruck oder automatisch öffnen möchte und diese gerne Aktivitäten-spezifisch auf die Arbeitsflächen verteilen möchte, findet mit diesem Tool eine wertvolle Unterstützung.
Quelle: https://extensions.gnome.org/extension/4709/another-window-session-manager/