shell 脚本中的显示及其相对位置

shell 脚本中的显示及其相对位置

我想获取有关显示器的信息,例如xrandr,但包含更多信息。

我想知道他们的立场。因此,如果我连接了两个或多个显示器,我想知道它们之间的关系。如果我们将显示器用作扩展而不是复制品。通过 shell 命令,我想知道左、右、上、下是否有任何显示。

有类似的东西吗?或者至少有一个命令,我可以在其中给出显示器的 ID,它会告诉我在任何方向上是否有另一个显示器?

答案1

好吧,我无法测试所有选项,但似乎xrandr有一个左边正确的顶部底部方向。

这是我的显示器的屏幕截图,以帮助更好地理解:

显示器布局

当我xrandr在终端上运行时,我得到的是:

Screen 0: minimum 320 x 200, current 3046 x 1050, maximum 32767 x 32767
LVDS1 connected 1366x768+0+282 (normal left inverted right x axis y axis) 344mm x 193mm
   1366x768       60.0*+
   1360x768       59.8     60.0  
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
VGA1 connected 1680x1050+1366+0 (normal left inverted right x axis y axis) 473mm x 296mm
   1680x1050      60.0* 
   1024x768       60.0  
   800x600        60.3     56.2  
   848x480        60.0  
   640x480        59.9  

现在,对于我来说,首先,没有任何东西可以让我弄清楚它们是如何相关的,但是搞乱了监视器布局,阅读后我发现 xrandr 如何表示监视器之间的关系。

如果您注意到我的显示器具有不同的分辨率屏幕,并xrandr创建了某种结合了不同分辨率的虚拟分辨率最大宽度与最大高度。

这就是为什么在输出的第一行我得到的当前分辨率是:

3046 x 1050 = (1366+1680) x 1050

我们添加两个宽度分辨率并保留最大的高度。

这是因为我的监视器布局是并排的,如果有机会我将监视器布局更改为如下所示:

显示器布局 2

xrandr这样的:

Screen 0: minimum 320 x 200, current 1680 x 1818, maximum 32767 x 32767
LVDS1 connected 1366x768+314+0 (normal left inverted right x axis y axis) 344mm x 193mm
   1366x768       60.0*+
   1360x768       59.8     60.0  
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
VGA1 connected 1680x1050+0+768 (normal left inverted right x axis y axis) 473mm x 296mm
   1680x1050      60.0* 
   1024x768       60.0  
   800x600        60.3     56.2  
   848x480        60.0  
   640x480        59.9 

您可能已经注意到,现在的虚拟分辨率是:

1680 x 1818 = 1680 x (768+1050)

现在回到第一个布局和xrandr输出,我的笔记本电脑分辨率是这样的:

LVDS1 connected 1366x768+0+282

所以这意味着我的笔记本电脑尽可能远离原点(我的 X 为零),并且从顶部到原点的距离也为 282 像素(我的 Y 为 282 像素或 -282 像素,但为了方便起见,我们假设 282 像素简单起见):

显示器布局

如果我检查xrandr其他监视器的输出,我会得到:

VGA1 connected 1680x1050+1366+0

1366是我的笔记本电脑显示器的宽度,所以我可以假设该显示器位于我的笔记本电脑显示器的右侧。

相关内容