HAFTUNGSAUSSCHLUSS: Laut Brendens Kommentar könnte dies veraltet sein und mit neueren Versionen von Ubuntu nicht mehr funktionieren. Bitte seien Sie auch darauf vorbereitet, dass Sie Ihre geöffneten Fenster verlieren könnten.
Jetzt habe ich es für Unity bekommen (ich habe gerade meine GNOME-Shell durch Unity ersetzt, ohne mich abzumelden oder Fenster zu schließen):
- Gehe zu tty1 [Strg]+[Alt]+[F1]
- Geben Sie
DISPLAY=:0
ein damit Programme wissen, auf welchem Port der X-Server zu finden ist export DISPLAY
unity --replace
odergnome-shell --replace
(Sie können auch GNOME-Shell durch Unity oder Unity durch die GNOME-Shell ersetzen)
Dies funktioniert nur, wenn nicht der X-Server oder GNOME eingefroren ist, sondern nur Unity oder die GNOME-Shell.
Wie es funktioniert:Die Kommunikation zwischen Programmen und dem X-Server zur Anzeige ihrer Benutzeroberfläche funktioniert über einen Netzwerk-Socket. Dies ist normalerweise bei "localhost:0" kurz ":0". Durch das Setzen der DISPLAY-Variablen wissen die Programme, wo sie den X-Server finden, um mit ihm zu kommunizieren, sodass Programme auf dem X-Server auf tty7 angezeigt werden, selbst wenn das Programm auf tty1 läuft.
Der Inhalt von Fenstern wird vom X-Server verwaltet, während die Position und Ränder der Fenster vom in Unity integrierten Fenstermanager oder der GNOM-Shell verwaltet werden, sodass es eine Möglichkeit gibt, nur sie zu ersetzen, ohne die Anwendungen auf dem X-Server neu zu starten. Server.
PS:Ich beschreibe nur, was ich darunter verstehe, also bitte bearbeiten und korrigieren Sie mich, wenn ich in einigen Punkten falsch liege.
BEARBEITEN: Für die GNOME-Shell gibt es eine andere Möglichkeit, sie neu zu starten. Nach dem Wechsel zu tty geben Sie einfach pkill -HUP gnome-shell
ein , ich weiß nicht, ob es etwas Ähnliches für Unity gibt.