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


16

有没有一种方法可以在一个桌面环境和另一个桌面环境之间即时切换(最好从命令行);例如,从Unity经典GNOME,而不必在同一桌面会话中关闭任何正在运行的应用程序?

(请注意,这与安装环境无关。)


2
让我们看看是谁提供了权威性的答案,但是我的感觉是,就Ubuntu和官方口味而言,您需要注销并重新登录。有一个名为Hybryde Fusion 13.04的东西,它似乎提供了一些相关的东西但这在这里是不合时宜的。

是的,似乎提供了一些HY-D-V1桌面环境。外观看起来与GNOME3非常接近,但我希望它提供更好的体验。– 2014
精确

然后我认为Zorin也提供类似的功能。那也将是OT:D我已经决定没有桌面的纯Openbox会话对我来说已经足够了;)

Answers:


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
    

参考:Using_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 2014年

2
在更新dm-tool的同时,它现在可以接受选项--fullscreen--screen 800x600因此不一定总是直接运行Xephyr来实现此目的。键入dm-tool --help以查看其记录。(手册页稍后可能会使用较新的选项进行更新。)
麻省理工学院

7

这是一个假设性的答案,但是也许对此主题有更多了解的人可以基于我的陈述。如果它们在不同的xserver输出下运行,则只需按Ctrl+ Alt+ F1Ctrl+ 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 &,并且可以在tty8(Ctrl + Alt + F8)上与同一用户创建新的gnome(我的默认)会话。我再次尝试,sudo xhost -因为我是同一用户,为什么不这样做,它也可以工作。注销使我回到tty1。
user.dz 2014年

2

替代观点

可以为另一个用户运行另一个xsession。

只需创建新用户

sudo useradd test_test

现在你只需要锁定您的帐户Ctrl+ Alt+ L,然后切换到新添加的用户和登录。在登录菜单中,您可以在已安装的桌面环境之间进行选择。

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


1
那只是在用户帐户之间切换。.我正在寻找一种在同一会话中更改为其他环境的方式,在该会话中我的应用程序应在切换之间保留其状态...
精确

1
这正是我一直希望通过一次专注于一个隔间来提高生产率的目的。
香蕉
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.