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

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

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

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

Разве не было бы неплохо, если бы я мог запустить несколько игр в новом сеансе 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.

7
задан 10 September 2010 в 19:47

3 ответа

Чтобы ответить на ваш вопрос более конкретно. Вы можете использовать nvidia-settings, чтобы изменить мета-режим. Фрагмент из nvidia-settings --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
0
ответ дан 10 September 2010 в 19:47

Для звука все, что вам нужно сделать, это запустить 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 объединяется.

0
ответ дан 10 September 2010 в 19:47

Запуск более одного сеанса 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, ваша система переключается обратно в исходный мета-режим, а когда alt-tab возвращается в игру, она возвращается в сконфигурированный мета-режим. для игры.

Wine / Steam

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

Хороший обходной путь:

- 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. 

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

WINEFORCEMOUSEWARP=yes wine yourapp.exe

Pulseaudio & амп; Wine

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

 https://launchpad.net/~neil-aldur/+archive/ppa
0
ответ дан 10 September 2010 в 19:47

Другие вопросы по тегам:

Похожие вопросы: