我有一个实例,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。