获取显示的屏幕列表

获取显示的屏幕列表

据我所知,屏幕是通过:D.S以下位置来识别的:

  • D是显示编号
  • S是屏幕编号

我正在寻找列出与显示器关联的所有屏幕。

我可以使用类似的方法获取所有当前的显示器cd /tmp/.X11-unix && for x in X*; do echo ":${x#X}"; done,但我找不到列出特定显示器的屏幕的方法。

另外,我希望获取与屏幕名称关联的显示器和屏幕编号。例如,xrandr -q返回:

HDMI1 connected 1920x1080+0+328 (normal left inverted right x axis y axis) 290mm x 170mm
<snipped>

有没有办法获取 X 标识符HDMI1,例如:0.0

感谢您提供的任何线索!

答案1

我正在寻找列出与显示器关联的所有屏幕。

xdpyinfo | grep -A4 '^screen'

另外,我希望获取与屏幕名称关联的显示器和屏幕编号。例如, xrandr -q 返回:

他们没有关联。显示的所有输出xrandr都是同一显示器和屏幕的一部分。

但是,如果您的 x11 服务器(“显示”)配置了多个屏幕(此处的“屏幕”是 x11 使用的抽象,而不是物理显示器等),您可以选择哪一个xrandr将显示有关xrandr --screen snum或 的信息--display :dnum.snum。如果不使用这些选项,xrandr将仅显示有关第一的屏幕已配置,而不是全部。

请注意,x11 可以(并且默认情况下)将多个显示器作为同一“屏幕”的一部分处理,前提是它们具有相同的深度。

答案2

提到的屏幕与:D.S过时的多屏幕 X11 显示器相关,其中每个应用程序都被“困”在其启动的屏幕上,除非它具有从一个屏幕切换到另一个屏幕的特殊设施。

想一想带有 CRT 显示器的早期专业 CAD 工作站:它可能有一个用于设计的“主”显示器,其颜色数量非​​常有限,但具有高刷新率(以最大程度地减少眼睛疲劳),而另一个显示器具有较低的刷新率但具有更好的色彩功能,专门用于查看以全彩呈现的最终设计。

如今,标准方法是将所有物理屏幕连接成一个大的统一显示表面,以便您可以在屏幕之间自由移动窗口。因此,该:D.S对中的屏幕编号实际上始终为 0。为了管理此类设置,开发了新的 X11 协议扩展 X Rotate and Resize(简称 XRandR)。

还有另一个名为 XINERAMA 的扩展,用于向应用程序报告这种多显示器布局,这样它们就可以在物理屏幕的中间显示一个对话框,而不是在两个物理屏幕中一半在一个物理屏幕中一半在另一个物理屏幕中显示。屏幕配置。

当您的DISPLAY环境变量设置为 例如:0.0并且 XRandR 扩展可用时,xrandr将连接到该扩展X11显示并且可以深入到实物展示配置底层X11“显示0,屏幕0”。

相关内容