在运行的桌面会话中立即在桌面环境之间切换
有没有办法在一个桌面环境和另一个桌面环境之间立即切换(最好是从命令行) ; 比如说,从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 + F1 , Ctrl + Alt + F2 ,…等即可在它们之间切换。 其中F1是X1, F2是X2,……等。 我猜这些命令将是:
-
在终端类型:
sudo xhost +
请注意,这会带来安全风险,因为您只允许任何x输出访问。
-
Ctrl + Alt + F1
这将带您到X输出1,默认桌面在f7上
-
键入:
export DISPLAY=localhost:1
1因为您在x输出1上,默认值为0,而对于其他输出,您将使用更高的数字,例如:2,3,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。