Compare commits

..

44 Commits

Author SHA1 Message Date
Mikhail Tergoev
fd9df57242 Scripts version 2439 2025-07-31 11:27:38 +03:00
Mikhail Tergoev
c55b2845ee fixed typos RU locale 2025-07-31 11:14:35 +03:00
Mikhail Tergoev
62fd39f7c6 the conditions are optimized 2025-07-31 11:12:31 +03:00
Mikhail Tergoev
83ec48812b Merge branch 'Htylol-fixes_for_systemd-inhibit' into devel 2025-07-31 09:58:31 +03:00
Mikhail Tergoev
5ad6b9e72c Merge branch 'fixes_for_systemd-inhibit' of github.com:Htylol/PortWINE into Htylol-fixes_for_systemd-inhibit 2025-07-31 09:58:24 +03:00
Mikhail Tergoev
066e37aad4 Merge branch 'Htylol-check_dxvk_2.7' into devel 2025-07-31 09:57:30 +03:00
Mikhail Tergoev
84674a3ae4 Merge branch 'check_dxvk_2.7' of github.com:Htylol/PortWINE into Htylol-check_dxvk_2.7 2025-07-31 09:57:15 +03:00
Mikhail Tergoev
ffaccd507f Merge branch 'Htylol-fixes_resize_png' into devel 2025-07-31 09:56:09 +03:00
Mikhail Tergoev
4869746a30 Merge branch 'fixes_resize_png' of github.com:Htylol/PortWINE into Htylol-fixes_resize_png 2025-07-31 09:55:56 +03:00
a7d5784874 update locales 2025-07-29 12:02:34 +05:00
0b3d16c13f Added PW_VULKAN_UNLOCKED 2025-07-28 19:56:14 +05:00
90ea238f34 Make spellcheck happy 2025-07-28 11:27:33 +05:00
a1695c032d Repair choise amdvlk and amdgpupro drivers for check_dxvk 2025-07-28 04:59:43 +05:00
fa55bb8f35 Optimization code for pw_check_dxvk 2025-07-28 04:36:01 +05:00
cb1fea9fdd Added checked for amdvlk and amdgpupro drivers 2025-07-27 22:58:02 +05:00
691468d5a1 Added get_gpu_names function 2025-07-27 22:01:12 +05:00
c7cb4503bb OpenGL force works on nvidia if use nvidia 2025-07-27 20:49:27 +05:00
85e1ddd2d1 Fixes for systemd-inhibit
systemd-inhibit крашит PortProton, если нет доступа к /var/run/dbus/system_bus_socket, проверить можно если сделать к примеру sudo rm -f /var/run/dbus/system_bus_socket, и потом через PortProton запустить какое-нибудь приложение/игру.
2025-07-27 20:19:10 +05:00
f863ab2664 Added amdgpupro driver for pw_check_dxvk 2025-07-27 20:12:11 +05:00
d043905e16 Optimization for devices without vulkan driver 2025-07-27 16:47:29 +05:00
b57b6d8a76 updated check_vendor_gpu functions 2025-07-27 16:10:28 +05:00
9cee5b32e9 Updated the mechanics of detecting GPU drivers in the system 2025-07-27 13:29:56 +05:00
b50f450b04 resize_png: fixes bug for RESIZE_NAME_PNG
Исправлен баг для RESIZE_NAME_PNG, смысл бага заключается в том, если удалить PortProton из Flatpak и поверх него установить в ту же директорию нативный PortProton, то функция resize_png будет работать некорректно, каждый раз используя exe-thumbnailer
2025-07-26 17:09:11 +05:00
Mikhail Tergoev
69ec71e564 Scripts version 2438 2025-07-26 11:57:07 +03:00
Mikhail Tergoev
e1a47bdb0e updated OPTISCALER to v02-0.7.7-pre12 2025-07-26 11:40:52 +03:00
Mikhail Tergoev
c1b7c33444 Merge branch 'Htylol-fixes_locale_list' into devel
9
2025-07-26 10:50:06 +03:00
9c3d3e37e1 pw_skip_get_info: Fixed the operation of LOCALE_LIST
If the system uses utf8 instead of just utf, the list will not work
2025-07-25 23:23:01 +05:00
Mikhail Tergoev
c33d9ba3f5 Scripts version 2437 2025-07-25 15:56:55 +03:00
Mikhail Tergoev
ca9c63711d fixed launch epic games from desktop files 2025-07-25 15:43:21 +03:00
Mikhail Tergoev
9064faf36f dropped Steam* var. 2025-07-25 15:41:56 +03:00
Mikhail Tergoev
88c5d78713 fixed set WINE if not found and use WINE_LG for Sony games 2025-07-25 14:31:02 +03:00
Mikhail Tergoev
7c573daca5 disabled *SYNC by default 2025-07-25 13:30:45 +03:00
Mikhail Tergoev
e9a13ae5d8 dropped check libc for flatpak 2025-07-25 13:27:35 +03:00
Mikhail Tergoev
e2f1476d90 gui_edit_db lock and disabled lsfg if libc 2.37-
GLIBC version 2.38+ is required for use Lossless Scaling frame generation
2025-07-25 12:32:05 +03:00
Mikhail Tergoev
ccd9b166d1 do not force change mirror to github for devel 2025-07-25 12:20:44 +03:00
Mikhail Tergoev
4e18752e5c Merge branch 'Htylol-fixes_for_3d_api_1' into devel 2025-07-25 12:07:30 +03:00
Mikhail Tergoev
0a277c430e Merge branch 'fixes_for_3d_api_1' of github.com:Htylol/PortWINE into Htylol-fixes_for_3d_api_1 2025-07-25 12:07:21 +03:00
Mikhail Tergoev
4b72da7abf Merge branch 'Htylol-update_start_sh_1' into devel 2025-07-25 11:59:44 +03:00
90df03eec7 3D api: fixed stable and newest work, libvkd3d is always used from new versions 2025-07-25 11:41:56 +05:00
f67d2c27f4 start.sh: Optimized and removed unnecessary code 2025-07-25 00:27:14 +05:00
Mikhail Tergoev
e9dc5604d4 Scripts version 2436 2025-07-24 20:19:37 +03:00
Mikhail Tergoev
a2acf29a37 always auto set PW_VULKAN_USE if empty 2025-07-24 20:09:58 +03:00
Mikhail Tergoev
a8f0badcd1 Merge branch 'Htylol-added_dxvk_stable-3' into devel 2025-07-24 19:48:13 +03:00
085220ea94 Refactoring 3D api: Interface acceleration 2025-07-24 21:43:30 +05:00
8 changed files with 616 additions and 368 deletions

View File

@@ -2,6 +2,35 @@ You can help us in the development of the project on the website: https://linux-
----------------------------------------
Changelog:
###Scripts version 2439### / Date: 31.07.2025 / Download update size: 4 megabytes
* improved functions for checking and selecting video cards (thanks to Htylol)
* added blocking of 3D API versions not supported by the video card or driver (thanks to Htylol)
* added the ability to forcefully unblock all 3D API in global settings (thanks to Htylol)
* fixed amdvlk and amdgpupro driver selection (thanks to Htylol)
* fixed launching OpenGL games on NVIDIA video cards (thanks to Htylol)
* other small improvements and script fixes
###Scripts version 2438### / Date: 26.07.2025 / Download update size: 4 megabytes
* fixed locale detection for flatpak version of PortProton (thanks to Htylol)
* updated OPTISCALER to v02-0.7.7-pre12 (thanks to @eljeyna)
* more games working with OPTISCALER
###Scripts version 2437### / Date: 25.07.2025 / Download update size: 4 megabytes
* FSYNC and ESYNC are disabled by default
* WINE_LG is used by default for all Sony games
* added a block on enabling USE_LS_FRAME_GEN if the GLIBC version in the system is lower than 2.38
* additional interface optimizations were made (thanks to Htylol)
* work continued on improving the 3D Api selection functions (thanks to Htylol)
###Scripts version 2436### / Date: 24.07.2025 / Download update size: 230 megabytes
* changed DXVK and VKD3D versions for DirectX to Vulkan translation (thanks to Htylol):
- The newest ones work only with "MESA 25+" or "NVIDIA 550.54.14+" drivers
- Stable ones work with any drivers, provided that the video card supports Vulkan version "1.3+"
- Sarek works with any video card that supports Vulkan version "1.1+"
* PROTON_LG updated to version "10-10" (with NTSYNC support)
* accelerated opening of the list of third-party WINE versions (thanks to Boria138)
* added to the lists of third-party WINE all WOW64 versions from Kron4ek and x86_64_v3 builds from CachyOS (thanks to Boria138)
###Scripts version 2435### / stable / Date: 23.07.2025 / Download update size: 380 megabytes
* cumulative update of stable version of PortProton scripts
* removed tab for downloading third-party versions of WINE-GE-GUSTOM (outdated versions of WINE)

View File

@@ -2,6 +2,34 @@
-----------------------------------------
История изменений:
###Scripts version 2439### / Дата: 31.07.2025 / Размер скачиваемого обновления: 4 мегабайта
* улучшены функции проверки и выбора видеокарт (спасибо Htylol)
* добавлена блокировка не поддерживаемых видеокартой, или драйвером, версий 3D Api (спасибо Htylol)
* добавлена возможность принудительной разблокировки всех 3D Api в глобальных настройках (спасибо Htylol)
* исправлен выбор драйвера amdvlk и amdgpupro (спасибо Htylol)
* исправлен запуск OpenGL игр на NVIDIA видеокартах (спасибо Htylol)
* другие небольшие улучшения и исправления скриптов
###Scripts version 2438### / Дата: 26.07.2025 / Размер скачиваемого обновления: 4 мегабайта
* исправлено определение локалей для flatpak версии PortProton (спасибо Htylol)
* обновлен OPTISCALER до версии v02-0.7.7-pre12 (спасибо @eljeyna)
* расширено количество игр работающих с OPTISCALER
###Scripts version 2437### / Дата: 25.07.2025 / Размер скачиваемого обновления: 4 мегабайта
* FSYNC и ESYNC по умолчанию выключены
* для всех игр от Sony по умолчанию используется WINE_LG
* добавлена блокировка включения USE_LS_FRAME_GEN если версия GLIBC в системе ниже чем 2.38
* произведены дополнительные оптимизации интерфейса (спасибо Htylol)
* продолжены работы по улучшению функций выбора 3D Api (спасибо Htylol)
###Scripts version 2436### / Дата: 24.07.2025 / Размер скачиваемого обновления: 230 мегабайт
* изменены версии DXVK и VKD3D для трансляции DirectX в Vulkan (спасибо Htylol):
- Новейшие работают только с драйверами "MESA 25+", или "NVIDIA 550.54.14+"
- Стабильные работают с любыми драйверами при условии что видеокарта поддерживает Vulkan версии "1.3+"
- Sarek работает с любой видеокартой поддерживающей Vulkan версии "1.1+"
* обновлен PROTON_LG до версии "10-10" (с поддержкой NTSYNC)
* ускорено открытие списка сторонних версий WINE (спасибо Boria138)
* добавлены в списки сторонних WINE все WOW64 версии от Kron4ek и сборки x86_64_v3 от CachyOS (спасибо Boria138)
###Scripts version 2435### / stable / Дата: 23.07.2025 / Размер скачиваемого обновления: 380 мегабайт
* кумулятивное обновление стабильной версии скриптов PortProton

View File

