Compare commits

..

4 Commits

36 changed files with 354 additions and 528 deletions

View File

@@ -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>

View File

@@ -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>

View File

@@ -2,81 +2,6 @@ You can help us in the development of the project on the website: https://linux-
----------------------------------------
Changelog:
###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)

View File

@@ -2,84 +2,6 @@
-----------------------------------------
История изменений:
###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)

View File

@@ -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:]')"
@@ -1496,6 +1495,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 +1523,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
}
@@ -2057,13 +2065,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 +2473,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 +2482,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
@@ -2840,16 +2847,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 +2867,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
@@ -2879,9 +2887,9 @@ pw_check_dxvk () {
# получаем информацию о конкретном драйвере который выбран в PW_GPU_USE,
# либо ищем наилучший драйвер с учётом приоритета видеокарт + информация
mapfile -t PW_VULKAN_DRIVER_ARRAY < <(awk '/^GPU[0-9]+/ {
if (count == 7) {
if (count == 5) {
# Выводим собранные значения перед переходом к следующему GPU
for (i = 1; i <= 7; i++) print values[i]
for (i = 1; i <= 5; i++) print values[i]
}
# Сбрасываем счетчик и массив значений для нового GPU
count = 0
@@ -2889,8 +2897,8 @@ pw_check_dxvk () {
next
}
count < 7 {
if (/apiVersion|driverVersion|vendorID|deviceID/) {
count < 5 {
if (/apiVersion|driverVersion/) {
values[++count] = $3
} else if (/deviceName|driverName|driverInfo/) {
split($0, parts, "= ")
@@ -2899,60 +2907,55 @@ pw_check_dxvk () {
}
END {
# Выводим значения для последнего GPU, если набралось 7
if (count == 7) {
for (i = 1; i <= 7; i++) print values[i]
# Выводим значения для последнего GPU, если набралось 5
if (count == 5) {
for (i = 1; i <= 5; i++) print values[i]
}
}' "${PW_TMPFS_PATH}/vulkaninfo.tmp")
for i in "${SELECTED_VULKAN_GPU[@]}" ; do
x="0" && y="7"
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
# если 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 +2966,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
@@ -3448,8 +3451,6 @@ start_portwine () {
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"
@@ -3461,7 +3462,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"
@@ -3575,6 +3576,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!"
@@ -3795,9 +3798,12 @@ 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
if [[ -n $PW_GPU_USE && $PW_GPU_USE != "disabled" ]] \
&& [[ -z $PW_AMD_VULKAN_USE || $PW_AMD_VULKAN_USE == "disabled" ]] ; then
export DXVK_FILTER_DEVICE_NAME="$PW_GPU_USE"
export VKD3D_FILTER_DEVICE_NAME="$PW_GPU_USE"
export PW_vendorID="$(grep -B3 "$PW_GPU_USE" "${PW_TMPFS_PATH}/vulkaninfo.tmp" | grep vendorID | sort -u | awk -F'0x' '{print $2}')"
export PW_deviceID="$(grep -B3 "$PW_GPU_USE" "${PW_TMPFS_PATH}/vulkaninfo.tmp" | grep deviceID | sort -u | awk -F'0x' '{print $2}')"
export MESA_VK_DEVICE_SELECT_FORCE_DEFAULT_DEVICE="1"
export MESA_VK_DEVICE_SELECT="$PW_vendorID:$PW_deviceID"
fi
@@ -3817,15 +3823,14 @@ start_portwine () {
if [[ $(check_vendor_gpu) == "nvidia" ]] ; then
#https://github.com/flathub/net.lutris.Lutris/pull/368#issuecomment-1751381312
check_variables WEBKIT_DISABLE_DMABUF_RENDERER "1"
export 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"
export __NV_PRIME_RENDER_OFFLOAD="1"
export __VK_LAYER_NV_optimus="NVIDIA_only"
export __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
export __NV_PRIME_RENDER_OFFLOAD="0"
export __VK_LAYER_NV_optimus="non_NVIDIA_only"
fi
if check_gamescope_session ; then
@@ -3837,15 +3842,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
@@ -4350,7 +4354,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
@@ -4397,7 +4401,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 необходимо чтобы эти библиотеки всегда были
@@ -4440,11 +4444,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"
@@ -4573,9 +4577,8 @@ fi
fi
if check_wayland_session \
&& [[ $PW_USE_NATIVE_WAYLAND == "1" || $PW_USE_DXVK_HDR == "1" ]]
&& [[ $PW_USE_NATIVE_WAYLAND == "1" ]]
then
[[ $PW_USE_DXVK_HDR == "1" ]] && export DXVK_HDR="1"
export WINE_WAYLAND_HACKS="1"
var_winedlloverride_update "winex11.drv=d;winewayland.drv=b"
get_and_set_reg_file --add 'Software\Wine\Drivers' 'Graphics' 'REG_SZ' "x11,wayland" "user"
@@ -4595,10 +4598,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
@@ -4674,8 +4680,10 @@ 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_ID_VIDEO=" --prefer-vk-device ${PW_vendorID}:${PW_deviceID}"
else
PW_ID_VIDEO=""
fi
#checkbox
@@ -5357,11 +5365,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"
@@ -5584,7 +5588,7 @@ gui_edit_db () {
PW_USE_GAMEMODE PW_USE_D3D_EXTRAS PW_FIX_VIDEO_IN_GAME PW_REDUCE_PULSE_LATENCY PW_USE_US_LAYOUT PW_USE_GSTREAMER
PW_USE_SHADER_CACHE PW_USE_WINE_DXGI PW_USE_EAC_AND_BE PW_USE_SYSTEM_VK_LAYERS PW_USE_OBS_VKCAPTURE
PW_DISABLE_COMPOSITING PW_USE_RUNTIME PW_DINPUT_PROTOCOL PW_USE_GALLIUM_ZINK PW_USE_GALLIUM_NINE
PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D PW_USE_NATIVE_WAYLAND PW_USE_DXVK_HDR PW_GAMESCOPE
PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D PW_USE_NATIVE_WAYLAND PW_GAMESCOPE
)
if check_wayland_session
@@ -5640,7 +5644,6 @@ gui_edit_db () {
PW_USE_RUNTIME_INFO=${translations[Use container launch mode (It is recommended not to change the value)]}
PW_DINPUT_PROTOCOL_INFO=${translations[Force use DirectInput protocol instead of XInput]}
PW_USE_NATIVE_WAYLAND_INFO=${translations[Enable experemental native Wayland support]}
PW_USE_DXVK_HDR_INFO=${translations[Enable HDR settings in games with native Wayland]}
PW_USE_GALLIUM_ZINK_INFO=${translations[Use Gallium Zink (OpenGL driver is implemented via Vulkan)]}
PW_USE_GALLIUM_NINE_INFO=${translations[Use Gallium Nine (native DirectX 9 for MESA)]}
PW_USE_WINED3D_VULKAN_INFO=${translations[Instead of DXVK, use WineD3D vulkan (Damavand). Experimental function.]}
@@ -5667,7 +5670,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"
&& ! compare_versions "$(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"
@@ -5734,6 +5737,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"
@@ -5764,7 +5774,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 multicore systems, CPUs are split into NUMA nodes, each with its own local memory and cores.
Binding a game to a single node reduces memoryaccess latency and limits costly coretocore switches.)]} $NUDA_CPU_CB" "$(combobox_fix --disabled "${NUMA_NODE_INDEX}" "${NUMA_NODE_LIST}")" \
1> "$PW_TMPFS_PATH/tmp_output_yad_fps_limit" 2>/dev/null &
@@ -6609,7 +6619,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/!*/}"
@@ -6864,33 +6874,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 () {
@@ -6899,9 +6905,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}')
@@ -7471,8 +7477,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!]}"
@@ -7484,98 +7512,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
@@ -7678,12 +7614,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]}" \

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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 ;}

View File

@@ -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"

View File

@@ -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"

View File

@@ -4,8 +4,8 @@
#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"

View File

@@ -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"

View File

@@ -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"
# }

View File

@@ -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"

View File

@@ -6,5 +6,5 @@
#upc.exe
#Rating=1-5
################################################
export PW_VULKAN_USE="2"
export PW_DLL_INSTALL=""
export WINE_SIMULATE_WRITECOPY="1"

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View 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

View File

@@ -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

View File

@@ -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 &

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View 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

View File

@@ -0,0 +1,28 @@
#!/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: Многопользовательская игра в жанре социальной дедукции, где игроки выступают в роли уток или гусей, пытаясь выполнить задания и выявить среди них "уток" — предателей. Игра сочетает в себе элементы стратегии и общения, требуя от игроков координации и способности распознавать обман.
########################################################################
export PW_PREFIX_NAME="GOOSE_GOOSE_DUCK"
export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/GGDInstaller.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Goose Goose Duck"
VERSION="4.02.01"
start_portwine
if try_download "https://download-ggd.gaggle.gg/Goose%20Goose%20Duck%20Installer%20${VERSION}%20release.exe" "${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

View File

@@ -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/"

View File

@@ -8,7 +8,6 @@
########################################################################
export PW_PREFIX_NAME="OSU"
export PORTWINE_CREATE_SHORTCUT_NAME="OSU"
export PW_WINE_USE="WINE_LG"
start_portwine

View File

@@ -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

View File

@@ -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

View 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

View File

@@ -276,6 +276,23 @@ 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"
@@ -295,7 +312,7 @@ if [[ "${SKIP_CHECK_UPDATES}" != 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
@@ -331,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
@@ -373,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
@@ -386,19 +435,6 @@ fi
### CLI ###
if [[ ${1,,} == "cli" ]] ; then
export PW_CLI="1"
export PROCESS_LOG="1"
shift
fi
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)
help_info () {
@@ -442,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
;;
@@ -455,49 +498,6 @@ $(echo $files_from_autoinstall | awk '{for (i = 1; i <= NF; i++) {if (i % 10 ==
edit_db_from_gui $keys_all
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 ###
@@ -842,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"' \
@@ -981,7 +981,7 @@ case "$PW_YAD_SET" in
gui_proton_downloader|WINETRICKS|\
116|pw_create_prefix_backup|\
gui_clear_pfx|WINEREG|WINECMD|\
WINEFILE|WINECFG|wine_uninstaller)
WINEFILE|WINECFG|gui_wine_uninstaller)
if [[ -z $PW_DESKTOP_FILES ]] ; then
export TAB_MAIN_MENU="3"
else
@@ -1010,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 ;;

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env bash
#Author: Castro-Fidel (linux-gaming.ru)
#SCRIPTS_NEXT_VERSION=2448
#SCRIPTS_STABLE_VERSION=2448
#SCRIPTS_NEXT_VERSION=2439
#SCRIPTS_STABLE_VERSION=2435
########################################################################
export AI_TOP_GAMES="PW_LGC PW_VKPLAY PW_EPIC PW_BATTLE_NET PW_WORLD_OF_SEA_BATTLE PW_RUSSIAN_FISHING PW_HO_YO_PLAY PW_FARLIGHT84 PW_WARFRAME PW_WGC PW_UBISOFT"
export PROTON_USE_XALIA="0"
@@ -28,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"
@@ -45,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"
@@ -52,17 +52,17 @@ 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-21"
export PW_WINE_LG_VER="WINE_LG_10-17"
export PW_PROTON_LG_VER="PROTON_LG_10-15"
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 DXVK_HDR="1"
export VKD3D_LIMIT_TESS_FACTORS="64"
export DXVK_NEW_VER="2.7.1-190"
export DXVK_NEW_VER="2.7-46"
export DXVK_OLD_VER="2.6.2"
export DXVK_SAREK_VER="sarek-1.11.0"
export VKD3D_NEW_VER="1.1-4818"
export VKD3D_NEW_VER="1.1-4707"
export VKD3D_OLD_VER="2.14.1"
export VKD3D_SAREK_VER="sarek-2.6.0"
###VKBASALT###