Compare commits

..

No commits in common. "devel" and "devel" have entirely different histories.
devel ... devel

32 changed files with 235 additions and 597 deletions

@ -2,60 +2,6 @@ You can help us in the development of the project on the website: https://linux-
----------------------------------------
Changelog:
###Scripts version 2416### / Date: 17.05.2025 / Download update size: 4 megabytes
* fixed translation generation (thanks to Htylol)
* added the ability to download Sarek Proton (thanks to Boria138)
* when using third-party versions of PROTON, DXVK and VKD3D are used, which are supplied with them (thanks to Htylol)
###Scripts version 2415### / Date: 07.05.2025 / Download update size: 4 megabytes
* fixed installation of libraries added to the settings when starting the game
###Scripts version 2414### / Date: 07.05.2025 / Download update size: 184 megabytes
* updated WINE_LG to version "10-7"
* removed the fix for entering the game "Genshin Impact" (no longer required)
* updated the installation of GOG Launcher (thanks to Vekt0R)
* added detection of NVIDIA RTX 50XX video cards (thanks to Boria138)
* added a setting for binding the game to the cores of one NUMA node, for example, on Intel Xeon (thanks to Boria138)
* added scripts for installing windows emulators Azahar, bsnes, melonDS (thanks to if984)
* updated scripts for installing Crossout, PPSSPP, RetroArch, ePSXe, FCEUX (thanks to if984)
###Scripts version 2413### / Date: 19.04.2025 / Download update size: 4 megabytes
* fixed the start of the game "World of Sea Battle"
* fixed errors related to libraries "ICU* .DLL"
###Scripts version 2412### / Date: 14.04.2025 / Download update size: 4 megabytes
* temporary fixes of the entrance to the game "Genshin Impact" (auto shutdown and connection to the network before launching the game - does not work in Flatpak)
###Scripts version 2411### / stable / Date: 11.04.2025 / Download update size: 280 megabytes
* cumulative update to the stable version of PortProton scripts
###Scripts version 2410### / Date: 11.04.2025 / Download update size: 4 megabytes
* fixed installation/update for "Epic Games Launcher"
* fixed disabling of extra frame for "HoYoPlay" and "Crossout" launchers
###Scripts version 2409### / Date: 08.04.2025 / Download update size: 380 megabytes
* updated WINE_LG to version "10-5"
* updated container library package: libs_v53
- pressure-vessel 0.20250122.0
- steam-runtime-sniper 3.0.20250210.116596
* improved fix for new wine versions by Kron4ek (need to delete and re-download the required wine version)
* additional improvements to the tray function (thanks to Htylol)
* added a unified condition for better detection of installation files instead of Setup.ppdb (thanks to Htylol)
* removed the global settings button from the menu when starting the game
###Scripts version 2408### / Date: 08.04.2025 / Download update size: 4 megabytes
* fixed the work of new versions of Wine from Kron4ek
* fixed settings file for the game "Kingdom Come: Deliverance II"
###Scripts version 2407### / Date: 07.04.2025 / Download update size: 250 megabytes
* PROTON_LG updated to version "9-27"
* updated versions:
- DXVK_GIT "2.6-65" (together with dxvk-nvapi)
- VKD3D_GIT "1.1-4511" (together with vkd3d-shader)
* STEAM_APP_ID from ppdb is used to determine SteamAppId, if it is missing, then steam_appid (and similar) is searched for in the game directory (thanks to alex2844)
* interface translation functions are improved (thanks to Htylol)
* tray operation is fixed for systems using "dash" (thanks to Boria138)
###Scripts version 2406### / stable / Date: 22.03.2025 / Download update size: 4 megabytes
* cumulative update to the stable version of PortProton scripts

@ -2,60 +2,6 @@
-----------------------------------------
История изменений:
###Scripts version 2416### / Дата: 17.05.2025 / Размер скачиваемого обновления: 4 мегабайта
* исправлена генерация переводов (спасибо Htylol)
* добавлена возможность скачивания Sarek Proton (спасибо Boria138)
* при использовании сторонних версий PROTON используется DXVK и VKD3D, которые поставляются вместе с ними (спасибо Htylol)
###Scripts version 2415### / Дата: 07.05.2025 / Размер скачиваемого обновления: 4 мегабайта
* исправлена установка библиотек добавленных в настройки при запуске игры
###Scripts version 2414### / Дата: 07.05.2025 / Размер скачиваемого обновления: 184 мегабайта
* обновлен WINE_LG до версии "10-7"
* удален фикс входа в игру "Genshin Impact" (более не требуется)
* обновлена установка GOG Launcher (спасибо Vekt0R)
* добавлено определение видеокарт NVIDIA RTX 50XX (спасибо Boria138)
* добавлена настройка привязки игры к ядрам одного NUMA-узла например на Intel Xeon (спасибо Boria138)
* добавлены скрипты для установки windows эмуляторов Azahar, bsnes, melonDS (спасибо if984)
* обновлены скрипты для установки Crossout, PPSSPP, RetroArch, ePSXe, FCEUX (спасибо if984)
###Scripts version 2413### / Дата: 19.04.2025 / Размер скачиваемого обновления: 4 мегабайта
* исправлен запуск игры "World of Sea Battle"
* исправлены ошибки связанные с библиотеками "icu*.dll"
###Scripts version 2412### / Дата: 14.04.2025 / Размер скачиваемого обновления: 4 мегабайта
* временный фикс входа в игру "Genshin Impact" (автоотключение и подключение к сети перед запуском игры - не работает во flatpak)
###Scripts version 2411### / stable / Дата: 11.04.2025 / Размер скачиваемого обновления: 380 мегабайт
* кумулятивное обновление стабильной версии скриптов PortProton
###Scripts version 2410### / Дата: 11.04.2025 / Размер скачиваемого обновления: 4 мегабайта
* исправлена установка/обновление "Epic Games Launcher"
* исправлено отключение лишней рамки для лончеров "HoYoPlay" и "Crossout"
###Scripts version 2409### / Дата: 08.04.2025 / Размер скачиваемого обновления: 380 мегабайт
* обновлен WINE_LG до версии "10-5"
* обновлен пакет библиотек контейнера: libs_v53
- pressure-vessel 0.20250122.0
- steam-runtime-sniper 3.0.20250210.116596
* доработано исправление работы новых версий wine от Kron4ek (необходимо удалить и заново перекачать нужную версию wine)
* дополнительные улучшения функции трея (спасибо Htylol)
* за место Setup.ppdb добавлено унифицированное условие для лучшего определения установочных файлов (спасибо Htylol)
* удалена кнопка глобальных настроек из меню при запуске игры
###Scripts version 2408### / Дата: 08.04.2025 / Размер скачиваемого обновления: 4 мегабайта
* исправлена работа новых версий wine от Kron4ek
* исправлен файл настроек для игры "Kingdom Come: Deliverance II"
###Scripts version 2407### / Дата: 07.04.2025 / Размер скачиваемого обновления: 250 мегабайт
* обновлен PROTON_LG до версии "9-27"
* обновлены версии:
- DXVK_GIT "2.6-65" (совместно с dxvk-nvapi)
- VKD3D_GIT "1.1-4511" (совместно vkd3d-shader)
* для определения SteamAppId используется STEAM_APP_ID из ppdb, если отсутствует - то ищется steam_appid (и подобные) в директории с игрой (спасибо alex2844)
* улучшены функции перевода интерфейса (спасибо Htylol)
* исправлена работа трея для систем использующих "dash" (спасибо Boria138)
###Scripts version 2406### / stable / Дата: 22.03.2025 / Размер скачиваемого обновления: 4 мегабайта
* кумулятивное обновление стабильной версии скриптов PortProton
@ -74,8 +20,8 @@
###Scripts version 2402### / Дата: 13.03.2025 / Размер скачиваемого обновления: 15 мегабайт
* исправление меню глобальных настроек (user.conf) (спасибо Htylol)
* обновлены версии:
- DXVK_GIT "2.5.3-299" (совместно с dxvk-nvapi)
- VKD3D_GIT "1.1-4478" (совместно vkd3d-shader)
* DXVK_GIT "2.5.3-299" (совместно с dxvk-nvapi)
* VKD3D_GIT "1.1-4478" (совместно vkd3d-shader)
###Scripts version 2401### / Дата: 07.03.2025 / Размер скачиваемого обновления: 4 мегабайта
* HOTFIX: переключения веток DEVEL - STABLE от Htylol

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 685 B

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

