Немедленно переключайтесь между настольными средами на рабочем столе

Есть ли способ мгновенно переключиться (предпочтительно из командной строки) между одной средой рабочего стола и другой; скажем, от Unity до классического GNOME, не закрывая ни одно из запущенных приложений на одном сеансе рабочего стола?

(Обратите внимание, что речь идет не об установке среды.)

Я получил хороший трюк, в то время как я искал WM-привязку ключей, читая страницы руководства.

man dm-tool 

dm-tool – инструмент для общения с диспетчером отображения LightDM.

  list-seats List the active seats and sessions that are running. add-nested-seat Start an X server inside a session and connect it to a display manager. add-local-x-seat DISPLAY_NUMBER Connect an existing X server to the display manager. add-seat TYPE [NAME=VALUE...] Add a dynamic seat. 
  • Бег:

     $ dm-tool add-nested-seat /org/freedesktop/DisplayManager/Seat2 

    Обновление . С более новой версией можно управлять размерами нового окна или позволить ему быть полноэкранным, добавив параметры – --fullscreen или --screen XxY , см. --screen XxY dm-tool --help .

  • Xephyr on новое окно с новым сеансом (под названием Xephyr on ):

    введите описание изображения здесь

  • Затем войдите в систему с помощью другого рабочего стола (LXDE):

    введите описание изображения здесь

  • Вы можете переключаться, если мышь и клавиатура должны быть захвачены в новом сеансе, набрав Ctrl-Shift .

  • Проверить список мест:

     $ dm-tool list-seats Seat2 CanSwitch=false HasGuestAccount=true Session2 UserName='sneetsher' Seat0 CanSwitch=true HasGuestAccount=true Session0 UserName='sneetsher' 

  • Для запуска в полноэкранном режиме:

     Xephyr :1 -br -fullscreen & dm-tool add-local-x-seat 1 

Ссылка: Использование_Xephyr

Это гипотетический ответ, но, возможно, кто-то, у кого больше знаний по этому вопросу, может основываться на моих заявлениях. Если они выполняются под разным выходом xserver, вы можете переключаться между ними, просто нажимая Ctrl + Alt + F1 , Ctrl + Alt + F2 , … и т. Д. Где F1 – X1, F2 – X2, … и т. Д. Я предполагаю, что команды будут выполняться так:

  1. В терминале типа: sudo xhost +

    Обратите внимание, что это представляет угрозу безопасности, потому что вы только что разрешили доступ к любому из ваших x выходов.

  2. Ctrl + Alt + F1

    Это приведет вас к X-выходу 1, рабочий стол по умолчанию находится на f7

  3. Тип: export DISPLAY=localhost:1

    1, поскольку вы находитесь на выходе x 1, значение по умолчанию 0, а для дополнительных выходов вы будете использовать более высокие цифры, например: 2,3,4 и т. Д.

  4. Тип: startxfce4 (XFCE), startkde (KDE) или startlxde (LXDE), чтобы открыть рабочий стол на новом выходе X.

Это еще не работает для меня, я считаю, что это потому, что вы должны запускать его как другой пользователь, потому что, когда я пытаюсь, он говорит, что рабочий стол уже запущен на другом локальном хосте? Это настолько, насколько мне удалось с этим справиться.

Альтернативная точка зрения

Для другого пользователя можно запустить другое xsession.

Просто создайте нового пользователя

 sudo useradd test_test 

Теперь вам нужно только заблокировать свою учетную запись Ctrl + Alt + L , а затем переключиться на нового добавленного пользователя и войти в систему. В меню входа вы можете выбрать установленную среду рабочего стола.

Он автоматически запустит новое xsession в новом tty. Для меня это tty8 . Теперь, используя Ctrl + Alt + F7 , я могу вернуться к своему пользователю xsession. Использование Ctrl + Alt + F8 для нового пользователя xsession.