Compare commits

...

16 Commits

Author SHA1 Message Date
Mikhail Tergoev
d14b4d2d24 Scripts version 2374 2024-11-12 16:14:13 +03:00
Mikhail Tergoev
9c0e4bb759 Merge branch 'Htylol-gamescope-fix-2' into devel 2024-11-12 15:47:08 +03:00
Mikhail Tergoev
c3d4bb0ea4 Merge branch 'gamescope-fix-2' of github.com:Htylol/PortWINE into Htylol-gamescope-fix-2 2024-11-12 15:47:02 +03:00
Mikhail Tergoev
83e7db8a3c Merge branch 'Htylol-mega_bash_func' into devel 2024-11-12 15:45:41 +03:00
Mikhail Tergoev
7033cb8c96 Merge branch 'mega_bash_func' of github.com:Htylol/PortWINE into Htylol-mega_bash_func 2024-11-12 15:45:33 +03:00
Mikhail Tergoev
994f035048 drop array from LAUNCH_PARAMETERS 2024-11-12 15:41:00 +03:00
Mikhail Tergoev
fdb3171316 revert openvr_api_dxvk to CP_DXVK_FILES 2024-11-12 15:21:39 +03:00
Mikhail Tergoev
678b297c2b updated check nvidia for ALT 2024-11-12 15:17:46 +03:00
Mikhail Tergoev
5746a7f9d0 uodated NVAPI func. 2024-11-12 15:10:53 +03:00
3d21da0ef2 Changes for LAUNCH_PARAMETERS 2024-11-12 07:54:31 +05:00
9d6fe1377c Fixes gamescope launch 2024-11-12 05:55:07 +05:00
20d8929247 changes for local 2024-11-11 11:53:49 +05:00
abe678c908 dropped extra IFS and change <<< to < < 2024-11-11 11:32:29 +05:00
76ebfaaa2b added grep -v 2024-11-11 09:07:29 +05:00
50ff375162 convert to lsbash 2024-11-10 16:37:30 +05:00
89eefcc892 Added mega_bash_func in PortProton 2024-11-10 14:20:33 +05:00
59 changed files with 249 additions and 173 deletions

View File

@@ -2,6 +2,11 @@ You can help us in the development of the project on the website: https://linux-
----------------------------------------
Changelog:
###Scripts version 2374### / Date: 12.11.2024 / Download update size: 4 megabytes
* added test support for DLSS 3
* fixed gamescope (thanks to Htylol)
* general optimization of scripts (thanks to Htylol)
###Scripts version 2373### / Date: 10.11.2024 / Download update size: 215 megabytes
* updated PROTON_LG to version "9-19"
* updated versions:

View File

@@ -2,6 +2,11 @@
-----------------------------------------
История изменений:
###Scripts version 2374### / Дата: 12.11.2024 / Размер скачиваемого обновления: 4 мегабайт
* добавлена тестовая поддержка DLSS 3
* исправлена работа gamescope (спасибо Htylol)
* общая оптимизация скриптов (спасибо Htylol)
###Scripts version 2373### / Дата: 10.11.2024 / Размер скачиваемого обновления: 215 мегабайт
* обновлен PROTON_LG до версии "9-19"
* обновлены версии:

View File

