Wine → Оптимизируем работу полноэкранных игр в Wine
Итак
Примерно так чаще всего пользователи запускают win-игры с помощью wine.
А можно и по другому…
Я мало играю в игры из linux, но около года назад наткнулся на интересный способ некоторой оптимизации работы и последующего управления играми (и другими полноэкранными приложениями) в linux, и на всякий случай написал себе скрипт следующего содержания:
И это все? Да, это все. Всего 2 строчки и море результата.
Подробнее:
X — запускаем новый сеанс X-сервера.
:2 — задаем номер X-сервера (:2 обычно свободен).
-ac — разрешаем доступ с любого узла с правами изменять списки управления доступом.
-terminate — закрываем сессию по завершению запущенного в нем приложения.
-config only_one_monitor.conf — запскаем сессию с конфигурацией, указанной в файле only_one_monitor.conf (это версия xorg.conf для одного монитора, для корректной работы приложений, не рассчитанных на несколько мониторов)
DISPLAY=:2 — запускаем команду в терминале, номер которого указали выше.
nice -20 — высокий приоритет для высокой производительности.
env WINEPREFIX="~/.wine" — указываем каталог настроек для wine (по умолчанию в домашнем каталоге)
wine $1 — запускаем wine с параметром, переданным всему скрипту, и являющимся путем к exe-шнику от игры.
Cохраняем, например как fastwine и делаем его исполняемым
Или средствами файл-браузера через свойства файла.
Осталась одна маленькая деталь — позволить запускать дополнительные Х-сервера. Для этого в /etc/X11/Xwrapper.config меняем
Так же проверьте, что приложения запускаются не в виртуальном рабочем столе windows. Если это так, то запустите winecfg и измените соответствующий пункт настроек.
Ну и для удобства делаем линк в /usr/local/bin (или /usr/bin, или в /bin, в зависимости от ваших предпочтений).
Теперь вместо
используем
Преимущества метода (если кто еще не осознал):
1) Повышение производительности
2) При зависании и других проблемах падают (или можно уронить) только те иксы, в которых запущена игра.
3) Не все приложения, тем более из иксов, ранее могли корректно переключаться по alt-tab, теперь просто переходим в другой терминал, а потом возвращаемся в терминал с игрой (обычно это терминалы 7, 8 и 9 в зависимости от дистрибутива. проверьте эмпирическим путем по ctrl+alt+FX, где X номер терминала).
P.S. Буду рад комментам и другим интересностям подобного рода.
wine game.exe
поехали…Примерно так чаще всего пользователи запускают win-игры с помощью wine.
А можно и по другому…
Я мало играю в игры из linux, но около года назад наткнулся на интересный способ некоторой оптимизации работы и последующего управления играми (и другими полноэкранными приложениями) в linux, и на всякий случай написал себе скрипт следующего содержания:
#!/bin/bash
X :2 -ac -terminate -config only_one_monitor.conf
sleep 2
DISPLAY=:2 nice -20 env WINEPREFIX="~/.wine" wine $1
И это все? Да, это все. Всего 2 строчки и море результата.
Подробнее:
#!/bin/bash
Думаю, что все знают, и тем не менее, эта строка указывает на путь к коммандной оболочке или интерпретатору, от которого будет выполняться скрипт.X :2 -ac -terminate -config only_one_monitor.conf & sleep 2
X — запускаем новый сеанс X-сервера.
:2 — задаем номер X-сервера (:2 обычно свободен).
-ac — разрешаем доступ с любого узла с правами изменять списки управления доступом.
-terminate — закрываем сессию по завершению запущенного в нем приложения.
-config only_one_monitor.conf — запскаем сессию с конфигурацией, указанной в файле only_one_monitor.conf (это версия xorg.conf для одного монитора, для корректной работы приложений, не рассчитанных на несколько мониторов)
sleep 2
— задержка в 2 секунды, обычно более чем достаточная для запуска X-сессии.DISPLAY=:2 nice -20 env WINEPREFIX="~/.wine" wine $1
DISPLAY=:2 — запускаем команду в терминале, номер которого указали выше.
nice -20 — высокий приоритет для высокой производительности.
env WINEPREFIX="~/.wine" — указываем каталог настроек для wine (по умолчанию в домашнем каталоге)
wine $1 — запускаем wine с параметром, переданным всему скрипту, и являющимся путем к exe-шнику от игры.
Cохраняем, например как fastwine и делаем его исполняемым
chmod +x fastwine
Или средствами файл-браузера через свойства файла.
Осталась одна маленькая деталь — позволить запускать дополнительные Х-сервера. Для этого в /etc/X11/Xwrapper.config меняем
allowed_users=<b>console</b>
на allowed_users=<b>anybody</b>
Так же проверьте, что приложения запускаются не в виртуальном рабочем столе windows. Если это так, то запустите winecfg и измените соответствующий пункт настроек.
Ну и для удобства делаем линк в /usr/local/bin (или /usr/bin, или в /bin, в зависимости от ваших предпочтений).
Теперь вместо
wine game.exe
используем
fastwine game.exe
Преимущества метода (если кто еще не осознал):
1) Повышение производительности
2) При зависании и других проблемах падают (или можно уронить) только те иксы, в которых запущена игра.
3) Не все приложения, тем более из иксов, ранее могли корректно переключаться по alt-tab, теперь просто переходим в другой терминал, а потом возвращаемся в терминал с игрой (обычно это терминалы 7, 8 и 9 в зависимости от дистрибутива. проверьте эмпирическим путем по ctrl+alt+FX, где X номер терминала).
P.S. Буду рад комментам и другим интересностям подобного рода.
- +15
- NibiruanChild
- 31 августа 2010, 12:56
ЗЫ: раньше настраивал по
Я, например, практически не использую Wine и не играю в игры, мне нравится сам подход в данном методе, со своими плюсами и минусами, но лично для меня в этих 2х строчках скрипта было много нового и интересного.
#!/bin/bash
xinit "" $* — :1