Открытие полноэкранного приложения в определенном окне

Запуск 19.04 с настройкой тройного монитора. Я открываю игры в полноэкранном режиме на моем центральном мониторе с помощью Wine, просто запустив wine game.exe. Однако Wine недавно обновился, и теперь он открывается на моем левом мониторе. Как я могу вернуть его к открытию на моем центральном мониторе?

Я попытался использовать опцию --geometry в конце моей команды Wine, но, похоже, это не имеет значения. Программное обеспечение все еще открывается в том же месте.

Центральный монитор также подтверждается в качестве основного монитора.

Использование драйвера Nvidia 430.26.


Если я помню, X не создает отдельных экранов для каждого монитора. Скорее, он объединяет мониторы в один логический экран. Глядя на nvidia-settings, я вижу X Screen 0, показанный как 5040x1086. Три моих монитора установлены слева направо на 1680x1050, 1920x1080 и 1440x900.

Я не знаю, так ли это всегда делал X Server, но, возможно, мою проблему можно было бы решить, если бы у каждого монитора был свой отдельный экран. Есть способ сделать это? Или есть лучшее / более простое решение этой проблемы?

Я задал аналогичный вопрос почти год назад относительно того, как открыть терминал на определенном мониторе. К сожалению, тот же метод, похоже, не применим к ситуации здесь.


РЕДАКТИРОВАТЬ:

Информация, показанная nvidia-settings, указывает, что X Screen 0, который содержит три моих монитора, имеет отображаемое имя hiigaran:0.0.

Согласно предложению earthmeLon, я попытался добавить SDL_VIDEO_FULLSCREEN_HEAD к команде, которую хотел использовать для запуска рассматриваемого приложения. Следующие три команды были использованы для проверки того, на каком мониторе будет открываться приложение:

SDL_VIDEO_FULLSCREEN_HEAD=0 wine game.exe
SDL_VIDEO_FULLSCREEN_HEAD=1 wine game.exe
SDL_VIDEO_FULLSCREEN_HEAD=2 wine game.exe

Не наблюдалось никакой разницы между использованием любой из этих команд и использованием wine game.exe отдельно. Приложение все еще открывало полный экран на самом левом мониторе.

0
задан 26 June 2019 в 02:05

2 ответа

Итак, похоже, что запуск Wine на виртуальном рабочем столе - это путь. Я избегал этого, потому что если бы я настроил рабочий стол на разрешение монитора, на котором я бы хотел его использовать, строка заголовка виртуального рабочего стола в сочетании с верхней / активной панелью Ubuntu вызвала бы приличную часть виртуальный рабочий стол обрезается внизу. Кроме того, док ухудшит ситуацию.

После небольшого перебора лучшее решение, которое я нашел, заключается в следующем:

  1. Убедитесь, что горячие клавиши установлены в gnome-control-center в меню «Настройки»> «Устройства> Клавиатура» для перемещения окон в другой монитор и для входа в полноэкранный режим
  2. Запустите нужную программу с помощью Wine как обычно
  3. Когда виртуальный рабочий стол появится и сфокусируется, используйте горячие клавиши для перемещения окна на нужный монитор .
  4. Используйте полноэкранную горячую клавишу, чтобы заставить виртуальный рабочий стол использовать всю область монитора

Хотя было бы идеально, чтобы программное обеспечение открывало уже полноэкранный режим на нужном мониторе, это было подходящее решение для меня, хотя технически это скорее обходной путь, чем реальное решение.

0
ответ дан 26 June 2019 в 02:05

Как правило, вы используете один экран, и все ваши мониторы, как вы видите, принадлежат этому экрану. Используя несколько экранов, вы можете более точно определить, где приложения загружаются, но вы не можете перемещать приложения между различными экранами.

Если бы вы использовали несколько экранов, вы бы определяли, какой экран будет использовать переменная DISPLAY:

DISPLAY=:1 wine

Чтобы установить, какой монитор используется для полноэкранных приложений, а также чтобы убедиться, что все мониторы не используются полностью для полноэкранных приложений, мне больше всего повезло, установив переменную среды SDL_VIDEO_FULLSCREEN_HEAD, чтобы она была доступна в оконном менеджере. Вы устанавливаете его на номер вашего монитора, начиная с нуля:

export SDL_VIDEO_FULLSCREEN_HEAD=0

С тремя мониторами вы можете выбирать между 0, 1 и 2. Вы можете установить это в ~/.xinitrc / ~/.xsessionrc. Где вы разместите это export, в значительной степени зависит от того, как ваш оконный менеджер запускается, используя GDM, LightDM или startx и т. Д.

Вы можете проверить, может ли это работать для вас, или какой монитор какой, установив переменную во время выполнения:

$ SDL_VIDEO_FULLSCREEN_HEAD=1 wine

Примечание: OP упоминает, что это тестирование не работает .


Возможно, имеет смысл также установить его в качестве монитора по умолчанию или убедиться, что он не ваш монитор по умолчанию. Монитор по умолчанию можно установить с помощью xrandr:

$ xrandr primary NAME_OF_DEVICE

Wine Virtual Desktop

Если все это не удается, у вас есть последний вариант настройки Wine для использования виртуального рабочий стол. Это заставит Wine создать окно Windows, и вы сможете указать разрешение этого окна (в соответствии с разрешением вашего монитора). Полноэкранные приложения Windows, запущенные через Wine, будут заполнять только это окно. Вы можете использовать диспетчер окон, чтобы переместить его на нужный рабочий стол / монитор.

Это можно сделать, открыв Wine Configuration (winecfg) и открыв вкладку Graphics, или используя флаг /desktop=name,1024x768 при запуске wine:

wine /desktop=name,1024x768 game.exe
0
ответ дан 26 June 2019 в 02:05

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

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