我有一个
Gdk::Screen
的实例,它代表连接到我的计算机的监视器。我如何读取该显示器的供应商 ID 和/或序列号?
从 XScreen 获取供应商 ID 和序列号也足够了。
读取显示器的 EDID 也足够了。
有什么想法吗?谢谢!
我还没有对此进行测试,但是您应该能够查看 Gnome 的显示配置小程序的源代码。在这里:
http://git.gnome.org/browse/gnome-control-center/tree/panels/display/xrandr-capplet.c
功能
get_display_name()
看起来很有前途。看起来它使用了 libgnome-desktop 中的代码,也可以在同一个 git 浏览器中查看。
EDID 信息通常不完全由 X11 传递,而仅传递那些对图形重新生成重要的部分,即分辨率、物理尺寸等。可以为此实现 X11 扩展,但 ATM 没有这样的扩展。
所以您必须另外查询 EDID 信息。远程操作是不可能的,但是要读取本地机器信息,可以使用像 read-edid 这样的工具。此外,可能还有图形驱动程序供应商特定的扩展来执行此操作,例如 NVidia 的 NV-CONTROL。
在 gnome 系统上:
$ grep -E '产品|序列' ~/.config/monitors.xml