Начать второй сеанс X с разным разрешением и звуком

7

У меня есть два экрана, соединенных вместе с twinview. Некоторые приложения рассматривают его как одну большую панель 3840 * 1200, но это очень нежелательно для шутеров от первого лица, так как ваши взгляды попадают в промежуток между двумя экранами.

Итак, я обычно запускаю Wine игры в окне 1920 * 1200 пикселей. Диспетчер окон делает его полноэкранным на одном экране и отлично подходит для некоторых игр. Однако некоторые игры отстают, и это позволяет мыши вылететь со стороны окна Вина, заставляя моего игрока вращаться, как лиса на наркотиках.

И тогда есть целый набор собственных игр (X3, OpenArena, Quake4, QuakeWars и т. д.), которые не имеют хорошего оконного режима. Использование оконного режима на X3 приводит к тому, что мышь становится чувствительной к uber.

Не было бы неплохо, если бы я мог запускать некоторые игры в новой X-сессии, которая использовала только один экран?!

Это было бы. Я дошел до Steam:

#!/bin/sh

X :3 -ac & nvidia-settings --load-config-only
sleep 10 # wait for X to catch up

cd ~/.wine/drive_c/Program\ Files/Steam/
DISPLAY=:3 WINEDEBUG=-all wine "Steam.exe"

Теперь это технически использует два экрана, но когда игры запускаются в полноэкранном режиме, когда они уже установлены на 1920 * 1200, они, похоже, адаптируются и используют один из моих метамодов xorg.conf. Было бы лучше, если бы я мог явно указать режим в этом исполняемом файле. Есть ли способ сделать это?

Звук тоже нет. У меня есть патч WinePulse, поэтому мне просто нужно заставить PulseAudio подключиться к этой сессии (или наоборот), и я думаю, что сейчас хорошо.

Изменить: Ральф взял несколько вещей, но пропустил (или неправильно понял) некоторых других. Это, вероятно, до моего чрезмерно подробного вопроса. Несмотря на длину сообщения, у меня есть только две проблемы.

Вот мои проблемы в сжатой настройке:

  • Как я могу начать новый X-сеанс с указанным разрешением? Я бы предпочел бы указать существующий метамод или точное разрешение при вызове X.

  • Как я могу получить приложения на новом сеансе X, разговаривающие с правильным сервером PulseAudio? На данный момент они, похоже, не выстраиваются в линию. Я протестировал это с помощью totem , а не только приложений Wine.

задан Oli 10.09.2010 в 13:12
источник

3 ответа

3

Чтобы более точно ответить на ваш вопрос. Вы можете использовать nvidia-settings для изменения мета-режима. Фрагмент из настроек nvidia --help:

-a, --assign=[ASSIGN]
  The ASSIGN argument to the '--assign' commandline option is of the form:

    {DISPLAY}/{attribute name}[{display devices}]={value}

  This assigns the attribute {attribute name} to the value {value} on the X
  Display {DISPLAY}.  {DISPLAY} follows the usual {host}:{display}.{screen}
  syntax of the DISPLAY environment variable and is optional; when it is
  not specified, then it is implied following the same rule as the
  --ctrl-display option.  If the X screen is not specified, then the
  assignment is made to all X screens.  Note that the '/' is only required
  when {DISPLAY} is present.

  {DISPLAY} can additionally include a target specification to direct an
  assignment to something other than an X screen.  A target specification
  is contained within brackets and consists of a target type name, a colon,
  and the target id.  The target type name can be one of "screen", "gpu",
  "framelock", "vcs", "gvi", or "fan"; the target id is the index into the
  list of targets (for that target type).  The target specification can be
  used in {DISPLAY} wherever an X screen can be used, following the syntax
  {host}:{display}[{target_type}:{target_id}].  See the output of
  'nvidia-settings -q all' for information on which target types can be
  used with which attributes.  See the output of 'nvidia-settings -q
  screens -q gpus -q framelocks -q vcs -q gvis -q fans' for lists of
  targets for each target type.

  The [{display devices}] portion is also optional; if it is not specified,
  then the attribute is assigned to all display devices.

  Some examples:

    -a FSAA=5
    -a localhost:0.0/DigitalVibrance[CRT-0]=0
    --assign="SyncToVBlank=1"
    -a [gpu:0]/DigitalVibrance[DFP-1]=63
    
ответ дан Ralf 10.09.2010 в 16:01
источник
4

Для звука все, что вам нужно сделать, - запустить ck-launch-session в скрипте:

#!/bin/sh

X :3 -ac & nvidia-settings --load-config-only
sleep 10 # wait for X to catch up

cd ~/.wine/drive_c/Program\ Files/Steam/
DISPLAY=:3 ck-launch-session
DISPLAY=:3 WINEDEBUG=-all wine "Steam.exe"

Звук с обоих дисплеев X становится объединенным.

    
ответ дан Oli 10.09.2010 в 16:10
3

Выполнение нескольких сеансов X

Я думаю, это именно то, что вы хотите. И запуск более X сеанса возможен, это не значит, что все видеодрайверы позволяют использовать одну и ту же видеокарту. Таким образом, запуск более чем Xsession означает, что вам понадобится больше одной видеокарты.

Метамоды

Игры могут изменять разрешение вашего рабочего стола и настройку вашего экрана с использованием мета-режимов. Скажем, у вас есть большой монитор 1680x1050 слева, а более старый, меньший монитор справа, который имеет 1025x768 в качестве наивысшего разрешения.

Section "Screen"
Identifier  "Default Screen"
DefaultDepth    24
    Option         "TwinView" "1"
    Option         "TwinViewXineramaInfoOrder" "CRT-0"
    Option         "metamodes" "CRT-0: 1680x1050 +0+0, CRT-1: 1024x768 +1680 +0; CRT-0: 1680x1050 +0+0, CRT-1: NULL; CRT-0: 1400x900 +0+0, CRT-1: NULL;"
EndSection

Когда вы можете выбрать разрешение в игре, у вас будут следующие параметры:

2704x1050      this refers to the total viewport size of using two monitors
1680x1050      this means the second monitor is off, and you will use a high resolution
1400x900       this also only used the first monitor, but it will run a bit quicker 

Вы можете добавить много метамодов. Просто убедитесь, что «результирующий» видовой экран имеет уникальное разрешение. В противном случае игры этого не поймут.

Интересно, что когда вы выходите из игры, вы переключитесь обратно в исходный мета-режим, а когда Alt-Tab вернется в игру, он вернется в настроенный мета-режим игры ,

Вино / Пар

Мета-режимный трюк будет работать и с вином. Однако есть игры, которые не поддерживают изменение разрешения.

Хорошее обходное решение:

- turn on emulate virtual desktop, in wine-config, and set it to your desktop size
- compiz will automatically turn it into 'fullscreen' mode and hide panels
- the mouse will be captured properly. Your other monitor is still on, and displays whatever is there. You will need to alt=tab to reach it though. Perhaps its a good idea to associate a shortcut to minimize window. 

Если у вас все еще есть проблема с захватом мыши в определенных играх, вы можете использовать режим mousewarp:

WINEFORCEMOUSEWARP=yes wine yourapp.exe

Pulseaudio & amp; Вино

Вы можете использовать этот PPA, чтобы получить вино с включенным драйвером импульсного аудио. Не забудьте также выбрать его с помощью wine-config.

 https://launchpad.net/~neil-aldur/+archive/ppa
    
ответ дан Ralf 10.09.2010 в 15:25