2

我正在编写一个跨平台库,它提供对窗口系统(Win32/Cocoa/X11/Wayland)的低级访问。现在我正在努力获取有关已连接显示器的信息。我的“屏幕信息”实用程序使用我当前的双显示器设置写入以下输出:

- name: DVI-D-0
  size (pixels): (1920, 1080)
  physical size (mm): (477, 268)
  resolution (px/cm): (40, 40)
- name: DVI-I-1
  size (pixels): (1680, 1050)
  physical size (mm): (433, 271)
  resolution (px/cm): (38, 38)

该名称是由 Xrandr 扩展库提供name的结构的成员获得的。XRRMonitorInfo在我的 [MATE] 控制面板中,它显示每个连接的显示器的供应商名称(分别为 Acer Technologies 和 Samsung Electric Company)。

截屏

我一直在挖掘 MATE 源代码,看看他们是如何获得供应商名称的,但到目前为止,它一直在引导我。有什么方法可以使用 Xrandr 库获取供应商名称等信息?如果没有,这还能如何实现?任何帮助表示赞赏。

4

1 回答 1

1

看起来您可以通过读取显示器的 EDID 来获取此信息。使用get-edidxrandr --verbose,您可以获得 EDID 块。 parse-edid可以将二进制数据解码为可读信息,其中将包含监视器名称。

这里的 EDID 实用程序可能会有可用的代码来查看:http ://www.polypux.org/projects/read-edid/

另请参阅此 Stack Overflow 帖子:Linux 检索监视器名称

于 2016-02-03T23:32:23.550 回答