@ -7,13 +7,13 @@
msgid ""
msgstr "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-09 02:05+0500\n"
"POT-Creation-Date: 2025-03-20 21:49+0300\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"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A running PortProton session was detected.\\nDo you want to end the "
@ -100,6 +100,12 @@ msgstr ""
msgid "Edit database file for"
msgstr ""
msgid "Global settings"
msgstr ""
msgid "Settings for user.conf"
msgstr ""
msgid "Open directory"
msgstr ""
@ -316,6 +322,9 @@ msgstr ""
msgid "UPDATING NOW"
msgstr ""
msgid "EXIT"
msgstr ""
msgid "Searching for .exe files... Please wait."
msgstr ""
@ -345,9 +354,6 @@ msgid "d3dadapter9.so.1.0.0 - Not found in the system.\\nInstall the "
"missing package: <b>d3dadapter9</b>"
msgstr ""
msgid "EXIT"
msgstr ""
msgid "You will need to check internet connection,and\\npress Repeat for "
"repeat download"
msgstr ""
@ -534,10 +540,6 @@ msgid "Instead of DXVK, use WineD3D vulkan (Damavand). Experimental "
"function."
msgstr ""
msgid "Use dxvk and vkd3d which are bundled with wine or proton. (Does not "
"work with PROTON_LG and WINE_LG)"
msgstr ""
msgid "Disable asynchronous calls for VULKAN and DXVK modes"
msgstr ""
@ -636,15 +638,6 @@ msgstr ""
msgid "Choosing which implementation of vulkan will be used to run the game"
msgstr ""
msgid "NUMA node for CPU affinity"
msgstr ""
msgid "In multicore systems, CPUs are split into NUMA nodes, each with its "
"own local memory and cores.\n"
"Binding a game to a single node reduces memoryaccess latency and "
"limits costly coretocore switches.)"
msgstr ""
msgid "EDIT DB"
msgstr ""
@ -1307,13 +1300,6 @@ msgstr ""
msgid "Change settings gamescope for"
msgstr ""
msgid "Gamescope is not detected on the system, to install it, run the "
"command in the terminal"
msgstr ""
msgid "Can be selected and copied"
msgstr ""
msgid "<b>Gamescope is not detected on the system, please contact the "
"manufacturer of your distribution\\nor search the Internet for "
"information on how to install gamescope on your system.</b>"

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-09 02:05+0500\n"
"POT-Creation-Date: 2025-03-20 21:49+0300\n"
"PO-Revision-Date: 2024-11-13 08:18+0500\n"
"Last-Translator: \n"
"Language-Team: \n"
@ -111,6 +111,12 @@ msgstr "Configuración básica"
msgid "Edit database file for"
msgstr "Editar archivo de base de datos para"
msgid "Global settings"
msgstr "Configuraciones globales"
msgid "Settings for user.conf"
msgstr "Configuración user.conf"
msgid "Open directory"
msgstr "Abrir directorio"
@ -348,6 +354,9 @@ msgstr "VUELVA MÁS TARDE"
msgid "UPDATING NOW"
msgstr "ACTUALIZANDO AHORA"
msgid "EXIT"
msgstr "SALIR"
msgid "Searching for .exe files... Please wait."
msgstr "Buscando archivos .exe... Por favor, espera."
@ -382,9 +391,6 @@ msgstr ""
"d3dadapter9.so.1.0.0 - No encontrado en el sistema.\n"
"Instala el paquete faltante:<b>d3dadapter9</b>"
msgid "EXIT"
msgstr "SALIR"
msgid ""
"You will need to check internet connection,and\\npress Repeat for repeat "
"download"
@ -642,13 +648,6 @@ msgstr ""
msgid "Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function."
msgstr "WineD3D Vulkan (Damavand experimental)"
msgid ""
"Use dxvk and vkd3d which are bundled with wine or proton. (Does not work "
"with PROTON_LG and WINE_LG)"
msgstr ""
"Utilice dxvk y vkd3d que vienen incluidos con wine o proton. (No funciona "
"con PROTON_LG y WINE_LG)"
msgid "Disable asynchronous calls for VULKAN and DXVK modes"
msgstr "Desactivar llamadas asíncronas para los modos VULKAN y DXVK"
@ -792,16 +791,6 @@ msgstr ""
msgid "Choosing which implementation of vulkan will be used to run the game"
msgstr ""
msgid "NUMA node for CPU affinity"
msgstr ""
msgid ""
"In multicore systems, CPUs are split into NUMA nodes, each with its own "
"local memory and cores.\n"
"Binding a game to a single node reduces memoryaccess latency and limits "
"costly coretocore switches.)"
msgstr ""
msgid "EDIT DB"
msgstr "CONFIGURACIÓN"
@ -1700,14 +1689,6 @@ msgstr ""
msgid "Change settings gamescope for"
msgstr "Cambiar ajustes gamescope para"
msgid ""
"Gamescope is not detected on the system, to install it, run the command in "
"the terminal"
msgstr ""
msgid "Can be selected and copied"
msgstr ""
msgid ""
"<b>Gamescope is not detected on the system, please contact the manufacturer "
"of your distribution\\nor search the Internet for information on how to "
@ -2177,12 +2158,6 @@ msgstr "UNIRSE"
msgid "THIRD PARTY LIBRARIES"
msgstr "BIBLIOTECAS DE TERCEROS"
#~ msgid "Global settings"
#~ msgstr "Configuraciones globales"
#~ msgid "Settings for user.conf"
#~ msgstr "Configuración user.conf"
#~ msgid ""
#~ "This program comes with absolutely no warranty.\n"
#~ "See the License for details."
@ -2208,8 +2183,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."

@ -7,17 +7,17 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-09 02:05+0500\n"
"PO-Revision-Date: 2025-04-21 21:59+0500\n"
"POT-Creation-Date: 2025-03-20 21:49+0300\n"
"PO-Revision-Date: 2025-03-20 21:50+0300\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"
"X-Generator: Poedit 3.6\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.5\n"
msgid ""
"A running PortProton session was detected.\\nDo you want to end the previous "
@ -119,6 +119,12 @@ msgstr "Основные настройки"
msgid "Edit database file for"
msgstr "Редактировать файл настроек для"
msgid "Global settings"
msgstr "Глобальные настройки"
msgid "Settings for user.conf"
msgstr "Настройки для user.conf"
msgid "Open directory"
msgstr "Открыть папку"
@ -359,6 +365,9 @@ msgstr "НАПОМНИТЬ ПОЗЖЕ"
msgid "UPDATING NOW"
msgstr "ОБНОВИТЬ СЕЙЧАС"
msgid "EXIT"
msgstr "ВЫХОД"
msgid "Searching for .exe files... Please wait."
msgstr "Поиск .exe файлов... Пожалуйста, подождите."
@ -392,9 +401,6 @@ msgstr ""
"d3dadapter9.so.1.0.0 - Не найден в системе.\\nУстановите недостающий пакет: "
"<b>d3dadapter9</b>"
msgid "EXIT"
msgstr "ВЫХОД"
msgid ""
"You will need to check internet connection,and\\npress Repeat for repeat "
"download"
@ -663,13 +669,6 @@ msgstr ""
"Вместо DXVK используется WineD3D vulkan (Дамаванд). Экспериментальная "
"функция."
msgid ""
"Use dxvk and vkd3d which are bundled with wine or proton. (Does not work "
"with PROTON_LG and WINE_LG)"
msgstr ""
"Использовать dxvk и vkd3d, которые поставляются в комплекте с wine или "
"proton. (Не работает с PROTON_LG и WINE_LG)"
msgid "Disable asynchronous calls for VULKAN and DXVK modes"
msgstr "Отключить асинхронные вызовы для режимов VULKAN и DXVK"
@ -815,18 +814,6 @@ msgstr "Выбор Vulkan драйвера для AMD"
msgid "Choosing which implementation of vulkan will be used to run the game"
msgstr "Выбор драйвера Vulkan для запуска игры"
msgid "NUMA node for CPU affinity"
msgstr "Узел NUMA для привязки к процессору"
msgid ""
"In multicore systems, CPUs are split into NUMA nodes, each with its own "
"local memory and cores.\n"
"Binding a game to a single node reduces memoryaccess latency and limits "
"costly coretocore switches.)"
msgstr ""
"Каждый NUMA-узел имеет собственную память и ядра. Привязка игры к одному "
"узлу снижает задержку и повышает производительность"
msgid "EDIT DB"
msgstr "НАСТРОЙКИ"
@ -1690,15 +1677,6 @@ msgstr ""
msgid "Change settings gamescope for"
msgstr "Изменить настройки Gamescope для"
msgid ""
"Gamescope is not detected on the system, to install it, run the command in "
"the terminal"
msgstr ""
#, fuzzy
msgid "Can be selected and copied"
msgstr "(можно выделить и скопировать)"
msgid ""
"<b>Gamescope is not detected on the system, please contact the manufacturer "
"of your distribution\\nor search the Internet for information on how to "
@ -2159,12 +2137,6 @@ msgstr "ПРИСОЕДЕНИТЬСЯ"
msgid "THIRD PARTY LIBRARIES"
msgstr "БИБЛИОТЕКИ"
#~ msgid "Global settings"
#~ msgstr "Глобальные настройки"
#~ msgid "Settings for user.conf"
#~ msgstr "Настройки для user.conf"
#~ msgid ""
#~ "This program comes with absolutely no warranty.\n"
#~ "See the License for details."
@ -2381,6 +2353,9 @@ msgstr "БИБЛИОТЕКИ"
#~ msgid "MIT License"
#~ msgstr "Лицензия Массачусетского технологического института (MIT License)"
#~ msgid "(Can be selected and copied)"
#~ msgstr "(можно выделить и скопировать)"
#~ msgid "Copyright"
#~ msgstr "Авторские права"

