了解 xrandr --query 的输出

了解 xrandr --query 的输出

xrandr --query在 shell 中调用该命令来查找显示连接器和已连接的显示器。

显示为:

Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
LVDS connected (normal left inverted right x axis y axis)
   1366x768      60.02 +
   1280x720      59.97  
   1152x768      59.95  
   1024x768      59.95  
   800x600       59.96  
   848x480       59.94  
   720x480       59.94  
   640x480       59.94  
HDMI-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 521mm x 293mm
   1920x1080     60.00*+  50.00    59.94  
   1920x1080i    60.00    50.00    59.94  
   1600x900      60.00  
   1280x1024     75.02    60.02  
   1152x864      75.00  
   1280x720      60.00    50.00    59.94  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   720x576       50.00  
   720x576i      50.00  
   720x480       60.00    59.94  
   720x480i      60.00    59.94  
   640x480       75.00    60.00    59.94  
   720x400       70.08  
VGA-0 disconnected (normal left inverted right x axis y axis)

我大致明白这一切意味着什么:

有 LVDS、HDMI-0 和 VGA-0 连接器。
VGA-0 连接器上未连接任何设备。
有一个显示器连接到 LVDS 连接器。列出了可以使用该显示器的模式。但它没有被使用。
HDMI-0 连接器连接有显示器。列出了可以使用该显示器的模式。 *+模式列表中的 表示该显示器正在用作 模式 中的主显示器1920x1080 60.00 50.00 59.94

但我并不明白一切。

尤其:

问题一:

我不明白第一行
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
是关于什么的。

这是关于什么的?

(所连接的显示器均不提供模式320 x 200
所连接的显示器均不提供模式 8192 x 8192。)

问题2:

我不明白(normal left inverted right x axis y axis)HDMI-0 显示行中的字符串是什么意思。

有人能告诉我这是什么意思吗?

提问的理由是:

我希望有一个xrandr被调用的命令行,以便关闭除此 HDMI-0 显示器之外的所有显示器。

到目前为止,我有以下命令行:

xrandr --output VGA-0 --off --output LVDS --off --output HDMI-0 --primary --mode 1920x1080 --pos 0x0 --rotate normal

所述字符串是否(normal left inverted right x axis y axis)表明xrandr 需要使用一组与我迄今为止在命令行中提供的参数集不同的参数来调用?

如果是:哪组参数?

答案1

如果您有多个显示器,您可以将它们放置在彼此旁边和/或放置在彼此下方,并想象这样您就可以获得一个大的总区域来显示事物。

从另一个方向来看,您可以想象有一个很大的总区域,该区域被划分为由彼此相邻和下方放置的各个显示器形成的部分区域。

线指Screen 0的是这个大的总面积,并指示这个大的总面积可以具有的最小和最大尺寸。这些尺寸取决于计算机的硬件,例如图形卡的可用内存。

“正常左倒右”是指您从正面观看的显示器是立在那里不旋转,还是向左旋转90度,还是旋转180度(上下颠倒),还是向右旋转90度。

对于大的总面积,您可以想到一个笛卡尔坐标系,该坐标系的x轴向右,y轴向下,其轴原点位于该大总面积的左上角。

x轴和y轴表示单个显示器的左上角在大总区域中应放置的坐标。

例如,如果您有两个并排的显示器,并且左侧显示器的宽度为 1366 个单位(如您的 LVDS 设备),则该显示器在大总区域中的左上角的坐标为 x 轴 0 和 y 轴0.如果你不想左右显示屏显示部分相同的东西,那么右显示屏的左上角必须在大总面积上向右移动1366个单位,并具有坐标x轴1366 和 y 轴 0。

如果您已经安装了 ARandR 屏幕布局编辑器,您可以通过单击菜单“布局”->“另存为”,将 xrandr 命令行保存为所有当前使用的屏幕。sh 文件,即作为文本文件应该包含一个 shell 脚本。

在文本编辑器中查看此文本文件可能是一个很好的起点。

答案2

术语

这样的词监视器,屏幕,展示等等是近义词,但在给定的技术上下文中,它们可以具有不同的含义。不幸的是,同一个词在不同的社区可能有不同的含义。在这个答案中,我将使用这个词监视器是指在(通常)矩形画布上显示图像的物理对象,通常是计算机显示器(或类似的东西,例如视频投影仪)。

