Compare commits
	
		
			2 Commits
		
	
	
		
			devel
			...
			42bb83a77f
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 42bb83a77f | |||
| cddc466a0d | 
| @@ -7,9 +7,6 @@ | ||||
|   <a href="https://flathub.org/ru/apps/ru.linux_gaming.PortProton"> | ||||
|     <img src="https://img.shields.io/flathub/downloads/ru.linux_gaming.PortProton?style=flat&logo=flathub" alt="Flathub Downloads"> | ||||
|   </a> | ||||
|   <a href="https://translate.codeberg.org/projects/portproton/"> | ||||
|     <img src="https://img.shields.io/weblate/progress/portproton?server=https%3A%2F%2Ftranslate.codeberg.org&logo=weblate&logoColor=%232185D0" alt="Translate Codeberg"> | ||||
|   </a> | ||||
|   <a href="https://t.me/linux_gaming_ru"> | ||||
|     <img src="https://img.shields.io/endpoint?&style=flat&url=https%3A%2F%2Ftg.sumanjay.workers.dev%2Flinux_gaming_ru" alt="Telegram"> | ||||
|   </a> | ||||
|   | ||||
| @@ -7,9 +7,6 @@ | ||||
|   <a href="https://flathub.org/apps/ru.linux_gaming.PortProton"> | ||||
|     <img src="https://img.shields.io/flathub/downloads/ru.linux_gaming.PortProton?style=flat&logo=flathub" alt="Flathub Downloads"> | ||||
|   </a> | ||||
|   <a href="https://translate.codeberg.org/projects/portproton/"> | ||||
|     <img src="https://img.shields.io/weblate/progress/portproton?server=https%3A%2F%2Ftranslate.codeberg.org&logo=weblate&logoColor=%232185D0" alt="Translate Codeberg"> | ||||
|   </a> | ||||
|   <a href="https://t.me/linux_gaming_ru"> | ||||
|     <img src="https://img.shields.io/endpoint?&style=flat&url=https%3A%2F%2Ftg.sumanjay.workers.dev%2Flinux_gaming_ru" alt="Telegram"> | ||||
|   </a> | ||||
|   | ||||
| @@ -2,95 +2,6 @@ You can help us in the development of the project on the website: https://linux- | ||||
| ---------------------------------------- | ||||
| Changelog: | ||||
|  | ||||
| ###Scripts version 2450### / Date: 31.10.2025 / Download update size: 4 megabytes | ||||
| * PROTON_LG_9-12 is used by default for GOG Launcher (fixes game installation in the launcher) | ||||
| * added the PW_EMULS variable (if set to 0, the emulators tab is removed) | ||||
|  | ||||
| ###Scripts version 2449### / Date: 30.10.2025 / Download update size: 230 megabytes | ||||
| * Updated PROTON_LG to version "10-24" | ||||
| * Updated versions: | ||||
|     - DXVK_NEW_VER "2.7.1-204" (with dxvk-nvapi) | ||||
|     - VKD3D_NEW_VER "1.1-4836" (with vkd3d-shader) | ||||
| * fixed theme color scheme switching for PortProton (thanks to Htylol) | ||||
| * fixed installing dotnet to a clean prefix (thanks to AlekV) | ||||
| * added new CLI functions for PortProtonQT (thanks to Boria138 and Htylol) | ||||
|  | ||||
|  | ||||
| ###Scripts version 2448### / stable / Date: 23.10.2025 / Download update size: 380 megabytes | ||||
| * cumulative update of stable version of PortProton scripts | ||||
|  | ||||
| ###Scripts version 2447### / Date: 20.10.2025 / Download update size: 230 megabytes | ||||
| * updated PROTON_LG to version "10-21" | ||||
| * updated versions: | ||||
|     - DXVK_NEW_VER "2.7.1-190" (with dxvk-nvapi) | ||||
|     - VKD3D_NEW_VER "1.1-4818" (with vkd3d-shader) | ||||
| * fixed installation of BattleNET when using PROTON_LG | ||||
|     - if you have problems with the launcher, just restart the auto-installation | ||||
|  | ||||
| ###Scripts version 2446### / Date: 19.10.2025 / Download update size: 380 megabytes | ||||
| * updated WINE_LG to version "10-17" | ||||
| * updated PROTON_LG to version "10-20" | ||||
| * updated versions: | ||||
|     - DXVK_NEW_VER "2.7.1-172" (with dxvk-nvapi) | ||||
|     - VKD3D_NEW_VER "1.1-4801" (with vkd3d-shader) | ||||
| * minor CLI fixes (thanks to Boria138) | ||||
|  | ||||
| ###Scripts version 2445### / stable / Date: 10.10.2025 / Download update size: 4 megabytes | ||||
| * added all WINE settings to CLI mode | ||||
| * added automatic installations in CLI mode | ||||
| * PROTON_LG is used by default for setup, install, and .msi files | ||||
| * fixed image blur in some games (default dpi = 96) | ||||
| * temporarily unlocked all 3D_APIs for any video card by default | ||||
|  | ||||
| ###Scripts version 2444### / stable / Date: 30.09.2025 / Download update size: 380 megabytes | ||||
| * updated WINE_LG to version "10-15" (fixed ESYNC and FSYNC) | ||||
| * updated PROTON_LG to version "10-17" | ||||
| * updated versions: | ||||
|     - DXVK_NEW_VER "2.7.1-146" (with dxvk-nvapi) | ||||
|     - VKD3D_NEW_VER "1.1-4772" (with vkd3d-shader) | ||||
| * added falcond to the gamemode conflict list (thanks to Boria138) | ||||
|  | ||||
| ###Scripts version 2443### / stable / Date: 19.09.2025 / Download update size: 4 megabytes | ||||
| * the "Yabause" emulator has been removed | ||||
| * the "Goose Goose Duck" game has been removed | ||||
| * the "Fractured Online" game has been removed (the game has become a paid game) | ||||
| * the "Battle of Space Raiders" game has been removed (the game has become a paid game) | ||||
| * the installation and operation of the following games has been fixed (requires restarting the auto-installer): | ||||
|     - "OSU" | ||||
|     - "Contract Wars" | ||||
|     - "Farlight 84" | ||||
|     - "Doomsday" | ||||
|     - "ExoTanks" | ||||
|     - "Ankama Launcher" | ||||
|     - "Guild Wars 2" | ||||
|     - "Rockstar Games Launcher" | ||||
|  | ||||
| ###Scripts version 2442### / stable / Date: 18.09.2025 / Download update size: 4 megabytes | ||||
| * corrective update to the stable PortProton branch | ||||
| * fixed opening settings for Ubuntu-based systems (thanks to zorn-v) | ||||
| * fixed detection of Unity-based games (thanks to Htylol) | ||||
| * added the ability to download PROTON-CACHYOS v2 and v4 (thanks to Boria138) | ||||
| * added the ability to override all variables related to shader caching | ||||
| * reverted the "USE DXVK HDR" setting (displayed even on X11 to enable HDR on SteamDeck) | ||||
|  | ||||
| ###Scripts version 2441### / stable / Date: 15.09.2025 / Download update size: 380 megabytes | ||||
| * cumulative update of stable version of PortProton scripts | ||||
|  | ||||
| ###Scripts version 2440### / Date: 03.09.2025 / Download update size: 380 megabytes | ||||
| * updated WINE_LG to version "10-14" | ||||
| * updated PROTON_LG to version "10-15" | ||||
| * updated versions: | ||||
|     - DXVK_NEW_VER "2.7-46" (with dxvk-nvapi) | ||||
|     - VKD3D_NEW_VER "1.1-4707" (with vkd3d-shader) | ||||
| * improved and optimized video card and driver selection functions (thanks to Htylol) | ||||
| * Epic Games Launcher is installed and works again on new PROTON_LG versions (to apply the fix, run autoinstall) | ||||
| * updated VK Play installation link (thanks to Muzifs) | ||||
| * fixed Anomaly Zone autoinstallation (thanks to Muzifs) | ||||
| * fixed Azahar autoinstallation (thanks to Muzifs) | ||||
| * fixed Goose Goose Duck autoinstallation (thanks Muzifs) | ||||
| * improved Steam cover download function (thanks alex2844) | ||||
| * improved main monitor detection on Hyprland (thanks Boria138) | ||||
|  | ||||
| ###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) | ||||
|   | ||||
| @@ -2,97 +2,6 @@ | ||||
| ----------------------------------------- | ||||
| История изменений: | ||||
|  | ||||
| ###Scripts version 2450### / Дата: 31.10.2025 / Размер скачиваемого обновления: 4 мегабайта | ||||
| * для GOG Launcher по умолчанию используется PROTON_LG_9-12 (исправляет установку игр в лаунчере) | ||||
| * добавлена переменная PW_EMULS (если равна 0, то удаляется вкладка с эмуляторами) | ||||
|  | ||||
| ###Scripts version 2449### / Дата: 30.10.2025 / Размер скачиваемого обновления: 230 мегабайт | ||||
| * обновлен PROTON_LG до версии "10-24" | ||||
| * обновлены версии: | ||||
|     - DXVK_NEW_VER "2.7.1-204" (совместно с dxvk-nvapi) | ||||
|     - VKD3D_NEW_VER "1.1-4836" (совместно vkd3d-shader) | ||||
| * исправлено переключение цветовой схемы тем для PortProton (спасибо Htylol) | ||||
| * исправлена установка dotnet в чистый префикс (спасибо AlekV) | ||||
| * добавлены новые функции CLI для PortProtonQT (спасибо Boria138 и Htylol) | ||||
|  | ||||
| ###Scripts version 2448### / stable / Дата: 23.10.2025 / Размер скачиваемого обновления: 380 мегабайт | ||||
| * кумулятивное обновление стабильной версии скриптов PortProton | ||||
|  | ||||
| ###Scripts version 2447### / Дата: 20.10.2025 / Размер скачиваемого обновления: 230 мегабайт | ||||
| * обновлен PROTON_LG до версии "10-21" | ||||
| * обновлены версии: | ||||
|     - DXVK_NEW_VER "2.7.1-190" (совместно с dxvk-nvapi) | ||||
|     - VKD3D_NEW_VER "1.1-4818" (совместно vkd3d-shader) | ||||
| * исправлена установка BattleNET при использовании PROTON_LG  | ||||
|     - если у вас есть проблемы с работой лончера, просто перезапустите автоустановку | ||||
|  | ||||
| ###Scripts version 2446### / Дата: 19.10.2025 / Размер скачиваемого обновления: 380 мегабайт | ||||
| * обновлен WINE_LG до версии "10-17" | ||||
| * обновлен PROTON_LG до версии "10-20" | ||||
| * обновлены версии: | ||||
|     - DXVK_NEW_VER "2.7.1-172" (совместно с dxvk-nvapi) | ||||
|     - VKD3D_NEW_VER "1.1-4801" (совместно vkd3d-shader) | ||||
| * испавлена проблема подключение к сети в vkPlay | ||||
|     - если у вас есть проблемы с работой лончера, просто перезапустите автоустановку | ||||
| * небольшие исправления CLI (спасибо Boria138) | ||||
|  | ||||
| ###Scripts version 2445### / stable / Дата: 10.10.2025 / Размер скачиваемого обновления: 4 мегабайта | ||||
| * добавлены все настройки WINE в режим CLI | ||||
| * добавлена возможность автоустановок в режиме CLI | ||||
| * для setup, install, и .msi файлов по умолчанию используется PROTON_LG | ||||
| * исправлено размытие изображения в некоторых играх (по умолчанию dpi = 96) | ||||
| * по умолчанию (временно) разблокированы все 3D_API для любой видеокарты | ||||
|  | ||||
| ###Scripts version 2444### / stable / Дата: 30.09.2025 / Размер скачиваемого обновления: 380 мегабайт | ||||
| * обновлен WINE_LG до версии "10-15" (исправлена работа ESYNC и FSYNC) | ||||
| * обновлен PROTON_LG до версии "10-17" | ||||
| * обновлены версии: | ||||
|     - DXVK_NEW_VER "2.7.1-146" (совместно с dxvk-nvapi) | ||||
|     - VKD3D_NEW_VER "1.1-4772" (совместно vkd3d-shader) | ||||
| * добавлен falcond в список конфликтов для gamemode (спасибо Boria138) | ||||
|  | ||||
| ###Scripts version 2443### / stable / Дата: 19.09.2025 / Размер скачиваемого обновления: 4 мегабайта | ||||
| * удален эмулятор "Yabause" (сервера не доступны) | ||||
| * удалена игра "Goose Goose Duck" (сервера не доступны) | ||||
| * удалена игра "Fractured Online" (игра стала платной) | ||||
| * удалена игра "Battle Of Space Raiders" (игра стала платной) | ||||
|     - PS: для удаленных игр которые стали платными, файлы настроек сохранены | ||||
| * исправлена автоустановка и работа игр (требуется повторный запуск автоустановки): | ||||
|     - "OSU" | ||||
|     - "Contract Wars" | ||||
|     - "Farlight 84" | ||||
|     - "Doomsday" | ||||
|     - "ExoTanks" | ||||
|     - "Ankama Launcher" | ||||
|     - "Guild Wars 2" | ||||
|     - "Rockstar Games Launcher" | ||||
|  | ||||
| ###Scripts version 2442### / stable / Дата: 18.09.2025 / Размер скачиваемого обновления: 4 мегабайта | ||||
| * корректирующее обновление стабильной ветки PortProton | ||||
| * исправлено открытие настроек для систем основанных на Ubuntu (спасибо zorn-v) | ||||
| * исправлено определение игр на движке Unity (спасибо Htylol) | ||||
| * добавлена возможность скачивания PROTON-CACHYOS v2 и v4 (спасибо Boria138) | ||||
| * добавлена возможность замещения всех переменных связанных с кэшированием шейдеров | ||||
| * возвращена настройка "USE DXVK HDR" (отображается даже на X11 для возможности включения HDR на SteamDeck) | ||||
|  | ||||
| ###Scripts version 2441### / stable / Дата: 15.09.2025 / Размер скачиваемого обновления: 380 мегабайт | ||||
| * кумулятивное обновление стабильной версии скриптов PortProton | ||||
|  | ||||
| ###Scripts version 2440### / Дата: 03.09.2025 / Размер скачиваемого обновления: 380 мегабайт | ||||
| * обновлен WINE_LG до версии "10-14" | ||||
| * обновлен PROTON_LG до версии "10-15" | ||||
| * обновлены версии: | ||||
|     - DXVK_NEW_VER "2.7-46" (совместно с dxvk-nvapi) | ||||
|     - VKD3D_NEW_VER "1.1-4707" (совместно vkd3d-shader) | ||||
| * улучшены и оптимизированы функции выбора видеокарты и драйвера (спасибо Htylol) | ||||
| * Epic Games Launcher снова устанавливается и работает на новых версиях PROTON_LG (для применения исправления, запустите автоустановку) | ||||
| * обновлена ссылка для установки VK Play (спасибо Muzifs) | ||||
| * исправлена автоустановка Anomaly Zone (спасибо Muzifs) | ||||
| * исправлена автоустановка Azahar (спасибо Muzifs) | ||||
| * исправлена автоустановка Goose Goose Duck (спасибо Muzifs) | ||||
| * улучшена функция скачивания обложек для Steam (спасибо alex2844) | ||||
| * улучшено определение главного монитора на Hyprland (спасибо Boria138) | ||||
|  | ||||
| ###Scripts version 2439### / Дата: 31.07.2025 / Размер скачиваемого обновления: 4 мегабайта | ||||
| * улучшены функции проверки и выбора видеокарт (спасибо Htylol) | ||||
| * добавлена блокировка не поддерживаемых видеокартой, или драйвером, версий 3D Api (спасибо Htylol) | ||||
|   | ||||
| @@ -86,7 +86,7 @@ getSteamId() { | ||||
| 			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 '[:space:]\r\n') | ||||
| 					SteamAppId=$(cat "${file}" | tr -d '\r\n') | ||||
| 				else | ||||
| 					SteamAppId=$(grep -i "^AppId=" "${file}" | cut -d'=' -f2 | head -1 | tr -d '\r\n') | ||||
| 				fi | ||||
|   | ||||
| @@ -718,7 +718,7 @@ var_vkd3d_config_update () { | ||||
| var_radv_perftest_config_update () { | ||||
|     if echo "$RADV_PERFTEST" | grep "$1" | ||||
|     then return 0 | ||||
|     else export RADV_PERFTEST="${1}${RADV_PERFTEST:+,$RADV_PERFTEST}" | ||||
|     else export RADV_PERFTEST="${1}${RADV_PERFTEST:+;$RADV_PERFTEST}" | ||||
|     fi | ||||
| } | ||||
|  | ||||
| @@ -783,8 +783,7 @@ pw_notify_send () { | ||||
| export -f pw_notify_send | ||||
|  | ||||
| check_start_from_steam () { | ||||
|     if [[ "${START_FROM_STEAM}" == 1 ]] \ | ||||
|     || [[ "${PW_CLI}" == 1 ]] | ||||
|     if [[ "${START_FROM_STEAM}" == 1 ]] | ||||
|     then return 0 | ||||
|     else return 1 | ||||
|     fi | ||||
| @@ -876,7 +875,7 @@ check_vendor_gpu () { | ||||
|         esac | ||||
|     } | ||||
|  | ||||
|     if [[ $PW_GPU_USE != "disabled" ]] | ||||
|     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:]')" | ||||
| @@ -1003,7 +1002,6 @@ fix_icon_name_png () { | ||||
| # Поиск нужного .desktop файла по $portwine_exe (для показа в комментариях нужного времени) | ||||
| # Параллельное создание базы по времени после завершения приложения | ||||
| search_desktop_file () { | ||||
|     [[ $PW_USE_SETUP_FILE == "1" ]] && return 0 | ||||
|     local desktop_file desktop_file_new line1 line2 FILE_SHA256SUM_ARRAY EXEC_DESKTOP ICON_NAME BROKEN_LINE FILE_SHA256SUM_FOUND FILE_SHA256SUM_NOT_FOUND | ||||
|     if [[ -z $FILE_SHA256SUM ]] ; then | ||||
|         read -r -a FILE_SHA256SUM_ARRAY < <(sha256sum "$portwine_exe") | ||||
| @@ -1496,6 +1494,18 @@ convert_dec_and_hex () { | ||||
|     esac | ||||
| } | ||||
|  | ||||
| recommend_dpi () { | ||||
|     local height=$1 | ||||
|  | ||||
|     if [[ -z "$height" ]] ; then | ||||
|         echo "disabled" | ||||
|         return 1 | ||||
|     fi | ||||
|     local dpi=$(( height / 11 )) | ||||
|     (( dpi < 96 )) && dpi="96" | ||||
|     echo "$dpi" | ||||
| } | ||||
|  | ||||
| fixes_after_update () { | ||||
|     local fixes_path line fixes_info IFS | ||||
|     fixes_info=$1 | ||||
| @@ -1512,14 +1522,11 @@ fixes_after_update () { | ||||
| } | ||||
|  | ||||
| restart_pp () { | ||||
|     if [[ "${PW_CLI}" != 1 ]] ; then | ||||
|         case "$1" in | ||||
|             --userconf) export RESTART_PP_USED="userconf" ;; | ||||
|             --edit_db) export RESTART_PP_USED="edit_db" ;; | ||||
|         esac | ||||
|         /usr/bin/env bash -c "${pw_full_command_line[@]}" & | ||||
|         exit 0 | ||||
|     fi | ||||
|     case "$1" in | ||||
|         --userconf) export RESTART_PP_USED="userconf" ;; | ||||
|         --edit_db) export RESTART_PP_USED="edit_db" ;; | ||||
|     esac | ||||
|     /usr/bin/env bash -c "${pw_full_command_line[@]}" & | ||||
|     exit 0 | ||||
| } | ||||
|  | ||||
| @@ -1852,10 +1859,9 @@ pw_lsfg_vk_check () { | ||||
|             fi | ||||
|         fi | ||||
|  | ||||
|         # export PW_WINE_FULLSCREEN_FSR="0" | ||||
|         export PW_WINE_FULLSCREEN_FSR="0" | ||||
|         export LSFG_DLL_PATH="$lsfg_vk_path/Lossless.dll" | ||||
|  | ||||
|         check_variables LSFG_LEGACY "1" | ||||
|         check_variables LSFG_MULTIPLIER "2" | ||||
|         check_variables LSFG_FLOW_SCALE "0.1" | ||||
|         check_variables LSFG_PERF_MODE "1" | ||||
| @@ -2057,13 +2063,13 @@ stop_portwine () { | ||||
|         create_name_desktop | ||||
|     fi | ||||
|  | ||||
|     if [[ $PW_CLI != "1" ]] ; then | ||||
|         case "$1" in | ||||
|             --restart) restart_pp ;; | ||||
|                     *) unset SKIP_CHECK_UPDATES ;; | ||||
|         esac | ||||
|     fi | ||||
|     exit 0  | ||||
|     case "$1" in | ||||
|         --restart) | ||||
|             restart_pp ;; | ||||
|         *) | ||||
|             unset SKIP_CHECK_UPDATES | ||||
|             exit 0 ;; | ||||
|     esac | ||||
| } | ||||
| export -f stop_portwine | ||||
|  | ||||
| @@ -2465,7 +2471,7 @@ pw_init_db () { | ||||
|         if [[ "${PW_WINE_CPU_TOPOLOGY}" == "disabled" ]] && [[ -n "${WINE_CPU_TOPOLOGY}" ]] ; then | ||||
|             export PW_WINE_CPU_TOPOLOGY="${WINE_CPU_TOPOLOGY}" | ||||
|         fi | ||||
|         if compgen -G "${PATH_TO_GAME}/*_Data/Resources/*unity*" &>/dev/null \ | ||||
|         if lsbash "${PATH_TO_GAME}"/*_Data/Resources/ --grep "unity" &>/dev/null \ | ||||
|         && [[ "${PW_WINE_CPU_TOPOLOGY}" == "disabled" ]] \ | ||||
|         && [[ $(grep -c ^"processor" /proc/cpuinfo) -gt "8" ]] | ||||
|         then | ||||
| @@ -2474,8 +2480,7 @@ pw_init_db () { | ||||
|         fi | ||||
|     fi | ||||
|  | ||||
|     [[ -z $PW_AMD_VULKAN_USE ]] && export PW_AMD_VULKAN_USE="disabled" | ||||
|     case "$PW_AMD_VULKAN_USE" in | ||||
|     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 | ||||
| @@ -2793,13 +2798,6 @@ pw_check_vulkan () { | ||||
|     fi | ||||
| } | ||||
|  | ||||
| pw_check_vulkan_extensions () { | ||||
|     if sed -n "/deviceName \+ = $PW_GPU_USE/,/GPU/p" "${PW_TMPFS_PATH}/vulkaninfo.tmp" | grep -w "$1" &>/dev/null | ||||
|     then return 0 | ||||
|     else return 1 | ||||
|     fi | ||||
| } | ||||
|  | ||||
| compare_versions () { | ||||
|     IFS='.' read -ra a1 <<< "$1" | ||||
|     IFS='.' read -ra a2 <<< "$2" | ||||
| @@ -2840,16 +2838,17 @@ 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 [[ $PW_GPU_USE == "disabled" ]] ; then | ||||
|             [[ -z $GET_GPU_NAMES ]] && get_gpu_names | ||||
|         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 | ||||
|  | ||||
|         # Заходим сюда только, когда в системе есть vulkan драйвер | ||||
|         if [[ -n ${SELECTED_VULKAN_GPU[*]} ]] ; then | ||||
|             # Если используется amdvlk или amdgpupro, то проверка на vulkan драйвер происходит среди них, а не через mesa драйвер | ||||
|         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 | ||||
| @@ -2859,7 +2858,7 @@ pw_check_dxvk () { | ||||
|                     done | ||||
|                 fi | ||||
|             fi | ||||
|             # Какие карты в приоритете, если не выбран изначально PW_GPU_USE | ||||
|             # какие карты в приоритете, если не выбран изначально PW_GPU_USE | ||||
|             if [[ -n ${SELECTED_VULKAN_GPU[1]} ]] ; then | ||||
|                 for elem in "${SELECTED_VULKAN_GPU[@]}"; do | ||||
|                     case ${elem,,} in | ||||
| @@ -2869,7 +2868,8 @@ pw_check_dxvk () { | ||||
|                                *) other_group+=("$elem") ;; | ||||
|                     esac | ||||
|                 done | ||||
|                 SELECTED_VULKAN_GPU=( | ||||
|                 unset SELECTED_VULKAN_GPU | ||||
|                 SELECTED_VULKAN_GPU_NEW=( | ||||
|                     "${nvidia_group[@]}" | ||||
|                     "${amd_group[@]}" | ||||
|                     "${intel_group[@]}" | ||||
| @@ -2878,81 +2878,63 @@ pw_check_dxvk () { | ||||
|             fi | ||||
|             # получаем информацию о конкретном драйвере который выбран в PW_GPU_USE, | ||||
|             # либо ищем наилучший драйвер с учётом приоритета видеокарт + информация | ||||
|             mapfile -t PW_VULKAN_DRIVER_ARRAY < <(awk '/^GPU[0-9]+/ { | ||||
|             if (count == 7) { | ||||
|                 # Выводим собранные значения перед переходом к следующему GPU | ||||
|                 for (i = 1; i <= 7; i++) print values[i] | ||||
|                 } | ||||
|                 # Сбрасываем счетчик и массив значений для нового GPU | ||||
|                 count = 0 | ||||
|                 delete values | ||||
|                 next | ||||
|             } | ||||
|  | ||||
|             count < 7 { | ||||
|                 if (/apiVersion|driverVersion|vendorID|deviceID/) { | ||||
|                     values[++count] = $3 | ||||
|                 } else if (/deviceName|driverName|driverInfo/) { | ||||
|                     split($0, parts, "= ") | ||||
|                     values[++count] = parts[2] | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|             END { | ||||
|                 # Выводим значения для последнего GPU, если набралось 7 | ||||
|                 if (count == 7) { | ||||
|                     for (i = 1; i <= 7; i++) print values[i] | ||||
|                 } | ||||
|             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[@]}" ; do | ||||
|                 x="0" && y="7" | ||||
|             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 [[ $PW_AMD_VULKAN_USE != "disabled" ]] ; then | ||||
|                         [[ $PW_AMD_VULKAN_USE == "amdvlk" && ${PW_VULKAN_DRIVER_ARRAY_CHECK[5],,} == *"amd open-source driver"* ]] && break | ||||
|                         [[ $PW_AMD_VULKAN_USE == "amdgpupro" && ${PW_VULKAN_DRIVER_ARRAY_CHECK[5],,} == *"amd proprietary driver"* ]] && break | ||||
|                     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[4]} == "$i" ]] && break | ||||
|                         [[ ${PW_VULKAN_DRIVER_ARRAY_CHECK[2]} == "$i" ]] && break | ||||
|                     fi | ||||
|                     x=$(( x + 7 )) && y=$(( y + 7 )) | ||||
|                     x=$(( x + 5 )) && y=$(( y + 5 )) | ||||
|                     # фикс, если вдруг PW_GPU_USE изменился или сломался | ||||
|                     if [[ -z ${PW_VULKAN_DRIVER_ARRAY_CHECK[4]} ]] ; then | ||||
|                         PW_GPU_USE="disabled" | ||||
|                     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[5],,} =~ nvidia ]] ; then | ||||
|                     if compare_versions "${PW_VULKAN_DRIVER_ARRAY_CHECK[6]}" "550.54.14" ; then | ||||
|  | ||||
|                 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[6],,} =~ mesa ]] ; then | ||||
|                 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[5],,} == *"amd open-source driver"* ]] \ | ||||
|                 || [[ ${PW_VULKAN_DRIVER_ARRAY_CHECK[5],,} == *"amd proprietary driver"* ]] ; then | ||||
|                 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 | ||||
|  | ||||
|             PW_vendorID="$(echo "${PW_VULKAN_DRIVER_ARRAY_CHECK[2]}" | awk -F'0x' '{print $2}')" | ||||
|             PW_deviceID="$(echo "${PW_VULKAN_DRIVER_ARRAY_CHECK[3]}" | awk -F'0x' '{print $2}')" | ||||
|             export PW_vendorID PW_deviceID | ||||
|  | ||||
|             # если используется 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 [[ $PW_GPU_USE == "disabled" ]] ; then | ||||
|                 export PW_GPU_USE=${PW_VULKAN_DRIVER_ARRAY_CHECK[4]} | ||||
|             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" | ||||
| @@ -2963,8 +2945,8 @@ pw_check_dxvk () { | ||||
|             *) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_SAREK!$SORT_OPENGL" ;; | ||||
|         esac | ||||
|     else | ||||
|         if [[ $PW_GPU_USE == "disabled" ]] ; then | ||||
|             PW_VULKAN_USE="0" | ||||
|         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 | ||||
| @@ -3039,17 +3021,7 @@ pw_skip_get_info () { | ||||
|             PW_SCREEN_RESOLUTION="$(<"${PW_TMPFS_PATH}/xrandr.tmp" sed -rn 's/^.*primary.* ([0-9]+x[0-9]+).*$/\1/p')" | ||||
|             PW_SCREEN_PRIMARY="$(grep -e 'primary' "${PW_TMPFS_PATH}/xrandr.tmp" | awk '{print $1}')" | ||||
|         fi | ||||
|  | ||||
|         if [[ $PW_SCREEN_RESOLUTION != *x* ]] ; then | ||||
|             if command -v hyprctl >/dev/null 2>&1 ; then | ||||
|                 monitor_info=$(hyprctl monitors -j 2>/dev/null | jq -r '.[] | select(.focused==true)') | ||||
|                 PW_SCREEN_PRIMARY=$(echo "$monitor_info" | jq -r '.name') | ||||
|                 PW_SCREEN_RESOLUTION=$(echo "$monitor_info" | jq -r '"\(.width)x\(.height)"') | ||||
|             fi | ||||
|         fi | ||||
|  | ||||
|         [[ $PW_SCREEN_RESOLUTION != *x* ]] && PW_SCREEN_RESOLUTION="1920x1080" | ||||
|  | ||||
|         export PW_SCREEN_PRIMARY PW_SCREEN_RESOLUTION | ||||
|  | ||||
|         if [[ -f "${PW_TMPFS_PATH}/locale.tmp" ]] ; then | ||||
| @@ -3071,7 +3043,7 @@ pw_skip_get_info () { | ||||
|         unset AMD_VULKAN_DRIVER_LIST | ||||
|  | ||||
|         if ! check_flatpak \ | ||||
|         && [[ $(check_vendor_gpu) == "amd" ]] | ||||
|         && [[ $(check_vendor_gpu) =~ amd ]] | ||||
|         then | ||||
|             for DRIVER in $GET_AMD_VULKAN_DRIVER_LIST; do | ||||
|                 case "$DRIVER" in | ||||
| @@ -3380,6 +3352,12 @@ start_portwine () { | ||||
|         local PFX_TMP="${PORT_WINE_PATH}/data/tmp/pfx" | ||||
|         create_new_dir "${PFX_TMP}" | ||||
|  | ||||
|         # TODO: drop this fix legacy file .dotnet later | ||||
|         if [[ -f "${WINEPREFIX}/.dotnet${DOTPFX_VER}" ]] ; then | ||||
|             touch "${WINEPREFIX}/.${FILE_NAME_PFX}" | ||||
|             try_remove_file "${WINEPREFIX}/.dotnet${DOTPFX_VER}" | ||||
|         fi | ||||
|  | ||||
|         if [[ ! -f "${WINEPREFIX}/.${FILE_NAME_PFX}" ]] ; then | ||||
|             print_info "Download and install ${FILE_NAME_PFX} pfx..." | ||||
|             if [[ ! -f "${PFX_TMP}/${FILE_NAME_PFX}.tar.xz" ]] ; then | ||||
| @@ -3440,10 +3418,6 @@ start_portwine () { | ||||
|         export STEAM_COMPAT_TRANSCODED_MEDIA_PATH="${PORT_WINE_TMP_PATH}/gstreamer_tmp" | ||||
|         export MEDIACONV_AUDIO_DUMP_FILE="$STEAM_COMPAT_TRANSCODED_MEDIA_PATH/audiov2.foz" | ||||
|         export MEDIACONV_VIDEO_DUMP_FILE="$STEAM_COMPAT_TRANSCODED_MEDIA_PATH/video.foz" | ||||
|  | ||||
|         export PROTON_MEDIA_USE_GST="1" | ||||
|     else | ||||
|         export PROTON_MEDIA_USE_GST="0" | ||||
|     fi | ||||
|  | ||||
|     check_variables VKD3D_DEBUG "none" | ||||
| @@ -3455,7 +3429,7 @@ start_portwine () { | ||||
|     if [[ "${PW_LOG}" == 1 ]] \ | ||||
|     || [[ -n "$PW_DEBUG" ]] | ||||
|     then | ||||
|         # check_variables GST_DEBUG "GST_REFCOUNTING:5,GST_BUFFER:5" | ||||
|         check_variables GST_DEBUG "ERROR" | ||||
|         check_variables WINEDEBUG "err+all" | ||||
|         check_variables WINE_MONO_TRACE "E:System.NotImplementedException" | ||||
|         check_variables VKBASALT_LOG_LEVEL "error" | ||||
| @@ -3464,9 +3438,6 @@ start_portwine () { | ||||
|         unset WINE_MONO_TRACE | ||||
|     fi | ||||
|  | ||||
|     #disable winebth.sys as it crashes winedevice.exe | ||||
|     var_winedlloverride_update "winebth.sys=d" | ||||
|  | ||||
|     pw_wineboot () { | ||||
|         LIST_NATIVE_WINE_DLL_LINKS="winevulkan ir50_32 amd_ags_x64 wined3d vulkan-1" | ||||
|         for dll in $LIST_NATIVE_WINE_DLL_LINKS ; do | ||||
| @@ -3521,6 +3492,7 @@ start_portwine () { | ||||
|         elif [[ "${PW_CHECK_AUTOINSTALL}" == 1 ]] \ | ||||
|         && [[ "${DISABLE_CP_DEFPFX}" == 1 ]] ; then | ||||
|             pw_update_pfx_cover_gui | ||||
|             unpack "${PW_PLUGINS_PATH}/blank_pfx.tar.xz" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/" silent | ||||
|             pw_wineboot -i | ||||
|         elif yad_question "${translations[Do you want to installing recommended libraries in the new prefix:]} ${PW_PREFIX_NAME}" ; then | ||||
|             pw_update_pfx_cover_gui | ||||
| @@ -3528,6 +3500,7 @@ start_portwine () { | ||||
|             pw_wineboot -r | ||||
|         else | ||||
|             pw_update_pfx_cover_gui | ||||
|             unpack "${PW_PLUGINS_PATH}/blank_pfx.tar.xz" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/" silent | ||||
|             pw_wineboot -i | ||||
|         fi | ||||
|         pw_stop_progress_bar | ||||
| @@ -3567,6 +3540,8 @@ start_portwine () { | ||||
|     if [[ $PW_USE_NTSYNC == "1" ]] ; then | ||||
|         if [[ -e "/dev/ntsync" ]] ; then | ||||
|             export WINENTSYNC="1" | ||||
|             export WINEFSYNC="0" | ||||
|             export WINEESYNC="0" | ||||
|         else | ||||
|             export WINENTSYNC="0" | ||||
|             print_error "/dev/ntsync - not found!" | ||||
| @@ -3742,12 +3717,7 @@ start_portwine () { | ||||
|  | ||||
|     if [[ "${PW_USE_RAY_TRACING}" == "1" ]] ; then | ||||
|         var_vkd3d_config_update dxr | ||||
|         if [[ $(check_vendor_gpu) == "amd" ]] ; then | ||||
|             var_radv_perftest_config_update rt | ||||
|             if ! pw_check_vulkan_extensions "VK_KHR_ray_tracing_pipeline" ; then | ||||
|                 var_radv_perftest_config_update emulate_rt | ||||
|             fi | ||||
|         fi | ||||
|         var_radv_perftest_config_update rt | ||||
|     else | ||||
|         var_vkd3d_config_update nodxr | ||||
|     fi | ||||
| @@ -3787,11 +3757,9 @@ start_portwine () { | ||||
|     [[ "${PW_MANGOHUD_USER_CONF}" == 1 ]] && unset MANGOHUD_CONFIG | ||||
|     [[ "${PW_VKBASALT_USER_CONF}" == 1 ]] && unset PW_VKBASALT_EFFECTS PW_VKBASALT_FFX_CAS | ||||
|  | ||||
|     if [[ $PW_GPU_USE != "disabled" ]] && [[ $PW_AMD_VULKAN_USE == "disabled" ]] ; then | ||||
|         export DXVK_FILTER_DEVICE_NAME="$PW_GPU_USE" | ||||
|         export VKD3D_FILTER_DEVICE_NAME="$PW_GPU_USE" | ||||
|         export MESA_VK_DEVICE_SELECT_FORCE_DEFAULT_DEVICE="1" | ||||
|         export MESA_VK_DEVICE_SELECT="$PW_vendorID:$PW_deviceID" | ||||
|     if [[ "${PW_GPU_USE}" != "disabled" ]] && [[ "${PW_AMD_VULKAN_USE}" == "disabled" ]] ; then | ||||
|         export DXVK_FILTER_DEVICE_NAME="${PW_GPU_USE}" | ||||
|         export VKD3D_FILTER_DEVICE_NAME="${PW_GPU_USE}" | ||||
|     fi | ||||
|  | ||||
|     if [[ -f "$PATH_TO_GAME/dxvk.conf" ]] ; then | ||||
| @@ -3807,18 +3775,8 @@ start_portwine () { | ||||
|         export int_xneur=1 | ||||
|     fi | ||||
|  | ||||
|     if [[ $(check_vendor_gpu) == "nvidia" ]] ; then | ||||
|         #https://github.com/flathub/net.lutris.Lutris/pull/368#issuecomment-1751381312 | ||||
|         check_variables WEBKIT_DISABLE_DMABUF_RENDERER "1" | ||||
|         #Для того чтобы OpenGL всегда работал через nvidia (если в PW_GPU_USE выбрана nvidia) | ||||
|         check_variables __NV_PRIME_RENDER_OFFLOAD "1" | ||||
|         check_variables __VK_LAYER_NV_optimus "NVIDIA_only" | ||||
|         check_variables __GLX_VENDOR_LIBRARY_NAME "nvidia" | ||||
|     else | ||||
|         check_variables __NV_PRIME_RENDER_OFFLOAD "0" | ||||
|         check_variables __VK_LAYER_NV_optimus "non_NVIDIA_only" | ||||
|         unset __GLX_VENDOR_LIBRARY_NAME | ||||
|     fi | ||||
|     #https://github.com/flathub/net.lutris.Lutris/pull/368#issuecomment-1751381312 | ||||
|     [[ $(check_vendor_gpu) =~ nvidia ]] && export WEBKIT_DISABLE_DMABUF_RENDERER=1 | ||||
|  | ||||
|     if check_gamescope_session ; then | ||||
|         export PW_GAMEMODERUN_SLR="" | ||||
| @@ -3829,15 +3787,14 @@ start_portwine () { | ||||
|         && (systemctl is-active --quiet ananicy.service \ | ||||
|         || systemctl is-active --quiet ananicy-cpp.service \ | ||||
|         || systemctl is-active --quiet scx.service \ | ||||
|         || systemctl is-active --quiet scx_loader.service) \ | ||||
|         || systemctl is-active --quiet falcond | ||||
|         || systemctl is-active --quiet scx_loader.service) | ||||
|         then | ||||
|             export GAMEMODERUN=0 | ||||
|             export PW_GAMEMODERUN_SLR="" | ||||
|             if command -v powerprofilesctl &>/dev/null ; then | ||||
|                 if powerprofilesctl list | grep -q 'performance:' ; then | ||||
|                     export PW_POWERPROFILECTL_SLR="powerprofilesctl launch -p performance --" | ||||
|                     print_info "Gamemode replaced by powerprofilectl to avoid conflicts" | ||||
|                     print_info "Gamemode replaced by powerprofilectl to avoid conflict with ananicy and sched-ext." | ||||
|                 else | ||||
|                     export PW_POWERPROFILECTL_SLR="" | ||||
|                 fi | ||||
| @@ -4036,7 +3993,7 @@ fi | ||||
|         then | ||||
|             export LIBGL_KOPPER_DRI2="1" | ||||
|         fi | ||||
|         [[ $(check_vendor_gpu) == "nouveau" ]] && export NOUVEAU_USE_ZINK="1" | ||||
|         [[ $(check_vendor_gpu) =~ nouveau ]] && export NOUVEAU_USE_ZINK="1" | ||||
|     fi | ||||
|  | ||||
|     # WINED3D VULKAN | ||||
| @@ -4342,7 +4299,7 @@ fi | ||||
|             fi | ||||
|         done | ||||
|         create_new_dir "${PATH_TO_DXVK_FILES}/dxvk_cache" | ||||
|         check_variables DXVK_STATE_CACHE_PATH "${PATH_TO_DXVK_FILES}"/dxvk_cache | ||||
|         export DXVK_STATE_CACHE_PATH="${PATH_TO_DXVK_FILES}"/dxvk_cache | ||||
|         export DXVK_STATE_CACHE="1" | ||||
|     fi | ||||
|  | ||||
| @@ -4389,7 +4346,7 @@ fi | ||||
|             var_winedlloverride_update "${wine_vkd3d_dll}=n" | ||||
|         done | ||||
|         create_new_dir "${PATH_TO_VKD3D_FILES}/vkd3d_cache" | ||||
|         check_variables VKD3D_SHADER_CACHE_PATH "${PATH_TO_VKD3D_FILES}/vkd3d_cache" | ||||
|         export VKD3D_SHADER_CACHE_PATH="${PATH_TO_VKD3D_FILES}/vkd3d_cache" | ||||
|     fi | ||||
|  | ||||
|     # некоторым играм для любых 3D api для правильной работы wined3d необходимо чтобы эти библиотеки всегда были | ||||
| @@ -4432,11 +4389,11 @@ fi | ||||
|     if [[ "${PW_USE_SHADER_CACHE}" == "1" ]] ; then | ||||
|         create_new_dir "${PW_VULKAN_DIR}/gl_shader_cache" | ||||
|         create_new_dir "${PW_VULKAN_DIR}/mesa_shader" | ||||
|         check_variables __GL_SHADER_DISK_CACHE "1" | ||||
|         check_variables __GL_SHADER_DISK_CACHE_PATH "${PW_VULKAN_DIR}/gl_shader_cache" | ||||
|         check_variables __GL_SHADER_DISK_CACHE_SIZE "50000000000" | ||||
|         check_variables __GL_SHADER_DISK_CACHE_SKIP_CLEANUP "1" | ||||
|         check_variables MESA_SHADER_CACHE_DIR "${PW_VULKAN_DIR}/mesa_shader" | ||||
|         export __GL_SHADER_DISK_CACHE="1" | ||||
|         export __GL_SHADER_DISK_CACHE_PATH="${PW_VULKAN_DIR}/gl_shader_cache" | ||||
|         export __GL_SHADER_DISK_CACHE_SIZE="50000000000" | ||||
|         export __GL_SHADER_DISK_CACHE_SKIP_CLEANUP="1" | ||||
|         export MESA_SHADER_CACHE_DIR="${PW_VULKAN_DIR}/mesa_shader" | ||||
|     else | ||||
|         export __GL_SHADER_DISK_CACHE="0" | ||||
|         export DXVK_STATE_CACHE="disable" | ||||
| @@ -4587,10 +4544,13 @@ fi | ||||
|         get_and_set_reg_file --delete 'Software\Wine\Drivers' 'Graphics' | ||||
|     fi | ||||
|  | ||||
|     if [[ $PW_WINE_DPI_VALUE =~ (disabled|recommended|96) ]] ; then | ||||
|         get_and_set_reg_file --add 'Control Panel\Desktop' 'LogPixels' 'REG_DWORD' "96" "user" | ||||
|     else | ||||
|         get_and_set_reg_file --add 'Control Panel\Desktop' 'LogPixels' 'REG_DWORD' "$PW_WINE_DPI_VALUE" "user" | ||||
|     if [[ $PW_WINE_DPI_VALUE != "disabled" ]] ; then | ||||
|         if [[ $PW_WINE_DPI_VALUE == "recommended" ]] ; then | ||||
|             PW_RECOMMENDED_DPI=$(recommend_dpi "${PW_SCREEN_RESOLUTION:5:8}") | ||||
|             get_and_set_reg_file --add 'Control Panel\Desktop' 'LogPixels' 'REG_DWORD' "$PW_RECOMMENDED_DPI" "user" | ||||
|         else | ||||
|             get_and_set_reg_file --add 'Control Panel\Desktop' 'LogPixels' 'REG_DWORD' "$PW_WINE_DPI_VALUE" "user" | ||||
|         fi | ||||
|     fi | ||||
|  | ||||
|     case "$PW_SOUND_DRIVER_USE" in | ||||
| @@ -4646,18 +4606,18 @@ fi | ||||
|     || check_gamescope_session | ||||
|     then | ||||
|         export vk_xwayland_wait_ready="false" | ||||
|         if [[ $(check_vendor_gpu) == "amd" ]] ; then | ||||
|         if [[ $(check_vendor_gpu) =~ amd ]] ; then | ||||
|             export RADV_DEBUG+="nodcc " | ||||
|             export AMD_DEBUG="nodcc" | ||||
|             if ! pw_check_vulkan_extensions "VK_EXT_image_drm_format_modifier" ; then | ||||
|             if [[ ! $(<"${PW_TMPFS_PATH}/vulkaninfo.tmp") =~ VK_EXT_image_drm_format_modifier ]] ; then | ||||
|                 export R600_DEBUG="nodcc" | ||||
|                 grep -e '--backend' "${PW_TMPFS_PATH}/gamescope.tmp" &>/dev/null && PW_GS_BACKEND_SDL="1" | ||||
|             fi | ||||
|         fi | ||||
|         if [[ $(check_vendor_gpu) == "intel" ]] ; then | ||||
|         if [[ $(check_vendor_gpu) =~ intel ]] ; then | ||||
|             export INTEL_DEBUG="norbc" | ||||
|         fi | ||||
|         if [[ $(check_vendor_gpu) == "nvidia" ]] ; then | ||||
|         if [[ $(check_vendor_gpu) =~ nvidia ]] ; then | ||||
|             PW_GAMESCOPE_VARIABLES_BEFORE+="__GL_THREADED_OPTIMIZATIONS=0 " | ||||
|             PW_GAMESCOPE_VARIABLES_AFTER+="__GL_THREADED_OPTIMIZATIONS=1 " | ||||
|         fi | ||||
| @@ -4666,8 +4626,12 @@ fi | ||||
|     if [[ "${PW_GAMESCOPE}" == "1" && "${GAMESCOPE_INSTALLED}" == "1" ]] \ | ||||
|     && ! check_gamescope_session | ||||
|     then | ||||
|         if [[ $PW_GPU_USE != "disabled" ]] | ||||
|         then PW_ID_VIDEO=" --prefer-vk-device ${PW_vendorID}:${PW_deviceID}" | ||||
|         if [[ "${PW_GPU_USE}" != "disabled" ]] ; then | ||||
|             PW_vendorID="$(grep -B3 "${PW_GPU_USE}" "${PW_TMPFS_PATH}/vulkaninfo.tmp" | grep vendorID | sort -u | awk -F'0x' '{print $2}')" | ||||
|             PW_deviceID="$(grep -B3 "${PW_GPU_USE}" "${PW_TMPFS_PATH}/vulkaninfo.tmp" | grep deviceID | sort -u | awk -F'0x' '{print $2}')" | ||||
|             PW_ID_VIDEO=" --prefer-vk-device ${PW_vendorID}:${PW_deviceID}" | ||||
|         else | ||||
|             PW_ID_VIDEO="" | ||||
|         fi | ||||
|  | ||||
|         #checkbox | ||||
| @@ -4676,8 +4640,14 @@ fi | ||||
|         [[ "${PW_GS_BORDERLESS_WINDOW}" == "1" ]] &&  PW_GAMESCOPE_ARGS_NEW+=" -b" | ||||
|         [[ "${PW_GS_FORCE_GRAB_CURSOR}" == "1" ]] && PW_GAMESCOPE_ARGS_NEW+=" --force-grab-cursor" | ||||
|         [[ "${PW_GS_FORCE_GRAB_KEYBOARD}" == "1" ]] && PW_GAMESCOPE_ARGS_NEW+=" -g" | ||||
|         [[ "${PW_GS_HDR_ENABLE}" == "1" ]] && PW_GAMESCOPE_ARGS_NEW+=" --hdr-enabled" | ||||
|  | ||||
|         if [[ "${PW_GS_HDR_ENABLE}" == "1" ]] ; then | ||||
|             PW_GAMESCOPE_ARGS_NEW+=" --hdr-enabled" | ||||
|             export DXVK_HDR="1" | ||||
|         fi | ||||
|  | ||||
|         [[ "${PW_GS_ENABLE_GAMESCOPE_WSI}" == "1" ]] && export ENABLE_GAMESCOPE_WSI="1" | ||||
|  | ||||
|         [[ "${PW_GS_HDR_ITM_ENABLE}" == "1" ]] && PW_GAMESCOPE_ARGS_NEW+=" --hdr-itm-enable" | ||||
|         [[ "${PW_GS_SDR_GAMMUT_WIDENESS}" == "1" ]] && PW_GAMESCOPE_ARGS_NEW+=" --sdr-gamut-wideness" | ||||
|         [[ "${PW_GS_FORCE_COMPOSITION}" == "1" ]] && PW_GAMESCOPE_ARGS_NEW+=" --force-composition" | ||||
| @@ -5349,11 +5319,7 @@ gui_proton_downloader () { | ||||
|             }' /proc/cpuinfo) | ||||
|  | ||||
|         for PGEGIT in "${PROTON_CACHYOS_GIT[@]}" ; do | ||||
|             if [[ "$PGEGIT" =~ v2 ]] && [[ "$CPU_LEVEL" -lt 2 ]]; then | ||||
|                 continue | ||||
|             elif [[ "$PGEGIT" =~ v3 ]] && [[ "$CPU_LEVEL" -lt 3 ]]; then | ||||
|                 continue | ||||
|             elif [[ "$PGEGIT" =~ v4 ]] && [[ "$CPU_LEVEL" -lt 4 ]]; then | ||||
|             if [[ "$PGEGIT" =~ v3 ]] && [[ "$CPU_LEVEL" -lt 3 ]]; then | ||||
|                 continue | ||||
|             else | ||||
|                 echo "${PGEGIT}" >> "${PW_TMPFS_PATH}/tmp_proton_cachyos_git" | ||||
| @@ -5581,7 +5547,7 @@ gui_edit_db () { | ||||
|  | ||||
|     if check_wayland_session | ||||
|     then rm_from_array "PW_EDIT_DB_LIST" PW_USE_US_LAYOUT | ||||
|     else rm_from_array "PW_EDIT_DB_LIST" PW_USE_NATIVE_WAYLAND | ||||
|     else rm_from_array "PW_EDIT_DB_LIST" PW_USE_NATIVE_WAYLAND PW_USE_DXVK_HDR | ||||
|     fi | ||||
|     if [[ $PW_WINE_USE =~ (PROTON_LG|WINE_LG) ]] || [[ $PW_VULKAN_USE == "0" ]] ; then | ||||
|         rm_from_array "PW_EDIT_DB_LIST" PW_USE_SUPPLIED_DXVK_VKD3D | ||||
| @@ -5659,7 +5625,7 @@ gui_edit_db () { | ||||
|     [[ ! -e "/dev/ntsync" ]] && DISABLE_EDIT_DB_LIST+=" PW_USE_NTSYNC" | ||||
|  | ||||
|     if ! check_flatpak \ | ||||
|     && ! compare_versions "$(ldd --version | head -n 1 | awk '{print $NF}')" "2.38" | ||||
|     && [[ $(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" | ||||
| @@ -5726,6 +5692,13 @@ gui_edit_db () { | ||||
|         NUMA_NODE_INDEX="disabled" | ||||
|     fi | ||||
|  | ||||
|     if [[ -n "${PW_AMD_VULKAN_USE}" ]] && \ | ||||
|     [[ "${PW_AMD_VULKAN_USE}" != "disabled" ]] ; then | ||||
|         AMD_VULKAN_VAR="${PW_AMD_VULKAN_USE}" | ||||
|     else | ||||
|         AMD_VULKAN_VAR="disabled" | ||||
|     fi | ||||
|  | ||||
|     [[ $AMD_VULKAN_CB == ":LBLH" ]] && translations[Select needed AMD vulkan implementation]="" | ||||
|     if [[ $NUMA_NODE_LIST == "0" ]] ; then | ||||
|         NUDA_CPU_CB=":LBLH" | ||||
| @@ -5756,7 +5729,7 @@ A brief instruction: | ||||
| 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 "$PW_AMD_VULKAN_USE" "$AMD_VULKAN_DRIVER_LIST")" \ | ||||
|     --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 multi‑core systems, CPUs are split into NUMA nodes, each with its own local memory and cores. | ||||
| Binding a game to a single node reduces memory‑access latency and limits costly core‑to‑core switches.)]} $NUDA_CPU_CB" "$(combobox_fix --disabled "${NUMA_NODE_INDEX}" "${NUMA_NODE_LIST}")" \ | ||||
|     1> "$PW_TMPFS_PATH/tmp_output_yad_fps_limit" 2>/dev/null & | ||||
| @@ -5828,18 +5801,12 @@ Binding a game to a single node reduces memory‑access latency and limits costl | ||||
|     fi | ||||
|     export PW_WINE_CPU_TOPOLOGY | ||||
|  | ||||
|     if [[ "${PW_CLI}" != "1" ]] ; then | ||||
|         for dont_touch_var in $DISABLE_EDIT_DB_LIST ; do | ||||
|             rm_from_array "PW_EDIT_DB_LIST" "$dont_touch_var" | ||||
|         done | ||||
|     fi | ||||
|     PW_EDIT_DB_FINAL_LIST=("${PW_EDIT_DB_LIST[@]}" \ | ||||
|     LAUNCH_PARAMETERS PW_WINDOWS_VER PW_DLL_INSTALL \ | ||||
|     for dont_touch_var in $DISABLE_EDIT_DB_LIST ; do | ||||
|         rm_from_array "PW_EDIT_DB_LIST" "$dont_touch_var" | ||||
|     done | ||||
|     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) | ||||
|     export PW_EDIT_DB_FINAL_LIST | ||||
|  | ||||
|     edit_db_from_gui "${PW_EDIT_DB_FINAL_LIST[@]}" | ||||
|     PW_LOCALE_SELECT PW_MESA_VK_WSI_PRESENT_MODE PW_AMD_VULKAN_USE PW_CPU_NUMA_NODE_INDEX PW_TASKSET_SLR | ||||
|  | ||||
|     if [[ -z "$MANGOHUD_CONFIG" ]] ; then | ||||
|         MONITOR_HEIGHT="$(echo "$PW_SCREEN_RESOLUTION" | awk -F'x' '{print $2}')" | ||||
| @@ -6607,7 +6574,7 @@ gui_userconf () { | ||||
|         NEW_STEAM_BEHAVIOR="${translations[Enable]}" | ||||
|     fi | ||||
|  | ||||
|     if [[ $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/!*/}" | ||||
| @@ -6740,10 +6707,8 @@ gui_userconf () { | ||||
|                 export PW_CHANGE_BRANCH="1" | ||||
|                 export PW_FORCE_UPDATE="1" | ||||
|             else | ||||
|                 if [[ $BRANCH == "DEVEL" ]] | ||||
|                 then BRANCH="devel" | ||||
|                 else 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]}" | ||||
| @@ -6771,8 +6736,8 @@ gui_userconf () { | ||||
|  | ||||
|             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} ;; | ||||
|                   "${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]}" ]] | ||||
| @@ -6862,33 +6827,29 @@ portwine_create_shortcut () { | ||||
|     [[ ! -e ${portwine_exe} ]] && return 1 | ||||
|     pw_create_gui_png | ||||
|  | ||||
|     check_variables PW_SHORTCUT_MENU "TRUE" | ||||
|     check_variables PW_SHORTCUT_DESKTOP "TRUE" | ||||
|     check_variables PW_SHORTCUT_STEAM "FALSE" | ||||
|     [[ -z "${PW_SHORTCUT_MENU}" ]] && PW_SHORTCUT_MENU="TRUE" | ||||
|     [[ -z "${PW_SHORTCUT_DESKTOP}" ]] && PW_SHORTCUT_DESKTOP="TRUE" | ||||
|     [[ -z "${PW_SHORTCUT_STEAM}" ]] && PW_SHORTCUT_STEAM="FALSE" | ||||
|  | ||||
|     unset name_desktop | ||||
|     create_name_desktop | ||||
|     export name_desktop="$PW_NAME_DESKTOP_PROXY" | ||||
|  | ||||
|     if [[ "${PW_CLI}" != 1 ]] ; then | ||||
|         OUTPUT=$("${pw_yad}" --title="${translations[Choices]}" --form \ | ||||
|         --gui-type="settings-shortcut" \ | ||||
|         --gui-type-box="${NOTEBOOK_GUI_TYPE_BOX}" --gui-type-layout="${NOTEBOOK_GUI_TYPE_LAYOUT}" \ | ||||
|         --gui-type-text="${NOTEBOOK_GUI_TYPE_TEXT}" --gui-type-images="${NOTEBOOK_GUI_TYPE_IMAGE}" \ | ||||
|         --window-icon "$PW_GUI_ICON_PATH/portproton.svg" \ | ||||
|         --image "${PORT_WINE_PATH}/data/img/${name_desktop_png}.png" \ | ||||
|         --text-align="center" --text "${translations[The shortcut will be created in the PortProton directory.]}" \ | ||||
|         --field="${translations[Name]}" "${name_desktop}" \ | ||||
|         --field="  ${translations[Add shortcut to MENU -> GAMES]}":CHK "$PW_SHORTCUT_MENU" \ | ||||
|         --field="  ${translations[Add shortcut to Desktop]}":CHK "$PW_SHORTCUT_DESKTOP" \ | ||||
|         --field="  ${translations[Add shortcut to STEAM library]}":CHK "$PW_SHORTCUT_STEAM" \ | ||||
|         --button="${translations[CANCEL]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":2 \ | ||||
|         --button="${translations[CREATE SHORTCUT]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 2>/dev/null) | ||||
|         PW_YAD_OUT=$? | ||||
|         portwine_output_yad_shortcut | ||||
|     else | ||||
|         portwine_output_yad_shortcut --silent | ||||
|     fi | ||||
|     OUTPUT=$("${pw_yad}" --title="${translations[Choices]}" --form \ | ||||
|     --gui-type="settings-shortcut" \ | ||||
|     --gui-type-box="${NOTEBOOK_GUI_TYPE_BOX}" --gui-type-layout="${NOTEBOOK_GUI_TYPE_LAYOUT}" \ | ||||
|     --gui-type-text="${NOTEBOOK_GUI_TYPE_TEXT}" --gui-type-images="${NOTEBOOK_GUI_TYPE_IMAGE}" \ | ||||
|     --window-icon "$PW_GUI_ICON_PATH/portproton.svg" \ | ||||
|     --image "${PORT_WINE_PATH}/data/img/${name_desktop_png}.png" \ | ||||
|     --text-align="center" --text "${translations[The shortcut will be created in the PortProton directory.]}" \ | ||||
|     --field="${translations[Name]}" "${name_desktop}" \ | ||||
|     --field="  ${translations[Add shortcut to MENU -> GAMES]}":CHK "$PW_SHORTCUT_MENU" \ | ||||
|     --field="  ${translations[Add shortcut to Desktop]}":CHK "$PW_SHORTCUT_DESKTOP" \ | ||||
|     --field="  ${translations[Add shortcut to STEAM library]}":CHK "$PW_SHORTCUT_STEAM" \ | ||||
|     --button="${translations[CANCEL]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":2 \ | ||||
|     --button="${translations[CREATE SHORTCUT]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 2>/dev/null) | ||||
|     PW_YAD_OUT=$? | ||||
|     portwine_output_yad_shortcut | ||||
| } | ||||
|  | ||||
| portwine_output_yad_shortcut () { | ||||
| @@ -6897,9 +6858,9 @@ portwine_output_yad_shortcut () { | ||||
|             [[ ! -e ${portwine_exe} ]] && return 1 | ||||
|             pw_create_gui_png | ||||
|             unset name_desktop | ||||
|             check_variables PW_SHORTCUT_MENU "TRUE" | ||||
|             check_variables PW_SHORTCUT_DESKTOP "TRUE" | ||||
|             check_variables PW_SHORTCUT_STEAM "FALSE" | ||||
|             PW_SHORTCUT_MENU="TRUE" | ||||
|             PW_SHORTCUT_DESKTOP="TRUE" | ||||
|             PW_SHORTCUT_STEAM="FALSE" | ||||
|         else | ||||
|             name_desktop=$(echo "$OUTPUT" | awk -F'|' '{print $1}' | sed -e "s/\`//g" -e "s/\"//g" -e "s/'//g" -e "s/\!//g") | ||||
|             PW_SHORTCUT_MENU=$(echo "$OUTPUT" | awk -F'|' '{print $2}') | ||||
| @@ -7469,8 +7430,30 @@ pw_create_prefix_backup () { | ||||
|     if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then | ||||
|         restart_pp | ||||
|     fi | ||||
|  | ||||
|     if pw_create_prefix_backup "$PW_PREFIX_NAME" "$PW_PREFIX_TO_BACKUP" ; then | ||||
|     if [[ -n "$(grep "/${PW_PREFIX_NAME}/" "${PORT_WINE_PATH}"/*.desktop )" ]] ; then | ||||
|         try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut" | ||||
|         grep "/${PW_PREFIX_NAME}/" "${PORT_WINE_PATH}"/*.desktop | awk -F"/${PW_PREFIX_NAME}/" '{print $2}' \ | ||||
|         | awk -F\" '{print $1}' > "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut" | ||||
|     fi | ||||
|     unset PW_SANDBOX_HOME_PATH | ||||
|     pw_init_runtime | ||||
|     if check_flatpak | ||||
|     then TMP_ALL_PATH="" | ||||
|     else TMP_ALL_PATH="LD_LIBRARY_PATH=\"${PW_LD_LIBRARY_PATH}\"" | ||||
|     fi | ||||
|     chmod -R u+w "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}" | ||||
| cat << EOF > "${PORT_WINE_TMP_PATH}"/pp_pfx_backup.sh | ||||
|     #!/usr/bin/env bash | ||||
|     ${TMP_ALL_PATH} mksquashfs "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}" \ | ||||
|     "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack.part" -comp zstd \ | ||||
|     || rm -f "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack.part" | ||||
|     sleep 3 | ||||
| EOF | ||||
|     chmod u+x "${PORT_WINE_TMP_PATH}"/pp_pfx_backup.sh | ||||
|     ${pw_runtime} ${PW_TERM} "${PORT_WINE_TMP_PATH}"/pp_pfx_backup.sh | ||||
|     try_remove_file "${PORT_WINE_TMP_PATH}"/pp_pfx_backup.sh | ||||
|     if [[ -f "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack.part" ]] ; then | ||||
|         mv -f "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack.part" "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack" | ||||
|         yad_info "${translations[Backup has been successfully created for prefix:]} $PW_PREFIX_NAME" | ||||
|         if [[ ! -f "${PORT_WINE_TMP_PATH}/pfx_backup_info" ]] ; then | ||||
|             yad_info "${translations[Attention! Do not pass the resev copy to third parties, there is a risk of losing accounts!]}" | ||||
| @@ -7482,98 +7465,6 @@ pw_create_prefix_backup () { | ||||
|     restart_pp | ||||
| } | ||||
|  | ||||
| pw_create_prefix_backup () { | ||||
|     PW_PREFIX_NAME="$1" | ||||
|     PW_PREFIX_TO_BACKUP="$2" | ||||
|  | ||||
|     if [[ -n "$(grep "/${PW_PREFIX_NAME}/" "${PORT_WINE_PATH}"/*.desktop )" ]] ; then | ||||
|         try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut" | ||||
|         grep "/${PW_PREFIX_NAME}/" "${PORT_WINE_PATH}"/*.desktop | awk -F"/${PW_PREFIX_NAME}/" '{print $2}' \ | ||||
|         | awk -F\" '{print $1}' > "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut" | ||||
|     fi | ||||
|  | ||||
|     unset PW_SANDBOX_HOME_PATH | ||||
|     pw_init_runtime | ||||
|     if check_flatpak; then | ||||
|         TMP_ALL_PATH="" | ||||
|     else | ||||
|         TMP_ALL_PATH="LD_LIBRARY_PATH=\"${PW_LD_LIBRARY_PATH}\"" | ||||
|     fi | ||||
|  | ||||
|     chmod -R u+w "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}" | ||||
|  | ||||
|     echo "#!/usr/bin/env bash | ||||
|     ${TMP_ALL_PATH} mksquashfs \"${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}\" \ | ||||
|     \"${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack.part\" -comp zstd \ | ||||
|     || rm -f \"${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack.part\" | ||||
|     " > "${PORT_WINE_TMP_PATH}/pp_pfx_backup.sh" | ||||
|  | ||||
|     chmod u+x "${PORT_WINE_TMP_PATH}/pp_pfx_backup.sh" | ||||
|  | ||||
|     ${pw_runtime} ${PW_TERM} "${PORT_WINE_TMP_PATH}/pp_pfx_backup.sh" | ||||
|  | ||||
|     try_remove_file "${PORT_WINE_TMP_PATH}/pp_pfx_backup.sh" | ||||
|  | ||||
|     if [[ -f "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack.part" ]]; then | ||||
|         mv -f "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack.part" \ | ||||
|               "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack" | ||||
|         return 0 | ||||
|     else | ||||
|         return 1 | ||||
|     fi | ||||
| } | ||||
|  | ||||
| pw_unpack_prefix () { | ||||
|     PW_BACKUP_FILE="$1" | ||||
|  | ||||
|     unset PW_SANDBOX_HOME_PATH | ||||
|     pw_init_runtime | ||||
|  | ||||
|     if check_flatpak; then | ||||
|         TMP_ALL_PATH="" | ||||
|     else | ||||
|         TMP_ALL_PATH="LD_LIBRARY_PATH=\"${PW_LD_LIBRARY_PATH}\"" | ||||
|     fi | ||||
|  | ||||
|     if check_selinux; then | ||||
|         NO_XATTRS_NEED="-no-xattrs" | ||||
|     else | ||||
|         NO_XATTRS_NEED="" | ||||
|     fi | ||||
|  | ||||
|     PW_PREFIX_NAME=$(basename "${PW_BACKUP_FILE^^}" .PPACK) | ||||
|  | ||||
|     echo "#!/usr/bin/env bash | ||||
|     ${TMP_ALL_PATH} unsquashfs $NO_XATTRS_NEED -f -d \ | ||||
|     \"${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}\" \"$PW_BACKUP_FILE\" \ | ||||
|     || echo \"ERROR\" > \"${PORT_WINE_TMP_PATH}/pp_pfx_unpack_error\" | ||||
|     " > "${PORT_WINE_TMP_PATH}/pp_pfx_unpack.sh" | ||||
|  | ||||
|     chmod u+x "${PORT_WINE_TMP_PATH}/pp_pfx_unpack.sh" | ||||
|     ${pw_runtime} ${PW_TERM} "${PORT_WINE_TMP_PATH}/pp_pfx_unpack.sh" | ||||
|  | ||||
|     if grep "ERROR" "${PORT_WINE_TMP_PATH}/pp_pfx_unpack_error" &>/dev/null; then | ||||
|         try_remove_file "${PORT_WINE_TMP_PATH}/pp_pfx_unpack_error" | ||||
|         try_remove_file "${PORT_WINE_TMP_PATH}/pp_pfx_unpack.sh" | ||||
|         return 1 | ||||
|     else | ||||
|         try_remove_file "${PORT_WINE_TMP_PATH}/pp_pfx_unpack.sh" | ||||
|         if [[ -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut" ]] ; then | ||||
|             while read -r line | ||||
|             do | ||||
|                 export portwine_exe="$PORT_WINE_PATH/data/prefixes/$PW_PREFIX_NAME/$line" | ||||
|                 if check_start_from_steam | ||||
|                 then portwine_output_yad_shortcut --silent | ||||
|                 else portwine_create_shortcut | ||||
|                 fi | ||||
|             done < "$PORT_WINE_PATH/data/prefixes/$PW_PREFIX_NAME/.create_shortcut" | ||||
|         fi | ||||
|         return 0 | ||||
|     fi | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| pw_autoinstall_from_db () { | ||||
|     export PW_USER_TEMP="${PORT_WINE_TMP_PATH}" | ||||
|     export PW_USE_GAMEMODE=0 | ||||
| @@ -7676,12 +7567,12 @@ open_game_folder () { | ||||
| } | ||||
| export -f open_game_folder | ||||
|  | ||||
| wine_uninstaller () { | ||||
| gui_wine_uninstaller () { | ||||
|     start_portwine | ||||
|     pw_run uninstaller | ||||
|     stop_portwine --restart | ||||
| } | ||||
| export -f wine_uninstaller | ||||
| export -f gui_wine_uninstaller | ||||
|  | ||||
| gui_open_user_conf () { | ||||
|     PW_USERCONF_GUI="$("${pw_yad}" --title="${translations[EDIT USER CONFIG]}" \ | ||||
|   | ||||
| @@ -1,8 +0,0 @@ | ||||
| #!/usr/bin/env bash | ||||
| #Author: fidel | ||||
| #Ankama Launcher.exe | ||||
| #Rating=1-5 | ||||
| export PW_WINE_USE="WINE_LG" | ||||
| export PW_PREFIX_NAME="ANKAMA" | ||||
| export PORTPROTON_NAME="Ankama " | ||||
| export FILE_DESCRIPTION="Ankama Launcher" | ||||
| @@ -12,7 +12,6 @@ export PW_DLL_INSTALL="vcrun2019 d3dx11_42 d3dx11_43" | ||||
| export PW_WINDOWS_VER="10" | ||||
| export PW_WINE_FULLSCREEN_FSR="0" | ||||
| export PW_WINE_USE="PROTON_LG" | ||||
| export WINE_SIMULATE_WRITECOPY="1" | ||||
|  | ||||
| add_in_start_portwine () { | ||||
|     rm -fr "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/ProgramData/Agent/data" | ||||
|   | ||||
| @@ -4,8 +4,10 @@ | ||||
| #Rating=1-5 | ||||
| #####################examples########################### | ||||
| export PW_WINDOWS_VER="10" | ||||
| export PW_VULKAN_USE="2" | ||||
| export PW_WINE_USE="PROTON_LG" | ||||
| export PW_PREFIX_NAME="DOTNET" | ||||
| export PW_PREFIX_NAME="BLACK_DESERT_ONLINE" | ||||
| # export DISABLE_CP_DEFPFX=1 | ||||
| export PORTPROTON_NAME="BlackDesertLauncher" | ||||
| export FILE_DESCRIPTION="BlackDesertLauncher" | ||||
| export WINE_DISABLE_KERNEL_WRITEWATCH="1" | ||||
|   | ||||
| @@ -1,8 +0,0 @@ | ||||
| #!/usr/bin/env bash | ||||
| #Author: fidel | ||||
| #CWClientLauncher.exe | ||||
| #Rating=1-5 | ||||
| export PW_WINE_USE="WINE_LG" | ||||
| export PW_PREFIX_NAME="CONTRACT_WARS" | ||||
| export PORTPROTON_NAME="CWClient" | ||||
| export FILE_DESCRIPTION="CWClientLauncher" | ||||
							
								
								
									
										7
									
								
								data_from_portwine/scripts/portwine_db/Dolphin.ppdb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								data_from_portwine/scripts/portwine_db/Dolphin.ppdb
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| #!/usr/bin/env bash | ||||
| #Author: xuser | ||||
| #Dolphin.exe | ||||
| #Rating=1-5 | ||||
| #####################examples########################### | ||||
| export PW_WINE_USE=PROTON_LG_6.3-7 | ||||
| export PW_VULKAN_USE=1 | ||||
| @@ -4,8 +4,9 @@ | ||||
| #EADesktop.exe | ||||
| #Rating=5 | ||||
| #####################examples########################### | ||||
| export PW_VULKAN_USE="2" | ||||
| export PW_WINE_USE="PROTON_LG" | ||||
| export PW_PREFIX_NAME="EAAPP" | ||||
| export WINE_SIMULATE_WRITECOPY="1" | ||||
| export PW_USE_ESYNC="0" | ||||
| export PW_USE_FSYNC="1" | ||||
| add_in_start_portwine () { export LC_CTYPE=C ;} | ||||
|  | ||||
|   | ||||
| @@ -6,9 +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="PROTON_LG" | ||||
| export PW_USE_ESYNC="1" | ||||
| export PW_USE_FSYNC="1" | ||||
| export PW_WINE_USE="WINE_LG_10-7" | ||||
| export WINEDLLOVERRIDES="vulkan-1=n,b" | ||||
| # add_in_start_portwine () { | ||||
| #     regdlloverrides "RDR2.exe:vulkan-1=n,b" | ||||
|   | ||||
| @@ -1,7 +0,0 @@ | ||||
| #!/usr/bin/env bash | ||||
| #Author: fidel | ||||
| #Farlight84Launcher.exe | ||||
| #Rating=1-5 | ||||
| export PW_WINE_USE="WINE_LG" | ||||
| export PW_PREFIX_NAME="FARLIGHT_84" | ||||
| export PW_NO_AUTO_CREATE_SHORTCUT="1" | ||||
| @@ -4,12 +4,12 @@ | ||||
| #GOG_Galaxy_2.0.exe | ||||
| #Rating=5 | ||||
| ################################################ | ||||
| # export PW_VULKAN_USE="2" | ||||
| export WINEDLLOVERRIDES="GalaxyCommunication.exe,GalaxyClientService.exe=n;libglesv2=" | ||||
| export PW_VULKAN_USE="2" | ||||
| export WINEDLLOVERRIDES="galaxycommunication.exe=n;libglesv2=" | ||||
| export LAUNCH_PARAMETERS="/runWithoutUpdating /deelevated" | ||||
| export PW_PREFIX_NAME="GOG" | ||||
| export DISABLE_CP_DEFPFX="1" | ||||
| export PW_WINE_USE="PROTON_LG_9-12" | ||||
| export PW_WINE_USE="WINE_LG" | ||||
|  | ||||
| add_in_start_portwine () | ||||
| { | ||||
|   | ||||
| @@ -1,8 +0,0 @@ | ||||
| #!/usr/bin/env bash | ||||
| #Author: fidel | ||||
| #Gw2.exe | ||||
| #Rating=1-5 | ||||
| export PW_WINE_USE="WINE_LG" | ||||
| export PW_PREFIX_NAME="GUILD_WARS_2" | ||||
| export PORTPROTON_NAME="Guild Wars 2" | ||||
| export FILE_DESCRIPTION="Guild Wars 2 Game Client" | ||||
| @@ -1,8 +0,0 @@ | ||||
| #!/usr/bin/env bash | ||||
| #Author: deck | ||||
| #PlayGTAV.exe | ||||
| #Rating=1-5 | ||||
| export PW_WINE_USE="WINE_LG" | ||||
| export PW_NO_ESYNC="0" | ||||
| export PW_NO_FSYNC="0" | ||||
| export WINEDLLOVERRIDES="socialclub;version=n,b" | ||||
| @@ -5,6 +5,9 @@ | ||||
| #LauncherPatcher.exe | ||||
| #Rating=? | ||||
| ################################################ | ||||
| export PW_VULKAN_USE=2 | ||||
| export PW_DLL_INSTALL="vcrun2022" | ||||
| export WINEDLLOVERRIDES="vulkan-1=n,b" | ||||
| export PW_WINE_USE="WINE_LG" | ||||
| export PW_PREFIX_NAME="ROCKSTAR" | ||||
| # add_in_start_portwine () { | ||||
| #     regdlloverrides "RDR2.exe:vulkan-1=n,b" | ||||
| # } | ||||
|   | ||||
| @@ -1,6 +0,0 @@ | ||||
| #!/usr/bin/env bash | ||||
| #Author: fidel | ||||
| #aops.exe | ||||
| #Rating=1-5 | ||||
| export PW_WINE_USE="WINE_LG" | ||||
| export PW_PREFIX_NAME="SPACE_RIDERS" | ||||
| @@ -0,0 +1,7 @@ | ||||
| #!/usr/bin/env bash | ||||
| #Author: xuser | ||||
| #StarCraft Launcher.exe | ||||
| #Rating=1-5 | ||||
| #####################examples########################### | ||||
| export PW_WINE_USE=PROTON_LG_6.3-7 | ||||
| export PW_VULKAN_USE=1 | ||||
| @@ -6,5 +6,5 @@ | ||||
| #upc.exe | ||||
| #Rating=1-5 | ||||
| ################################################ | ||||
| export PW_VULKAN_USE="2" | ||||
| export PW_DLL_INSTALL=""  | ||||
| export WINE_SIMULATE_WRITECOPY="1" | ||||
|   | ||||
| @@ -5,6 +5,7 @@ | ||||
| #Rating=5 | ||||
| export PW_COMMENT_DB="Lesta Game Centers" | ||||
| ################################################ | ||||
| export PW_VULKAN_USE="2"                       #dxvk, vkd3d or 0 for OpenGL | ||||
| export LAUNCH_PARAMETERS=""            # Additional launch options | ||||
| export PW_WINDOWS_VER="10"                       # Set windows version 10, 7 or XP | ||||
| export WINEDLLOVERRIDES="" | ||||
| @@ -12,9 +13,6 @@ export PW_DLL_INSTALL="lucida"     # Install DLL in port prefix (used winetricks | ||||
| export PW_USE_D3D_EXTRAS="1" | ||||
| export PW_PREFIX_NAME="LGC" | ||||
| export PW_USE_SHADER_CACHE="0" | ||||
| export PW_USE_ESYNC="1" | ||||
| export PW_USE_FSYNC="1" | ||||
| export PW_USE_NTSYNC="0" | ||||
|  | ||||
| add_in_start_portwine () { | ||||
|     if [[ -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/${USER}/AppData/Roaming/Wargaming.net/WorldOfTanks/preferences.xml" ]] ; then | ||||
|   | ||||
| @@ -8,4 +8,3 @@ | ||||
| export PW_VULKAN_USE=0 | ||||
| export PW_PREFIX_NAME="DOTNET" | ||||
| export PW_DLL_INSTALL="dotnet40" | ||||
| export PW_WINE_USE="WINE_LG" | ||||
|   | ||||
| @@ -8,21 +8,17 @@ | ||||
| ######################################################################## | ||||
| export LAUNCH_PARAMETERS="/S" | ||||
| export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Ankama-Setup.exe" | ||||
| export PW_WINE_USE="WINE_LG" | ||||
| export PW_PREFIX_NAME="ANKAMA" | ||||
|  | ||||
| start_portwine | ||||
| if try_download "https://download.ankama.com/launcher/full/win/" "${PW_AUTOINSTALL_EXE}" no_mirror | ||||
| then | ||||
|     pw_start_progress_bar_install_game "Ankama Launcher." | ||||
|     get_and_set_reg_file --add 'Software\Wine\X11 Driver' 'Decorated' 'REG_SZ' "N" "user" | ||||
|     pw_run "${PW_AUTOINSTALL_EXE}" | ||||
|     portwine_exe="$WINEPREFIX/drive_c/users/steamuser/AppData/Local/Programs/Ankama Launcher/Ankama Launcher.exe" | ||||
|     try_remove_file "${PW_AUTOINSTALL_EXE}" | ||||
|     try_remove_file "${portwine_exe}.ppdb" | ||||
|     kill_portwine | ||||
|     pw_stop_progress_bar | ||||
|     export PORTWINE_CREATE_SHORTCUT_NAME="Ankama Launcher" | ||||
|     export PORTWINE_CREATE_SHORTCUT_NAME="AnkamaLauncher" | ||||
|     portwine_create_shortcut | ||||
| fi | ||||
| stop_portwine | ||||
|   | ||||
| @@ -6,7 +6,6 @@ | ||||
| # info_en: An action game about stalkers, where players explore mysterious worlds and fight against a variety of opponents. The game offers an exciting storyline and the opportunity to improve the character by unlocking new abilities and equipment. | ||||
| # info_ru: Экшен-игра про сталкеров, где игроки исследуют таинственные миры и сражаются с разнообразными противниками. Игра предлагает захватывающий сюжет и возможность улучшать персонажа, открывая новые способности и снаряжение. | ||||
| ######################################################################## | ||||
| export PW_PREFIX_NAME="ANOMALY_ZONE" | ||||
| export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-" | ||||
| export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/az_webinst.exe" | ||||
| export PORTWINE_CREATE_SHORTCUT_NAME="Anomaly Zone" | ||||
| @@ -17,7 +16,7 @@ then | ||||
|     pw_start_progress_bar_install_game "Anomaly Zone." | ||||
|     pw_kill_autostart Launcher.exe & | ||||
|     pw_run "${PW_AUTOINSTALL_EXE}" | ||||
|     portwine_exe="$WINEPREFIX/drive_c/Program Files/New Story Games/Anomaly-Zone/Launcher.exe" | ||||
|     portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Cybertime Games/Anomaly-Zone/Launcher.exe" | ||||
|     pw_create_unique_exe | ||||
|     try_remove_file "${PW_AUTOINSTALL_EXE}" | ||||
|     try_remove_file "${portwine_exe}.ppdb" | ||||
|   | ||||
| @@ -6,11 +6,10 @@ | ||||
| # 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 PW_AZAHAR_VERSION=$(curl -s "https://github.com/azahar-emu/azahar/releases" | grep -oP '/azahar-emu/azahar/releases/tag/\K[0-9.]+(-[a-z0-9]+)?' | grep -v -- '-[a-z0-9]' | sort -Vu | tail -n1) | ||||
| export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/azahar-$PW_AZAHAR_VERSION-windows-msys2-installer.exe" | ||||
| export PW_PREFIX_NAME="AZAHAR" | ||||
| # 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/$PW_AZAHAR_VERSION/azahar-$PW_AZAHAR_VERSION-windows-msys2-installer.exe" "${PW_AUTOINSTALL_EXE}" no_mirror | ||||
| 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}" | ||||
|   | ||||
| @@ -7,10 +7,9 @@ | ||||
| # info_ru: Лаунчер для игр Activision и Blizzard. | ||||
| ######################################################################## | ||||
| export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Battle.net-Setup.exe" | ||||
| export PW_WINE_USE="PROTON_LG" | ||||
| export PW_WINE_USE="WINE_LG" | ||||
| export WINEDLLOVERRIDES="locationapi=" | ||||
| export PW_PREFIX_NAME="BATTLE_NET" | ||||
| export WINE_SIMULATE_WRITECOPY="1" | ||||
|  | ||||
| start_portwine | ||||
| if try_download "https://battle.net/download/getInstallerForGame?os=win&version=LIVE&gameProgram=BATTLENET_APP" "${PW_AUTOINSTALL_EXE}" no_mirror | ||||
|   | ||||
| @@ -6,11 +6,14 @@ | ||||
| # info_en: A massively multiplayer online role-playing game set in an open world, renowned for its stunning graphics and deep character customization system. Players can explore vast lands, complete quests, engage in PvP battles, and participate in various crafting activities. | ||||
| # info_ru: Многопользовательская ролевая игра с открытым миром, известная своей потрясающей графикой и глубокой системой кастомизации персонажей. Игроки могут исследовать обширные земли, выполнять задания, участвовать в PvP-сражениях и заниматься различными ремеслами. | ||||
| ######################################################################## | ||||
| export PW_PREFIX_NAME="DOTNET" | ||||
| export PW_PREFIX_NAME="BLACK_DESERT_ONLINE" | ||||
| export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/BlackDesert_Installer_RU.exe" | ||||
| export LAUNCH_PARAMETERS="/silent" | ||||
| export PW_MUST_HAVE_DLL="" | ||||
| export PW_VULKAN_USE="1" | ||||
| export PW_USE_D3D_EXTRAS="1" | ||||
| export PW_WINE_USE="PROTON_LG" | ||||
| # export DISABLE_CP_DEFPFX=1 | ||||
|  | ||||
| pw_clear_pfx | ||||
| start_portwine | ||||
|   | ||||
							
								
								
									
										24
									
								
								data_from_portwine/scripts/pw_autoinstall/PW_BSR
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										24
									
								
								data_from_portwine/scripts/pw_autoinstall/PW_BSR
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| #!/usr/bin/env bash | ||||
| # Author: Boria138 | ||||
| # type: games | ||||
| # name: Battle Of Space Raiders | ||||
| # image: bsr | ||||
| # info_en: An exciting space shooter game where players fight against alien invaders using a variety of ships and powerful weapons. Players will explore vast cosmic expanses, completing missions and battling enemies to save the galaxy from danger. | ||||
| # info_ru: Захватывающая игра в жанре космического шутера, где игроки сражаются против инопланетных захватчиков, используя разнообразные корабли и мощное оружие. Игрокам предстоит исследовать бескрайние космические просторы, выполняя миссии и сражаясь с врагами, чтобы спасти галактику от угрозы. | ||||
| ######################################################################## | ||||
| export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES" | ||||
| export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/bsr_setup.exe" | ||||
| start_portwine | ||||
| if try_download "https://battleofspaceraiders.com/install/bsr_setup.exe" "${PW_AUTOINSTALL_EXE}" no_mirror | ||||
| then | ||||
|     pw_start_progress_bar_install_game "Battle Of Space Raiders." | ||||
|     pw_run "${PW_AUTOINSTALL_EXE}" | ||||
|     portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Battle Of Space Raiders/aops.exe" | ||||
|     try_remove_file "${PW_AUTOINSTALL_EXE}" | ||||
|     try_remove_file "${portwine_exe}.ppdb" | ||||
|     kill_portwine | ||||
|     pw_stop_progress_bar | ||||
|     export PORTWINE_CREATE_SHORTCUT_NAME="Battle Of Space Raiders" | ||||
|     portwine_create_shortcut | ||||
| fi | ||||
| stop_portwine | ||||
| @@ -8,9 +8,6 @@ | ||||
| ######################################################################## | ||||
| export LAUNCH_PARAMETERS="/VERYSILENT" | ||||
| export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/CWClient_Install.exe" | ||||
| export PW_PREFIX_NAME="CONTRACT_WARS" | ||||
| export PW_WINE_USE="WINE_LG" | ||||
|  | ||||
| start_portwine | ||||
| if try_download "https://cdn-01.contractwarsgame.com/standalone/CWClient_Install.exe" "${PW_AUTOINSTALL_EXE}" no_mirror | ||||
| then | ||||
|   | ||||
| @@ -8,14 +8,11 @@ | ||||
| ######################################################################## | ||||
| export PW_PREFIX_NAME="DOOMSDAY" | ||||
| export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-" | ||||
| export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/dls_installer.exe" | ||||
| export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/dls_installer_1.0.30_1729944485-3778620.exe" | ||||
| export PORTWINE_CREATE_SHORTCUT_NAME="Doomsday" | ||||
|  | ||||
| bad_url="$(curl https://dls.igg.com/download/pc/h/ | grep downloadUrl | awk -F'downloadUrl":"' '{print $2}' | awk -F'"' '{print $1}')" | ||||
| good_url="${bad_url//\\/}" | ||||
|  | ||||
| start_portwine | ||||
| if try_download "$good_url" "${PW_AUTOINSTALL_EXE}" no_mirror | ||||
| if try_download "https://statics-global.igg.com/game_package/dls/11200199071/2024/08/28/dls_installer_1.0.30.exe" "${PW_AUTOINSTALL_EXE}" no_mirror | ||||
| then | ||||
|     pw_start_progress_bar_install_game "Doomsday." | ||||
|     pw_kill_autostart Launcher.exe & | ||||
|   | ||||
| @@ -8,12 +8,9 @@ | ||||
| ######################################################################## | ||||
| export LAUNCH_PARAMETERS="/q" | ||||
| export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/EpicGamesLauncherInstaller.msi" | ||||
| export PW_USE_D3D_EXTRAS="1" | ||||
| export PW_USE_D3D_EXTRAS=1 | ||||
| export PORTWINE_CREATE_SHORTCUT_NAME="Epic Games Launcher" | ||||
| export PW_WINE_USE="PROTON_LG" | ||||
| export PW_USE_ESYNC="1" | ||||
| export PW_USE_FSYNC="1" | ||||
|  | ||||
| export PW_WINE_USE="WINE_LG_10-7" | ||||
| # 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" | ||||
|  | ||||
|   | ||||
| @@ -10,15 +10,14 @@ export PW_PREFIX_NAME="EXOTANKS" | ||||
| export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-" | ||||
| export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/ExoTanksMOBA_Setup.exe" | ||||
| export PORTWINE_CREATE_SHORTCUT_NAME="ExoTanks" | ||||
|  | ||||
| #UE4PrereqSetup | ||||
| start_portwine | ||||
| if try_download "https://www.exotanks.com/ExoTanksMOBA_Setup.exe" "${PW_AUTOINSTALL_EXE}" no_mirror | ||||
| then | ||||
|     pw_start_progress_bar_install_game "ExoTanks." | ||||
|     pw_kill_autostart ExoTanksMOBA_Launcher.exe & | ||||
|     pw_run "${PW_AUTOINSTALL_EXE}" | ||||
|     portwine_exe="$WINEPREFIX/drive_c/Games/ExoTanksMOBA/ExoTanksMOBA_LauncherUpdater/Engine/Binaries/Win64/ExoTanksMOBA_LauncherUpdater.exe" | ||||
|     # portwine_exe="$WINEPREFIX/drive_c/Games/ExoTanksMOBA/ExoTanksMOBA_Launcher/Engine/Binaries/Win64/ExoTanksMOBA_Launcher.exe" | ||||
|     portwine_exe="$WINEPREFIX/drive_c/Games/ExoTanksMOBA/ExoTanksMOBA_Launcher/Engine/Binaries/Win64/ExoTanksMOBA_Launcher.exe" | ||||
|     try_remove_file "${PW_AUTOINSTALL_EXE}" | ||||
|     try_remove_file "${portwine_exe}.ppdb" | ||||
|     kill_portwine | ||||
|   | ||||
| @@ -9,7 +9,6 @@ | ||||
| export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Farlight84_setup_1.3.0.1_238.exe" | ||||
| export PORTWINE_CREATE_SHORTCUT_NAME="Farlight 84" | ||||
| export PW_PREFIX_NAME="FARLIGHT_84" | ||||
| export PW_WINE_USE="WINE_LG" | ||||
|  | ||||
| start_portwine | ||||
| if try_download "https://static-gl.lilithgame.com/p/pcsdk/launcher/10060/prodef4621e968ad6b383b8754148b63/0/launcher/res/release/Farlight84_setup_1.3.0.1_238.exe" "${PW_AUTOINSTALL_EXE}" no_mirror | ||||
|   | ||||
							
								
								
									
										26
									
								
								data_from_portwine/scripts/pw_autoinstall/PW_FRACTURED_ONLINE
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										26
									
								
								data_from_portwine/scripts/pw_autoinstall/PW_FRACTURED_ONLINE
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| #!/usr/bin/env bash | ||||
| # Author: chal55rus | ||||
| # type: games | ||||
| # name: Fractured Online (ENG) | ||||
| # image: fracturedonline | ||||
| # info_en: Fractured Online is the first open-world sandbox MMORPG mixing action combat with fully interactable environments, appealing equally to lovers of competitive and cooperative gameplay. Jump right into the fray from day one. Defeat your enemies through your own skill and cleverness, not equipment or level. Gather resources, craft, trade and venture into legendary travels as a solitary hero, or start a settlement with your guild and grow it into the next empire. | ||||
| # info_ru: Fractured Online — это первая массовая многопользовательская ролевая онлайн-игра с открытым миром, сочетающая динамичные сражения с полностью интерактивным окружением. Она одинаково понравится любителям соревновательного и кооперативного игрового процесса. С самого первого дня погрузитесь в бой. Побеждайте врагов благодаря собственным навыкам и смекалке, а не снаряжению или уровню. Собирайте ресурсы, создавайте предметы, торгуйте и отправляйтесь в легендарные путешествия в одиночку или создайте поселение со своей гильдией и превратите его в следующую империю. | ||||
| ######################################################################## | ||||
| export PW_PREFIX_NAME="FRACTURED_ONLINE" | ||||
| export LAUNCH_PARAMETERS="/S" | ||||
| export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/fractured-online-setup.exe" | ||||
| export PORTWINE_CREATE_SHORTCUT_NAME="Fractured Online" | ||||
|  | ||||
| start_portwine | ||||
| if try_download "https://assets.fracturedmmo.com/clients/3f990010d1afb2cabadc44c6c849116c/fractured-online-setup.exe" "${PW_AUTOINSTALL_EXE}" no_mirror | ||||
| then | ||||
|     pw_start_progress_bar_install_game "Fractured Online." | ||||
|     pw_run "${PW_AUTOINSTALL_EXE}" | ||||
|     portwine_exe="$WINEPREFIX/drive_c/Program Files/Fractured Online/FracturedOnline.exe" | ||||
|     try_remove_file "${PW_AUTOINSTALL_EXE}" | ||||
|     try_remove_file "${portwine_exe}.ppdb" | ||||
|     kill_portwine | ||||
|     pw_stop_progress_bar | ||||
|     portwine_create_shortcut | ||||
| fi | ||||
| stop_portwine | ||||
| @@ -14,7 +14,7 @@ export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/setup_galaxy_${GOG_VER}.exe" | ||||
| export LAUNCH_PARAMETERS="/VERYSILENT" | ||||
| export PW_PREFIX_NAME="GOG" | ||||
| export DISABLE_CP_DEFPFX="1" | ||||
| export PW_WINE_USE="PROTON_LG_9-12" | ||||
| export PW_WINE_USE="WINE_LG" | ||||
| export PORTWINE_CREATE_SHORTCUT_NAME="GOG GALAXY" | ||||
|  | ||||
| start_portwine | ||||
|   | ||||
							
								
								
									
										27
									
								
								data_from_portwine/scripts/pw_autoinstall/PW_GOOSE_GOOSE_DUCK
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										27
									
								
								data_from_portwine/scripts/pw_autoinstall/PW_GOOSE_GOOSE_DUCK
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| #!/usr/bin/env bash | ||||
| # Author: chal55rus | ||||
| # type: games | ||||
| # name: Goose Goose Duck | ||||
| # image: goosegooseduck | ||||
| # info_en: A multiplayer social deduction game where players take on the roles of ducks or geese, trying to complete tasks and identify the "ducks" — the impostors among them. The game combines elements of strategy and communication, requiring players to coordinate and recognize deception. | ||||
| # info_ru: Многопользовательская игра в жанре социальной дедукции, где игроки выступают в роли уток или гусей, пытаясь выполнить задания и выявить среди них "уток" — предателей. Игра сочетает в себе элементы стратегии и общения, требуя от игроков координации и способности распознавать обман. | ||||
| ######################################################################## | ||||
| VERSION="3.11.00" | ||||
| export PW_PREFIX_NAME="GOOSE_GOOSE_DUCK" | ||||
| export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-" | ||||
| export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Goose Goose Duck Installer $VERSION release.exe" | ||||
| export PORTWINE_CREATE_SHORTCUT_NAME="Goose Goose Duck" | ||||
|  | ||||
| start_portwine | ||||
| if try_download "https://firebasestorage.googleapis.com/v0/b/gaggle-staging.appspot.com/o/Builds%2FGGD%2FGoose%20Goose%20Duck%20Installer%20${VERSION}%20release.exe?alt=media&token=e6c29f8f-bfd8-4592-a740-821aa4cebe00" "${PW_AUTOINSTALL_EXE}" no_mirror | ||||
| then | ||||
|     pw_start_progress_bar_install_game "Goose Goose Duck." | ||||
|     pw_run "${PW_AUTOINSTALL_EXE}" | ||||
|     portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Goose Goose Duck/GGDLauncher.exe" | ||||
|     try_remove_file "${PW_AUTOINSTALL_EXE}" | ||||
|     try_remove_file "${portwine_exe}.ppdb" | ||||
|     kill_portwine | ||||
|     pw_stop_progress_bar | ||||
|     portwine_create_shortcut | ||||
| fi | ||||
| stop_portwine | ||||
| @@ -10,8 +10,6 @@ export LAUNCH_PARAMETERS="/VERYSILENT" | ||||
| export PW_PREFIX_NAME="GW2" | ||||
| export WINEDLLOVERRIDES="mscoree,mshtml=" | ||||
| export PW_MUST_HAVE_DLL="" | ||||
| export PW_WINE_USE="WINE_LG" | ||||
| export PW_PREFIX_NAME="GUILD_WARS_2" | ||||
|  | ||||
| start_portwine | ||||
| create_new_dir "${WINEPREFIX}/drive_c/Program Files/Guild Wars 2/" | ||||
|   | ||||
| @@ -9,9 +9,6 @@ | ||||
| export LAUNCH_PARAMETERS="/VERYSILENT" | ||||
| export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Lesta_Game_Center_Install_RU.exe" | ||||
| export PW_PREFIX_NAME="LGC" | ||||
| export PW_USE_ESYNC="1" | ||||
| export PW_USE_FSYNC="1" | ||||
| export PW_USE_NTSYNC="0" | ||||
|  | ||||
| start_portwine | ||||
|  | ||||
|   | ||||
| @@ -8,7 +8,6 @@ | ||||
| ######################################################################## | ||||
| export PW_PREFIX_NAME="OSU" | ||||
| export PORTWINE_CREATE_SHORTCUT_NAME="OSU" | ||||
| export PW_WINE_USE="WINE_LG" | ||||
|  | ||||
| start_portwine | ||||
|  | ||||
|   | ||||
| @@ -6,10 +6,9 @@ | ||||
| # info_en: Launcher for Rockstar studio games. | ||||
| # info_ru: Лаунчер для игр Rockstar. | ||||
| ######################################################################## | ||||
| export PW_VULKAN_USE="1" | ||||
| export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Rockstar-Games-Launcher.exe" | ||||
| export PORTWINE_CREATE_SHORTCUT_NAME="Rockstar" | ||||
| export PW_WINE_USE="WINE_LG" | ||||
| export PW_PREFIX_NAME="ROCKSTAR" | ||||
|  | ||||
| start_portwine | ||||
| if try_download "https://gamedownloads.rockstargames.com/public/installer/Rockstar-Games-Launcher.exe" "${PW_AUTOINSTALL_EXE}" no_mirror | ||||
|   | ||||
| @@ -9,7 +9,6 @@ | ||||
| export LAUNCH_PARAMETERS="/S /D=c:\Program Files (x86)\Ubisoft Game Launcher" | ||||
| export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/UbisoftConnectInstaller.exe" | ||||
| export PORTWINE_CREATE_SHORTCUT_NAME="Ubisoft Connect" | ||||
| export WINE_SIMULATE_WRITECOPY="1" | ||||
|  | ||||
| start_portwine | ||||
| if try_download "https://ubistatic3-a.akamaihd.net/orbit/launcher_installer/UbisoftConnectInstaller.exe" "${PW_AUTOINSTALL_EXE}" no_mirror | ||||
|   | ||||
| @@ -1,26 +1,24 @@ | ||||
| #!/usr/bin/env bash | ||||
| # Author: chal55rus (Sergey P.) | ||||
| # type: games | ||||
| # name: VK Play Games Center | ||||
| # name: vkPlay Games Center | ||||
| # image: mygames | ||||
| # info_en: Launcher for the VK Play game library. | ||||
| # info_ru: Лаунчер для библиотеки игр VK Play. | ||||
| ######################################################################## | ||||
| export PW_PREFIX_NAME="VK_PLAY" | ||||
| # export LAUNCH_PARAMETERS="" | ||||
| export PW_AUTOINSTALL_EXE="${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/steamuser/AppData/Local/VKPlayLoader.exe" | ||||
| export PORTWINE_CREATE_SHORTCUT_NAME="VK Play" | ||||
|  | ||||
| export WINEDLLOVERRIDES="mscoree,mshtml=" | ||||
| export PW_MUST_HAVE_DLL="" | ||||
| export PW_WINE_USE="WINE_LG" | ||||
|  | ||||
| start_portwine | ||||
| if try_download "https://static.gc.vkplay.ru/VKPlayLoader.exe" "${PW_AUTOINSTALL_EXE}" no_mirror | ||||
| if try_download "https://static.gc.my.games/VKPlayLoader.exe" "${PW_AUTOINSTALL_EXE}" no_mirror | ||||
| then | ||||
|     portwine_exe="$WINEPREFIX/drive_c/users/steamuser/AppData/Local/VKPlayLoader.exe" | ||||
|     try_remove_file "${portwine_exe}.ppdb" | ||||
|     pw_stop_progress_bar | ||||
|     export PORTWINE_CREATE_SHORTCUT_NAME="vkPlay" | ||||
|     portwine_create_shortcut | ||||
| fi | ||||
| stop_portwine | ||||
|   | ||||
							
								
								
									
										24
									
								
								data_from_portwine/scripts/pw_autoinstall/PW_YABAUSE
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										24
									
								
								data_from_portwine/scripts/pw_autoinstall/PW_YABAUSE
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| #!/usr/bin/env bash | ||||
| # Author: chal55rus (Sergey P.) | ||||
| # type: emulators | ||||
| # name: Yabause | ||||
| # image: yabause | ||||
| # info_en: A Sega Saturn console emulator that allows users to play classic games for this platform on modern devices. It supports various functions such as state saving and control settings, providing a user-friendly experience for fans of this platform. | ||||
| # info_ru: Эмулятор консоли Sega Saturn, который позволяет пользователям играть в классические игры для этой платформы на современных устройствах. Поддерживает различные функции, такие как сохранение состояния и настройка управления, обеспечивая удобный опыт для любителей данной платформы. | ||||
| ######################################################################## | ||||
| export LAUNCH_PARAMETERS="/S" | ||||
| export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/yabause-0.9.15-win64.exe" | ||||
| start_portwine | ||||
| if try_download "https://download.tuxfamily.org/yabause/releases/0.9.15/yabause-0.9.15-win64.exe" "${PW_AUTOINSTALL_EXE}" no_mirror | ||||
| then | ||||
|     pw_start_progress_bar_install_game "Yabause." | ||||
|     pw_run "${PW_AUTOINSTALL_EXE}" | ||||
|     portwine_exe="$WINEPREFIX/drive_c/Program Files/yabause 0.9.15/yabause.exe" | ||||
|     try_remove_file "${PW_AUTOINSTALL_EXE}" | ||||
|     try_remove_file "${portwine_exe}.ppdb" | ||||
|     kill_portwine | ||||
|     pw_stop_progress_bar | ||||
|     export PORTWINE_CREATE_SHORTCUT_NAME="Yabause" | ||||
|     portwine_create_shortcut | ||||
| fi | ||||
| stop_portwine | ||||
| @@ -52,13 +52,6 @@ MISSING_DESKTOP_FILE="0" | ||||
|  | ||||
| unset PW_NO_RESTART_PPDB PW_DISABLED_CREATE_DB | ||||
|  | ||||
| if [[ ${1,,} == "cli" ]] ; then | ||||
|     export PW_CLI="1" | ||||
|     export PROCESS_LOG="1" | ||||
|     shift | ||||
| fi | ||||
| check_variables PW_CLI "0" | ||||
|  | ||||
| if [[ "${1,,}" =~ .ppack$ ]] ; then | ||||
|     export PW_NO_RESTART_PPDB="1" | ||||
|     export PW_DISABLED_CREATE_DB="1" | ||||
| @@ -283,17 +276,32 @@ if [[ -z $SORT_WITH_TIME ]] ; then | ||||
|     export SORT_WITH_TIME="lastlaunch" | ||||
| 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 | ||||
|  | ||||
| # choose wine dpi default | ||||
| if [[ -z $PW_WINE_DPI_VALUE ]] ; then | ||||
|     echo 'export PW_WINE_DPI_VALUE="recommended"' >> "$USER_CONF" | ||||
|     export PW_WINE_DPI_VALUE="recommended" | ||||
| fi | ||||
|  | ||||
| if check_gamescope_session | ||||
| then PW_TERM="env LANG=C xterm -fullscreen -bg black -fg white -e" | ||||
| else PW_TERM="env LANG=C xterm -bg black -fg white -e" | ||||
| fi | ||||
|  | ||||
| if [[ "${PW_CLI}" != 1 ]] ; then | ||||
|     pw_check_and_download_plugins | ||||
| fi | ||||
| pw_check_and_download_plugins | ||||
|  | ||||
| # check skip update | ||||
| if [[ "${SKIP_CHECK_UPDATES}" != 1  || "${PW_CLI}" != 1 ]] ; then | ||||
| if [[ "${SKIP_CHECK_UPDATES}" != 1 ]] ; then | ||||
|     pw_port_update | ||||
|  | ||||
|     PW_FILESYSTEM=$(stat -f -c %T "${PORT_WINE_PATH}") | ||||
| @@ -304,7 +312,7 @@ if [[ "${SKIP_CHECK_UPDATES}" != 1  || "${PW_CLI}" != 1 ]] ; then | ||||
| fi | ||||
|  | ||||
| if [[ -z $PW_GPU_USE || $PW_GPU_USE == "disabled" ]] ; then | ||||
|     PW_GPU_USE="disabled" | ||||
|     unset PW_GPU_USE | ||||
|     pw_check_dxvk | ||||
| fi | ||||
|  | ||||
| @@ -340,7 +348,7 @@ if [[ ${portwine_exe,,} =~ (setup|install|.msi$) ]] ; then | ||||
|     export PW_USE_GAMEMODE="0" | ||||
|     export PW_DLL_INSTALL="" | ||||
|     # export WINEDLLOVERRIDES="mscoree,mshtml=" | ||||
|     export PW_WINE_USE="PROTON_LG" | ||||
|     export PW_WINE_USE="WINE_LG" | ||||
|  | ||||
|     export PW_USE_SETUP_FILE="1" | ||||
| fi | ||||
| @@ -382,10 +390,42 @@ export SKIP_CHECK_UPDATES="1" | ||||
| [[ "$MISSING_DESKTOP_FILE" == "1" ]] && portwine_missing_shortcut | ||||
|  | ||||
| if [[ $(basename "${portwine_exe,,}") =~ .ppack$ ]] ; then | ||||
|     if ! pw_unpack_prefix "$portwine_exe" ; then | ||||
|     unset PW_SANDBOX_HOME_PATH | ||||
|     pw_init_runtime | ||||
|     if check_flatpak | ||||
|     then TMP_ALL_PATH="" | ||||
|     else TMP_ALL_PATH="LD_LIBRARY_PATH=\"${PW_LD_LIBRARY_PATH}\"" | ||||
|     fi | ||||
|     if check_selinux | ||||
|     then NO_XATTRS_NEED="-no-xattrs" | ||||
|     else NO_XATTRS_NEED="" | ||||
|     fi | ||||
|     PW_PREFIX_NAME=$(basename "${1^^}" .PPACK) | ||||
| cat << EOF > "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack.sh | ||||
|     #!/usr/bin/env bash | ||||
|     ${TMP_ALL_PATH} unsquashfs $NO_XATTRS_NEED -f -d "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}" "$1" \ | ||||
|     || echo "ERROR" > "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack_error | ||||
|     sleep 3 | ||||
| EOF | ||||
|     chmod u+x "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack.sh | ||||
|     ${pw_runtime} ${PW_TERM} "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack.sh | ||||
|     if grep "ERROR" "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack_error &>/dev/null ; then | ||||
|         try_remove_file "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack_error | ||||
|         try_remove_file "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack.sh | ||||
|         yad_error "${translations[Unpack has FAILED for prefix:]} <b>\"${PW_PREFIX_NAME}\"</b>." | ||||
|         exit 1 | ||||
|     else        | ||||
|     else | ||||
|         try_remove_file "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack.sh | ||||
|         if [[ -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut" ]] ; then | ||||
|             while read -r line | ||||
|             do | ||||
|                 export portwine_exe="$PORT_WINE_PATH/data/prefixes/$PW_PREFIX_NAME/$line" | ||||
|                 if check_start_from_steam | ||||
|                 then portwine_output_yad_shortcut --silent | ||||
|                 else portwine_create_shortcut | ||||
|                 fi | ||||
|             done < "$PORT_WINE_PATH/data/prefixes/$PW_PREFIX_NAME/.create_shortcut" | ||||
|         fi | ||||
|         if ! check_start_from_steam | ||||
|         then yad_info "${translations[Unpack is DONE for prefix:]} <b>\"${PW_PREFIX_NAME}\"</b>." | ||||
|         fi | ||||
| @@ -394,12 +434,6 @@ if [[ $(basename "${portwine_exe,,}") =~ .ppack$ ]] ; then | ||||
| fi | ||||
|  | ||||
| ### CLI ### | ||||
| get_wine_and_pfx () { | ||||
|     [[ -n $1 ]] && export PW_WINE_USE="$1" | ||||
|     [[ -n $2 ]] && export PW_PREFIX_NAME="$2" | ||||
|     # drop create_new_dir "${PATH_TO_VKD3D_FILES}/vkd3d_cache" and create_new_dir "${PATH_TO_DXVK_FILES}/dxvk_cache" | ||||
|     unset PW_USE_SUPPLIED_DXVK_VKD3D | ||||
| } | ||||
|  | ||||
| case "$1" in | ||||
|     --help) | ||||
| @@ -444,6 +478,13 @@ $(echo $files_from_autoinstall | awk '{for (i = 1; i <= NF; i++) {if (i % 10 == | ||||
|         /usr/bin/env bash -c "${pw_full_command_line[@]}" 2>&1 | tee "$PORT_WINE_PATH/scripts-debug.log" & | ||||
|         exit 0 | ||||
|         ;; | ||||
|     --server-file-access) | ||||
|         echo | ||||
|         curl -s --list-only "https://cloud.linux-gaming.ru/log/$(date +20%y_%m)_file_access.log" | sort -V -k 2,2 \ | ||||
|         | sed 's/count=//g' | awk '{a=$1; $1=$2; $2=a} 1' | awk 'BEGIN {print "Count: Name:"} {print}' | column -t | ||||
|         echo | ||||
|         exit 0 | ||||
|         ;; | ||||
|     --update) | ||||
|         gui_pw_update | ||||
|         ;; | ||||
| @@ -457,96 +498,6 @@ $(echo $files_from_autoinstall | awk '{for (i = 1; i <= NF; i++) {if (i % 10 == | ||||
|         edit_db_from_gui $keys_all | ||||
|         exit 0 | ||||
|         ;; | ||||
|     --list-db) | ||||
|         export pw_yad="" | ||||
|         gui_edit_db | ||||
|         pw_skip_get_info | ||||
|         declare -A NODE_MAP | ||||
|         INDEX=0 | ||||
|         while read -r line; do | ||||
|             NODE_MAP[$INDEX]="$line" | ||||
|             ((INDEX++)) | ||||
|         done < <(lscpu | grep -Po "NUMA node\d+ CPU\(s\):\s+\K.*" 2>/dev/null || true) | ||||
|         for i in "${!NODE_MAP[@]}"; do | ||||
|             echo "NUMA_NODE_${i}=${NODE_MAP[$i]}" | ||||
|         done | ||||
|         echo "IS_AMD=$([[ $(check_vendor_gpu) == \"amd\" ]] && echo true || echo false)" | ||||
|         echo "LOGICAL_CORE_OPTIONS=$GET_LOGICAL_CORE" | ||||
|         [[ -n "$LOCALE_LIST" ]] && echo "LOCALE_LIST=$LOCALE_LIST" | ||||
|         [[ -n "$AMD_VULKAN_DRIVER_LIST" ]] && echo "AMD_VULKAN_DRIVER_LIST=$AMD_VULKAN_DRIVER_LIST" | ||||
|         for var in "${PW_EDIT_DB_FINAL_LIST[@]}"; do | ||||
|             if echo "$DISABLE_EDIT_DB_LIST" | grep -qw "$var"; then | ||||
|                 echo "$var blocked" | ||||
|             else | ||||
|                 echo "$var" | ||||
|             fi | ||||
|         done | ||||
|         exit 0 | ||||
|         ;; | ||||
|     --show-ppdb) | ||||
|         # --show-ppdb /полный/путь/до/файла.exe | ||||
|         ppdb_path="$2" | ||||
|  | ||||
|         if [[ "$ppdb_path" == *.exe ]]; then | ||||
|             ppdb_path="${ppdb_path}.ppdb" | ||||
|         fi | ||||
|  | ||||
|         if [[ ! -f "$ppdb_path" ]]; then | ||||
|             echo "PPDB file not found: $ppdb_path" | ||||
|             exit 1 | ||||
|         fi | ||||
|  | ||||
|         grep -E '^export ' "$ppdb_path" | sed '/^[[:space:]]*$/d' | while IFS='=' read -r var val; do | ||||
|             [[ -z "$var" ]] && continue | ||||
|             var_name=$(echo "$var" | sed 's/^export[[:space:]]*//') | ||||
|             val_clean=$(echo "$val" | sed 's/^"//; s/"$//') | ||||
|             echo "${var_name}=${val_clean}" | ||||
|         done | ||||
|         exit 0 | ||||
|         ;; | ||||
|     --backup-prefix) | ||||
|         # portproton --backup-prefix <PREFIX_NAME> <BACKUP_DIR> | ||||
|         pw_create_prefix_backup "$2" "$3" | ||||
|         exit $? | ||||
|         ;; | ||||
|     --restore-prefix) | ||||
|         # portproton --restore-prefix <PREFIX_BACKUP_FILE.ppack> | ||||
|         pw_unpack_prefix "$2" | ||||
|         exit $? | ||||
|         ;; | ||||
|     --winefile) | ||||
|         get_wine_and_pfx "$2" "$3" | ||||
|         pw_winefile | ||||
|         exit $? | ||||
|         ;; | ||||
|     --winecfg) | ||||
|         get_wine_and_pfx "$2" "$3" | ||||
|         pw_winecfg | ||||
|         exit $? | ||||
|         ;; | ||||
|     --winecmd) | ||||
|         get_wine_and_pfx "$2" "$3" | ||||
|         pw_winecmd | ||||
|         exit $? | ||||
|         ;; | ||||
|     --winereg) | ||||
|         get_wine_and_pfx "$2" "$3" | ||||
|         pw_winereg | ||||
|         exit $? | ||||
|         ;; | ||||
|     --wine_uninstaller) | ||||
|         get_wine_and_pfx "$2" "$3" | ||||
|         wine_uninstaller | ||||
|         exit $? | ||||
|         ;; | ||||
|     --clear_pfx) | ||||
|         get_wine_and_pfx "$2" "$3" | ||||
|         pw_clear_pfx | ||||
|         exit $? | ||||
|         ;; | ||||
|     --initial) | ||||
|         exit 0 | ||||
|         ;; | ||||
| esac | ||||
|  | ||||
| ### GUI ### | ||||
| @@ -854,16 +805,9 @@ else | ||||
|         MAIN_GUI_ROWS="$(( ( AMOUNT_GENERATE_BUTTONS + 1 ) / MAIN_GUI_COLUMNS + 1 ))" | ||||
|     fi | ||||
|  | ||||
|     if [[ $PW_EMULS == "1" ]] ; then | ||||
|         if [[ -z $PW_DESKTOP_FILES ]] | ||||
|         then export PW_GUI_SORT_TABS=(1 2 3 4 5) | ||||
|         else export PW_GUI_SORT_TABS=(2 3 4 5 1) | ||||
|         fi | ||||
|     else | ||||
|         if [[ -z $PW_DESKTOP_FILES ]] | ||||
|         then export PW_GUI_SORT_TABS=(1 0 2 3 4) | ||||
|         else export PW_GUI_SORT_TABS=(2 0 3 4 1) | ||||
|         fi | ||||
|     if [[ -z $PW_DESKTOP_FILES ]] | ||||
|     then export PW_GUI_SORT_TABS=(1 2 3 4 5) | ||||
|     else export PW_GUI_SORT_TABS=(2 3 4 5 1) | ||||
|     fi | ||||
|  | ||||
|     PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_SAREK!$SORT_OPENGL" | ||||
| @@ -898,7 +842,7 @@ else | ||||
|     --field="   Winetricks!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!${translations[Run winetricks to install additional libraries to the selected prefix]}":"FBTN" '@bash -c "button_click --normal WINETRICKS"' \ | ||||
|     --field="   ${translations[Clear prefix]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!${translations[Clear the prefix to fix problems]}":"FBTN" '@bash -c "button_click --normal gui_clear_pfx"' \ | ||||
|     --field="   ${translations[Get other Wine]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!${translations[Open the menu to download other versions of WINE or PROTON]}":"FBTN" '@bash -c "button_click --normal gui_proton_downloader"' \ | ||||
|     --field="   ${translations[Uninstaller]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!${translations[Run the program uninstaller built into wine]}":"FBTN" '@bash -c "button_click --normal wine_uninstaller"' \ | ||||
|     --field="   ${translations[Uninstaller]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!${translations[Run the program uninstaller built into wine]}":"FBTN" '@bash -c "button_click --normal gui_wine_uninstaller"' \ | ||||
|     --field="   ${translations[Prefix Manager]}     !$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!${translations[Run winecfg to edit the settings of the selected prefix]}":"FBTN" '@bash -c "button_click --normal WINECFG"' \ | ||||
|     --field="   ${translations[File Manager]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!${translations[Run wine file manager]}":"FBTN" '@bash -c "button_click --normal WINEFILE"' \ | ||||
|     --field="   ${translations[Command line]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!${translations[Run wine cmd]}":"FBTN" '@bash -c "button_click --normal WINECMD"' \ | ||||
| @@ -966,10 +910,8 @@ else | ||||
|     fi | ||||
|  | ||||
|     IFS="%" | ||||
|     if [[ $PW_EMULS == "1" ]] ; then | ||||
|         "${pw_yad}" --plug=$KEY_MENU --tabnum="${PW_GUI_SORT_TABS[1]}" --form --columns="$MAIN_GUI_ROWS_EMULS" --align-buttons --scroll --homogeneous-column \ | ||||
|         --gui-type-layout="${MAIN_MENU_GUI_TYPE_LAYOUT}" --separator=" " ${PW_GENERATE_BUTTONS_EMULS} 2>/dev/null & | ||||
|     fi | ||||
|     "${pw_yad}" --plug=$KEY_MENU --tabnum="${PW_GUI_SORT_TABS[1]}" --form --columns="$MAIN_GUI_ROWS_EMULS" --align-buttons --scroll --homogeneous-column \ | ||||
|     --gui-type-layout="${MAIN_MENU_GUI_TYPE_LAYOUT}" --separator=" " ${PW_GENERATE_BUTTONS_EMULS} 2>/dev/null & | ||||
|     "${pw_yad}" --plug=$KEY_MENU --tabnum="${PW_GUI_SORT_TABS[0]}" --form --columns="$MAIN_GUI_ROWS_GAMES" --align-buttons --scroll --homogeneous-column \ | ||||
|     --gui-type-layout="${MAIN_MENU_GUI_TYPE_LAYOUT}" --separator=" " ${PW_GENERATE_BUTTONS_GAMES} 2>/dev/null & | ||||
|     IFS="$orig_IFS" | ||||
| @@ -979,63 +921,34 @@ else | ||||
|         export TAB_MAIN_MENU="1" | ||||
|     fi | ||||
|  | ||||
|     if [[ $PW_EMULS == "1" ]] ; then | ||||
|         if [[ -z $PW_DESKTOP_FILES ]] ; then | ||||
|             "${pw_yad}" --key=$KEY_MENU --notebook --expand \ | ||||
|             --gui-type="settings-notebook" --active-tab="${TAB_MAIN_MENU}" \ | ||||
|             --width="${PW_MAIN_SIZE_W}" --height="${PW_MAIN_SIZE_H}" --no-buttons \ | ||||
|             --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \ | ||||
|             --title "PortProton-${install_ver} (${scripts_install_ver}${BRANCH_VERSION})" \ | ||||
|             --tab-pos="bottom" \ | ||||
|             --tab="${translations[AUTOINSTALLS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ | ||||
|             --tab="${translations[EMULATORS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ | ||||
|             --tab="${translations[WINE SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ | ||||
|             --tab="${translations[PORTPROTON SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ | ||||
|             --tab="${translations[INSTALLED]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" 2>/dev/null | ||||
|             YAD_STATUS="$?" | ||||
|         else | ||||
|             "${pw_yad}" --key=$KEY_MENU --notebook --expand \ | ||||
|             --gui-type="settings-notebook" --active-tab="${TAB_MAIN_MENU}" \ | ||||
|             --width="${PW_MAIN_SIZE_W}" --height="${PW_MAIN_SIZE_H}" --no-buttons \ | ||||
|             --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \ | ||||
|             --title "PortProton-${install_ver} (${scripts_install_ver}${BRANCH_VERSION})" \ | ||||
|             --tab-pos="bottom" \ | ||||
|             --tab="${translations[INSTALLED]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ | ||||
|             --tab="${translations[AUTOINSTALLS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ | ||||
|             --tab="${translations[EMULATORS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ | ||||
|             --tab="${translations[WINE SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ | ||||
|             --tab="${translations[PORTPROTON SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" 2>/dev/null | ||||
|             YAD_STATUS="$?" | ||||
|         fi | ||||
|     if [[ -z $PW_DESKTOP_FILES ]] ; then | ||||
|         "${pw_yad}" --key=$KEY_MENU --notebook --expand \ | ||||
|         --gui-type="settings-notebook" --active-tab="${TAB_MAIN_MENU}" \ | ||||
|         --width="${PW_MAIN_SIZE_W}" --height="${PW_MAIN_SIZE_H}" --no-buttons \ | ||||
|         --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \ | ||||
|         --title "PortProton-${install_ver} (${scripts_install_ver}${BRANCH_VERSION})" \ | ||||
|         --tab-pos="bottom" \ | ||||
|         --tab="${translations[AUTOINSTALLS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ | ||||
|         --tab="${translations[EMULATORS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ | ||||
|         --tab="${translations[WINE SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ | ||||
|         --tab="${translations[PORTPROTON SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ | ||||
|         --tab="${translations[INSTALLED]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" 2>/dev/null | ||||
|         YAD_STATUS="$?" | ||||
|     else | ||||
|         if [[ -z $PW_DESKTOP_FILES ]] ; then | ||||
|             "${pw_yad}" --key=$KEY_MENU --notebook --expand \ | ||||
|             --gui-type="settings-notebook" --active-tab="${TAB_MAIN_MENU}" \ | ||||
|             --width="${PW_MAIN_SIZE_W}" --height="${PW_MAIN_SIZE_H}" --no-buttons \ | ||||
|             --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \ | ||||
|             --title "PortProton-${install_ver} (${scripts_install_ver}${BRANCH_VERSION})" \ | ||||
|             --tab-pos="bottom" \ | ||||
|             --tab="${translations[AUTOINSTALLS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ | ||||
|             --tab="${translations[WINE SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ | ||||
|             --tab="${translations[PORTPROTON SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ | ||||
|             --tab="${translations[INSTALLED]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" 2>/dev/null | ||||
|             YAD_STATUS="$?" | ||||
|         else | ||||
|             "${pw_yad}" --key=$KEY_MENU --notebook --expand \ | ||||
|             --gui-type="settings-notebook" --active-tab="${TAB_MAIN_MENU}" \ | ||||
|             --width="${PW_MAIN_SIZE_W}" --height="${PW_MAIN_SIZE_H}" --no-buttons \ | ||||
|             --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \ | ||||
|             --title "PortProton-${install_ver} (${scripts_install_ver}${BRANCH_VERSION})" \ | ||||
|             --tab-pos="bottom" \ | ||||
|             --tab="${translations[INSTALLED]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ | ||||
|             --tab="${translations[AUTOINSTALLS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ | ||||
|             --tab="${translations[WINE SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ | ||||
|             --tab="${translations[PORTPROTON SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" 2>/dev/null | ||||
|             YAD_STATUS="$?" | ||||
|         fi | ||||
|         "${pw_yad}" --key=$KEY_MENU --notebook --expand \ | ||||
|         --gui-type="settings-notebook" --active-tab="${TAB_MAIN_MENU}" \ | ||||
|         --width="${PW_MAIN_SIZE_W}" --height="${PW_MAIN_SIZE_H}" --no-buttons \ | ||||
|         --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \ | ||||
|         --title "PortProton-${install_ver} (${scripts_install_ver}${BRANCH_VERSION})" \ | ||||
|         --tab-pos="bottom" \ | ||||
|         --tab="${translations[INSTALLED]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ | ||||
|         --tab="${translations[AUTOINSTALLS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ | ||||
|         --tab="${translations[EMULATORS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ | ||||
|         --tab="${translations[WINE SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ | ||||
|         --tab="${translations[PORTPROTON SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" 2>/dev/null | ||||
|         YAD_STATUS="$?" | ||||
|     fi | ||||
|  | ||||
|  | ||||
|     if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; fi | ||||
|     pw_yad_set_form | ||||
|     pw_yad_form_vulkan | ||||
| @@ -1059,25 +972,30 @@ case "$PW_YAD_SET" in | ||||
|     128|gui_pw_update|gui_rm_portproton|\ | ||||
|     change_loc|gui_open_scripts_from_backup|\ | ||||
|     gui_credits|pw_start_cont_xterm) | ||||
|         if [[ $PW_EMULS == "1" ]] | ||||
|         then [[ -z $PW_DESKTOP_FILES ]] && TAB_MAIN_MENU="4" || TAB_MAIN_MENU="5" | ||||
|         else [[ -z $PW_DESKTOP_FILES ]] && TAB_MAIN_MENU="3" || TAB_MAIN_MENU="4" | ||||
|         fi ;; | ||||
|         if [[ -z $PW_DESKTOP_FILES ]] ; then | ||||
|             export TAB_MAIN_MENU="4" | ||||
|         else | ||||
|             export TAB_MAIN_MENU="5" | ||||
|         fi | ||||
|         ;; | ||||
|     gui_proton_downloader|WINETRICKS|\ | ||||
|     116|pw_create_prefix_backup|\ | ||||
|     gui_clear_pfx|WINEREG|WINECMD|\ | ||||
|     WINEFILE|WINECFG|wine_uninstaller) | ||||
|         if [[ $PW_EMULS == "1" ]] | ||||
|         then [[ -z $PW_DESKTOP_FILES ]] && TAB_MAIN_MENU="3" || TAB_MAIN_MENU="4" | ||||
|         else [[ -z $PW_DESKTOP_FILES ]] && TAB_MAIN_MENU="2" || TAB_MAIN_MENU="3" | ||||
|         fi ;; | ||||
|     WINEFILE|WINECFG|gui_wine_uninstaller) | ||||
|         if [[ -z $PW_DESKTOP_FILES ]] ; then | ||||
|             export TAB_MAIN_MENU="3" | ||||
|         else | ||||
|             export TAB_MAIN_MENU="4" | ||||
|         fi | ||||
|         ;; | ||||
|     pw_find_exe) | ||||
|         if [[ $PW_EMULS == "1" ]] | ||||
|         then [[ -z $PW_DESKTOP_FILES ]] && TAB_MAIN_MENU="5" || TAB_MAIN_MENU="1" | ||||
|         else [[ -z $PW_DESKTOP_FILES ]] && TAB_MAIN_MENU="4" || TAB_MAIN_MENU="1" | ||||
|         fi ;; | ||||
|         if [[ -z $PW_DESKTOP_FILES ]] ; then | ||||
|             export TAB_MAIN_MENU="5" | ||||
|         else | ||||
|             export TAB_MAIN_MENU="1" | ||||
|         fi | ||||
|         ;; | ||||
| esac | ||||
| export TAB_MAIN_MENU | ||||
|  | ||||
| case "$PW_YAD_SET" in | ||||
|     '') ;; | ||||
| @@ -1092,7 +1010,7 @@ case "$PW_YAD_SET" in | ||||
|     WINETRICKS|116) pw_prefix_manager ;; | ||||
|     gui_clear_pfx) gui_clear_pfx ;; | ||||
|     gui_open_user_conf) gui_open_user_conf ;; | ||||
|     wine_uninstaller) wine_uninstaller ;; | ||||
|     gui_wine_uninstaller) gui_wine_uninstaller ;; | ||||
|     gui_rm_portproton) gui_rm_portproton ;; | ||||
|     gui_pw_reinstall_pp) pw_reinstall_pp ;; | ||||
|     gui_pw_update) gui_pw_update ;; | ||||
|   | ||||
| @@ -1,9 +1,8 @@ | ||||
| #!/usr/bin/env bash | ||||
| #Author: Castro-Fidel (linux-gaming.ru) | ||||
| #SCRIPTS_NEXT_VERSION=2450 | ||||
| #SCRIPTS_STABLE_VERSION=2448 | ||||
| #SCRIPTS_NEXT_VERSION=2439 | ||||
| #SCRIPTS_STABLE_VERSION=2435 | ||||
| ######################################################################## | ||||
| export PW_EMULS="1" | ||||
| 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" | ||||
| export LANGUAGES_LIST="ru es" | ||||
| @@ -29,7 +28,6 @@ export PW_PREFIX_NAME="DEFAULT" | ||||
| export WINE_WIN_START="start /wait /high /unix" | ||||
| export WINE_ALLOW_XIM="0" | ||||
| export PW_USE_SHADER_CACHE="1" | ||||
| export PW_WINE_DPI_VALUE="96" | ||||
| export PW_WINE_CPU_TOPOLOGY="disabled" | ||||
| export PW_MESA_GL_VERSION_OVERRIDE="disabled" | ||||
| export PW_MESA_VK_WSI_PRESENT_MODE="disabled" | ||||
| @@ -46,6 +44,7 @@ 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" | ||||
| @@ -53,17 +52,16 @@ 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### | ||||
| export PW_PROTON_LG_VER="PROTON_LG_10-24" | ||||
| export PW_WINE_LG_VER="WINE_LG_10-17" | ||||
| export PW_PROTON_LG_VER="PROTON_LG_10-10" | ||||
| export PW_WINE_LG_VER="WINE_LG_10-12" | ||||
| export PW_WINE_FULLSCREEN_FSR="1" | ||||
| export WINE_FULLSCREEN_FSR_MODE="ultra" | ||||
| ###DXVK_AND_VKD3D### | ||||
| export PW_VULKAN_UNLOCKED="unlocked" | ||||
| export VKD3D_LIMIT_TESS_FACTORS="64" | ||||
| export DXVK_NEW_VER="2.7.1-204" | ||||
| export DXVK_NEW_VER="2.7-5" | ||||
| export DXVK_OLD_VER="2.6.2" | ||||
| export DXVK_SAREK_VER="sarek-1.11.0" | ||||
| export VKD3D_NEW_VER="1.1-4836" | ||||
| export VKD3D_NEW_VER="1.1-4666" | ||||
| export VKD3D_OLD_VER="2.14.1" | ||||
| export VKD3D_SAREK_VER="sarek-2.6.0" | ||||
| ###VKBASALT### | ||||
| @@ -150,7 +148,7 @@ export DXVK_CONFIG_FILE="${PORT_WINE_PATH}/data/dxvk.conf" | ||||
| ################################################################# | ||||
| pw_list_install_dll_in_prefix () | ||||
| { | ||||
|     STANDART_DLL="d3dx9 d3dcompiler_43 d3dcompiler_47 physx mfc42 vcrun2022 sandbox corefonts tahoma lucida calibri" | ||||
|     STANDART_DLL="d3dx9 d3dcompiler_43 d3dcompiler_47 physx mfc42 vcrun2022 sandbox corefonts tahoma lucida calibri faudio" | ||||
|     case $PW_PREFIX_NAME in | ||||
|         DEFAULT)    export PW_MUST_HAVE_DLL="$STANDART_DLL" ;; | ||||
|         DOTNET)     export PW_MUST_HAVE_DLL="dotnet48" ;; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user