Мгновенное переключение между средами рабочего стола во время сеанса рабочего стола


16

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

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


2
Давайте посмотрим, кто ответит авторитетным ответом, но у меня такое ощущение, что для Ubuntu и официальных версий вам нужно выйти и снова войти в систему. Было / есть что-то под названием Hybryde Fusion 13.04, которое, кажется, предлагает что-то связанное но это было бы не по теме здесь.

да, похоже, что он предлагает некоторую среду рабочего стола HY-D-V1 ... внешний вид, кажется, довольно близок к GNOME3, но я надеюсь, что он предлагает лучший опыт ..
точный

И тогда я думаю, что Зорин также предлагает нечто подобное. Это тоже будет OT: D Я решил, что сессия Openbox без рабочего стола достаточно хороша для меня;)

Ответы:


11

Я получил хороший трюк, когда искал связывание ключей 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, см dm-tool --help.

  • Получил новое окно с новым сеансом (под названием 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


это не совсем то, что я ищу, но Xephyrэто хороший инструмент, чтобы узнать о ... больше чем +1 ... только dm-tool add-nested-seatкажется, что работает для меня, не может начать с указанного разрешения или полноэкранного с Xephyr... и выключить не закрывает раба X; Я должен нажать кнопку закрытия (это хорошо?) ..
точно

dm-tool add-nested-seatработает с некоторыми значениями по умолчанию, поэтому я запускаю Xephyrв полноэкранном режиме на новом дисплее, а затем запускаю dm-toolна этом дисплее. «Выключение не закрывает ведомый X», потому что это не системная визуализация, но не уверен, что есть лучший способ. Этот сеанс можно даже закрыть как любое окно с помощью Alt + F4. И вы можете переключаться между ними, как любое окно Alt + Tab.
user.dz

2
В то же время dm-инструмент был обновлен, теперь он принимает параметры --fullscreenили --screen 800x600, возможно, не всегда нужно запускать Xephyr напрямую для достижения этой цели. Типа, dm-tool --helpчтобы увидеть это документально. (Страница man, вероятно, будет позже обновлена ​​с более новыми опциями.)
мит

7

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

  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.

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


1
Я попробовал, у меня есть только Gnome / Unity. startxне работал Поэтому я запускаю его в фоновом режиме startx &, он работает и создает новый сеанс gnome (по умолчанию) с тем же пользователем на tty8 (Ctrl + Alt + F8). Я попробовал еще раз, так sudo xhost -как я думаю, что это тот же пользователь, почему нет, он тоже работает. Выход возвращает меня к tty1.
user.dz

2

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

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

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

sudo useradd test_test

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

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


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

1
Это именно то, что я искал для повышения производительности, сосредоточившись на одном отделении за раз.
Banago
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.