@@ -7,7 +7,7 @@
msgid ""
msgstr "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-07-24 16:50+0300\n"
"POT-Creation-Date: 2025-07-28 19:50+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -581,6 +581,10 @@ msgid "A very dangerous way to hack the memory write timer in ntdll. This "
"recommended not to change the value.)"
msgstr ""
msgid "GLIBC version 2.38+ is required for use Lossless Scaling frame "
"generation"
msgstr ""
msgid "Change the version of <b>WINDOWS</b> emulation"
msgstr ""
@@ -1427,6 +1431,9 @@ msgstr ""
msgid "Disable GameScope and go to the previous menu"
msgstr ""
msgid "The graphics card does not support Vulkan"
msgstr ""
msgid "Recommended value"
msgstr ""
@@ -1457,6 +1464,12 @@ msgstr ""
msgid "By time"
msgstr ""
msgid "unlock"
msgstr ""
msgid "unlocked"
msgstr ""
msgid "GLOBAL SETTINGS (USER.CONF)"
msgstr ""
@@ -1537,6 +1550,13 @@ msgstr ""
msgid "This setting sorts the shortcuts in the main menu"
msgstr ""
msgid "Unlock all 3D APIs"
msgstr ""
msgid "Allows you to unlock all available 3D APIs, even if your current "
"graphics card does not meet the minimum requirements"
msgstr ""
msgid "Open the <b>user.conf</b> settings file in a system text editor to "
"view and change variables manually"
msgstr ""
@@ -1623,12 +1643,6 @@ msgstr ""
msgid "FONTS"
msgstr ""
msgid "Attention working version of vulkan not detected!"
msgstr ""
msgid "It is recommended to run games in OpenGL (low performance possible)!"
msgstr ""
msgid "PortProton was launched in creation mode PortProton.log and it is "
"successfully stored in the root directory of the port"
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-07-24 16:50+0300\n"
"POT-Creation-Date: 2025-07-28 19:50+0500\n"
"PO-Revision-Date: 2025-07-24 15:26+0500\n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -707,6 +707,10 @@ msgstr ""
"Esto mejora el rendimiento de algunos juegos muy específicos. (Se recomienda "
"no cambiar el valor)"
msgid ""
"GLIBC version 2.38+ is required for use Lossless Scaling frame generation"
msgstr ""
msgid "Change the version of <b>WINDOWS</b> emulation"
msgstr "Cambiar la versión de emulación de <b>WINDOWS</b>"
@@ -1861,6 +1865,10 @@ msgstr ""
msgid "Disable GameScope and go to the previous menu"
msgstr "Desactivar GameScope e ir al menú anterior"
#, fuzzy
msgid "The graphics card does not support Vulkan"
msgstr "Elige una tarjeta gráfica para ejecutar el juego"
msgid "Recommended value"
msgstr "Valor recomendado"
@@ -1891,6 +1899,12 @@ msgstr "Desde el último inicio"
msgid "By time"
msgstr "Mostrar tiempo"
msgid "unlock"
msgstr ""
msgid "unlocked"
msgstr ""
msgid "GLOBAL SETTINGS (USER.CONF)"
msgstr "CONFIGURACIONES GLOBALES (USER.CONF)"
@@ -1989,6 +2003,14 @@ msgstr ""
"Esta configuración ordena los accesos directos en el menú principal según el "
"tiempo transcurrido en la aplicación o juego"
msgid "Unlock all 3D APIs"
msgstr ""
msgid ""
"Allows you to unlock all available 3D APIs, even if your current graphics "
"card does not meet the minimum requirements"
msgstr ""
msgid ""
"Open the <b>user.conf</b> settings file in a system text editor to view and "
"change variables manually"
@@ -2082,13 +2104,6 @@ msgstr "DLLS"
msgid "FONTS"
msgstr "FUENTES"
msgid "Attention working version of vulkan not detected!"
msgstr "¡Atención, no se detectó la versión funcional de vulkan!"
msgid "It is recommended to run games in OpenGL (low performance possible)!"
msgstr ""
"¡Se recomienda ejecutar juegos en OpenGL (es posible un rendimiento bajo)!"
msgid ""
"PortProton was launched in creation mode PortProton.log and it is "
"successfully stored in the root directory of the port"
@@ -2218,6 +2233,13 @@ msgstr "UNIRSE"
msgid "THIRD PARTY LIBRARIES"
msgstr "BIBLIOTECAS DE TERCEROS"
#~ msgid "Attention working version of vulkan not detected!"
#~ msgstr "¡Atención, no se detectó la versión funcional de vulkan!"
#~ msgid "It is recommended to run games in OpenGL (low performance possible)!"
#~ msgstr ""
#~ "¡Se recomienda ejecutar juegos en OpenGL (es posible un rendimiento bajo)!"
#~ msgid "Legacy DXVK (Vulkan v1.1)"
#~ msgstr "DXVK heredado (Vulkan v1.1)"
@@ -2269,8 +2291,8 @@ msgstr "BIBLIOTECAS DE TERCEROS"
#~ msgid ""
#~ "For adding shortcut to STEAM, needed restart.\\n\\nRestart STEAM now?"
#~ msgstr ""
#~ "Para agregar el acceso directo a STEAM, es necesario reiniciar.\\n"
#~ "\\¿Quieres reiniciar STEAM ahora?"
#~ "Para agregar el acceso directo a STEAM, es necesario reiniciar."
#~ "\\n\\¿Quieres reiniciar STEAM ahora?"
#~ msgid "Restarting STEAM... Please wait."
#~ msgstr "Restarting STEAM... Please wait."

View File

@@ -7,16 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-07-24 16:50+0300\n"
"PO-Revision-Date: 2025-07-24 16:51+0300\n"
"POT-Creation-Date: 2025-07-28 19:50+0500\n"
"PO-Revision-Date: 2025-07-28 19:50+0500\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: ru_RU\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
"X-Generator: Poedit 3.6\n"
msgid ""
@@ -368,8 +368,8 @@ msgid ""
"More than one DB file found for the application being launched.\\nSelect the "
"required one, or delete the extra DB file before the next run.\\n"
msgstr ""
"Для запускаемого приложения найдено более одного конфигурационного файла ."
"ppdb.\\nВыберите нужный или удалите лишний файл .ppdb перед следующим "
"Для запускаемого приложения найдено более одного конфигурационного "
"файла .ppdb.\\nВыберите нужный или удалите лишний файл .ppdb перед следующим "
"запуском\\n"
msgid "Update scripts:"
@@ -506,8 +506,8 @@ msgid ""
"<b>Super + Y :</b> Toggle NIS upscaling\n"
"<b>Super + I :</b> Increase FSR sharpness by 1\n"
"<b>Super + O :</b> Decrease FSR sharpness by 1\n"
"<b>Super + S :</b> Take screenshot (currently goes to /tmp/gamescope_DATE."
"png)\n"
"<b>Super + S :</b> Take screenshot (currently goes to /tmp/"
"gamescope_DATE.png)\n"
"<b>Super + G :</b> Toggle keyboard grab\n"
"<b>Super + C :</b> Update clipboard"
msgstr ""
@@ -732,6 +732,10 @@ msgstr ""
"производительность некоторых очень специфических игр (рекомендуется не "
"изменять значение)"
msgid ""
"GLIBC version 2.38+ is required for use Lossless Scaling frame generation"
msgstr ""
msgid "Change the version of <b>WINDOWS</b> emulation"
msgstr "Изменить версию эмуляции <b>WINDOWS</b>"
@@ -1349,9 +1353,9 @@ msgid ""
"MangoHud settings (Keys <b>R_SHIFT + F12</b> disable MangoHud)\\n<b>note:</"
"b> To display help for each item, just hover the mouse cursor over the text."
msgstr ""
"Настройки MangoHud (клавиши <b>R_SHIFT + F12</b> отключают "
"MangoHud)\\n<b>Примечание:</b> Чтобы отобразить справку для каждого "
"элемента, наведите курсор мыши на текст."
"Настройки MangoHud (клавиши <b>R_SHIFT + F12</b> отключают MangoHud)"
"\\n<b>Примечание:</b> Чтобы отобразить справку для каждого элемента, "
"наведите курсор мыши на текст."
msgid ""
"Enabling fps limitation with MANGOHUD tools built into PortProton (Keys "
@@ -1849,6 +1853,9 @@ msgstr ""
msgid "Disable GameScope and go to the previous menu"
msgstr "Отключить Gamescope и перейти в предыдущее меню"
msgid "The graphics card does not support Vulkan"
msgstr "Видеокарта не поддерживает Vulkan"
msgid "Recommended value"
msgstr "Рекомендуемое значение"
@@ -1879,6 +1886,12 @@ msgstr "По данным последнего запуска"
msgid "By time"
msgstr "По проведённому времени"
msgid "unlock"
msgstr "разблокировать"
msgid "unlocked"
msgstr "разблокировано"
msgid "GLOBAL SETTINGS (USER.CONF)"
msgstr "ГЛОБАЛЬНЫЕ НАСТРОЙКИ (USER.CONF)"
@@ -1974,6 +1987,16 @@ msgstr "Сортировка ярлыков по"
msgid "This setting sorts the shortcuts in the main menu"
msgstr "Эта настройка сортирует ярлыки в главном меню"
msgid "Unlock all 3D APIs"
msgstr "Разблокировать все 3D API"
msgid ""
"Allows you to unlock all available 3D APIs, even if your current graphics "
"card does not meet the minimum requirements"
msgstr ""
"Позволяет разблокировать все доступные 3D API, даже если ваша текущая "
"видеокарта не соответствует минимальным требованиям"
msgid ""
"Open the <b>user.conf</b> settings file in a system text editor to view and "
"change variables manually"
@@ -2068,13 +2091,6 @@ msgstr "БИБЛИОТЕКИ"
msgid "FONTS"
msgstr "ШРИФТЫ"
msgid "Attention working version of vulkan not detected!"
msgstr "Внимание, рабочая версия Vulkan не обнаружена!"
msgid "It is recommended to run games in OpenGL (low performance possible)!"
msgstr ""
"Игры рекомендуется запускать в OpenGL (возможна низкая производительность)"
msgid ""
"PortProton was launched in creation mode PortProton.log and it is "
"successfully stored in the root directory of the port"
@@ -2197,11 +2213,18 @@ msgid "SPONSORS"
msgstr "СПОНСОРЫ"
msgid "JOIN"
msgstr "ПРИСОЕДЕНИТЬСЯ"
msgstr "ПРИСОЕДИНИТЬСЯ"
msgid "THIRD PARTY LIBRARIES"
msgstr "БИБЛИОТЕКИ"
#~ msgid "Attention working version of vulkan not detected!"
#~ msgstr "Внимание, рабочая версия Vulkan не обнаружена!"
#~ msgid "It is recommended to run games in OpenGL (low performance possible)!"
#~ msgstr ""
#~ "Игры рекомендуется запускать в OpenGL (возможна низкая производительность)"
#~ msgid "Legacy DXVK (Vulkan v1.1)"
#~ msgstr "Устаревший DXVK (Vulkan v1.1)"
@@ -2267,14 +2290,14 @@ msgstr "БИБЛИОТЕКИ"
#~ msgid ""
#~ "<b>Gamescope is not detected on the system, to install it, run the "
#~ "command in the terminal:\\nflatpak install -y runtime/org.freedesktop."
#~ "Platform.VulkanLayer.gamescope/x86_64/$%{GAMESCOPE_VERSION}%\\n(Can be "
#~ "selected and copied)</b>"
#~ "command in the terminal:\\nflatpak install -y runtime/"
#~ "org.freedesktop.Platform.VulkanLayer.gamescope/x86_64/$%"
#~ "{GAMESCOPE_VERSION}%\\n(Can be selected and copied)</b>"
#~ msgstr ""
#~ "<b>Gamescope не найден в системе, для его установки выполните команду в "
#~ "терминале:\\nflatpak install -y runtime/org.freedesktop.Platform."
#~ "VulkanLayer.gamescope/x86_64/$%{GAMESCOPE_VERSION}%\\n(Данный текст можно "
#~ "выделить и скопировать)</b>"
#~ "терминале:\\nflatpak install -y runtime/"
#~ "org.freedesktop.Platform.VulkanLayer.gamescope/x86_64/$%"
#~ "{GAMESCOPE_VERSION}%\\n(Данный текст можно выделить и скопировать)</b>"
#, sh-format
#~ msgid ""
@@ -2561,8 +2584,8 @@ msgstr "БИБЛИОТЕКИ"
#~ "<b>-F fsr:</b> use AMD FidelityFX™ Super Resolution 1.0 for upscaling.\n"
#~ "<b>-F nis:</b> use NVIDIA Image Scaling v1.0.3 for upscaling.\n"
#~ "<b>-S integer:</b> use integer scaling.\n"
#~ "<b>-S stretch:</b> use stretch scaling, the game will fill the window. (e."
#~ "g. 4:3 to 16:9).\n"
#~ "<b>-S stretch:</b> use stretch scaling, the game will fill the window. "
#~ "(e.g. 4:3 to 16:9).\n"
#~ "<b>-b:</b> create a border-less window.\n"
#~ "<b>-f:</b> create a full-screen window."
#~ msgstr ""
@@ -2571,8 +2594,8 @@ msgstr "БИБЛИОТЕКИ"
#~ "размера окна Gamescope обновит эти настройки. Если указано -H, а -W нет, "
#~ "предполагается соотношение сторон 16:9. По умолчанию установлено значение "
#~ "1280×720.\n"
#~ "<b>-w, -h:</b> установить разрешение, используемое в игре. Если указано -"
#~ "h, а -w нет, предполагается соотношение сторон 16:9. По умолчанию "
#~ "<b>-w, -h:</b> установить разрешение, используемое в игре. Если указано "
#~ "-h, а -w нет, предполагается соотношение сторон 16:9. По умолчанию "
#~ "используются значения, указанные в -W и -H.\n"
#~ "<b>-r:</b> установить ограничение частоты кадров для игры. По умолчанию "
#~ "значение неограниченно.\n"

View File

