получить xorg.conf serverLayout с помощью c ++ - PullRequest
1 голос
/ 22 февраля 2011

В настоящее время я работаю над многооконным приложением, которое охватывает несколько экранов. Программное обеспечение написано с использованием 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 голосов
/ 23 февраля 2011

Информация о расположении нескольких мониторов в X, особенно когда они объединены в один логический экран, доступна через API libXrandr и libXinerama .К сожалению, многоэкранные API, добавленные в libXrandr в версии 1.2, не описаны на странице руководства, но требуют просмотра спецификации расширения и файла заголовка Xrandr.h .

0 голосов
/ 22 февраля 2011

Вы можете использовать функции XWidthOfScreen и XHeightOfScreen.

Использовать XScreenCount (для получения количества экранов) и XScreenOfDisplay для получения соответствующей структуры экрана.

Лучший способ - получить корневое окноэкран и разобрать его геометрию с помощью функции XParseGeometry.

...