2013-03-15 2 views
0

Для работы я разрабатываю очень специализированное программное обеспечение, которое должно запускать два полноэкранных приложения, по одному на каждом мониторе. Для простоты я в настоящее время использую 64-битную версию LUbuntu с видеокартой AMD Radeon HD (не могу вспомнить точную версию, но она довольно новая).Принудительное приложение Linux для полноэкранного отображения на определенном дисплее

Я хотел бы придерживаться SDL2, если это возможно, но если мне нужно немного взломать это или переехать в другую библиотеку, я вполне согласен с этим.

Итак, мой вопрос: возможно ли иметь два полноэкранных приложения, работающих на разных мониторах в Linux (и если да, какие шаги настройки мне нужно предпринять)? Что было бы лучшим выбором для перечисления дисплеев, чтобы получить их верхнюю левую позицию x/y, чтобы я мог сказать SDL, чтобы переместить мое окно на этот монитор для полноэкранного просмотра?

Примечание: Я не размещал это в askubuntu, потому что я не уверен, что этот вопрос строго вращается вокруг платформы Ubuntu.

Update:

Вот выход из xrandr -q:

Screen 0: minimum 320 x 200, current 3200 x 1080, maximum 3200 x 3200 
DFP1 disconnected (normal left inverted right x axis y axis) 
DFP2 disconnected (normal left inverted right x axis y axis) 
DFP3 disconnected (normal left inverted right x axis y axis) 
DFP4 disconnected (normal left inverted right x axis y axis) 
DFP5 disconnected (normal left inverted right x axis y axis) 
DFP6 disconnected (normal left inverted right x axis y axis) 
DFP7 disconnected (normal left inverted right x axis y axis) 
DFP8 disconnected (normal left inverted right x axis y axis) 
DFP9 connected 1920x1080+1280+0 (normal left inverted right x axis y axis) 533mm x 312mm 
    1280x1024  50.0 + 75.0  60.0  30.0  24.0 
    1920x1080  60.0 + 50.0* 59.9  30.0  25.0  30.0  24.0  30.0  30.0  24.0 
    1776x1000  50.0  59.9  25.0  24.0  30.0  30.0 
    1680x1050  50.0  60.0  30.0  24.0 
    1400x1050  50.0  60.0  30.0  24.0 
    1600x900  50.0  60.0  30.0  24.0 
    1440x900  50.0  59.9  30.0  24.0 
    1280x960  50.0  60.0  30.0  24.0 
    1280x800  50.0  59.8  30.0  24.0 
    1152x864  50.0  59.9  75.0  30.0  24.0 
    1280x768  50.0  59.8  30.0  24.0 
    1280x720  60.0  50.0  59.9  30.0  24.0 
    1024x768  50.0  75.0  70.1  30.0  24.0  60.0 
    1152x648  50.0  59.9 
    800x600  50.0  30.0  24.0  72.2  75.0  60.3  56.2 
    720x576  59.9  30.0  24.0  50.0 
    720x480  50.0  30.0  24.0  60.0  59.9 
    640x480  50.0  30.0  24.0  75.0  72.8  67.0  60.0  59.9 
DFP10 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 376mm x 301mm 
    1280x1024  60.0*+ 76.0  75.0  72.0 
    1280x960  76.0  75.0  72.0  60.0 
    1152x864  75.0  60.0 
    1280x768  76.0  75.0  72.0  60.0 
    1280x720  76.0  75.0  72.0  60.0 
    1024x768  75.0  70.1  60.0 
    800x600  72.2  75.0  60.3 
    640x480  75.0  72.8  67.0  59.9 
    640x350  60.0  70.1 
CRT1 disconnected (normal left inverted right x axis y axis) 

Я попытался найти несколько форумов для лучшего объяснения того, что делать с этой информацией, мне кажется, я должен сделать что-то как:

xrandr --output DFP9 --auto --output DFP10 --auto

Когда я т Я все еще имею только один дисплей («: 0»).

ответ

1

Какая у вас настройка? У вас на самом деле есть 2 отдельных дисплея X, или вы используете Xinerama для объединения двух?

Если вы используете 2 дисплея, они должны иметь свою собственную переменную envis или DISPLAY. Вы можете использовать это для выполнения нового приложения.

$ echo $DISPLAY 
:0.0 
$ xterm -display :0.0 

Открыть оболочку на другом дисплее, чтобы получить другую отображаемую переменную env.

Там также -geometry, в формате [Wth, Ht + X + Y]

$ xterm -geometry 132x80+500+0 

Когда Xinerama включена, другой дисплей, как правило, + X + Y смещение.

Конечно, для этого требуется приложение для обработки аргументов командной строки. Затем он передает их в X при инициализации окна. Для xterm ширина и высота - это единицы текстовых символов, где X/Y - пиксели экрана.

+0

Я, к сожалению, не очень хорошо разбираюсь в X11, поэтому не знаю, что я могу дать вам больше деталей, чем моя настройка двойного монитора была настроена с помощью инструмента AMD Catalyst Control Center. Я попробовал 'echo $ DISPLAY' в терминальной форме оба монитора, он выводил«: 0 »на оба дисплея. – OzBarry

+0

В строке звуков вы включили Xinerama; один логический дисплей.Это легко. Используйте опцию -geometry и экспериментируйте с вашим xterm (или gnome-terminal, konsole и т. Д.) И посмотрите, где окна появляются с помощью 'xterm -geometry + x + y'. Если вы используете графический API, это позволит вам перемещать окна через некоторый код, например 'window-> move (x, y)'. –

0

Если у вас есть контроль над конфигурацией X, и если на рабочих рабочих станциях не будут отображаться другие приложения, вы можете отключить функцию «Xinerama» и настроить два экрана. Тогда вы можете просто подключить свои приложения к :0.0 и :0.1 и получить размер экрана от каждого.

Смежные вопросы