@@ -854,48 +854,35 @@ check_selinux () {
export -f check_selinux
check_vendor_gpu () {
unset VENDOR_GPU_USE
if [[ $PW_GPU_USE != disabled ]] ; then
case "${PW_GPU_USE,,}" in
check_pci_driver () {
case "$1" in
*nvidia*)
[[ -d /sys/bus/pci/drivers/nvidia ]] && VENDOR_GPU_USE+=("nvidia")
[[ -d /sys/bus/pci/drivers/nouveau ]] && VENDOR_GPU_USE+=("nouveau")
;;
[[ -d /sys/bus/pci/drivers/nvidia ]] && VENDOR_GPU_USE="nvidia"
[[ -d /sys/bus/pci/drivers/nouveau ]] && VENDOR_GPU_USE="nouveau"
;;
*amd*)
[[ -d /sys/bus/pci/drivers/amdgpu ]] && VENDOR_GPU_USE+=("amd")
;;
[[ -d /sys/bus/pci/drivers/amdgpu ]] && VENDOR_GPU_USE="amd"
;;
*intel*)
[[ -d /sys/bus/pci/drivers/i915 ]] && VENDOR_GPU_USE+=("intel")
;;
[[ -d /sys/bus/pci/drivers/i915 ]] && VENDOR_GPU_USE="intel"
;;
*)
[[ -d /sys/bus/pci/drivers/nvidia ]] && VENDOR_GPU_USE="nvidia"
[[ -d /sys/bus/pci/drivers/nouveau ]] && VENDOR_GPU_USE="nouveau"
[[ -d /sys/bus/pci/drivers/amdgpu ]] && VENDOR_GPU_USE="amd"
[[ -d /sys/bus/pci/drivers/i915 ]] && VENDOR_GPU_USE="intel"
;;
esac
}
if [[ -n $PW_GPU_USE && $PW_GPU_USE != "disabled" ]]
then check_pci_driver "${PW_GPU_USE,,}"
elif pw_check_glxinfo
then check_pci_driver "$(<"${PW_TMPFS_PATH}/glxinfo.tmp" tr '[:upper:]' '[:lower:]')"
else check_pci_driver
fi
if command -v glxinfo &>/dev/null ; then
if [[ ! -f "${PW_TMPFS_PATH}/glxinfo.tmp" ]] ; then
glxinfo -B &> "${PW_TMPFS_PATH}/glxinfo.tmp"
fi
case "$(<"${PW_TMPFS_PATH}/glxinfo.tmp" tr '[:upper:]' '[:lower:]')" in
*nvidia*)
[[ -d /sys/bus/pci/drivers/nvidia ]] && VENDOR_GPU_USE+=("nvidia")
[[ -d /sys/bus/pci/drivers/nouveau ]] && VENDOR_GPU_USE+=("nouveau")
;;
*amd*)
[[ -d /sys/bus/pci/drivers/amdgpu ]] && VENDOR_GPU_USE+=("amd")
;;
*intel*)
[[ -d /sys/bus/pci/drivers/i915 ]] && VENDOR_GPU_USE+=("intel")
;;
esac
fi
if [[ -z ${VENDOR_GPU_USE[0]} ]] ; then
[[ -d /sys/bus/pci/drivers/nvidia ]] && VENDOR_GPU_USE+=("nvidia")
[[ -d /sys/bus/pci/drivers/nouveau ]] && VENDOR_GPU_USE+=("nouveau")
[[ -d /sys/bus/pci/drivers/amdgpu ]] && VENDOR_GPU_USE+=("amd")
[[ -d /sys/bus/pci/drivers/i915 ]] && VENDOR_GPU_USE+=("intel")
fi
echo "${VENDOR_GPU_USE[*]}"
echo "$VENDOR_GPU_USE"
}
background_pid () {
@@ -1347,7 +1334,6 @@ seconds_to_time () {
combobox_fix () {
if [[ -z "$1" ]] ; then
print_error "no argument specified for combobox_fix"
return 1
else
local name1 name2
@@ -1658,12 +1644,7 @@ init_wine_ver () {
done
IFS="$orig_IFS"
fi
if [[ -z $(lsbash "${PORT_WINE_PATH}/data/dist/" --grep "${PW_WINE_USE}") ]] ; then
if [[ "$PW_WINE_USE" =~ PROTON_LG* ]]
then export PW_WINE_USE=PROTON_LG
else export PW_WINE_USE=WINE_LG
fi
fi
if [[ "$PW_WINE_USE" == PROTON_LG ]]
then export PW_WINE_USE="${PW_PROTON_LG_VER}"
elif [[ "$PW_WINE_USE" == WINE_LG ]]
@@ -1735,15 +1716,15 @@ init_wine_ver () {
export WINEDLLPATH
fi
if ! check_flatpak ; then
if ! check_flatpak ; then
WINE_LIBRARY_PATH="${WINEDIR}/lib"
if [[ -d "${WINEDIR}/lib64/gstreamer-1.0" ]]
then WINE_LIBRARY_PATH+=":${WINEDIR}/lib64"
elif [[ -d "${WINEDIR}/lib/x86_64-linux-gnu" ]]
then WINE_LIBRARY_PATH+=":${WINEDIR}/lib/x86_64-linux-gnu:${WINEDIR}/lib/i386-linux-gnu"
fi
export WINE_LIBRARY_PATH
fi
export WINE_LIBRARY_PATH
fi
export MEDIACONV_BLANK_VIDEO_FILE="${WINEDIR}"/share/media/blank.mkv
export MEDIACONV_BLANK_AUDIO_FILE="${WINEDIR}"/share/media/blank.ptna
@@ -1781,8 +1762,8 @@ pw_init_runtime () {
PW_PV_OVERRIDES="/usr/lib/pressure-vessel/overrides/lib"
if ! check_flatpak; then
export PW_LD_LIBRARY_PATH="\
if ! check_flatpak; then
export PW_LD_LIBRARY_PATH="\
${PW_PLUGINS_PATH}/portable/lib/lib64:\
${PW_PLUGINS_PATH}/portable/lib/lib32:\
${PW_PV_OVERRIDES}/x86_64-linux-gnu/aliases:\
@@ -1791,7 +1772,7 @@ ${PW_PV_OVERRIDES}/i386-linux-gnu/aliases:\
/overrides/lib/i386-linux-gnu:\
/lib/x86_64-linux-gnu:\
/lib/i386-linux-gnu"
fi
fi
export PW_PATH="${PW_PLUGINS_PATH}/portable/bin${PATH:+:$PATH}"
@@ -2451,13 +2432,16 @@ pw_init_db () {
if [[ -f "${PORTWINE_DB_FILE}" ]] ; then
# shellcheck source=/dev/null
source "${PORTWINE_DB_FILE}"
init_wine_ver &&
export PW_WINE_VER="$PW_WINE_USE"
init_wine_ver
print_info "Use $PORTWINE_DB_FILE db file."
else
if [[ "${PW_DISABLED_CREATE_DB}" != 1 ]] ; then
if [[ -n "${PORTWINE_DB}" ]] ; then
PORTWINE_DB_FILE=$(grep -il "#${PORTWINE_DB}.exe" "${PORT_SCRIPTS_PATH}/portwine_db"/*)
export PORTWINE_DB_FILE
use_exiftool "$portwine_exe"
grep -q "Sony" "${PW_TMPFS_PATH}/exiftool.tmp" && PW_WINE_USE="WINE_LG"
if [[ -z "${PORTWINE_DB_FILE}" ]] ; then
{
echo "#!/usr/bin/env bash"
@@ -2475,7 +2459,7 @@ pw_init_db () {
# shellcheck source=/dev/null
source "${PORTWINE_DB_FILE}"
fi
edit_db_from_gui PW_VULKAN_USE PW_WINE_USE PW_PREFIX_NAME
edit_db_from_gui PW_WINE_USE PW_PREFIX_NAME
fi
fi
@@ -2496,44 +2480,44 @@ pw_init_db () {
fi
fi
case "${PW_AMD_VULKAN_USE}" in
"amdvlk")
PW_VK_ICD_FILENAMES=""
for dir in /opt/amdgpu/etc/vulkan/icd.d /etc/vulkan/icd.d /usr/share/vulkan/icd.d; do
for file in "$dir"/amd_icd*.json; do
[ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file"
done
done
export PW_VK_ICD_FILENAMES
;;
case "${PW_AMD_VULKAN_USE}" in
"amdvlk")
PW_VK_ICD_FILENAMES=""
for dir in /opt/amdgpu/etc/vulkan/icd.d /etc/vulkan/icd.d /usr/share/vulkan/icd.d; do
for file in "$dir"/amd_icd*.json; do
[ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file"
done
done
export PW_VK_ICD_FILENAMES
;;
"amdgpupro")
PW_VK_ICD_FILENAMES=""
for dir in /opt/amdgpu-pro/etc/vulkan/icd.d /usr/share/vulkan/icd.d; do
for file in "$dir"/amd_pro_icd*.json; do
[ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file"
done
done
"amdgpupro")
PW_VK_ICD_FILENAMES=""
for dir in /opt/amdgpu-pro/etc/vulkan/icd.d /usr/share/vulkan/icd.d; do
for file in "$dir"/amd_pro_icd*.json; do
[ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file"
done
done
# add libs from https://github.com/CosmicFusion/fedora-amdgpu-pro/tree/main/x86_64/libdrm-pro to ld_library_path (this repo is deprecated and archived but why not)
echo "$PW_VK_ICD_FILENAMES" | grep -qi "/opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd.*.json" && \
# add libs from https://github.com/CosmicFusion/fedora-amdgpu-pro/tree/main/x86_64/libdrm-pro to ld_library_path (this repo is deprecated and archived but why not)
echo "$PW_VK_ICD_FILENAMES" | grep -qi "/opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd.*.json" && \
var_ld_library_path_update "/opt/amdgpu/libdrm/lib64:/opt/amdgpu/libdrm/lib32"
export PW_VK_ICD_FILENAMES
;;
"radv")
PW_VK_ICD_FILENAMES=""
for file in /usr/share/vulkan/icd.d/radeon_icd.{i686,x86_64}.json; do
[ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file"
done
export PW_VK_ICD_FILENAMES
;;
esac
export PW_VK_ICD_FILENAMES
;;
"radv")
PW_VK_ICD_FILENAMES=""
for file in /usr/share/vulkan/icd.d/radeon_icd.{i686,x86_64}.json; do
[ -f "$file" ] && PW_VK_ICD_FILENAMES="${PW_VK_ICD_FILENAMES:+${PW_VK_ICD_FILENAMES}:}$file"
done
export PW_VK_ICD_FILENAMES
;;
esac
[[ "${START_FROM_STEAM}" == 1 ]] && export PW_GUI_DISABLED_CS=1
[[ "${START_FROM_PP_GUI}" == 1 ]] && export PW_GUI_DISABLED_CS=0 && unset START_FROM_PP_GUI
return 0
}
@@ -2806,20 +2790,186 @@ pw_check_command () {
export -f pw_check_command
pw_check_vulkan () {
if [[ ! -f "${PW_TMPFS_PATH}/vulkaninfo.tmp" ]] ; then
TIMEOUT_CMD="5"
if ! pw_check_command vulkaninfo ; then
print_warning "use portable vulkaninfo"
"$PW_PLUGINS_PATH"/portable/bin/x86_64-linux-gnu-vulkaninfo &> "${PW_TMPFS_PATH}/vulkaninfo.tmp"
TIMEOUT_CMD="5"
export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1="1"
if ! pw_check_command vulkaninfo ; then
print_warning "use portable vulkaninfo"
"$PW_PLUGINS_PATH"/portable/bin/x86_64-linux-gnu-vulkaninfo &> "${PW_TMPFS_PATH}/vulkaninfo.tmp"
fi
}
compare_versions () {
IFS='.' read -ra a1 <<< "$1"
IFS='.' read -ra a2 <<< "$2"
local len=$(( ${#a1[@]} > ${#a2[@]} ? ${#a1[@]} : ${#a2[@]} ))
for ((i=0; i<len; i++)) ; do
local n1=$(( ${a1[i]:-0} ))
local n2=$(( ${a2[i]:-0} ))
if (( n1 > n2 )) ; then
return 0
elif (( n1 < n2 )) ; then
return 1
fi
done
return 0
}
get_gpu_names () {
GET_GPU_NAMES=$(awk -F '= ' '/deviceName/{print $2}' "${PW_TMPFS_PATH}/vulkaninfo.tmp" | sed '/llvm/d' | sort -u | paste -sd '!')
if [[ ${GET_GPU_NAMES,,} =~ radv ]] ; then
IFS='!' read -r -a GET_GPU_NAMES_ARRAY <<< "$GET_GPU_NAMES"
for i in "${!GET_GPU_NAMES_ARRAY[@]}" ; do
if [[ ${GET_GPU_NAMES_ARRAY[i],,} =~ amd && ! ${GET_GPU_NAMES_ARRAY[i],,} =~ radv ]] ; then
unset 'GET_GPU_NAMES_ARRAY[i]'
fi
done
GET_GPU_NAMES_ARRAY=("${GET_GPU_NAMES_ARRAY[@]}")
if [[ -n ${GET_GPU_NAMES_ARRAY[1]} ]] ; then
printf -v GET_GPU_NAMES '%s!' "${GET_GPU_NAMES_ARRAY[@]}"
GET_GPU_NAMES="${GET_GPU_NAMES%?}"
else
GET_GPU_NAMES="${GET_GPU_NAMES_ARRAY[0]}"
fi
fi
export GET_GPU_NAMES
}
pw_check_dxvk () {
background_pid --end "pw_check_vulkan" "1"
if [[ -z $PW_VULKAN_DRIVER_USE ]] && [[ -f "${PW_TMPFS_PATH}/vulkaninfo.tmp" ]] ; then
if [[ -z $PW_GPU_USE ]] ; then
if [[ -z $GET_GPU_NAMES ]] ; then
get_gpu_names
fi
IFS='!' read -r -a SELECTED_VULKAN_GPU <<< "$GET_GPU_NAMES"
else
IFS='' read -r -a SELECTED_VULKAN_GPU <<< "$PW_GPU_USE"
fi
if [[ -n ${SELECTED_VULKAN_GPU[*]} ]] ; then # оптимизация когда vulkan драйвера в системе нет
# если используется amdvlk или amdgpupro, то проверка на vulkan драйвер происходит среди них, а не через mesa драйвер
if [[ $PW_AMD_VULKAN_USE =~ ^(amdvlk|amdgpupro)$ ]] ; then
if [[ ${SELECTED_VULKAN_GPU[*],,} =~ radv ]] ; then
for i in "${!SELECTED_VULKAN_GPU[@]}" ; do
if [[ ${SELECTED_VULKAN_GPU[i],,} =~ radv ]] ; then
SELECTED_VULKAN_GPU[i]="${SELECTED_VULKAN_GPU[i]// (RADV*}"
fi
done
fi
fi
# какие карты в приоритете, если не выбран изначально PW_GPU_USE
if [[ -n ${SELECTED_VULKAN_GPU[1]} ]] ; then
for elem in "${SELECTED_VULKAN_GPU[@]}"; do
case ${elem,,} in
*nvidia*) nvidia_group+=("$elem") ;;
*amd*) amd_group+=("$elem") ;;
*intel*) intel_group+=("$elem") ;;
*) other_group+=("$elem") ;;
esac
done
unset SELECTED_VULKAN_GPU
SELECTED_VULKAN_GPU_NEW=(
"${nvidia_group[@]}"
"${amd_group[@]}"
"${intel_group[@]}"
"${other_group[@]}"
)
fi
# получаем информацию о конкретном драйвере который выбран в PW_GPU_USE,
# либо ищем наилучший драйвер с учётом приоритета видеокарт + информация
mapfile -t PW_VULKAN_DRIVER_ARRAY < <(awk '
/apiVersion|driverVersion/ { print $3 }
/deviceName|driverName|driverInfo/ {
split($0, parts, "= ")
print parts[2]
}' "${PW_TMPFS_PATH}/vulkaninfo.tmp")
for i in "${SELECTED_VULKAN_GPU_NEW[@]}" "${SELECTED_VULKAN_GPU[@]}" ; do
x="0" && y="5"
while true ; do
PW_VULKAN_DRIVER_ARRAY_CHECK=("${PW_VULKAN_DRIVER_ARRAY[@]:x:y}")
if [[ -n $PW_AMD_VULKAN_USE && $PW_AMD_VULKAN_USE != "disabled" ]] ; then
[[ $PW_AMD_VULKAN_USE == "amdvlk" && ${PW_VULKAN_DRIVER_ARRAY_CHECK[3],,} == *"amd open-source driver"* ]] && break
[[ $PW_AMD_VULKAN_USE == "amdgpupro" && ${PW_VULKAN_DRIVER_ARRAY_CHECK[3],,} == *"amd proprietary driver"* ]] && break
else
[[ ${PW_VULKAN_DRIVER_ARRAY_CHECK[2]} == "$i" ]] && break
fi
x=$(( x + 5 )) && y=$(( y + 5 ))
# фикс, если вдруг PW_GPU_USE изменился или сломался
if [[ -z ${PW_VULKAN_DRIVER_ARRAY_CHECK[2]} ]] ; then
PW_AMD_VULKAN_USE="disabled"
edit_db_from_gui PW_AMD_VULKAN_USE
unset PW_GPU_USE
pw_check_dxvk
break
fi
done
if [[ ${PW_VULKAN_DRIVER_ARRAY_CHECK[3],,} =~ nvidia ]] ; then
if compare_versions "${PW_VULKAN_DRIVER_ARRAY_CHECK[4]}" "550.54.14" ; then
PW_VULKAN_DRIVER_USE="6" && break
fi
elif [[ ${PW_VULKAN_DRIVER_ARRAY_CHECK[4],,} =~ mesa ]] ; then
if compare_versions "${PW_VULKAN_DRIVER_ARRAY_CHECK[1]}" "25.0" ; then
PW_VULKAN_DRIVER_USE="6" && break
fi
elif [[ ${PW_VULKAN_DRIVER_ARRAY_CHECK[3],,} == *"amd open-source driver"* ]] \
|| [[ ${PW_VULKAN_DRIVER_ARRAY_CHECK[3],,} == *"amd proprietary driver"* ]] ; then
if compare_versions "${PW_VULKAN_DRIVER_ARRAY_CHECK[1]}" "2.0.310" ; then
PW_VULKAN_DRIVER_USE="6" && break
fi
fi
done
# если используется nvidia, со встройкой opengl будет работать через встройку, с этим будет работать через nvidia
if [[ ${PW_VULKAN_DRIVER_ARRAY_CHECK[3],,} =~ nvidia ]] ; then
export __NV_PRIME_RENDER_OFFLOAD="1"
export __GLX_VENDOR_LIBRARY_NAME="nvidia"
else
export __NV_PRIME_RENDER_OFFLOAD="0"
fi
# если PW_GPU_USE изначально не было
if [[ -z $PW_GPU_USE ]] ; then
export PW_GPU_USE=${PW_VULKAN_DRIVER_ARRAY_CHECK[2]}
edit_user_conf_from_gui PW_GPU_USE
fi
fi
fi
# формируется в зависимости от выбранного PW_GPU_USE и поддержки самого драйвера
if [[ $PW_VULKAN_DRIVER_USE == "6" ]] || [[ $PW_VULKAN_UNLOCKED == "unlocked" ]] ; then
[[ -z $PW_VULKAN_USE ]] && PW_VULKAN_USE="6"
case "$PW_VULKAN_USE" in
0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_NEWEST!$SORT_STABLE!$SORT_SAREK" ;;
1) PW_DEFAULT_VULKAN_USE="$SORT_SAREK!$SORT_NEWEST!$SORT_STABLE!$SORT_OPENGL" ;;
2) PW_DEFAULT_VULKAN_USE="$SORT_STABLE!$SORT_NEWEST!$SORT_SAREK!$SORT_OPENGL" ;;
*) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_SAREK!$SORT_OPENGL" ;;
esac
else
if [[ -z $PW_GPU_USE || $PW_GPU_USE == "disabled" ]] ; then
[[ -z $PW_VULKAN_USE ]] && PW_VULKAN_USE="0"
PW_DEFAULT_VULKAN_USE="$SORT_OPENGL"
else
if compare_versions "${PW_VULKAN_DRIVER_ARRAY_CHECK[0]}" "1.3" ; then
[[ -z $PW_VULKAN_USE ]] && PW_VULKAN_USE="2"
case "$PW_VULKAN_USE" in
0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_STABLE!$SORT_SAREK" ;;
1) PW_DEFAULT_VULKAN_USE="$SORT_SAREK!$SORT_STABLE!$SORT_OPENGL" ;;
*) PW_DEFAULT_VULKAN_USE="$SORT_STABLE!$SORT_SAREK!$SORT_OPENGL" ;;
esac
else
[[ -z $PW_VULKAN_USE ]] && PW_VULKAN_USE="1"
case "$PW_VULKAN_USE" in
0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_SAREK" ;;
*) PW_DEFAULT_VULKAN_USE="$SORT_SAREK!$SORT_OPENGL" ;;
esac
fi
fi
fi
}
pw_check_glxinfo () {
if [[ ! -f "${PW_TMPFS_PATH}/glxinfo.tmp" ]] ; then
TIMEOUT_CMD="5"
pw_check_command glxinfo -B
fi
TIMEOUT_CMD="5"
pw_check_command glxinfo -B
}
pw_get_tmp_files () {
@@ -2827,9 +2977,6 @@ pw_get_tmp_files () {
do pw_check_command "$f_cmd"
done
pw_check_vulkan
pw_check_glxinfo
# GALLIUM NINE
unset FIND_D3D_MODULE D3D_MODULE_PATH
if ! check_flatpak ; then
@@ -2855,16 +3002,14 @@ pw_get_tmp_files () {
pw_skip_get_info () {
if [[ "${SKIP_CHECK_UPDATES_NEW}" != "1" ]] ; then
background_pid --end "pw_get_tmp_files" "1"
background_pid --end "pw_get_tmp_files" "2"
if [[ -f "${PW_TMPFS_PATH}/gamescope.tmp" ]] ; then
export GAMESCOPE_INSTALLED="1"
fi
if [[ -f "${PW_TMPFS_PATH}/vulkaninfo.tmp" ]] ; then
VULKAN_DRIVER_NAME="$(grep -e 'driverName' "${PW_TMPFS_PATH}/vulkaninfo.tmp" | awk '{print$3}' | head -1)"
GET_GPU_NAMES=$(awk -F '=' '/deviceName/{print $2}' "${PW_TMPFS_PATH}/vulkaninfo.tmp" | sed '/llvm/d'| sort -u | sed 's/^ //' | paste -sd '!')
export VULKAN_DRIVER_NAME GET_GPU_NAMES
get_gpu_names
fi
if [[ -f "${PW_TMPFS_PATH}/lspci.tmp" ]] ; then
@@ -2881,12 +3026,13 @@ pw_skip_get_info () {
if [[ -f "${PW_TMPFS_PATH}/locale.tmp" ]] ; then
GET_LOCALE_LIST="ru_RU.utf en_US.utf zh_CN.utf ja_JP.utf ko_KR.utf"
unset LOCALE_LIST
unset LOCALE_LIST LOCALE_UTF
[[ $(<"${PW_TMPFS_PATH}/locale.tmp") =~ utf8 ]] && LOCALE_UTF="8"
for LOCALE in $GET_LOCALE_LIST ; do
if [[ $(<"${PW_TMPFS_PATH}/locale.tmp") =~ $LOCALE ]] ; then
if [[ -n "$LOCALE_LIST" ]]
then LOCALE_LIST+="!$LOCALE"
else LOCALE_LIST="$LOCALE"
then LOCALE_LIST+="!$LOCALE$LOCALE_UTF"
else LOCALE_LIST="$LOCALE$LOCALE_UTF"
fi
fi
done
@@ -2937,7 +3083,7 @@ pw_skip_get_info () {
fi
logical_cores=$(grep -c ^"processor" /proc/cpuinfo)
if (( $logical_cores <= "4" )) ; then
if (( logical_cores <= "4" )) ; then
GET_LOGICAL_CORE="$(seq -s! 1 $(( logical_cores - 1 )))"
else
GET_LOGICAL_CORE="1!2!$(seq -s! 4 4 $(( logical_cores - 1 )))"
@@ -3031,6 +3177,22 @@ edit_user_conf_from_gui () {
return 0
}
use_exiftool () {
if [[ ! -f "${PW_TMPFS_PATH}/exiftool.tmp" ]] \
|| ! grep -q "$1" "${PW_TMPFS_PATH}/exiftool.tmp"
then
echo "$1" > "${PW_TMPFS_PATH}/exiftool.tmp"
if ! command -v exiftool &>/dev/null \
|| ! timeout 3 exiftool "$1" &>> "${PW_TMPFS_PATH}/exiftool.tmp"
then
print_warning "use portable exiftool"
env PERL5LIB="${PW_PLUGINS_PATH}/portable/lib/perl5" \
"${PW_PLUGINS_PATH}/portable/bin/exiftool" \
"$1" &>> "${PW_TMPFS_PATH}/exiftool.tmp"
fi
fi
}
pw_create_gui_png () {
if [[ -z $name_desktop_png ]] ; then
basename_portwine_exe="$(basename "${portwine_exe}")"
@@ -3055,19 +3217,9 @@ pw_create_gui_png () {
if [[ -n "${PORTWINE_CREATE_SHORTCUT_NAME}" ]] ; then
PORTPROTON_NAME="${PORTWINE_CREATE_SHORTCUT_NAME}"
else
if command -v exiftool &>/dev/null ; then
if timeout 3 exiftool "$portwine_exe" &> "${PW_TMPFS_PATH}/exiftool.tmp" ; then
PW_PRODUCTNAME=$(sed -n 's/^Product Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
FILE_DESCRIPTION=$(sed -n 's/^File Description\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
else
print_error "exiftool - broken!"
fi
else
print_warning "use portable exiftool"
env PERL5LIB="${PW_PLUGINS_PATH}/portable/lib/perl5" "${PW_PLUGINS_PATH}/portable/bin/exiftool" "$portwine_exe" &> "${PW_TMPFS_PATH}/exiftool.tmp"
PW_PRODUCTNAME=$(sed -n 's/^Product Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
FILE_DESCRIPTION=$(sed -n 's/^File Description\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
fi
use_exiftool "$portwine_exe"
PW_PRODUCTNAME=$(sed -n 's/^Product Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
FILE_DESCRIPTION=$(sed -n 's/^File Description\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
if [[ "$PW_PRODUCTNAME" =~ (Launcher|RU) ]]
then
@@ -3506,17 +3658,17 @@ start_portwine () {
OPTISCALER_PATH="$PW_PLUGINS_PATH/fake_dlss/optiscaler-$PW_OPTISCALER_VER"
OPTISCALER_FILES="dxgi.dll amd_fidelityfx_dx12.dll amd_fidelityfx_vk.dll libxess.dll \
libxess_dx11.dll dlssg_to_fsr3_amd_is_better.dll fakenvapi.ini \
nvapi64.dll OptiScaler.ini dxvk.conf"
ORIGINAL_GAME_DLLS="amd_fidelityfx_dx12.dll amd_fidelityfx_vk.dll libxess.dll nvapi64.dll"
nvapi64.dll OptiScaler.ini dxvk.conf D3D12 D3D12_Optiscaler optiscaler_version"
ORIGINAL_GAME_DLLS="amd_fidelityfx_dx12.dll amd_fidelityfx_vk.dll libxess.dll nvapi64.dll D3D12"
if [[ "${PW_USE_OPTISCALER}" != "1" ]] \
&& [[ -f "$PATH_TO_GAME/dlssg_to_fsr3_amd_is_better.dll" ]]
then
for dll in $OPTISCALER_FILES ; do
try_remove_file "$PATH_TO_GAME/$dll"
rm -fr "$PATH_TO_GAME/$dll"
done
for dll in $ORIGINAL_GAME_DLLS ; do
if [[ -f "$PATH_TO_GAME/${dll}.b" ]] ; then
if [[ -e "$PATH_TO_GAME/${dll}.b" ]] ; then
mv -f "$PATH_TO_GAME/${dll}.b" "$PATH_TO_GAME/${dll}" 2>/dev/null
fi
done
@@ -3533,7 +3685,7 @@ start_portwine () {
fi
fi
export PW_WINE_FULLSCREEN_FSR="0"
export PW_USE_NVAPI_AND_DLSS="1"
set_to_dxvk_conf nvidia_new
@@ -3546,20 +3698,21 @@ start_portwine () {
fatal "Force exit..."
fi
for dll in $ORIGINAL_GAME_DLLS ; do
if [[ -f "$PATH_TO_GAME/$dll" ]] \
&& [[ ! -f "$PATH_TO_GAME/${dll}.b" ]]
if [[ -e "$PATH_TO_GAME/$dll" ]] \
&& [[ ! -e "$PATH_TO_GAME/${dll}.b" ]]
then
mv -f "$PATH_TO_GAME/$dll" "$PATH_TO_GAME/${dll}.b" 2>/dev/null
fi
done
fi
for dll in $OPTISCALER_FILES ; do
if [[ ! -f "$PATH_TO_GAME/$dll" ]] \
|| [[ -L "$PATH_TO_GAME/$dll" ]]
then try_copy_file "$OPTISCALER_PATH/$dll" "$PATH_TO_GAME/$dll"
fi
done
if [[ ! -f "$PATH_TO_GAME/optiscaler_version" ]] \
|| ! grep -q "$PW_OPTISCALER_VER" "$PATH_TO_GAME/optiscaler_version"
then
for dll in $OPTISCALER_FILES ; do
cp -fr "$OPTISCALER_PATH/$dll" "$PATH_TO_GAME/$dll" || print_error "$OPTISCALER_PATH/$dll not found for copy!"
done
fi
fi
if [[ "${PW_USE_RAY_TRACING}" == "1" ]] ; then
@@ -3695,7 +3848,7 @@ if [[ "$GAMEMODERUN" != "1" ]]; then
start_activity_simulation
PW_INHIBIT_SLR=""
print_info "Screensaver will be inhibited using D-Bus (Flatpak mode)"
elif command -v systemd-inhibit &>/dev/null; then
elif [[ -e "/var/run/dbus/system_bus_socket" ]] && command -v systemd-inhibit &>/dev/null; then
PW_INHIBIT_SLR="systemd-inhibit --mode=block --who=ru.linux_gaming.PortProton --why=${translations[Launched]} --what=idle:sleep"
print_info "Screensaver will be inhibited using systemd-inhibit (Native mode)"
fi
@@ -3771,8 +3924,6 @@ fi
# WINED3D OPENGL
print_info "Use WINED3D OpenGL"
unset PW_VKBASALT PW_USE_GALLIUM_ZINK PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_NEW_VER}"
CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1"
CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi"
;;
1)
@@ -3788,27 +3939,27 @@ fi
fi
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_SAREK_VER}"
CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi"
CP_VKD3D_FILES="d3d12 libvkd3d-1 libvkd3d-shader-1"
CP_VKD3D_FILES="d3d12"
CP_WINE_FILES="d3d12core d3d10_1 d3d10"
;;
2)
# NEWEST DXVK AND VKD3D
print_info "DXVK v.${DXVK_NEW_VER} in use"
print_info "VKD3D-PROTON v.${VKD3D_NEW_VER} in use"
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_NEW_VER}"
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_NEW_VER}"
CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi"
CP_VKD3D_FILES="d3d12 d3d12core libvkd3d-1 libvkd3d-shader-1"
CP_WINE_FILES="d3d10_1 d3d10"
;;
6)
# STABLE DXVK AND VKD3D
print_info "DXVK v.${DXVK_OLD_VER} in use"
print_info "VKD3D-PROTON v.${VKD3D_OLD_VER} in use"
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_OLD_VER}"
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_OLD_VER}"
CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi"
CP_VKD3D_FILES="d3d12 d3d12core libvkd3d-1 libvkd3d-shader-1"
CP_VKD3D_FILES="d3d12 d3d12core"
CP_WINE_FILES="d3d10_1 d3d10"
;;
6)
# NEWEST DXVK AND VKD3D
print_info "DXVK v.${DXVK_NEW_VER} in use"
print_info "VKD3D-PROTON v.${VKD3D_NEW_VER} in use"
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_NEW_VER}"
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_NEW_VER}"
CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi"
CP_VKD3D_FILES="d3d12 d3d12core"
CP_WINE_FILES="d3d10_1 d3d10"
;;
esac
@@ -3819,8 +3970,6 @@ fi
|| [[ $PW_USE_GALLIUM_ZINK == "1" ]] \
|| [[ $PW_USE_WINED3D_VULKAN == "1" ]] ; then
unset PATH_TO_DXVK_FILES CP_DXVK_FILES PW_USE_SUPPLIED_DXVK_VKD3D
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_NEW_VER}"
CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1"
CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi"
fi
@@ -3881,14 +4030,13 @@ fi
else add_to_var CP_WINE_FILES "d3d8"
fi
fi
if [[ -f "${WINEDIR}/lib64/wine/vkd3d-proton/d3d12core.dll" && -f "${WINEDIR}/lib64/vkd3d/libvkd3d-1.dll" ]] \
|| [[ -f "${WINEDIR}/lib/wine/vkd3d-proton/x86_64-windows/d3d12core.dll" && -f "${WINEDIR}/lib/vkd3d/x86_64-windows/libvkd3d-1.dll" ]] ; then
CP_VKD3D_FILES="d3d12 d3d12core libvkd3d-1 libvkd3d-shader-1"
elif [[ -f "${WINEDIR}/lib64/wine/vkd3d-proton/d3d12.dll" && -f "${WINEDIR}/lib64/vkd3d/libvkd3d-shader-1.dll" ]] ; then
CP_VKD3D_FILES="d3d12 libvkd3d-1 libvkd3d-shader-1"
if [[ -f "${WINEDIR}/lib64/wine/vkd3d-proton/d3d12core.dll" ]] \
|| [[ -f "${WINEDIR}/lib/wine/vkd3d-proton/x86_64-windows/d3d12core.dll" ]] ; then
CP_VKD3D_FILES="d3d12 d3d12core"
elif [[ -f "${WINEDIR}/lib64/wine/vkd3d-proton/d3d12.dll" ]] ; then
CP_VKD3D_FILES="d3d12"
add_to_var CP_WINE_FILES "d3d12core"
else
CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1"
add_to_var CP_WINE_FILES "d3d12 d3d12core"
fi
[[ -f "${WINEDIR}/lib/wine/dxvk/x86_64-windows/d3d9.dll" ]] && PW_USE_SUPPLIED_DXVK_VKD3D="2"
@@ -4185,30 +4333,29 @@ fi
if [[ $wine_vkd3d_dll =~ d3d12 ]] ; then
try_force_link_file "${WINEDIR}/lib/wine/vkd3d-proton/i386-windows/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_vkd3d_dll}.dll"
try_force_link_file "${WINEDIR}/lib/wine/vkd3d-proton/x86_64-windows/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_vkd3d_dll}.dll"
fi
if [[ $wine_vkd3d_dll =~ libvkd3d ]] ; then
try_force_link_file "${WINEDIR}/lib/vkd3d/i386-windows/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_vkd3d_dll}.dll"
try_force_link_file "${WINEDIR}/lib/vkd3d/x86_64-windows/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_vkd3d_dll}.dll"
fi ;;
1)
if [[ $wine_vkd3d_dll =~ d3d12 ]] ; then
try_force_link_file "${WINEDIR}/lib/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_vkd3d_dll}.dll"
try_force_link_file "${WINEDIR}/lib64/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_vkd3d_dll}.dll"
fi
if [[ $wine_vkd3d_dll =~ libvkd3d ]] ; then
try_force_link_file "${WINEDIR}/lib/vkd3d/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_vkd3d_dll}.dll"
try_force_link_file "${WINEDIR}/lib64/vkd3d/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_vkd3d_dll}.dll"
fi ;;
0)
try_force_link_file "${PATH_TO_VKD3D_FILES}/x86/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_vkd3d_dll}.dll"
try_force_link_file "${PATH_TO_VKD3D_FILES}/x64/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_vkd3d_dll}.dll" ;;
esac
[[ ! $wine_vkd3d_dll =~ libvkd3d ]] && var_winedlloverride_update "${wine_vkd3d_dll}=n"
var_winedlloverride_update "${wine_vkd3d_dll}=n"
done
create_new_dir "${PATH_TO_VKD3D_FILES}/vkd3d_cache"
export VKD3D_SHADER_CACHE_PATH="${PATH_TO_VKD3D_FILES}/vkd3d_cache"
fi
# некоторым играм для любых 3D api для правильной работы wined3d необходимо чтобы эти библиотеки всегда были
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_NEW_VER}" # используется git версия
try_force_link_file "${PATH_TO_VKD3D_FILES}/x86/libvkd3d-1.dll" "${WINEPREFIX}/drive_c/windows/syswow64/libvkd3d-1.dll"
try_force_link_file "${PATH_TO_VKD3D_FILES}/x86/libvkd3d-shader-1.dll" "${WINEPREFIX}/drive_c/windows/syswow64/libvkd3d-shader-1.dll"
try_force_link_file "${PATH_TO_VKD3D_FILES}/x64/libvkd3d-1.dll" "${WINEPREFIX}/drive_c/windows/system32/libvkd3d-1.dll"
try_force_link_file "${PATH_TO_VKD3D_FILES}/x64/libvkd3d-shader-1.dll" "${WINEPREFIX}/drive_c/windows/system32/libvkd3d-shader-1.dll"
# GALLIUM NINE
if [[ "$CP_GALLIUM_NINE_FILES" == "d3d9" ]] && [[ -f "${PW_TMPFS_PATH}/gallium_nine.tmp" ]] ; then
PATH_TO_GALLIUM_NINE_FILES="${PW_PLUGINS_PATH}/gallium_nine_v.${PW_GALLIUM_NINE_VER}"
@@ -4590,14 +4737,11 @@ pw_run () {
export WINE_LARGE_ADDRESS_AWARE="1"
fi
check_variables SteamAppId "0"
check_variables SteamGameId "0"
PW_LOG_TO_FILE="${PORT_WINE_PATH}/PortProton.log"
PW_LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}"
echo "##### Current variables #####" > "$PW_TMPFS_PATH/var.log"
for var in "WINEDIR" "WINEPREFIX" "WINEDLLOVERRIDES" "PATH_TO_GAME" "PW_WINE_USE" "PW_VULKAN_USE" "VULKAN_DRIVER_NAME" \
for var in "WINEDIR" "WINEPREFIX" "WINEDLLOVERRIDES" "PATH_TO_GAME" "PW_WINE_USE" "PW_VULKAN_USE" \
"WINELOADER" "VKD3D_CONFIG" "PW_LD_LIBRARY_PATH" "PATH" "WINEESYNC" "WINEFSYNC" "WINEFSYNC_FUTEX2" \
"WINEDLLPATH" "WINE_CPU_TOPOLOGY" "PW_RUN_GAMESCOPE" "LD_LIBRARY_PATH" "PW_VK_ICD_FILENAMES" "PW_TASKSET_SLR"
do
@@ -4771,6 +4915,7 @@ portwine_launch () {
[[ $PW_LOG != 1 ]] && debug_timer --start -s "PW_TIME_IN_GAME"
if [[ -n "${LAUNCH_URI}" ]] ; then
export WINEFSYNC="1"
pw_run start /high /b "${LAUNCH_URI}" &
unset GAMEPID
while true ; do
@@ -5391,13 +5536,13 @@ export -f gui_proton_downloader
# GUI EDIT_DB
gui_edit_db () {
KEY_EDIT_DB_GUI=$RANDOM
PW_EDIT_DB_LIST=(PW_MANGOHUD PW_MANGOHUD_USER_CONF PW_VKBASALT PW_VKBASALT_USER_CONF PW_DGVOODOO2 PW_GAMESCOPE
PW_EDIT_DB_LIST=(PW_MANGOHUD PW_MANGOHUD_USER_CONF PW_VKBASALT PW_VKBASALT_USER_CONF PW_DGVOODOO2
PW_USE_ESYNC PW_USE_FSYNC PW_USE_NTSYNC PW_USE_RAY_TRACING PW_USE_NVAPI_AND_DLSS PW_USE_OPTISCALER
PW_USE_LS_FRAME_GEN PW_WINE_FULLSCREEN_FSR PW_HIDE_NVIDIA_GPU PW_VIRTUAL_DESKTOP PW_USE_TERMINAL PW_GUI_DISABLED_CS
PW_USE_GAMEMODE PW_USE_D3D_EXTRAS PW_FIX_VIDEO_IN_GAME PW_REDUCE_PULSE_LATENCY PW_USE_US_LAYOUT PW_USE_GSTREAMER
PW_USE_SHADER_CACHE PW_USE_WINE_DXGI PW_USE_EAC_AND_BE PW_USE_SYSTEM_VK_LAYERS PW_USE_OBS_VKCAPTURE
PW_DISABLE_COMPOSITING PW_USE_RUNTIME PW_DINPUT_PROTOCOL PW_USE_GALLIUM_ZINK PW_USE_GALLIUM_NINE
PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D PW_USE_NATIVE_WAYLAND PW_USE_DXVK_HDR
PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D PW_USE_NATIVE_WAYLAND PW_USE_DXVK_HDR PW_GAMESCOPE
)
if check_wayland_session
@@ -5479,6 +5624,14 @@ gui_edit_db () {
[[ ! -e "/dev/ntsync" ]] && DISABLE_EDIT_DB_LIST+=" PW_USE_NTSYNC"
if ! check_flatpak \
&& [[ $(ldd --version | head -n 1 | awk '{print $4}') < 2.38 ]]
then
DISABLE_EDIT_DB_LIST+=" PW_USE_LS_FRAME_GEN"
export PW_USE_LS_FRAME_GEN="0"
PW_USE_LS_FRAME_GEN_INFO=${translations[GLIBC version 2.38+ is required for use Lossless Scaling frame generation]}
fi
unset ADD_CHK_BOX_EDIT_DB
for int_to_boole in "${PW_EDIT_DB_LIST[@]}" ; do
if [[ "${!int_to_boole}" == "1" ]]
@@ -5542,7 +5695,6 @@ gui_edit_db () {
if [[ -n "${PW_AMD_VULKAN_USE}" ]] && \
[[ "${PW_AMD_VULKAN_USE}" != "disabled" ]] ; then
AMD_VULKAN_VAR="${PW_AMD_VULKAN_USE}"
export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1
else
AMD_VULKAN_VAR="disabled"
fi
@@ -6422,12 +6574,12 @@ gui_userconf () {
NEW_STEAM_BEHAVIOR="${translations[Enable]}"
fi
if [[ -n $PW_GPU_USE ]] \
&& [[ $PW_GPU_USE != "disabled" ]]
then
if [[ -n $PW_GPU_USE ]] && [[ $PW_GPU_USE != "disabled" ]] ; then
GPU_VAR="$PW_GPU_USE"
elif [[ -n $GET_GPU_NAMES ]] ; then
GPU_VAR="${GET_GPU_NAMES/!*/}"
else
GPU_VAR="disabled"
GPU_VAR="${translations[The graphics card does not support Vulkan]}"
fi
if [[ $PW_WINE_DPI_VALUE == "recommended" ]] ; then
@@ -6449,10 +6601,9 @@ gui_userconf () {
SOUND_DRIVER_VAR="disabled"
fi
if [[ $GUI_THEME == "default" ]] ; then GUI_THEME=${translations[default]}
elif [[ $GUI_THEME == "compact" ]] ; then GUI_THEME=${translations[compact]}
elif [[ $GUI_THEME == "classic" ]] ; then GUI_THEME=${translations[classic]}
fi
[[ $GUI_THEME == "default" ]] && GUI_THEME=${translations[default]}
[[ $GUI_THEME == "compact" ]] && GUI_THEME=${translations[compact]}
[[ $GUI_THEME == "classic" ]] && GUI_THEME=${translations[classic]}
if command -v gsettings &>/dev/null ; then
YAD_GTK_THEME=$(gsettings get org.gnome.desktop.interface gtk-theme)
@@ -6460,11 +6611,10 @@ gui_userconf () {
[[ -n $YAD_GTK_THEME ]] && YAD_GTK_THEME="${YAD_GTK_THEME//\'/}!"
fi
[[ -n $GTK_THEME ]] && GTK_THEME_PROXY="$GTK_THEME"
if [[ -z $GTK_THEME_PROXY ]] ; then GTK_THEME_PROXY="${translations[default]}"
elif [[ $GTK_THEME_PROXY =~ light$ ]] ; then GTK_THEME_PROXY="${GTK_THEME_PROXY//light/${translations[light]}}"
elif [[ $GTK_THEME_PROXY =~ dark$ ]] ; then GTK_THEME_PROXY="${GTK_THEME_PROXY//dark/${translations[dark]}}"
elif [[ $GTK_THEME_PROXY == "${YAD_GTK_THEME//\!/}" ]] ; then GTK_THEME_PROXY="${YAD_GTK_THEME//\!/}"
fi
[[ -z $GTK_THEME_PROXY ]] && GTK_THEME_PROXY="${translations[default]}"
[[ $GTK_THEME_PROXY =~ light$ ]] && GTK_THEME_PROXY="${GTK_THEME_PROXY//light/${translations[light]}}"
[[ $GTK_THEME_PROXY =~ dark$ ]] && GTK_THEME_PROXY="${GTK_THEME_PROXY//dark/${translations[dark]}}"
[[ $GTK_THEME_PROXY == "${YAD_GTK_THEME//\!/}" ]] && GTK_THEME_PROXY="${YAD_GTK_THEME//\!/}"
if [[ $DESKTOP_WITH_TIME == "posnumber1" ]] ; then
DESKTOP_WITH_TIME=${translations[Show in hours and minutes]}
@@ -6482,6 +6632,14 @@ gui_userconf () {
SORT_WITH_TIME="disabled"
fi
if [[ $PW_VULKAN_UNLOCKED == "default" ]] ; then
PW_VULKAN_UNLOCKED="${translations[default]}"
PW_VULKAN_UNLOCKED_LIST="${translations[unlock]}"
elif [[ $PW_VULKAN_UNLOCKED == "unlocked" ]] ; then
PW_VULKAN_UNLOCKED="${translations[unlocked]}"
PW_VULKAN_UNLOCKED_LIST="${translations[default]}"
fi
"${pw_yad}" --title="${translations[GLOBAL SETTINGS (USER.CONF)]}" --form \
--gui-type="settings-shortcut" --separator="%" \
--window-icon "$PW_GUI_ICON_PATH/portproton.svg" \
@@ -6491,13 +6649,14 @@ gui_userconf () {
--field="${translations[Change branch to]}!${translations[Depending on the version of the scripts, PortProton will receive the latest changes first (the DEVEL branch), the STABLE branch is updated later and is stable.]} :CB" "$(combobox_fix "$BRANCH" "$NEW_BRANCH")" \
--field="${translations[Change start gui to]}!${translations[When using PANED in the game start menu, additional buttons are located on one large page; if NOTEBOOK, then they are divided into several.]} :CB" "$(combobox_fix "$PW_GUI_START" "$NEW_START_GUI")" \
--field="${translations[Steam covers download]}!${translations[If downloading steam covers is enabled, they will be downloaded and created. (Disablement is provided in cases where their downloading is unavailable for some reason)]} :CB" "$(combobox_fix "$DOWNLOAD_STEAM_GRID" "$NEW_STEAM_BEHAVIOR")" \
--field="${translations[Choose a graphics card to run the game]}!${translations[Select which video card will be used to run the game (used for all running games and programs in PortProton)]} :CB" "$(combobox_fix --disabled "$GPU_VAR" "$GET_GPU_NAMES")" \
--field="${translations[Choose a graphics card to run the game]}!${translations[Select which video card will be used to run the game (used for all running games and programs in PortProton)]} :CB" "$(combobox_fix "$GPU_VAR" "$GET_GPU_NAMES")" \
--field="${translations[Force dpi]}!${translations[Here you can set forced dpi for applications wine]} :CB" "$(combobox_fix --disabled "$YAD_DPI_VAR" "${translations[Recommended value]}!80!96!120!144!168!192!216!240")" \
--field="${translations[Choice wine audio driver]}!${translations[Fixes sound popling if choice alsa]} :CB" "$(combobox_fix --disabled "$SOUND_DRIVER_VAR" "alsa!oss!pulse")" \
--field="${translations[Select PortProton theme]}!${translations[Allows you to select a theme for PortProton]} :CB" "$(combobox_fix "$GUI_THEME" "${translations[default]}!${translations[compact]}!${translations[classic]}")" \
--field="${translations[Select gtk theme]}!${translations[Allows you to select a theme for GTK.]} :CB" "$(combobox_fix "$GTK_THEME_PROXY" "${YAD_GTK_THEME}Adwaita:${translations[light]}!Adwaita:${translations[dark]}!${translations[default]}")" \
--field="${translations[Time display]}!${translations[Displays time spent in an application or game]} :CB" "$(combobox_fix --disabled "$DESKTOP_WITH_TIME" "${translations[Show in hours and minutes]}!${translations[Show in days, hours, minutes]}")" \
--field="${translations[Sort shortcuts by]}!${translations[This setting sorts the shortcuts in the main menu]} :CB" "$(combobox_fix --disabled "$SORT_WITH_TIME" "${translations[According to last launch]}!${translations[By time]}")" \
--field="${translations[Unlock all 3D APIs]}!${translations[Allows you to unlock all available 3D APIs, even if your current graphics card does not meet the minimum requirements]} :CB" "$(combobox_fix "$PW_VULKAN_UNLOCKED" "$PW_VULKAN_UNLOCKED_LIST")" \
--button="${translations[CANCEL THE CHANGES]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Cancel the current changes and return to the previous menu]}":1 \
--button="${translations[RESET]} USER.CONF!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Restore default settings for]} user.conf":2 \
--button="${translations[OPEN THE SETTINGS FILE]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Open the <b>user.conf</b> settings file in a system text editor to view and change variables manually]}":164 \
@@ -6522,12 +6681,12 @@ gui_userconf () {
gui_open_user_conf
;;
166)
unset PW_VULKAN_DRIVER_USE
IFS='%' read -r -a PW_ADD_SETTINGS_UC <"${PW_TMPFS_PATH}/tmp_yad_userconf_set_cb"
MIRROR="${PW_ADD_SETTINGS_UC[0]}"
if [[ $BRANCH != "${PW_ADD_SETTINGS_UC[1]}" ]] ; then
if [[ ${PW_ADD_SETTINGS_UC[1]} == "DEVEL" ]] ; then
if yad_question "${translations[Do you actually want to change the scripts version to:]} <b>DEVEL?</b>" ; then
export MIRROR="GITHUB"
pw_notify_send -i info \
"${translations[Branch changed to:]}" "<b>DEVEL</b>"
BRANCH="devel"
@@ -6548,9 +6707,8 @@ gui_userconf () {
export PW_CHANGE_BRANCH="1"
export PW_FORCE_UPDATE="1"
else
if [[ $BRANCH == "DEVEL" ]] ; then BRANCH="devel"
elif [[ $BRANCH == "STABLE" ]] ; then BRANCH="master"
fi
[[ $BRANCH == "DEVEL" ]] && BRANCH="devel"
[[ $BRANCH == "STABLE" ]] && BRANCH="master"
fi
PW_GUI_START="${PW_ADD_SETTINGS_UC[2]}"
DOWNLOAD_STEAM_GRID="${PW_ADD_SETTINGS_UC[3]}"
@@ -6561,30 +6719,46 @@ gui_userconf () {
GTK_THEME="${PW_ADD_SETTINGS_UC[8]}"
DESKTOP_WITH_TIME="${PW_ADD_SETTINGS_UC[9]}"
SORT_WITH_TIME="${PW_ADD_SETTINGS_UC[10]}"
PW_VULKAN_UNLOCKED="${PW_ADD_SETTINGS_UC[11]}"
if [[ $DOWNLOAD_STEAM_GRID =~ (${translations[Enabled]}|${translations[Enable]}) ]] ; then DOWNLOAD_STEAM_GRID="1"
elif [[ $DOWNLOAD_STEAM_GRID =~ (${translations[Disabled]}|${translations[Disable]}) ]] ; then DOWNLOAD_STEAM_GRID="0"
if [[ $DOWNLOAD_STEAM_GRID =~ (${translations[Enabled]}|${translations[Enable]}) ]]
then DOWNLOAD_STEAM_GRID="1"
else DOWNLOAD_STEAM_GRID="0"
fi
if [[ $PW_WINE_DPI_VALUE == "${translations[Recommended value]}" ]] ; then
PW_WINE_DPI_VALUE="recommended"
[[ $PW_WINE_DPI_VALUE == "${translations[Recommended value]}" ]] && PW_WINE_DPI_VALUE="recommended"
case $GUI_THEME in
"${translations[default]}") GUI_THEME="default" ;;
"${translations[compact]}") GUI_THEME="compact" ;;
"${translations[classic]}") GUI_THEME="classic" ;;
esac
case $GTK_THEME in
"${translations[default]}") unset GTK_THEME ;;
"${translations[light]}") GTK_THEME=${GTK_THEME//${translations[light]}/light} ;;
"${translations[dark]}") GTK_THEME=${GTK_THEME//${translations[dark]}/dark} ;;
esac
if [[ $DESKTOP_WITH_TIME == "${translations[Show in hours and minutes]}" ]]
then DESKTOP_WITH_TIME="posnumber1"
else DESKTOP_WITH_TIME="posnumber2"
fi
if [[ $GUI_THEME == "${translations[default]}" ]] ; then GUI_THEME=default
elif [[ $GUI_THEME == "${translations[compact]}" ]] ; then GUI_THEME=compact
elif [[ $GUI_THEME == "${translations[classic]}" ]] ; then GUI_THEME=classic
if [[ $SORT_WITH_TIME == "${translations[According to last launch]}" ]]
then SORT_WITH_TIME="lastlaunch"
else SORT_WITH_TIME="bytime"
fi
if [[ $GTK_THEME == "${translations[default]}" ]] ; then unset GTK_THEME
elif [[ $GTK_THEME =~ ${translations[light]} ]] ; then GTK_THEME=${GTK_THEME//${translations[light]}/light}
elif [[ $GTK_THEME =~ ${translations[dark]} ]] ; then GTK_THEME=${GTK_THEME//${translations[dark]}/dark}
fi
if [[ $DESKTOP_WITH_TIME == "${translations[Show in hours and minutes]}" ]] ; then DESKTOP_WITH_TIME="posnumber1"
elif [[ $DESKTOP_WITH_TIME == "${translations[Show in days, hours, minutes]}" ]] ; then DESKTOP_WITH_TIME="posnumber2"
fi
if [[ $SORT_WITH_TIME == "${translations[According to last launch]}" ]] ; then SORT_WITH_TIME="lastlaunch"
elif [[ $SORT_WITH_TIME == "${translations[By time]}" ]] ; then SORT_WITH_TIME="bytime"
[[ $PW_GPU_USE == "${translations[The graphics card does not support Vulkan]}" ]] && PW_GPU_USE="disabled"
if [[ $PW_VULKAN_UNLOCKED == "${translations[unlock]}" || $PW_VULKAN_UNLOCKED == "${translations[unlocked]}" ]]
then PW_VULKAN_UNLOCKED="unlocked"
else PW_VULKAN_UNLOCKED="default"
fi
edit_user_conf_from_gui MIRROR BRANCH PW_GUI_START DOWNLOAD_STEAM_GRID PW_GPU_USE PW_WINE_DPI_VALUE PW_SOUND_DRIVER_USE \
GUI_THEME GTK_THEME DESKTOP_WITH_TIME SORT_WITH_TIME
GUI_THEME GTK_THEME DESKTOP_WITH_TIME SORT_WITH_TIME PW_VULKAN_UNLOCKED
restart_pp
;;
esac
@@ -6601,6 +6775,10 @@ resize_png () {
RESIZE_NAME_PNG="${2// /_}"
fi
if [[ $RESIZE_NAME_PNG =~ ru.linux_gaming.PortProton/data/img/ ]]
then RESIZE_NAME_PNG=${RESIZE_NAME_PNG/*ru.linux_gaming.PortProton\/data\/img\//}
fi
for resize_to in "${@:3}" ; do
if [[ $resize_to == 128 ]]
then resize_to_helper=""
@@ -6766,20 +6944,6 @@ get_lnk_path () {
link_path=$(echo "$1" | sed 's|%ProgramFiles(x86)%|C:\\Program Files (x86)|gi;s|%ProgramFiles%|C:\\Program Files|gi' | sed "s|^.|${PORT_WINE_PATH}/data/prefixes/${prefix_name:-${PW_PREFIX_NAME:-DEFAULT}}/dosdevices/${link_drive}|g" | sed 's/\\/\//g')
}
get_lnk () {
if command -v exiftool &>/dev/null ; then
if timeout 3 exiftool "$1" &> "${PW_TMPFS_PATH}/exiftool.tmp" ; then
parse_lnk "$1"
else
print_error "exiftool - broken!"
fi
else
print_warning "use portable exiftool"
env PERL5LIB="${PW_PLUGINS_PATH}/portable/lib/perl5" "${PW_PLUGINS_PATH}/portable/bin/exiftool" "$1" &> "${PW_TMPFS_PATH}/exiftool.tmp"
parse_lnk "$1"
fi
}
pw_auto_create_shortcut () {
if [[ "${PW_CHECK_AUTOINSTALL}" == "1" ]] \
|| [[ "${PW_NO_AUTO_CREATE_SHORTCUT}" == "1" ]] \
@@ -6825,7 +6989,8 @@ pw_auto_create_shortcut () {
read -r -a SORTED_LINKS < <(echo "${LINKS[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' ')
for link_file in "${SORTED_LINKS[@]//#@_@#/ }" ; do
get_lnk "${link_file}"
use_exiftool "${link_file}"
parse_lnk "${link_file}"
if ! exe_path="$(realpath "${link_path}" 2>/dev/null)" ; then
print_warning "Link broken for: $link_name"
else
@@ -7039,9 +7204,9 @@ pw_prefix_manager () {
--tab="${translations[SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" 2>/dev/null
YAD_STATUS="$?"
try_remove_file "${PW_TMPFS_PATH}/dll_list_tmp"
try_remove_file "${PW_TMPFS_PATH}/fonts_list_tmp"
try_remove_file "${PW_TMPFS_PATH}/settings_list_tmp"
try_remove_file "${PW_TMPFS_PATH}/dll_list_tmp"
try_remove_file "${PW_TMPFS_PATH}/fonts_list_tmp"
try_remove_file "${PW_TMPFS_PATH}/settings_list_tmp"
case "$YAD_STATUS" in
0)
@@ -7084,11 +7249,6 @@ portwine_start_debug () {
pw_skip_get_info
kill_portwine
export PW_LOG=1
if [[ -z "$VULKAN_DRIVER_NAME" ]] || [[ "$VULKAN_DRIVER_NAME" == "llvmpipe" ]] ; then
pw_notify_send -i warning \
"${translations[Attention working version of vulkan not detected!]}" \
"${translations[It is recommended to run games in OpenGL (low performance possible)!]}"
fi
echo "${translations[PortProton was launched in creation mode PortProton.log and it is successfully stored in the root directory of the port]}" > "${PORT_WINE_PATH}/PortProton.log"
echo "${translations[To diagnose the problem, copy ALL of the log to:]} https://linux-gaming.ru/t/opisanie-kategorii-portproton-pomoshh/1642" >> "${PORT_WINE_PATH}/PortProton.log"
echo "-------------------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
@@ -7429,6 +7589,7 @@ gui_open_user_conf () {
restart_pp --userconf
;;
2)
unset PW_VULKAN_DRIVER_USE
echo "${PW_USERCONF_GUI}" > "${PORT_WINE_PATH}/data/user.conf"
print_info "Restarting..."
restart_pp --userconf

View File

@@ -277,14 +277,15 @@ if [[ -z $SORT_WITH_TIME ]] ; then
fi
# TODO:fixes_after_update (со временем можно будет дропнуть)
if fixes_after_update "2395: DESKTOP_WITH_TIME by default displays hours and minutes" ; then
DESKTOP_WITH_TIME="posnumber1"
edit_user_conf_from_gui DESKTOP_WITH_TIME
fi
if fixes_after_update "2398: SORT_WITH_TIME by default sorts from the last run" ; then
SORT_WITH_TIME="lastlaunch"
edit_user_conf_from_gui SORT_WITH_TIME
fi
# Оставил для примера
# if fixes_after_update "2395: DESKTOP_WITH_TIME by default displays hours and minutes" ; then
# DESKTOP_WITH_TIME="posnumber1"
# edit_user_conf_from_gui DESKTOP_WITH_TIME
# fi
# if fixes_after_update "2398: SORT_WITH_TIME by default sorts from the last run" ; then
# SORT_WITH_TIME="lastlaunch"
# edit_user_conf_from_gui SORT_WITH_TIME
# fi
# choose wine dpi default
if [[ -z $PW_WINE_DPI_VALUE ]] ; then
@@ -306,7 +307,13 @@ if [[ "${SKIP_CHECK_UPDATES}" != 1 ]] ; then
PW_FILESYSTEM=$(stat -f -c %T "${PORT_WINE_PATH}")
export PW_FILESYSTEM
background_pid --start "pw_get_tmp_files" "1"
background_pid --start "pw_check_vulkan" "1"
background_pid --start "pw_get_tmp_files" "2"
fi
if [[ -z $PW_GPU_USE || $PW_GPU_USE == "disabled" ]] ; then
unset PW_GPU_USE
pw_check_dxvk
fi
# create lock file
@@ -532,24 +539,6 @@ SORT_SAREK="${translations[DXVK, VKD3D (Sarek) (Vulkan v1.1+)]}"
SORT_STABLE="${translations[DXVK, VKD3D (Stable) (Vulkan v1.3+)]}"
SORT_NEWEST="${translations[DXVK, VKD3D (Newest) (Vulkan v1.3+)]}"
if [[ -z $PW_VULKAN_USE ]] \
|| [[ $PW_VULKAN_USE == [3-5] ]]
then
pw_check_glxinfo
if [[ -e "/sys/module/nvidia/version" && $(</sys/module/nvidia/version) > 550.54.13 ]] \
|| [[ $(grep "Version:" "$PW_TMPFS_PATH/glxinfo.tmp" | awk '{print $2}') > 25 ]]
then export PW_VULKAN_USE="6"
else export PW_VULKAN_USE="2"
fi
fi
case "$PW_VULKAN_USE" in
0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_NEWEST!$SORT_STABLE!$SORT_SAREK" ;;
1) PW_DEFAULT_VULKAN_USE="$SORT_SAREK!$SORT_NEWEST!$SORT_STABLE!$SORT_OPENGL" ;;
2) PW_DEFAULT_VULKAN_USE="$SORT_STABLE!$SORT_NEWEST!$SORT_SAREK!$SORT_OPENGL" ;;
*) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_SAREK!$SORT_OPENGL" ;;
esac
if [[ $PW_WINE_USE == PROTON_LG ]] ; then
PW_WINE_USE="${PW_PROTON_LG_VER}"
PW_DEFAULT_WINE_USE="${PW_WINE_LG_VER}${DIST_ADD_TO_GUI}!${translations[GET-OTHER-WINE]}"
@@ -575,6 +564,10 @@ if [[ -f "$portwine_exe" ]] ; then
unset RESTART_PP_USED
gui_userconf
fi
[[ $PW_VULKAN_USE == [3-5] ]] && unset PW_VULKAN_USE
pw_check_dxvk
if [[ $PW_GUI_DISABLED_CS != 1 ]] ; then
pw_create_gui_png
if ! grep -il "$portwine_exe" "$PORT_WINE_PATH"/*.desktop &>/dev/null ; then
@@ -594,27 +587,32 @@ if [[ -f "$portwine_exe" ]] ; then
fi
fi
export KEY_START="$RANDOM"
KEY_START="$RANDOM"
"$pw_yad" --plug=$KEY_START --tabnum="1" --form --separator=";" $START_GUI_TYPE \
--gui-type-box="$START_GUI_TYPE_BOX" --gui-type-layout="$START_GUI_TYPE_LAYOUT_UP" \
--gui-type-text="$START_GUI_TYPE_TEXT" --gui-type-images="$START_GUI_TYPE_IMAGE" \
--image="$PW_ICON_FOR_YAD" --text-align="center" --text "$PW_COMMENT_DB" \
--field="3D API : !$INFO_3DAPI:CB" "$PW_DEFAULT_VULKAN_USE" \
--field=" WINE : !$INFO_WINE:CB" "$(combobox_fix "$PW_WINE_USE" "$PW_DEFAULT_WINE_USE")" \
--field="PREFIX : !$INFO_PREFIX:CBE" "$PW_ADD_PREFIXES_TO_GUI" \
1> "$PW_TMPFS_PATH/tmp_yad_form_vulkan" 2>/dev/null &
if [[ $PW_GUI_START == "NOTEBOOK" ]]
then PW_GUI_START_TABNUM2="--columns=$START_GUI_NOTEBOOK_COLUMNS --gui-type-layout=$START_GUI_TYPE_LAYOUT_NOTEBOOK"
elif [[ $PW_GUI_START == "PANED" ]]
then PW_GUI_START_TABNUM2="--columns=$START_GUI_PANED_COLUMNS --gui-type-layout=$START_GUI_TYPE_LAYOUT_PANED --homogeneous-row"
fi
"$pw_yad" --plug=$KEY_START --tabnum="2" --form --align-buttons --homogeneous-column $PW_GUI_START_TABNUM2 \
--field=" ${translations[Base settings]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Edit database file for]} ${PORTWINE_DB}":"FBTN" '@bash -c "button_click --start 118"' \
--field=" ${translations[Open directory]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Open directory with <b>.ppdb</b> file]}":"FBTN" '@bash -c "button_click --start open_game_folder"' \
--field=" vkBasalt!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable vkBasalt by default to improve graphics in games running on Vulkan. (The HOME hotkey disables vkbasalt)]}":"FBTN" '@bash -c "button_click --start 120"' \
--field=" MangoHud!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable Mangohud by default (R_SHIFT + F12 keyboard shortcuts disable Mangohud)]}":"FBTN" '@bash -c "button_click --start 122"' \
--field=" dgVoodoo2!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable dgVoodoo2 by default (This wrapper fixes many compatibility and rendering issues when running old games)]}":"FBTN" '@bash -c "button_click --start 124"' \
--field=" GameScope!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable GameScope by default (Wayland micro compositor)]}":"FBTN" '@bash -c "button_click --start 126"' \
2>/dev/null &
if [[ $PW_GUI_START == "NOTEBOOK" ]] ; then
"${pw_yad}" --plug=$KEY_START --tabnum=1 --form --separator=";" $START_GUI_TYPE \
--gui-type-box="$START_GUI_TYPE_BOX" --gui-type-layout="$START_GUI_TYPE_LAYOUT_UP" \
--gui-type-text="$START_GUI_TYPE_TEXT" --gui-type-images="$START_GUI_TYPE_IMAGE" \
--image="$PW_ICON_FOR_YAD" --text-align="center" --text "$PW_COMMENT_DB" \
--field="3D API : !$INFO_3DAPI:CB" "$PW_DEFAULT_VULKAN_USE" \
--field=" WINE : !$INFO_WINE:CB" "$(combobox_fix "$PW_WINE_USE" "$PW_DEFAULT_WINE_USE")" \
--field="PREFIX : !$INFO_PREFIX:CBE" "$PW_ADD_PREFIXES_TO_GUI" \
1> "${PW_TMPFS_PATH}/tmp_yad_form_vulkan" 2>/dev/null &
"${pw_yad}" --plug=$KEY_START --tabnum=2 --form --columns="$START_GUI_NOTEBOOK_COLUMNS" --align-buttons --homogeneous-column \
--gui-type-layout="$START_GUI_TYPE_LAYOUT_NOTEBOOK" \
--field=" ${translations[Base settings]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Edit database file for]} ${PORTWINE_DB}":"FBTN" '@bash -c "button_click --start 118"' \
--field=" ${translations[Open directory]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Open directory with <b>.ppdb</b> file]}":"FBTN" '@bash -c "button_click --start open_game_folder"' \
--field=" vkBasalt!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable vkBasalt by default to improve graphics in games running on Vulkan. (The HOME hotkey disables vkbasalt)]}":"FBTN" '@bash -c "button_click --start 120"' \
--field=" MangoHud!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable Mangohud by default (R_SHIFT + F12 keyboard shortcuts disable Mangohud)]}":"FBTN" '@bash -c "button_click --start 122"' \
--field=" dgVoodoo2!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable dgVoodoo2 by default (This wrapper fixes many compatibility and rendering issues when running old games)]}":"FBTN" '@bash -c "button_click --start 124"' \
--field=" GameScope!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable GameScope by default (Wayland micro compositor)]}":"FBTN" '@bash -c "button_click --start 126"' \
2>/dev/null &
if [[ "$PW_YAD_FORM_TAB" == "1" ]] \
&& [[ -n "$TAB_START" ]]
then
@@ -623,53 +621,24 @@ if [[ -f "$portwine_exe" ]] ; then
else
export TAB_START="1"
fi
"${pw_yad}" --key=$KEY_START --notebook --active-tab="$TAB_START" \
--gui-type="settings-notebook" \
--width="$PW_START_SIZE_W" --tab-pos="$PW_TAB_POSITON" \
--title "PortProton-$install_ver (${scripts_install_ver}${BRANCH_VERSION})" --expand \
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
--tab="${translations[GENERAL]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \
--tab="${translations[SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \
--button="${translations[MAIN MENU]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Main menu]}":128 \
--button="${PW_SHORTCUT}" \
--button="${translations[DEBUG]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Launch with the creation of a .log file at the root PortProton]}":102 \
--button="${translations[LAUNCH]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Run file ...]}":106 2>/dev/null
PW_YAD_SET="$?"
export PW_YAD_FORM_TAB="1"
PW_GUI_START_TABNUM3="--notebook --active-tab=$TAB_START --gui-type=settings-notebook --expand"
elif [[ $PW_GUI_START == "PANED" ]] ; then
"${pw_yad}" --plug=$KEY_START --tabnum=1 --form --separator=";" $START_GUI_TYPE \
--gui-type-box="$START_GUI_TYPE_BOX" --gui-type-layout="$START_GUI_TYPE_LAYOUT_UP" \
--gui-type-text="$START_GUI_TYPE_TEXT" --gui-type-images="$START_GUI_TYPE_IMAGE" \
--image="$PW_ICON_FOR_YAD" --text-align="center" --text "$PW_COMMENT_DB" \
--field="3D API : !$INFO_3DAPI:CB" "$PW_DEFAULT_VULKAN_USE" \
--field=" WINE : !$INFO_WINE:CB" "$(combobox_fix "$PW_WINE_USE" "$PW_DEFAULT_WINE_USE")" \
--field="PREFIX : !$INFO_PREFIX:CBE" "$PW_ADD_PREFIXES_TO_GUI" \
1> "${PW_TMPFS_PATH}/tmp_yad_form_vulkan" 2>/dev/null &
"${pw_yad}" --plug=$KEY_START --tabnum=2 --form --columns="$START_GUI_PANED_COLUMNS" \
--gui-type-layout="$START_GUI_TYPE_LAYOUT_PANED" \
--align-buttons --homogeneous-row --homogeneous-column \
--field=" ${translations[Base settings]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Edit database file for]} ${PORTWINE_DB}":"FBTN" '@bash -c "button_click --start 118"' \
--field=" ${translations[Open directory]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Open directory with <b>.ppdb</b> file]}":"FBTN" '@bash -c "button_click --start open_game_folder"' \
--field=" vkBasalt!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable vkBasalt by default to improve graphics in games running on Vulkan. (The HOME hotkey disables vkbasalt)]}":"FBTN" '@bash -c "button_click --start 120"' \
--field=" MangoHud!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable Mangohud by default (R_SHIFT + F12 keyboard shortcuts disable Mangohud)]}":"FBTN" '@bash -c "button_click --start 122"' \
--field=" dgVoodoo2!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable dgVoodoo2 by default (This wrapper fixes many compatibility and rendering issues when running old games)]}":"FBTN" '@bash -c "button_click --start 124"' \
--field=" GameScope!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable GameScope by default (Wayland micro compositor)]}":"FBTN" '@bash -c "button_click --start 126"' \
2>/dev/null &
"${pw_yad}" --key=$KEY_START --paned \
--gui-type="settings-paned" \
--width="$PW_START_SIZE_W" --tab-pos="$PW_TAB_POSITON" \
--title "PortProton-$install_ver (${scripts_install_ver}${BRANCH_VERSION})" \
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
--button="${translations[MAIN MENU]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Main menu]}":128 \
--button="${PW_SHORTCUT}" \
--button="${translations[DEBUG]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Launch with the creation of a .log file at the root PortProton]}":102 \
--button="${translations[LAUNCH]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Run file ...]}":106 2>/dev/null
PW_YAD_SET="$?"
PW_GUI_START_TABNUM3="--paned --gui-type=settings-paned"
fi
"$pw_yad" --key=$KEY_START $PW_GUI_START_TABNUM3 \
--width="$PW_START_SIZE_W" --tab-pos="$PW_TAB_POSITON" \
--title "PortProton-$install_ver (${scripts_install_ver}${BRANCH_VERSION})" \
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
--tab="${translations[GENERAL]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \
--tab="${translations[SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \
--button="${translations[MAIN MENU]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Main menu]}":128 \
--button="${PW_SHORTCUT}" \
--button="${translations[DEBUG]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Launch with the creation of a .log file at the root PortProton]}":102 \
--button="${translations[LAUNCH]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Run file ...]}":106 2>/dev/null
PW_YAD_SET="$?"
[[ $PW_GUI_START == "NOTEBOOK" ]] && export PW_YAD_FORM_TAB="1"
case "$PW_YAD_SET" in
128)
[[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB
@@ -841,6 +810,8 @@ else
else export PW_GUI_SORT_TABS=(2 3 4 5 1)
fi
PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_SAREK!$SORT_OPENGL"
KEY_MENU="$RANDOM"
IFS="%"

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#Author: Castro-Fidel (linux-gaming.ru)
#SCRIPTS_NEXT_VERSION=2435
#SCRIPTS_NEXT_VERSION=2439
#SCRIPTS_STABLE_VERSION=2435
########################################################################
export AI_TOP_GAMES="PW_LGC PW_VKPLAY PW_EPIC PW_BATTLE_NET PW_WORLD_OF_SEA_BATTLE PW_RUSSIAN_FISHING PW_HO_YO_PLAY PW_FARLIGHT84 PW_WARFRAME PW_WGC PW_UBISOFT"
@@ -14,8 +14,8 @@ export PW_USE_RUNTIME="1"
export PW_RT_MOUNT_RO=("")
export PW_RT_MOUNT_RW=("/media" "/mnt" "/run/media/${USER}" "${PORT_WINE_PATH}")
#export PW_SANDBOX_HOME_PATH="${PORT_WINE_PATH}"
export PW_USE_ESYNC="1"
export PW_USE_FSYNC="1"
export PW_USE_ESYNC="0"
export PW_USE_FSYNC="0"
export PW_USE_NTSYNC="0"
export PW_USE_GAMEMODE="0"
export PW_USE_TERMINAL="0"
@@ -34,7 +34,6 @@ export PW_MESA_VK_WSI_PRESENT_MODE="disabled"
export PW_VKD3D_FEATURE_LEVEL="disabled"
export PW_USE_EAC_AND_BE="1"
export PW_USE_US_LAYOUT="0"
export PW_GPU_USE="disabled"
export PW_LOCALE_SELECT="disabled"
export PW_DINPUT_PROTOCOL="0"
export PW_USE_VRCLIENT="0"
@@ -45,10 +44,11 @@ export PW_USE_WINED3D_VULKAN="0"
export PW_USE_SUPPLIED_DXVK_VKD3D="1"
export PW_USE_SAREK_ASYNC="0"
export WINEUSERNAME="steamuser"
export PW_VULKAN_UNLOCKED="default"
###DEFAULT_WINE###
export PW_WINE_USE="PROTON_LG"
export PW_PLUGINS_VER="_v20"
export PW_OPTISCALER_VER="v1"
export PW_OPTISCALER_VER="v02-0.7.7-pre12"
export PW_GALLIUM_NINE_VER="0.10"
export PW_LSFG_VK_VER="3.1-p11-cebe5e2"
###WINE_AND_PROTON_LG###