在两个显示器上拉伸窗口,中间有“间隙”

在两个显示器上拉伸窗口,中间有“间隙”

我在 Ubuntu 14.04 上有一个双显示器设置,使用 Compiz 作为窗口管理器。我可以调整窗口大小以覆盖两个窗口。然而,虽然物理显示面板相距几厘米,但软件默认认为它们彼此相邻,中间没有间隙。这意味着,例如,对角线最终看起来像这样:

+----------+ +----------+
|          | |   /      |
|          | |  /       |
|          | | /        |
|          | |/         |
|         /| |          |
|        / | |          |
+----------+ +----------+

我想要实现的目标更像是这样的:

+----------+ +----------+
|          | | /        |
|          | |/         |
|          | |          |
|          | |          |
|         /| |          |
|        / | |          |
+----------+ +----------+

这会导致部分窗口被隐藏,但这是可以接受的。

我可以让 X 认为显示器之间有间隙,如下所示:

$ xrandr
Screen 0: minimum 320 x 200, current 2048 x 1280, maximum 32767 x 32767
LVDS1 connected (normal left inverted right x axis y axis)
   1366x768       60.0 +
   1360x768       59.8     60.0  
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
VGA1 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)
HDMI2 connected primary 1024x1280+0+0 left (normal left inverted right x axis y axis) 376mm x 301mm
   1280x1024      60.0*+   75.0  
   1280x960       60.0  
   1152x864       75.0  
   1024x768       75.1     70.1     60.0  
   832x624        74.6  
   800x600        72.2     75.0     60.3     56.2  
   640x480        75.0     72.8     66.7     60.0  
   720x400        70.1  
HDMI3 connected 1024x1280+1024+0 right (normal left inverted right x axis y axis) 376mm x 301mm
   1280x1024      60.0*+   75.0  
   1280x960       60.0  
   1152x864       75.0  
   1024x768       75.1     70.1     60.0  
   832x624        74.6  
   800x600        72.2     75.0     60.3     56.2  
   640x480        75.0     72.8     66.7     60.0  
   720x400        70.1  
DP2 disconnected (normal left inverted right x axis y axis)
DP3 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
$ xrandr --fb 2184x1280
$ xrandr --output HDMI3 --pos 1160x0

乍一看,这似乎工作得很好——当我将鼠标沿对角线移动穿过显示器之间的间隙时,它会消失在显示器边框“后面”,并重新出现在我期望对角线继续的位置。

然而,我无法再移动窗口或调整窗口大小以横跨两个显示器。鼠标似乎都wmctrl无法做到这一点。

有办法实现我想要的吗?

答案1

我找到了一个Ask Ubuntu 上的相关问题这对我有用。整个过程的说明,包括在显示器之间创建“间隙”(至少适用于 Ubuntu 14.04):

  • 找出当前的总屏幕尺寸(假设显示器之间当前没有虚拟间隙):
    $ xrandr | grep Screen Screen 0: minimum 320 x 200, current2048 x 1280, maximum 32767 x 32767
  • 将所需的间隙大小(以像素为单位)添加到宽度(之后显示的第一个值current- 在我的例子中为 2048)。我选择了 136 像素的间隙,因此新的屏幕宽度为 2184。
  • 设置新的屏幕尺寸:
    xrandr --fb 2184x1280
  • 找出右侧显示器的显示名称:
    $ xrandr | grep ^[^\(]*right HDMI3connected 1024x1280+1024+0 right (normal left inverted right x axis y axis) 376mm x 301mm
  • 实际上将右侧显示器进一步向右移动以形成间隙。将间隙大小添加到上述命令显示的第三个数字(以粗体突出显示)。在我的示例中,这是 1024+136=1160:
    xrandr --output HDMI3 --pos 1160x0

现在,让 Compiz 将整个区域作为一个屏幕来处理

  • 启动 CompizConfig 设置管理器(可使用 来安装sudo apt-get install compizconfig-settings-manager
  • 转到“常规选项”插件(例如在搜索框中键入此内容)
  • 选择“显示设置”选项卡
  • 取消选中“检测输出”
  • 如果这还没有解决问题,请右键单击“输出”下列出的每一行,选择“编辑”并删除其内容。

当最大化窗口时,它现在将拉伸两个显示器。全屏也会拉伸两台显示器。

显然,这并不理想,因为大多数时候希望最大化的窗口填满单个显示器。这意味着,必须根据当前所需的行为来选中和取消选中“检测输出”Compiz 选项。

给非英语语言环境用户的注意事项:如果您因不知道其名称是如何翻译而找不到 CompizConfig 插件和设置,请像这样启动 CompizConfig:

LANG=C ccsm

相关内容