用c ++获取xorg.conf serverLayout

时间:2011-02-22 14:39:47

标签: c++ linux screen xlib xorg

我目前正在开发一个跨多个屏幕的多窗口应用程序。该软件使用xlib编写,可在ubuntu 10.10,gnome桌面上运行。 要获取每个窗口的位置,我想访问/etc/X11/xorg.conf文件,特别是SeverLayout部分。它看起来像这样:

Section "ServerLayout"
     Identifier "aticonfig Layout"
     Screen     "screen0" 0 0
     Screen     "screen1" 1920 0
     Screen     "screen2" 3840 0
     Screen     "screen3" 5760 0
EndSection

我想获取每个屏幕的X值(0,1920,...)xlib是否以某种方式提供对此信息的访问?

感谢

2 个答案:

答案 0 :(得分:0)

您可以使用XWidthOfScreen和XHeightOfScreen功能。

使用XScreenCount(获取屏幕数量)和XScreenOfDisplay以获得适当的屏幕结构。

更好的方法是获取屏幕的根窗口并使用XParseGeometry函数解析它的几何。

答案 1 :(得分:0)

有关X中多个监视器布局的信息,特别是当它们合并到一个逻辑屏幕时,可以通过libXrandrlibXinerama API获得。遗憾的是,1.2版本中添加到libXrandr的多屏幕API未在手册页中介绍,但需要查看extension specXrandr.h header file