@ -51,12 +51,17 @@ getAppExe() {
getAppTarget() {
exe=$(getAppExe "$1")
[[ -n "${exe}" ]] && parseSteamTargetExe "${exe}"
if [[ -n "${exe}" ]]; then
if [[ "${exe}" =~ .sh$ ]]; then
parseSteamTargetExe "${exe}"
else
echo "${exe}";
fi
fi
}
getSteamGameId() {
# printf "%u\n" $(($1 << 32 | 0x02000000))
printf "%u\n" $(($1 * 4294967296 + 0x02000000))
printf "%u\n" $(($1 << 32 | 0x02000000))
}
getAppId() {
@ -68,32 +73,15 @@ getSteamId() {
local cache_file="${PORT_WINE_TMP_PATH:-/tmp}/steamid_cache.json"
local applist_cache_file="${PORT_WINE_TMP_PATH:-/tmp}/steamapplist_cache.json"
[[ -n "${1:-}" ]] && NOSTAPPNAME="$1"
[[ -z "${NOSTAPPNAME}" ]] && return 1
if [[ -z "${SteamIds:-}" ]] && [[ -f "${cache_file}" ]]; then
SteamIds=$(<"${cache_file}")
fi
if [[ -n "${1:-}" ]] && [[ -n "${SteamIds:-}" ]] && jq -e --arg key "${NOSTAPPNAME}" 'has($key)' <<< "${SteamIds}" > /dev/null; then
if [[ -n "${SteamIds:-}" ]] && jq -e --arg key "${NOSTAPPNAME}" 'has($key)' <<< "${SteamIds}" > /dev/null; then
SteamAppId=$(jq -r --arg key "${NOSTAPPNAME}" '.[$key]' <<< "${SteamIds}")
else
if [[ -n "${2:-}" ]]; then
NOSTAPPPATH="$2"
[[ -f "${NOSTAPPPATH}.ppdb" ]] && source "${NOSTAPPPATH}.ppdb"
if [[ -n "${1:-}" ]] && [[ "${USE_STEAMGRIDDB:-1}" == "1" ]]; then
getSteamGridDBId "${NOSTAPPNAME}" > /dev/null
fi
[[ -n "${STEAM_APP_ID:-}" ]] && SteamAppId="${STEAM_APP_ID}"
if [[ -z "${SteamAppId:-}" ]] && [[ -n "${NOSTAPPPATH:-}" ]]; then
local paths=("steam_appid.txt" "steam_emu.ini" "steam_api.ini" "steam_api64.ini")
local conditions=$(printf " -o -name %q" "${paths[@]}")
local file=$(find "$(dirname "${NOSTAPPPATH}")" -type f \( ${conditions# -o} \) -print -quit 2>/dev/null)
if [[ -n "${file}" ]]; then
if [[ "${file}" == *"steam_appid.txt" ]]; then
SteamAppId=$(cat "${file}" | tr -d '\r\n')
else
SteamAppId=$(grep -i "^AppId=" "${file}" | cut -d'=' -f2 | head -1 | tr -d '\r\n')
fi
fi
fi
if [[ -z "${SteamAppId:-}" ]]; then
[[ "${USE_STEAMGRIDDB:-1}" == "1" ]] && getSteamGridDBId "${NOSTAPPNAME}" > /dev/null
if [[ ${SteamGridDBTypeSteam} == true ]]; then
SRES=$(curl -Ls --connect-timeout 5 -m 10 -e "https://www.steamgriddb.com/game/${SteamGridDBId}" "https://www.steamgriddb.com/api/public/game/${SteamGridDBId}")
if jq -e ".success == true" <<< "${SRES}" > /dev/null 2>&1; then
@ -108,7 +96,6 @@ getSteamId() {
fi
[[ -n "${applist_data}" ]] && SteamAppId=$(jq --arg name "${NOSTAPPNAME,,}" '.applist.apps[] | select(.name == $name) | .appid' <<< "${applist_data,,}")
fi
fi
SteamIds=$(jq --arg key "${NOSTAPPNAME}" --arg value "${SteamAppId:-}" '. + {($key): $value}' <<< "${SteamIds:-$(jq -n '{}')}")
echo "${SteamIds}" > "${cache_file}"
fi
@ -191,7 +178,11 @@ getUserPath() {
}
getSteamPath() {
local paths=("${HOME}/.steam/steam" "${HOME}/.local/share/Steam" "${HOME}/.var/app/com.valvesoftware.Steam/.steam/steam")
local paths=(
"${HOME}/.steam/steam"
"${HOME}/.local/share/Steam"
"${HOME}/.var/app/com.valvesoftware.Steam/.steam/steam"
)
for path in "${paths[@]}"; do
if [[ -d "${path}" ]]; then
STEAM_BASE_FOLDER="${path}"
@ -246,8 +237,7 @@ listSteamGames() {
appid="${name}"
name=$(basename "${exe}" .sh)
else
path="$(parseSteamTargetExe "${exe}")"
appid="$(getSteamId "${name}" "${path}")"
appid="$(getSteamId "${name}")"
[[ -z "${appid}" ]] && appid="0"
fi
gid="$(getSteamGameId $id)"
@ -312,15 +302,13 @@ parseSteamShortcutEntryLaunchOptions() {
}
parseSteamTargetExe() {
if [[ "$1" =~ .sh$ ]]; then
grep -E '^[^# ]*?(flatpak|start\.sh)' "$1" | head -n 1 | sed 's/ "\$@"//' | awk -F'"' '{print $(NF-1)}'
fi
}
restartSteam() {
if [[ "${PW_SKIP_RESTART_STEAM}" != 1 ]] && pgrep -i steam &>/dev/null ; then
if yad_question "For adding shortcut to STEAM, needed restart.\\n\\nRestart STEAM now?" ; then
pw_start_progress_bar_block "Restarting STEAM... Please wait."
if yad_question "${translations[For adding shortcut to STEAM, needed restart.\\n\\nRestart STEAM now?]}" ; then
pw_start_progress_bar_block "${translations[Restarting STEAM... Please wait.]}"
kill -s SIGTERM $(pgrep -a steam) &>/dev/null
while pgrep -i steam &>/dev/null ; do
sleep 0.5
@ -345,6 +333,9 @@ downloadImage() {
}
downloadImageSteam() {
if [[ -z "${SteamAppId}" ]]; then
getSteamId > /dev/null
fi
if [[ -n "${SteamAppId}" ]]; then
downloadImage "https://cdn.cloudflare.steamstatic.com/steam/apps/${SteamAppId}/$1" "$2"
else
@ -372,22 +363,16 @@ downloadImageSteamGridDB() {
}
addGrids() {
local AppId="${NOSTAPPID:-0}"
local in=("header.jpg" "library_600x900_2x.jpg" "library_hero.jpg" "logo.png")
local out=("${AppId}.jpg" "${AppId}"p".jpg" "${AppId}"_hero".jpg" "${AppId}"_logo".png")
local gtype=("grids" "grids" "heroes" "logos")
local mimes=("image/jpeg" "image/jpeg" "image/jpeg" "image/png")
local dims=("460x215,920x430" "600x900,660x930" "" "")
if [[ -z "${SteamGridDBId}" ]] && [[ -z "${SteamAppId}" ]]; then
[[ -z "${SteamGridDBId}" ]] && getSteamGridDBId "${name_desktop}" > /dev/null
if [[ -z "${SteamAppId}" ]] && [[ "${USE_STEAMGRIDDB:-1}" == "0" ]]; then
getSteamId > /dev/null
fi
if [[ -n "${SteamGridDBId}" ]] || [[ -n "${SteamAppId}" ]]; then
create_new_dir "${STCFGPATH}/grid"
for i in "${!in[@]}"; do
downloadImageSteam "${in[${i}]}" "${out[${i}]}" || \
downloadImageSteamGridDB "${gtype[${i}]}" "${out[${i}]}" ${mimes[${i}]:+"mimes=${mimes[${i}]}"} ${dims[${i}]:+"dimensions=${dims[${i}]}"} || \
echo "Failed to load ${in[${i}]}"
done
downloadImageSteamGridDB "grids" "${NOSTAPPID:-0}.jpg" "mimes=image/jpeg" "dimensions=460x215,920x430" || downloadImageSteam "header.jpg" "${NOSTAPPID:-0}.jpg" || echo "Failed to load header.jpg"
downloadImageSteamGridDB "grids" "${NOSTAPPID:-0}p.jpg" "mimes=image/jpeg" "dimensions=600x900,660x930" || downloadImageSteam "library_600x900_2x.jpg" "${NOSTAPPID:-0}p.jpg" || echo "Failed to load library_600x900_2x.jpg"
downloadImageSteamGridDB "heroes" "${NOSTAPPID:-0}_hero.jpg" "mimes=image/jpeg" || downloadImageSteam "library_hero.jpg" "${NOSTAPPID:-0}_hero.jpg" || echo "Failed to load library_hero.jpg"
downloadImageSteamGridDB "logos" "${NOSTAPPID:-0}_logo.png" "mimes=image/png" || downloadImageSteam "logo.png" "${NOSTAPPID:-0}_logo.png" || echo "Failed to load logo.png"
else
echo "Game is not found"
fi
@ -489,7 +474,6 @@ addNonSteamGame() {
if [[ -n "${SCPATH}" ]]; then
[[ -z "${NOSTSHPATH}" ]] && NOSTSHPATH="${STEAM_SCRIPTS}/${name_desktop}.sh"
NOSTAPPNAME="${name_desktop}"
NOSTAPPPATH="${portwine_exe}"
NOSTAPPID=$(getAppId "${NOSTSHPATH}")
if [[ ! -f "${NOSTSHPATH}" ]]; then
create_new_dir "${STEAM_SCRIPTS}"
@ -498,7 +482,7 @@ addNonSteamGame() {
export LD_PRELOAD=
export START_FROM_STEAM=1
export START_FROM_FLATPAK=$(check_flatpak && echo 1 || echo 0)
"${PORT_SCRIPTS_PATH}/start.sh" "${NOSTAPPPATH}" "\$@"
"${PORT_SCRIPTS_PATH}/start.sh" "${portwine_exe}" "\$@"
EOF
chmod u+x "${NOSTSHPATH}"
fi
@ -514,7 +498,7 @@ addNonSteamGame() {
fi
if [[ "${USE_STEAMAPPID_AS_NAME:-0}" == "1" ]]; then
getSteamId > /dev/null
SteamAppId=$(getSteamId "${NOSTAPPNAME}")
[[ -n "${SteamAppId}" ]] && NOSTAPPNAME="${SteamAppId}"
fi
@ -522,7 +506,7 @@ addNonSteamGame() {
if [[ "${DOWNLOAD_STEAM_GRID}" == "1" ]] ; then
NOSTAPPNAME="${name_desktop}"
pw_start_progress_bar_block "Please wait. downloading covers for ${NOSTAPPNAME}"
pw_start_progress_bar_block "${translations[Please wait. downloading covers for]} ${NOSTAPPNAME}"
addGrids
pw_stop_progress_bar
fi

@ -203,8 +203,8 @@ generate_pot () {
local FILES_FOR_GETTEXT i
FILES_FOR_GETTEXT=(functions_helper start.sh setup.sh add_in_steam.sh)
for i in "${FILES_FOR_GETTEXT[@]}" ; do
sed -e 's/{translations\[/(gettext \"/g' -e 's/]}/")/g' "${PORT_SCRIPTS_PATH}/$i" > "${PORT_SCRIPTS_PATH}/${i}_tmp"
sed -i '/\[\$/d' "${PORT_SCRIPTS_PATH}/${i}_tmp"
sed -e 's/{translations\[/(gettext \"/g' -e 's/]}/")/g' -e 's/eval_translations/gettext/g' \
"${PORT_SCRIPTS_PATH}/$i" > "${PORT_SCRIPTS_PATH}/${i}_tmp"
done
#Когда присходит предупреждение: синтаксис $"..." запрещен по соображениям безопасности; используйте eval_gettext
#и ругается на строку в которой нет перевода, можно использовать sed -i '//d' и убрать эту строку
@ -240,6 +240,15 @@ generate_pot () {
}
export -f generate_pot
eval_translations () {
# Для того чтобы раскрывать переменную уже после создания массива
# Вместо {translations[\$TEST text]} нужно (eval_translations "\$%TEST% text" "TEST=test"), перевод должен быть с %% тоже
# В остальных случаях можно использовать {translations[\$TEST text]} ,но переменную нужно обьявлять до создания массива
# до source "${PW_CACHE_LANG_PATH}/$LANGUAGE" или можно использовать команды {translations[\$(cat file.txt) text]}
# но тогда выполнение команды будет происходить во время создания массива всегда, а не там где это требуется
echo "${translations[$1]//\$*"%"/${2//*=/}}"
}
create_translations () {
local po_file msgid msgstr
[[ ! -d $PW_CACHE_LANG_PATH ]] && create_new_dir "$PW_CACHE_LANG_PATH"
@ -665,6 +674,7 @@ var_winedlloverride_update () {
export WINEDLLOVERRIDES="${1}${WINEDLLOVERRIDES:+;$WINEDLLOVERRIDES}"
}
var_vkd3d_config_update () {
if echo "$VKD3D_CONFIG" | grep "$1"
then return 0
@ -1652,9 +1662,10 @@ init_wine_ver () {
if [[ -d "${WINEDIR}" ]] ; then
[[ ! -f "${WINEDIR}/version" ]] && echo "${PW_WINE_USE}" > "${WINEDIR}/version"
if [[ ! -d "${WINEDIR}/lib64/wine" ]] && [[ -d "${WINEDIR}/lib/wine/x86_64-unix" ]] ; then
create_new_dir "${WINEDIR}/lib64/"
try_force_link_dir "${WINEDIR}/lib/wine/" "${WINEDIR}/lib64/"
if [[ ! -d "${WINEDIR}/lib64/" ]] && [[ -d "${WINEDIR}/lib/wine/x86_64-unix" ]] ; then
create_new_dir "${WINEDIR}/lib64/wine"
mv -f "${WINEDIR}/lib/wine/x86_64-unix" "${WINEDIR}/lib64/wine/"
mv -f "${WINEDIR}/lib/wine/x86_64-windows" "${WINEDIR}/lib64/wine/"
fi
for mono_gecko_chk in "mono" "gecko" ; do
@ -1686,16 +1697,14 @@ init_wine_ver () {
fi
fi
WINEDLLPATH="${WINEDIR}/lib/wine"
[[ ! -L "${WINEDIR}/lib64/wine" ]] && WINEDLLPATH+=":${WINEDIR}/lib64/wine"
[[ -d "${PATH_TO_GAME}" ]] && WINEDLLPATH+=":${PATH_TO_GAME}"
export WINEDLLPATH
export WINEDLLPATH="${WINEDIR}/lib64/wine:${WINEDIR}/lib/wine"
if [[ -d "${PATH_TO_GAME}" ]] ; then
export WINEDLLPATH+=":${PATH_TO_GAME}"
fi
fi
if ! check_flatpak ; then
WINE_LIBRARY_PATH="${WINEDIR}/lib"
[[ -d "${WINEDIR}/lib64/gstreamer-1.0" ]] && WINE_LIBRARY_PATH+=":${WINEDIR}/lib64"
export WINE_LIBRARY_PATH
export WINE_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib"
fi
export MEDIACONV_BLANK_VIDEO_FILE="${WINEDIR}"/share/media/blank.mkv
@ -1932,10 +1941,18 @@ pw_kill_autostart () {
export -f pw_kill_autostart
pw_exit_tray () {
read -r -a PGREP_TRAY_GUI_PP < <(pgrep -a tray_gui_pp)
[[ -n ${PGREP_TRAY_GUI_PP[0]} ]] && kill -s SIGUSR1 "${PGREP_TRAY_GUI_PP[0]}" 2>/dev/null
read -r -a PGREP_YAD_GUI_PP < <(pgrep -a yad_gui_pp)
[[ -n ${PGREP_YAD_GUI_PP[0]} ]] && kill -s SIGUSR1 "${PGREP_YAD_GUI_PP[0]}" 2>/dev/null
if [[ "$XDG_SESSION_TYPE" == "tty" ]] ; then
if [[ -n "$(pgrep -a yad_gui_pp | grep "\--notification" | awk '{print $1}')" ]] ; then
kill -s SIGUSR1 "$(pgrep -a yad_gui_pp | grep "\--notification" | awk '{print $1}')"
fi
else
if [[ -n "$(pgrep -a tray_gui_pp)" ]] ; then
kill -s SIGUSR1 $(pgrep -a tray_gui_pp) 2>/dev/null
fi
fi
if [[ -n "$(pgrep -a yad_gui_pp)" ]] ; then
kill -s SIGUSR1 $(pgrep -a yad_gui_pp) 2>/dev/null
fi
}
export -f pw_exit_tray
@ -2301,8 +2318,6 @@ check_nvidia_rtx () {
[[ "$LSPCI_VGA" == *GA[0-9]* ]] && return 0
# Ada_Lovelace
[[ "$LSPCI_VGA" == *AD[0-9]* ]] || [[ "$LSPCI_VGA" == *2[6-8][0-9]* ]] && return 0
# Blackwell and Blackwell 2.0
[[ "$LSPCI_VGA" == *GB[0-9]* ]] && return 0
fi
return 1
}
@ -2454,6 +2469,7 @@ pw_init_db () {
;;
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
@ -2754,7 +2770,6 @@ pw_skip_get_info () {
export LSPCI_VGA
fi
# TODO: Add NVIDIA Smooth Motion
if check_nvidia_rtx ; then
check_variables PW_USE_NVAPI_AND_DLSS "1"
check_variables PW_USE_FAKE_DLSS "0"
@ -3059,7 +3074,6 @@ pw_create_unique_exe () {
else
print_warning "There are no arguments for creating a symbolic link! Skip it..."
fi
try_remove_file "${portwine_exe}.ppdb"
popd || fatal
fi
}
@ -3186,7 +3200,6 @@ start_portwine () {
done
LIST_ICU_DLL_LINKS="icuin68 icuuc68 icudt68"
[[ -d "${WINEDIR}/lib/icu32" ]] && mv "${WINEDIR}/lib/icu32" "${WINEDIR}/lib/icu"
for dll in $LIST_ICU_DLL_LINKS ; do
if [[ -f "${WINEDIR}/lib/icu/${dll}.dll" ]] ; then
try_force_link_file "${WINEDIR}/lib/icu/${dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${dll}.dll"
@ -3689,40 +3702,6 @@ start_portwine () {
fi
fi
if [[ $PW_USE_SUPPLIED_DXVK_VKD3D == "1" ]] \
&& [[ ! $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] \
&& [[ ! $PW_VULKAN_USE =~ (0|3) ]] \
&& [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d9.dll" ]] ; then
if [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d10.dll" && -f "${WINEDIR}/lib64/wine/dxvk/d3d10_1.dll" ]] ; then
CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi"
CP_WINE_FILES=""
else
CP_DXVK_FILES="d3d11 d3d10core d3d9 dxgi"
CP_WINE_FILES="d3d10_1 d3d10"
fi
if [[ $PW_DGVOODOO2 != "1" ]] ; then
if [[ -f "${WINEDIR}/lib64/wine/d8vk/d3d8.dll" ]] ; then
try_force_link_file "${WINEDIR}/lib/wine/d8vk/d3d8.dll" "${WINEPREFIX}/drive_c/windows/syswow64/d3d8.dll"
try_force_link_file "${WINEDIR}/lib64/wine/d8vk/d3d8.dll" "${WINEPREFIX}/drive_c/windows/system32/d3d8.dll"
var_winedlloverride_update "d3d8=n"
elif [[ -f "${WINEDIR}/lib64/wine/dxvk/d3d8.dll" ]]
then add_to_var CP_DXVK_FILES "d3d8"
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" ]] ; 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"
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
else
PW_USE_SUPPLIED_DXVK_VKD3D="0"
fi
# DGVOODOO2 enable:
if [[ "${PW_DGVOODOO2}" == "1" ]] ; then
print_info "Try create symlink DGVOODOO2 files..."
@ -3736,10 +3715,6 @@ start_portwine () {
try_force_link_file "${PATH_TO_DGV2_FILES}/x64/d3d9.dll" "${WINEPREFIX}/drive_c/windows/system32/d3d9.dll"
try_remove_file "${WINEPREFIX}/drive_c/windows/system32/dgVoodoo.conf"
try_force_link_file "${DGV2CONF}" "${WINEPREFIX}/drive_c/windows/system32/dgVoodoo.conf"
if [[ $PW_USE_SUPPLIED_DXVK_VKD3D == "1" ]] ; then
rm_from_var CP_DXVK_FILES "d3d9"
else
case "${PW_VULKAN_USE}" in
0)
rm_from_var CP_WINE_FILES "d3d9 d3d8"
@ -3761,7 +3736,6 @@ start_portwine () {
;;
esac
fi
fi
if [[ "${PW_DGV2_GLIDE_NAPALM}" == "1" ]] ; then
rm_from_var CP_DGV2_FILES "glide3x"
@ -3951,17 +3925,14 @@ start_portwine () {
if [[ -n "$CP_DXVK_FILES" ]] ; then
print_info "Try create symlink DXVK files..."
for wine_dxvk_dll in $CP_DXVK_FILES ; do
if [[ $PW_USE_SUPPLIED_DXVK_VKD3D == "1" ]] ; then
try_force_link_file "${WINEDIR}/lib/wine/dxvk/${wine_dxvk_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_dxvk_dll}.dll"
try_force_link_file "${WINEDIR}/lib64/wine/dxvk/${wine_dxvk_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_dxvk_dll}.dll"
else
if [[ -f "${PATH_TO_DXVK_FILES}/x64/${wine_dxvk_dll}.dll" ]] ; then
try_force_link_file "${PATH_TO_DXVK_FILES}/x32/${wine_dxvk_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_dxvk_dll}.dll"
try_force_link_file "${PATH_TO_DXVK_FILES}/x64/${wine_dxvk_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_dxvk_dll}.dll"
fi
if [[ $PW_USE_FAKE_DLSS_3 == "1" ]] && [[ $wine_dxvk_dll == "dxgi" ]]
if [[ "$PW_USE_FAKE_DLSS_3" == "1" ]] && [[ "$wine_dxvk_dll" == dxgi ]]
then var_winedlloverride_update "dxgi=n,b"
else var_winedlloverride_update "${wine_dxvk_dll}=n"
fi
fi
done
create_new_dir "${PATH_TO_DXVK_FILES}/dxvk_cache"
export DXVK_STATE_CACHE_PATH="${PATH_TO_DXVK_FILES}"/dxvk_cache
@ -3970,15 +3941,9 @@ start_portwine () {
if [[ "$DXVK_ENABLE_NVAPI" == "1" ]] ; then
print_info "Try create symlink NVAPI files..."
if [[ $PW_USE_SUPPLIED_DXVK_VKD3D == "1" ]] && [[ -f "${WINEDIR}/lib64/wine/nvapi/nvapi64.dll" ]] ; then
try_force_link_file "${WINEDIR}/lib/wine/nvapi/nvapi.dll" "${WINEPREFIX}/drive_c/windows/syswow64/nvapi.dll"
try_force_link_file "${WINEDIR}/lib64/wine/nvapi/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvapi64.dll"
try_force_link_file "${WINEDIR}/lib64/wine/nvapi/nvofapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvofapi64.dll"
else
try_force_link_file "${PATH_TO_DXVK_FILES}/x32/nvapi.dll" "${WINEPREFIX}/drive_c/windows/syswow64/nvapi.dll"
try_force_link_file "${PATH_TO_DXVK_FILES}/x64/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvapi64.dll"
try_force_link_file "${PATH_TO_DXVK_FILES}/x64/nvofapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvofapi64.dll"
fi
var_winedlloverride_update "nvapi64,nvofapi64,nvapi=n;nvcuda=b"
else
try_remove_file "${WINEPREFIX}/drive_c/windows/syswow64/nvapi.dll"
@ -3989,20 +3954,11 @@ start_portwine () {
if [[ -n "$CP_VKD3D_FILES" ]] ; then
print_info "Try create symlink VKD3D files..."
for wine_vkd3d_dll in $CP_VKD3D_FILES ; do
if [[ $PW_USE_SUPPLIED_DXVK_VKD3D == "1" ]] ; then
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
else
if [[ -f "${PATH_TO_VKD3D_FILES}/x64/${wine_vkd3d_dll}.dll" ]] ; then
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"
fi
var_winedlloverride_update "${wine_vkd3d_dll}=n"
fi
done
create_new_dir "${PATH_TO_VKD3D_FILES}/vkd3d_cache"
export VKD3D_SHADER_CACHE_PATH="${PATH_TO_VKD3D_FILES}/vkd3d_cache"
@ -4151,7 +4107,7 @@ start_portwine () {
echo "Try to install DLL in prefix: ${PW_DLL_NEED_INSTALL}" >> "${PW_TMPFS_PATH}/update_pfx_log"
print_info "Try to install DLL in prefix: ${PW_DLL_NEED_INSTALL}"
${pw_runtime} LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" GST_PLUGIN_SYSTEM_PATH_1_0="" \
"${PORT_WINE_TMP_PATH}/winetricks" -q -f ${PW_DLL_NEED_INSTALL} | tee -a "${PW_TMPFS_PATH}/update_pfx_log"
"${PORT_WINE_TMP_PATH}/winetricks" -q -r -f ${PW_DLL_NEED_INSTALL} | tee -a "${PW_TMPFS_PATH}/update_pfx_log"
wait_wineserver
kill_portwine
fi
@ -4203,6 +4159,7 @@ start_portwine () {
get_and_set_reg_file --delete 'Software\Wine\Drivers' 'Graphics'
fi
case "$PW_SOUND_DRIVER_USE" in
pulse) get_and_set_reg_file --add 'Software\Wine\Drivers' 'Audio' 'REG_SZ' "pulse" "user" ;;
alsa) get_and_set_reg_file --add 'Software\Wine\Drivers' 'Audio' 'REG_SZ' "alsa" "user" ;;
@ -4378,6 +4335,7 @@ pw_run () {
if file "$portwine_exe" | grep -q "x86-64" ; then
print_info "file: $portwine_exe is x86-64, force set WINE_LARGE_ADDRESS_AWARE to 0"
export WINE_LARGE_ADDRESS_AWARE="0"
export WINELOADER="${WINELOADER}64"
else
print_info "file: $portwine_exe not x86-64, force set WINE_LARGE_ADDRESS_AWARE to 1"
export WINE_LARGE_ADDRESS_AWARE="1"
@ -4390,7 +4348,7 @@ pw_run () {
PW_LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}"
print_var "WINEDIR" "WINEPREFIX" "WINEDLLOVERRIDES" "PATH_TO_GAME" "PW_WINE_USE" "PW_VULKAN_USE" "VULKAN_DRIVER_NAME"
print_var "WINELOADER" "VKD3D_CONFIG" "PW_LD_LIBRARY_PATH" "PATH" "WINEESYNC" "WINEFSYNC" "WINEFSYNC_FUTEX2"
print_var "WINEDLLPATH" "WINE_CPU_TOPOLOGY" "PW_RUN_GAMESCOPE" "LD_LIBRARY_PATH" "PW_VK_ICD_FILENAMES" "PW_TASKSET_SLR"
print_var "WINEDLLPATH" "WINE_CPU_TOPOLOGY" "PW_RUN_GAMESCOPE" "LD_LIBRARY_PATH" "PW_VK_ICD_FILENAMES"
proxy_launch_parameters=${LAUNCH_PARAMETERS//\\\\/\\}
if [[ "$PW_USE_RUNTIME" == 1 ]] \
&& [[ "$PW_WINE_USE" != "USE_SYSTEM_WINE" ]]
@ -4405,8 +4363,7 @@ pw_run () {
print_info "Log from RUNTIME and WINE:"
${PW_RUN_GAMESCOPE} \
${PW_POWERPROFILECTL_SLR} \
${PW_INHIBIT_SLR} \
${PW_TASKSET_SLR} \
${PW_INHIBIT_SLR}\
${pw_runtime} \
LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
LD_PRELOAD="${PW_LD_PRELOAD}" \
@ -4425,8 +4382,7 @@ pw_run () {
echo "Log WINE:" > "${PW_LOG_TO_FILE}"
${PW_RUN_GAMESCOPE} \
${PW_POWERPROFILECTL_SLR} \
${PW_INHIBIT_SLR} \
${PW_TASKSET_SLR} \
${PW_INHIBIT_SLR}\
${pw_runtime} \
LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
LD_PRELOAD="${PW_LD_PRELOAD}" \
@ -4462,8 +4418,7 @@ pw_run () {
${PW_POWERPROFILECTL_SLR} \
${PW_MANGOHUD_SLR} \
${PW_DISPLAY} \
${PW_INHIBIT_SLR} \
${PW_TASKSET_SLR} \
${PW_INHIBIT_SLR}\
"${WINELOADER}" "$@" ${proxy_launch_parameters} &>>"${PW_LOG_TO_FILE}"
wait_wineserver
else
@ -4482,8 +4437,7 @@ pw_run () {
${PW_POWERPROFILECTL_SLR} \
${PW_MANGOHUD_SLR} \
${PW_DISPLAY} \
${PW_INHIBIT_SLR} \
${PW_TASKSET_SLR} \
${PW_INHIBIT_SLR}\
"${WINELOADER}" "$@" ${proxy_launch_parameters}
wait_wineserver
fi
@ -4839,7 +4793,7 @@ open_changelog () {
export -f open_changelog
pw_tray_icon () {
if [[ "$XDG_SESSION_TYPE" == "tty" || "$(readlink -f /bin/sh)" == *"/dash" ]] ; then
if [[ "$XDG_SESSION_TYPE" == "tty" ]] ; then
if [[ -n "$(pgrep -a yad_gui_pp | grep "\--notification" | awk '{print $1}')" ]] ; then
kill -s SIGUSR1 "$(pgrep -a yad_gui_pp | grep "\--notification" | awk '{print $1}')"
fi
@ -4865,7 +4819,7 @@ pw_tray_icon () {
}
export -f tray_icon_click_exit
if [[ "$XDG_SESSION_TYPE" == "tty" || "$(readlink -f /bin/sh)" == *"/dash" ]] ; then
if [[ "$XDG_SESSION_TYPE" == "tty" ]] ; then
tray_icon_click () {
echo ""
}
@ -4891,7 +4845,6 @@ gui_proton_downloader () {
try_remove_file "${PW_TMPFS_PATH}/tmp_proton_pw_git"
try_remove_file "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git"
try_remove_file "${PW_TMPFS_PATH}/tmp_proton_cachyos_git"
try_remove_file "${PW_TMPFS_PATH}/tmp_proton_sarek_git"
try_remove_file "${PW_TMPFS_PATH}/tmp_proton_ge_git"
try_remove_file "${PW_TMPFS_PATH}/tmp_wine_ge_custom_git"
try_remove_file "${PW_TMPFS_PATH}/tmp_installed_wine"
@ -4957,14 +4910,6 @@ gui_proton_downloader () {
done
fi
# PROTON_SAREK
read -r -d '' -a PROTON_SAREK_GIT < <(curl -s "https://api.github.com/repos/pythonlover02/Proton-Sarek/releases" | grep "browser_download_url.*\.tar\.gz" | cut -d \" -f 4)
if [[ -n "${PROTON_SAREK_GIT[0]}" ]] ; then
for PGEGIT in "${PROTON_SAREK_GIT[@]}" ; do
echo "${PGEGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.gz//' >> "${PW_TMPFS_PATH}/tmp_proton_sarek_git"
done
fi
pw_stop_progress_bar
if [[ -z "${PROTON_PW_GIT}" ]] ; then
@ -4976,7 +4921,7 @@ gui_proton_downloader () {
for INSTALLING_VERSION_IN_DIST in * ; do
sed -i "/${INSTALLING_VERSION_IN_DIST}$/Id" "${PW_TMPFS_PATH}/tmp_proton_pw_git" \
"${PW_TMPFS_PATH}/tmp_proton_ge_git" "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git" \
"${PW_TMPFS_PATH}/tmp_wine_ge_custom_git" "${PW_TMPFS_PATH}/tmp_proton_cachyos_git" "${PW_TMPFS_PATH}/tmp_proton_sarek_git"
"${PW_TMPFS_PATH}/tmp_wine_ge_custom_git" "${PW_TMPFS_PATH}/tmp_proton_cachyos_git"
done
popd 1>/dev/null || fatal
@ -4985,7 +4930,6 @@ gui_proton_downloader () {
TMP_PROTON_KR_GIT="$(sed 's/^/FALSE /' "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git" | tr '\n' ' ')"
TMP_PROTON_CU_GIT="$(sed 's/^/FALSE /' "${PW_TMPFS_PATH}/tmp_wine_ge_custom_git" | tr '\n' ' ')"
TMP_PROTON_CACHYOS_GIT="$(sed 's/^/FALSE /' "${PW_TMPFS_PATH}/tmp_proton_cachyos_git" | tr '\n' ' ')"
TMP_PROTON_SAREK_GIT="$(sed 's/^/FALSE /' "${PW_TMPFS_PATH}/tmp_proton_sarek_git" | tr '\n' ' ')"
ls -l ${PORT_WINE_PATH}/data/dist | awk '{print $9}' | sed -e "/$PW_PROTON_LG_VER/d" -e "/$PW_WINE_LG_VER/d" -e '/^$/d' 1>"${PW_TMPFS_PATH}/tmp_installed_wine"
TMP_INSTALLED_WINE="$(sed 's/^/FALSE /' "${PW_TMPFS_PATH}/tmp_installed_wine" | tr '\n' ' ')"
@ -5037,14 +4981,6 @@ gui_proton_downloader () {
"${pw_yad}" --plug=$KEY_WINE --tabnum=6 --list --checklist --separator="" \
--gui-type-layout="${NOTEBOOK_GUI_TYPE_LAYOUT}" --gui-type-text="${NOTEBOOK_GUI_TYPE_TEXT}" \
--column "${translations[Set]}" \
--column "${translations[Select WINE for download:]}" \
$TMP_PROTON_SAREK_GIT \
1>> "${PW_TMPFS_PATH}/tmp_set_wine" \
2>/dev/null &
"${pw_yad}" --plug=$KEY_WINE --tabnum=7 --list --checklist --separator="" \
--gui-type-layout="${NOTEBOOK_GUI_TYPE_LAYOUT}" --gui-type-text="${NOTEBOOK_GUI_TYPE_TEXT}" \
--column "${translations[Set]}" \
--column "${translations[Select installed WINE for delete:]}" \
$TMP_INSTALLED_WINE \
1> "${PW_TMPFS_PATH}/tmp_installed_wine_set" \
@ -5059,7 +4995,6 @@ gui_proton_downloader () {
--tab="PROTON-GE!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \
--tab="WINE-GE-CUSTOM!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \
--tab="PROTON-CACHYOS!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \
--tab="PROTON-SAREK!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \
--tab="${translations[INSTALLED]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \
--button="${translations[CANCEL]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!":1 \
--button="${translations[OK]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!":0 2>/dev/null
@ -5130,7 +5065,7 @@ gui_proton_downloader () {
if [[ "$1" != "silent" ]] ; then
for GIVE_ALL_WINE in ${VERSION_WINE_GIT} ; do
for GIVE_WINE_URL in "${WINE_GE_CUSTOM[@]}" "${PROTON_GE_GIT[@]}" "${WINE_KRON4EK[@]}" "${PROTON_PW_GIT[@]}" "${PROTON_CACHYOS_GIT[@]}" "${PROTON_SAREK_GIT[@]}" ; do
for GIVE_WINE_URL in "${WINE_GE_CUSTOM[@]}" "${PROTON_GE_GIT[@]}" "${WINE_KRON4EK[@]}" "${PROTON_PW_GIT[@]}" "${PROTON_CACHYOS_GIT[@]}" ; do
if [[ ${GIVE_WINE_URL^^} =~ ${GIVE_ALL_WINE^^}.TAR ]] ; then
export URL_VERSION_PROTON_GIT=$GIVE_WINE_URL
fi
@ -5141,7 +5076,7 @@ gui_proton_downloader () {
restart_pp
else
print_error "$PW_WINE_USE"
for GIVE_WINE_URL in "${WINE_GE_CUSTOM[@]}" "${PROTON_GE_GIT[@]}" "${WINE_KRON4EK[@]}" "${PROTON_PW_GIT[@]}" "${PROTON_CACHYOS_GIT[@]}" "${PROTON_SAREK_GIT[@]}" ; do
for GIVE_WINE_URL in "${WINE_GE_CUSTOM[@]}" "${PROTON_GE_GIT[@]}" "${WINE_KRON4EK[@]}" "${PROTON_PW_GIT[@]}" "${PROTON_CACHYOS_GIT[@]}" ; do
if [[ ${GIVE_WINE_URL^^} =~ ${PW_WINE_USE^^} ]] ; then
export URL_VERSION_PROTON_GIT=$GIVE_WINE_URL
fi
@ -5160,7 +5095,7 @@ gui_edit_db () {
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_NATIVE_WAYLAND PW_USE_GALLIUM_ZINK PW_USE_GALLIUM_NINE
PW_USE_DAMAVAND PW_USE_SUPPLIED_DXVK_VKD3D
PW_USE_DAMAVAND
)
if check_wayland_session ; then
@ -5216,7 +5151,6 @@ gui_edit_db () {
PW_USE_GALLIUM_ZINK_INFO=${translations[Use Gallium Zink (OpenGL driver is implemented via Vulkan)]}
PW_USE_GALLIUM_NINE_INFO=${translations[Use Gallium Nine (native DirectX 9 for MESA)]}
PW_USE_DAMAVAND_INFO=${translations[Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function.]}
PW_USE_SUPPLIED_DXVK_VKD3D_INFO=${translations[Use dxvk and vkd3d which are bundled with wine or proton. (Does not work with PROTON_LG and WINE_LG)]}
# PW_VULKAN_NO_ASYNC_INFO=${translations[Disable asynchronous calls for VULKAN and DXVK modes]}
# PW_OLD_GL_STRING_INFO=${translations[Forced use of older versions of OpenGL]}
@ -5227,7 +5161,8 @@ gui_edit_db () {
0)
# WineD3D OpenGL
VKD3D_CB="DCB"
DISABLE_EDIT_DB_LIST="PW_VKBASALT PW_VKBASALT_USER_CONF PW_USE_RAY_TRACING PW_USE_OBS_VKCAPTURE PW_USE_GALLIUM_ZINK PW_USE_DAMAVAND"
DISABLE_EDIT_DB_LIST="PW_VKBASALT PW_VKBASALT_USER_CONF PW_USE_RAY_TRACING PW_USE_OBS_VKCAPTURE PW_USE_GALLIUM_ZINK PW_USE_DAMAVAND
"
;;
1|2)
# Stable, Newest
@ -5236,12 +5171,11 @@ gui_edit_db () {
5)
# Legacy
VKD3D_CB="DCB"
DISABLE_EDIT_DB_LIST="PW_USE_RAY_TRACING"
DISABLE_EDIT_DB_LIST="PW_USE_RAY_TRACING
"
;;
esac
[[ $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] && DISABLE_EDIT_DB_LIST+=" PW_USE_SUPPLIED_DXVK_VKD3D"
unset ADD_CHK_BOX_EDIT_DB
for int_to_boole in "${PW_EDIT_DB_LIST[@]}" ; do
if [[ "${!int_to_boole}" == "1" ]]
@ -5251,7 +5185,8 @@ gui_edit_db () {
TMP_HELP_FOR_GUI="${int_to_boole}_INFO"
int_to_boole_non_pw="${int_to_boole//PW_/}"
int_to_boole_non_pw="${int_to_boole_non_pw//"_"/" "}"
if [[ -n $DISABLE_EDIT_DB_LIST ]] ; then
if [[ ! "${PW_VULKAN_USE}" =~ ^(1|2)$ ]] \
&& [[ -n $DISABLE_EDIT_DB_LIST ]] ; then
unset CHECK_BOOLE_TRUE
for check_boole in $DISABLE_EDIT_DB_LIST ; do
if [[ $check_boole == "$int_to_boole" ]] ; then
@ -5285,23 +5220,6 @@ gui_edit_db () {
CPU_LIMIT_VAR="disabled"
fi
declare -A NODE_MAP
NUMA_NODE_LIST=""
INDEX=0
while read -r line; do
NODE_MAP[$INDEX]="$line"
NUMA_NODE_LIST+="$INDEX "
((INDEX++))
done < <( lscpu | grep -Po "NUMA node\d+ CPU\(s\):\s+\K.*" )
# удаляем последний пробел, чтобы в combobox не было «0 »
NUMA_NODE_LIST="${NUMA_NODE_LIST% }"
if [[ -n "${PW_CPU_NUMA_NODE_INDEX}" ]] && [[ "${PW_CPU_NUMA_NODE_INDEX}" != "disabled" ]]; then
NUMA_NODE_INDEX="${PW_CPU_NUMA_NODE_INDEX}"
else
NUMA_NODE_INDEX="disabled"
fi
if [[ -n "${PW_AMD_VULKAN_USE}" ]] && \
[[ "${PW_AMD_VULKAN_USE}" != "disabled" ]] ; then
AMD_VULKAN_VAR="${PW_AMD_VULKAN_USE}"
@ -5333,8 +5251,6 @@ immediate - Unlimited frame rate + tearing.
mailbox - Triple buffering. Unlimited frame rate + no tearing.
relaxed - Same as fifo but allows tearing when below the monitors refresh rate.]} :CB" "$(combobox_fix --disabled "${PW_MESA_VK_WSI_PRESENT_MODE}" "fifo!immediate!mailbox!relaxed")" \
--field="${translations[Select needed AMD vulkan implementation]}!${translations[Choosing which implementation of vulkan will be used to run the game]} $AMD_VULKAN_CB" "$(combobox_fix --disabled "$AMD_VULKAN_VAR" "$AMD_VULKAN_DRIVER_LIST")" \
--field="${translations[NUMA node for CPU affinity]}!${translations[In multicore systems, CPUs are split into NUMA nodes, each with its own local memory and cores.
Binding a game to a single node reduces memoryaccess latency and limits costly coretocore switches.)]} :CB" "$(combobox_fix --disabled "${NUMA_NODE_INDEX}" "${NUMA_NODE_LIST}")" \
1> "$PW_TMPFS_PATH/tmp_output_yad_fps_limit" 2>/dev/null &
"${pw_yad}" --notebook --key="$KEY_EDIT_DB_GUI" --title "${translations[EDIT DB]}" --text-align=center \
@ -5385,19 +5301,8 @@ Binding a game to a single node reduces memoryaccess latency and limits costl
PW_LOCALE_SELECT="${PW_ADD_SETTINGS[7]}"
PW_MESA_VK_WSI_PRESENT_MODE="${PW_ADD_SETTINGS[8]}"
PW_AMD_VULKAN_USE="${PW_ADD_SETTINGS[9]}"
NUMA_NODE_INDEX="${PW_ADD_SETTINGS[10]//[[:space:]]/}"
if [[ $NUMA_NODE_INDEX =~ ^[0-9]+$ ]] && [[ -v NODE_MAP[$NUMA_NODE_INDEX] ]] ; then
NUMA_CORES="${NODE_MAP[$NUMA_NODE_INDEX]}"
PW_CPU_NUMA_NODE_INDEX="$NUMA_NODE_INDEX"
PW_TASKSET_SLR="taskset -c $NUMA_CORES"
else
PW_CPU_NUMA_NODE_INDEX="disabled"
PW_TASKSET_SLR=""
fi
export PW_CPU_NUMA_NODE_INDEX PW_TASKSET_SLR
if [[ $CPU_LIMIT =~ ^[0-9]+$ ]] ; then
if [[ "${CPU_LIMIT}" =~ ^[0-9]+$ ]] ; then
PW_WINE_CPU_TOPOLOGY="${CPU_LIMIT}:$(seq -s, 0 $(( CPU_LIMIT - 1 )))"
else
PW_WINE_CPU_TOPOLOGY="disabled"
@ -5405,7 +5310,7 @@ Binding a game to a single node reduces memoryaccess latency and limits costl
export PW_WINE_CPU_TOPOLOGY
edit_db_from_gui "${PW_EDIT_DB_LIST[@]}" LAUNCH_PARAMETERS PW_WINDOWS_VER PW_DLL_INSTALL WINEDLLOVERRIDES PW_WINE_CPU_TOPOLOGY \
PW_MESA_GL_VERSION_OVERRIDE PW_VKD3D_FEATURE_LEVEL PW_LOCALE_SELECT PW_MESA_VK_WSI_PRESENT_MODE PW_AMD_VULKAN_USE PW_CPU_NUMA_NODE_INDEX PW_TASKSET_SLR
PW_MESA_GL_VERSION_OVERRIDE PW_VKD3D_FEATURE_LEVEL PW_LOCALE_SELECT PW_MESA_VK_WSI_PRESENT_MODE PW_AMD_VULKAN_USE
if [[ -z "$MANGOHUD_CONFIG" ]] ; then
MONITOR_HEIGHT="$(echo "$PW_SCREEN_RESOLUTION" | awk -F'x' '{print $2}')"
@ -5845,7 +5750,8 @@ gui_dgvoodoo2 () {
TMP_HELP_FOR_GUI="${int_to_boole}_INFO"
int_to_boole_non_pw="${int_to_boole//PW_DGV2/}"
int_to_boole_non_pw="${int_to_boole_non_pw//"_"/" "}"
if [[ -n $DISABLE_DGV2_LIST ]] ; then
if [[ ! "${PW_VULKAN_USE}" =~ ^(1|2)$ ]] \
&& [[ -n $DISABLE_DGV2_LIST ]] ; then
unset CHECK_BOOLE_TRUE
for check_boole in $DISABLE_DGV2_LIST ; do
if [[ $check_boole == "$int_to_boole" ]] ; then
@ -5975,7 +5881,6 @@ gui_gamescope () {
PW_GS_EXPOSE_WAYLAND PW_GS_REALTIME_SCHEDULING
)
if [[ $GAMESCOPE_INSTALLED == "1" ]] ; then
[[ $(<"${PW_TMPFS_PATH}/gamescope.tmp") =~ '--mangoapp' ]] && add_to_array "PW_GS_LIST" PW_GS_MANGOAPP
[[ $(<"${PW_TMPFS_PATH}/gamescope.tmp") =~ '--backend' ]] && add_to_array "PW_GS_LIST" PW_GS_BACKEND_SDL
check_wayland_session && add_to_array "PW_GS_LIST" PW_GS_SDL_VIDEODRIVER_X11
@ -5990,7 +5895,6 @@ gui_gamescope () {
else
GS_FILTER_CB="linear!nearest!fsr!nis!pixel"
fi
fi
PW_GS_FULLSCREEN_INFO=${translations[Make the window fullscreen]}
PW_GS_FORCE_FULLSCREEN_INFO=${translations[Force windows inside of gamescope to be the size of the nested display (fullscreen)]}
@ -6013,11 +5917,11 @@ gui_gamescope () {
PW_GS_CURSOR_SCALE_HEIGHT_INFO=${translations[if specified, sets a base output height to linearly scale the cursor against.]}
unset ADD_CHK_BOX_GS
if [[ $GAMESCOPE_INSTALLED == "1" ]] ; then
if [[ "${GAMESCOPE_INSTALLED}" == 1 ]] ; then
GAMESCOPE_NEED_INSTALL="${translations[Change settings gamescope for]} <b>$PW_NAME_DESKTOP_PROXY</b>\n ${translations[<b>NOTE:</b> To display help for each item, simply hover your mouse over the text]}"
GS_CB="CB" && GS_CBE="CBE" && GS_NUM="NUM" && GS_NUMN="NUMN"
for int_to_boole in "${PW_GS_LIST[@]}" ; do
if [[ ${!int_to_boole} == "1" ]]
if [[ "${!int_to_boole}" == "1" ]]
then export "$int_to_boole"="TRUE"
else export "$int_to_boole"="FALSE"
fi
@ -6029,8 +5933,7 @@ gui_gamescope () {
else
if check_flatpak ; then
GAMESCOPE_VERSION="$(grep 'VERSION_ID=' /etc/os-release)"
GAMESCOPE_VERSION="${GAMESCOPE_VERSION//VERSION_ID=/}"
GAMESCOPE_NEED_INSTALL="<b>${translations[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/$(echo "$GAMESCOPE_VERSION")\\n(${translations[Can be selected and copied]})</b>"
GAMESCOPE_NEED_INSTALL=$(eval_translations "<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>" "GAMESCOPE_VERSION=${GAMESCOPE_VERSION//VERSION_ID=/}")
YAD_TEXT_SELECTION="--selectable-labels"
else
GAMESCOPE_NEED_INSTALL="${translations[<b>Gamescope is not detected on the system, please contact the manufacturer of your distribution\\nor search the Internet for information on how to install gamescope on your system.</b>]}"
@ -6521,7 +6424,7 @@ pw_auto_create_shortcut () {
if [[ "${PW_CHECK_AUTOINSTALL}" == "1" ]] \
|| [[ "${PW_NO_AUTO_CREATE_SHORTCUT}" == "1" ]] \
|| [[ -z "${portwine_exe}" ]] \
|| echo "${portwine_exe}" | grep -i "gc_api.exe\|vkplay\|pulseonline\|hoyoplay_launcher_pp" &>/dev/null
|| echo "${portwine_exe}" | grep -i "gc_api.exe\|vkplay\|pulseonline" &>/dev/null
then
print_warning "Skipping auto create shortcut"
return 0
@ -7247,7 +7150,7 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE." 2>/dev/null &
SOFTWARE." "DATE=$(date +%Y)" 2>/dev/null &
"${pw_yad}" --plug="${KEY_CREDITS}" --tabnum=3 \
--text-info --show-uri --scroll \

@ -6,7 +6,7 @@
#export PW_COMMENT_DB="PortWINE database file for Epic Games Launcher"
export LAUNCH_PARAMETERS="-SkipBuildPatchPrereq"
export PW_DLL_INSTALL="vcrun2012 vcrun2013 vcrun2019"
export PW_WINE_USE="WINE_LG"
export PW_WINE_USE="PROTON_LG"
export WINEDLLOVERRIDES="vulkan-1=n,b"
# add_in_start_portwine () {
# regdlloverrides "RDR2.exe:vulkan-1=n,b"

@ -1,12 +1,9 @@
#!/usr/bin/env bash
#Author: fidel
#Genshin Impact.exe
#GenshinImpact.exe
#hoyoplay_launcher_pp.exe
#Rating=5
#####################examples###########################
export PW_WINDOWS_VER="10"
export PW_VULKAN_USE="2"
export PW_PREFIX_NAME="HO_YO_PLAY"
export PW_WINE_USE="WINE_LG"
export LAUNCH_PARAMETERS="-platform_type CLOUD_THIRD_PARTY_PC"

@ -4,4 +4,4 @@
#Rating=1-5
export PW_VULKAN_USE="2"
export PW_WINE_USE="WINE_LG"
# export LAUNCH_URI="com.epicgames.launcher://apps/Eel?action=launch&silent=true"
export LAUNCH_URI="com.epicgames.launcher://apps/Eel?action=launch&silent=true"

@ -0,0 +1,15 @@
#!/usr/bin/env bash
#Author: linux-gaming.ru
#setup.exe
#.msi
#Rating=5
################################################
export PW_DISABLED_CREATE_DB="1"
export PW_VULKAN_USE="1"
export PW_MANGOHUD="0"
export PW_NO_FSYNC="1"
export PW_NO_ESYNC="1"
export PW_USE_GAMEMODE="0"
export PW_DLL_INSTALL=""
# export WINEDLLOVERRIDES="mscoree,mshtml="
export PW_WINE_USE="WINE_LG"

@ -1,24 +0,0 @@
#!/usr/bin/env bash
# Author: if984 (Maksim K.)
# type: emulators
# name: Azahar
# image: azahar
# info_en: An open source Nintendo 3DS emulator based on Citra, designed to run games with support for enhanced resolutions and advanced emulation settings.
# info_ru: Эмулятор Nintendo 3DS с открытым исходным кодом на основе Citra, созданный для запуска игр с поддержкой улучшенного разрешения и расширенных настроек эмуляции.
##########################################################################
# export LAUNCH_PARAMETERS="/VERYSILENT"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/azahar-2120.3-windows-msys2-installer.exe"
start_portwine
if try_download "https://github.com/azahar-emu/azahar/releases/download/2120.3/azahar-2120.3-windows-msys2-installer.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_install_game "Azahar."
pw_run "${PW_AUTOINSTALL_EXE}"
portwine_exe="$WINEPREFIX/drive_c/Program Files/Azahar/azahar.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
try_remove_file "${portwine_exe}.ppdb"
kill_portwine
pw_stop_progress_bar
export PORTWINE_CREATE_SHORTCUT_NAME="Azahar"
portwine_create_shortcut
fi
stop_portwine

@ -1,23 +0,0 @@
#!/usr/bin/env bash
# Author: if984 (Maksim K.)
# type: emulators
# name: bsnes
# image: bsnes
# info_en: An open source Super Nintendo Entertainment System (SNES) emulator that focuses on performance, accuracy, user-friendly interface, and special features.
# info_ru: Эмулятор Super Nintendo Entertainment System (SNES) с открытым исходным кодом, который фокусируется на производительности, точности, удобном пользовательском интерфейсе и специальных функциях.
########################################################################
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/bsnes-windows.zip"
start_portwine
if try_download "https://github.com/bsnes-emu/bsnes/releases/download/nightly/bsnes-windows.zip" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_install_game "bsnes."
"$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files"
portwine_exe="$WINEPREFIX/drive_c/Program Files/bsnes-nightly/bsnes.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
try_remove_file "${portwine_exe}.ppdb"
kill_portwine
pw_stop_progress_bar
export PORTWINE_CREATE_SHORTCUT_NAME="bsnes"
portwine_create_shortcut
fi
stop_portwine

@ -10,16 +10,15 @@ export LAUNCH_PARAMETERS="/VERYSILENT"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/crossout.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Crossout"
export PW_PREFIX_NAME="CROSSOUT"
export PW_WINE_USE="WINE_LG"
start_portwine
if try_download "https://yupmaster.gaijinent.com/launcher/current.php?id=CrossoutLauncher" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_install_game "Crossout."
get_and_set_reg_file --add 'Software\Wine\X11 Driver' 'Decorated' 'REG_SZ' "N" "user"
pw_kill_autostart launcher.exe 3 &
pw_run "${PW_AUTOINSTALL_EXE}"
portwine_exe="${WINEPREFIX}/drive_c/users/$USER/AppData/Local/Crossout Launcher/launcher.exe"
portwine_exe="${WINEPREFIX}/drive_c/users/$USER/AppData/Local/Crossout/launcher.exe"
get_and_set_reg_file --add 'Software\Wine\X11' 'Decorated' 'REG_SZ' "N" "user"
pw_create_unique_exe "crossout_launcher_pp"
try_remove_file "${PW_AUTOINSTALL_EXE}"
try_remove_file "${portwine_exe}.ppdb"

@ -10,7 +10,6 @@ export LAUNCH_PARAMETERS="/q"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/EpicGamesLauncherInstaller.msi"
export PW_USE_D3D_EXTRAS=1
export PORTWINE_CREATE_SHORTCUT_NAME="Epic Games Launcher"
export PW_WINE_USE="WINE_LG"
# sed -i '/Epic Games/d' "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/*.reg >/dev/null
try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.wine_ver"

@ -11,8 +11,8 @@ start_portwine
if try_download "https://www.epsxe.com/files/ePSXe205.zip" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_install_game "ePSXe."
"$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)/ePSXe"
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/ePSXe/ePSXe.exe"
"$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)/EPSXe"
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/EPSXe/ePSXe.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
try_remove_file "${portwine_exe}.ppdb"
kill_portwine

@ -6,7 +6,7 @@
# info_en: An emulator for the Nintendo Entertainment System (NES) that allows players to enjoy classic NES games on modern devices with high compatibility and various enhancements. The emulator includes tools for game development, testing, and recording.
# info_ru: Эмулятор Nintendo Entertainment System (NES), который позволяет игрокам наслаждаться классическими играми для NES на современных устройствах с высокой совместимостью и различными улучшениями. Эмулятор включает инструменты для разработки, тестирования и записи игр.
########################################################################
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/fceux-2.6.6-win64.zip"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/fceux-2.6.5-win64.zip"
start_portwine
if try_download "https://github.com/TASEmulators/fceux/releases/download/v2.6.6/fceux-2.6.6-win64.zip" "${PW_AUTOINSTALL_EXE}" no_mirror
then

@ -19,7 +19,7 @@ export PORTWINE_CREATE_SHORTCUT_NAME="GOG GALAXY"
start_portwine
if try_download "https://content-system.gog.com/open_link/download?path=/open/galaxy/client/setup_galaxy_${GOG_VER}.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
if try_download "https://content-system.gog.com/open_link/download?path=/open/galaxy/client/${GOG_VER}/setup_galaxy_${GOG_VER}.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_install_game "GOG Galaxy."
pw_run "${PW_AUTOINSTALL_EXE}"

@ -16,13 +16,14 @@ start_portwine
if try_download "https://sg-public-api.hoyoverse.com/event/download_porter/trace/hyp_global/hyphoyoverse/default?url=https%3A%2F%2Fhoyoplay.hoyoverse.com%2F" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_install_game "HoYoPlay Launcher."
get_and_set_reg_file --add 'Software\Wine\X11 Driver' 'Decorated' 'REG_SZ' "N" "user"
pw_kill_autostart HYP.exe &
export PATH_TO_GAME="${PW_USER_TEMP}"
pw_run "${PW_AUTOINSTALL_EXE}"
export portwine_exe="$WINEPREFIX/drive_c/Program Files/HoYoPlay/launcher.exe"
get_and_set_reg_file --add 'Software\Wine\X11' 'Decorated' 'REG_SZ' "N" "user"
pw_create_unique_exe "hoyoplay_launcher_pp"
try_remove_file "${PW_AUTOINSTALL_EXE}"
try_remove_file "${portwine_exe}.ppdb"
kill_portwine
pw_stop_progress_bar
portwine_create_shortcut

@ -1,23 +0,0 @@
#!/usr/bin/env bash
# Author: if984 (Maksim K.)
# type: emulators
# name: melonDS
# image: melonds
# info_en: An open-source Nintendo DS (NDS) emulator. Works with a wide range of Nintendo DS games, from popular classics to niche titles. Supports high resolutions, local multiplayer, and advanced emulation settings.
# info_ru: Эмулятор Nintendo DS (NDS) с открытым исходным кодом. Работает с большим количеством игр Nintendo DS, от популярных классических до нишевых. Поддерживает высокое разрешение, локальный мультиплеер, а также расширенные настройки эмуляции.
########################################################################
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/melonDS-windows-x86_64.zip"
start_portwine
if try_download "https://melonds.kuribo64.net/downloads/melonDS-windows-x86_64.zip" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_install_game "melonDS."
"$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)/melonDS"
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/melonDS/melonDS.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
try_remove_file "${portwine_exe}.ppdb"
kill_portwine
pw_stop_progress_bar
export PORTWINE_CREATE_SHORTCUT_NAME="melonDS"
portwine_create_shortcut
fi
stop_portwine

@ -9,7 +9,7 @@
export LAUNCH_PARAMETERS="/VERYSILENT"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/PPSSPPSetup.exe"
start_portwine
if try_download "https://ppsspp.org/files/1_18_1/PPSSPPSetup.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
if try_download "https://ppsspp.org/files/1_16_5/PPSSPPSetup.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_install_game "PPSSPP."
pw_run "${PW_AUTOINSTALL_EXE}"
@ -18,7 +18,7 @@ then
try_remove_file "${portwine_exe}.ppdb"
kill_portwine
pw_stop_progress_bar
export PORTWINE_CREATE_SHORTCUT_NAME="PPSSPP"
export PORTWINE_CREATE_SHORTCUT_NAME="PPSSPPWindows"
portwine_create_shortcut
fi
stop_portwine

@ -6,11 +6,9 @@
# info_en: An interface for emulators that supports many game consoles and platforms, allowing users to run old games on modern devices. It offers a user-friendly interface, a rich library of emulation cores, and features for performance and graphics customization.
# info_ru: Интерфейс для эмуляторов, который поддерживает множество игровых консолей и платформ, позволяя пользователям запускать старые игры на современных устройствах. Он предлагает удобный интерфейс, богатую библиотеку ядер эмуляции и функции для настройки производительности и графики.
########################################################################
export PW_RETROARCH_VERSION=$(curl -s "https://buildbot.libretro.com/stable/" | grep -oP 'href="/stable/\K[0-9.]+(?=/")' | sort -V | tail -n1)
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/RetroArch.7z"
start_portwine
if try_download "https://buildbot.libretro.com/stable/$PW_RETROARCH_VERSION/windows/x86_64/RetroArch.7z" "${PW_AUTOINSTALL_EXE}" no_mirror
if try_download "https://buildbot.libretro.com/stable/1.16.0/windows/x86_64/RetroArch.7z" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_install_game "RetroArch."
"$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)"

@ -21,6 +21,7 @@ then
pw_start_progress_bar_install_game "World of Sea Battle."
pw_run "${PW_AUTOINSTALL_EXE}"
try_remove_file "${PW_AUTOINSTALL_EXE}"
try_remove_file "${portwine_exe}.ppdb"
if [[ -f "$WINEPREFIX/drive_c/Games/Wosb Launcher/launcher.exe" ]]
then export portwine_exe="$WINEPREFIX/drive_c/Games/Wosb Launcher/launcher.exe"
else export portwine_exe="$WINEPREFIX/drive_c/users/steamuser/AppData/Local/Wosb Launcher/launcher.exe"

@ -103,7 +103,7 @@ unset CHK_SYMLINK_FILE PW_MESA_GL_VERSION_OVERRIDE PW_VKD3D_FEATURE_LEVEL PATH_T
unset PW_PREFIX_NAME VULKAN_MOD PW_WINE_VER PW_ADD_TO_ARGS_IN_RUNTIME PW_GAMEMODERUN_SLR PW_WINE_CPU_TOPOLOGY
unset MANGOHUD_CONFIG FPS_LIMIT PW_WINE_USE WINEDLLPATH WINE WINEDIR WINELOADER WINESERVER PW_USE_RUNTIME PORTWINE_CREATE_SHORTCUT_NAME MIRROR
unset PW_LOCALE_SELECT PW_SETTINGS_INDICATION PW_GUI_START PW_AUTOINSTALL_EXE NOSTSTDIR RADV_DEBUG PW_NO_AUTO_CREATE_SHORTCUT
unset PW_TERM PW_EXEC_FROM_DESKTOP WEBKIT_DISABLE_DMABUF_RENDERER PW_AMD_VULKAN_USE PW_VK_ICD_FILENAMES LAUNCH_URI PW_USE_SETUP_FILE PW_CPU_NUMA_NODE_INDEX PW_TASKSET_SLR
unset PW_TERM PW_EXEC_FROM_DESKTOP WEBKIT_DISABLE_DMABUF_RENDERER PW_AMD_VULKAN_USE PW_VK_ICD_FILENAMES LAUNCH_URI
export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp"
rm -f "$PORT_WINE_TMP_PATH"/*{exe,msi,tar}*
@ -326,20 +326,6 @@ if check_flatpak ; then
else pw_download_libs
fi
if [[ ${portwine_exe,,} =~ (setup|install|.msi$) ]] ; then
export PW_DISABLED_CREATE_DB="1"
export PW_VULKAN_USE="1"
export PW_MANGOHUD="0"
export PW_NO_FSYNC="1"
export PW_NO_ESYNC="1"
export PW_USE_GAMEMODE="0"
export PW_DLL_INSTALL=""
# export WINEDLLOVERRIDES="mscoree,mshtml="
export PW_WINE_USE="WINE_LG"
export PW_USE_SETUP_FILE="1"
fi
pw_init_db
if [[ ! -d "${HOME}/PortProton" ]] \
@ -554,14 +540,10 @@ if [[ -f "$portwine_exe" ]] ; then
fi
create_name_desktop
if [[ -n $PW_COMMENT_DB ]] ; then
PW_COMMENT_DB="$PW_COMMENT_DB$(seconds_to_time "$TIME_CURRENT")"
else
if [[ $PW_USE_SETUP_FILE == "1" ]] ; then
PW_COMMENT_DB="${translations[Launching]} <b>$(print_wrapped "$PW_NAME_DESKTOP_PROXY" "50")</b>"
else
if [[ -z $PW_COMMENT_DB ]] ; then
PW_COMMENT_DB="${translations[Launching]} <b>$(print_wrapped "$PW_NAME_DESKTOP_PROXY" "50")</b>$(seconds_to_time "$TIME_CURRENT")"
fi
else
PW_COMMENT_DB="$PW_COMMENT_DB$(seconds_to_time "$TIME_CURRENT")"
fi
export KEY_START="$RANDOM"
@ -578,6 +560,7 @@ if [[ -f "$portwine_exe" ]] ; then
"${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[Global settings]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Settings for user.conf]}":"FBTN" '@bash -c "button_click --start 128"' \
--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"' \
@ -622,6 +605,7 @@ if [[ -f "$portwine_exe" ]] ; then
--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[Global settings]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Settings for user.conf]}":"FBTN" '@bash -c "button_click --start 128"' \
--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"' \

@ -1,7 +1,7 @@
#!/usr/bin/env bash
#Author: Castro-Fidel (linux-gaming.ru)
#SCRIPTS_NEXT_VERSION=2416
#SCRIPTS_STABLE_VERSION=2411
#SCRIPTS_NEXT_VERSION=2406
#SCRIPTS_STABLE_VERSION=2406
########################################################################
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"
export PROTON_USE_XALIA="0"
@ -20,7 +20,7 @@ export PW_FORCE_USE_VSYNC="2"
export PW_USE_TERMINAL="0"
export PW_WINDOWS_VER="10"
export WINEARCH="win64"
export PW_LIBS_VER="_v53"
export PW_LIBS_VER="_v52"
export PW_USE_GSTREAMER="1"
export PW_USE_D3D_EXTRAS="1"
export PW_PREFIX_NAME="DEFAULT"
@ -41,7 +41,6 @@ export STAGING_SHARED_MEMORY="1"
export PW_USE_GALLIUM_ZINK="0"
export PW_USE_GALLIUM_NINE="0"
export PW_USE_DAMAVAND="0"
export PW_USE_SUPPLIED_DXVK_VKD3D="1"
###DEFAULT_WINE###
export PW_WINE_USE="PROTON_LG"
export PW_PLUGINS_VER="_v20"
@ -49,8 +48,8 @@ export PW_FAKE_DLSS_VER="230506"
export PW_FAKE_DLSS_3_VER="0.9.1-plus"
export PW_GALLIUM_NINE_VER="0.10"
###WINE_AND_PROTON_LG###
export PW_PROTON_LG_VER="PROTON_LG_9-27"
export PW_WINE_LG_VER="WINE_LG_10-7"
export PW_PROTON_LG_VER="PROTON_LG_9-19"
export PW_WINE_LG_VER="WINE_LG_10-1"
export PW_WINE_FULLSCREEN_FSR="1"
export WINE_FULLSCREEN_FSR_MODE="ultra"
###DXVK_AND_VKD3D###
@ -58,9 +57,9 @@ export PW_VULKAN_USE="2"
export VKD3D_LIMIT_TESS_FACTORS="64"
export DXVK_LEGACY_VER="1.6.1"
export DXVK_STABLE_VER="1.10.3-28"
export DXVK_GIT_VER="2.6-65"
export DXVK_GIT_VER="2.5.3-299"
export VKD3D_STABLE_VER="1.1-2602"
export VKD3D_GIT_VER="1.1-4511"
export VKD3D_GIT_VER="1.1-4478"
###VKBASALT###
export PW_VKBASALT_EFFECTS="Curves:cas"
export PW_VKBASALT_FFX_CAS="0.50"

@ -29,7 +29,7 @@ export PW_TAB_POSITON=top
export MAIN_GUI_COLUMNS=3
export START_GUI_NOTEBOOK_COLUMNS=2
export START_GUI_NOTEBOOK_COLUMNS=3
export START_GUI_PANED_COLUMNS=3
export START_GUI_TYPE="--gui-type=start-old \
--image-halign=center \

@ -32,7 +32,7 @@ export PW_TAB_POSITON=top
export MAIN_GUI_COLUMNS=3
export START_GUI_NOTEBOOK_COLUMNS=2
export START_GUI_NOTEBOOK_COLUMNS=3
export START_GUI_PANED_COLUMNS=3
export START_GUI_TYPE="--gui-type=start \
--homogeneous-row \

@ -42,7 +42,7 @@ export PW_TAB_POSITON=top
# количество столбцов в главном меню
export MAIN_GUI_COLUMNS=3
export START_GUI_NOTEBOOK_COLUMNS=2 # количество столбцов для настроек в notebook
export START_GUI_NOTEBOOK_COLUMNS=3 # количество столбцов для настроек в notebook
export START_GUI_PANED_COLUMNS=3 # количество столбцов для настроек в paned
# это нужно
export START_GUI_TYPE="--gui-type=start \