@@ -40,7 +40,7 @@ export -f print_wrapped
make_acronym () {
local words acronym i
IFS=' ' read -r -a words <<< "$1"
read -r -a words <<< "$1"
acronym="${words[0]:0:1}"
for ((i=1 ; i<${#words[@]} ; i++)) ; do
acronym+="${words[$i]:0:1}"
@@ -73,8 +73,7 @@ set_several_variables () {
key=${1//=*/}
value=${1//*=/}
keys_all+="$key "
export "$key"="$value"
shift
export "$key"="$value" ; shift
done
}
@@ -265,7 +264,7 @@ EOF
po_file="${PORT_WINE_PATH}/data/locales/$LANGUAGE/LC_MESSAGES/PortProton.po"
fi
while IFS= read -r line ; do
while read -r line ; do
while [[ $line =~ msgid ]] ; do
unset msgid
msgid="$line"
@@ -307,7 +306,7 @@ EOF
msgid=${msgid//\"\"/}
msgid=${msgid//#*/}
msgid=${msgid//"*"/#_#}
if [[ $msgid != "" ]] ; then
if [[ -n $msgid ]] ; then
if [[ -z $msgstr ]] ; then
msgstr="$msgid"
fi
@@ -406,6 +405,74 @@ try_copy_file_with_checksums () {
}
export -f try_copy_file_with_checksums
lsbash () {
local grep_with_i grep_with_v find_name directory find_file found_successfully find_file_old find_file_old_array
if [[ $1 =~ \/ ]] ; then
directory=$1 ; shift
else
directory=$PWD
fi
grep_find_file1 () {
find_file_old=$find_file
if [[ $grep_with_i == true ]] ; then
find_file=${find_file,,}
find_name=${find_name,,}
fi
grep_find_file2 () {
if [[ -z $1 ]] ; then
echo "$find_file_old"
found_successfully=1
else
find_file_old_array+=("$find_file_old")
fi
}
if [[ $grep_with_v == true ]] ; then
if [[ ! $find_file =~ $find_name ]] ; then
grep_find_file2 "$@"
fi
else
if [[ $find_file =~ $find_name ]] \
|| [[ -z $find_name ]] ; then
grep_find_file2 "$@"
fi
fi
}
while true ; do
unset grep_with_i grep_with_v
if [[ $1 == --grep ]] ; then
shift
while true ; do
# аналог grep -i
if [[ $1 == "-i" ]] ; then
grep_with_i=true ; shift ; continue
fi
# аналог grep -v
if [[ $1 == "-v" ]] ; then
grep_with_v=true ; shift ; continue
fi
find_name=$1 ; shift ; break
done
fi
if [[ -n ${find_file_old_array[0]} ]] ; then
for find_file in "${find_file_old_array[@]}" ; do
unset find_file_old_array
grep_find_file1 "$@"
done
else
for find_file in "$directory"/* ; do
find_file=${find_file//*\//}
grep_find_file1 "$@"
done
fi
if [[ -n $1 ]] ; then continue ; else break ; fi
done
if [[ $found_successfully == 1 ]] ; then
return 0
else
return 1
fi
}
try_copy_dir () {
if [[ ! -d "$1" ]] ; then print_info "directory $1 not found for copy"
elif [[ -z "$2" ]] ; then print_error "no way to copy directory $1"
@@ -538,9 +605,9 @@ try_download () {
&& [[ "$no_mirror" != "true" ]]
then
FIRST_URL=("$url_cloud/$filename")
IFS=' ' read -r -a SECOND_URL <<< "$1"
read -r -a SECOND_URL <<< "$1"
else
IFS=' ' read -r -a FIRST_URL <<< "$1"
read -r -a FIRST_URL <<< "$1"
SECOND_URL=("$url_cloud/$filename")
fi
@@ -652,17 +719,14 @@ var_ld_library_path_update () {
# GUI NOTIFY SEND
pw_notify_send () {
if command -v gdbus &>/dev/null ; then
local app="PortProton"
local icon=""
local timeout="5000"
local title=""
local body=""
local OPTIND="1"
local icon title body app timeout OPTIND
app="PortProton"
timeout="5000"
OPTIND="1"
while getopts a:i:t: opt ; do
case "$opt" in
a)
local app=$OPTARG
app=$OPTARG
;;
i)
case "$OPTARG" in
@@ -670,10 +734,10 @@ pw_notify_send () {
warning) local OPTARG="${PORT_WINE_PATH}/data/img/gui/notify_warning.svg";;
error) local OPTARG="${PORT_WINE_PATH}/data/img/gui/notify_error.svg";;
esac
local icon=$OPTARG
icon=$OPTARG
;;
t)
local timeout=$OPTARG
timeout=$OPTARG
;;
*)
echo "usage: $0
@@ -686,10 +750,8 @@ pw_notify_send () {
done
shift $(( OPTIND - 1 ))
[[ "$1" == "--" ]] && shift
local title="$1"
shift
local body="$*"
title="$1" ; shift
body="$*"
gdbus call --session --dest org.freedesktop.Notifications \
--object-path /org/freedesktop/Notifications \
@@ -883,7 +945,7 @@ search_desktop_file () {
desktop_file_new="${desktop_file//"$PORT_WINE_PATH/"/}"
if [[ $desktop_file_new =~ .desktop$ ]] ; then
if [[ ! $desktop_file_new =~ (PortProton|readme) ]] ; then
while IFS= read -r line1 ; do
while read -r line1 ; do
if [[ $line1 =~ ^Exec= ]] ; then
if check_flatpak ; then
EXEC_DESKTOP=${line1//Exec=flatpak run ru.linux_gaming.PortProton /}
@@ -900,7 +962,7 @@ search_desktop_file () {
fi
done
if [[ $DESKTOP_WITH_TIME == enabled ]] || [[ $SORT_WITH_TIME == enabled ]] ; then
while IFS=' ' read -r -a line2 ; do
while read -r -a line2 ; do
if [[ -z ${line2[0]} ]] \
|| [[ ! ${line2[0],,} =~ .(bat|exe|msi|reg)$ ]] ; then
BROKEN_LINE=1
@@ -922,7 +984,7 @@ search_desktop_file () {
## Ремонты:
# Ремонт, проверяет чтобы длинна хеш суммы была равна 64 символам, в ином случае удалит битые
if [[ $FILE_SHA256SUM_NOT_FOUND == 1 ]] && [[ ${#line2[1]} != "64" ]] ; then
while IFS=' ' read -r -a line3 ; do
while read -r -a line3 ; do
if [[ ${#line3[1]} == "64" ]]
then echo "${line3[*]}"
fi
@@ -934,7 +996,7 @@ search_desktop_file () {
# Ремонт, если есть пустые строки и непонятные строки без .exe, .bat, .msi, .reg
if [[ $BROKEN_LINE == 1 ]] ; then
while IFS=' ' read -r -a line4 ; do
while read -r -a line4 ; do
if [[ -n ${line4[0]} ]] && [[ ${line4[0],,} =~ .(bat|exe|msi|reg)$ ]]
then echo "${line4[*]}"
fi
@@ -1230,8 +1292,10 @@ combobox_fix () {
name3="!${name3//${name1}\!/\!}"
name3="${name3//\!\!/\!}"
name4="${name3//*\!/}"
if [[ ${name1} == "${name4}" ]] || [[ ${name1} == "\\${name4}" ]]
then name3="${name3%\!"${name1}"}"
if [[ ${name1} == "${name4}" ]] ; then
name3="${name3%\!"${name1}"}"
elif [[ ${name1} == "\\${name4}" ]] ; then
name3="${name3%\!"${name1//\\/}"}"
fi
if [[ "$1" == "--disabled" ]] ; then
if [[ ${name1} == "disabled" ]] ; then
@@ -1246,12 +1310,10 @@ combobox_fix () {
fi
fi
echo "${name1}${name3}${fix_disabled}"
elif [[ "$1" == "--empty" ]] ; then
if [[ ${name1} != "" ]] ; then
if [[ ${name1} == "\\" ]]
then fix_empty=""
else fix_empty="!"
fi
elif [[ "$1" == "--empty" && -n ${name1} ]] ; then
if [[ ${name1} == "\\" ]]
then fix_empty=""
else fix_empty="!"
fi
echo "${name1}${name3}${fix_empty}"
else
@@ -1306,7 +1368,7 @@ get_and_set_reg_file () {
find_line=${find_line//:*/}
fi
count=-1
while IFS= read -r line_reg ; do
while read -r line_reg ; do
((count++))
if [[ $line_reg =~ $name_for_find ]] ; then
if [[ $line_reg == $name_for_find$name_for_set ]] ; then
@@ -1318,7 +1380,7 @@ get_and_set_reg_file () {
break
fi
[[ -z $line_reg ]] && break
done <<< "$(sed -n "$find_line"',$p' "$find_file")"
done < <(sed -n "$find_line"',$p' "$find_file")
fi
if [[ $name_add_or_del == --add ]] ; then
if [[ -z $find_block ]] ; then
@@ -1370,7 +1432,7 @@ recommend_dpi () {
return 1
fi
local dpi=$(( height / 11 ))
(( dpi < 96 )) && local dpi="96"
(( dpi < 96 )) && dpi="96"
echo "$dpi"
}
@@ -1380,7 +1442,7 @@ fixes_after_update () {
fixes_path="$PORT_WINE_TMP_PATH/fixes_apply"
[[ ! -f $fixes_path ]] && touch "$fixes_path"
while IFS= read -r line ; do
while read -r line ; do
if [[ $line == "$fixes_info" ]] ; then
return 1
fi
@@ -1394,7 +1456,7 @@ restart_pp () {
--userconf) export RESTART_PP_USED="userconf" ;;
--edit_db) export RESTART_PP_USED="edit_db" ;;
esac
/usr/bin/env bash -c ${pw_full_command_line[@]} &
/usr/bin/env bash -c "${pw_full_command_line[@]}" &
exit 0
}
@@ -1493,7 +1555,7 @@ init_wine_ver () {
else
if [[ -d "${PORT_WINE_PATH}/data/dist" ]] ; then
IFS=$'\n'
for dist_dir in $(ls -1 "${PORT_WINE_PATH}/data/dist/") ; do
for dist_dir in $(lsbash "${PORT_WINE_PATH}/data/dist/") ; do
dist_dir_new=$(echo "${dist_dir}" | awk '$1=$1' | sed -e s/[[:blank:]]/_/g)
if [[ ! -d "${PORT_WINE_PATH}/data/dist/${dist_dir_new^^}" ]] ; then
mv -- "${PORT_WINE_PATH}/data/dist/$dist_dir" "${PORT_WINE_PATH}/data/dist/${dist_dir_new^^}"
@@ -1501,7 +1563,7 @@ init_wine_ver () {
done
IFS="$orig_IFS"
fi
if [[ -z $(ls "${PORT_WINE_PATH}/data/dist/" | grep "${PW_WINE_USE}") ]] ; then
if [[ -z $(lsbash "${PORT_WINE_PATH}/data/dist/" --grep "${PW_WINE_USE}") ]] ; then
if [[ "$PW_WINE_USE" =~ PROTON_LG* ]]
then export PW_WINE_USE=PROTON_LG
else export PW_WINE_USE=WINE_LG
@@ -1518,20 +1580,20 @@ init_wine_ver () {
export WINELOADER="${WINEDIR}/bin/wine"
export WINESERVER="${WINEDIR}/bin/wineserver"
if [[ -d "${WINEDIR}/files" && ! -d "${WINEDIR}/dist" ]] ; then
for clear_dist_files in $(ls "${WINEDIR}" | sed -r "s/^(files|version)$//g") ; do
for clear_dist_files in $(lsbash "$WINEDIR" | sed -r "s/^(files|version)$//g") ; do
rm -fr "${WINEDIR}/$clear_dist_files"
done
mv -f "${WINEDIR}/files"/* "${WINEDIR}/"
rm -fr "${WINEDIR}/files"
elif [[ ! -d "${WINEDIR}/files" && -d "${WINEDIR}/dist" ]] ; then
for clear_dist_files in $(ls "${WINEDIR}" | sed -r "s/^(dist|version)$//g") ; do
for clear_dist_files in $(lsbash "$WINEDIR" | sed -r "s/^(dist|version)$//g") ; do
rm -fr "${WINEDIR}/$clear_dist_files"
done
mv -f "${WINEDIR}/dist"/* "${WINEDIR}/"
rm -fr "${WINEDIR}/dist"
elif [[ -f "${WINEDIR}/proton_dist.tar" ]] ; then
unpack "${WINEDIR}/proton_dist.tar" "${WINEDIR}/"
for clear_dist_files in $(ls "${WINEDIR}" | sed -r "s/^(bin|lib|lib64|share|version)$//g") ; do
for clear_dist_files in $(lsbash "$WINEDIR" | sed -r "s/^(bin|lib|lib64|share|version)$//g") ; do
rm -fr "${WINEDIR}/$clear_dist_files"
done
fi
@@ -1601,7 +1663,9 @@ pw_init_runtime () {
if grep -i "altlinux" "/etc/os-release" &>/dev/null ; then
export LIBGL_DRIVERS_PATH="/usr/lib/X11/modules/dri:/usr/lib64/X11/modules/dri"
if [[ -f "/usr/share/vulkan/icd.d/nvidia_icd.json" ]] ; then
if [[ -f "/usr/share/vulkan/icd.d/nvidia_icd.json" ]] \
&& [[ "$LSPCI_VGA" == *nvidia* ]]
then
VK_ADD_DRIVER_FILES="$(realpath /usr/share/vulkan/icd.d/nvidia_icd.json)"
export VK_ADD_DRIVER_FILES
fi
@@ -1812,7 +1876,7 @@ pw_kill_autostart () {
fi
done
if [[ -n "$(ls "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/drive_c/ | grep -m 1 ".tmp")" ]] ; then
if [[ -n "$(lsbash "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/drive_c/ | grep -m 1 ".tmp")" ]] ; then
rm -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/drive_c/*.tmp
fi
@@ -1903,8 +1967,8 @@ pw_download_libs () {
"${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}.tar.xz" ; then
if unpack "${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}.tar.xz" "${PORT_WINE_TMP_PATH}/" ; then
try_remove_file "${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}.tar.xz"
if ls "${PORT_WINE_TMP_PATH}" | grep libs_v | grep -v libs"${PW_LIBS_VER}" ; then
for RM_LIBS in $(ls "${PORT_WINE_TMP_PATH}" | grep libs_v | grep -v libs"${PW_LIBS_VER}")
if lsbash "${PORT_WINE_TMP_PATH}" --grep libs_v --grep -v libs"${PW_LIBS_VER}" ; then
for RM_LIBS in $(lsbash "${PORT_WINE_TMP_PATH}" --grep libs_v --grep -v libs"${PW_LIBS_VER}")
do try_remove_dir "${PORT_WINE_TMP_PATH}/${RM_LIBS}"
done
fi
@@ -2054,9 +2118,9 @@ pw_check_and_download_plugins () {
try_remove_file "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz"
# TODO: drop clear prefix, and add update prefix from new plugins
pw_clear_pfx
if ls "${PORT_WINE_TMP_PATH}" | grep plugins_v | grep -v "plugins${PW_PLUGINS_VER}"
if lsbash "${PORT_WINE_TMP_PATH}" --grep plugins_v --grep -v "plugins${PW_PLUGINS_VER}"
then
for RM_PLUGINS in $(ls "${PORT_WINE_TMP_PATH}" | grep plugins_v | grep -v "plugins${PW_PLUGINS_VER}")
for RM_PLUGINS in $(lsbash "${PORT_WINE_TMP_PATH}" --grep plugins_v --grep -v "plugins${PW_PLUGINS_VER}")
do try_remove_dir "${PORT_WINE_TMP_PATH}/${RM_PLUGINS}"
done
fi
@@ -2087,9 +2151,9 @@ pw_check_and_download_plugins () {
try_remove_file "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz"
# TODO: drop clear prefix, and add update prefix from new plugins
pw_clear_pfx
if ls "${PORT_WINE_TMP_PATH}" | grep plugins_v | grep -v "plugins${PW_PLUGINS_VER}"
if lsbash "${PORT_WINE_TMP_PATH}" --grep plugins_v --grep -v "plugins${PW_PLUGINS_VER}"
then
for RM_PLUGINS in $(ls "${PORT_WINE_TMP_PATH}" | grep plugins_v | grep -v "plugins${PW_PLUGINS_VER}")
for RM_PLUGINS in $(lsbash "${PORT_WINE_TMP_PATH}" --grep plugins_v --grep -v "plugins${PW_PLUGINS_VER}")
do try_remove_dir "${PORT_WINE_TMP_PATH}/${RM_PLUGINS}"
done
fi
@@ -2191,7 +2255,7 @@ check_dirs_and_files_in_pfx () {
}
check_nvidia_rtx () {
if [[ -n $(echo "$LSPCI_VGA" | grep -i "nvidia") ]] ; then
if [[ "$LSPCI_VGA" == *nvidia* ]] ; then
# Turing (without nvidia 16XX)
[[ "$LSPCI_VGA" == *TU[0-9]* ]] && [[ "$LSPCI_VGA" != *TU11[6-7]* ]] && return 0
# Ampere
@@ -2216,7 +2280,7 @@ pw_init_db () {
# shellcheck source=/dev/null
source "${PORTWINE_DB_FILE}"
if echo "${portwine_exe}" | grep "/prefixes/" &>/dev/null ; then
if [[ -z $(ls "${PORT_WINE_PATH}/prefixes/" | grep -e ^"${PW_PREFIX_NAME}"$) ]] \
if [[ -z $(lsbash "${PORT_WINE_PATH}/prefixes/" --grep ^"${PW_PREFIX_NAME}"$) ]] \
|| [[ -z $(grep -e ^"export PW_PREFIX_NAME=" "${PORTWINE_DB_FILE}" 2>/dev/null) ]]
then
PW_PREFIX_NAME=$(echo "${portwine_exe}" | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}')
@@ -2256,7 +2320,7 @@ pw_init_db () {
try_copy_file "${PW_FIND_DB_FILE}" "${portwine_exe}".ppdb
PORTWINE_DB_FILE="${portwine_exe}".ppdb
if echo "${portwine_exe}" | grep "/prefixes/" &>/dev/null ; then
if [[ -z $(ls "${PORT_WINE_PATH}/prefixes/" | grep -e ^"${PW_PREFIX_NAME}"$) ]] \
if [[ -z $(lsbash "${PORT_WINE_PATH}/prefixes/" --grep ^"${PW_PREFIX_NAME}"$) ]] \
|| [[ -z $(grep -e ^"export PW_PREFIX_NAME=" "${PORTWINE_DB_FILE}" 2>/dev/null) ]]
then
PW_PREFIX_NAME=$(echo "${portwine_exe}" | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}')
@@ -2305,7 +2369,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 ls "${PATH_TO_GAME}"/*_Data/Resources/ 2>/dev/null | grep "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
@@ -2373,7 +2437,7 @@ pw_port_update () {
return 1
fi
IFS=' ' read -r -a PW_UPDATE_ALL_LIST <<< "$UPDATE_ETERFUND $UPDATE_GITHUB $UPDATE_PP_GITEA"
read -r -a PW_UPDATE_ALL_LIST <<< "$UPDATE_ETERFUND $UPDATE_GITHUB $UPDATE_PP_GITEA"
UPDATE_MIN=${PW_UPDATE_ALL_LIST[0]}
for i in "${!PW_UPDATE_ALL_LIST[@]}"; do
@@ -2763,7 +2827,7 @@ pw_create_gui_png () {
if [[ "$PW_PRODUCTNAME" =~ (Launcher|RU) ]]
then
PW_PRODUCTNAME="${PW_PRODUCTNAME//(Launcher|RU)/}"
PW_PRODUCTNAME=$(echo "$PW_PRODUCTNAME" | sed -r "s/(Launcher|RU)//g")
fi
if [[ -n "$PW_PRODUCTNAME" ]] \
@@ -2775,7 +2839,7 @@ pw_create_gui_png () {
fi
fi
PORTPROTON_NAME="${PORTPROTON_NAME//(\`|\"|\'|\!)/}"
PW_PRODUCTNAME=$(echo "$PW_PRODUCTNAME" | sed -r "s/(\`|\"|'|\!)//g")
export PORTPROTON_NAME
edit_db_from_gui PORTPROTON_NAME FILE_DESCRIPTION
fi
@@ -2819,8 +2883,8 @@ pw_find_exe () {
--button="${translations[CANCEL]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1 \
--button="${translations[OK]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 2>/dev/null)"
YAD_STATUS="$?"
IFS="$orig_IFS"
if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then
print_info "Restarting..."
restart_pp
@@ -3095,7 +3159,7 @@ start_portwine () {
sed -i /'dxgi.hideNvidiaGpu =/c dxgi.hideNvidiaGpu = False' "${DXVK_CONFIG_FILE}"
export WINE_HIDE_NVIDIA_GPU="0"
export WINE_HIDE_AMD_GPU="1"
export DXVK_NVAPI_DRIVER_VERSION="53713"
export DXVK_NVAPI_DRIVER_VERSION="99999"
export DXVK_NVAPI_ALLOW_OTHER_DRIVERS="1"
export WINEHAGS="1"
;;
@@ -3131,7 +3195,6 @@ start_portwine () {
try_copy_file_with_checksums "${PW_PLUGINS_PATH}/fake_dlss/${PW_FAKE_DLSS_VER}/nvngx.dll" "${WINEPREFIX}/drive_c/windows/system32/nvngx.dll"
try_copy_file_with_checksums "${PW_PLUGINS_PATH}/fake_dlss/${PW_FAKE_DLSS_VER}/nvngx.ini" "${WINEPREFIX}/drive_c/windows/system32/nvngx.ini"
enabled_fake_nvidia_videocard old
var_winedlloverride_update "nvapi,nvapi64,nvngx=n;_nvngx=;nvcuda=b"
elif [[ "${PW_USE_NVAPI_AND_DLSS}" == 1 ]] ; then
DXVK_ENABLE_NVAPI="1"
try_remove_file "${WINEPREFIX}/drive_c/windows/system32/nvngx.ini"
@@ -3139,12 +3202,14 @@ start_portwine () {
if [[ -n "$FIND_NVNGX" ]] ; then
try_copy_file_with_checksums "${FIND_NVNGX}/nvngx.dll" "${WINEPREFIX}/drive_c/windows/system32/nvngx.dll"
try_copy_file_with_checksums "${FIND_NVNGX}/_nvngx.dll" "${WINEPREFIX}/drive_c/windows/system32/_nvngx.dll"
export NVIDIA_WINE_DLL_DIR="${FIND_NVNGX}"
else
try_copy_file_with_checksums "${PW_PLUGINS_PATH}/nvngx/nvngx.dll" "${WINEPREFIX}/drive_c/windows/system32/nvngx.dll"
try_copy_file_with_checksums "${PW_PLUGINS_PATH}/nvngx/_nvngx.dll" "${WINEPREFIX}/drive_c/windows/system32/_nvngx.dll"
export NVIDIA_WINE_DLL_DIR="${PW_PLUGINS_PATH}/nvngx"
fi
enabled_fake_nvidia_videocard 0
var_winedlloverride_update "nvngx,_nvngx,nvapi,nvapi64=n;nvcuda=b"
var_winedlloverride_update "nvngx,_nvngx=n"
else
DXVK_ENABLE_NVAPI="0"
for rm_dll in "nvngx.ini" "nvngx.dll" "_nvngx.dll" ; do
@@ -3341,7 +3406,7 @@ start_portwine () {
print_info "VKD3D-PROTON v.${VKD3D_STABLE_VER} in use"
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_STABLE_VER}"
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_STABLE_VER}"
CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi" # openvr_api_dxvk
CP_DXVK_FILES="d3d11 d3d10core d3d10_1 d3d10 d3d9 dxgi openvr_api_dxvk"
CP_VKD3D_FILES="d3d12 libvkd3d-shader-1"
CP_WINE_FILES="d3d12core d3d8"
;;
@@ -3351,7 +3416,7 @@ start_portwine () {
print_info "VKD3D-PROTON v.${VKD3D_GIT_VER} in use"
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_GIT_VER}"
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}"
CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi" # openvr_api_dxvk
CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi openvr_api_dxvk"
CP_VKD3D_FILES="d3d12 d3d12core libvkd3d-1 libvkd3d-shader-1"
CP_WINE_FILES="d3d10_1 d3d10"
;;
@@ -3654,6 +3719,12 @@ start_portwine () {
print_info "Try create symlink NVAPI files..."
try_force_link_file "${PATH_TO_DXVK_FILES}/x32/nvapi.dll" "${WINEPREFIX}/drive_c/windows/syswow64/nvapi.dll"
try_force_link_file "${PATH_TO_DXVK_FILES}/x64/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvapi64.dll"
try_force_link_file "${PATH_TO_DXVK_FILES}/x64/nvofapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvofapi64.dll"
var_winedlloverride_update "nvapi64,nvofapi64,nvapi=n;nvcuda=b"
else
try_remove_file "${WINEPREFIX}/drive_c/windows/syswow64/nvapi.dll"
try_remove_file "${WINEPREFIX}/drive_c/windows/system32/nvapi64.dll"
try_remove_file "${WINEPREFIX}/drive_c/windows/system32/nvofapi64.dll"
fi
if [[ -n "$CP_VKD3D_FILES" ]] ; then
@@ -3995,7 +4066,7 @@ start_portwine () {
[[ "${PW_GS_ITM_TARGET_NITS}" != "0" ]] && PW_GAMESCOPE_ARGS_NEW+=" --hdr-itm-target-nits ${PW_GS_ITM_TARGET_NITS}"
edit_db_from_gui PW_GAMESCOPE_ARGS_NEW
export PW_RUN_GAMESCOPE="${PW_GAMESCOPE_VARIABLES_BEFORE}gamescope${PW_ID_VIDEO}${PW_GAMESCOPE_ARGS_NEW} env ${PW_GAMESCOPE_VARIABLES_AFTER}"
export PW_RUN_GAMESCOPE="env ${PW_GAMESCOPE_VARIABLES_BEFORE}gamescope${PW_ID_VIDEO}${PW_GAMESCOPE_ARGS_NEW} env ${PW_GAMESCOPE_VARIABLES_AFTER}--"
fi
pw_mangohud_check
@@ -4042,7 +4113,7 @@ pw_run () {
${PW_GAMEMODERUN_SLR} \
${PW_MANGOHUD_SLR} \
${PW_DISPLAY} \
"${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}"
"${WINELOADER}" "$@" ${LAUNCH_PARAMETERS} &>>"${PW_LOG_TO_FILE}"
else
if [[ "$PW_USE_TERMINAL" == 1 ]] ; then
PW_ADD_TO_ARGS_IN_RUNTIME="--xterm"
@@ -4061,7 +4132,7 @@ pw_run () {
${PW_GAMEMODERUN_SLR} \
${PW_MANGOHUD_SLR} \
${PW_DISPLAY} \
"${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}"
"${WINELOADER}" "$@" ${LAUNCH_PARAMETERS} &>>"${PW_LOG_TO_FILE}"
print_info "Update prefix log:"
[[ -f "${PW_TMPFS_PATH}/update_pfx_log" ]] && cat "${PW_TMPFS_PATH}/update_pfx_log"
echo
@@ -4089,7 +4160,7 @@ pw_run () {
${PW_MANGOHUD_SLR} \
${PW_DISPLAY} \
${PW_INHIBIT_SLR}\
"${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}"
"${WINELOADER}" "$@" ${LAUNCH_PARAMETERS} &>>"${PW_LOG_TO_FILE}"
wait_wineserver
else
print_info "Update prefix log:"
@@ -4108,7 +4179,7 @@ pw_run () {
${PW_MANGOHUD_SLR} \
${PW_DISPLAY} \
${PW_INHIBIT_SLR}\
"${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]}
"${WINELOADER}" "$@" ${LAUNCH_PARAMETERS}
wait_wineserver
fi
fi
@@ -4116,7 +4187,7 @@ pw_run () {
export -f pw_run
pw_yad_set_form () {
if [[ $(<"${PW_TMPFS_PATH}/tmp_yad_form") != "" ]] ; then
if [[ -n $(<"${PW_TMPFS_PATH}/tmp_yad_form") ]] ; then
pw_skip_get_info
PW_YAD_SET=$(head -n 1 "${PW_TMPFS_PATH}/tmp_yad_form" | awk '{print $1}')
export PW_YAD_SET
@@ -4124,7 +4195,7 @@ pw_yad_set_form () {
}
pw_yad_form_vulkan () {
if [[ "$(<"${PW_TMPFS_PATH}/tmp_yad_form_vulkan")" != "" ]] ; then
if [[ -n "$(<"${PW_TMPFS_PATH}/tmp_yad_form_vulkan")" ]] ; then
if [[ -n "${KEY_START}" ]] ; then
YAD_FORM_VULKAN=$(sed 's/$/\;/' "${PW_TMPFS_PATH}/tmp_yad_form_vulkan")
VULKAN_MOD=$(echo "${YAD_FORM_VULKAN}" | grep \;\; | awk -F";" '{print $1}')
@@ -4490,7 +4561,7 @@ gui_proton_downloader () {
pw_start_progress_bar_block "${translations[Check new version WINE...]}"
# PROTON_GE
read -r -d '' -a PROTON_GE_GIT <<< "$(curl -s "https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases" | grep "browser_download_url.*\.tar\.gz" | cut -d \" -f 4)"
read -r -d '' -a PROTON_GE_GIT < <(curl -s "https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases" | grep "browser_download_url.*\.tar\.gz" | cut -d \" -f 4)
if [[ -n "${PROTON_GE_GIT[0]}" ]] ; then
for PGEGIT in "${PROTON_GE_GIT[@]}" ; do
echo "${PGEGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.gz//' >> "${PW_TMPFS_PATH}/tmp_proton_ge_git"
@@ -4499,7 +4570,7 @@ gui_proton_downloader () {
fi
# WINE_KRON4EK
read -r -d '' -a WINE_KRON4EK <<< "$(curl -s "https://api.github.com/repos/Kron4ek/Wine-Builds/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4)"
read -r -d '' -a WINE_KRON4EK < <(curl -s "https://api.github.com/repos/Kron4ek/Wine-Builds/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4)
if [[ -n "${WINE_KRON4EK[0]}" ]] ; then
for PGEGIT in "${WINE_KRON4EK[@]}" ; do
echo "${PGEGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.xz//' >> "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git"
@@ -4508,7 +4579,7 @@ gui_proton_downloader () {
fi
# WINE_GE_CUSTOM
read -r -d '' -a WINE_GE_CUSTOM <<< "$(curl -s "https://api.github.com/repos/GloriousEggroll/wine-ge-custom/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4)"
read -r -d '' -a WINE_GE_CUSTOM < <(curl -s "https://api.github.com/repos/GloriousEggroll/wine-ge-custom/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4)
if [[ -n "${WINE_GE_CUSTOM[0]}" ]] ; then
for PGEGIT in "${WINE_GE_CUSTOM[@]}" ; do
echo "${PGEGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.xz//' >> "${PW_TMPFS_PATH}/tmp_wine_ge_custom_git"
@@ -4517,7 +4588,7 @@ gui_proton_downloader () {
fi
# PROTON_LG
read -r -d '' -a PROTON_PW_GIT <<< "$(curl -s "https://api.github.com/repos/Castro-Fidel/wine_builds/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4 | sort -r)"
read -r -d '' -a PROTON_PW_GIT < <(curl -s "https://api.github.com/repos/Castro-Fidel/wine_builds/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4 | sort -r)
if [[ -n "${PROTON_PW_GIT[0]}" ]] ; then
for PPWGIT in "${PROTON_PW_GIT[@]}" ; do
echo "${PPWGIT}" | awk -F/ '{print $NF}' | sed 's/.tar.xz//' >> "${PW_TMPFS_PATH}/tmp_proton_pw_git"
@@ -4843,9 +4914,7 @@ A brief instruction:
* library=n,b - use <b>WINDOWS</b> library and then <b>WINE</b>
* library=b,n - use <b>WINE</b> library and then <b>WINDOWS</b>
* library= - disable the use of this library]} :CBE" "$(combobox_fix --empty "${WINEDLLOVERRIDES}" "libglesv2=!d3dx9_36,d3dx9_42=n,b;mfc120=b,n")" \
--field=":LBLH" "" \
--field="${translations[ADD ARGUMENTS FOR .EXE FILE]}!${translations[Adding an argument after the <b>.exe</b> file, just like you would add an argument in a shortcut on a <b>WINDOWS </b> system]} :CBE" "$(combobox_fix --empty "\\${LAUNCH_PARAMETERS[@]}" "-dx11 -skipintro 1")" \
--field=":LBLH" "" \
--field="${translations[ADD ARGUMENTS FOR .EXE FILE]}!${translations[Adding an argument after the <b>.exe</b> file, just like you would add an argument in a shortcut on a <b>WINDOWS </b> system]} :CBE" "$(combobox_fix --empty "\\${LAUNCH_PARAMETERS}" "-dx11 -skipintro 1")" \
--field="${translations[Limit the use of processor cores]}!${translations[Limiting the number of CPU cores is useful for Unity games (It is recommended to set the value equal to 8)]} :CB" "$(combobox_fix --disabled "${CPU_LIMIT_VAR}" "${GET_LOGICAL_CORE}")" \
--field="${translations[Forcibly select the OpenGL version for the game]}!${translations[You can select the required OpenGL version, some games require a forced Compatibility Profile (COMPAT). (Examples are in the drop-down list)]} :CB" "$(combobox_fix --disabled "${PW_MESA_GL_VERSION_OVERRIDE}" "4.6COMPAT!4.5COMPAT!4.3COMPAT!4.1COMPAT!3.3COMPAT!3.2COMPAT")" \
--field="${translations[Forcibly select the VKD3D feature level]}!${translations[You can set a forced feature level VKD3D for games on DirectX12]} :$VKD3D_CB" "$(combobox_fix --disabled "${PW_VKD3D_FEATURE_LEVEL}" "12_2!12_1!12_0!11_1!11_0")" \
@@ -4882,7 +4951,7 @@ relaxed - Same as fifo but allows tearing when below the monitors refresh rate.]
;;
esac
IFS=' ' read -r -a output_yad_edit_db <"${PW_TMPFS_PATH}/tmp_output_yad_edit_db"
read -r -a output_yad_edit_db <"${PW_TMPFS_PATH}/tmp_output_yad_edit_db"
bool_from_yad="0"
for boole_to_int in "${PW_EDIT_DB_LIST[@]}" ; do
export "${boole_to_int}"="${output_yad_edit_db[$bool_from_yad]}"
@@ -4897,12 +4966,12 @@ relaxed - Same as fifo but allows tearing when below the monitors refresh rate.]
PW_WINDOWS_VER="${PW_ADD_SETTINGS[0]}"
PW_DLL_INSTALL="${PW_ADD_SETTINGS[1]}"
WINEDLLOVERRIDES="${PW_ADD_SETTINGS[2]}"
LAUNCH_PARAMETERS="${PW_ADD_SETTINGS[4]}"
CPU_LIMIT="${PW_ADD_SETTINGS[6]}"
PW_MESA_GL_VERSION_OVERRIDE="${PW_ADD_SETTINGS[7]}"
PW_VKD3D_FEATURE_LEVEL="${PW_ADD_SETTINGS[8]}"
PW_LOCALE_SELECT="${PW_ADD_SETTINGS[9]}"
PW_MESA_VK_WSI_PRESENT_MODE="${PW_ADD_SETTINGS[10]}"
LAUNCH_PARAMETERS="${PW_ADD_SETTINGS[3]}"
CPU_LIMIT="${PW_ADD_SETTINGS[4]}"
PW_MESA_GL_VERSION_OVERRIDE="${PW_ADD_SETTINGS[5]}"
PW_VKD3D_FEATURE_LEVEL="${PW_ADD_SETTINGS[6]}"
PW_LOCALE_SELECT="${PW_ADD_SETTINGS[7]}"
PW_MESA_VK_WSI_PRESENT_MODE="${PW_ADD_SETTINGS[8]}"
if [[ "${CPU_LIMIT}" =~ ^[0-9]+$ ]] ; then
PW_WINE_CPU_TOPOLOGY="${CPU_LIMIT}:$(seq -s, 0 $(( CPU_LIMIT - 1 )))"
@@ -4936,8 +5005,8 @@ relaxed - Same as fifo but allows tearing when below the monitors refresh rate.]
gui_vkbasalt () {
KEY_FX_GUI=$RANDOM
FILE_VKBASALT_CONF="${PORT_WINE_PATH}/data/vkBasalt.conf"
read -r -d '' -a LIST_FX <<< "$(grep -E '.fx$|.fxh$' "$FILE_VKBASALT_CONF" | awk '{print $1}')"
IFS=' ' read -r -a GET_FX_IN_FILE <<< "$(echo "$PW_VKBASALT_EFFECTS" | sed -e s/"cas:"// -e s/":"/" "/g)"
read -r -d '' -a LIST_FX < <(grep -E '.fx$|.fxh$' "$FILE_VKBASALT_CONF" | awk '{print $1}')
read -r -a GET_FX_IN_FILE < <(echo "$PW_VKBASALT_EFFECTS" | sed -e s/"cas:"// -e s/":"/" "/g)
PW_3DFX_INFO=${translations[Simulation of an old 3dfx graphics accelerator (adds horizontal stripes)]}
PW_AdaptiveSharpen_INFO=${translations[Sharpness increase, can be used with CAS]}
@@ -5280,7 +5349,7 @@ gui_mangohud () {
fi
if [[ "${GUI_MH_RESULT}" =~ "fps_only" ]] ; then
local GUI_MH_RESULT="fps_only"
GUI_MH_RESULT="fps_only"
print_info "In the MangoHud config fps_only is detected all settings are reseted"
fi
@@ -5441,7 +5510,7 @@ gui_dgvoodoo2 () {
;;
esac
IFS=' ' read -r -a output_yad_dgv2 <"${PW_TMPFS_PATH}/tmp_yad_dgv2_set"
read -r -a output_yad_dgv2 <"${PW_TMPFS_PATH}/tmp_yad_dgv2_set"
bool_from_yad=0
for boole_to_int in "${PW_DGV2_LIST[@]}" ; do
export "${boole_to_int}"="${output_yad_dgv2[$bool_from_yad]}"
@@ -5609,7 +5678,7 @@ gui_gamescope () {
;;
esac
IFS=' ' read -r -a output_yad_gs <"${PW_TMPFS_PATH}/tmp_yad_gs_set"
read -r -a output_yad_gs <"${PW_TMPFS_PATH}/tmp_yad_gs_set"
bool_from_yad="0"
for boole_to_int in "${PW_GS_LIST[@]}" ; do
export "${boole_to_int}"="${output_yad_gs[$bool_from_yad]}"
@@ -5946,7 +6015,7 @@ portwine_output_yad_shortcut () {
if [[ -f "${SLUF}" ]]; then
SLUFUB=false
STUID64=""
while IFS= read -r line; do
while read -r line; do
if [[ "${line}" =~ ^[[:space:]]*\"([0-9]+)\"$ ]]; then
STUIDCUR="${BASH_REMATCH[1]}"
SLUFUB=true
@@ -6025,16 +6094,15 @@ pw_auto_create_shortcut () {
fi
unset LINKS
for link_file in "${PORT_WINE_PATH}"/data/prefixes/*/drive_c/users/*/Desktop/*.lnk
do
link_file=$(readlink -f "${link_file}")
IFS=' ' read -r -a LINKS <<< "${LINKS[*]} ${link_file// /@_@}"
for link_file in "${PORT_WINE_PATH}"/data/prefixes/*/drive_c/users/*/Desktop/*.lnk ; do
link_file=$(readlink -f "$link_file")
LINKS+=("${link_file// /#@_@#}")
done
[[ -z "${LINKS[0]}" ]] && return 0
IFS=' ' read -r -a SORTED_LINKS <<< "$(echo "${LINKS[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' ')"
read -r -a SORTED_LINKS < <(echo "${LINKS[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' ')
for link_file in "${SORTED_LINKS[@]//@_@/ }" ; do
for link_file in "${SORTED_LINKS[@]//#@_@#/ }" ; do
if command -v exiftool &>/dev/null ; then
if timeout 3 exiftool "$link_file" &> "${PW_TMPFS_PATH}/exiftool.tmp" ; then
prefix_name=$(echo "$link_file" | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}')
@@ -6128,22 +6196,22 @@ portwine_change_shortcut () {
portwine_search_shortcut () {
unset PW_DELETE_SHORTCUT_MENU PW_DELETE_SHORTCUT_DESKTOP
PW_DELETE_MENU="$(grep -il "${portwine_exe}" "${HOME}/.local/share/applications"/*.desktop 2>/dev/null)"
read -r -d '' -a PW_DELETE_SHORTCUT_MENU <<< "${PW_DELETE_SHORTCUT_MENU[*]} ${PW_DELETE_MENU// /@_@}"
read -r -d '' -a PW_DELETE_SHORTCUT_MENU <<< "${PW_DELETE_SHORTCUT_MENU[*]}${PW_DELETE_MENU// /#@_@#} "
PW_DELETE_PP="$(grep -il "${portwine_exe}" "${PORT_WINE_PATH}"/*.desktop 2>/dev/null)"
read -r -d '' -a PW_DELETE_SHORTCUT_MENU <<< "${PW_DELETE_SHORTCUT_MENU[*]} ${PW_DELETE_PP// /@_@}"
read -r -d '' -a PW_DELETE_SHORTCUT_MENU <<< "${PW_DELETE_SHORTCUT_MENU[*]}${PW_DELETE_PP// /#@_@#} "
if [[ -d "${HOME}/Desktop" ]] ; then
PW_DELETE_DESKTOP="$(grep -il "${portwine_exe}" "${HOME}/Desktop"/*.desktop 2>/dev/null)"
read -r -d '' -a PW_DELETE_SHORTCUT_DESKTOP <<< "${PW_DELETE_SHORTCUT_DESKTOP[*]} ${PW_DELETE_DESKTOP// /@_@}"
read -r -d '' -a PW_DELETE_SHORTCUT_DESKTOP <<< "${PW_DELETE_SHORTCUT_DESKTOP[*]}${PW_DELETE_DESKTOP// /#@_@#} "
fi
if [[ -d "${HOME}/Рабочий стол" ]] ; then
PW_DELETE_DESKTOP="$(grep -il "${portwine_exe}" "${HOME}/Рабочий стол"/*.desktop 2>/dev/null)"
read -r -d '' -a PW_DELETE_SHORTCUT_DESKTOP <<< "${PW_DELETE_SHORTCUT_DESKTOP[*]} ${PW_DELETE_DESKTOP// /@_@}"
read -r -d '' -a PW_DELETE_SHORTCUT_DESKTOP <<< "${PW_DELETE_SHORTCUT_DESKTOP[*]}${PW_DELETE_DESKTOP// /#@_@#} "
fi
if [[ $(xdg-user-dir DESKTOP) ]] ; then
PW_DELETE_DESKTOP="$(grep -il "${portwine_exe}" "$(xdg-user-dir DESKTOP)"/*.desktop 2>/dev/null)"
read -r -d '' -a PW_DELETE_SHORTCUT_DESKTOP <<< "${PW_DELETE_SHORTCUT_DESKTOP[*]} ${PW_DELETE_DESKTOP// /@_@}"
read -r -d '' -a PW_DELETE_SHORTCUT_DESKTOP <<< "${PW_DELETE_SHORTCUT_DESKTOP[*]}${PW_DELETE_DESKTOP// /#@_@#} "
fi
}
@@ -6154,7 +6222,7 @@ portwine_delete_shortcut () {
unset PORTWINE_CHANGE_SHORTCUT
for delete_shortcut in "${PW_DELETE_SHORTCUT_MENU[@]}" "${PW_DELETE_SHORTCUT_DESKTOP[@]}" ; do
rm -f "${delete_shortcut//@_@/ }"
rm -f "${delete_shortcut//#@_@#/ }"
done
}
@@ -6790,7 +6858,7 @@ See the License for details.]}" 2>/dev/null &
Developer assistants and testers:]}
$(credits_devel)" 2>/dev/null &
"${pw_yad}" --plug="${KEY_CREDITS}" --tabnum=3 --text-info --scroll <<< "$(eval_translations "MIT License
"${pw_yad}" --plug="${KEY_CREDITS}" --tabnum=3 --text-info --scroll < <(eval_translations "MIT License
Copyright © \$%DATE% Castro-Fidel (linux-gaming.ru)
@@ -6810,7 +6878,7 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE." "DATE=$(date +%Y)")" 2>/dev/null &
SOFTWARE." "DATE=$(date +%Y)") 2>/dev/null &
"${pw_yad}" --plug="${KEY_CREDITS}" --tabnum=4 \
--text-info --show-uri --scroll \

View File

@@ -5,5 +5,5 @@
#####################examples###########################
export WINEDLLOVERRIDES="Crash*,REDEngineErrorReporter.exe="
export PW_REDUCE_PULSE_LATENCY=1
export LAUNCH_PARAMETERS=("--launcher-skip") # Additional launch options
export LAUNCH_PARAMETERS="--launcher-skip"
export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue

View File

@@ -7,7 +7,7 @@
# info_ru:
########################################################################
export PW_PREFIX_NAME="AGE_OF_EMPIRES_ONLINE"
export LAUNCH_PARAMETERS=("/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-")
export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Celeste.Installer.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Age of Empires Online"

View File

@@ -7,7 +7,7 @@
# info_ru:
########################################################################
export PW_PREFIX_NAME="ALBION_ONLINE"
export LAUNCH_PARAMETERS=("/S")
export LAUNCH_PARAMETERS="/S"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/albion-online-setup.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Albion Online"

View File

@@ -6,7 +6,7 @@
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS=("/S")
export LAUNCH_PARAMETERS="/S"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Ankama-Setup.exe"
start_portwine
if try_download "https://download.ankama.com/launcher/full/win/" "${PW_AUTOINSTALL_EXE}" no_mirror

View File

@@ -6,7 +6,7 @@
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS=("/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-")
export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/az_webinst.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Anomaly Zone"

View File

@@ -7,7 +7,7 @@
# info_ru:
########################################################################
export PW_PREFIX_NAME="ARIZONA_GAMES_LAUNCHER"
export LAUNCH_PARAMETERS=("/S")
export LAUNCH_PARAMETERS="/S"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Arizona Installer.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Arizona Games Launcher"

View File

@@ -7,7 +7,7 @@
# info_ru:
########################################################################
export PW_PREFIX_NAME="BLOOD_AND_SOUL"
export LAUNCH_PARAMETERS=("/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-")
export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/bs-install.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Blood and Soul"

View File

@@ -7,7 +7,7 @@
# info_ru:
########################################################################
export PW_PREFIX_NAME="BROKEN_RANKS"
export LAUNCH_PARAMETERS=("/q")
export LAUNCH_PARAMETERS="/q"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/BrokenRanksInstaller.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Broken Ranks"

View File

@@ -6,7 +6,7 @@
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS=("/VERYSILENT /SUPPRESSMSGBOXES")
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

View File

@@ -7,7 +7,7 @@
# info_ru:
########################################################################
export PW_PREFIX_NAME="CALIBER"
export LAUNCH_PARAMETERS=("/VERYSILENT" "/CLOSEAPPLICATIONS")
export LAUNCH_PARAMETERS="/VERYSILENT /CLOSEAPPLICATIONS"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/CaliberSetup.exe"
export PW_WINE_USE="PROTON_LG"
# export DISABLE_CP_DEFPFX="1"

View File

@@ -7,7 +7,7 @@
# info_ru:
########################################################################
export PW_PREFIX_NAME="CHICKEN_INVADERS_UNIVERSE"
export LAUNCH_PARAMETERS=("/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-")
export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/ChickenInvadersUniverseInstaller.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Chicken Invaders Universe"

View File

@@ -6,7 +6,7 @@
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS=("/VERYSILENT")
export LAUNCH_PARAMETERS="/VERYSILENT"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/CWClient_Install.exe"
start_portwine
if try_download "https://cdn-01.contractwarsgame.com/standalone/CWClient_Install.exe" "${PW_AUTOINSTALL_EXE}" no_mirror

View File

@@ -6,7 +6,7 @@
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS=("/VERYSILENT")
export LAUNCH_PARAMETERS="/VERYSILENT"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/crossout.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Crossout"
export PW_PREFIX_NAME="CROSSOUT"

View File

@@ -6,7 +6,7 @@
# info_en:
# info_ru:
##########################################################################
export LAUNCH_PARAMETERS=("/S")
export LAUNCH_PARAMETERS="/S"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/dolphin-x64-5.0.exe"
start_portwine
if try_download "https://dl-mirror.dolphin-emu.org/5.0/dolphin-x64-5.0.exe" "${PW_AUTOINSTALL_EXE}" no_mirror

View File

@@ -7,7 +7,7 @@
# info_ru:
########################################################################
export PW_PREFIX_NAME="DOOMSDAY"
export LAUNCH_PARAMETERS=("/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-")
export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/dls_installer_1.0.30_1729944485-3778620.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Doomsday"

View File

@@ -6,7 +6,7 @@
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS=("/silent" "/repair" )
export LAUNCH_PARAMETERS="/silent /repair"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/EAappInstaller.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="EALauncher"
export PW_VULKAN_USE="2"

View File

@@ -7,7 +7,7 @@
# info_ru:
########################################################################
export PW_PREFIX_NAME="ELDEVIN"
export LAUNCH_PARAMETERS=("/S")
export LAUNCH_PARAMETERS="/S"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/eldevin_win64.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Eldevin"

View File

@@ -8,7 +8,7 @@
########################################################################
export PW_WINE_USE="WINE_LG"
export PW_PREFIX_NAME="ELSWORD"
export LAUNCH_PARAMETERS=("/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-")
export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/ElswordInstaller_NA(64bit).exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Elsword"

View File

@@ -6,7 +6,7 @@
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS=("/q" )
export LAUNCH_PARAMETERS="/q"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/EpicGamesLauncherInstaller.msi"
export PW_USE_D3D_EXTRAS=1
export PORTWINE_CREATE_SHORTCUT_NAME="Epic Games Launcher"

View File

@@ -7,7 +7,7 @@
# info_ru:
########################################################################
export PW_PREFIX_NAME="EXOTANKS"
export LAUNCH_PARAMETERS=("/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-")
export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/ExoTanksMOBA_Setup.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="ExoTanks"
#UE4PrereqSetup

View File

@@ -24,7 +24,6 @@ pw_shutdown_please () {
fi
}
export LAUNCH_PARAMETERS=("")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/GameforgeInstaller.exe"
start_portwine
if try_download "https://raw.githubusercontent.com/WarfaceZ/lutris-clients/master/GameforgeInstaller.exe" "${PW_AUTOINSTALL_EXE}"

View File

@@ -7,7 +7,7 @@
# info_ru:
########################################################################
export PW_PREFIX_NAME="GAMEXP"
export LAUNCH_PARAMETERS=("/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-")
export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/InstallGameXPlauncher.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="GameXP"

View File

@@ -11,7 +11,7 @@ GOG_VER="$(curl "https://remote-config.gog.com/components/webinstaller?component
| awk -F'.exe' '{print $1}')"
[[ "${GOG_VER}" != 2.* ]] && yad_error "ERROR: Get the GOG version." && exit 1
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/setup_galaxy_${GOG_VER}.exe"
export LAUNCH_PARAMETERS=("/VERYSILENT")
export LAUNCH_PARAMETERS="/VERYSILENT"
export PW_PREFIX_NAME="GOG"
export DISABLE_CP_DEFPFX="1"
export PW_WINE_USE="WINE_LG"

View File

@@ -8,7 +8,7 @@
########################################################################
VERSION="3.11.00"
export PW_PREFIX_NAME="GOOSE_GOOSE_DUCK"
export LAUNCH_PARAMETERS=("/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-")
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"

View File

@@ -6,7 +6,7 @@
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS=("/VERYSILENT")
export LAUNCH_PARAMETERS="/VERYSILENT"
export PW_PREFIX_NAME="GW2"
export WINEDLLOVERRIDES="mscoree,mshtml="
export PW_MUST_HAVE_DLL=""

View File

@@ -6,7 +6,7 @@
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS=("/S")
export LAUNCH_PARAMETERS="/S"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/igclient_setup.exe"
export PW_DLL_INSTALL="vcrun2019"

View File

@@ -6,7 +6,7 @@
# info_en:
# info_ru:
##########################################################################
export LAUNCH_PARAMETERS=("--silent")
export LAUNCH_PARAMETERS="--silent"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/itch-setup.exe"
start_portwine

View File

@@ -6,7 +6,7 @@
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS=("/VERYSILENT")
export LAUNCH_PARAMETERS="/VERYSILENT"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Lesta_Game_Center_Install_RU.exe"
export PW_PREFIX_NAME="LGC"

View File

@@ -6,7 +6,7 @@
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS=("/s" "/nr" "/l=Russian")
export LAUNCH_PARAMETERS="/s /nr /l=Russian"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/MWO_Launcher_Setup.exe"
start_portwine
if try_download "http://mwogame.com/download.php" "${PW_AUTOINSTALL_EXE}" no_mirror

View File

@@ -6,7 +6,7 @@
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS=("/VERYSILENT")
export LAUNCH_PARAMETERS="/VERYSILENT"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/modern_warships.exe"
export PW_PREFIX_NAME="MODERN_WARSHIPS"
export PORTWINE_CREATE_SHORTCUT_NAME="Modern Warships"

View File

@@ -6,7 +6,7 @@
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS=("/VERYSILENT")
export LAUNCH_PARAMETERS="/VERYSILENT"
export PW_WINDOWS_VER="7"
export PW_PREFIX_NAME="PANZAR"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Panzar.exe"

View File

@@ -6,7 +6,7 @@
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS=("/S")
export LAUNCH_PARAMETERS="/S"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/PathOfExileInstaller.exe"
start_portwine

View File

@@ -6,7 +6,7 @@
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS=("/s" )
export LAUNCH_PARAMETERS="/s"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/plarium_play_setup.exe"
export PW_WINDOWS_VER="10"
export PW_PREFIX_NAME="DOTNET"

View File

@@ -6,7 +6,7 @@
# info_en:
# info_ru:
##########################################################################
export LAUNCH_PARAMETERS=("/VERYSILENT")
export LAUNCH_PARAMETERS="/VERYSILENT"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/PPSSPPSetup.exe"
start_portwine
if try_download "https://ppsspp.org/files/1_16_5/PPSSPPSetup.exe" "${PW_AUTOINSTALL_EXE}" no_mirror

View File

@@ -11,7 +11,7 @@ PR64_VER="$(curl https://www.pj64-emu.com/public-releases | grep 'installer' | h
| awk -F'installer"' '{print $1}')"
[[ "${PR64_VER}" != *-3-* ]] && yad_error "ERROR: Get the Project64 version." && exit 1
export LAUNCH_PARAMETERS=("/VERYSILENT")
export LAUNCH_PARAMETERS="/VERYSILENT"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Project64${PR64_VER}setup.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Project64"

View File

@@ -8,7 +8,7 @@
########################################################################
export PW_PREFIX_NAME="RISE_OF_FLIGHT"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/ROF_UE.zip"
export LAUNCH_PARAMETERS=("/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-")
export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-"
export PORTWINE_CREATE_SHORTCUT_NAME="Rise of Flight"
start_portwine

View File

@@ -6,7 +6,7 @@
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS=("/q" )
export LAUNCH_PARAMETERS="/q"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/RF4SetupRU.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Russian Fishing 4"
export PW_PREFIX_NAME="RUSSIAN_FISHING"

View File

@@ -7,7 +7,7 @@
# info_ru:
########################################################################
export WINEDLLOVERRIDES="d3d9=b"
export LAUNCH_PARAMETERS=("/VERYSILENT")
export LAUNCH_PARAMETERS="/VERYSILENT"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/SecretWorldLegendsMin.exe"
export PW_PREFIX_NAME="SECRET_WORLD_LEGENDS"

View File

@@ -6,7 +6,6 @@
# info_en:
# info_ru:
########################################################################
# export LAUNCH_PARAMETERS=("/S" )
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/EXBO_Setup_ru.exe"
export PW_PREFIX_NAME="DOTNET"

View File

@@ -6,7 +6,7 @@
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS=("/S")
export LAUNCH_PARAMETERS="/S"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/SO_installer.exe"
start_portwine
if try_download "https://update-nl-release.stalker.so/launcher/SO_installer.exe" "${PW_AUTOINSTALL_EXE}" no_mirror

View File

@@ -7,7 +7,7 @@
# info_ru:
########################################################################
export PW_PREFIX_NAME="STAR_CONFLICT"
export LAUNCH_PARAMETERS=("/VERYSILENT")
export LAUNCH_PARAMETERS="/VERYSILENT"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/starconf_installer.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Star Conflict"

View File

@@ -6,7 +6,7 @@
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS=("/S" "/D=c:\Program Files (x86)\Steam")
export LAUNCH_PARAMETERS="/S /D=c:\Program Files (x86)\Steam"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/SteamSetup.exe"
start_portwine
if try_download "https://cdn.cloudflare.steamstatic.com/client/installer/SteamSetup.exe" "${PW_AUTOINSTALL_EXE}" no_mirror

View File

@@ -7,7 +7,7 @@
# info_ru:
########################################################################
export PW_PREFIX_NAME="TANKI_ONLINE"
export LAUNCH_PARAMETERS=("/S")
export LAUNCH_PARAMETERS="/S"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/TankiOnlineSetup.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Tanki Online"

View File

@@ -7,7 +7,7 @@
# info_ru:
########################################################################
export PW_PREFIX_NAME="THE_LORD_OF_THE_RINGS_ONLINE"
export LAUNCH_PARAMETERS=("/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP- /LANG=en")
export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP- /LANG=en"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/lotrolive.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="The Lord of the Rings Online"

View File

@@ -7,7 +7,7 @@
# info_ru:
########################################################################
export PW_PREFIX_NAME="THE_WORLD_NIFTY_CRAFT"
export LAUNCH_PARAMETERS=("/S")
export LAUNCH_PARAMETERS="/S"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/web_installer.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="The World of Nifty Craft"

View File

@@ -11,7 +11,7 @@ URL_VER=$(curl https://www.toontownrewritten.com/play \
| awk -F".exe" '{print $1}' | grep "v1" | head -n1)
export PW_PREFIX_NAME="TOONTOWN_REWRITTEN"
export LAUNCH_PARAMETERS=("/S")
export LAUNCH_PARAMETERS="/S"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/TTRInstaller-$URL_VER.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Toontown Rewritten"

View File

@@ -11,7 +11,7 @@ URL_VER=$(curl https://www.toribash.com/downloads.php \
| awk -F"-Setup.exe" '{print $1}' | grep "5" | head -n1)
export PW_PREFIX_NAME="TORIBASH"
export LAUNCH_PARAMETERS=("/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-")
export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Toribash-${URL_VER}-Setup.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Toribash"

View File

@@ -6,7 +6,7 @@
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS=("/S" "/D=c:\Program Files (x86)\Ubisoft Game Launcher")
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"

View File

@@ -6,7 +6,6 @@
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS=("")
export PW_PREFIX_NAME="VK_PLAY"
export PW_AUTOINSTALL_EXE="${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/steamuser/AppData/Local/VKPlayLoader.exe"
export WINEDLLOVERRIDES="mscoree,mshtml="

View File

@@ -7,7 +7,7 @@
# info_ru:
########################################################################
export PW_PREFIX_NAME="DOTNET"
export LAUNCH_PARAMETERS=("/S")
export LAUNCH_PARAMETERS="/S"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/w3dhub_launcher_install.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="W3D Hub Launcher"

View File

@@ -6,7 +6,7 @@
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS=("/q")
export LAUNCH_PARAMETERS="/q"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Warframe.msi"
export PORTWINE_CREATE_SHORTCUT_NAME="Warframe"

View File

@@ -6,7 +6,7 @@
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS=("/VERYSILENT")
export LAUNCH_PARAMETERS="/VERYSILENT"
[[ "$LANGUAGE" == "ru" ]] && export WGC_LOC=RU || export WGC_LOC=EU
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Wargaming_Game_Center_Install_WoT_${WGC_LOC}.exe"
export PW_PREFIX_NAME="WGC"

View File

@@ -6,7 +6,7 @@
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS=("/S")
export LAUNCH_PARAMETERS="/S"
export PW_PREFIX_NAME="WORLD_OF_SEA_BATTLE"
export PW_VULKAN_USE="2"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/installer.exe"

View File

@@ -6,7 +6,7 @@
# info_en:
# info_ru:
########################################################################
export LAUNCH_PARAMETERS=("/S")
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

View File

@@ -40,7 +40,7 @@ source "$PORT_SCRIPTS_PATH/functions_helper"
export PW_START_PID="$$"
export NO_AT_BRIDGE="1"
export GDK_BACKEND="x11"
IFS=' ' read -r -a pw_full_command_line <<< "$0 $*"
read -r -a pw_full_command_line <<< "$0 $*"
export pw_full_command_line
export orig_IFS="$IFS"
@@ -358,7 +358,7 @@ EOF
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 IFS= read -r line
while read -r line
do
export portwine_exe="$PORT_WINE_PATH/data/prefixes/$PW_PREFIX_NAME/$line"
portwine_create_shortcut
@@ -614,7 +614,7 @@ else
desktop_file_new="${desktop_file//"$PORT_WINE_PATH/"/}"
if [[ $desktop_file_new =~ .desktop$ ]] ; then
if [[ ! $desktop_file_new =~ (PortProton|readme) ]] ; then
while IFS= read -r line1 ; do
while read -r line1 ; do
if [[ $line1 =~ ^Exec= ]] ; then
if check_flatpak ; then
PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${line1//Exec=flatpak run ru.linux_gaming.PortProton /}
@@ -633,7 +633,7 @@ else
PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /}
sed -i "s|Exec=env \"$PORT_SCRIPTS_PATH/start.sh\"|Exec=flatpak run ru.linux_gaming.PortProton|" "$desktop_file"
fi
while IFS=' ' read -r -a line2 ; do
while read -r -a line2 ; do
if [[ \"${line2[0]//#@_@#/ }\" == "${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]}" ]] ; then
PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]=${line2[2]}
break
@@ -643,9 +643,9 @@ else
done < "$PORT_WINE_TMP_PATH/statistics"
if [[ $SORT_WITH_TIME == enabled ]] && [[ ${line2[3]} == NEW_DESKTOP ]] ; then
sed -i "s/${line2[1]} ${line2[2]} NEW_DESKTOP/${line2[1]} ${line2[2]} OLD_DESKTOP/" "$PORT_WINE_TMP_PATH/statistics"
IFS=' ' read -r -a PW_AMOUNT_NEW_DESKTOP <<< "${PW_AMOUNT_NEW_DESKTOP[*]} $AMOUNT_GENERATE_BUTTONS"
PW_AMOUNT_NEW_DESKTOP+=("$AMOUNT_GENERATE_BUTTONS")
else
IFS=' ' read -r -a PW_AMOUNT_OLD_DESKTOP <<< "${PW_AMOUNT_OLD_DESKTOP[*]} $AMOUNT_GENERATE_BUTTONS"
PW_AMOUNT_OLD_DESKTOP+=("$AMOUNT_GENERATE_BUTTONS")
fi
(( AMOUNT_GENERATE_BUTTONS++ ))
fi
@@ -758,7 +758,7 @@ else
# AI_TOP_GAMES используется для сортировки автоинсталлов (работает на эмуляторы тоже)
AI_AMOUNT_GAMES="0" && AI_AMOUNT_EMULS="0" && AI_AMOUNT_ARRAY="0"
for ai_file in "$PORT_SCRIPTS_PATH"/pw_autoinstall/* ; do
while IFS= read -r line ; do
while read -r line ; do
[[ $line =~ "##########" ]] && break
[[ $line =~ "# type: " ]] && AI_TYPE["$AI_AMOUNT_ARRAY"]="${line//# type: /}"
[[ $line =~ "# name: " ]] && AI_NAME["$AI_AMOUNT_ARRAY"]="${line//# name: /}"
@@ -771,14 +771,14 @@ else
done < "$ai_file"
AI_FILE="${ai_file//"$PORT_SCRIPTS_PATH/pw_autoinstall/"/}"
AI_FILE_CHECK="$AI_FILE=$AI_AMOUNT_ARRAY"
IFS=' ' read -r -a AI_FILE_ARRAY <<< "${AI_FILE_ARRAY[*]} $AI_FILE"
AI_FILE_ARRAY+=("$AI_FILE")
if [[ $AI_TOP_GAMES =~ ${AI_FILE_CHECK//=*/} ]] ; then
IFS=' ' read -r -a AI_TRUE_FILE <<< "${AI_TRUE_FILE[*]} $AI_FILE_CHECK"
AI_TRUE_FILE+=("$AI_FILE_CHECK")
else
if [[ ${AI_NAME["$AI_AMOUNT_ARRAY"]} =~ \(ENG\) ]] ; then
IFS=' ' read -r -a AI_FILE_ENG <<< "${AI_FILE_ENG[*]} $AI_AMOUNT_ARRAY"
AI_FILE_ENG+=("$AI_AMOUNT_ARRAY")
else
IFS=' ' read -r -a AI_FILE_UNSORTED <<< "${AI_FILE_UNSORTED[*]} $AI_AMOUNT_ARRAY"
AI_FILE_UNSORTED+=("$AI_AMOUNT_ARRAY")
fi
fi
(( AI_AMOUNT_ARRAY++ ))
@@ -786,8 +786,9 @@ else
for ai_sort in $AI_TOP_GAMES ; do
if [[ ${AI_TRUE_FILE[*]} =~ $ai_sort ]] ; then
AI_TRUE_FILE_NEW=(${AI_TRUE_FILE[@]//$ai_sort=/})
AI_FILE_SORTED+=(${AI_TRUE_FILE_NEW[@]//*=*/})
AI_TRUE_FILE_NEW=("${AI_TRUE_FILE[@]//$ai_sort=/}")
AI_TRUE_FILE_NEW=("${AI_TRUE_FILE_NEW[*]//*=*/}")
AI_FILE_SORTED+=("${AI_TRUE_FILE_NEW[*]// /}")
fi
done

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#Author: Castro-Fidel (linux-gaming.ru)
#SCRIPTS_NEXT_VERSION=2373
#SCRIPTS_NEXT_VERSION=2374
#SCRIPTS_STABLE_VERSION=2360
########################################################################
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"