单独的WorkSpace用于第二个屏幕


16

我想要实现以下行为:当我使用笔记本电脑屏幕时,将使用第一个工作区。当我插入第二个屏幕(通过HDMI)时,将使用第二个工作区,该第二个屏幕上所有新打开的窗口将落在第二个空间中,除非我将第二个屏幕上的工作区切换到另一个工作区。

当我拔出第二个屏幕的电源时,所有窗口将保留在创建它们的工作区中,并且可以在笔记本电脑上切换工作区以查看它们。

这种行为已经可能吗?


我已经设法通过Appearance-> Behvior启用工作区,并通过CompizConfig Settings Manager禁用了垂直工作区。还有Expo和Viewport Switcher插件,它们似乎可以执行我想要的操作,但是我担心在那里不了解就更改设置。
velop

您的问题有点令人困惑。如果您要求将显示器显示为两个单独的工作区,则答案为否,不可能。如果您要求在连接第二个屏幕时自动更改工作区的数量,则可以这样做。请澄清/简化您的要求
Sergiy Kolodyazhnyy

2
我找到了分别选择选项Compiz->桌面墙->视口切换-> Multimonitor bahvior->切换。但是看来这是行不通的。
velop

@velop,您可以将这些评论编辑成问题吗?
SDsolar

Answers:


1

这种行为已经可能吗?

在Linux中一切皆有可能。您将需要一些有关Xserver的基础知识,需要一些时间和一个系统来进行测试,因为您搞砸了X,并且如果需要帮助,您当然需要运行浏览器:-)

我认为有三种可能的解决方案:

  • 多监视器设置使用Xinerama。我能想到的最简单的解决方案是在配置中添加第三个虚拟屏幕,然后使用xdotool将窗口移到那里。该解决方案有一些缺点,但是不需要在不同的Xserver之间移动窗口,这通常是不可能的。

  • 因为它是不可能的不同之间移动窗口Xservers中,我们需要一种像代理XMOVEXpra为我们做到这一点。我认为这些窗口然后驻留在单独的Xfvb会话中以隐藏窗口。您可以附加和分离到会话。

  • 无论使用哪种方法,都需要在监视器断开电源时发生事件。当屏幕断开连接以及重新连接时,应该触发该事件。您可以守护脚本来监视事件。

由于各种原因,我希望使用Xpra解决方案。我只能给您一些提示。解决方案尚未完成,但应该可以帮助您入门。

Xinerama解决方案

设定

Xinerama设置必须扩展为具有静态配置:请参阅https://help.ubuntu.com/community/XineramaHowTo

另请参见假的第三屏Xdummy

获得受影响的窗户

我们可以使用xdotool搜索Windows。之后,我们可以检查它们的位置并移动它们。我假设1920x1080配置了两个监视器。下面将所有窗口从右移到左xinerama屏幕。

while read xwindowid; do
    eval $(xdotool getwindowgeometry --shell "$xwindowid")
    if (( X > 1920 && X <= (1920 * 2))); then
        xdotool windowmove --relative $WINDOW -1920 y
    fi
done <<< "$(xdotool search --screen 0 '.*')"

现在,如果连接了显示器,则可以将所有窗口从笔记本电脑屏幕(screen0)移至第三(虚拟)屏幕。同时,您可以将存储在第三个屏幕上的任何窗口移动到第一个屏幕。

XPRA解决方案

为了使用Xpra移动窗口,所有窗口必须事先由Xpra进行管理。您必须在系统启动时使用Xpra启动整个桌面。两次是您在其中工作的主桌面,另一次主要是虚拟桌面。

xpra start-desktop :99
xpra start-desktop :1 --exit-with-children −−attach

现在,您可以在单独的xpra会话中运行用于断开连接屏幕的Windows,并在监视器切换时从中附加/断开连接。

xpra attach :99
xpra detatch :99

如果您想在启动的xpra显示之间手动将窗口从隐藏窗口移动到正常窗口,还有一个断续的gnome shell扩展,可能很有用。:99:0

事件

  • 您可以注意特定显示器断开/重新连接

  • 如果需要,也许可以使用xwininfo监视 xinerama的尺寸变化,使其独立于未插拔的显示器,例如,将设置扩展到3个显示器并拔出任意设备。请注意,这仅适用于xpra解决方案。

    xwininfo -display :0 -root | grep -e "-geometry"

    -geometry 5760x2160+0+0

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.