就 X 窗口系统而言,展示是应用程序可以连接的逻辑实体,应用程序可以在其中显示窗口、接收输入以及执行其他一些操作。显示器可以有多个显示器,或者可以连接到不是物理设备的虚拟“显示器”,例如用于远程显示器的网络连接。

A屏幕是一个过时的概念。这是 X 管理多个显示器的原始方式:一个显示器可以有多个屏幕,每个屏幕代表一个显示器。应用程序必须选择在哪个屏幕上显示窗口;窗口不能跨越多个屏幕,也不能在屏幕之间移动。由于这些限制,这个概念基本上已被放弃,但操作系统仍然支持它,并且术语仍然到处出现。如今,只有一个屏幕可以跨多个显示器。

一个输出Xrandr 是一个术语,表示计算机上连接显示器的端口。 “已连接”输出是指存在监视器的端口(或无法可靠地确定监视器是否存在的端口)。

问题一:屏幕尺寸

显示器(从技术上讲是屏幕,但正如我们在上面看到的,现代世界中的显示器只有一个屏幕)是一个可以在其上显示窗口的矩形画布。当显示器配置更改时,此画布的尺寸通常会发生变化:它被调整为所有显示器都能容纳的最小矩形。

第一行表示该画布的最小可能尺寸、当前尺寸和最大可能尺寸。每个监视器显示画布的矩形部分,与轴对齐。

最小和最大尺寸仅在显示器配置发生变化时才相关。任何监视器都没有显示的画布部分实​​际上是不可见的。例如,如果您有一个小型 320x160 显示器,则画布必须至少为 320x160,并且画布的下半部分将不可见。

在每个显示器的行上,后面的数字(dis)connected表示显示器的尺寸和位置。例如,如果 HDMI-0 右侧有第二个尺寸相同的显示器,则该显示器将显示1920x1080+1920+0。如果第二台显示器低于 HDMI-0,则会显示1920x1080+0+1080

问题 2:监控转换

显示器通常在左上角显示像素 (x=0,y=0)(相对于显示器的原点),紧邻其右侧的像素 (x=1,y=1) 等。如果您的系统支持(大多数现代显示器都是这样做的),可以指示显示器以不同的方式显示输出。这可以通过配置xrandr --rotate … --reflect …。括号中的单词表示可能的转换。

例如,left将图片顺时针旋转90°,将right图片逆时针旋转90°。如果您相应地旋转了显示器,这非常有用,通常是因为您的显示器宽度大于高度(横向),但您希望显示区域高度大于宽度(纵向),因此您需要旋转它。例如,之后xrandr --output HDMI-0 --rotate left,相应的行将更改为

HDMI-0 连接主 1920x1080+0+0左边(正常左倒右x轴y轴)521mm x 293mm

inverted显示颠倒旋转的图像。x axis(这两个词是一个东西)显示颠倒的图像。y axis显示围绕垂直轴翻转的图像(以防由于某种原因您想在镜子中查看显示器)。您可以将旋转和反射结合起来。您甚至可以指定--rotate inverted --reflect xy哪个正常显示图像,因为两个正交翻转和 180° 旋转的组合就是恒等变换。

启用单个输出

我希望有一个调用 xrandr 的命令行,以便关闭除此 HDMI-0 显示器之外的所有显示器。

xrandr --output VGA-0 --off --output LVDS --off --output HDMI-0 --auto
  • --autoxrandr 拼写“on”(即“active”)的方式很奇怪。它与 相反--off
  • --primary当只有一个活动监视器时没有用。
  • --pos允许您指定监视器在画布上的位置。 0x0 是默认值,因此您无需指定它。显式使用有点不寻常--pos;大多数情况下,您会使用--mirror--right-of--left-of或之一来--above--below对于彼此定位显示器。
  • --mode除非您想要选择与默认模式不同的模式,或者从非默认模式切换回来,否则没有用。默认值通常是最佳选择。
  • --rotate除非您想要选择非默认轮换,或者从非默认轮换切换回来,否则没有用。默认旋转通常是正确的,除非您将显示器旋转为纵向格式,在这种情况下您需要--rotate left--rotate right

相关内容