在运行的桌面会话中立即在桌面环境之间切换

有没有办法在一个桌面环境和另一个桌面环境之间立即切换(最好是从命令行) ; 比如说,从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 )的新窗口:

    在此处输入图像描述

  • 然后使用其他桌面(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 

参考: Using_Xephyr

这是一个假设的答案,但也许对这个主题有更多了解的人可以建立在我的陈述之上。 如果它们在不同的xserver输出下运行,那么只需按Ctrl + Alt + F1Ctrl + 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 ,然后切换到新添加的用户并登录。 在登录菜单中,您可以选择已安装的桌面环境。

它会在新的tty中自动启动新的xsession。 对我来说这是tty8 。 现在使用Ctrl + Alt + F7 ,我可以返回到我的用户xsession。 使用Ctrl + Alt + F8返回新用户xsession。