我终于能够让我的四个相同尺寸的屏幕一起工作,在 X11 中,三合一显卡 (GeForce GTX 750) 和一个合二为一的显卡 (GeForce GT 730)。这是一个非常困难的配置,因为一个显示器向左旋转,一个向右旋转,一个延伸到所有其他显示器的顶部上方,两个延伸到所有其他显示器的底部下方。总的来说,X11 的布局是一个奇怪的形状。但它现在大部分都在工作:
但我的布局很奇怪,并且引起了问题:
当我抓住窗口的顶部边缘并开始移动它时,即使在同一屏幕上,它通常也会向下跳(大概是 536 像素)到它认为我的光标实际所在的位置。通常,我需要与窗口搏斗,让光标进入上面的下一个屏幕,只是为了将其到达下面的屏幕中需要的位置。
当我开始从顶部边缘调整窗口大小时,它通常会再次缩小尺寸,大概是 536 像素,并且我再次需要与窗口搏斗,否则它最终可能会变成 50 像素高且无法使用。
这是否与未使用视口信息有关? 50%的时间,一切都很好。窗口在屏幕之间完美对齐地移动得很好。但有 50% 的情况会发生上述问题。
另外,现在当我去制作屏幕布局的屏幕截图时,屏幕截图工具无法找出我的“屏幕选择”在哪里,我必须截取整个桌面的屏幕截图并裁剪为我想要的内容。一般来说,我的 X11/Cinnamon 实例在了解其自身尺寸方面存在一些问题......但我无法重现这种情况。
在移动窗口、调整大小和选择由四个显示器组成的屏幕区域时,如何获得完美的行为?
更新:形状取决于我如何安装它们。这在我的壁挂式(1 屏幕)和桌面安装(3 屏幕)协同工作的限制范围内:
更新:这被证实是定位的副作用,但考虑到形状,Absolute
我看不出有什么办法可以使用定位。Relative
如果偏移量中允许负数,这将是我将使用的Relative
:
Section "ServerLayout"
Identifier "QuatroTest"
Screen 0 "Center"
Screen 1 "Left" Relative "Center" -1080 -536
Screen 2 "Right" Relative "Center" 1920 -536
Screen 3 "Top" Above "Center"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "1"
EndSection
这是我现在的定位,Absolute
除了Top
屏幕Above
:Center
Section "ServerLayout"
Identifier "Quatro"
Screen 0 "Center" 1080 1080
Screen 1 "Left" 0 536
Screen 2 "Right" 3000 536
Screen 3 "Top" Above "Center"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "1"
EndSection
据我了解,问题是:Top
距总屏幕左上角 1080px,Left
距总屏幕顶部 536px...所以左上角有一个空白,右上角有另一个空白。从技术上讲,下面也有一个空白Center
。
还尝试了这种布局,它看起来像我当前使用的布局一样正确,但行为相同:
Section "ServerLayout"
Identifier "QuatroTest"
Screen 0 "Left" 0 544
Screen 1 "Center" Relative "Left" 1080 536
Screen 2 "Right" Relative "Left" 3000 0
Screen 3 "Top" Above "Center"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "1"
EndSection
如何用上面的形状绘制我需要的相对定位?
现在无需花费 500 美元为该中心购买 4k 显示屏......
重大发现...
即使使用此设置,窗口移动/调整大小行为问题仍然存在!
Section "ServerLayout"
Identifier "QuatroWide"
Screen 0 "Center"
Screen 1 "Left" LeftOf "Center"
Screen 2 "Right" RightOf "Center"
Screen 3 "Top" Above "Center"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "1"
EndSection
看起来像这样...