ODPOVĚDNOST: Podle Brendenova komentáře to může být zastaralé a s novějšími verzemi Ubuntu již nefunguje. Připravte se také, že můžete ztratit svá otevřená okna.
Teď jsem to dostal pro Unity (právě jsem nahradil svůj GNOME shell za unity, aniž bych se odhlašoval nebo zavíral okna):
- Přejděte na tty1 [Ctrl]+[Alt]+[F1]
- Zadejte
DISPLAY=:0
aby programy věděly, na jakém portu mají X-Server najít export DISPLAY
unity --replace
nebognome-shell --replace
(můžete také nahradit GNOME-Shell jednotou nebo Unity prostředím GNOME)
Toto funguje pouze v případě, že není zmrazen X-Server nebo GNOME, ale pouze Unity nebo GNOME-Shell.
Jak to funguje:Komunikace mezi programy a X-Serverem pro zobrazení jejich uživatelského rozhraní funguje přes síťový soket. To je obvykle na "localhost:0" krátké ":0". Nastavením proměnné DISPLAY programy vědí, kde najít X-Server, aby s ním mohly komunikovat, takže programy se zobrazují na X-Serveru na tty7, i když program běží na tty1.
Obsah oken spravuje X-Server, zatímco polohu a okraje oken spravuje správce oken integrovaný v jednotce nebo GNOM-shell, takže existuje způsob, jak nahradit pouze je bez restartování aplikací na X- Server.
PS:Jen popisuji, jak tomu rozumím, takže mě prosím upravte a opravte, pokud se v některých bodech mýlím.
UPRAVIT: Pro GNOME-Shell existuje další způsob, jak jej restartovat. Po změně na tty jednoduše zadejte pkill -HUP gnome-shell
, Nevím, jestli existuje něco podobného pro Unity.