Использование Proton для запуска сторонних Windows программ.

31. октября 2021 Wine 0

Основы по использованию Wine: https://noostyche.ru/blog/2020/04/30/ispolzovanie-wine-dlya-zapuska-windows-programm-v-linux/

Вступление.

Для запуска Windows-программ в среде Linux применяется Wine, в свою очередь, Proton (Steam Play), развиваемый компанией Valve, ориентируется на запуск Windows-игр с использованием клиента Steam, но на деле можно запускать самые разные Windows-программы. Если Wine используется через команды терминала, то Proton можно задействовать через графический интерфейс Steam.

В заметке рассматривается установка сторонней программы на примере клиента Battle.net, взятого с официального сайта: https://www.blizzard.com/ru-ru/apps/battle.net/desktop

Кратко.

В библиотеку игр Steam через специальную опцию добавляется желаемая программа, что делает доступным её запуск с помощью Proton. При первом запуске будет создан отдельный префикс (изолированный экземпляр среды Windows) с произвольным именем, именно в нём будут храниться все конфигурационные файлы, включая записи в реестре Windows, и сама установленная программа. После установки для удобства можно создать кнопку запуска в библиотеке Steam.

Далее подробно.

Подготовка.

Сначала стоит удостовериться, включено ли использование Proton: Steam / Настройки / Steam Play

Необходимо отметить обозначенные опции. Версию Proton выбрать самую свежую.

Установка Windows программы с помощью Proton.

Теперь можно приступить к установке программы. В данном случае установка будет производиться через запуск исполняемого файла Battle.net-Setup.exe, который был загружен с официального сайта в /home/$USER/Downloads/.

Для начала необходимо перейти в библиотеку Steam и в нижнем левом углу нажать кнопку «Добавить игру». В развернувшемся списке выбрать «Добавить стороннюю игру»:

В появившемся окне будет показан список установленных программ, который сформирован на основе файлов .desktop, расположенных в /usr/share/applications/, но нам требуется конкретный установочный файл Windows-программы. Чтобы его найти, нужно нажать кнопку «Обзор»:

Откроется окно файлового менеджера. Сначала в нижней части окна необходимо переключить «Тип файла» на «All Files», чтобы файловый менеджер показывал все файлы без исключения. Теперь можно выбрать желаемый исполняемый файл. В данном примере он находится в /home/$USER/Downloads/ и называется Battle.net-Setup.exe.

После подтверждения указанный исполняемый файл (Battle.net-Setup.exe) добавится в список программ, после чего останется нажать кнопку «Добавить выбранные»:

Теперь исполняемый файл отобразится в библиотеке игр Steam:

Далее нужно включить использование Proton конкретно для этой программы. Для этого нажать ПКМ на программе в списке и выбрать «Свойства». В появившемся окне перейти на вкладку «Совместимость» и отметить «Принудительно использовать определённый инструмент совместимости Steam Play». В списке выбрать самую свежую версию Proton. В данном примере это Proton 6.3-7.

Теперь можно нажать кнопку «Играть» для запуска исполняемого файла. В данном случае — Battle.net-Setup.exe.

Будет создан экземпляр среды Windows (префикс) с произвольным именем, что может занять около минуты, если используется HDD. По умолчанию префиксы Proton хранятся здесь:

/home/$USER/.local/share/Steam/steamapps/compatdata/

Это знание потребуется для создания кнопки запуска и любых других действий над файлами установленной программы.

В данном примере префикс имеет имя 2926807885:
/home/$USER/.local/share/Steam/steamapps/compatdata/2926807885/

По итогу нажатия «Играть» должно появиться окно мастера установки, что в данном случае означает успешный запуск Windows-программы. Пример:

Пример результата после завершения установки:

Теперь останется сделать кнопку запуска установленной программы. Для этого потребуется отредактировать кнопку запуска, которой запускали установщик, чтобы она запускала установленную программу (в примере это клиент Battle.net).

Запуск Windows программы из библиотеки Steam с помощью Proton.

ВАЖНО! Нужно именно редактировать кнопку запуска (ярлык), а не отдельно добавлять в библиотеку Steam исполняемый файл установленной программы. Если добавить отдельно, то будет создан новый префикс, а не использоваться тот, в который установили. Да, как правило это не проблема, но если потребуется редактировать те или иные файлы или запись в реестре, то можно очень легко запутаться. Поэтому лучше отредактировать кнопку, чтобы использовался тот же префикс.

Отредактируем кнопку запуска (ярлык), чтобы она запускала исполняемый файл установленной программы. Для это нажать ПКМ и выбрать «Свойства»:

В появившемся окне перейти на вкладку «Ярлык»:

Здесь можно выбрать иконку для ярлыка, поменять название, указать дополнительные опции в строке «Параметры запуска», а так же поменять путь до исполняемого файла.

В примере показан ранее указанный путь до установочного файла Battle.net-Setup.exe. Его необходимо заменить на путь до исполняемого файла установленного клиента Battle.net, так же можно поменять название ярлыка (кнопки запуска).

В этом примере имеется следующий путь до префикса с установленным клиентом:
/home/$USER/.local/share/Steam/steamapps/compatdata/2926807885/

Абсолютный путь до исполняемого файла клиента: /home/$USER/.local/share/Steam/steamapps/compatdata/2926807885/pfx/drive_c/Program Files (x86)/Battle.net/Battle.net.exe

Чтобы указать путь, нужно нажать кнопку «Обзор…» и выбрать исполняемый файл:

Должно получиться подобное:

После манипуляций ярлык (кнопка запуска) в библиотеке Steam выглядит подобным образом:

Теперь при нажатии кнопки «Играть» запустится установленная программа:

Примечание: В этом случае все игры, загруженные через клиент Battle.net, будут относиться к префиксу, откуда производится запуск клиента, и смогут без проблем запускаться средствами клиента. А вот отдельную кнопку в библиотеке Steam для прямого запуска каждой игры уже так просто не сделать.

Стоит обратить внимание, что при нажатии кнопки «Играть» напротив программы отобразится «Запуск» и тут же исчезнет. Это нормально. На деле процесс запуска продолжается и нужно немного подождать. Для контроля имеет смысл отслеживать процессы через «Системный монитор»:

Как видно, кроме Battle.net.exe, запущены процессы-спутники, относящиеся к работе префикса Proton — экземпляру Windows-окружения.


Имеется один несколько неприятный нюанс. По завершении работы основной программы могут оставаться «паразитные» процессы:

В примере это Agent.exe, который является частью клиента Battle.net, отвечающую за сбор телеметрии в фоне, а остальные программы относятся к Proton и их наличие указывает, что в префиксе запущен какой-то процесс, чья работа всё ещё продолжается. Гадость, подобную Agent.exe, придётся завершать вручную.

На этом все неудобства заканчиваются.


Подобным образом можно запускать самые разные Windows-программы, используя интерфейс Steam вместо терминала.


Добавить комментарий

Ваш адрес email не будет опубликован.