From 7b0579e3c2e8828be8eda0357cb63eb68c481795 Mon Sep 17 00:00:00 2001 From: Htylol Date: Sat, 2 Nov 2024 03:17:43 +0500 Subject: [PATCH 01/62] =?UTF-8?q?=D0=A3=D0=BB=D1=83=D1=87=D1=88=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D1=8E=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B=20=D1=81=20?= =?UTF-8?q?=D1=80=D0=B5=D0=B5=D1=81=D1=82=D1=80=D0=BE=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data_from_portwine/scripts/functions_helper | 91 +++++++++++-------- .../scripts/pw_autoinstall/PW_CROSSOUT | 2 +- .../scripts/pw_autoinstall/PW_HO_YO_PLAY | 2 +- 3 files changed, 54 insertions(+), 41 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 21876ff..d6fede6 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -1267,16 +1267,36 @@ combobox_fix () { } get_and_set_reg_file () { - local name_block name_for_find find_block find_file find_line count name_for_new_block - local line_reg find_number_line find_check_file name_for_set name_block_old + local name_block name_for_find find_block find_file find_line count name_for_new_block name_for_find_old + local line_reg find_number_line find_check_file name_for_set name_type_reg name_fatal name_add_or_del + name_add_or_del=$1 name_block=$2 - name_block_old=$name_block name_for_find=$3 - name_for_set=$4 - name_for_new_block=$5 - name_block=${name_block//\\/\\\\} - name_block=${name_block//\[/\\[} - find_block=$(grep -n "${name_block//\]/\\]}" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/"*.reg) + name_type_reg=$4 + name_for_set=$5 + name_for_new_block=$6 + name_for_find_old=$name_for_find + name_fatal="$name_block $name_for_find" + + case $name_type_reg in + REG_DWORD) + name_for_find='"'"$name_for_find"'"'"=dword:" + name_for_set=$(convert_dec_and_hex --dec "$name_for_set") ;; + REG_SZ) + name_for_find='"'"$name_for_find"'"'"=" + name_for_set='"'"$name_for_set"'"' ;; + *) + if [[ $name_add_or_del == --delete ]] ; then + name_for_find='"'"$name_for_find"'"' + else + print_error "Name type reg not set for $name_fatal" + return 1 + fi ;; + esac + name_block=${name_block//\\/\\\\\\\\\\\\\\} + name_block=${name_block//*/\\[$name_block} + name_block="${name_block//*/${name_block//\\/\\\\}\\]}" + find_block=$(grep -n "$name_block" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/"*.reg) if [[ -n $find_block ]] ; then find_file=${find_block//:*/} find_line=${find_block//$find_file:/} @@ -1285,47 +1305,40 @@ get_and_set_reg_file () { while IFS= read -r line_reg ; do ((count++)) if [[ $line_reg =~ $name_for_find ]] ; then + if [[ $line_reg == $name_for_find$name_for_set ]] ; then + # когда менять не нужно, потому что такое же + return 0 + fi find_number_line=$(( count + find_line )) find_check_file=1 break fi [[ -z $line_reg ]] && break - done <<< $(sed -n "$find_line"',$p' $find_file) + done <<< "$(sed -n "$find_line"',$p' "$find_file")" IFS="$orig_IFS" fi - if [[ $1 == --add ]] ; then + if [[ $name_add_or_del == --add ]] ; then if [[ -z $find_block ]] ; then if [[ -n $name_for_new_block ]] ; then - sed -i '$a\\n'"${name_block_old//\\/\\\\}" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg" + sed -i '$a\\n'"$name_block\n" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg" find_file=${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg find_line=$(wc -l "$find_file" | awk -F" " '{print $1}') find_line=$(( find_line - 1 )) else - print_error "$name_block_old not found in reg files" + print_error "$name_fatal not found in reg files" return 1 fi fi - if [[ $name_for_set =~ ^[0-9]+$ ]] ; then - name_for_set=$(convert_dec_and_hex --dec "$name_for_set") - fi - if [[ ! $name_for_set =~ ^[0-9]+$ ]] ; then - if [[ $find_check_file == 1 ]] ; then - sed -i "${find_number_line}s/$name_for_find.*/$name_for_find\"$name_for_set\"/" "$find_file" - else - print_info "Added ${name_for_find//=*} to reg file" - sed -i "$(( find_line + 1 ))"'a\\n'"$name_for_find\"$name_for_set\"" "$find_file" - fi + if [[ $find_check_file == 1 ]] ; then + print_info "Change $name_for_find_old to reg file" + sed -i "${find_number_line}s/$name_for_find.*/$name_for_find$name_for_set/" "$find_file" else - if [[ $find_check_file == 1 ]] ; then - sed -i "${find_number_line}s/$name_for_find.*/$name_for_find$name_for_set/" "$find_file" - else - print_info "Added ${name_for_find//=*} to reg file" - sed -i "$(( find_line + 1 ))"'a\\n'"$name_for_find$name_for_set" "$find_file" - fi + print_info "Added $name_for_find_old to reg file" + sed -i "$(( find_line + 1 ))a$name_for_find$name_for_set" "$find_file" fi - elif [[ $1 == --delete ]] ; then + elif [[ $name_add_or_del == --delete ]] ; then [[ $find_check_file != 1 ]] && return 0 - print_info "Delete ${name_for_find//=*} to reg file" + print_info "Delete $name_for_find_old to reg file" sed -i "${find_number_line}d" "$find_file" fi } @@ -1337,7 +1350,7 @@ convert_dec_and_hex () { case "$type" in --dec) # Преобразование из десятичного в шестнадцатеричный - echo -n $(printf "%08x" $num) ;; + echo -n "$(printf "%08x" "$num")" ;; --hex) # Преобразование из шестнадцатеричного в десятичный echo $(( 0x$num )) ;; @@ -3758,28 +3771,28 @@ start_portwine () { fi if [[ "$PW_DINPUT_PROTOCOL" == "1" ]] ; then - get_and_set_reg_file --add '[System\\CurrentControlSet\\Services\\winebus]' '"DisableHidraw"=dword:' "0" - get_and_set_reg_file --add '[System\\CurrentControlSet\\Services\\winebus]' '"Enable SDL"=dword:' "0" + get_and_set_reg_file --add 'System\CurrentControlSet\Services\winebus' 'DisableHidraw' 'REG_DWORD' "0" "system" + get_and_set_reg_file --add 'System\CurrentControlSet\Services\winebus' 'Enable SDL' 'REG_DWORD' "0" "system" else - get_and_set_reg_file --add '[System\\CurrentControlSet\\Services\\winebus]' '"DisableHidraw"=dword:' "1" - get_and_set_reg_file --add '[System\\CurrentControlSet\\Services\\winebus]' '"Enable SDL"=dword:' "1" + get_and_set_reg_file --add 'System\CurrentControlSet\Services\winebus' 'DisableHidraw' 'REG_DWORD' "1" "system" + get_and_set_reg_file --add 'System\CurrentControlSet\Services\winebus' 'Enable SDL' 'REG_DWORD' "1" "system" fi if [[ "$PW_WINE_DPI_VALUE" != "disabled" ]] ; then - get_and_set_reg_file --add '[Control Panel\\Desktop]' '"LogPixels"=dword:' "${PW_WINE_DPI_VALUE// (*/}" + get_and_set_reg_file --add 'Control Panel\Desktop' 'LogPixels' 'REG_DWORD' "${PW_WINE_DPI_VALUE// (*/}" "user" fi if [[ "$PW_USE_NATIVE_WAYLAND" == "1" ]] ; then export PW_DISPLAY="env DISPLAY=" export PW_USE_RUNTIME="0" - get_and_set_reg_file --add '[Software\\Wine\\Drivers]' '"Graphics"=' "x11,wayland" "user" + get_and_set_reg_file --add 'Software\Wine\Drivers' 'Graphics' 'REG_SZ' "x11,wayland" "user" else unset PW_DISPLAY - get_and_set_reg_file --delete '[Software\\Wine\\Drivers]' '"Graphics"=' "x11,wayland" + get_and_set_reg_file --delete 'Software\Wine\Drivers' 'Graphics' fi if [[ "$PW_SOUND_DRIVER_USE" != "disabled" ]] ; then - get_and_set_reg_file --add '[Software\\Wine\\Drivers]' '"Audio"=' "$PW_SOUND_DRIVER_USE" "user" + get_and_set_reg_file --add 'Software\Wine\Drivers' 'Audio' 'REG_SZ' "$PW_SOUND_DRIVER_USE" "user" fi pw_stop_progress_bar diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_CROSSOUT b/data_from_portwine/scripts/pw_autoinstall/PW_CROSSOUT index 12d4a6c..ab7accb 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_CROSSOUT +++ b/data_from_portwine/scripts/pw_autoinstall/PW_CROSSOUT @@ -18,7 +18,7 @@ then pw_kill_autostart launcher.exe 3 & pw_run "${PW_AUTOINSTALL_EXE}" portwine_exe="${WINEPREFIX}/drive_c/users/$USER/AppData/Local/Crossout/launcher.exe" - pw_run reg add "HKEY_CURRENT_USER\Software\Wine\X11 Driver" /v "Decorated" /t REG_SZ /d "N" /f + get_and_set_reg_file --add 'Software\Wine\X11' 'Decorated' 'REG_SZ' "N" "user" pw_create_unique_exe "crossout_launcher_pp" try_remove_file "${PW_AUTOINSTALL_EXE}" try_remove_file "${portwine_exe}.ppdb" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_HO_YO_PLAY b/data_from_portwine/scripts/pw_autoinstall/PW_HO_YO_PLAY index 53cef2f..9959ec8 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_HO_YO_PLAY +++ b/data_from_portwine/scripts/pw_autoinstall/PW_HO_YO_PLAY @@ -20,7 +20,7 @@ then export PATH_TO_GAME="${PW_USER_TEMP}" pw_run "${PW_AUTOINSTALL_EXE}" export portwine_exe="$WINEPREFIX/drive_c/Program Files/HoYoPlay/launcher.exe" - pw_run reg add "HKEY_CURRENT_USER\Software\Wine\X11 Driver" /v "Decorated" /t REG_SZ /d "N" /f + get_and_set_reg_file --add 'Software\Wine\X11' 'Decorated' 'REG_SZ' "N" "user" pw_create_unique_exe "hoyoplay_launcher_pp" try_remove_file "${PW_AUTOINSTALL_EXE}" try_remove_file "${portwine_exe}.ppdb" From 84834e1bdc61930e744a89b3bb5d962ff209f617 Mon Sep 17 00:00:00 2001 From: Htylol Date: Sat, 2 Nov 2024 11:25:00 +0500 Subject: [PATCH 02/62] Added .png to 48 and make happy exe-thumbnailer --- data_from_portwine/img/bat_48.png | Bin 0 -> 5874 bytes data_from_portwine/img/exe_48.png | Bin 0 -> 5924 bytes data_from_portwine/img/msi_48.png | Bin 0 -> 5950 bytes data_from_portwine/img/reg_48.png | Bin 0 -> 5952 bytes data_from_portwine/img/setup_48.png | Bin 0 -> 6494 bytes data_from_portwine/scripts/functions_helper | 3 ++- 6 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 data_from_portwine/img/bat_48.png create mode 100644 data_from_portwine/img/exe_48.png create mode 100644 data_from_portwine/img/msi_48.png create mode 100644 data_from_portwine/img/reg_48.png create mode 100644 data_from_portwine/img/setup_48.png diff --git a/data_from_portwine/img/bat_48.png b/data_from_portwine/img/bat_48.png new file mode 100644 index 0000000000000000000000000000000000000000..03c83ccad77e35ca5a9b26338016df3c766d58f4 GIT binary patch literal 5874 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 literal 0 HcmV?d00001 diff --git a/data_from_portwine/img/msi_48.png b/data_from_portwine/img/msi_48.png new file mode 100644 index 0000000000000000000000000000000000000000..cc28265d8dcb37edc46204fa5ee211ff197260bd GIT binary patch literal 5950 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 fUC+p~^X9V$~1yIj Date: Sat, 2 Nov 2024 07:49:12 +0500 Subject: [PATCH 03/62] Added recommend_dpi and fixes_after_update --- data_from_portwine/locales/PortProton.pot | 9 ++- .../locales/es/LC_MESSAGES/PortProton.po | 9 ++- .../locales/ru/LC_MESSAGES/PortProton.po | 16 +++-- data_from_portwine/scripts/functions_helper | 64 ++++++++++++++++--- data_from_portwine/scripts/start.sh | 11 ++++ 5 files changed, 87 insertions(+), 22 deletions(-) diff --git a/data_from_portwine/locales/PortProton.pot b/data_from_portwine/locales/PortProton.pot index 0ab8185..e640d6a 100644 --- a/data_from_portwine/locales/PortProton.pot +++ b/data_from_portwine/locales/PortProton.pot @@ -7,7 +7,7 @@ msgid "" msgstr "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2024-11-01 02:46+0500\n" + "POT-Creation-Date: 2024-11-02 10:04+0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1381,6 +1381,9 @@ msgid "If downloading steam covers is enabled, they will be downloaded and " "is unavailable for some reason)" msgstr "" +msgid "Recommended value" +msgstr "" + msgid "Choose a graphics card to run the game" msgstr "" @@ -1388,10 +1391,10 @@ msgid "Select which video card will be used to run the game (used for all " "running games and programs in PortProton)" msgstr "" -msgid "Force dpi for fonts" +msgid "Force dpi" msgstr "" -msgid "Here you can set forced dpi for fonts in wine" +msgid "Here you can set forced dpi for applications wine" msgstr "" msgid "Choice wine audio driver" diff --git a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po index 862e6d3..57613f3 100644 --- a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-01 02:43+0500\n" +"POT-Creation-Date: 2024-11-02 10:04+0500\n" "PO-Revision-Date: 2024-10-26 13:58+0500\n" "Last-Translator: \n" "Language-Team: \n" @@ -1804,6 +1804,9 @@ msgstr "" "crearán. (La desactivación se proporciona en los casos en que su descarga no " "esté disponible por algún motivo)" +msgid "Recommended value" +msgstr "" + msgid "Choose a graphics card to run the game" msgstr "Elige una tarjeta gráfica para ejecutar el juego" @@ -1814,10 +1817,10 @@ msgstr "" "Selecciona qué tarjeta de vídeo se utilizará para ejecutar el juego (se " "utiliza para todos los juegos y programas en ejecución en PortProton)" -msgid "Force dpi for fonts" +msgid "Force dpi" msgstr "" -msgid "Here you can set forced dpi for fonts in wine" +msgid "Here you can set forced dpi for applications wine" msgstr "" msgid "Choice wine audio driver" diff --git a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po index 07e0840..4b87b7e 100644 --- a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-01 02:43+0500\n" -"PO-Revision-Date: 2024-11-01 02:44+0500\n" +"POT-Creation-Date: 2024-11-02 10:04+0500\n" +"PO-Revision-Date: 2024-11-02 10:05+0500\n" "Last-Translator: \n" "Language-Team: \n" "Language: ru_RU\n" @@ -1782,6 +1782,9 @@ msgstr "" "создаваться. (Отключение предусмотрено в тех случаях, когда их скачивание по " "каким-то причинам недоступно)" +msgid "Recommended value" +msgstr "Рекомендуемое значение" + msgid "Choose a graphics card to run the game" msgstr "Выбрать видеокарту для запуска игры" @@ -1792,12 +1795,11 @@ msgstr "" "Выбор видеокарты для запуска игры (используется для всех запущенных игр и " "программ в PortProton)" -msgid "Force dpi for fonts" -msgstr "Принудительное разрешение шрифтов" +msgid "Force dpi" +msgstr "Принудительный масштаб" -msgid "Here you can set forced dpi for fonts in wine" -msgstr "" -"Здесь вы можете установить принудительное разрешение для шрифтов в Wine" +msgid "Here you can set forced dpi for applications wine" +msgstr "Здесь вы можете установить принудительный масштаб для приложений wine" msgid "Choice wine audio driver" msgstr "Выбрать звуковой драйвер" diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index d6fede6..8ec628f 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -1296,11 +1296,20 @@ get_and_set_reg_file () { name_block=${name_block//\\/\\\\\\\\\\\\\\} name_block=${name_block//*/\\[$name_block} name_block="${name_block//*/${name_block//\\/\\\\}\\]}" - find_block=$(grep -n "$name_block" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/"*.reg) + if [[ -n $name_for_new_block ]] ; then + find_block=$(grep -n "$name_block" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg") + else + find_block=$(grep -n "$name_block" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/"*.reg) + fi if [[ -n $find_block ]] ; then - find_file=${find_block//:*/} - find_line=${find_block//$find_file:/} - find_line=${find_line//:*/} + if [[ -n $name_for_new_block ]] ; then + find_file="${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg" + find_line=${find_block//:*/} + else + find_file=${find_block//:*/} + find_line=${find_block//$find_file:/} + find_line=${find_line//:*/} + fi count=-1 while IFS= read -r line_reg ; do ((count++)) @@ -1321,7 +1330,7 @@ get_and_set_reg_file () { if [[ -z $find_block ]] ; then if [[ -n $name_for_new_block ]] ; then sed -i '$a\\n'"$name_block\n" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg" - find_file=${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg + find_file="${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg" find_line=$(wc -l "$find_file" | awk -F" " '{print $1}') find_line=$(( find_line - 1 )) else @@ -1359,6 +1368,32 @@ convert_dec_and_hex () { esac } +recommend_dpi () { + local height=$1 + + if [[ -z "$height" ]] ; then + echo "disabled" + return 1 + fi + local dpi=$(( height / 9 )) + echo "$dpi" +} + +fixes_after_update () { + local fixes_path line fixes_info IFS + fixes_info=$1 + fixes_path="$PORT_WINE_TMP_PATH/fixes_apply" + [[ ! -f $fixes_path ]] && touch "$fixes_path" + + while IFS= read -r line ; do + if [[ $line == "$fixes_info" ]] ; then + return 1 + fi + done < "$fixes_path" + echo "$fixes_info" >> "$fixes_path" + return 0 +} + restart_pp () { case "$1" in --userconf) export RESTART_PP_USED="userconf" ;; @@ -3779,7 +3814,12 @@ start_portwine () { fi if [[ "$PW_WINE_DPI_VALUE" != "disabled" ]] ; then - get_and_set_reg_file --add 'Control Panel\Desktop' 'LogPixels' 'REG_DWORD' "${PW_WINE_DPI_VALUE// (*/}" "user" + 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 if [[ "$PW_USE_NATIVE_WAYLAND" == "1" ]] ; then @@ -5624,6 +5664,9 @@ gui_userconf () { SORT_WITH_TIME="enabled" fi + if [[ $PW_WINE_DPI_VALUE == "recommended" ]] ; then + PW_WINE_DPI_VALUE="${translations[Recommended value]}" + fi if [[ -n "$PW_WINE_DPI_VALUE" ]] \ && [[ "$PW_WINE_DPI_VALUE" != "disabled" ]] then @@ -5632,10 +5675,10 @@ gui_userconf () { YAD_DPI_VAR="disabled" fi - "${pw_yad}" --plug=$KEY_USERCONF_GUI --tabnum="2" --form --columns=1 --separator="@" --homogeneous-row \ + "${pw_yad}" --plug=$KEY_USERCONF_GUI --tabnum="2" --form --columns=1 --separator="%" --homogeneous-row \ --gui-type-text="$PANED_GUI_TYPE_TEXT_DOWN" --gui-type-layout="$PANED_GUI_TYPE_LAYOUT_DOWN" \ --field="${translations[Choose a graphics card to run the game]}!${translations[Select which video card will be used to run the game (used for all running games and programs in PortProton)]} :CB" "$(combobox_fix --disabled "$GPU_VAR" "$GET_GPU_NAMES")" \ - --field="${translations[Force dpi for fonts]}!${translations[Here you can set forced dpi for fonts in wine]} :CB" "$(combobox_fix --disabled "$YAD_DPI_VAR" "96 (100%)!120 (125%)!144 (150%)!168 (175%)!192 (200%)!216 (225%)!240 (250%)!264 (275%)!288 (300%)")" \ + --field="${translations[Force dpi]}!${translations[Here you can set forced dpi for applications wine]} :CB" "$(combobox_fix --disabled "$YAD_DPI_VAR" "${translations[Recommended value]}!96!120!144!168!192!216!240!264!288")" \ --field="${translations[Choice wine audio driver]}!${translations[Fixes sound popling if choice alsa]} :CB" "$(combobox_fix --disabled "$SOUND_DRIVER_VAR" "alsa!oss!pulse")" \ --field="${translations[Choice gui themes]}!${translations[Allows you to select a theme for PortProton]} :CB" "$(combobox_fix "$GUI_THEME" "default!compact!classic")" \ --field="${translations[Time display]}!${translations[Displays time spent in an application or game]} :CB" "$(combobox_fix --disabled "$DESKTOP_WITH_TIME" "enabled")" \ @@ -5670,10 +5713,13 @@ gui_userconf () { gui_open_user_conf ;; 166) - IFS='@' read -r -a PW_ADD_SETTINGS_UC <"${PW_TMPFS_PATH}/tmp_yad_userconf_set_cb" + IFS='%' read -r -a PW_ADD_SETTINGS_UC <"${PW_TMPFS_PATH}/tmp_yad_userconf_set_cb" IFS="$orig_IFS" PW_GPU_USE="${PW_ADD_SETTINGS_UC[0]}" PW_WINE_DPI_VALUE="${PW_ADD_SETTINGS_UC[1]}" + if [[ $PW_WINE_DPI_VALUE == "${translations[Recommended value]}" ]] ; then + PW_WINE_DPI_VALUE="recommended" + fi PW_SOUND_DRIVER_USE="${PW_ADD_SETTINGS_UC[2]}" GUI_THEME="${PW_ADD_SETTINGS_UC[3]}" DESKTOP_WITH_TIME="${PW_ADD_SETTINGS_UC[4]}" diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 793eb4c..5c96c0b 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -248,6 +248,17 @@ if [[ ! $PW_GUI_START =~ (PANED|NOTEBOOK) ]] ; then export PW_GUI_START="NOTEBOOK" fi +# TODO:fixes_after_update +if fixes_after_update "2371: Reset PW_WINE_DPI_VALUE in user.conf" ; then + sed -i '/export PW_WINE_DPI_VALUE=/d' "$USER_CONF" + unset PW_WINE_DPI_VALUE +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_flatpak ; then if check_gamescope_session then PW_TERM="env LANG=C xterm -fullscreen -bg black -fg white -e" From feedb9b2c9e662eb9ad66bdf1246398583bfe611 Mon Sep 17 00:00:00 2001 From: Htylol Date: Sun, 3 Nov 2024 10:39:45 +0500 Subject: [PATCH 04/62] Added PW_GS_CURSOR_SCALE_HEIGHT for gamescope --- data_from_portwine/locales/PortProton.pot | 4 ++++ .../locales/es/LC_MESSAGES/PortProton.po | 6 ++++++ .../locales/ru/LC_MESSAGES/PortProton.po | 6 ++++++ data_from_portwine/scripts/functions_helper | 13 +++++++++---- data_from_portwine/scripts/var | 1 + 5 files changed, 26 insertions(+), 4 deletions(-) diff --git a/data_from_portwine/locales/PortProton.pot b/data_from_portwine/locales/PortProton.pot index 0ab8185..a96314b 100644 --- a/data_from_portwine/locales/PortProton.pot +++ b/data_from_portwine/locales/PortProton.pot @@ -1256,6 +1256,10 @@ msgid "Force use sdl videodriver x11, works with BACKEND SDL. (Default is " "wayland)" msgstr "" +msgid "If specified, sets a base output height to linearly scale the cursor " + "against." +msgstr "" + msgid "Change settings gamescope for" msgstr "" diff --git a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po index 862e6d3..7045310 100644 --- a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po @@ -1636,6 +1636,12 @@ msgstr "" "Forzar el uso del controlador de video SDL x11, funciona con el backend SDL. " "(Por defecto es Wayland)." +msgid "" +"If specified, sets a base output height to linearly scale the cursor against." +msgstr "" +"Si se especifica, establece una altura de salida base para escalar " +"linealmente el cursor." + msgid "Change settings gamescope for" msgstr "Cambiar ajustes gamescope para" diff --git a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po index 07e0840..7305221 100644 --- a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po @@ -1615,6 +1615,12 @@ msgstr "" "запуском), работает вместе с SDL BACKEND (используется по умолчанию в " "Wayland сессии)" +msgid "" +"If specified, sets a base output height to linearly scale the cursor against." +msgstr "" +"Если указано, устанавливает базовую высоту вывода для линейного " +"масштабирования курсора." + msgid "Change settings gamescope for" msgstr "Изменить настройки Gamescope для" diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 21876ff..049f5c8 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -3879,6 +3879,7 @@ start_portwine () { [[ "${PW_GS_BACKEND_SDL}" == "1" ]] && PW_GAMESCOPE_ARGS_NEW+=" --backend sdl" [[ "${PW_GS_SDL_VIDEODRIVER_X11}" == "1" ]] && export SDL_VIDEODRIVER="x11" + [[ "${PW_GS_CURSOR_SCALE_HEIGHT}" == "1" ]] && PW_GAMESCOPE_ARGS_NEW+=" --cursor-scale-height 1" #combobox if [[ "${PW_GS_SHOW_RESOLUTION}" != "disabled" ]] ; then @@ -5386,16 +5387,19 @@ gui_gamescope () { PW_GS_EXPOSE_WAYLAND PW_GS_REALTIME_SCHEDULING ) - grep -e '--mangoapp' "${PW_TMPFS_PATH}/gamescope.tmp" &>/dev/null && add_to_array "PW_GS_LIST" PW_GS_MANGOAPP - grep -e '--backend' "${PW_TMPFS_PATH}/gamescope.tmp" &>/dev/null && add_to_array "PW_GS_LIST" PW_GS_BACKEND_SDL PW_GS_SDL_VIDEODRIVER_X11 + [[ $(<"${PW_TMPFS_PATH}/gamescope.tmp") =~ '--mangoapp' ]] && add_to_array "PW_GS_LIST" PW_GS_MANGOAPP + [[ $(<"${PW_TMPFS_PATH}/gamescope.tmp") =~ '--backend' ]] && add_to_array "PW_GS_LIST" PW_GS_BACKEND_SDL + check_wayland_session && add_to_array "PW_GS_LIST" PW_GS_SDL_VIDEODRIVER_X11 + [[ $(<"${PW_TMPFS_PATH}/gamescope.tmp") =~ '--cursor-scale-height' ]] && add_to_array "PW_GS_LIST" PW_GS_CURSOR_SCALE_HEIGHT - GS_FILTER_CB="linear!nearest!fsr!nis!pixel" #debian bookworm fix - if grep -e '-U, --fsr-upscaling' "${PW_TMPFS_PATH}/gamescope.tmp" &>/dev/null ; then + if [[ $(<"${PW_TMPFS_PATH}/gamescope.tmp") =~ '-U, --fsr-upscaling' ]] ; then GS_FILTER_CB="fsr!nis" export PW_GS_FILTER_MODE_OLD="true" rm_from_array "PW_GS_LIST" PW_GS_FORCE_GRAB_CURSOR PW_GS_FORCE_GRAB_KEYBOARD PW_GS_HDR_ENABLE PW_GS_HDR_FORCE_SUPPORT \ PW_GS_HDR_FORCE_OUTPUT + else + GS_FILTER_CB="linear!nearest!fsr!nis!pixel" fi PW_GS_FULLSCREEN_INFO=${translations[Make the window fullscreen]} @@ -5416,6 +5420,7 @@ gui_gamescope () { PW_GS_MANGOAPP_INFO=${translations[Launch with the mangoapp (mangohud) performance overlay enabled. You should use this instead of using mangohud on the game or gamescope.]} PW_GS_BACKEND_SDL_INFO=${translations[Use sdl backend. (by default wayland backend is used).]} PW_GS_SDL_VIDEODRIVER_X11_INFO=${translations[Force use sdl videodriver x11, works with BACKEND SDL. (Default is wayland)]} + PW_GS_CURSOR_SCALE_HEIGHT_INFO=${translations[if specified, sets a base output height to linearly scale the cursor against.]} unset ADD_CHK_BOX_GS if [[ "${GAMESCOPE_INSTALLED}" == 1 ]] ; then diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index 74e9fba..e5de3ae 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -131,6 +131,7 @@ export PW_GS_REALTIME_SCHEDULING="0" export PW_GS_BACKEND_SDL="0" export PW_GS_SDL_VIDEODRIVER_X11="0" export PW_GS_MANGOAPP="0" +export PW_GS_CURSOR_SCALE_HEIGHT="0" ###PREFIX_VERSION### export DOTPFX_VER="48v7" export DEFPFX_VER="v1" From b97b6623f2814707e70a45dfaee7862a4ce6d4a6 Mon Sep 17 00:00:00 2001 From: Htylol Date: Mon, 4 Nov 2024 03:12:20 +0500 Subject: [PATCH 05/62] Added choice of GTK themes (default, light, dark) --- data_from_portwine/locales/PortProton.pot | 23 ++++++++++++- .../locales/es/LC_MESSAGES/PortProton.po | 28 +++++++++++++-- .../locales/ru/LC_MESSAGES/PortProton.po | 28 +++++++++++++-- data_from_portwine/scripts/functions_helper | 34 ++++++++++++++++--- 4 files changed, 104 insertions(+), 9 deletions(-) diff --git a/data_from_portwine/locales/PortProton.pot b/data_from_portwine/locales/PortProton.pot index 0ab8185..1419db3 100644 --- a/data_from_portwine/locales/PortProton.pot +++ b/data_from_portwine/locales/PortProton.pot @@ -1381,6 +1381,21 @@ msgid "If downloading steam covers is enabled, they will be downloaded and " "is unavailable for some reason)" msgstr "" +msgid "default" +msgstr "" + +msgid "compact" +msgstr "" + +msgid "classic" +msgstr "" + +msgid "dark" +msgstr "" + +msgid "light" +msgstr "" + msgid "Choose a graphics card to run the game" msgstr "" @@ -1400,12 +1415,18 @@ msgstr "" msgid "Fixes sound popling if choice alsa" msgstr "" -msgid "Choice gui themes" +msgid "Select PortProton theme" msgstr "" msgid "Allows you to select a theme for PortProton" msgstr "" +msgid "Select gtk theme" +msgstr "" + +msgid "Allows you to select a theme for GTK." +msgstr "" + msgid "Time display" msgstr "" diff --git a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po index 862e6d3..8f746e2 100644 --- a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po @@ -1804,6 +1804,21 @@ msgstr "" "crearán. (La desactivación se proporciona en los casos en que su descarga no " "esté disponible por algún motivo)" +msgid "default" +msgstr "por defecto" + +msgid "compact" +msgstr "compacto" + +msgid "classic" +msgstr "clásico" + +msgid "dark" +msgstr "oscuro" + +msgid "light" +msgstr "ligero" + msgid "Choose a graphics card to run the game" msgstr "Elige una tarjeta gráfica para ejecutar el juego" @@ -1826,12 +1841,18 @@ msgstr "Controlador de audio de vino elegido" msgid "Fixes sound popling if choice alsa" msgstr "Corrige el sonido estallido de elección alsa alsa" -msgid "Choice gui themes" -msgstr "Temas de interfaz gráfica de usuario elegidos" +msgid "Select PortProton theme" +msgstr "Seleccione el tema PortProton" msgid "Allows you to select a theme for PortProton" msgstr "Le permite seleccionar un tema para PortProton" +msgid "Select gtk theme" +msgstr "Seleccione el tema gtk" + +msgid "Allows you to select a theme for GTK." +msgstr "Le permite seleccionar un tema para GTK." + msgid "Time display" msgstr "Mostrar tiempo" @@ -2222,6 +2243,9 @@ msgid "" "list below:" msgstr "" +#~ msgid "Choice gui themes" +#~ msgstr "Temas de interfaz gráfica de usuario elegidos" + #~ msgid "" #~ "A higher number of duplicate desktop files were found for this file." #~ "\\nShould I delete the extra ones or not?" diff --git a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po index 07e0840..fbd93f3 100644 --- a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po @@ -1782,6 +1782,21 @@ msgstr "" "создаваться. (Отключение предусмотрено в тех случаях, когда их скачивание по " "каким-то причинам недоступно)" +msgid "default" +msgstr "по умолчанию" + +msgid "compact" +msgstr "компактная" + +msgid "classic" +msgstr "классическая" + +msgid "dark" +msgstr "тёмная" + +msgid "light" +msgstr "светлая" + msgid "Choose a graphics card to run the game" msgstr "Выбрать видеокарту для запуска игры" @@ -1805,12 +1820,18 @@ msgstr "Выбрать звуковой драйвер" msgid "Fixes sound popling if choice alsa" msgstr "Выбор alsa исправляет заикание звука" -msgid "Choice gui themes" -msgstr "Выбор графической темы" +msgid "Select PortProton theme" +msgstr "Выбрать тему PortProton" msgid "Allows you to select a theme for PortProton" msgstr "Позволяет выбрать тему для PortProton" +msgid "Select gtk theme" +msgstr "Выбрать тему GTK" + +msgid "Allows you to select a theme for GTK." +msgstr "Позволяет выбрать светлую или тёмную тему" + msgid "Time display" msgstr "Отображение времени" @@ -2217,6 +2238,9 @@ msgstr "" "--autoinstall и название того, что необходимо установить, указано в списке " "ниже:" +#~ msgid "Choice gui themes" +#~ msgstr "Выбор графической темы" + #~ msgid "" #~ "A higher number of duplicate desktop files were found for this file." #~ "\\nShould I delete the extra ones or not?" diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 21876ff..0bc04aa 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -5619,12 +5619,27 @@ gui_userconf () { YAD_DPI_VAR="disabled" fi + if [[ $GUI_THEME == default ]] ; then GUI_THEME=${translations[default]} + elif [[ $GUI_THEME == compact ]] ; then GUI_THEME=${translations[compact]} + elif [[ $GUI_THEME == classic ]] ; then GUI_THEME=${translations[classic]} + fi + + if [[ -z $GTK_THEME ]] ; then + YAD_GTK_THEME="${translations[default]}!${translations[light]}!${translations[dark]}" + else + if [[ $GTK_THEME =~ :dark$ ]] + then YAD_GTK_THEME="${translations[dark]}!${translations[light]}!${translations[default]}" + else YAD_GTK_THEME="${translations[light]}!${translations[dark]}!${translations[default]}" + fi + fi + "${pw_yad}" --plug=$KEY_USERCONF_GUI --tabnum="2" --form --columns=1 --separator="@" --homogeneous-row \ --gui-type-text="$PANED_GUI_TYPE_TEXT_DOWN" --gui-type-layout="$PANED_GUI_TYPE_LAYOUT_DOWN" \ --field="${translations[Choose a graphics card to run the game]}!${translations[Select which video card will be used to run the game (used for all running games and programs in PortProton)]} :CB" "$(combobox_fix --disabled "$GPU_VAR" "$GET_GPU_NAMES")" \ --field="${translations[Force dpi for fonts]}!${translations[Here you can set forced dpi for fonts in wine]} :CB" "$(combobox_fix --disabled "$YAD_DPI_VAR" "96 (100%)!120 (125%)!144 (150%)!168 (175%)!192 (200%)!216 (225%)!240 (250%)!264 (275%)!288 (300%)")" \ --field="${translations[Choice wine audio driver]}!${translations[Fixes sound popling if choice alsa]} :CB" "$(combobox_fix --disabled "$SOUND_DRIVER_VAR" "alsa!oss!pulse")" \ - --field="${translations[Choice gui themes]}!${translations[Allows you to select a theme for PortProton]} :CB" "$(combobox_fix "$GUI_THEME" "default!compact!classic")" \ + --field="${translations[Select PortProton theme]}!${translations[Allows you to select a theme for PortProton]} :CB" "$(combobox_fix "$GUI_THEME" "${translations[default]}!${translations[compact]}!${translations[classic]}")" \ + --field="${translations[Select gtk theme]}!${translations[Allows you to select a theme for GTK.]} :CB" "$(combobox_fix "$YAD_GTK_THEME")" \ --field="${translations[Time display]}!${translations[Displays time spent in an application or game]} :CB" "$(combobox_fix --disabled "$DESKTOP_WITH_TIME" "enabled")" \ --field="${translations[Sort shortcuts by time]}!${translations[This setting sorts the shortcuts in the main menu depending on the time spent in the application or game]} :CB" "$(combobox_fix --disabled "$SORT_WITH_TIME" "enabled")" \ 1> "${PW_TMPFS_PATH}/tmp_yad_userconf_set_cb" 2>/dev/null & @@ -5663,9 +5678,20 @@ gui_userconf () { PW_WINE_DPI_VALUE="${PW_ADD_SETTINGS_UC[1]}" PW_SOUND_DRIVER_USE="${PW_ADD_SETTINGS_UC[2]}" GUI_THEME="${PW_ADD_SETTINGS_UC[3]}" - DESKTOP_WITH_TIME="${PW_ADD_SETTINGS_UC[4]}" - SORT_WITH_TIME="${PW_ADD_SETTINGS_UC[5]}" - edit_user_conf_from_gui PW_GPU_USE PW_WINE_DPI_VALUE PW_SOUND_DRIVER_USE GUI_THEME DESKTOP_WITH_TIME SORT_WITH_TIME + if [[ $GUI_THEME == ${translations[default]} ]] ; then GUI_THEME=default + elif [[ $GUI_THEME == ${translations[compact]} ]] ; then GUI_THEME=compact + elif [[ $GUI_THEME == ${translations[classic]} ]] ; then GUI_THEME=classic + fi + GTK_THEME="${PW_ADD_SETTINGS_UC[4]}" + YAD_GTK_THEME=$(gsettings get org.gnome.desktop.interface gtk-theme) + YAD_GTK_THEME=${YAD_GTK_THEME//\'/} + if [[ $GTK_THEME == ${translations[default]} ]] ; then unset GTK_THEME + elif [[ $GTK_THEME == ${translations[light]} ]] ; then GTK_THEME="$YAD_GTK_THEME:light" + elif [[ $GTK_THEME == ${translations[dark]} ]] ; then GTK_THEME="$YAD_GTK_THEME:dark" + fi + DESKTOP_WITH_TIME="${PW_ADD_SETTINGS_UC[5]}" + SORT_WITH_TIME="${PW_ADD_SETTINGS_UC[6]}" + edit_user_conf_from_gui PW_GPU_USE PW_WINE_DPI_VALUE PW_SOUND_DRIVER_USE GUI_THEME GTK_THEME DESKTOP_WITH_TIME SORT_WITH_TIME restart_pp ;; esac From bb7133ae2539c01482933874b00c2f1095e7631b Mon Sep 17 00:00:00 2001 From: Htylol Date: Mon, 4 Nov 2024 05:16:42 +0500 Subject: [PATCH 06/62] added fix for alt linux --- data_from_portwine/scripts/functions_helper | 27 ++++++++++++--------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 0bc04aa..f1ce3ae 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -5624,14 +5624,21 @@ gui_userconf () { elif [[ $GUI_THEME == classic ]] ; then GUI_THEME=${translations[classic]} fi - if [[ -z $GTK_THEME ]] ; then - YAD_GTK_THEME="${translations[default]}!${translations[light]}!${translations[dark]}" - else - if [[ $GTK_THEME =~ :dark$ ]] - then YAD_GTK_THEME="${translations[dark]}!${translations[light]}!${translations[default]}" - else YAD_GTK_THEME="${translations[light]}!${translations[dark]}!${translations[default]}" + if command -v gsettings ; then + YAD_GTK_THEME_CHECK=$(gsettings get org.gnome.desktop.interface gtk-theme) + YAD_GTK_THEME_CHECK=${YAD_GTK_THEME_CHECK//\'/} + if [[ -n $YAD_GTK_THEME_CHECK ]] ; then + if [[ ! ${YAD_GTK_THEME_CHECK,,} == adwaita ]] ; then + YAD_GTK_THEME="$YAD_GTK_THEME_CHECK:${translations[light]}!$YAD_GTK_THEME_CHECK:${translations[dark]}!" + elif [[ ${YAD_GTK_THEME_CHECK,,} == breeze ]] ; then + YAD_GTK_THEME="$YAD_GTK_THEME_CHECK!" + fi fi fi + if [[ -z $GTK_THEME ]] ; then GTK_THEME=${translations[default]} + elif [[ $GTK_THEME =~ light$ ]] ; then GTK_THEME="${GTK_THEME//light/${translations[light]}}" + elif [[ $GTK_THEME =~ dark$ ]] ; then GTK_THEME="${GTK_THEME//dark/${translations[dark]}}" + fi "${pw_yad}" --plug=$KEY_USERCONF_GUI --tabnum="2" --form --columns=1 --separator="@" --homogeneous-row \ --gui-type-text="$PANED_GUI_TYPE_TEXT_DOWN" --gui-type-layout="$PANED_GUI_TYPE_LAYOUT_DOWN" \ @@ -5639,7 +5646,7 @@ gui_userconf () { --field="${translations[Force dpi for fonts]}!${translations[Here you can set forced dpi for fonts in wine]} :CB" "$(combobox_fix --disabled "$YAD_DPI_VAR" "96 (100%)!120 (125%)!144 (150%)!168 (175%)!192 (200%)!216 (225%)!240 (250%)!264 (275%)!288 (300%)")" \ --field="${translations[Choice wine audio driver]}!${translations[Fixes sound popling if choice alsa]} :CB" "$(combobox_fix --disabled "$SOUND_DRIVER_VAR" "alsa!oss!pulse")" \ --field="${translations[Select PortProton theme]}!${translations[Allows you to select a theme for PortProton]} :CB" "$(combobox_fix "$GUI_THEME" "${translations[default]}!${translations[compact]}!${translations[classic]}")" \ - --field="${translations[Select gtk theme]}!${translations[Allows you to select a theme for GTK.]} :CB" "$(combobox_fix "$YAD_GTK_THEME")" \ + --field="${translations[Select gtk theme]}!${translations[Allows you to select a theme for GTK.]} :CB" "$(combobox_fix "$GTK_THEME" "${YAD_GTK_THEME}Adwaita:${translations[light]}!Adwaita:${translations[dark]}!${translations[default]}")" \ --field="${translations[Time display]}!${translations[Displays time spent in an application or game]} :CB" "$(combobox_fix --disabled "$DESKTOP_WITH_TIME" "enabled")" \ --field="${translations[Sort shortcuts by time]}!${translations[This setting sorts the shortcuts in the main menu depending on the time spent in the application or game]} :CB" "$(combobox_fix --disabled "$SORT_WITH_TIME" "enabled")" \ 1> "${PW_TMPFS_PATH}/tmp_yad_userconf_set_cb" 2>/dev/null & @@ -5683,11 +5690,9 @@ gui_userconf () { elif [[ $GUI_THEME == ${translations[classic]} ]] ; then GUI_THEME=classic fi GTK_THEME="${PW_ADD_SETTINGS_UC[4]}" - YAD_GTK_THEME=$(gsettings get org.gnome.desktop.interface gtk-theme) - YAD_GTK_THEME=${YAD_GTK_THEME//\'/} if [[ $GTK_THEME == ${translations[default]} ]] ; then unset GTK_THEME - elif [[ $GTK_THEME == ${translations[light]} ]] ; then GTK_THEME="$YAD_GTK_THEME:light" - elif [[ $GTK_THEME == ${translations[dark]} ]] ; then GTK_THEME="$YAD_GTK_THEME:dark" + elif [[ $GTK_THEME =~ ${translations[light]} ]] ; then GTK_THEME="${GTK_THEME//${translations[light]}/light}" + elif [[ $GTK_THEME =~ ${translations[dark]} ]] ; then GTK_THEME="${GTK_THEME//${translations[dark]}/dark}" fi DESKTOP_WITH_TIME="${PW_ADD_SETTINGS_UC[5]}" SORT_WITH_TIME="${PW_ADD_SETTINGS_UC[6]}" From fafd42ecd15f42740803b5b621fd9bd615cf445c Mon Sep 17 00:00:00 2001 From: Htylol Date: Mon, 4 Nov 2024 15:10:42 +0500 Subject: [PATCH 07/62] Added __GL_THREADED_OPTIMIZATIONS for nvidia gamescope --- data_from_portwine/scripts/functions_helper | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 049f5c8..449dad2 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -3820,7 +3820,8 @@ start_portwine () { fi fi - # GAMESCOPE enable: + unset PW_GAMESCOPE_ARGS_NEW PW_GAMESCOPE_VARIABLES_BEFORE PW_GAMESCOPE_VARIABLES_AFTER + # GAMESCOPE fixes: if [[ "${PW_GAMESCOPE}" == "1" && "${GAMESCOPE_INSTALLED}" == "1" ]] \ || check_gamescope_session then @@ -3836,7 +3837,12 @@ start_portwine () { if [[ -d /sys/bus/pci/drivers/i915 ]] ; then export INTEL_DEBUG="norbc" fi + if [[ -d /sys/bus/pci/drivers/nvidia ]] ; then + PW_GAMESCOPE_VARIABLES_BEFORE+="__GL_THREADED_OPTIMIZATIONS=0 " + PW_GAMESCOPE_VARIABLES_AFTER+="__GL_THREADED_OPTIMIZATIONS=1 " + fi fi + # GAMESCOPE enable: if [[ "${PW_GAMESCOPE}" == "1" && "${GAMESCOPE_INSTALLED}" == "1" ]] \ && ! check_gamescope_session then @@ -3849,7 +3855,6 @@ start_portwine () { fi #checkbox - unset PW_GAMESCOPE_ARGS_NEW [[ "${PW_GS_FULLSCREEN}" == "1" ]] && PW_GAMESCOPE_ARGS_NEW+=" -f" [[ "${PW_GS_FORCE_FULLSCREEN}" == "1" ]] && PW_GAMESCOPE_ARGS_NEW+=" --force-windows-fullscreen" [[ "${PW_GS_BORDERLESS_WINDOW}" == "1" ]] && PW_GAMESCOPE_ARGS_NEW+=" -b" @@ -3922,7 +3927,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="gamescope${PW_ID_VIDEO}${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}" fi pw_mangohud_check From 1e9a9e3ea55945fe7da4756e383e505de2877d02 Mon Sep 17 00:00:00 2001 From: Htylol Date: Sun, 3 Nov 2024 23:10:43 +0500 Subject: [PATCH 08/62] Update for portwine_exe (only .exe,.bat,.msi,.reg) --- data_from_portwine/scripts/functions_helper | 8 ++--- data_from_portwine/scripts/start.sh | 34 +++++++++------------ 2 files changed, 19 insertions(+), 23 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 21876ff..a077f3a 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -939,7 +939,7 @@ search_desktop_file () { # Ремонт, если есть пустые строки и непонятные строки без .exe, .bat, .msi, .reg if [[ $BROKEN_LINE == 1 ]] ; then while IFS=" " read -r -a line4 ; do - if [[ -n ${line4[0]} ]] && [[ ${line4[0]} =~ (.[Bb][Aa][Tt]$|.[Ee][Xx][Ee]$|.[Mm][Ss][Ii]$|.[Rr][Ee][Gg]$) ]] + if [[ -n ${line4[0]} ]] && [[ ${line4[0],,} =~ (.bat$|.exe$|.msi$|.reg$) ]] then echo "${line4[*]}" fi done < "$PORT_WINE_TMP_PATH/statistics" > "$PORT_WINE_TMP_PATH/statistics_repair" @@ -1475,20 +1475,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 -e "s/^files$//g" | sed -e "s/^version$//g") ; do + for clear_dist_files in $(ls "${WINEDIR}" | sed -re "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 -e "s/^dist$//g" | sed -e "s/^version$//g") ; do + for clear_dist_files in $(ls "${WINEDIR}" | sed -re "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 -e "s/^bin$//g" | sed -e "s/^lib$//g" | sed -e "s/^lib64$//g" | sed -e "s/^share$//g" | sed -e "s/^version$//g") ; do + for clear_dist_files in $(ls "${WINEDIR}" | sed -re "s/(^bin$|^lib$|^lib64$|^share$|^version$)//g") ; do rm -fr "${WINEDIR}/$clear_dist_files" done fi diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 793eb4c..25b0fcf 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -52,25 +52,21 @@ if [[ "${1,,}" =~ .ppack$ ]] ; then export PW_NO_RESTART_PPDB="1" export PW_DISABLED_CREATE_DB="1" portwine_exe="$1" -elif [[ -f "$1" ]] ; then - portwine_exe="$(realpath -s "$1")" -elif [[ -f "$OLDPWD/$1" ]] \ -&& [[ "${1,,}" =~ (.exe$|.bat$|.msi$|.reg$) ]] -then - portwine_exe="$(realpath -s "$OLDPWD/$1")" -elif [[ "$1" =~ (^--debug$|^--launch$|^--edit-db$) ]] \ -&& [[ -f "$2" ]] -then - portwine_exe="$(realpath -s "$2")" -elif [[ "$1" =~ (^--debug$|^--launch$|^--edit-db$) ]] \ -&& [[ -f "$OLDPWD/$2" ]] \ -&& [[ "${2,,}" =~ (.exe$|.bat$|.msi$|.reg$) ]] -then - portwine_exe="$(realpath -s "$OLDPWD/$2")" -elif [[ "${1,,}" =~ (.exe$|.bat$|.msi$|.reg$) ]] -then - portwine_exe="$1" - MISSING_DESKTOP_FILE="1" +elif [[ "${1,,}" =~ (.exe$|.bat$|.msi$|.reg$) ]] ; then + if [[ -f "$1" ]] ; then + portwine_exe="$(realpath -s "$1")" + elif [[ -f "$OLDPWD/$1" ]] ; then + portwine_exe="$(realpath -s "$OLDPWD/$1")" + elif [[ ! -f "$1" ]] ; then + portwine_exe="$1" + MISSING_DESKTOP_FILE="1" + fi +elif [[ "$1" =~ (^--debug$|^--launch$|^--edit-db$) && "${2,,}" =~ (.exe$|.bat$|.msi$|.reg$) ]] ; then + if [[ -f "$2" ]] ; then + portwine_exe="$(realpath -s "$2")" + elif [[ -f "$OLDPWD/$2" ]] ; then + portwine_exe="$(realpath -s "$OLDPWD/$2")" + fi fi export portwine_exe From 16dc57412160030433aefee6778cf89a33ba061d Mon Sep 17 00:00:00 2001 From: Htylol Date: Tue, 5 Nov 2024 07:01:39 +0500 Subject: [PATCH 09/62] Fixed bug for portwine_missing_shortcut --- data_from_portwine/scripts/functions_helper | 9 ++++++--- data_from_portwine/scripts/start.sh | 8 +++++++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 21876ff..ed2d876 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -6030,9 +6030,12 @@ portwine_missing_shortcut () { if [[ $? -eq "0" ]] ; then portwine_delete_shortcut fi - if [[ -n "$TAB_MAIN_MENU" ]] - then restart_pp - else exit 0 + if [[ -n $AI_SKIP ]] + then + unset TAB_MAIN_MENU + restart_pp + else + exit 0 fi } diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 793eb4c..c556706 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -702,7 +702,13 @@ else PW_GENERATE_BUTTONS+="--field= $(print_wrapped "${PW_DESKTOP_FILES_SHOW//".desktop"/""}" "25" "...")!${PW_NAME_D_ICON_48}.png!:FBTNR%@bash -c \"button_click --desktop "${PW_DESKTOP_FILES// /#@_@#}"\"%" done - MAIN_GUI_ROWS="$(( ( AMOUNT_GENERATE_BUTTONS + 1 ) / MAIN_GUI_COLUMNS + 1 ))" + if [[ $AMOUNT_GENERATE_BUTTONS == 1 ]] ; then + MAIN_GUI_ROWS=1 + elif (( AMOUNT_GENERATE_BUTTONS <= 5 )) ; then + MAIN_GUI_ROWS=2 + else + MAIN_GUI_ROWS="$(( ( AMOUNT_GENERATE_BUTTONS + 1 ) / MAIN_GUI_COLUMNS + 1 ))" + fi if [[ -z $PW_DESKTOP_FILES ]] then export PW_GUI_SORT_TABS=(1 2 3 4 5) From c26ce5b2fef86a6ca1422c99bb37da4a570d1d29 Mon Sep 17 00:00:00 2001 From: Htylol Date: Thu, 7 Nov 2024 04:43:54 +0500 Subject: [PATCH 10/62] update --- data_from_portwine/scripts/functions_helper | 18 +++++++++--------- data_from_portwine/scripts/start.sh | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index a077f3a..9c6a847 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -904,7 +904,7 @@ search_desktop_file () { if [[ $DESKTOP_WITH_TIME == enabled ]] || [[ $SORT_WITH_TIME == enabled ]] ; then while IFS=" " read -r -a line2 ; do if [[ -z ${line2[0]} ]] \ - || [[ ! ${line2[0],,} =~ (.bat$|.exe$|.msi$|.reg$) ]] ; then + || [[ ! ${line2[0],,} =~ .(bat|exe|msi|reg)$ ]] ; then BROKEN_LINE=1 break fi @@ -939,7 +939,7 @@ search_desktop_file () { # Ремонт, если есть пустые строки и непонятные строки без .exe, .bat, .msi, .reg if [[ $BROKEN_LINE == 1 ]] ; then while IFS=" " read -r -a line4 ; do - if [[ -n ${line4[0]} ]] && [[ ${line4[0],,} =~ (.bat$|.exe$|.msi$|.reg$) ]] + if [[ -n ${line4[0]} ]] && [[ ${line4[0],,} =~ .(bat|exe|msi|reg)$ ]] then echo "${line4[*]}" fi done < "$PORT_WINE_TMP_PATH/statistics" > "$PORT_WINE_TMP_PATH/statistics_repair" @@ -1114,8 +1114,8 @@ create_name_desktop () { fi if (( ${#PORTWINE_DB_DESKTOP} > 3 )) ; then for ((i=0 ; i<${#PORTWINE_DB_DESKTOP} ; i++)) ; do - if [[ ${PORTWINE_DB_DESKTOP:i:2} =~ ([a-z][A-Z]|[a-z][0-9]) ]] \ - && [[ ! ${PORTWINE_DB_DESKTOP:i:3} =~ ([a-z][A-Z]" "|[a-z][0-9]" ") ]] ; then + if [[ ${PORTWINE_DB_DESKTOP:i:2} =~ [a-z]([A-Z]|[0-9]) ]] \ + && [[ ! ${PORTWINE_DB_DESKTOP:i:3} =~ [a-z]([A-Z]|[0-9])" " ]] ; then PORTWINE_DB_PROXY+="${PORTWINE_DB_DESKTOP:i:1} " elif [[ ${PORTWINE_DB_DESKTOP:i:3} =~ [0-9][0-9][a-zA-Z] ]] ; then PORTWINE_DB_PROXY+="${PORTWINE_DB_DESKTOP:i:2} " @@ -1475,20 +1475,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 -re "s/(^files$|^version$)//g") ; do + for clear_dist_files in $(ls "${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 -re "s/(^dist$|^version$)//g") ; do + for clear_dist_files in $(ls "${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 -re "s/(^bin$|^lib$|^lib64$|^share$|^version$)//g") ; do + for clear_dist_files in $(ls "${WINEDIR}" | sed -r "s/^(bin|lib|lib64|share|version)$//g") ; do rm -fr "${WINEDIR}/$clear_dist_files" done fi @@ -2729,7 +2729,7 @@ pw_create_gui_png () { fi fi - PORTPROTON_NAME="$(echo "${PORTPROTON_NAME}" | sed "s/\`//g" | sed "s/\"//g" | sed "s/'//g" | sed "s/\!//g")" + PORTPROTON_NAME="${PORTPROTON_NAME//(\`|\"|\'|\!)/})" export PORTPROTON_NAME edit_db_from_gui PORTPROTON_NAME FILE_DESCRIPTION fi @@ -5868,7 +5868,7 @@ portwine_output_yad_shortcut () { [[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB restart_pp fi - elif [[ "$PW_YAD_OUT" =~ (^1$|^2$|^252$) ]] ; then + elif [[ "$PW_YAD_OUT" =~ ^(1|2|252)$ ]] ; then print_info "Restarting PP..." [[ -n $KEY_MENU ]] && unset portwine_exe [[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 25b0fcf..a4d75f1 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -52,7 +52,7 @@ if [[ "${1,,}" =~ .ppack$ ]] ; then export PW_NO_RESTART_PPDB="1" export PW_DISABLED_CREATE_DB="1" portwine_exe="$1" -elif [[ "${1,,}" =~ (.exe$|.bat$|.msi$|.reg$) ]] ; then +elif [[ "${1,,}" =~ .(exe|bat|msi|reg)$ ]] ; then if [[ -f "$1" ]] ; then portwine_exe="$(realpath -s "$1")" elif [[ -f "$OLDPWD/$1" ]] ; then @@ -61,7 +61,7 @@ elif [[ "${1,,}" =~ (.exe$|.bat$|.msi$|.reg$) ]] ; then portwine_exe="$1" MISSING_DESKTOP_FILE="1" fi -elif [[ "$1" =~ (^--debug$|^--launch$|^--edit-db$) && "${2,,}" =~ (.exe$|.bat$|.msi$|.reg$) ]] ; then +elif [[ "$1" =~ ^--(debug|launch|edit-db)$ && "${2,,}" =~ .(exe|bat|msi|reg)$ ]] ; then if [[ -f "$2" ]] ; then portwine_exe="$(realpath -s "$2")" elif [[ -f "$OLDPWD/$2" ]] ; then From 8956b79993e3ade5f95e464cb9318ac6ea8dff8b Mon Sep 17 00:00:00 2001 From: dervart Date: Fri, 8 Nov 2024 16:25:08 +0700 Subject: [PATCH 11/62] Saturn image --- data_from_portwine/img/gui/saturn.png | Bin 0 -> 4950 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 data_from_portwine/img/gui/saturn.png diff --git a/data_from_portwine/img/gui/saturn.png b/data_from_portwine/img/gui/saturn.png new file mode 100644 index 0000000000000000000000000000000000000000..370d166d6fce0f650538b7952f584c54f4297c11 GIT binary patch literal 4950 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 Date: Fri, 8 Nov 2024 16:26:10 +0700 Subject: [PATCH 12/62] Saturn PW --- .../scripts/pw_autoinstall/PW_SATURN | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 data_from_portwine/scripts/pw_autoinstall/PW_SATURN diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_SATURN b/data_from_portwine/scripts/pw_autoinstall/PW_SATURN new file mode 100644 index 0000000..4c1ac85 --- /dev/null +++ b/data_from_portwine/scripts/pw_autoinstall/PW_SATURN @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +# Author: Dervart +# type: games +# name: Saturn +# image: saturn +# info_en: +# info_ru: +######################################################################## +export PW_PREFIX_NAME="NINSAR" +export PW_WINE_USE="WINE_LG" +export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/saturn.zip" +start_portwine +if try_download "https://cdn-s3.quadrosim.ru/saturn/saturn.zip" "${PW_AUTOINSTALL_EXE}" no_mirror +then + pw_start_progress_bar_install_game "Saturn." + "$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)/saturn" + portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/saturn/Saturn.exe" + try_remove_file "${PW_AUTOINSTALL_EXE}" + try_remove_file "${portwine_exe}.ppdb" + kill_portwine + pw_stop_progress_bar + export PORTWINE_CREATE_SHORTCUT_NAME="Saturn" + portwine_create_shortcut +fi +stop_portwine From e1928d5ec45af78d0f0d5f06b7e92e84f278503a Mon Sep 17 00:00:00 2001 From: dervart Date: Fri, 8 Nov 2024 16:26:49 +0700 Subject: [PATCH 13/62] Saturn db --- data_from_portwine/scripts/portwine_db/Saturn.ppdb | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 data_from_portwine/scripts/portwine_db/Saturn.ppdb diff --git a/data_from_portwine/scripts/portwine_db/Saturn.ppdb b/data_from_portwine/scripts/portwine_db/Saturn.ppdb new file mode 100644 index 0000000..4228209 --- /dev/null +++ b/data_from_portwine/scripts/portwine_db/Saturn.ppdb @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +#Author: dervart +#Saturn.exe +#Rating=1-5 +export PW_VULKAN_USE="2" +export PW_WINE_USE="WINE_LG" +export PW_PREFIX_NAME="NINSAR" +export PORTPROTON_NAME="Saturn" From 90a666dc91f5f50f541de09804c525680a93b4d1 Mon Sep 17 00:00:00 2001 From: dervart Date: Fri, 8 Nov 2024 16:31:51 +0700 Subject: [PATCH 14/62] Update Saturn.ppdb --- data_from_portwine/scripts/portwine_db/Saturn.ppdb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data_from_portwine/scripts/portwine_db/Saturn.ppdb b/data_from_portwine/scripts/portwine_db/Saturn.ppdb index 4228209..16fa334 100644 --- a/data_from_portwine/scripts/portwine_db/Saturn.ppdb +++ b/data_from_portwine/scripts/portwine_db/Saturn.ppdb @@ -1,5 +1,5 @@ #!/usr/bin/env bash -#Author: dervart +#Author: Dervart #Saturn.exe #Rating=1-5 export PW_VULKAN_USE="2" From 27c9d3607293a21322cd3d75320aa6e2f432d29f Mon Sep 17 00:00:00 2001 From: dervart Date: Fri, 8 Nov 2024 17:57:54 +0700 Subject: [PATCH 15/62] Update Saturn.ppdb MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Добавлено уточнение по поводу нестабильности игры при сворачивании --- data_from_portwine/scripts/portwine_db/Saturn.ppdb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/data_from_portwine/scripts/portwine_db/Saturn.ppdb b/data_from_portwine/scripts/portwine_db/Saturn.ppdb index 16fa334..480db44 100644 --- a/data_from_portwine/scripts/portwine_db/Saturn.ppdb +++ b/data_from_portwine/scripts/portwine_db/Saturn.ppdb @@ -1,7 +1,12 @@ #!/usr/bin/env bash -#Author: Dervart +#Author: dervart #Saturn.exe #Rating=1-5 +if [[ "$LANGUAGE" == "ru" ]] ; then + export PW_COMMENT_DB="При сворачивании или переключении фокуса окна возможны вылеты игры.\nРекомендуется использовать GAMESCOPE, либо VIRTUAL_DESKTOP в настройках" +else + export PW_COMMENT_DB="When minimizing or switching the window focus, the game may crash.\nRecommended to use GAMESCOPE or VIRTUAL_DESKTOP in the SETTINGS" +fi export PW_VULKAN_USE="2" export PW_WINE_USE="WINE_LG" export PW_PREFIX_NAME="NINSAR" From cf06436a1457a6e41a93362e14b7d0ec2648f708 Mon Sep 17 00:00:00 2001 From: dervart Date: Fri, 8 Nov 2024 17:58:54 +0700 Subject: [PATCH 16/62] Update Saturn.ppdb --- data_from_portwine/scripts/portwine_db/Saturn.ppdb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data_from_portwine/scripts/portwine_db/Saturn.ppdb b/data_from_portwine/scripts/portwine_db/Saturn.ppdb index 480db44..56d46d4 100644 --- a/data_from_portwine/scripts/portwine_db/Saturn.ppdb +++ b/data_from_portwine/scripts/portwine_db/Saturn.ppdb @@ -1,5 +1,5 @@ #!/usr/bin/env bash -#Author: dervart +#Author: Dervart #Saturn.exe #Rating=1-5 if [[ "$LANGUAGE" == "ru" ]] ; then From 94723c743d40433527285135d1a2969d32053e81 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Fri, 8 Nov 2024 17:08:20 +0300 Subject: [PATCH 17/62] update BDO --- .../scripts/portwine_db/BlackDesertOnline.ppdb | 5 ++++- .../scripts/pw_autoinstall/PW_BLACK_DESERT_ONLINE | 6 +++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/data_from_portwine/scripts/portwine_db/BlackDesertOnline.ppdb b/data_from_portwine/scripts/portwine_db/BlackDesertOnline.ppdb index 9f61405..b2802d1 100644 --- a/data_from_portwine/scripts/portwine_db/BlackDesertOnline.ppdb +++ b/data_from_portwine/scripts/portwine_db/BlackDesertOnline.ppdb @@ -5,6 +5,9 @@ #####################examples########################### export PW_WINDOWS_VER="10" export PW_VULKAN_USE="2" -export PW_WINE_USE=PROTON_LG +export PW_WINE_USE="PROTON_LG" 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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_BLACK_DESERT_ONLINE b/data_from_portwine/scripts/pw_autoinstall/PW_BLACK_DESERT_ONLINE index 1e69587..0d1949e 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_BLACK_DESERT_ONLINE +++ b/data_from_portwine/scripts/pw_autoinstall/PW_BLACK_DESERT_ONLINE @@ -10,9 +10,9 @@ 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 PW_VULKAN_USE="1" +export PW_USE_D3D_EXTRAS="1" +export PW_WINE_USE="PROTON_LG" # export DISABLE_CP_DEFPFX=1 pw_clear_pfx From 1384f6da2d16122a6c902050525ec9fd4640fef5 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Fri, 8 Nov 2024 17:11:06 +0300 Subject: [PATCH 18/62] disabled WINEFSYNC_FUTEX2 by default --- data_from_portwine/scripts/functions_helper | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 21876ff..f81d6bf 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -2989,8 +2989,8 @@ start_portwine () { export WINEFSYNC_FUTEX2="0" else export WINEFSYNC="1" - export WINEFSYNC_FUTEX2="1" export WINEFSYNC_SPINCOUNT=100 + check_variables WINEFSYNC_FUTEX2 0 fi if [[ "${PW_FORCE_LARGE_ADDRESS_AWARE}" == 1 ]] From 903f6c704106b78bedd5a7e57a1cc0339d0c9a1b Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Fri, 8 Nov 2024 17:12:35 +0300 Subject: [PATCH 19/62] added dxgi.syncInterval=0 for BDO --- data_from_portwine/scripts/portwine_db/BlackDesertOnline.ppdb | 1 + 1 file changed, 1 insertion(+) diff --git a/data_from_portwine/scripts/portwine_db/BlackDesertOnline.ppdb b/data_from_portwine/scripts/portwine_db/BlackDesertOnline.ppdb index b2802d1..edec3d6 100644 --- a/data_from_portwine/scripts/portwine_db/BlackDesertOnline.ppdb +++ b/data_from_portwine/scripts/portwine_db/BlackDesertOnline.ppdb @@ -11,3 +11,4 @@ export PW_PREFIX_NAME="BLACK_DESERT_ONLINE" export PORTPROTON_NAME="BlackDesertLauncher" export FILE_DESCRIPTION="BlackDesertLauncher" export WINE_DISABLE_KERNEL_WRITEWATCH="1" +export DXVK_CONFIG="dxgi.syncInterval=0" From 813d83d6d1aea427a06e0dde5521e39dec8cbf81 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Fri, 8 Nov 2024 17:33:39 +0300 Subject: [PATCH 20/62] fix dpi --- data_from_portwine/scripts/functions_helper | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index dbc960b..7b16ed7 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -1375,7 +1375,8 @@ recommend_dpi () { echo "disabled" return 1 fi - local dpi=$(( height / 9 )) + local dpi=$(( height / 10 )) + (( dpi < 96 )) && local dpi="96" echo "$dpi" } From 3be8645b3877ddf62f749f59e798d663ea7733e1 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Fri, 8 Nov 2024 18:33:10 +0300 Subject: [PATCH 21/62] remove epmty VAR in USER.CONF --- data_from_portwine/scripts/functions_helper | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index b4bb667..63de853 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -2708,6 +2708,10 @@ edit_db_from_gui () { edit_user_conf_from_gui () { for mod_db in $@ ; do + if [[ -z "${!mod_db}" ]] ; then + sed -i "/^export ${mod_db}=.*/d" "${USER_CONF}" + return 0 + fi proxy_mod_db="${!mod_db}" if [[ $proxy_mod_db =~ (${translations[Disabled]}|${translations[Disable]}) ]] ; then proxy_mod_db=disabled From f0c561a29585c48087f9cc583cf5054b9ca447df Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Fri, 8 Nov 2024 19:06:41 +0300 Subject: [PATCH 22/62] Scripts version 2371 --- data_from_portwine/changelog_en | 11 +++++++++++ data_from_portwine/changelog_ru | 11 +++++++++++ data_from_portwine/scripts/var | 2 +- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/data_from_portwine/changelog_en b/data_from_portwine/changelog_en index efb97cb..694b117 100755 --- a/data_from_portwine/changelog_en +++ b/data_from_portwine/changelog_en @@ -2,6 +2,17 @@ You can help us in the development of the project on the website: https://linux- ---------------------------------------- Changelog: +###Scripts version 2371### / Date: 08.11.2024 / Download update size: 4 megabytes +* FUTEX2 is disabled by default (breaks some games) +* added auto-installation of the Saturn game (thanks to Dervart) +* added the ability to select a dark/light theme in the global PP settings (thanks to Htylol) +* significantly improved functions (thanks to Htylol): + * registry editor + * determining the extension of the launched file + * check desktop files + * gamescope settings +* added cursor scale setting for gamescope (thanks to Htylol) + ###Scripts version 2370### / Date: 01.11.2024 / Download update size: 215 megabytes * updated PROTON_LG to version "9-18" * updated versions: diff --git a/data_from_portwine/changelog_ru b/data_from_portwine/changelog_ru index 888d60c..49cdaa3 100755 --- a/data_from_portwine/changelog_ru +++ b/data_from_portwine/changelog_ru @@ -2,6 +2,17 @@ ----------------------------------------- История изменений: +###Scripts version 2371### / Дата: 08.11.2024 / Размер скачиваемого обновления: 4 мегабайта +* FUTEX2 отключен по умолчанию (ломает работу некоторых игр) +* добавлена автоустановка игры Saturn (спасибо Dervart) +* добавлена возможность выбора темной/светлой темы в глобальных настройках PP (спасибо Htylol) +* значительно улучшены функции (спасибо Htylol): + * редактор реестра + * определение расширения запускаемого файла + * проверки ярлыков + * настройки gamescope +* добавлена настройка масштаба курсора для gamescope (спасибо Htylol) + ###Scripts version 2370### / Дата: 01.11.2024 / Размер скачиваемого обновления: 215 мегабайт * обновлен PROTON_LG до версии "9-18" * обновлены версии: diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index e5de3ae..d1cc28c 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -1,6 +1,6 @@ #!/usr/bin/env bash #Author: Castro-Fidel (linux-gaming.ru) -#SCRIPTS_NEXT_VERSION=2370 +#SCRIPTS_NEXT_VERSION=2371 #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" From d5771b17cee8767b33a76394ea4d158b46352159 Mon Sep 17 00:00:00 2001 From: Htylol Date: Fri, 8 Nov 2024 21:39:58 +0500 Subject: [PATCH 23/62] Fix for PORTPROTON_NAME --- data_from_portwine/scripts/functions_helper | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index ab575a6..32d82a8 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -2782,7 +2782,7 @@ pw_create_gui_png () { fi fi - PORTPROTON_NAME="${PORTPROTON_NAME//(\`|\"|\'|\!)/})" + PORTPROTON_NAME="${PORTPROTON_NAME//(\`|\"|\'|\!)/}" export PORTPROTON_NAME edit_db_from_gui PORTPROTON_NAME FILE_DESCRIPTION fi From 3b831c9b9b3c4c39f20a3582ed0280feef769b46 Mon Sep 17 00:00:00 2001 From: Htylol Date: Sat, 9 Nov 2024 08:34:08 +0500 Subject: [PATCH 24/62] Make happy spellcheck and optimizations --- data_from_portwine/scripts/functions_helper | 531 ++++++++++---------- data_from_portwine/scripts/start.sh | 103 ++-- 2 files changed, 324 insertions(+), 310 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index ab575a6..acd3c78 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -1,6 +1,6 @@ #!/usr/bin/env bash # Author: Castro-Fidel (linux-gaming.ru) -# shellcheck disable=SC2140,SC2034,SC2068,SC2206 +# shellcheck disable=SC2034 ######################################################################## $PW_DEBUG print_error () { printf "\E[31m%s Error: $@ %s\e[0m\n" ;} @@ -40,7 +40,7 @@ export -f print_wrapped make_acronym () { local words acronym i - words=($1) + IFS=' ' read -r -a words <<< "$1" acronym="${words[0]:0:1}" for ((i=1 ; i<${#words[@]} ; i++)) ; do acronym+="${words[$i]:0:1}" @@ -61,7 +61,7 @@ make_abbreviation () { } export -f make_abbreviation -check_variables () { [[ -z ${!1} ]] && export $1="$2" ;} +check_variables () { [[ -z ${!1} ]] && export "$1"="$2" ;} # Эксортирует несколько переменных за один раз (одной командой) # и создаёт список этих переменных в $keys_all @@ -79,14 +79,14 @@ set_several_variables () { } add_to_var () { - if ! echo ${!1} | grep "$2" &>/dev/null - then export $1="${!1} $2" + if ! echo "${!1}" | grep "$2" &>/dev/null + then export "$1"="${!1} $2" fi } rm_from_var () { - if echo ${!1} | grep "$2" &>/dev/null - then export $1="$(echo "${!1//$2/}" | tr -s " ")" + if echo "${!1}" | grep "$2" &>/dev/null + then export "$1"="$(echo "${!1//$2/}" | tr -s " ")" fi } @@ -202,10 +202,9 @@ export -f change_locale generate_pot () { local FILES_FOR_GETTEXT i FILES_FOR_GETTEXT=(functions_helper start.sh setup.sh add_in_steam.sh help_info) - for i in ${FILES_FOR_GETTEXT[@]} ; do - sed 's/{translations\[/(gettext \"/g' "${PORT_SCRIPTS_PATH}/$i" > "${PORT_SCRIPTS_PATH}/${i}_tmp" - sed -i 's/]}/")/g' "${PORT_SCRIPTS_PATH}/${i}_tmp" - sed -i 's/eval_translations/gettext/g' "${PORT_SCRIPTS_PATH}/${i}_tmp" + for i in "${FILES_FOR_GETTEXT[@]}" ; do + sed -e 's/{translations\[/(gettext \"/g' -e 's/]}/")/g' -e 's/eval_translations/gettext/g' \ + "${PORT_SCRIPTS_PATH}/$i" > "${PORT_SCRIPTS_PATH}/${i}_tmp" done #Когда присходит предупреждение: синтаксис $"..." запрещен по соображениям безопасности; используйте eval_gettext #и ругается на строку в которой нет перевода, можно использовать sed -i '//d' и убрать эту строку @@ -322,7 +321,6 @@ EOF fi done done < "$po_file" - IFS="$orig_IFS" echo ")" >> "${PW_CACHE_LANG_PATH}/$LANGUAGE" sed -i 's/+_+/\n/g' "${PW_CACHE_LANG_PATH}/$LANGUAGE" @@ -412,34 +410,29 @@ 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" else - cp -fr "$1" "$2" - [[ "$?" != 0 ]] && print_error "failed to copy directory $1 to $2" || return 0 + cp -fr "$1" "$2" && return 0 || print_error "failed to copy directory $1 to $2" && return 1 fi - return 1 } export -f try_copy_dir try_remove_file () { if [[ -f "$1" ]] || [[ ! -e "$1" ]] ; then - rm -f "$1" - [[ "$?" == 0 ]] && return 0 || return 1 + rm -f "$1" && return 0 fi } export -f try_remove_file try_remove_dir () { if [[ -d "$1" ]] ; then - rm -fr "$1" - [[ "$?" == 0 ]] && return 0 || return 1 + rm -fr "$1" && return 0 fi } export -f try_remove_dir create_new_dir () { if [[ ! -d "$1" ]] ; then - mkdir -p "$1" + mkdir -p "$1" && return 0 fi - return 0 } try_force_link_file () { @@ -483,10 +476,13 @@ try_force_link_dir () { if [[ ! -d "$1" ]] ; then print_info "directory $1 not found for link" elif [[ -z "$2" ]] ; then print_error "no way to link directory $1" else - ln -s -f -r "$1" "$2" - [[ "$?" != 0 ]] && print_error "failed to link directory $1 to $2" || return 0 + if ln -s -f -r "$1" "$2" ; then + return 0 + else + print_error "failed to link directory $1 to $2" + return 1 + fi fi - return 1 } export -f try_force_link_dir @@ -541,9 +537,9 @@ try_download () { && [[ "$no_mirror" != "true" ]] then FIRST_URL=("$url_cloud/$filename") - SECOND_URL=($1) + IFS=' ' read -r -a SECOND_URL <<< "$1" else - FIRST_URL=($1) + IFS=' ' read -r -a FIRST_URL <<< "$1" SECOND_URL=("$url_cloud/$filename") fi @@ -553,7 +549,7 @@ try_download () { if check_gamescope_session ; then $PW_TERM "echo ; echo ; echo \"Downloading: $filename. Please wait...\" \ ; curl -f -# -A 'Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)' -H 'Cache-Control: no-cache, no-store' \ - -H 'Pragma: no-cache' -L ${FIRST_URL[@]} -o \"$dest\"" + -H 'Pragma: no-cache' -L ${FIRST_URL[*]} -o \"$dest\"" [[ "$?" != 0 ]] && return 1 || return 0 fi @@ -562,10 +558,10 @@ try_download () { set -o pipefail if [[ "$silent" == "true" ]] ; then curl -f -# -A 'Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)' -H 'Cache-Control: no-cache, no-store' \ - -H 'Pragma: no-cache' -L ${FIRST_URL[@]} -o "$dest" 2>&1 + -H 'Pragma: no-cache' -L "${FIRST_URL[@]}" -o "$dest" 2>&1 else curl -f -# -A 'Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)' -H 'Cache-Control: no-cache, no-store' \ - -H 'Pragma: no-cache' -L ${FIRST_URL[@]} -o "$dest" 2>&1 | \ + -H 'Pragma: no-cache' -L "${FIRST_URL[@]}" -o "$dest" 2>&1 | \ tr '\r' '\n' | sed -ur 's|[# ]+||g;s|100||g;s|.*=.*||g;s|.*|#Downloading at &\n&|g' | \ "$pw_yad" --progress --text="${translations[Downloading]} $filename" --auto-close --no-escape \ --auto-kill --text-align="center" --fixed --no-buttons --title "PortProton" --width=500 --height=90 \ @@ -576,7 +572,7 @@ try_download () { if [[ "$no_mirror" != "true" ]] ; then print_warning "Failed download $filename from ${FIRST_URL[0]}, trying mirror: ${SECOND_URL[0]}" curl -f -# -A 'Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)' -H 'Cache-Control: no-cache, no-store' \ - -H 'Pragma: no-cache' -L ${SECOND_URL[@]} -o "$dest" 2>&1 | \ + -H 'Pragma: no-cache' -L "${SECOND_URL[@]}" -o "$dest" 2>&1 | \ tr '\r' '\n' | sed -ur 's|[# ]+||g;s|100||g;s|.*=.*||g;s|.*|#Downloading at &\n&|g' | \ "$pw_yad" --progress --text="${translations[Downloading]} $filename" --auto-close --no-escape \ --auto-kill --text-align="center" --fixed --no-buttons --title "PortProton" --width=500 --height=90 \ @@ -587,7 +583,7 @@ try_download () { return 1 else print_ok "File downloaded successfully: $filename from ${SECOND_URL[0]}" - if try_check_sha256sum ${SECOND_URL[@]} ; then + if try_check_sha256sum "${SECOND_URL[@]}" ; then return 0 else try_remove_file "$dest" @@ -596,7 +592,7 @@ try_download () { fi fi print_ok "File downloaded successfully: $filename from ${FIRST_URL[0]}" - if try_check_sha256sum ${FIRST_URL[@]} ; then + if try_check_sha256sum "${FIRST_URL[@]}" ; then return 0 else try_remove_file "$dest" @@ -775,9 +771,10 @@ check_selinux () { export -f check_selinux background_pid () { - local arg1=$1 # --start или --end - local arg2=$2 # Название команды - local arg3=$3 # Номер процесса (1,2,3..) + local arg1 arg2 arg3 PID + arg1=$1 # --start или --end + arg2=$2 # Название команды + arg3=$3 # Номер процесса (1,2,3..) if [[ "$START_FROM_STEAM" == 1 ]] \ || [[ "$PW_GUI_DISABLED_CS" == 1 ]] \ @@ -793,10 +790,10 @@ background_pid () { case $arg1 in --start) eval "$arg2 &" - local PID=$! + PID=$! export bg_pid"${arg3}"="$PID" ;; --end) - local PID=$(get_bg_pid bg_pid"${arg3}") + PID=$(get_bg_pid bg_pid"${arg3}") [[ -z $PID ]] && return 1 wait "$PID" 2>/dev/null && return 0 ;; esac @@ -902,7 +899,7 @@ search_desktop_file () { fi done if [[ $DESKTOP_WITH_TIME == enabled ]] || [[ $SORT_WITH_TIME == enabled ]] ; then - while IFS=" " read -r -a line2 ; do + while IFS=' ' read -r -a line2 ; do if [[ -z ${line2[0]} ]] \ || [[ ! ${line2[0],,} =~ .(bat|exe|msi|reg)$ ]] ; then BROKEN_LINE=1 @@ -919,18 +916,16 @@ search_desktop_file () { fi done < "$PORT_WINE_TMP_PATH/statistics" fi - IFS="$orig_IFS" if [[ $DESKTOP_WITH_TIME == enabled ]] || [[ $SORT_WITH_TIME == enabled ]] ; then local line3 line4 count_line i TIME_TOTAL SKIP_REPAIR ## Ремонты: # Ремонт, проверяет чтобы длинна хеш суммы была равна 64 символам, в ином случае удалит битые if [[ $FILE_SHA256SUM_NOT_FOUND == 1 ]] && [[ ${#line2[1]} != "64" ]] ; then - while IFS=" " read -r -a line3 ; do + while IFS=' ' read -r -a line3 ; do if [[ ${#line3[1]} == "64" ]] then echo "${line3[*]}" fi done < "$PORT_WINE_TMP_PATH/statistics" > "$PORT_WINE_TMP_PATH/statistics_repair" - IFS="$orig_IFS" try_remove_file "$PORT_WINE_TMP_PATH/statistics" mv -f "$PORT_WINE_TMP_PATH/statistics_repair" "$PORT_WINE_TMP_PATH/statistics" return 1 @@ -938,12 +933,11 @@ search_desktop_file () { # Ремонт, если есть пустые строки и непонятные строки без .exe, .bat, .msi, .reg if [[ $BROKEN_LINE == 1 ]] ; then - while IFS=" " read -r -a line4 ; do + while IFS=' ' read -r -a line4 ; do if [[ -n ${line4[0]} ]] && [[ ${line4[0],,} =~ .(bat|exe|msi|reg)$ ]] then echo "${line4[*]}" fi done < "$PORT_WINE_TMP_PATH/statistics" > "$PORT_WINE_TMP_PATH/statistics_repair" - IFS="$orig_IFS" try_remove_file "$PORT_WINE_TMP_PATH/statistics" mv -f "$PORT_WINE_TMP_PATH/statistics_repair" "$PORT_WINE_TMP_PATH/statistics" return 1 @@ -1324,7 +1318,6 @@ get_and_set_reg_file () { fi [[ -z $line_reg ]] && break done <<< "$(sed -n "$find_line"',$p' "$find_file")" - IFS="$orig_IFS" fi if [[ $name_add_or_del == --add ]] ; then if [[ -z $find_block ]] ; then @@ -1569,7 +1562,7 @@ init_wine_ver () { if ! grep 'Global,"{41FCC608-8496-4DEF-B43E-7D9BD675A6FF}",0x10001,0x00000001' "${WINEDIR}/share/wine/wine.inf" &>/dev/null ; then echo 'HKLM,Software\NVIDIA Corporation\Global,"{41FCC608-8496-4DEF-B43E-7D9BD675A6FF}",0x10001,0x00000001' >> "${WINEDIR}/share/wine/wine.inf" - echo 'HKLM,System\ControlSet001\Services\nvlddmkm,"{41FCC608-8496-4DEF-B43E-7D9BD675A6FF}",0x10001,0x00000001' >> "${WINEDIR}/share/wine/wine.inf" + echo -e 'HKLM,System\ControlSet001\Services\nvlddmkm,"{41FCC608-8496-4DEF-B43E-7D9BD675A6FF}",0x10001,0x00000001' >> "${WINEDIR}/share/wine/wine.inf" sed -i '/Steam.exe/d' "${WINEDIR}/share/wine/wine.inf" sed -i '/\\Valve\\Steam/d' "${WINEDIR}/share/wine/wine.inf" sed -i '/winemenubuilder/d' "${WINEDIR}/share/wine/wine.inf" @@ -1669,13 +1662,13 @@ ${PW_PV_OVERRIDES}/i386-linux-gnu/aliases:\ export FONTCONFIG_PATH='' unset PRESSURE_VESSEL_FILESYSTEMS_RO PRESSURE_VESSEL_FILESYSTEMS_RW - for PWRTMRO in ${PW_RT_MOUNT_RO[*]} ; do + for PWRTMRO in "${PW_RT_MOUNT_RO[@]}" ; do if [[ -n "${PRESSURE_VESSEL_FILESYSTEMS_RO}" ]] then export PRESSURE_VESSEL_FILESYSTEMS_RO="${PRESSURE_VESSEL_FILESYSTEMS_RO}:${PWRTMRO}" else export PRESSURE_VESSEL_FILESYSTEMS_RO="${PWRTMRO}" fi done - for PWRTMRW in ${PW_RT_MOUNT_RW[*]} ; do + for PWRTMRW in "${PW_RT_MOUNT_RW[@]}" ; do if [[ -n "${PRESSURE_VESSEL_FILESYSTEMS_RW}" ]] then export PRESSURE_VESSEL_FILESYSTEMS_RW="${PRESSURE_VESSEL_FILESYSTEMS_RW}:${PWRTMRW}" else export PRESSURE_VESSEL_FILESYSTEMS_RW="${PWRTMRW}" @@ -2379,7 +2372,7 @@ pw_port_update () { return 1 fi - PW_UPDATE_ALL_LIST=($UPDATE_ETERFUND $UPDATE_GITHUB $UPDATE_PP_GITEA) + IFS=' ' 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 @@ -2512,12 +2505,12 @@ pw_port_update () { "${pw_yad}" --title "${translations[Update scripts:]} v.(${scripts_install_ver}${BRANCH_VERSION})" \ --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --width=1280 --height=720 --text-info --wrap --scroll \ - --button="${translations[DO NOT REMIND ME]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":16 \ - --button="${translations[REMIND ME LATER]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":18 \ - --button="${translations[UPDATING NOW]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":20 < "${PORT_WINE_TMP_PATH}/curent_var_ver" 2>/dev/null + --button="${translations[DO NOT REMIND ME]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!":16 \ + --button="${translations[REMIND ME LATER]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!":18 \ + --button="${translations[UPDATING NOW]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!":20 < "${PORT_WINE_TMP_PATH}/curent_var_ver" 2>/dev/null YAD_STATUS="$?" - # --button="${translations[EXIT]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":252 \ + # --button="${translations[EXIT]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!":252 \ fi try_remove_file "${PORT_WINE_TMP_PATH}/curent_var_ver" case $YAD_STATUS in @@ -2685,12 +2678,11 @@ edit_db_from_gui () { print_warning "Skipped edit_db_from_gui" return 0 fi - print_info "edit_db_from_gui PORTWINE_DB_FILE=$PORTWINE_DB_FILE" if [[ -n "$PORTWINE_DB_FILE" ]] \ && [[ -f "$PORTWINE_DB_FILE" ]] then - for mod_db in $@ ; do + for mod_db in "$@" ; do proxy_mod_db="${!mod_db}" if [[ $proxy_mod_db =~ (${translations[Disabled]}|${translations[Disable]}) ]] ; then proxy_mod_db=disabled @@ -2707,7 +2699,7 @@ edit_db_from_gui () { } edit_user_conf_from_gui () { - for mod_db in $@ ; do + for mod_db in "$@" ; do if [[ -z "${!mod_db}" ]] ; then sed -i "/^export ${mod_db}=.*/d" "${USER_CONF}" return 0 @@ -2782,7 +2774,7 @@ pw_create_gui_png () { fi fi - PORTPROTON_NAME="${PORTPROTON_NAME//(\`|\"|\'|\!)/})" + PORTPROTON_NAME="${PORTPROTON_NAME//(\`|\"|\'|\!)/}" export PORTPROTON_NAME edit_db_from_gui PORTPROTON_NAME FILE_DESCRIPTION fi @@ -2823,8 +2815,8 @@ pw_find_exe () { --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --title "${translations[Create shortcut for...]}" \ --text="\n${translations[Choose the .exe file for which you need to create a shortcut and click OK.\\n]}" \ --column="${translations[Choose path to .exe file:]}" ${FIND_TO_GUI} \ - --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)" + --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" @@ -3750,8 +3742,9 @@ start_portwine () { fi #run_winetricks_from_db - if [[ -n "${PW_MUST_HAVE_DLL}" ]] - then export PW_DLL_INSTALL="$(echo "${PW_MUST_HAVE_DLL} ${PW_DLL_INSTALL}" | awk '{ for(i=1;i<=NF;i++){a[$i]++} }END{ for(i in a){printf("%s ",i)} }' )" + if [[ -n "${PW_MUST_HAVE_DLL}" ]] ; then + PW_DLL_INSTALL="$(echo "${PW_MUST_HAVE_DLL} ${PW_DLL_INSTALL}" | awk '{ for(i=1;i<=NF;i++){a[$i]++} }END{ for(i in a){printf("%s ",i)} }' )" + export PW_DLL_INSTALL fi if [[ -n "${PW_DLL_INSTALL}" ]] ; then @@ -4126,12 +4119,9 @@ pw_yad_form_vulkan () { PW_PREFIX_NAME=$(echo "${YAD_FORM_VULKAN}" | grep \;\; | awk -F";" '{print $2}' | sed -e s/[[:blank:]]/_/g) PW_WINE_VER=$(echo "${YAD_FORM_VULKAN}" | grep \;\; | awk -F";" '{print $3}') fi - if [[ -z "${PW_PREFIX_NAME}" ]] \ - || [[ -n "$(echo "${PW_PREFIX_NAME}" | grep -E '^_.*' )" ]] - then - PW_PREFIX_NAME="DEFAULT" - else - PW_PREFIX_NAME="${PW_PREFIX_NAME^^}" + if [[ -z "${PW_PREFIX_NAME}" ]] + then PW_PREFIX_NAME="DEFAULT" + else PW_PREFIX_NAME="${PW_PREFIX_NAME^^}" fi export PW_PREFIX_NAME PW_WINE_VER VULKAN_MOD fi @@ -4147,20 +4137,20 @@ portwine_launch () { [[ $PW_LOG != 1 ]] && debug_timer --start -s "PW_TIME_IN_GAME" case "${portwine_exe,,}" in *.exe) - pw_run ${PW_VD_TMP[@]} ${WINE_WIN_START} "$portwine_exe" + pw_run "${PW_VD_TMP[@]}" ${WINE_WIN_START} "$portwine_exe" ;; *.bat) PW_USE_TERMINAL=1 - pw_run ${PW_VD_TMP[@]} "$portwine_exe" + pw_run "${PW_VD_TMP[@]}" "$portwine_exe" ;; *.msi) - pw_run ${PW_VD_TMP[@]} msiexec /i "$portwine_exe" + pw_run "${PW_VD_TMP[@]}" msiexec /i "$portwine_exe" ;; *.reg) - pw_run ${PW_VD_TMP[@]} regedit "$portwine_exe" + pw_run "${PW_VD_TMP[@]}" regedit "$portwine_exe" ;; *) - pw_run ${PW_VD_TMP[@]} winefile + pw_run "${PW_VD_TMP[@]}" winefile ;; esac } @@ -4222,7 +4212,7 @@ yad_info () { --gui-type-layout="${YAD_INFO_GUI_TYPE_LAYOUT}" \ --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --image="$PW_GUI_ICON_PATH/info.svg" \ --text-align=center --fixed \ - --button="${translations[OK]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png" 2>/dev/null + --button="${translations[OK]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png" 2>/dev/null } export -f yad_info @@ -4237,7 +4227,7 @@ yad_error () { --gui-type-layout="${YAD_INFO_GUI_TYPE_LAYOUT}" \ --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --image="$PW_GUI_ICON_PATH/error.svg" \ --text-align=center --fixed \ - --button="${translations[EXIT]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png" 2>/dev/null + --button="${translations[EXIT]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png" 2>/dev/null } export -f yad_error @@ -4251,8 +4241,8 @@ yad_error_download () { --gui-type-layout="${YAD_INFO_GUI_TYPE_LAYOUT}" \ --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --image="$PW_GUI_ICON_PATH/download.svg" \ --no-wrap --text-align=center \ - --button="${translations[SKIP]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1 \ - --button="${translations[REPEAT]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 2>/dev/null + --button="${translations[SKIP]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1 \ + --button="${translations[REPEAT]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 2>/dev/null [[ "$?" != 0 ]] && return 1 || return 0 } @@ -4266,8 +4256,8 @@ yad_question () { --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --image="$PW_GUI_ICON_PATH/question.svg" \ --gui-type-layout="${YAD_INFO_GUI_TYPE_LAYOUT}" \ --no-wrap --text-align=center --fixed \ - --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 + --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 [[ "$?" != 0 ]] && return 1 || return 0 } @@ -4377,10 +4367,10 @@ pw_start_progress_bar_install_game () { pw_stop_progress_bar () { if [[ -n ${PW_YAD_PID_PROGRESS_BAR[0]} ]] ; then local pid - for pid in ${PW_YAD_PID_PROGRESS_BAR[@]} ; do + for pid in "${PW_YAD_PID_PROGRESS_BAR[@]}" ; do # Здесь sleep нужен, потому что pid может уже быть, но kill его не убьет # со sleep 0.01 он делает 2 kill, c 0.02 нормально один - while $(sleep 0.02) && [[ -f /proc/$pid/exe ]] ; do + while sleep 0.02 && [[ -f /proc/$pid/exe ]] ; do kill -s SIGUSR1 "$pid" &>/dev/null done done @@ -4390,7 +4380,10 @@ pw_stop_progress_bar () { export -f pw_stop_progress_bar open_changelog () { - [[ "$LANGUAGE" == ru ]] && local PW_CHANGELOG_FILE="changelog_ru" || local PW_CHANGELOG_FILE="changelog_en" + if [[ "$LANGUAGE" == ru ]] + then local PW_CHANGELOG_FILE="changelog_ru" + else local PW_CHANGELOG_FILE="changelog_en" + fi "${pw_yad}" --title="${translations[CHANGELOG]}" --no-buttons \ --text-info --show-uri --wrap --width=1200 --height=700 --uri-color=red \ --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \ @@ -4480,47 +4473,39 @@ gui_proton_downloader () { pw_start_progress_bar_block "${translations[Check new version WINE...]}" # PROTON_GE - export 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}" ]] ; 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" + 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" done - sed -i '/Proton-6.5-GE-2/,$d' "${PW_TMPFS_PATH}/tmp_proton_ge_git" - sed -i '/github-action/d' "${PW_TMPFS_PATH}/tmp_proton_ge_git" - sed -i '/^$/d' "${PW_TMPFS_PATH}/tmp_proton_ge_git" + sed -i -e '/Proton-6.5-GE-2/,$d' -e '/github-action/d' -e '/^$/d' "${PW_TMPFS_PATH}/tmp_proton_ge_git" fi # WINE_KRON4EK - export 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}" ]] ; then - for PGEGIT in ${WINE_KRON4EK[@]} ; do - echo ${PGEGIT} | awk -F/ '{print $NF}' | sed 's/.tar.xz//' >> "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git" + 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" done - sed -i '/6.3/,$d' "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git" - sed -i '/-x86/d' "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git" - sed -i '/-wow64/d' "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git" - sed -i '/^$/d' "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git" + sed -i -e '/6.3/,$d' -e '/-x86/d' -e '/-wow64/d' -e '/^$/d' "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git" fi # WINE_GE_CUSTOM - export 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}" ]] ; 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" + 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" done - sed -i '/6.23/,$d' "${PW_TMPFS_PATH}/tmp_wine_ge_custom_git" - sed -i '/^$/d' "${PW_TMPFS_PATH}/tmp_wine_ge_custom_git" + sed -i -e '/6.23/,$d' -e '/^$/d' "${PW_TMPFS_PATH}/tmp_wine_ge_custom_git" fi # PROTON_LG - export 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}" ]] ; 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" + 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" done - sed -i /${PW_WINE_LG_VER}/d "${PW_TMPFS_PATH}/tmp_proton_pw_git" - sed -i '/plugins/d' "${PW_TMPFS_PATH}/tmp_proton_pw_git" - sed -i '/^$/d' "${PW_TMPFS_PATH}/tmp_proton_pw_git" + sed -i -e "/${PW_WINE_LG_VER}/d" -e '/plugins/d' -e '/^$/d' "${PW_TMPFS_PATH}/tmp_proton_pw_git" fi pw_stop_progress_bar @@ -4531,10 +4516,9 @@ gui_proton_downloader () { pushd "${PORT_WINE_PATH}/data/dist/" || fatal for INSTALLING_VERSION_IN_DIST in * ; do - sed -i "/${INSTALLING_VERSION_IN_DIST}$/Id" "${PW_TMPFS_PATH}/tmp_proton_pw_git" - sed -i "/${INSTALLING_VERSION_IN_DIST}$/Id" "${PW_TMPFS_PATH}/tmp_proton_ge_git" - sed -i "/${INSTALLING_VERSION_IN_DIST}$/Id" "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git" - sed -i "/${INSTALLING_VERSION_IN_DIST}$/Id" "${PW_TMPFS_PATH}/tmp_wine_ge_custom_git" + sed -i "/${INSTALLING_VERSION_IN_DIST}$/Id" "${PW_TMPFS_PATH}/tmp_proton_pw_git" \ + "${PW_TMPFS_PATH}/tmp_proton_ge_git" "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git" \ + "${PW_TMPFS_PATH}/tmp_wine_ge_custom_git" done popd 1>/dev/null || fatal @@ -4543,7 +4527,7 @@ gui_proton_downloader () { TMP_PROTON_KR_GIT="$(sed 's/^/FALSE /' "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git" | tr '\n' ' ')" TMP_PROTON_CU_GIT="$(sed 's/^/FALSE /' "${PW_TMPFS_PATH}/tmp_wine_ge_custom_git" | tr '\n' ' ')" - ls -l ${PORT_WINE_PATH}/data/dist | awk '{print $9}' | sed "/$PW_PROTON_LG_VER/d" | sed "/$PW_WINE_LG_VER/d" | sed '/^$/d' 1>${PW_TMPFS_PATH}/tmp_installed_wine + ls -l ${PORT_WINE_PATH}/data/dist | awk '{print $9}' | sed -e "/$PW_PROTON_LG_VER/d" -e "/$PW_WINE_LG_VER/d" -e '/^$/d' 1>"${PW_TMPFS_PATH}/tmp_installed_wine" TMP_INSTALLED_WINE="$(sed 's/^/FALSE /' "${PW_TMPFS_PATH}/tmp_installed_wine" | tr '\n' ' ')" if [[ "$1" != "silent" ]] ; then @@ -4594,13 +4578,13 @@ gui_proton_downloader () { --gui-type="settings-notebook" \ --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --title "${translations[WINE MANAGER]}" --separator="" --expand \ --tab-pos="top" \ - --tab="PROTON-LG"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" \ - --tab="WINE-KRON4EK"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" \ - --tab="PROTON-GE"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" \ - --tab="WINE-GE-CUSTOM"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" \ - --tab="${translations[INSTALLED]}"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" \ - --button="${translations[CANCEL]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":1 \ - --button="${translations[OK]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":0 2>/dev/null + --tab="PROTON-LG!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ + --tab="WINE-KRON4EK!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ + --tab="PROTON-GE!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ + --tab="WINE-GE-CUSTOM!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ + --tab="${translations[INSTALLED]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ + --button="${translations[CANCEL]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!":1 \ + --button="${translations[OK]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!":0 2>/dev/null YAD_WINE_STATUS="$?" if [[ "$YAD_WINE_STATUS" == "1" || "$YAD_WINE_STATUS" == "252" ]] ; then restart_pp @@ -4634,7 +4618,7 @@ gui_proton_downloader () { if unpack "${PORT_WINE_PATH}/data/tmp/${FILENAME}" "${PORT_WINE_PATH}/data/dist/" ; then try_remove_file "${PORT_WINE_PATH}/data/tmp/${FILENAME}" if [[ -n "${portwine_exe}" ]] ; then - PW_WINE_USE="$(echo "${VERSION_WINE_GIT}" | tr [[:lower:]] [[:upper:]])" + PW_WINE_USE=${VERSION_WINE_GIT^^} edit_db_from_gui PW_WINE_USE fi else @@ -4668,8 +4652,8 @@ gui_proton_downloader () { if [[ "$1" != "silent" ]] ; then for GIVE_ALL_WINE in ${VERSION_WINE_GIT} ; do - for GIVE_WINE_URL in ${WINE_GE_CUSTOM[@]} ${PROTON_GE_GIT[@]} ${WINE_KRON4EK[@]} ${PROTON_PW_GIT[@]} ; do - if [[ -n $(echo ${GIVE_WINE_URL} | grep -i "${GIVE_ALL_WINE}") ]] ; then + for GIVE_WINE_URL in "${WINE_GE_CUSTOM[@]} ${PROTON_GE_GIT[@]} ${WINE_KRON4EK[@]} ${PROTON_PW_GIT[@]}" ; do + if [[ $GIVE_WINE_URL =~ $GIVE_ALL_WINE ]] ; then export URL_VERSION_PROTON_GIT="${GIVE_WINE_URL}" fi done @@ -4679,8 +4663,8 @@ gui_proton_downloader () { restart_pp else print_error "$PW_WINE_USE" - for GIVE_WINE_URL in ${WINE_GE_CUSTOM[@]} ${PROTON_GE_GIT[@]} ${WINE_KRON4EK[@]} ${PROTON_PW_GIT[@]} ; do - if [[ -n $(echo ${GIVE_WINE_URL} | grep -i "${PW_WINE_USE}") ]] ; then + for GIVE_WINE_URL in "${WINE_GE_CUSTOM[@]} ${PROTON_GE_GIT[@]} ${WINE_KRON4EK[@]} ${PROTON_PW_GIT[@]}" ; do + if [[ $GIVE_WINE_URL =~ $PW_WINE_USE ]] ; then export URL_VERSION_PROTON_GIT="${GIVE_WINE_URL}" fi done @@ -4786,18 +4770,26 @@ gui_edit_db () { esac unset ADD_CHK_BOX_EDIT_DB - for int_to_boole in ${PW_EDIT_DB_LIST[@]} ; do + for int_to_boole in "${PW_EDIT_DB_LIST[@]}" ; do if [[ "${!int_to_boole}" == "1" ]] - then export ${int_to_boole}="TRUE" - else export ${int_to_boole}="FALSE" + then export "$int_to_boole"="TRUE" + else export "$int_to_boole"="FALSE" fi TMP_HELP_FOR_GUI="${int_to_boole}_INFO" int_to_boole_non_pw="${int_to_boole//PW_/}" int_to_boole_non_pw="${int_to_boole_non_pw//"_"/" "}" - if [[ ! "${PW_VULKAN_USE}" == [12] ]] \ - && [[ "${DISABLE_EDIT_DB_LIST}" =~ ${int_to_boole} ]] - then ADD_CHK_BOX_EDIT_DB+="--field=${CHKBOX_SPACE}${int_to_boole_non_pw}!${!TMP_HELP_FOR_GUI}:D${THEME_CHKBOX}%${!int_to_boole}%" - else ADD_CHK_BOX_EDIT_DB+="--field=${CHKBOX_SPACE}${int_to_boole_non_pw}!${!TMP_HELP_FOR_GUI}:${THEME_CHKBOX}%${!int_to_boole}%" + if [[ ! "${PW_VULKAN_USE}" =~ ^(1|2)$ ]] \ + && [[ -n $DISABLE_EDIT_DB_LIST ]] ; then + unset CHECK_BOOLE_TRUE + for check_boole in $DISABLE_EDIT_DB_LIST ; do + if [[ $check_boole == "$int_to_boole" ]] ; then + CHECK_BOOLE_TRUE=1 + ADD_CHK_BOX_EDIT_DB+="--field=${CHKBOX_SPACE}${int_to_boole_non_pw}!${!TMP_HELP_FOR_GUI}:D${THEME_CHKBOX}%${!int_to_boole}%" + fi + done + if [[ $CHECK_BOOLE_TRUE != 1 ]] ; then + ADD_CHK_BOX_EDIT_DB+="--field=${CHKBOX_SPACE}${int_to_boole_non_pw}!${!TMP_HELP_FOR_GUI}:${THEME_CHKBOX}%${!int_to_boole}%" + fi fi done @@ -4852,12 +4844,12 @@ relaxed - Same as fifo but allows tearing when below the monitors refresh rate.] --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --separator=" " --expand \ --gui-type="settings-base" \ --gui-type-text="${NOTEBOOK_GUI_TYPE_TEXT}" --gui-type-layout="${NOTEBOOK_GUI_TYPE_LAYOUT}" \ - --tab="${translations[MAIN]}"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" \ - --tab="${translations[ADVANCED]}"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" \ - --button="${translations[CANCEL THE CHANGES]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Cancel the current changes and return to the previous menu]}":1 \ - --button="${translations[RESET SETTINGS]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Restore default settings]}":2 \ - --button="${translations[OPEN THE SETTINGS FILE]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Open the .ppdb settings file in a system text editor to view and change variables manually]}":150 \ - --button="${translations[SAVE CHANGES]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Save the current changes, and go to the previous menu]}":0 2>/dev/null + --tab="${translations[MAIN]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ + --tab="${translations[ADVANCED]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ + --button="${translations[CANCEL THE CHANGES]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Cancel the current changes and return to the previous menu]}":1 \ + --button="${translations[RESET SETTINGS]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Restore default settings]}":2 \ + --button="${translations[OPEN THE SETTINGS FILE]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Open the .ppdb settings file in a system text editor to view and change variables manually]}":150 \ + --button="${translations[SAVE CHANGES]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Save the current changes, and go to the previous menu]}":0 2>/dev/null YAD_STATUS="$?" case "$YAD_STATUS" in @@ -4873,19 +4865,18 @@ relaxed - Same as fifo but allows tearing when below the monitors refresh rate.] ;; esac - output_yad_edit_db=($(<"${PW_TMPFS_PATH}/tmp_output_yad_edit_db")) + IFS=' ' 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]}" + for boole_to_int in "${PW_EDIT_DB_LIST[@]}" ; do + export "${boole_to_int}"="${output_yad_edit_db[$bool_from_yad]}" if [[ "${!boole_to_int}" == "TRUE" ]] - then export ${boole_to_int}="1" - else export ${boole_to_int}="0" + then export "${boole_to_int}"="1" + else export "${boole_to_int}"="0" fi export bool_from_yad=$(( bool_from_yad + 1 )) done IFS='%' read -r -a PW_ADD_SETTINGS <"${PW_TMPFS_PATH}/tmp_output_yad_fps_limit" - IFS="$orig_IFS" PW_WINDOWS_VER="${PW_ADD_SETTINGS[0]}" PW_DLL_INSTALL="${PW_ADD_SETTINGS[1]}" WINEDLLOVERRIDES="${PW_ADD_SETTINGS[2]}" @@ -4903,7 +4894,7 @@ relaxed - Same as fifo but allows tearing when below the monitors refresh rate.] fi export PW_WINE_CPU_TOPOLOGY - edit_db_from_gui ${PW_EDIT_DB_LIST[@]} LAUNCH_PARAMETERS PW_WINDOWS_VER PW_DLL_INSTALL WINEDLLOVERRIDES PW_WINE_CPU_TOPOLOGY \ + edit_db_from_gui "${PW_EDIT_DB_LIST[@]}" LAUNCH_PARAMETERS PW_WINDOWS_VER PW_DLL_INSTALL WINEDLLOVERRIDES PW_WINE_CPU_TOPOLOGY \ PW_MESA_GL_VERSION_OVERRIDE PW_VKD3D_FEATURE_LEVEL PW_LOCALE_SELECT PW_MESA_VK_WSI_PRESENT_MODE if [[ -z "$MANGOHUD_CONFIG" ]] ; then @@ -4928,8 +4919,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" - LIST_FX=($(grep -E '.fx$|.fxh$' "${FILE_VKBASALT_CONF}" | awk '{print $1}')) - GET_FX_IN_FILE=($(echo ${PW_VKBASALT_EFFECTS} | sed s/"cas:"// | sed s/":"/" "/g)) + 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 s/"cas:"// | sed 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]} @@ -4988,11 +4979,16 @@ gui_vkbasalt () { PW_PPFX_Bloom_INFO=${translations[Adds a Bloom effect]} unset ADD_GUI_FX GUI_FX_RESULT - for add_list_fx in ${LIST_FX[@]} ; do + for add_list_fx in "${LIST_FX[@]}" ; do + unset PW_FX_TRUE PW_VKBASALT_GUI_HELP="PW_${add_list_fx}_INFO" - if [[ ${GET_FX_IN_FILE[*]} =~ ${add_list_fx} ]]; then - ADD_GUI_FX+="--field=${CHKBOX_SPACE}${add_list_fx}!${!PW_VKBASALT_GUI_HELP}:${THEME_CHKBOX}%TRUE%" - else + for check_list_fx in "${GET_FX_IN_FILE[@]}" ; do + if [[ $check_list_fx == "$add_list_fx" ]] ; then + PW_FX_TRUE=1 + ADD_GUI_FX+="--field=${CHKBOX_SPACE}${add_list_fx}!${!PW_VKBASALT_GUI_HELP}:${THEME_CHKBOX}%TRUE%" + fi + done + if [[ $PW_FX_TRUE != 1 ]] ; then ADD_GUI_FX+="--field=${CHKBOX_SPACE}${add_list_fx}!${!PW_VKBASALT_GUI_HELP}:${THEME_CHKBOX}%FALSE%" fi done @@ -5014,16 +5010,16 @@ gui_vkbasalt () { "${pw_yad}" --plug=$KEY_FX_GUI --tabnum="2" --separator=" " --form \ --gui-type-layout="${PANED_GUI_TYPE_LAYOUT_DOWN}" \ - --field="AMD FidelityFX - Contrast Adaptive Sharpening"!"${translations[AMD FidelityFX - CAS is designed to dramatically improve texture sharpness without additional modification settings for games, with minimal loss of performance. (For older games it is recommended to set value = 100)]}":SCL "${VKBASALT_FFX_CAS_GUI}" \ + --field="AMD FidelityFX - Contrast Adaptive Sharpening!${translations[AMD FidelityFX - CAS is designed to dramatically improve texture sharpness without additional modification settings for games, with minimal loss of performance. (For older games it is recommended to set value = 100)]}":SCL "${VKBASALT_FFX_CAS_GUI}" \ 1> "${PW_TMPFS_PATH}/tmp_yad_cas_set" 2>/dev/null & "${pw_yad}" --paned --key="$KEY_FX_GUI" --sensitive --title="vkBasalt" \ --gui-type="settings-paned" \ --separator=" " --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \ - --button="${translations[CANCEL THE CHANGES]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Cancel the current changes and return to the previous menu]}":1 \ - --button="${translations[RESET]} VKBASALT"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Restore default settings for]} vkBasalt":178 \ - --button="${translations[DISABLE]} VKBASALT"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Disable vkBasalt and go to the previous menu]}":180 \ - --button="${translations[SAVE CHANGES]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Save the current changes, and go to the previous menu]}":182 2>/dev/null + --button="${translations[CANCEL THE CHANGES]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Cancel the current changes and return to the previous menu]}":1 \ + --button="${translations[RESET]} VKBASALT!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Restore default settings for]} vkBasalt":178 \ + --button="${translations[DISABLE]} VKBASALT!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Disable vkBasalt and go to the previous menu]}":180 \ + --button="${translations[SAVE CHANGES]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Save the current changes, and go to the previous menu]}":182 2>/dev/null YAD_VKBASALT_STATUS="$?" case "${YAD_VKBASALT_STATUS}" in @@ -5144,28 +5140,40 @@ gui_mangohud () { GET_REFRESH_RATE=(30 40 45 48 60 75 90 120 144 165 175 240) if [[ -n "$MANGOHUD_CONFIG" ]] ; then - PW_MANGOHUD_CONFIG=($(echo "$MANGOHUD_CONFIG" | tr ',' '\n' | grep -v '=' | tr [[:lower:]] [[:upper:]])) + PW_MANGOHUD_CONFIG=$MANGOHUD_CONFIG else - PW_MANGOHUD_CONFIG=($(echo "$DEFAULT_MANGOHUD_CONFIG" | tr ',' '\n' | grep -v '=' | tr [[:lower:]] [[:upper:]])) + PW_MANGOHUD_CONFIG=$DEFAULT_MANGOHUD_CONFIG fi + IFS=',' read -r -a PW_MANGOHUD_CONFIG <<< "${PW_MANGOHUD_CONFIG^^}" if [[ -n "$FPS_LIMIT" ]] ; then - PW_FPS_LIMIT_VAR=($(echo "$FPS_LIMIT" | tr '' '\n' | grep -v '=')) + IFS='+' read -r -a PW_FPS_LIMIT_VAR <<< "$FPS_LIMIT" fi - for add_list_mh in "${LIST_MH[@]}"; do + for add_list_mh in "${LIST_MH[@]}" ; do + unset PW_MH_TRUE PW_MH_GUI_HELP="PW_MH_${add_list_mh}_INFO" - if [[ ${PW_MANGOHUD_CONFIG[*]} =~ $add_list_mh ]]; then - ADD_GUI_MH+="--field=${CHKBOX_SPACE}${add_list_mh//"_"/" "}!${!PW_MH_GUI_HELP}:${THEME_CHKBOX}%TRUE%" - else + for check_list_mh in "${PW_MANGOHUD_CONFIG[@]}" ; do + [[ $check_list_mh =~ = ]] && continue + if [[ $check_list_mh == "$add_list_mh" ]] ; then + PW_MH_TRUE=1 + ADD_GUI_MH+="--field=${CHKBOX_SPACE}${add_list_mh//"_"/" "}!${!PW_MH_GUI_HELP}:${THEME_CHKBOX}%TRUE%" + fi + done + if [[ $PW_MH_TRUE != 1 ]] ; then ADD_GUI_MH+="--field=${CHKBOX_SPACE}${add_list_mh//"_"/" "}!${!PW_MH_GUI_HELP}:${THEME_CHKBOX}%FALSE%" fi done - for add_list_mh_fps in "${GET_REFRESH_RATE[@]}"; do - if [[ ${PW_FPS_LIMIT_VAR[*]} =~ $add_list_mh_fps ]]; then - ADD_GUI_MH_FPS+="--field=${CHKBOX_SPACE}$add_list_mh_fps:${THEME_CHKBOX}%TRUE%" - else + for add_list_mh_fps in "${GET_REFRESH_RATE[@]}" ; do + unset PW_MH_TRUE + for check_list_mh_fps in "${PW_FPS_LIMIT_VAR[@]}" ; do + if [[ $check_list_mh_fps == "$add_list_mh_fps" ]] ; then + PW_MH_TRUE=1 + ADD_GUI_MH_FPS+="--field=${CHKBOX_SPACE}$add_list_mh_fps:${THEME_CHKBOX}%TRUE%" + fi + done + if [[ $PW_MH_TRUE != 1 ]] ; then ADD_GUI_MH_FPS+="--field=${CHKBOX_SPACE}$add_list_mh_fps:${THEME_CHKBOX}%FALSE%" fi done @@ -5184,11 +5192,11 @@ gui_mangohud () { "${pw_yad}" --paned --key="$KEY_MH_GUI" --title="MangoHud" \ --separator=" " --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --sensitive \ --gui-type="settings-paned" \ - --button="${translations[CANCEL THE CHANGES]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Cancel the current changes and return to the previous menu]}":1 \ - --button="${translations[RESET]} MANGOHUD"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Restore default settings for]} MangoHud":180 \ - --button="${translations[PREVIEW CHANGES]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Start vkcube for preview changes]}":184 \ - --button="${translations[DISABLE]} MANGOHUD"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Disable MangoHud and go to the previous menu]}":182 \ - --button="${translations[SAVE CHANGES]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Save the current changes, and go to the previous menu]}":186 2>/dev/null + --button="${translations[CANCEL THE CHANGES]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Cancel the current changes and return to the previous menu]}":1 \ + --button="${translations[RESET]} MANGOHUD!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Restore default settings for]} MangoHud":180 \ + --button="${translations[PREVIEW CHANGES]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Start vkcube for preview changes]}":184 \ + --button="${translations[DISABLE]} MANGOHUD!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Disable MangoHud and go to the previous menu]}":182 \ + --button="${translations[SAVE CHANGES]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Save the current changes, and go to the previous menu]}":186 2>/dev/null YAD_MANGOHUD_STATUS="$?" case "${YAD_MANGOHUD_STATUS}" in @@ -5223,7 +5231,8 @@ gui_mangohud () { fi ((INT_COUNT_MH++)) done - GUI_MH_RESULT=$(echo "$GUI_MH_RESULT" | sed 's/ /_/g' | tr '[:upper:]' '[:lower:]') + GUI_MH_RESULT=${GUI_MH_RESULT// /_} + GUI_MH_RESULT=${GUI_MH_RESULT,,} INT_COUNT_MH_FPS="0" for read_list_mh_fps in ${YAD_MH_FPS_LIMIT} ; do @@ -5318,18 +5327,26 @@ gui_dgvoodoo2 () { esac unset ADD_CHK_BOX_DGV2 - for int_to_boole in ${PW_DGV2_LIST[@]} ; do + for int_to_boole in "${PW_DGV2_LIST[@]}" ; do if [[ "${!int_to_boole}" == "1" ]] - then export ${int_to_boole}="TRUE" - else export ${int_to_boole}="FALSE" + then export "$int_to_boole"="TRUE" + else export "$int_to_boole"="FALSE" fi TMP_HELP_FOR_GUI="${int_to_boole}_INFO" int_to_boole_non_pw="${int_to_boole//PW_DGV2/}" int_to_boole_non_pw="${int_to_boole_non_pw//"_"/" "}" - if [[ ! "${PW_VULKAN_USE}" == [12] ]] \ - && [[ "${DISABLE_DGV2_LIST}" =~ ${int_to_boole} ]] - then ADD_CHK_BOX_DGV2+="--field=${CHKBOX_SPACE}${int_to_boole_non_pw}!${!TMP_HELP_FOR_GUI}:D${THEME_CHKBOX}%${!int_to_boole}%" - else ADD_CHK_BOX_DGV2+="--field=${CHKBOX_SPACE}${int_to_boole_non_pw}!${!TMP_HELP_FOR_GUI}:${THEME_CHKBOX}%${!int_to_boole}%" + if [[ ! "${PW_VULKAN_USE}" =~ ^(1|2)$ ]] \ + && [[ -n $DISABLE_DGV2_LIST ]] ; then + unset CHECK_BOOLE_TRUE + for check_boole in $DISABLE_DGV2_LIST ; do + if [[ $check_boole == "$int_to_boole" ]] ; then + CHECK_BOOLE_TRUE=1 + ADD_CHK_BOX_DGV2+="--field=${CHKBOX_SPACE}${int_to_boole_non_pw}!${!TMP_HELP_FOR_GUI}:D${THEME_CHKBOX}%${!int_to_boole}%" + fi + done + if [[ $CHECK_BOOLE_TRUE != 1 ]] ; then + ADD_CHK_BOX_DGV2+="--field=${CHKBOX_SPACE}${int_to_boole_non_pw}!${!TMP_HELP_FOR_GUI}:${THEME_CHKBOX}%${!int_to_boole}%" + fi fi done @@ -5383,10 +5400,10 @@ gui_dgvoodoo2 () { "${pw_yad}" --paned --key=$KEY_DGV2_GUI --height="350" --title="dgVoodoo2" \ --separator=" " --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \ --gui-type="settings-paned" \ - --button="${translations[CANCEL THE CHANGES]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Cancel the current changes and return to the previous menu]}":1 \ - --button="${translations[RESET]} DGVOODOO2"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Restore default settings for]} dgVoodoo2":162 \ - --button="${translations[DISABLE]} DGVOODOO2"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Disable dgVoodoo2 and go to the previous menu]}":164 \ - --button="${translations[SAVE CHANGES]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Save the current changes, and go to the previous menu]}":166 \ + --button="${translations[CANCEL THE CHANGES]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Cancel the current changes and return to the previous menu]}":1 \ + --button="${translations[RESET]} DGVOODOO2!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Restore default settings for]} dgVoodoo2":162 \ + --button="${translations[DISABLE]} DGVOODOO2!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Disable dgVoodoo2 and go to the previous menu]}":164 \ + --button="${translations[SAVE CHANGES]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Save the current changes, and go to the previous menu]}":166 \ 2>/dev/null YAD_DGV2_STATUS="$?" @@ -5407,19 +5424,18 @@ gui_dgvoodoo2 () { ;; esac - output_yad_dgv2=($(<"${PW_TMPFS_PATH}/tmp_yad_dgv2_set")) + IFS=' ' 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]}" + for boole_to_int in "${PW_DGV2_LIST[@]}" ; do + export "${boole_to_int}"="${output_yad_dgv2[$bool_from_yad]}" if [[ "${!boole_to_int}" == "TRUE" ]] - then export ${boole_to_int}="1" - else export ${boole_to_int}="0" + then export "${boole_to_int}"="1" + else export "${boole_to_int}"="0" fi export bool_from_yad=$(( bool_from_yad + 1 )) done IFS='%' read -r -a PW_ADD_SETTINGS_DGV2 <"${PW_TMPFS_PATH}/tmp_yad_dgv2_set_cb" - IFS="$orig_IFS" PW_DGV2_RESOLUTION="${PW_ADD_SETTINGS_DGV2[0]}" PW_DGV2_FPS_LIMIT="${PW_ADD_SETTINGS_DGV2[1]}" PW_DGV2_FILTERING="${PW_ADD_SETTINGS_DGV2[2]}" @@ -5434,7 +5450,7 @@ gui_dgvoodoo2 () { PW_DGV2_RESAMPLING="${PW_ADD_SETTINGS_DGV2[11]}" PW_DGV2_CURSOR_SCALE="${PW_ADD_SETTINGS_DGV2[12]}" - edit_db_from_gui ${PW_DGV2_LIST[@]} PW_DGVOODOO2 PW_DGV2_FILTERING PW_DGV2_ANTIALIASING PW_DGV2_VRAM PW_DGV2_RESOLUTION \ + edit_db_from_gui "${PW_DGV2_LIST[@]}" PW_DGVOODOO2 PW_DGV2_FILTERING PW_DGV2_ANTIALIASING PW_DGV2_VRAM PW_DGV2_RESOLUTION \ PW_DGV2_FPS_LIMIT PW_DGV2_BIT_DEPTH PW_DGV2_BRIGHTNESS PW_DGV2_COLOR PW_DGV2_CONTRAST PW_DGV2_VIDEOCARD PW_DGV2_DISPLAY_ROI \ PW_DGV2_CURSOR_SCALE PW_DGV2_RESAMPLING @@ -5489,10 +5505,10 @@ gui_gamescope () { if [[ "${GAMESCOPE_INSTALLED}" == 1 ]] ; then GAMESCOPE_NEED_INSTALL="${translations[Change settings gamescope for]} $PW_NAME_DESKTOP_PROXY\n ${translations[NOTE: To display help for each item, simply hover your mouse over the text]}" GS_CB="CB" && GS_CBE="CBE" && GS_NUM="NUM" && GS_NUMN="NUMN" - for int_to_boole in ${PW_GS_LIST[@]} ; do + for int_to_boole in "${PW_GS_LIST[@]}" ; do if [[ "${!int_to_boole}" == "1" ]] - then export ${int_to_boole}="TRUE" - else export ${int_to_boole}="FALSE" + then export "${int_to_boole}"="TRUE" + else export "${int_to_boole}"="FALSE" fi TMP_HELP_FOR_GUI="${int_to_boole}_INFO" int_to_boole_non_pw="${int_to_boole//PW_GS/}" @@ -5508,10 +5524,10 @@ gui_gamescope () { GAMESCOPE_NEED_INSTALL="${translations[Gamescope is not detected on the system, please contact the manufacturer of your distribution\\nor search the Internet for information on how to install gamescope on your system.]}" fi GS_CB="DCB" && GS_CBE="DCBE" && GS_NUM="DNUM" && GS_NUMN="DNUMN" - for int_to_boole in ${PW_GS_LIST[@]} ; do + for int_to_boole in "${PW_GS_LIST[@]}" ; do if [[ "${!int_to_boole}" == "1" ]] - then export ${int_to_boole}="TRUE" - else export ${int_to_boole}="FALSE" + then export "${int_to_boole}"="TRUE" + else export "${int_to_boole}"="FALSE" fi TMP_HELP_FOR_GUI="${int_to_boole}_INFO" int_to_boole_non_pw="${int_to_boole//PW_GS/}" @@ -5552,10 +5568,10 @@ gui_gamescope () { "${pw_yad}" --paned --key="$KEY_GS_GUI" --title="GameScope" \ --separator=" " --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \ --gui-type="settings-paned" \ - --button="${translations[CANCEL THE CHANGES]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Cancel the current changes and return to the previous menu]}":1 \ - --button="${translations[RESET]} GAMESCOPE"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Restore default settings for]} GameScope":162 \ - --button="${translations[DISABLE]} GAMESCOPE"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Disable GameScope and go to the previous menu]}":164 \ - --button="${translations[SAVE CHANGES]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Save the current changes, and go to the previous menu]}":166 \ + --button="${translations[CANCEL THE CHANGES]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Cancel the current changes and return to the previous menu]}":1 \ + --button="${translations[RESET]} GAMESCOPE!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Restore default settings for]} GameScope":162 \ + --button="${translations[DISABLE]} GAMESCOPE!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Disable GameScope and go to the previous menu]}":164 \ + --button="${translations[SAVE CHANGES]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Save the current changes, and go to the previous menu]}":166 \ 2>/dev/null YAD_GAMESCOPE_STATUS="$?" @@ -5576,19 +5592,18 @@ gui_gamescope () { ;; esac - output_yad_gs=($(<"${PW_TMPFS_PATH}/tmp_yad_gs_set")) + IFS=' ' 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]}" + for boole_to_int in "${PW_GS_LIST[@]}" ; do + export "${boole_to_int}"="${output_yad_gs[$bool_from_yad]}" if [[ "${!boole_to_int}" == "TRUE" ]] - then export ${boole_to_int}="1" - else export ${boole_to_int}="0" + then export "${boole_to_int}"="1" + else export "${boole_to_int}"="0" fi export bool_from_yad=$(( bool_from_yad + 1 )) done IFS='%' read -r -a PW_ADD_SETTINGS_GS <"${PW_TMPFS_PATH}/tmp_yad_gs_set_cb" - IFS="$orig_IFS" PW_GS_SHOW_RESOLUTION="${PW_ADD_SETTINGS_GS[0]}" PW_GS_INTERNAL_RESOLUTION="${PW_ADD_SETTINGS_GS[1]//','/'.'}" PW_GS_FRAME_LIMIT="${PW_ADD_SETTINGS_GS[2]}" @@ -5601,7 +5616,7 @@ gui_gamescope () { PW_GS_ITM_SDR_NITS="${PW_ADD_SETTINGS_GS[9]}" PW_GS_ITM_TARGET_NITS="${PW_ADD_SETTINGS_GS[10]}" - edit_db_from_gui ${PW_GS_LIST[@]} PW_GAMESCOPE PW_GS_SHOW_RESOLUTION PW_GS_INTERNAL_RESOLUTION \ + edit_db_from_gui "${PW_GS_LIST[@]}" PW_GAMESCOPE PW_GS_SHOW_RESOLUTION PW_GS_INTERNAL_RESOLUTION \ PW_GS_FRAME_LIMIT PW_GS_SCALER_MODE PW_GS_FILTER_MODE \ PW_GS_UPSCALE_SHARPNESS PW_GS_MAX_SCALE_FACTOR PW_GS_MOUSE_SENSITIVITY \ PW_GS_SDR_CONTENT_NITS PW_GS_ITM_SDR_NITS PW_GS_ITM_TARGET_NITS @@ -5641,10 +5656,10 @@ gui_userconf () { "${pw_yad}" --plug=$KEY_USERCONF_GUI --tabnum="1" --form --columns=2 --separator=" " --text-align=center \ --text "${translations[Change global settings]} (edit user.conf)\n ${translations[NOTE: To display help for each item, simply hover your mouse over the text]}" \ --align-buttons --homogeneous-column --gui-type-text="${PANED_GUI_TYPE_TEXT_UP}" --gui-type-layout="${PANED_GUI_TYPE_LAYOUT_UP}" \ - --field=" ${translations[Change mirror to]} $NEW_MIRROR"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"${translations[Depending on which mirror is selected, updates will be downloaded from there.]}":"FBTN" '@bash -c "button_click --userconf change_mirror"' \ - --field=" ${translations[Change branch to]} $NEW_BRANCH"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"${translations[Depending on the version of the scripts, PortProton will receive the latest changes first (the DEVEL branch), the STABLE branch is updated later and is stable.]}":"FBTN" '@bash -c "button_click --userconf change_branch"' \ - --field=" ${translations[Change start gui to]} $NEW_START_GUI"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"${translations[When using PANED in the game start menu, additional buttons are located on one large page; if NOTEBOOK, then they are divided into several.]}":"FBTN" '@bash -c "button_click --userconf change_gui_start"' \ - --field=" $NEW_STEAM_BEHAVIOR ${translations[steam covers download]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"${translations[If downloading steam covers is enabled, they will be downloaded and created. (Disablement is provided in cases where their downloading is unavailable for some reason)]}":"FBTN" '@bash -c "button_click --userconf change_download_grid"' \ + --field=" ${translations[Change mirror to]} $NEW_MIRROR!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!${translations[Depending on which mirror is selected, updates will be downloaded from there.]}":"FBTN" '@bash -c "button_click --userconf change_mirror"' \ + --field=" ${translations[Change branch to]} $NEW_BRANCH!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!${translations[Depending on the version of the scripts, PortProton will receive the latest changes first (the DEVEL branch), the STABLE branch is updated later and is stable.]}":"FBTN" '@bash -c "button_click --userconf change_branch"' \ + --field=" ${translations[Change start gui to]} $NEW_START_GUI!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!${translations[When using PANED in the game start menu, additional buttons are located on one large page; if NOTEBOOK, then they are divided into several.]}":"FBTN" '@bash -c "button_click --userconf change_gui_start"' \ + --field=" $NEW_STEAM_BEHAVIOR ${translations[steam covers download]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!${translations[If downloading steam covers is enabled, they will be downloaded and created. (Disablement is provided in cases where their downloading is unavailable for some reason)]}":"FBTN" '@bash -c "button_click --userconf change_download_grid"' \ 2>/dev/null & if [[ -n "$PW_SOUND_DRIVER_USE" ]] \ @@ -5726,10 +5741,10 @@ gui_userconf () { --title="${translations[GLOBAL SETTINGS (USER.CONF)]}" \ --separator=" " --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \ --gui-type="settings-paned" \ - --button="${translations[CANCEL THE CHANGES]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Cancel the current changes and return to the previous menu]}":1 \ - --button="${translations[RESET]} USER.CONF"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Restore default settings for]} user.conf":2 \ - --button="${translations[OPEN THE SETTINGS FILE]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Open the user.conf settings file in a system text editor to view and change variables manually]}":164 \ - --button="${translations[SAVE CHANGES]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Save the current changes, and go to the previous menu]}":166 \ + --button="${translations[CANCEL THE CHANGES]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Cancel the current changes and return to the previous menu]}":1 \ + --button="${translations[RESET]} USER.CONF!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Restore default settings for]} user.conf":2 \ + --button="${translations[OPEN THE SETTINGS FILE]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Open the user.conf settings file in a system text editor to view and change variables manually]}":164 \ + --button="${translations[SAVE CHANGES]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Save the current changes, and go to the previous menu]}":166 \ 2>/dev/null YAD_USERCONF_STATUS="$?" @@ -5751,7 +5766,6 @@ gui_userconf () { ;; 166) IFS='%' read -r -a PW_ADD_SETTINGS_UC <"${PW_TMPFS_PATH}/tmp_yad_userconf_set_cb" - IFS="$orig_IFS" PW_GPU_USE="${PW_ADD_SETTINGS_UC[0]}" PW_WINE_DPI_VALUE="${PW_ADD_SETTINGS_UC[1]}" if [[ $PW_WINE_DPI_VALUE == "${translations[Recommended value]}" ]] ; then @@ -5759,12 +5773,12 @@ gui_userconf () { fi PW_SOUND_DRIVER_USE="${PW_ADD_SETTINGS_UC[2]}" GUI_THEME="${PW_ADD_SETTINGS_UC[3]}" - if [[ $GUI_THEME == ${translations[default]} ]] ; then GUI_THEME=default - elif [[ $GUI_THEME == ${translations[compact]} ]] ; then GUI_THEME=compact - elif [[ $GUI_THEME == ${translations[classic]} ]] ; then GUI_THEME=classic + if [[ $GUI_THEME == "${translations[default]}" ]] ; then GUI_THEME=default + elif [[ $GUI_THEME == "${translations[compact]}" ]] ; then GUI_THEME=compact + elif [[ $GUI_THEME == "${translations[classic]}" ]] ; then GUI_THEME=classic fi GTK_THEME="${PW_ADD_SETTINGS_UC[4]}" - if [[ $GTK_THEME == ${translations[default]} ]] ; then unset GTK_THEME + if [[ $GTK_THEME == "${translations[default]}" ]] ; then unset GTK_THEME elif [[ $GTK_THEME =~ ${translations[light]} ]] ; then GTK_THEME="${GTK_THEME//${translations[light]}/light}" elif [[ $GTK_THEME =~ ${translations[dark]} ]] ; then GTK_THEME="${GTK_THEME//${translations[dark]}/dark}" fi @@ -5859,15 +5873,15 @@ portwine_create_shortcut () { --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) + --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 () { if [[ "$PW_YAD_OUT" == "0" ]] ; then - name_desktop=$(echo "$OUTPUT" | awk -F'|' '{print $1}' | sed "s/\`//g" | sed "s/\"//g" | sed "s/'//g" | sed "s/\!//g") + 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}') PW_SHORTCUT_DESKTOP=$(echo "$OUTPUT" | awk -F'|' '{print $3}') PW_SHORTCUT_STEAM=$(echo "$OUTPUT" | awk -F'|' '{print $4}') @@ -5945,6 +5959,7 @@ portwine_output_yad_shortcut () { create_new_dir "${STUIDPATH}/config/" create_new_dir "${STUIDPATH}/config/grid" export SGGRIDDIR="${STUIDPATH}/config/grid" + # shellcheck source=/dev/null source "${PORT_SCRIPTS_PATH}/add_in_steam.sh" if [[ "${PW_SKIP_RESTART_STEAM}" != 1 ]] && pgrep -i steam &>/dev/null ; then if yad_question "${translations[For adding shortcut to STEAM, needed restart.\\n\\nRestart STEAM now?]}" ; then @@ -5996,11 +6011,11 @@ pw_auto_create_shortcut () { for link_file in "${PORT_WINE_PATH}"/data/prefixes/*/drive_c/users/*/Desktop/*.lnk do link_file=$(readlink -f "${link_file}") - LINKS+=(${link_file// /@_@}) + IFS=' ' read -r -a LINKS <<< "${LINKS[*]} ${link_file// /@_@}" done [[ -z "${LINKS[0]}" ]] && return 0 - read -r -a SORTED_LINKS < <(echo ${LINKS[@]} | tr ' ' '\n' | sort -u | tr '\n' ' ') + IFS=' ' read -r -a SORTED_LINKS <<< "$(echo "${LINKS[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' ')" for link_file in "${SORTED_LINKS[@]//@_@/ }" ; do if command -v exiftool &>/dev/null ; then @@ -6081,8 +6096,8 @@ portwine_change_shortcut () { --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[REMOVE SHORTCUT]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1 \ - --button="${translations[CHANGE SHORTCUT]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 2>/dev/null) + --button="${translations[REMOVE SHORTCUT]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1 \ + --button="${translations[CHANGE SHORTCUT]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 2>/dev/null) PW_YAD_OUT=$? PORTWINE_CHANGE_SHORTCUT=1 if [[ $PW_YAD_OUT == 1 ]] ; then @@ -6096,22 +6111,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)" - 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)" - 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)" - 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)" - 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)" - PW_DELETE_SHORTCUT_DESKTOP+=(${PW_DELETE_DESKTOP// /@_@}) + read -r -d '' -a PW_DELETE_SHORTCUT_DESKTOP <<< "${PW_DELETE_SHORTCUT_DESKTOP[*]} ${PW_DELETE_DESKTOP// /@_@}" fi } @@ -6121,7 +6136,7 @@ portwine_delete_shortcut () { fi unset PORTWINE_CHANGE_SHORTCUT - for delete_shortcut in ${PW_DELETE_SHORTCUT_MENU[@]} ${PW_DELETE_SHORTCUT_DESKTOP[@]} ; do + for delete_shortcut in "${PW_DELETE_SHORTCUT_MENU[@]}" "${PW_DELETE_SHORTCUT_DESKTOP[@]}" ; do rm -f "${delete_shortcut//@_@/ }" done } @@ -6131,8 +6146,8 @@ portwine_missing_shortcut () { --window-icon "$PW_GUI_ICON_PATH/portproton.svg" --fixed \ --image "$PW_GUI_ICON_PATH/error.svg" \ --text "\n${translations[Could not find the file:]}\n$(print_wrapped "${portwine_exe}" "50")\n\n${translations[ATTENTION:\\nIf you forgot to mount the disk with the running application, click CANCEL!]}\n" \ - --button="${translations[DELETE SHORTCUT]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 \ - --button="${translations[CANCEL]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1 + --button="${translations[DELETE SHORTCUT]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 \ + --button="${translations[CANCEL]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1 if [[ $? -eq "0" ]] ; then portwine_delete_shortcut fi @@ -6216,13 +6231,13 @@ pw_prefix_manager () { --width=700 --height=700 --expand \ --gui-type="settings-notebook" \ --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --title "${translations[PREFIX MANAGER]}" \ - --button="${translations[CANCEL]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":1 \ - --button="${translations[FORCE INSTALL]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Installation with forced redownload of libraries]}":2 \ - --button="${translations[INSTALL]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Standard installation.]}":0 \ + --button="${translations[CANCEL]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!":1 \ + --button="${translations[FORCE INSTALL]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Installation with forced redownload of libraries]}":2 \ + --button="${translations[INSTALL]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Standard installation.]}":0 \ --tab-pos="top" \ - --tab="${translations[DLLS]}"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" \ - --tab="${translations[FONTS]}"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" \ - --tab="${translations[SETTINGS]}"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" 2>/dev/null + --tab="${translations[DLLS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ + --tab="${translations[FONTS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ + --tab="${translations[SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" 2>/dev/null YAD_STATUS="$?" try_remove_file "${PW_TMPFS_PATH}/dll_list_tmp" @@ -6355,9 +6370,9 @@ portwine_start_debug () { echo "RAM:" >> "${PORT_WINE_PATH}/PortProton.log" free -m >> "${PORT_WINE_PATH}/PortProton.log" echo "--------------------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log" - echo "Filesystem "${PATH_TO_GAME}" - $(stat -f -c %T "${PATH_TO_GAME}")" >> "${PORT_WINE_PATH}/PortProton.log" - echo "Filesystem "${PORT_WINE_PATH}" - $(stat -f -c %T "${PORT_WINE_PATH}")" >> "${PORT_WINE_PATH}/PortProton.log" - echo "Filesystem "${PW_TMPFS_PATH}" - $(stat -f -c %T "${PW_TMPFS_PATH}")" >> "${PORT_WINE_PATH}/PortProton.log" + echo "Filesystem ${PATH_TO_GAME} - $(stat -f -c %T "${PATH_TO_GAME}")" >> "${PORT_WINE_PATH}/PortProton.log" + echo "Filesystem ${PORT_WINE_PATH} - $(stat -f -c %T "${PORT_WINE_PATH}")" >> "${PORT_WINE_PATH}/PortProton.log" + echo "Filesystem ${PW_TMPFS_PATH} - $(stat -f -c %T "${PW_TMPFS_PATH}")" >> "${PORT_WINE_PATH}/PortProton.log" echo "---------------------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log" echo "Graphic cards and drivers:" >> "${PORT_WINE_PATH}/PortProton.log" echo 'lspci -k | grep -EA3 VGA|3D|Display :' >> "${PORT_WINE_PATH}/PortProton.log" @@ -6421,7 +6436,7 @@ portwine_start_debug () { sleep 3 pw_stop_progress_bar local PW_TIMER=0 - while read -r line || [[ -n $(pgrep -a yad | grep "yad_gui_pp --text-info --tail --button="STOP"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 --title="DEBUG"" | awk '{print $1}') ]] ; do + while read -r line || [[ -n $(pgrep -a yad | grep "yad_gui_pp --text-info --tail --button="STOP!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 --title="DEBUG"" | awk '{print $1}') ]] ; do sleep 0.005 if [[ -n "${line}" ]] && ! echo "${line}" | grep -qi "kerberos\|ntlm" ; then echo "# ${line}" @@ -6430,7 +6445,7 @@ portwine_start_debug () { sleep 3 PW_TIMER=1 fi - done < "${PORT_WINE_PATH}/PortProton.log" | "${pw_yad}" --text-info --tail --button="STOP"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 --title="DEBUG" \ + done < "${PORT_WINE_PATH}/PortProton.log" | "${pw_yad}" --text-info --tail --button="STOP!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 --title="DEBUG" \ --skip-taskbar --width=800 --height=400 --text "${translations[Please wait! After finishing the PortProton, click STOP.]}" --window-icon="$PW_GUI_ICON_PATH/portproton.svg" 2>/dev/null && kill_portwine sed -i '/.fx$/d' "${PORT_WINE_PATH}/PortProton.log" @@ -6452,8 +6467,8 @@ pw_create_prefix_backup () { cd "$HOME" || : PW_PREFIX_TO_BACKUP=$("${pw_yad}" --file --directory --width=800 --height=500 \ --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --title "${translations[BACKUP PREFIX TO...]}" \ - --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) + --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="$?" if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then @@ -6509,8 +6524,8 @@ pw_autoinstall_from_db () { export PW_MANGOHUD=0 export PW_VKBASALT=0 export PW_USE_D3D_EXTRAS=1 + # shellcheck source=/dev/null . "${PORT_SCRIPTS_PATH}/pw_autoinstall/${PW_YAD_SET}" - } button_click () { @@ -6518,16 +6533,16 @@ button_click () { case "$1" in --normal) - kill -s SIGUSR1 $(pgrep -a yad | grep "\--key=${KEY_MENU}" | awk '{print $1}') > /dev/null 2>&1 + kill -s SIGUSR1 "$(pgrep -a yad | grep "\--key=${KEY_MENU}" | awk '{print $1}')" > /dev/null 2>&1 ;; --start) - kill -s SIGUSR1 $(pgrep -a yad | grep "\--key=${KEY_START}" | awk '{print $1}') > /dev/null 2>&1 + kill -s SIGUSR1 "$(pgrep -a yad | grep "\--key=${KEY_START}" | awk '{print $1}')" > /dev/null 2>&1 ;; --userconf) - kill -s SIGUSR1 $(pgrep -a yad | grep "\--key=${KEY_USERCONF_GUI}" | awk '{print $1}') > /dev/null 2>&1 + kill -s SIGUSR1 "$(pgrep -a yad | grep "\--key=${KEY_USERCONF_GUI}" | awk '{print $1}')" > /dev/null 2>&1 ;; --desktop) - kill -s SIGUSR1 $(pgrep -a yad | grep "\--key=${KEY_MENU}" | awk '{print $1}') > /dev/null 2>&1 + kill -s SIGUSR1 "$(pgrep -a yad | grep "\--key=${KEY_MENU}" | awk '{print $1}')" > /dev/null 2>&1 PW_YAD_SET="${PORT_WINE_PATH}/${PW_YAD_SET//#@_@#/ }" if [[ -n $PW_DESKTOP_FILES_REGEX ]] ; then local count=1 @@ -6678,8 +6693,8 @@ gui_open_user_conf () { PW_USERCONF_GUI="$("${pw_yad}" --title="${translations[EDIT USER CONFIG]}" \ --text-info --editable --width=800 --height=600 \ --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \ - --button="${translations[BACK]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":1 \ - --button="${translations[SAVE]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":2 \ + --button="${translations[BACK]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!":1 \ + --button="${translations[SAVE]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!":2 \ --filename="${PORT_WINE_PATH}/data/user.conf" 2>/dev/null)" YAD_STATUS="$?" @@ -6701,8 +6716,8 @@ gui_edit_db_file () { GUI_EDIT_DB_FILE="$("${pw_yad}" --title="${translations[EDIT DB]}" \ --text-info --editable --width=800 --height=600 \ --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \ - --button="${translations[BACK]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":1 \ - --button="${translations[SAVE]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":2 \ + --button="${translations[BACK]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!":1 \ + --button="${translations[SAVE]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!":2 \ --filename="${PORTWINE_DB_FILE}" 2>/dev/null)" YAD_STATUS="$?" diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 81881b7..1121d3c 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -1,7 +1,6 @@ #!/usr/bin/env bash # Author: Castro-Fidel (linux-gaming.ru) # Development assistants: Cefeiko; Dezert1r; Taz_mania; Anton_Famillianov; gavr; RidBowt; chal55rus; UserDiscord; Boria138; Vano; Akai; Htylol -# shellcheck disable=SC2140,SC2119,SC2206,SC2068 ######################################################################## export url_site="https://linux-gaming.ru/portproton/" export url_cloud="https://cloud.linux-gaming.ru/portproton" @@ -520,13 +519,13 @@ if [[ -f "${portwine_exe}" ]] ; then "${pw_yad}" --plug=$KEY_START --tabnum=2 --form --columns="${START_GUI_NOTEBOOK_COLUMNS}" --align-buttons --homogeneous-column \ --gui-type-layout="${START_GUI_TYPE_LAYOUT_NOTEBOOK}" \ - --field=" ${translations[Base settings]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Edit database file for]} ${PORTWINE_DB}":"FBTN" '@bash -c "button_click --start 118"' \ - --field=" ${translations[Global settings]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Settings for user.conf]}":"FBTN" '@bash -c "button_click --start 128"' \ - --field=" ${translations[Open directory]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Open directory with .ppdb file]}":"FBTN" '@bash -c "button_click --start open_game_folder"' \ - --field=" vkBasalt"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Enable vkBasalt by default to improve graphics in games running on Vulkan. (The HOME hotkey disables vkbasalt)]}":"FBTN" '@bash -c "button_click --start 120"' \ - --field=" MangoHud"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Enable Mangohud by default (R_SHIFT + F12 keyboard shortcuts disable Mangohud)]}":"FBTN" '@bash -c "button_click --start 122"' \ - --field=" dgVoodoo2"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Enable dgVoodoo2 by default (This wrapper fixes many compatibility and rendering issues when running old games)]}":"FBTN" '@bash -c "button_click --start 124"' \ - --field=" GameScope"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Enable GameScope by default (Wayland micro compositor)]}":"FBTN" '@bash -c "button_click --start 126"' \ + --field=" ${translations[Base settings]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Edit database file for]} ${PORTWINE_DB}":"FBTN" '@bash -c "button_click --start 118"' \ + --field=" ${translations[Global settings]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Settings for user.conf]}":"FBTN" '@bash -c "button_click --start 128"' \ + --field=" ${translations[Open directory]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Open directory with .ppdb file]}":"FBTN" '@bash -c "button_click --start open_game_folder"' \ + --field=" vkBasalt!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable vkBasalt by default to improve graphics in games running on Vulkan. (The HOME hotkey disables vkbasalt)]}":"FBTN" '@bash -c "button_click --start 120"' \ + --field=" MangoHud!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable Mangohud by default (R_SHIFT + F12 keyboard shortcuts disable Mangohud)]}":"FBTN" '@bash -c "button_click --start 122"' \ + --field=" dgVoodoo2!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable dgVoodoo2 by default (This wrapper fixes many compatibility and rendering issues when running old games)]}":"FBTN" '@bash -c "button_click --start 124"' \ + --field=" GameScope!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable GameScope by default (Wayland micro compositor)]}":"FBTN" '@bash -c "button_click --start 126"' \ 2>/dev/null & if [[ "${PW_YAD_FORM_TAB}" == "1" ]] \ @@ -543,12 +542,12 @@ if [[ -f "${portwine_exe}" ]] ; then --width="${PW_START_SIZE_W}" --tab-pos="${PW_TAB_POSITON}" \ --title "PortProton-${install_ver} (${scripts_install_ver}${BRANCH_VERSION})" --expand \ --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \ - --tab="${translations[GENERAL]}"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" \ - --tab="${translations[SETTINGS]}"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" \ - --button="${translations[MAIN MENU]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Main menu]}":128 \ + --tab="${translations[GENERAL]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ + --tab="${translations[SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ + --button="${translations[MAIN MENU]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Main menu]}":128 \ --button="${PW_SHORTCUT}" \ - --button="${translations[DEBUG]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Launch with the creation of a .log file at the root PortProton]}":102 \ - --button="${translations[LAUNCH]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Run file ...]}":106 2>/dev/null + --button="${translations[DEBUG]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Launch with the creation of a .log file at the root PortProton]}":102 \ + --button="${translations[LAUNCH]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Run file ...]}":106 2>/dev/null PW_YAD_SET="$?" export PW_YAD_FORM_TAB="1" @@ -565,13 +564,13 @@ if [[ -f "${portwine_exe}" ]] ; then "${pw_yad}" --plug=$KEY_START --tabnum=2 --form --columns="${START_GUI_PANED_COLUMNS}" \ --gui-type-layout="${START_GUI_TYPE_LAYOUT_PANED}" \ --align-buttons --homogeneous-row --homogeneous-column \ - --field=" ${translations[Base settings]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Edit database file for]} ${PORTWINE_DB}":"FBTN" '@bash -c "button_click --start 118"' \ - --field=" ${translations[Global settings]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Settings for user.conf]}":"FBTN" '@bash -c "button_click --start 128"' \ - --field=" ${translations[Open directory]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Open directory with .ppdb file]}":"FBTN" '@bash -c "button_click --start open_game_folder"' \ - --field=" vkBasalt"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Enable vkBasalt by default to improve graphics in games running on Vulkan. (The HOME hotkey disables vkbasalt)]}":"FBTN" '@bash -c "button_click --start 120"' \ - --field=" MangoHud"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Enable Mangohud by default (R_SHIFT + F12 keyboard shortcuts disable Mangohud)]}":"FBTN" '@bash -c "button_click --start 122"' \ - --field=" dgVoodoo2"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Enable dgVoodoo2 by default (This wrapper fixes many compatibility and rendering issues when running old games)]}":"FBTN" '@bash -c "button_click --start 124"' \ - --field=" GameScope"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Enable GameScope by default (Wayland micro compositor)]}":"FBTN" '@bash -c "button_click --start 126"' \ + --field=" ${translations[Base settings]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Edit database file for]} ${PORTWINE_DB}":"FBTN" '@bash -c "button_click --start 118"' \ + --field=" ${translations[Global settings]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Settings for user.conf]}":"FBTN" '@bash -c "button_click --start 128"' \ + --field=" ${translations[Open directory]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Open directory with .ppdb file]}":"FBTN" '@bash -c "button_click --start open_game_folder"' \ + --field=" vkBasalt!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable vkBasalt by default to improve graphics in games running on Vulkan. (The HOME hotkey disables vkbasalt)]}":"FBTN" '@bash -c "button_click --start 120"' \ + --field=" MangoHud!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable Mangohud by default (R_SHIFT + F12 keyboard shortcuts disable Mangohud)]}":"FBTN" '@bash -c "button_click --start 122"' \ + --field=" dgVoodoo2!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable dgVoodoo2 by default (This wrapper fixes many compatibility and rendering issues when running old games)]}":"FBTN" '@bash -c "button_click --start 124"' \ + --field=" GameScope!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable GameScope by default (Wayland micro compositor)]}":"FBTN" '@bash -c "button_click --start 126"' \ 2>/dev/null & "${pw_yad}" --key=$KEY_START --paned \ @@ -579,10 +578,10 @@ if [[ -f "${portwine_exe}" ]] ; then --width="${PW_START_SIZE_W}" --tab-pos="${PW_TAB_POSITON}" \ --title "PortProton-${install_ver} (${scripts_install_ver}${BRANCH_VERSION})" \ --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \ - --button="${translations[MAIN MENU]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Main menu]}":128 \ + --button="${translations[MAIN MENU]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Main menu]}":128 \ --button="${PW_SHORTCUT}" \ - --button="${translations[DEBUG]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Launch with the creation of a .log file at the root PortProton]}":102 \ - --button="${translations[LAUNCH]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Run file ...]}":106 2>/dev/null + --button="${translations[DEBUG]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Launch with the creation of a .log file at the root PortProton]}":102 \ + --button="${translations[LAUNCH]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Run file ...]}":106 2>/dev/null PW_YAD_SET="$?" fi case "$PW_YAD_SET" in @@ -638,7 +637,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 IFS=' ' 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 @@ -732,15 +731,15 @@ else "${pw_yad}" --plug=$KEY_MENU --tabnum="${PW_GUI_SORT_TABS[3]}" --form --columns=3 --align-buttons --separator=";" --homogeneous-column \ --gui-type-layout="${MAIN_MENU_GUI_TYPE_LAYOUT}" \ - --field=" ${translations[Reinstall PortProton]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click --normal gui_pw_reinstall_pp"' \ - --field=" ${translations[Remove PortProton]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click --normal gui_rm_portproton"' \ - --field=" ${translations[Update PortProton]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click --normal gui_pw_update"' \ - --field=" ${translations[Changelog]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click --normal open_changelog"' \ - --field=" ${translations[Change language]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click --normal change_loc"' \ - --field=" ${translations[Global settings (user.conf)]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click --normal 128"' \ - --field=" ${translations[Scripts from backup]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click --normal gui_open_scripts_from_backup"' \ - --field=" Xterm"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click --normal pw_start_cont_xterm"' \ - --field=" ${translations[Credits]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click --normal gui_credits"' \ + --field=" ${translations[Reinstall PortProton]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!":"FBTN" '@bash -c "button_click --normal gui_pw_reinstall_pp"' \ + --field=" ${translations[Remove PortProton]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!":"FBTN" '@bash -c "button_click --normal gui_rm_portproton"' \ + --field=" ${translations[Update PortProton]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!":"FBTN" '@bash -c "button_click --normal gui_pw_update"' \ + --field=" ${translations[Changelog]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!":"FBTN" '@bash -c "button_click --normal open_changelog"' \ + --field=" ${translations[Change language]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!":"FBTN" '@bash -c "button_click --normal change_loc"' \ + --field=" ${translations[Global settings (user.conf)]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!":"FBTN" '@bash -c "button_click --normal 128"' \ + --field=" ${translations[Scripts from backup]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!":"FBTN" '@bash -c "button_click --normal gui_open_scripts_from_backup"' \ + --field=" Xterm!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!":"FBTN" '@bash -c "button_click --normal pw_start_cont_xterm"' \ + --field=" ${translations[Credits]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!":"FBTN" '@bash -c "button_click --normal gui_credits"' \ 2>/dev/null & "${pw_yad}" --plug=$KEY_MENU --tabnum="${PW_GUI_SORT_TABS[2]}" --form --columns=3 --align-buttons --separator=";" \ @@ -748,15 +747,15 @@ else --field=" 3D API : :CB" "${PW_DEFAULT_VULKAN_USE}" \ --field=" PREFIX : :CBE" "${PW_ADD_PREFIXES_TO_GUI}" \ --field=" WINE : :CB" "$(combobox_fix "${PW_WINE_USE}" "${PW_DEFAULT_WINE_USE}")" \ - --field="${translations[Create prefix backup]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"CFBTN" '@bash -c "button_click --normal pw_create_prefix_backup"' \ - --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 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"' \ - --field=" ${translations[Regedit]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"${translations[Run wine regedit]}":"FBTN" '@bash -c "button_click --normal WINEREG"' 1> "${PW_TMPFS_PATH}/tmp_yad_form_vulkan" 2>/dev/null & + --field="${translations[Create prefix backup]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!":"CFBTN" '@bash -c "button_click --normal pw_create_prefix_backup"' \ + --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 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"' \ + --field=" ${translations[Regedit]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!${translations[Run wine regedit]}":"FBTN" '@bash -c "button_click --normal WINEREG"' 1> "${PW_TMPFS_PATH}/tmp_yad_form_vulkan" 2>/dev/null & unset AI_TYPE AI_NAME AI_IMAGE AI_INFO AI_FILE_ARRAY AI_TRUE_FILE AI_FILE_UNSORTED AI_FILE_SORTED AI_FILE_ENG if [[ $AI_SKIP != 1 ]] ; then @@ -837,11 +836,11 @@ else --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \ --title "PortProton-${install_ver} (${scripts_install_ver}${BRANCH_VERSION})" \ --tab-pos="bottom" \ - --tab="${translations[AUTOINSTALLS]}"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" \ - --tab="${translations[EMULATORS]}"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" \ - --tab="${translations[WINE SETTINGS]}"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" \ - --tab="${translations[PORTPROTON SETTINGS]}"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" \ - --tab="${translations[INSTALLED]}"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" 2>/dev/null + --tab="${translations[AUTOINSTALLS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ + --tab="${translations[EMULATORS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ + --tab="${translations[WINE SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ + --tab="${translations[PORTPROTON SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ + --tab="${translations[INSTALLED]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" 2>/dev/null YAD_STATUS="$?" else "${pw_yad}" --key=$KEY_MENU --notebook --expand \ @@ -850,11 +849,11 @@ else --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \ --title "PortProton-${install_ver} (${scripts_install_ver}${BRANCH_VERSION})" \ --tab-pos="bottom" \ - --tab="${translations[INSTALLED]}"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" \ - --tab="${translations[AUTOINSTALLS]}"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" \ - --tab="${translations[EMULATORS]}"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" \ - --tab="${translations[WINE SETTINGS]}"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" \ - --tab="${translations[PORTPROTON SETTINGS]}"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" 2>/dev/null + --tab="${translations[INSTALLED]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ + --tab="${translations[AUTOINSTALLS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ + --tab="${translations[EMULATORS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ + --tab="${translations[WINE SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ + --tab="${translations[PORTPROTON SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" 2>/dev/null YAD_STATUS="$?" fi From 1a7fba22847b8c1cf1933dcba59cada47644e0f9 Mon Sep 17 00:00:00 2001 From: Htylol Date: Sat, 9 Nov 2024 15:35:52 +0500 Subject: [PATCH 25/62] update --- data_from_portwine/scripts/functions_helper | 24 ++++++++++----------- data_from_portwine/scripts/start.sh | 19 ++++++++-------- 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index acd3c78..f09bb8d 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -4652,9 +4652,9 @@ gui_proton_downloader () { if [[ "$1" != "silent" ]] ; then for GIVE_ALL_WINE in ${VERSION_WINE_GIT} ; do - for GIVE_WINE_URL in "${WINE_GE_CUSTOM[@]} ${PROTON_GE_GIT[@]} ${WINE_KRON4EK[@]} ${PROTON_PW_GIT[@]}" ; do - if [[ $GIVE_WINE_URL =~ $GIVE_ALL_WINE ]] ; then - export URL_VERSION_PROTON_GIT="${GIVE_WINE_URL}" + for GIVE_WINE_URL in "${WINE_GE_CUSTOM[@]}" "${PROTON_GE_GIT[@]}" "${WINE_KRON4EK[@]}" "${PROTON_PW_GIT[@]}" ; do + if [[ ${GIVE_WINE_URL^^} =~ ${GIVE_ALL_WINE^^} ]] ; then + export URL_VERSION_PROTON_GIT=$GIVE_WINE_URL fi done pw_download_get_wine "" @@ -4663,9 +4663,9 @@ gui_proton_downloader () { restart_pp else print_error "$PW_WINE_USE" - for GIVE_WINE_URL in "${WINE_GE_CUSTOM[@]} ${PROTON_GE_GIT[@]} ${WINE_KRON4EK[@]} ${PROTON_PW_GIT[@]}" ; do - if [[ $GIVE_WINE_URL =~ $PW_WINE_USE ]] ; then - export URL_VERSION_PROTON_GIT="${GIVE_WINE_URL}" + for GIVE_WINE_URL in "${WINE_GE_CUSTOM[@]}" "${PROTON_GE_GIT[@]}" "${WINE_KRON4EK[@]}" "${PROTON_PW_GIT[@]}" ; do + if [[ ${GIVE_WINE_URL^^} =~ ${PW_WINE_USE^^} ]] ; then + export URL_VERSION_PROTON_GIT=$GIVE_WINE_URL fi done pw_download_get_wine "" @@ -4787,9 +4787,9 @@ gui_edit_db () { ADD_CHK_BOX_EDIT_DB+="--field=${CHKBOX_SPACE}${int_to_boole_non_pw}!${!TMP_HELP_FOR_GUI}:D${THEME_CHKBOX}%${!int_to_boole}%" fi done - if [[ $CHECK_BOOLE_TRUE != 1 ]] ; then - ADD_CHK_BOX_EDIT_DB+="--field=${CHKBOX_SPACE}${int_to_boole_non_pw}!${!TMP_HELP_FOR_GUI}:${THEME_CHKBOX}%${!int_to_boole}%" - fi + fi + if [[ $CHECK_BOOLE_TRUE != 1 ]] ; then + ADD_CHK_BOX_EDIT_DB+="--field=${CHKBOX_SPACE}${int_to_boole_non_pw}!${!TMP_HELP_FOR_GUI}:${THEME_CHKBOX}%${!int_to_boole}%" fi done @@ -5344,9 +5344,9 @@ gui_dgvoodoo2 () { ADD_CHK_BOX_DGV2+="--field=${CHKBOX_SPACE}${int_to_boole_non_pw}!${!TMP_HELP_FOR_GUI}:D${THEME_CHKBOX}%${!int_to_boole}%" fi done - if [[ $CHECK_BOOLE_TRUE != 1 ]] ; then - ADD_CHK_BOX_DGV2+="--field=${CHKBOX_SPACE}${int_to_boole_non_pw}!${!TMP_HELP_FOR_GUI}:${THEME_CHKBOX}%${!int_to_boole}%" - fi + fi + if [[ $CHECK_BOOLE_TRUE != 1 ]] ; then + ADD_CHK_BOX_DGV2+="--field=${CHKBOX_SPACE}${int_to_boole_non_pw}!${!TMP_HELP_FOR_GUI}:${THEME_CHKBOX}%${!int_to_boole}%" fi done diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 1121d3c..3ad8f5f 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -40,7 +40,8 @@ source "$PORT_SCRIPTS_PATH/functions_helper" export PW_START_PID="$$" export NO_AT_BRIDGE="1" export GDK_BACKEND="x11" -export pw_full_command_line=("$0" $*) +IFS=' ' read -r -a pw_full_command_line <<< "$0 $*" +export pw_full_command_line export orig_IFS="$IFS" MISSING_DESKTOP_FILE="0" @@ -392,7 +393,7 @@ case "$1" in --debug) clear export PW_DEBUG="set -x" - /usr/bin/env bash -c ${pw_full_command_line[@]} 2>&1 | tee "$PORT_WINE_PATH/scripts-debug.log" & + /usr/bin/env bash -c "${pw_full_command_line[@]}" 2>&1 | tee "$PORT_WINE_PATH/scripts-debug.log" & exit 0 ;; --server-file-access) @@ -411,7 +412,7 @@ case "$1" in ;; --edit-db) # --edit-db /полный/путь/до/файла.exe PW_MANGOHUD=1 PW_VKBASALT=0 (и т.д) для примера - set_several_variables ${@:3} + set_several_variables "${@:3}" edit_db_from_gui $keys_all exit 0 ;; @@ -647,9 +648,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" - PW_AMOUNT_NEW_DESKTOP+=($AMOUNT_GENERATE_BUTTONS) + IFS=' ' read -r -a PW_AMOUNT_NEW_DESKTOP <<< "${PW_AMOUNT_NEW_DESKTOP[*]} $AMOUNT_GENERATE_BUTTONS" else - PW_AMOUNT_OLD_DESKTOP+=($AMOUNT_GENERATE_BUTTONS) + IFS=' ' read -r -a PW_AMOUNT_OLD_DESKTOP <<< "${PW_AMOUNT_OLD_DESKTOP[*]} $AMOUNT_GENERATE_BUTTONS" fi (( AMOUNT_GENERATE_BUTTONS++ )) fi @@ -775,14 +776,14 @@ else done < "$ai_file" AI_FILE="${ai_file//"$PORT_SCRIPTS_PATH/pw_autoinstall/"/}" AI_FILE_CHECK="$AI_FILE=$AI_AMOUNT_ARRAY" - AI_FILE_ARRAY+=($AI_FILE) + IFS=' ' read -r -a AI_FILE_ARRAY <<< "${AI_FILE_ARRAY[*]} $AI_FILE" if [[ $AI_TOP_GAMES =~ ${AI_FILE_CHECK//=*/} ]] ; then - AI_TRUE_FILE+=($AI_FILE_CHECK) + IFS=' ' read -r -a AI_TRUE_FILE <<< "${AI_TRUE_FILE[*]} $AI_FILE_CHECK" else if [[ ${AI_NAME["$AI_AMOUNT_ARRAY"]} =~ \(ENG\) ]] ; then - AI_FILE_ENG+=($AI_AMOUNT_ARRAY) + IFS=' ' read -r -a AI_FILE_ENG <<< "${AI_FILE_ENG[*]} $AI_AMOUNT_ARRAY" else - AI_FILE_UNSORTED+=($AI_AMOUNT_ARRAY) + IFS=' ' read -r -a AI_FILE_UNSORTED <<< "${AI_FILE_UNSORTED[*]} $AI_AMOUNT_ARRAY" fi fi (( AI_AMOUNT_ARRAY++ )) From 5862a63705334eed6608329ef107c536070ada7d Mon Sep 17 00:00:00 2001 From: Htylol Date: Sat, 9 Nov 2024 15:44:49 +0500 Subject: [PATCH 26/62] Dropped --- data_from_portwine/scripts/functions_helper | 14 ++-- data_from_portwine/scripts/start.sh | 90 ++++++++++----------- 2 files changed, 49 insertions(+), 55 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index f09bb8d..6444492 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -2774,7 +2774,7 @@ pw_create_gui_png () { fi fi - PORTPROTON_NAME="${PORTPROTON_NAME//(\`|\"|\'|\!)/}" + PORTPROTON_NAME="${PORTPROTON_NAME//(\`|\"|\'|\!)/})" export PORTPROTON_NAME edit_db_from_gui PORTPROTON_NAME FILE_DESCRIPTION fi @@ -4920,7 +4920,7 @@ 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 s/"cas:"// | sed s/":"/" "/g)" + IFS=' ' 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]} @@ -5507,8 +5507,8 @@ gui_gamescope () { GS_CB="CB" && GS_CBE="CBE" && GS_NUM="NUM" && GS_NUMN="NUMN" for int_to_boole in "${PW_GS_LIST[@]}" ; do if [[ "${!int_to_boole}" == "1" ]] - then export "${int_to_boole}"="TRUE" - else export "${int_to_boole}"="FALSE" + then export "$int_to_boole"="TRUE" + else export "$int_to_boole"="FALSE" fi TMP_HELP_FOR_GUI="${int_to_boole}_INFO" int_to_boole_non_pw="${int_to_boole//PW_GS/}" @@ -5526,8 +5526,8 @@ gui_gamescope () { GS_CB="DCB" && GS_CBE="DCBE" && GS_NUM="DNUM" && GS_NUMN="DNUMN" for int_to_boole in "${PW_GS_LIST[@]}" ; do if [[ "${!int_to_boole}" == "1" ]] - then export "${int_to_boole}"="TRUE" - else export "${int_to_boole}"="FALSE" + then export "$int_to_boole"="TRUE" + else export "$int_to_boole"="FALSE" fi TMP_HELP_FOR_GUI="${int_to_boole}_INFO" int_to_boole_non_pw="${int_to_boole//PW_GS/}" @@ -5710,7 +5710,7 @@ gui_userconf () { elif [[ $GUI_THEME == classic ]] ; then GUI_THEME=${translations[classic]} fi - if command -v gsettings ; then + if command -v gsettings &>/dev/null ; then YAD_GTK_THEME_CHECK=$(gsettings get org.gnome.desktop.interface gtk-theme) YAD_GTK_THEME_CHECK=${YAD_GTK_THEME_CHECK//\'/} if [[ -n $YAD_GTK_THEME_CHECK ]] ; then diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 3ad8f5f..dc379dc 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -340,8 +340,7 @@ if [[ $(basename "${portwine_exe,,}") =~ .ppack$ ]] ; then then NO_XATTRS_NEED="-no-xattrs" else NO_XATTRS_NEED="" fi - PW_PREFIX_NAME=$(basename "${1,,}" .ppack) - PW_PREFIX_NAME="${PW_PREFIX_NAME^^}" + PW_PREFIX_NAME=$(basename "${1^^}" .PPACK) cat << EOF > "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack.sh #!/usr/bin/env bash ${TMP_ALL_PATH} unsquashfs -f -d "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}" "$1" \ @@ -422,24 +421,19 @@ esac unset PW_ADD_PREFIXES_TO_GUI if [[ -d "${PORT_WINE_PATH}/data/prefixes/" ]] ; then - PW_PREFIX_NAME="${PW_PREFIX_NAME//[[:blank:]]/_}" for PAIG in "${PORT_WINE_PATH}"/data/prefixes/* ; do - if [[ "${PAIG//"${PORT_WINE_PATH}/data/prefixes/"/}" != "${PORTWINE_DB^^//[[:blank:]]/_}" ]] \ - && [[ "${PAIG//"${PORT_WINE_PATH}/data/prefixes/"/}" != "${PW_PREFIX_NAME}" ]] \ - && [[ "${PAIG//"${PORT_WINE_PATH}/data/prefixes/"/}" != "*" ]] + if [[ ! "${PAIG//"${PORT_WINE_PATH}/data/prefixes/"/}" =~ ^($PW_PREFIX_NAME|'*')$ ]] then PW_ADD_PREFIXES_TO_GUI="${PW_ADD_PREFIXES_TO_GUI}!${PAIG//"${PORT_WINE_PATH}/data/prefixes/"/}" fi done - PW_ADD_PREFIXES_TO_GUI="${PW_PREFIX_NAME^^}${PW_ADD_PREFIXES_TO_GUI}" + PW_ADD_PREFIXES_TO_GUI="${PW_PREFIX_NAME}${PW_ADD_PREFIXES_TO_GUI}" fi unset DIST_ADD_TO_GUI if [[ -d "${PORT_WINE_PATH}/data/dist/" ]] ; then for DAIG in "${PORT_WINE_PATH}"/data/dist/* ; do - if [[ "${DAIG//"${PORT_WINE_PATH}/data/dist/"/}" != "${PW_WINE_LG_VER}" ]] \ - && [[ "${DAIG//"${PORT_WINE_PATH}/data/dist/"/}" != "${PW_PROTON_LG_VER}" ]] \ - && [[ "${DAIG//"${PORT_WINE_PATH}/data/dist/"/}" != "*" ]] + if [[ ! "${DAIG//"${PORT_WINE_PATH}/data/dist/"/}" =~ ^($PW_WINE_LG_VER|$PW_PROTON_LG_VER|'*')$ ]] then DIST_ADD_TO_GUI="${DIST_ADD_TO_GUI}!${DAIG//"${PORT_WINE_PATH}/data/dist/"/}" fi @@ -457,7 +451,7 @@ SORT_NEWEST="${translations[Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)]}" SORT_G_NINE="${translations[Gallium Nine (DirectX 9 for MESA)]}" SORT_G_ZINK="${translations[Gallium Zink (OpenGL to Vulkan)]}" -case "${PW_VULKAN_USE}" in +case "$PW_VULKAN_USE" in 0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY!$SORT_G_ZINK!$SORT_G_NINE!$SORT_VULKAN" ;; 6) PW_DEFAULT_VULKAN_USE="$SORT_VULKAN!$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY!$SORT_G_ZINK!$SORT_G_NINE!$SORT_OPENGL" ;; 1) PW_DEFAULT_VULKAN_USE="$SORT_STABLE!$SORT_NEWEST!$SORT_LEGACY!$SORT_G_ZINK!$SORT_G_NINE!$SORT_OPENGL!$SORT_VULKAN" ;; @@ -479,11 +473,11 @@ else PW_DEFAULT_WINE_USE="${PW_PROTON_LG_VER}!${PW_WINE_LG_VER}${DIST_ADD_TO_GUI}!${translations[GET-OTHER-WINE]}" fi -if [[ -z "${PORTWINE_DB_FILE}" ]] ; then +if [[ -z "$PORTWINE_DB_FILE" ]] ; then unset PW_GUI_DISABLED_CS fi -if [[ -f "${portwine_exe}" ]] ; then +if [[ -f "$portwine_exe" ]] ; then unset TAB_MAIN_MENU if [[ "$RESTART_PP_USED" == "edit_db" ]] ; then unset RESTART_PP_USED @@ -492,34 +486,34 @@ if [[ -f "${portwine_exe}" ]] ; then unset RESTART_PP_USED gui_userconf fi - if [[ "${PW_GUI_DISABLED_CS}" != 1 ]] ; then + if [[ $PW_GUI_DISABLED_CS != 1 ]] ; then pw_create_gui_png - if ! grep -il "${portwine_exe}" "$PORT_WINE_PATH"/*.desktop &>/dev/null ; then + if ! grep -il "$portwine_exe" "$PORT_WINE_PATH"/*.desktop &>/dev/null ; then PW_SHORTCUT="${translations[CREATE SHORTCUT]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Create shortcut for select file...]}:100" else PW_SHORTCUT="${translations[CHANGE SHORTCUT]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Change shortcut for select file...]}:98" fi create_name_desktop - if [[ -z "${PW_COMMENT_DB}" ]] ; then + if [[ -z $PW_COMMENT_DB ]] ; then PW_COMMENT_DB="${translations[Launching]} $(print_wrapped "$PW_NAME_DESKTOP_PROXY" "50")$(seconds_to_time "$TIME_CURRENT")" else PW_COMMENT_DB="$PW_COMMENT_DB$(seconds_to_time "$TIME_CURRENT")" fi export KEY_START="$RANDOM" - if [[ "${PW_GUI_START}" == "NOTEBOOK" ]] ; then - "${pw_yad}" --plug=$KEY_START --tabnum=1 --form --separator=";" ${START_GUI_TYPE} \ - --gui-type-box="${START_GUI_TYPE_BOX}" --gui-type-layout="${START_GUI_TYPE_LAYOUT_UP}" \ - --gui-type-text="${START_GUI_TYPE_TEXT}" --gui-type-images="${START_GUI_TYPE_IMAGE}" \ - --image="${PW_ICON_FOR_YAD}" --text-align="center" --text "$PW_COMMENT_DB" \ - --field="3D API : :CB" "${PW_DEFAULT_VULKAN_USE}" \ - --field=" WINE : :CB" "$(combobox_fix "${PW_WINE_USE}" "${PW_DEFAULT_WINE_USE}")" \ - --field="PREFIX : :CBE" "${PW_ADD_PREFIXES_TO_GUI}" \ + if [[ $PW_GUI_START == "NOTEBOOK" ]] ; then + "${pw_yad}" --plug=$KEY_START --tabnum=1 --form --separator=";" $START_GUI_TYPE \ + --gui-type-box="$START_GUI_TYPE_BOX" --gui-type-layout="$START_GUI_TYPE_LAYOUT_UP" \ + --gui-type-text="$START_GUI_TYPE_TEXT" --gui-type-images="$START_GUI_TYPE_IMAGE" \ + --image="$PW_ICON_FOR_YAD" --text-align="center" --text "$PW_COMMENT_DB" \ + --field="3D API : :CB" "$PW_DEFAULT_VULKAN_USE" \ + --field=" WINE : :CB" "$(combobox_fix "$PW_WINE_USE" "$PW_DEFAULT_WINE_USE")" \ + --field="PREFIX : :CBE" "$PW_ADD_PREFIXES_TO_GUI" \ 1> "${PW_TMPFS_PATH}/tmp_yad_form_vulkan" 2>/dev/null & - "${pw_yad}" --plug=$KEY_START --tabnum=2 --form --columns="${START_GUI_NOTEBOOK_COLUMNS}" --align-buttons --homogeneous-column \ - --gui-type-layout="${START_GUI_TYPE_LAYOUT_NOTEBOOK}" \ + "${pw_yad}" --plug=$KEY_START --tabnum=2 --form --columns="$START_GUI_NOTEBOOK_COLUMNS" --align-buttons --homogeneous-column \ + --gui-type-layout="$START_GUI_TYPE_LAYOUT_NOTEBOOK" \ --field=" ${translations[Base settings]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Edit database file for]} ${PORTWINE_DB}":"FBTN" '@bash -c "button_click --start 118"' \ --field=" ${translations[Global settings]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Settings for user.conf]}":"FBTN" '@bash -c "button_click --start 128"' \ --field=" ${translations[Open directory]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Open directory with .ppdb file]}":"FBTN" '@bash -c "button_click --start open_game_folder"' \ @@ -529,8 +523,8 @@ if [[ -f "${portwine_exe}" ]] ; then --field=" GameScope!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Enable GameScope by default (Wayland micro compositor)]}":"FBTN" '@bash -c "button_click --start 126"' \ 2>/dev/null & - if [[ "${PW_YAD_FORM_TAB}" == "1" ]] \ - && [[ -n "${TAB_START}" ]] + if [[ "$PW_YAD_FORM_TAB" == "1" ]] \ + && [[ -n "$TAB_START" ]] then export TAB_START="2" unset PW_YAD_FORM_TAB @@ -538,10 +532,10 @@ if [[ -f "${portwine_exe}" ]] ; then export TAB_START="1" fi - "${pw_yad}" --key=$KEY_START --notebook --active-tab="${TAB_START}" \ + "${pw_yad}" --key=$KEY_START --notebook --active-tab="$TAB_START" \ --gui-type="settings-notebook" \ - --width="${PW_START_SIZE_W}" --tab-pos="${PW_TAB_POSITON}" \ - --title "PortProton-${install_ver} (${scripts_install_ver}${BRANCH_VERSION})" --expand \ + --width="$PW_START_SIZE_W" --tab-pos="$PW_TAB_POSITON" \ + --title "PortProton-$install_ver (${scripts_install_ver}${BRANCH_VERSION})" --expand \ --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \ --tab="${translations[GENERAL]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ --tab="${translations[SETTINGS]}!$PW_GUI_ICON_PATH/$TAB_SIZE.png!" \ @@ -552,18 +546,18 @@ if [[ -f "${portwine_exe}" ]] ; then PW_YAD_SET="$?" export PW_YAD_FORM_TAB="1" - elif [[ "${PW_GUI_START}" == "PANED" ]] ; then - "${pw_yad}" --plug=$KEY_START --tabnum=1 --form --separator=";" ${START_GUI_TYPE} \ - --gui-type-box="${START_GUI_TYPE_BOX}" --gui-type-layout="${START_GUI_TYPE_LAYOUT_UP}" \ - --gui-type-text="${START_GUI_TYPE_TEXT}" --gui-type-images="${START_GUI_TYPE_IMAGE}" \ - --image="${PW_ICON_FOR_YAD}" --text-align="center" --text "$PW_COMMENT_DB" \ - --field="3D API : :CB" "${PW_DEFAULT_VULKAN_USE}" \ - --field=" WINE : :CB" "$(combobox_fix "${PW_WINE_USE}" "${PW_DEFAULT_WINE_USE}")" \ - --field="PREFIX : :CBE" "${PW_ADD_PREFIXES_TO_GUI}" \ + elif [[ $PW_GUI_START == "PANED" ]] ; then + "${pw_yad}" --plug=$KEY_START --tabnum=1 --form --separator=";" $START_GUI_TYPE \ + --gui-type-box="$START_GUI_TYPE_BOX" --gui-type-layout="$START_GUI_TYPE_LAYOUT_UP" \ + --gui-type-text="$START_GUI_TYPE_TEXT" --gui-type-images="$START_GUI_TYPE_IMAGE" \ + --image="$PW_ICON_FOR_YAD" --text-align="center" --text "$PW_COMMENT_DB" \ + --field="3D API : :CB" "$PW_DEFAULT_VULKAN_USE" \ + --field=" WINE : :CB" "$(combobox_fix "$PW_WINE_USE" "$PW_DEFAULT_WINE_USE")" \ + --field="PREFIX : :CBE" "$PW_ADD_PREFIXES_TO_GUI" \ 1> "${PW_TMPFS_PATH}/tmp_yad_form_vulkan" 2>/dev/null & - "${pw_yad}" --plug=$KEY_START --tabnum=2 --form --columns="${START_GUI_PANED_COLUMNS}" \ - --gui-type-layout="${START_GUI_TYPE_LAYOUT_PANED}" \ + "${pw_yad}" --plug=$KEY_START --tabnum=2 --form --columns="$START_GUI_PANED_COLUMNS" \ + --gui-type-layout="$START_GUI_TYPE_LAYOUT_PANED" \ --align-buttons --homogeneous-row --homogeneous-column \ --field=" ${translations[Base settings]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Edit database file for]} ${PORTWINE_DB}":"FBTN" '@bash -c "button_click --start 118"' \ --field=" ${translations[Global settings]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Settings for user.conf]}":"FBTN" '@bash -c "button_click --start 128"' \ @@ -576,8 +570,8 @@ if [[ -f "${portwine_exe}" ]] ; then "${pw_yad}" --key=$KEY_START --paned \ --gui-type="settings-paned" \ - --width="${PW_START_SIZE_W}" --tab-pos="${PW_TAB_POSITON}" \ - --title "PortProton-${install_ver} (${scripts_install_ver}${BRANCH_VERSION})" \ + --width="$PW_START_SIZE_W" --tab-pos="$PW_TAB_POSITON" \ + --title "PortProton-$install_ver (${scripts_install_ver}${BRANCH_VERSION})" \ --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \ --button="${translations[MAIN MENU]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Main menu]}":128 \ --button="${PW_SHORTCUT}" \ @@ -588,7 +582,7 @@ if [[ -f "${portwine_exe}" ]] ; then case "$PW_YAD_SET" in 128) [[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB - PORTWINE_DB_FOR_UNSET=$(sed -n '/export/p' "${PORTWINE_DB_FILE}" | sed 's/\(export\|=.*\| \)//g') + PORTWINE_DB_FOR_UNSET=$(sed -n '/export/p' "$PORTWINE_DB_FILE" | sed 's/\(export\|=.*\| \)//g' | sort -u) for db_unset in $PORTWINE_DB_FOR_UNSET ; do unset "$db_unset" done @@ -744,10 +738,10 @@ else 2>/dev/null & "${pw_yad}" --plug=$KEY_MENU --tabnum="${PW_GUI_SORT_TABS[2]}" --form --columns=3 --align-buttons --separator=";" \ - --gui-type-layout="${MAIN_MENU_GUI_TYPE_LAYOUT}" \ - --field=" 3D API : :CB" "${PW_DEFAULT_VULKAN_USE}" \ - --field=" PREFIX : :CBE" "${PW_ADD_PREFIXES_TO_GUI}" \ - --field=" WINE : :CB" "$(combobox_fix "${PW_WINE_USE}" "${PW_DEFAULT_WINE_USE}")" \ + --gui-type-layout="$MAIN_MENU_GUI_TYPE_LAYOUT" \ + --field=" 3D API : :CB" "$PW_DEFAULT_VULKAN_USE" \ + --field=" PREFIX : :CBE" "$PW_ADD_PREFIXES_TO_GUI" \ + --field=" WINE : :CB" "$(combobox_fix "$PW_WINE_USE" "$PW_DEFAULT_WINE_USE")" \ --field="${translations[Create prefix backup]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png!":"CFBTN" '@bash -c "button_click --normal pw_create_prefix_backup"' \ --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"' \ From bde9d70a522f395e1b9b2670eed5e8a333d6989e Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Sat, 9 Nov 2024 14:52:11 +0300 Subject: [PATCH 27/62] fixed func: create_new_dir --- data_from_portwine/scripts/functions_helper | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index a7e74eb..78c998d 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -431,8 +431,9 @@ export -f try_remove_dir create_new_dir () { if [[ ! -d "$1" ]] ; then - mkdir -p "$1" && return 0 + mkdir -p "$1" || return 1 fi + return 0 } try_force_link_file () { From 4e060f821558aae0d05b3a436ca1c1dd16aae0b2 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Sat, 9 Nov 2024 15:08:55 +0300 Subject: [PATCH 28/62] change recomend dpi and added 80 dpi --- data_from_portwine/changelog_en | 1 + data_from_portwine/changelog_ru | 4 ++++ data_from_portwine/scripts/functions_helper | 4 ++-- data_from_portwine/scripts/start.sh | 3 ++- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/data_from_portwine/changelog_en b/data_from_portwine/changelog_en index 694b117..e722496 100755 --- a/data_from_portwine/changelog_en +++ b/data_from_portwine/changelog_en @@ -3,6 +3,7 @@ You can help us in the development of the project on the website: https://linux- Changelog: ###Scripts version 2371### / Date: 08.11.2024 / Download update size: 4 megabytes +* added auto-detection of application scaling, with the ability to change it in the global PP settings (thanks to Htylol) * FUTEX2 is disabled by default (breaks some games) * added auto-installation of the Saturn game (thanks to Dervart) * added the ability to select a dark/light theme in the global PP settings (thanks to Htylol) diff --git a/data_from_portwine/changelog_ru b/data_from_portwine/changelog_ru index 49cdaa3..89cde8c 100755 --- a/data_from_portwine/changelog_ru +++ b/data_from_portwine/changelog_ru @@ -2,7 +2,11 @@ ----------------------------------------- История изменений: +* множество оптимизаций скриптов (спасибо Htylol) +* уменьшено рекомендуемое масштабирование + ###Scripts version 2371### / Дата: 08.11.2024 / Размер скачиваемого обновления: 4 мегабайта +* добавлено автоопределение масштабирования приложений, с возможностью изменения в глобальных настройках PP (спасибо Htylol) * FUTEX2 отключен по умолчанию (ломает работу некоторых игр) * добавлена автоустановка игры Saturn (спасибо Dervart) * добавлена возможность выбора темной/светлой темы в глобальных настройках PP (спасибо Htylol) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 78c998d..d4414d6 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -1369,7 +1369,7 @@ recommend_dpi () { echo "disabled" return 1 fi - local dpi=$(( height / 10 )) + local dpi=$(( height / 11 )) (( dpi < 96 )) && local dpi="96" echo "$dpi" } @@ -5730,7 +5730,7 @@ gui_userconf () { "${pw_yad}" --plug=$KEY_USERCONF_GUI --tabnum="2" --form --columns=1 --separator="%" --homogeneous-row \ --gui-type-text="$PANED_GUI_TYPE_TEXT_DOWN" --gui-type-layout="$PANED_GUI_TYPE_LAYOUT_DOWN" \ --field="${translations[Choose a graphics card to run the game]}!${translations[Select which video card will be used to run the game (used for all running games and programs in PortProton)]} :CB" "$(combobox_fix --disabled "$GPU_VAR" "$GET_GPU_NAMES")" \ - --field="${translations[Force dpi]}!${translations[Here you can set forced dpi for applications wine]} :CB" "$(combobox_fix --disabled "$YAD_DPI_VAR" "${translations[Recommended value]}!96!120!144!168!192!216!240!264!288")" \ + --field="${translations[Force dpi]}!${translations[Here you can set forced dpi for applications wine]} :CB" "$(combobox_fix --disabled "$YAD_DPI_VAR" "${translations[Recommended value]}!80!96!120!144!168!192!216!240")" \ --field="${translations[Choice wine audio driver]}!${translations[Fixes sound popling if choice alsa]} :CB" "$(combobox_fix --disabled "$SOUND_DRIVER_VAR" "alsa!oss!pulse")" \ --field="${translations[Select PortProton theme]}!${translations[Allows you to select a theme for PortProton]} :CB" "$(combobox_fix "$GUI_THEME" "${translations[default]}!${translations[compact]}!${translations[classic]}")" \ --field="${translations[Select gtk theme]}!${translations[Allows you to select a theme for GTK.]} :CB" "$(combobox_fix "$GTK_THEME" "${YAD_GTK_THEME}Adwaita:${translations[light]}!Adwaita:${translations[dark]}!${translations[default]}")" \ diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index dc379dc..de0f607 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -245,10 +245,11 @@ if [[ ! $PW_GUI_START =~ (PANED|NOTEBOOK) ]] ; then fi # TODO:fixes_after_update -if fixes_after_update "2371: Reset PW_WINE_DPI_VALUE in user.conf" ; then +if fixes_after_update "2372: Reset PW_WINE_DPI_VALUE in user.conf" ; then sed -i '/export PW_WINE_DPI_VALUE=/d' "$USER_CONF" unset PW_WINE_DPI_VALUE fi + # choose wine dpi default if [[ -z $PW_WINE_DPI_VALUE ]] ; then echo 'export PW_WINE_DPI_VALUE="recommended"' >> "$USER_CONF" From 390e2c9f3e7fb0ceb200498db1160ddcf47bff99 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Sat, 9 Nov 2024 15:40:16 +0300 Subject: [PATCH 29/62] added and updated ppdb --- data_from_portwine/changelog_ru | 7 ++++++- data_from_portwine/scripts/portwine_db/GTAIV.ppdb | 2 +- data_from_portwine/scripts/portwine_db/MK10.ppdb | 7 +++++++ .../scripts/portwine_db/NieRAutomata.ppdb | 7 +++++++ data_from_portwine/scripts/portwine_db/RDR.ppdb | 10 ++++++++++ 5 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 data_from_portwine/scripts/portwine_db/MK10.ppdb create mode 100644 data_from_portwine/scripts/portwine_db/NieRAutomata.ppdb create mode 100644 data_from_portwine/scripts/portwine_db/RDR.ppdb diff --git a/data_from_portwine/changelog_ru b/data_from_portwine/changelog_ru index 89cde8c..a8eac4f 100755 --- a/data_from_portwine/changelog_ru +++ b/data_from_portwine/changelog_ru @@ -3,7 +3,12 @@ История изменений: * множество оптимизаций скриптов (спасибо Htylol) -* уменьшено рекомендуемое масштабирование +* уменьшено рекомендуемое масштабирование +* добавлены/обновлены файлы настроек для игр: + * NieR Automata (спасибо AlbiionDragon) + * GTA 4 (спасибо eljeyna и PORTWAINE) + * Mortal Kombat XL (спасибо Мэлс) + * Red Dead Redemption (спасибо SDR) ###Scripts version 2371### / Дата: 08.11.2024 / Размер скачиваемого обновления: 4 мегабайта * добавлено автоопределение масштабирования приложений, с возможностью изменения в глобальных настройках PP (спасибо Htylol) diff --git a/data_from_portwine/scripts/portwine_db/GTAIV.ppdb b/data_from_portwine/scripts/portwine_db/GTAIV.ppdb index 50d3c13..508b567 100644 --- a/data_from_portwine/scripts/portwine_db/GTAIV.ppdb +++ b/data_from_portwine/scripts/portwine_db/GTAIV.ppdb @@ -4,5 +4,5 @@ #Rating=1-5 ################################################ export LAUNCH_PARAMETERS="-nomemrestrict -norestrictions -percentvidmem 100 -availablevidmem 2048 -noprecache -novblank -heapsize 2097152" # Additional launch options -export PW_NO_ESYNC=1 +export PW_NO_ESYNC=0 export PW_NO_FSYNC=1 diff --git a/data_from_portwine/scripts/portwine_db/MK10.ppdb b/data_from_portwine/scripts/portwine_db/MK10.ppdb new file mode 100644 index 0000000..882bc6e --- /dev/null +++ b/data_from_portwine/scripts/portwine_db/MK10.ppdb @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +#Author: Mels +#MK10.exe +#Rating=1-5 +export PW_VULKAN_USE="2" +export PW_WINE_USE="WINE_LG" +export PORTPROTON_NAME="Mortal Kombat XL" diff --git a/data_from_portwine/scripts/portwine_db/NieRAutomata.ppdb b/data_from_portwine/scripts/portwine_db/NieRAutomata.ppdb new file mode 100644 index 0000000..398c5d2 --- /dev/null +++ b/data_from_portwine/scripts/portwine_db/NieRAutomata.ppdb @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +#Author: deck +#NieRAutomata.exe +#Rating=1-5 +export PW_VULKAN_USE="2" +export PW_WINE_USE="WINE_LG" +export PORTPROTON_NAME="NieRAutomata" diff --git a/data_from_portwine/scripts/portwine_db/RDR.ppdb b/data_from_portwine/scripts/portwine_db/RDR.ppdb new file mode 100644 index 0000000..7f9134b --- /dev/null +++ b/data_from_portwine/scripts/portwine_db/RDR.ppdb @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +#Author: prefix +#PlayRDR.exe +#Rating=1-5 +export PW_WINE_USE="WINE_LG" +export LAUNCH_PARAMETERS="-nomemrestrict -norestrictions -percentvidmem 100 -availablevidmem 2048 -noprecache -novblank -heapsize 2097152" +export PW_NO_ESYNC="0" +export PW_NO_FSYNC="1" +export PORTPROTON_NAME="PlayRDR" +export PW_VULKAN_USE="2" From cf1a1038f88345c1cab9a4fc69b9d5b57e09209f Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Sat, 9 Nov 2024 16:07:37 +0300 Subject: [PATCH 30/62] Scripts version 2372 --- data_from_portwine/changelog_en | 10 ++++++++++ data_from_portwine/changelog_ru | 2 ++ .../scripts/pw_autoinstall/PW_PLARIUM_PLAY | 6 ++---- data_from_portwine/scripts/var | 2 +- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/data_from_portwine/changelog_en b/data_from_portwine/changelog_en index e722496..518918e 100755 --- a/data_from_portwine/changelog_en +++ b/data_from_portwine/changelog_en @@ -2,6 +2,16 @@ You can help us in the development of the project on the website: https://linux- ---------------------------------------- Changelog: +###Scripts version 2372### / Date: 09.11.2024 / Download update size: 4 megabytes +* many script optimizations (thanks to Htylol) +*reduced recommended scaling +* added/updated settings files for games: + * NieR Automata (thanks to AlbiionDragon) + * GTA 4 (thanks to eljeyna and PORTWAINE) + * Mortal Kombat XL (thanks Mels) + * Red Dead Redemption (thanks SDR) +* fixed Plarium Play installation (thanks to A_V_Ilin) + ###Scripts version 2371### / Date: 08.11.2024 / Download update size: 4 megabytes * added auto-detection of application scaling, with the ability to change it in the global PP settings (thanks to Htylol) * FUTEX2 is disabled by default (breaks some games) diff --git a/data_from_portwine/changelog_ru b/data_from_portwine/changelog_ru index a8eac4f..64f951f 100755 --- a/data_from_portwine/changelog_ru +++ b/data_from_portwine/changelog_ru @@ -2,6 +2,7 @@ ----------------------------------------- История изменений: +###Scripts version 2372### / Дата: 09.11.2024 / Размер скачиваемого обновления: 4 мегабайта * множество оптимизаций скриптов (спасибо Htylol) * уменьшено рекомендуемое масштабирование * добавлены/обновлены файлы настроек для игр: @@ -9,6 +10,7 @@ * GTA 4 (спасибо eljeyna и PORTWAINE) * Mortal Kombat XL (спасибо Мэлс) * Red Dead Redemption (спасибо SDR) +* исправлена установка Plarium Play (спасибо A_V_Ilin) ###Scripts version 2371### / Дата: 08.11.2024 / Размер скачиваемого обновления: 4 мегабайта * добавлено автоопределение масштабирования приложений, с возможностью изменения в глобальных настройках PP (спасибо Htylol) diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_PLARIUM_PLAY b/data_from_portwine/scripts/pw_autoinstall/PW_PLARIUM_PLAY index fb99098..6528a2a 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_PLARIUM_PLAY +++ b/data_from_portwine/scripts/pw_autoinstall/PW_PLARIUM_PLAY @@ -9,12 +9,11 @@ export LAUNCH_PARAMETERS=("/s" ) export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/plarium_play_setup.exe" export PW_WINDOWS_VER="10" -# export PW_DLL_INSTALL="dotnet461" export PW_PREFIX_NAME="DOTNET" - +export PORTWINE_CREATE_SHORTCUT_NAME="Plarium Play" start_portwine -if try_download "https://plarium.com/services/api/downloads/desktop?lid=1&arc=64&os=windows" "${PW_AUTOINSTALL_EXE}" no_mirror +if try_download "https://installer.plarium.com/desktop?lid=2&arc=64&os=windows" "${PW_AUTOINSTALL_EXE}" no_mirror then pw_start_progress_bar_install_game "Plarium Play." pw_kill_autostart PlariumPlay.exe & @@ -24,7 +23,6 @@ then try_remove_file "${portwine_exe}.ppdb" kill_portwine pw_stop_progress_bar - export PORTWINE_CREATE_SHORTCUT_NAME="Plarium Play" portwine_create_shortcut fi stop_portwine diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index d1cc28c..f4716f9 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -1,6 +1,6 @@ #!/usr/bin/env bash #Author: Castro-Fidel (linux-gaming.ru) -#SCRIPTS_NEXT_VERSION=2371 +#SCRIPTS_NEXT_VERSION=2372 #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" From 89eefcc892bf2683c663149c4ee068d88e0558d6 Mon Sep 17 00:00:00 2001 From: Htylol Date: Sun, 10 Nov 2024 13:35:06 +0500 Subject: [PATCH 31/62] Added mega_bash_func in PortProton --- data_from_portwine/scripts/functions_helper | 140 +++++++++++++++++++- 1 file changed, 135 insertions(+), 5 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index d4414d6..567caff 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -406,6 +406,136 @@ try_copy_file_with_checksums () { } export -f try_copy_file_with_checksums +mega_bash_function () { + local grep_with_i grep_with_s sed_with_r find_name directory find_file found_successfully + local sed_with_r_before sed_with_r_after sed_view variable sed grep_use sed_use sed_global + local find_file_old first_command sed_with_circumflex sed_with_dollar + if [[ -n $1 && $1 =~ ^--ls$ ]] ; then + shift + if [[ $1 =~ \/ ]] ; then + directory=$1 ; shift + else + directory=$PWD + fi + elif [[ -n $1 && $1 =~ ^--echo$ ]] ; then + shift + variable=$(eval "echo \$1") + find_file=$variable ; shift + else + return 1 + fi + sed_grep_on_bash () { + [[ $first_command == grep ]] && find_file_old=$find_file + if [[ -n $sed_with_r ]] ; then + if [[ $sed_with_r =~ ^s\| ]] ; then + sed_view='|' + elif [[ $sed_with_r =~ ^s\/ ]] ; then + sed_view='/' + fi + sed_with_r=${sed_with_r/s${sed_view}/} + sed_with_r_before=${sed_with_r/${sed_view}*/} + if [[ $sed_with_r_before =~ ^('(^'|'^') ]] ; then + sed_with_r_before=${sed_with_r_before//^/} + sed_with_circumflex='^' + fi + if [[ $sed_with_r_before =~ ('$)'|'$')$ ]] ; then + sed_with_r_before=${sed_with_r_before//$/} + sed_with_dollar='$' + fi + sed_with_r_after=${sed_with_r/${sed_view}/#@_@#} + sed_with_r_after=${sed_with_r_after/*#@_@#} + sed_with_r_after=${sed_with_r_after/${sed_view}*/} + [[ ${sed_with_r//*${sed_view}g/true} == true ]] && sed_global=1 + if [[ $sed_with_r_before == \(*\) ]] ; then + sed_with_r_before=${sed_with_r_before//\(/} + sed_with_r_before=${sed_with_r_before//\)/} + IFS='|' + for sed in $sed_with_r_before ; do + if [[ $find_file =~ ${sed_with_circumflex}${sed}${sed_with_dollar} ]] ; then + if [[ $sed_global == 1 ]] ; then + find_file=${find_file//$sed/$sed_with_r_after} + else + find_file=${find_file/$sed/$sed_with_r_after} + fi + fi + done + IFS="$orig_IFS" + else + if [[ $sed_global == 1 ]] ; then + find_file=${find_file//$sed_with_r_before/$sed_with_r_after} + else + find_file=${find_file/$sed_with_r_before/$sed_with_r_after} + fi + fi + fi + + if [[ $grep_with_i == true ]] ; then + [[ $first_command == grep ]] && find_file_old=${find_file_old,,} + find_file=${find_file,,} + find_name=${find_name,,} + fi + if [[ -n $find_file_old && $find_file_old =~ $find_name ]] \ + || [[ $first_command == sed && $find_file =~ $find_name ]] \ + || [[ -z $find_name ]] ; then + [[ $grep_with_s != true ]] && echo "$find_file" + found_successfully=1 + fi + } + while true ; do + unset grep_use sed_use + if [[ $1 == --grep ]] ; then + shift + [[ -n $1 ]] && grep_use=1 + while true ; do + # аналог grep -i + if [[ $1 == "-i" ]] ; then + grep_with_i=true ; shift ; continue + fi + # не выводить найденные файлы (silent) + if [[ $1 == "-s" ]] ; then + grep_with_s=true ; shift ; continue + fi + break + done + find_name=$1 ; shift + fi + if [[ $1 == --sed ]] ; then + shift + [[ -n $1 ]] && sed_use=1 + while true ; do + # аналог sed -r + if [[ $1 == "-r" ]] ; then + shift + sed_with_r=$1 ; shift ; continue + fi + break + done + fi + if [[ $grep_use == 1 ]] ; then + readonly first_command=grep 2>/dev/null + continue + fi + if [[ $sed_use == 1 ]] ; then + readonly first_command=sed 2>/dev/null + continue + fi + break + done + if [[ -n $directory ]] ; then + for find_file in "$directory"/* ; do + find_file=${find_file//*\//} + sed_grep_on_bash + done + elif [[ -n $variable ]] ; then + sed_grep_on_bash + fi + 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" @@ -1518,20 +1648,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 $(mega_bash_function --ls "$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 $(mega_bash_function --ls "$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 $(mega_bash_function --ls "$WINEDIR" --sed -r "s/^(bin|lib|lib64|share|version)$//g") ; do rm -fr "${WINEDIR}/$clear_dist_files" done fi @@ -2763,7 +2893,7 @@ pw_create_gui_png () { if [[ "$PW_PRODUCTNAME" =~ (Launcher|RU) ]] then - PW_PRODUCTNAME="${PW_PRODUCTNAME//(Launcher|RU)/}" + mega_bash_function --echo "$PW_PRODUCTNAME" --sed -r "s/(Launcher|RU)//g/" fi if [[ -n "$PW_PRODUCTNAME" ]] \ @@ -2775,7 +2905,7 @@ pw_create_gui_png () { fi fi - PORTPROTON_NAME="${PORTPROTON_NAME//(\`|\"|\'|\!)/}" + mega_bash_function --echo "$PW_PRODUCTNAME" --sed -r "s/(\`|\"|\'|\!)//g/" export PORTPROTON_NAME edit_db_from_gui PORTPROTON_NAME FILE_DESCRIPTION fi From 50ff3751624a720eb241ac1e32a5d9b9c364667f Mon Sep 17 00:00:00 2001 From: Htylol Date: Sun, 10 Nov 2024 15:39:37 +0500 Subject: [PATCH 32/62] convert to lsbash --- data_from_portwine/scripts/functions_helper | 163 ++++---------------- 1 file changed, 34 insertions(+), 129 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 567caff..1e2d38a 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -406,129 +406,34 @@ try_copy_file_with_checksums () { } export -f try_copy_file_with_checksums -mega_bash_function () { - local grep_with_i grep_with_s sed_with_r find_name directory find_file found_successfully - local sed_with_r_before sed_with_r_after sed_view variable sed grep_use sed_use sed_global - local find_file_old first_command sed_with_circumflex sed_with_dollar - if [[ -n $1 && $1 =~ ^--ls$ ]] ; then - shift - if [[ $1 =~ \/ ]] ; then - directory=$1 ; shift - else - directory=$PWD - fi - elif [[ -n $1 && $1 =~ ^--echo$ ]] ; then - shift - variable=$(eval "echo \$1") - find_file=$variable ; shift +lsbash () { + local grep_with_i find_name directory find_file found_successfully find_file_old + if [[ $1 =~ \/ ]] ; then + directory=$1 ; shift else - return 1 + directory=$PWD fi - sed_grep_on_bash () { - [[ $first_command == grep ]] && find_file_old=$find_file - if [[ -n $sed_with_r ]] ; then - if [[ $sed_with_r =~ ^s\| ]] ; then - sed_view='|' - elif [[ $sed_with_r =~ ^s\/ ]] ; then - sed_view='/' - fi - sed_with_r=${sed_with_r/s${sed_view}/} - sed_with_r_before=${sed_with_r/${sed_view}*/} - if [[ $sed_with_r_before =~ ^('(^'|'^') ]] ; then - sed_with_r_before=${sed_with_r_before//^/} - sed_with_circumflex='^' - fi - if [[ $sed_with_r_before =~ ('$)'|'$')$ ]] ; then - sed_with_r_before=${sed_with_r_before//$/} - sed_with_dollar='$' - fi - sed_with_r_after=${sed_with_r/${sed_view}/#@_@#} - sed_with_r_after=${sed_with_r_after/*#@_@#} - sed_with_r_after=${sed_with_r_after/${sed_view}*/} - [[ ${sed_with_r//*${sed_view}g/true} == true ]] && sed_global=1 - if [[ $sed_with_r_before == \(*\) ]] ; then - sed_with_r_before=${sed_with_r_before//\(/} - sed_with_r_before=${sed_with_r_before//\)/} - IFS='|' - for sed in $sed_with_r_before ; do - if [[ $find_file =~ ${sed_with_circumflex}${sed}${sed_with_dollar} ]] ; then - if [[ $sed_global == 1 ]] ; then - find_file=${find_file//$sed/$sed_with_r_after} - else - find_file=${find_file/$sed/$sed_with_r_after} - fi - fi - done - IFS="$orig_IFS" - else - if [[ $sed_global == 1 ]] ; then - find_file=${find_file//$sed_with_r_before/$sed_with_r_after} - else - find_file=${find_file/$sed_with_r_before/$sed_with_r_after} - fi - fi + if [[ $1 == --grep ]] ; then + shift + # аналог grep -i + if [[ $1 == "-i" ]] ; then + grep_with_i=true ; shift fi - + find_name=$1 + fi + for find_file in "$directory"/* ; do + find_file=${find_file//*\//} + find_file_old=$find_file if [[ $grep_with_i == true ]] ; then - [[ $first_command == grep ]] && find_file_old=${find_file_old,,} find_file=${find_file,,} find_name=${find_name,,} fi - if [[ -n $find_file_old && $find_file_old =~ $find_name ]] \ - || [[ $first_command == sed && $find_file =~ $find_name ]] \ + if [[ $find_file =~ $find_name ]] \ || [[ -z $find_name ]] ; then - [[ $grep_with_s != true ]] && echo "$find_file" + echo "$find_file_old" found_successfully=1 fi - } - while true ; do - unset grep_use sed_use - if [[ $1 == --grep ]] ; then - shift - [[ -n $1 ]] && grep_use=1 - while true ; do - # аналог grep -i - if [[ $1 == "-i" ]] ; then - grep_with_i=true ; shift ; continue - fi - # не выводить найденные файлы (silent) - if [[ $1 == "-s" ]] ; then - grep_with_s=true ; shift ; continue - fi - break - done - find_name=$1 ; shift - fi - if [[ $1 == --sed ]] ; then - shift - [[ -n $1 ]] && sed_use=1 - while true ; do - # аналог sed -r - if [[ $1 == "-r" ]] ; then - shift - sed_with_r=$1 ; shift ; continue - fi - break - done - fi - if [[ $grep_use == 1 ]] ; then - readonly first_command=grep 2>/dev/null - continue - fi - if [[ $sed_use == 1 ]] ; then - readonly first_command=sed 2>/dev/null - continue - fi - break done - if [[ -n $directory ]] ; then - for find_file in "$directory"/* ; do - find_file=${find_file//*\//} - sed_grep_on_bash - done - elif [[ -n $variable ]] ; then - sed_grep_on_bash - fi if [[ $found_successfully == 1 ]] ; then return 0 else @@ -1623,7 +1528,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^^}" @@ -1631,7 +1536,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 @@ -1648,20 +1553,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 $(mega_bash_function --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 $(mega_bash_function --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 $(mega_bash_function --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 @@ -1942,7 +1847,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 @@ -2033,8 +1938,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 @@ -2184,9 +2089,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 @@ -2217,9 +2122,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 @@ -2346,7 +2251,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}') @@ -2386,7 +2291,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}') @@ -2435,7 +2340,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 @@ -2893,7 +2798,7 @@ pw_create_gui_png () { if [[ "$PW_PRODUCTNAME" =~ (Launcher|RU) ]] then - mega_bash_function --echo "$PW_PRODUCTNAME" --sed -r "s/(Launcher|RU)//g/" + PW_PRODUCTNAME=$(echo "$PW_PRODUCTNAME" | sed -r "s/(Launcher|RU)//g") fi if [[ -n "$PW_PRODUCTNAME" ]] \ @@ -2905,7 +2810,7 @@ pw_create_gui_png () { fi fi - mega_bash_function --echo "$PW_PRODUCTNAME" --sed -r "s/(\`|\"|\'|\!)//g/" + PW_PRODUCTNAME=$(echo "$PW_PRODUCTNAME" | sed -r "s/(\`|\"|'|\!)//g") export PORTPROTON_NAME edit_db_from_gui PORTPROTON_NAME FILE_DESCRIPTION fi From 8d56c9c74ccfbf395fe0e0a8463555279ab328d0 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Sun, 10 Nov 2024 15:44:26 +0300 Subject: [PATCH 33/62] updated PROTON_LG to 9-19 --- data_from_portwine/changelog_ru | 7 +++++++ data_from_portwine/scripts/var | 6 +++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/data_from_portwine/changelog_ru b/data_from_portwine/changelog_ru index 64f951f..965149f 100755 --- a/data_from_portwine/changelog_ru +++ b/data_from_portwine/changelog_ru @@ -2,6 +2,13 @@ ----------------------------------------- История изменений: +###Scripts version 2373### / Дата: 10.11.2024 / Размер скачиваемого обновления: 215 мегабайт +* обновлен PROTON_LG до версии "9-19" +* обновлены версии: + * DXVK_GIT "2.4.1-446" (совместно с dxvk-nvapi) + * VKD3D_GIT "1.1-4271" (совместно vkd3d-shader) +* исправлена работа игры Black Desert Online с новейшими версиями dxvk и vkd3d + ###Scripts version 2372### / Дата: 09.11.2024 / Размер скачиваемого обновления: 4 мегабайта * множество оптимизаций скриптов (спасибо Htylol) * уменьшено рекомендуемое масштабирование diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index f4716f9..357ec74 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -49,7 +49,7 @@ export PW_FAKE_DLSS_VER="230506" export PW_FAKE_DLSS_3_VER="090" export PW_GALLIUM_NINE_VER="0.9" ###WINE_AND_PROTON_LG### -export PW_PROTON_LG_VER="PROTON_LG_9-18" +export PW_PROTON_LG_VER="PROTON_LG_9-19" export PW_WINE_LG_VER="WINE_LG_9-12-2" export PW_WINE_FULLSCREEN_FSR="1" export WINE_FULLSCREEN_FSR_MODE="ultra" @@ -58,9 +58,9 @@ export PW_VULKAN_USE="2" export VKD3D_LIMIT_TESS_FACTORS="64" export DXVK_LEGACY_VER="1.6.1" export DXVK_STABLE_VER="1.10.3-28" -export DXVK_GIT_VER="2.4.1-393" +export DXVK_GIT_VER="2.4.1-446" export VKD3D_STABLE_VER="1.1-2602" -export VKD3D_GIT_VER="1.1-4252" +export VKD3D_GIT_VER="1.1-4271" ###VKBASALT### export PW_VKBASALT_EFFECTS="Curves:cas" export PW_VKBASALT_FFX_CAS="0.50" From 0f71e02c0e78d87039bd0469521222c24ad92827 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Sun, 10 Nov 2024 16:04:45 +0300 Subject: [PATCH 34/62] added link icu*68 files to pfx --- data_from_portwine/scripts/functions_helper | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index d4414d6..de8f53a 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -2956,15 +2956,20 @@ start_portwine () { pw_wineboot () { LIST_NATIVE_WINE_DLL_LINKS="winevulkan ir50_32 amd_ags_x64 wined3d vulkan-1" - for change_wine_dll in $LIST_NATIVE_WINE_DLL_LINKS ; do - try_force_link_file "${WINEDIR}/lib64/wine/x86_64-windows/${change_wine_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${change_wine_dll}.dll" - try_force_link_file "${WINEDIR}/lib/wine/i386-windows/${change_wine_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${change_wine_dll}.dll" + for dll in $LIST_NATIVE_WINE_DLL_LINKS ; do + try_force_link_file "${WINEDIR}/lib64/wine/x86_64-windows/${dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${dll}.dll" + try_force_link_file "${WINEDIR}/lib/wine/i386-windows/${dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${dll}.dll" done LIST_NATIVE_WINE_DLL_COPY="atl100 ntdll shell32" - for change_wine_dll in $LIST_NATIVE_WINE_DLL_COPY ; do - try_copy_file "${WINEDIR}/lib64/wine/x86_64-windows/${change_wine_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${change_wine_dll}.dll" - try_copy_file "${WINEDIR}/lib/wine/i386-windows/${change_wine_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${change_wine_dll}.dll" + for dll in $LIST_NATIVE_WINE_DLL_COPY ; do + try_copy_file "${WINEDIR}/lib64/wine/x86_64-windows/${dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${dll}.dll" + try_copy_file "${WINEDIR}/lib/wine/i386-windows/${dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${dll}.dll" + done + + LIST_ICU_DLL_LINKS="icuin68 icuuc68 icudt68" + for dll in $LIST_ICU_DLL_LINKS ; do + try_force_link_file "${WINEDIR}/lib64/icu/${dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${dll}.dll" done print_info "Used wineboot $@ for prefix: ${PW_PREFIX_NAME}" From 370b1c28651cc913b5558343da38ca1390fc99a5 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Sun, 10 Nov 2024 16:46:28 +0300 Subject: [PATCH 35/62] added more variables --- data_from_portwine/scripts/functions_helper | 21 ++++++++++++++++----- data_from_portwine/scripts/var | 4 ---- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index de8f53a..4d8f3d0 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -2939,10 +2939,11 @@ start_portwine () { fi check_variables VKD3D_DEBUG none + check_variables VKD3D_SHADER_DEBUG none check_variables DXVK_LOG_LEVEL none + check_variables DXVK_NVAPI_LOG_LEVEL none check_variables VK_LOADER_DEBUG none check_variables VKBASALT_LOG_LEVEL none - check_variables DXVK_NVAPI_LOG_LEVEL none if [[ "${PW_LOG}" == 1 ]] \ || [[ -n "$PW_DEBUG" ]] then @@ -3044,6 +3045,18 @@ start_portwine () { check_variables WINEFSYNC_FUTEX2 0 fi + # export WINE_SIMULATE_ASYNC_READ=1 + # export WINE_FSYNC_SIMULATE_SCHED_QUANTUM=1 + # export WINE_ALERT_SIMULATE_SCHED_QUANTUM=1 + # export WINE_FSYNC_YIELD_TO_WAITERS=1 + # export WINE_KERNEL_STACK_SIZE=64 + # export WINE_DISABLE_KERNEL_WRITEWATCH=1 + # export WINE_SIMULATE_WRITECOPY="1" + + if [[ "${PW_NO_WRITE_WATCH}" == 1 ]] ; then + export WINE_DISABLE_WRITE_WATCH="1" + fi + if [[ "${PW_FORCE_LARGE_ADDRESS_AWARE}" == 1 ]] then export WINE_LARGE_ADDRESS_AWARE="1" else export WINE_LARGE_ADDRESS_AWARE="0" @@ -3054,13 +3067,11 @@ start_portwine () { export __GL_ExtensionStringVersion="17700" #nvidia override fi - if [[ "${PW_NO_WRITE_WATCH}" == 1 ]] ; then - export WINE_DISABLE_WRITE_WATCH="1" - fi - if [[ "${PW_VULKAN_NO_ASYNC}" == 1 ]] ; then export RADV_DEBUG+="llvm " var_vkd3d_config_update single_queue + else + export DXVK_ASYNC="1" fi enabled_fake_nvidia_videocard () diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index 357ec74..7a9a0cf 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -38,10 +38,6 @@ export PW_GPU_USE="disabled" export PW_LOCALE_SELECT="disabled" export PW_DINPUT_PROTOCOL="0" export STAGING_SHARED_MEMORY="1" -export STAGING_WRITECOPY="0" -###GTK_CONFIG### -# export GTK_DATA_PREFIX= -# export GTK_THEME="Adwaita:dark" ###DEFAULT_WINE### export PW_WINE_USE="PROTON_LG" export PW_PLUGINS_VER="_v17" From af3bddf5b33ec36f65725c909ead217fcff7abef Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Sun, 10 Nov 2024 16:57:12 +0300 Subject: [PATCH 36/62] Scripts version 2373 --- data_from_portwine/changelog_en | 7 +++++++ data_from_portwine/scripts/var | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/data_from_portwine/changelog_en b/data_from_portwine/changelog_en index 518918e..8ed84b3 100755 --- a/data_from_portwine/changelog_en +++ b/data_from_portwine/changelog_en @@ -2,6 +2,13 @@ You can help us in the development of the project on the website: https://linux- ---------------------------------------- Changelog: +###Scripts version 2373### / Date: 10.11.2024 / Download update size: 215 megabytes +* updated PROTON_LG to version "9-19" +* updated versions: + * DXVK_GIT "2.4.1-446" (shared with dxvk-nvapi) + * VKD3D_GIT "1.1-4271" (shared with vkd3d-shader) +* fixed the work of the Black Desert Online game with the latest versions of dxvk and vkd3d + ###Scripts version 2372### / Date: 09.11.2024 / Download update size: 4 megabytes * many script optimizations (thanks to Htylol) *reduced recommended scaling diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index 7a9a0cf..328519c 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -1,6 +1,6 @@ #!/usr/bin/env bash #Author: Castro-Fidel (linux-gaming.ru) -#SCRIPTS_NEXT_VERSION=2372 +#SCRIPTS_NEXT_VERSION=2373 #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" From 76ebfaaa2bcafe8a121ff45daf1b8304cadcd093 Mon Sep 17 00:00:00 2001 From: Htylol Date: Mon, 11 Nov 2024 05:01:46 +0500 Subject: [PATCH 37/62] added grep -v --- data_from_portwine/scripts/functions_helper | 98 ++++++++++++++------- data_from_portwine/scripts/start.sh | 17 ++-- 2 files changed, 74 insertions(+), 41 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 1e2d38a..8fcb167 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -407,32 +407,65 @@ try_copy_file_with_checksums () { export -f try_copy_file_with_checksums lsbash () { - local grep_with_i find_name directory find_file found_successfully find_file_old + 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 - if [[ $1 == --grep ]] ; then - shift - # аналог grep -i - if [[ $1 == "-i" ]] ; then - grep_with_i=true ; shift - fi - find_name=$1 - fi - for find_file in "$directory"/* ; do - find_file=${find_file//*\//} + grep_find_file1 () { find_file_old=$find_file if [[ $grep_with_i == true ]] ; then find_file=${find_file,,} find_name=${find_name,,} fi - if [[ $find_file =~ $find_name ]] \ - || [[ -z $find_name ]] ; then - echo "$find_file_old" - found_successfully=1 + 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 @@ -1429,7 +1462,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 } @@ -1938,8 +1971,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 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}") + 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 @@ -2089,9 +2122,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 lsbash "${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 $(lsbash "${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 @@ -2122,9 +2155,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 lsbash "${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 $(lsbash "${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 @@ -6044,16 +6077,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' ' ')" - 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}') @@ -6147,22 +6179,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 } @@ -6173,7 +6205,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 } diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index de0f607..376aa9a 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -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 @@ -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 From abe678c908d54ad55c33ec224137ac88e62db4f6 Mon Sep 17 00:00:00 2001 From: Htylol Date: Mon, 11 Nov 2024 11:32:29 +0500 Subject: [PATCH 38/62] dropped extra IFS and change <<< to < < --- data_from_portwine/scripts/functions_helper | 52 ++++++++++----------- data_from_portwine/scripts/start.sh | 10 ++-- 2 files changed, 31 insertions(+), 31 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 8fcb167..33ac4cf 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -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}" @@ -265,7 +265,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" @@ -606,9 +606,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 @@ -951,7 +951,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 /} @@ -968,7 +968,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 @@ -990,7 +990,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 @@ -1002,7 +1002,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 @@ -1374,7 +1374,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 @@ -1386,7 +1386,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 @@ -1448,7 +1448,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 @@ -2441,7 +2441,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 @@ -2887,8 +2887,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 @@ -4542,7 +4542,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" @@ -4551,7 +4551,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" @@ -4560,7 +4560,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" @@ -4569,7 +4569,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" @@ -4934,7 +4934,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]}" @@ -4988,8 +4988,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]} @@ -5493,7 +5493,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]}" @@ -5661,7 +5661,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]}" @@ -5998,7 +5998,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 @@ -6083,7 +6083,7 @@ pw_auto_create_shortcut () { 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 if command -v exiftool &>/dev/null ; then @@ -6841,7 +6841,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) @@ -6861,7 +6861,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 \ diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 376aa9a..3524fc6 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -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 @@ -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: /}" From 20d89292477f3ed03d70cc60dc62233e329cee86 Mon Sep 17 00:00:00 2001 From: Htylol Date: Mon, 11 Nov 2024 11:53:49 +0500 Subject: [PATCH 39/62] changes for local --- data_from_portwine/scripts/functions_helper | 30 +++++++++------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 33ac4cf..fcd1aea 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -73,8 +73,7 @@ set_several_variables () { key=${1//=*/} value=${1//*=/} keys_all+="$key " - export "$key"="$value" - shift + export "$key"="$value" ; shift done } @@ -720,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 @@ -738,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 @@ -754,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 \ @@ -1438,7 +1432,7 @@ recommend_dpi () { return 1 fi local dpi=$(( height / 11 )) - (( dpi < 96 )) && local dpi="96" + (( dpi < 96 )) && dpi="96" echo "$dpi" } @@ -5332,7 +5326,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 From 9d6fe1377c5de52c08cd7a3b05048ee07dff54ee Mon Sep 17 00:00:00 2001 From: Htylol Date: Tue, 12 Nov 2024 03:12:09 +0500 Subject: [PATCH 40/62] Fixes gamescope launch --- data_from_portwine/scripts/functions_helper | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 4d8f3d0..831dfc9 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -3995,7 +3995,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 From 3d21da0ef2081c87227a0826da17e9d27a2a8ed1 Mon Sep 17 00:00:00 2001 From: Htylol Date: Tue, 12 Nov 2024 07:54:13 +0500 Subject: [PATCH 41/62] Changes for LAUNCH_PARAMETERS --- data_from_portwine/scripts/functions_helper | 46 ++++++++++----------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 831dfc9..268594d 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -307,7 +307,7 @@ EOF msgid=${msgid//\"\"/} msgid=${msgid//#*/} msgid=${msgid//"*"/#_#} - if [[ $msgid != "" ]] ; then + if [[ -n $msgid ]] ; then if [[ -z $msgstr ]] ; then msgstr="$msgid" fi @@ -1230,8 +1230,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 +1248,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 @@ -4042,7 +4042,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 +4061,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 +4089,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 +4108,7 @@ pw_run () { ${PW_MANGOHUD_SLR} \ ${PW_DISPLAY} \ ${PW_INHIBIT_SLR}\ - "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} + "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS} wait_wineserver fi fi @@ -4116,7 +4116,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 +4124,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}') @@ -4843,9 +4843,7 @@ A brief instruction: * library=n,b - use WINDOWS library and then WINE * library=b,n - use WINE library and then WINDOWS * 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 .exe file, just like you would add an argument in a shortcut on a WINDOWS 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 .exe file, just like you would add an argument in a shortcut on a WINDOWS 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")" \ @@ -4897,12 +4895,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 )))" From 5746a7f9d0d235a9675ca23929d8cc7a95bfb04b Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Tue, 12 Nov 2024 15:10:53 +0300 Subject: [PATCH 42/62] uodated NVAPI func. --- data_from_portwine/scripts/functions_helper | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 4d8f3d0..e1ae26b 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -3095,7 +3095,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 +3131,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 +3138,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 @@ -3654,6 +3655,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 From 678b297c2bc5ed613f662d48801e6ba626ebbbe8 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Tue, 12 Nov 2024 15:17:46 +0300 Subject: [PATCH 43/62] updated check nvidia for ALT --- data_from_portwine/scripts/functions_helper | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index e1ae26b..4ccf8e4 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -1601,7 +1601,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 @@ -2191,7 +2193,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 From fdb31713169cfdd172f31c866ee3dc671545121b Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Tue, 12 Nov 2024 15:21:39 +0300 Subject: [PATCH 44/62] revert openvr_api_dxvk to CP_DXVK_FILES --- data_from_portwine/scripts/functions_helper | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 4ccf8e4..939e60e 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -3344,7 +3344,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" ;; @@ -3354,7 +3354,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" ;; From 994f035048506d90e7e7393b3fe9d69aa53701f9 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Tue, 12 Nov 2024 15:41:00 +0300 Subject: [PATCH 45/62] drop array from LAUNCH_PARAMETERS --- data_from_portwine/scripts/portwine_db/Cyberpunk2077.ppdb | 2 +- .../scripts/pw_autoinstall/PW_AGE_OF_EMPIRES_ONLINE | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_ALBION_ONLINE | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_ANKAMA | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_ANOMALY_ZONE | 2 +- .../scripts/pw_autoinstall/PW_ARIZONA_GAMES_LAUNCHER | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_BLOOD_AND_SOUL | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_BROKEN_RANKS | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_BSR | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_CALIBER | 2 +- .../scripts/pw_autoinstall/PW_CHICKEN_INVADERS_UNIVERSE | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_CONTRACT_WARS | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_CROSSOUT | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_DOLPHIN | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_DOOMSDAY | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_EAAPP | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_ELDEVIN | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_ELSWORD | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_EPIC | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_EXOTANKS | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_GAMEFORGE | 1 - data_from_portwine/scripts/pw_autoinstall/PW_GAME_XP | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_GOG | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_GOOSE_GOOSE_DUCK | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_GUILD_WARS_2 | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_IGCLIENT | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_ITCH | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_LGC | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_METAL_WAR_ONLINE | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_MODERN_WARSHIPS | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_PANZAR | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_PATH_OF_EXILE | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_PLARIUM_PLAY | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_PPSSPP | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_PROJECT64 | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_RISE_OF_FLIGHT | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_RUSSIAN_FISHING | 2 +- .../scripts/pw_autoinstall/PW_SECRET_WORLD_LEGENDS | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_STALCRAFT | 1 - data_from_portwine/scripts/pw_autoinstall/PW_STALKER_ONLINE | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_STAR_CONFLICT | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_STEAM | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_TANKI_ONLINE | 2 +- .../scripts/pw_autoinstall/PW_THE_LORD_OF_THE_RINGS_ONLINE | 2 +- .../scripts/pw_autoinstall/PW_THE_WORLD_NIFTY_CRAFT | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_TOONTOWN_REWRITTEN | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_TORIBASH | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_UBISOFT | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_VKPLAY | 1 - data_from_portwine/scripts/pw_autoinstall/PW_W3D_HUB | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_WARFRAME | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_WGC | 2 +- .../scripts/pw_autoinstall/PW_WORLD_OF_SEA_BATTLE | 2 +- data_from_portwine/scripts/pw_autoinstall/PW_YABAUSE | 2 +- 54 files changed, 51 insertions(+), 54 deletions(-) diff --git a/data_from_portwine/scripts/portwine_db/Cyberpunk2077.ppdb b/data_from_portwine/scripts/portwine_db/Cyberpunk2077.ppdb index cbe6dae..09c9047 100644 --- a/data_from_portwine/scripts/portwine_db/Cyberpunk2077.ppdb +++ b/data_from_portwine/scripts/portwine_db/Cyberpunk2077.ppdb @@ -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 diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_AGE_OF_EMPIRES_ONLINE b/data_from_portwine/scripts/pw_autoinstall/PW_AGE_OF_EMPIRES_ONLINE index 1264c9d..80bb53b 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_AGE_OF_EMPIRES_ONLINE +++ b/data_from_portwine/scripts/pw_autoinstall/PW_AGE_OF_EMPIRES_ONLINE @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_ALBION_ONLINE b/data_from_portwine/scripts/pw_autoinstall/PW_ALBION_ONLINE index c7d539e..abfbe96 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_ALBION_ONLINE +++ b/data_from_portwine/scripts/pw_autoinstall/PW_ALBION_ONLINE @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_ANKAMA b/data_from_portwine/scripts/pw_autoinstall/PW_ANKAMA index 8f68a4a..577e43c 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_ANKAMA +++ b/data_from_portwine/scripts/pw_autoinstall/PW_ANKAMA @@ -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 diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_ANOMALY_ZONE b/data_from_portwine/scripts/pw_autoinstall/PW_ANOMALY_ZONE index 71fdf65..6c9b46b 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_ANOMALY_ZONE +++ b/data_from_portwine/scripts/pw_autoinstall/PW_ANOMALY_ZONE @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_ARIZONA_GAMES_LAUNCHER b/data_from_portwine/scripts/pw_autoinstall/PW_ARIZONA_GAMES_LAUNCHER index 09bc2c7..2cb90df 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_ARIZONA_GAMES_LAUNCHER +++ b/data_from_portwine/scripts/pw_autoinstall/PW_ARIZONA_GAMES_LAUNCHER @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_BLOOD_AND_SOUL b/data_from_portwine/scripts/pw_autoinstall/PW_BLOOD_AND_SOUL index 1053186..b51e5e3 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_BLOOD_AND_SOUL +++ b/data_from_portwine/scripts/pw_autoinstall/PW_BLOOD_AND_SOUL @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_BROKEN_RANKS b/data_from_portwine/scripts/pw_autoinstall/PW_BROKEN_RANKS index d976ec1..9360dda 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_BROKEN_RANKS +++ b/data_from_portwine/scripts/pw_autoinstall/PW_BROKEN_RANKS @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_BSR b/data_from_portwine/scripts/pw_autoinstall/PW_BSR index 5a3dbb3..4faba8c 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_BSR +++ b/data_from_portwine/scripts/pw_autoinstall/PW_BSR @@ -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 diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_CALIBER b/data_from_portwine/scripts/pw_autoinstall/PW_CALIBER index 2886c09..140ff62 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_CALIBER +++ b/data_from_portwine/scripts/pw_autoinstall/PW_CALIBER @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_CHICKEN_INVADERS_UNIVERSE b/data_from_portwine/scripts/pw_autoinstall/PW_CHICKEN_INVADERS_UNIVERSE index fcbf160..fbe1044 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_CHICKEN_INVADERS_UNIVERSE +++ b/data_from_portwine/scripts/pw_autoinstall/PW_CHICKEN_INVADERS_UNIVERSE @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_CONTRACT_WARS b/data_from_portwine/scripts/pw_autoinstall/PW_CONTRACT_WARS index 476f932..051b918 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_CONTRACT_WARS +++ b/data_from_portwine/scripts/pw_autoinstall/PW_CONTRACT_WARS @@ -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 diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_CROSSOUT b/data_from_portwine/scripts/pw_autoinstall/PW_CROSSOUT index ab7accb..81ce58d 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_CROSSOUT +++ b/data_from_portwine/scripts/pw_autoinstall/PW_CROSSOUT @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_DOLPHIN b/data_from_portwine/scripts/pw_autoinstall/PW_DOLPHIN index 32bfaf4..4b5e2b2 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_DOLPHIN +++ b/data_from_portwine/scripts/pw_autoinstall/PW_DOLPHIN @@ -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 diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_DOOMSDAY b/data_from_portwine/scripts/pw_autoinstall/PW_DOOMSDAY index 621718b..f75c1be 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_DOOMSDAY +++ b/data_from_portwine/scripts/pw_autoinstall/PW_DOOMSDAY @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_EAAPP b/data_from_portwine/scripts/pw_autoinstall/PW_EAAPP index b45adf7..4d604a5 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_EAAPP +++ b/data_from_portwine/scripts/pw_autoinstall/PW_EAAPP @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_ELDEVIN b/data_from_portwine/scripts/pw_autoinstall/PW_ELDEVIN index 63e5f82..dde96a9 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_ELDEVIN +++ b/data_from_portwine/scripts/pw_autoinstall/PW_ELDEVIN @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_ELSWORD b/data_from_portwine/scripts/pw_autoinstall/PW_ELSWORD index 4bc79ee..76fd6c9 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_ELSWORD +++ b/data_from_portwine/scripts/pw_autoinstall/PW_ELSWORD @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_EPIC b/data_from_portwine/scripts/pw_autoinstall/PW_EPIC index 7191a7f..4dfdfd2 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_EPIC +++ b/data_from_portwine/scripts/pw_autoinstall/PW_EPIC @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_EXOTANKS b/data_from_portwine/scripts/pw_autoinstall/PW_EXOTANKS index 7f5c387..019cd9b 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_EXOTANKS +++ b/data_from_portwine/scripts/pw_autoinstall/PW_EXOTANKS @@ -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 diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_GAMEFORGE b/data_from_portwine/scripts/pw_autoinstall/PW_GAMEFORGE index b6eb195..7d2f553 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_GAMEFORGE +++ b/data_from_portwine/scripts/pw_autoinstall/PW_GAMEFORGE @@ -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}" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_GAME_XP b/data_from_portwine/scripts/pw_autoinstall/PW_GAME_XP index b2c0b25..c4af4f0 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_GAME_XP +++ b/data_from_portwine/scripts/pw_autoinstall/PW_GAME_XP @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_GOG b/data_from_portwine/scripts/pw_autoinstall/PW_GOG index 119416c..b4a4fca 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_GOG +++ b/data_from_portwine/scripts/pw_autoinstall/PW_GOG @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_GOOSE_GOOSE_DUCK b/data_from_portwine/scripts/pw_autoinstall/PW_GOOSE_GOOSE_DUCK index 0108eb6..b4d6fd2 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_GOOSE_GOOSE_DUCK +++ b/data_from_portwine/scripts/pw_autoinstall/PW_GOOSE_GOOSE_DUCK @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_GUILD_WARS_2 b/data_from_portwine/scripts/pw_autoinstall/PW_GUILD_WARS_2 index 0c2e05b..1fa3551 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_GUILD_WARS_2 +++ b/data_from_portwine/scripts/pw_autoinstall/PW_GUILD_WARS_2 @@ -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="" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_IGCLIENT b/data_from_portwine/scripts/pw_autoinstall/PW_IGCLIENT index 6f6c054..a95b0bb 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_IGCLIENT +++ b/data_from_portwine/scripts/pw_autoinstall/PW_IGCLIENT @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_ITCH b/data_from_portwine/scripts/pw_autoinstall/PW_ITCH index 6fa20a4..e616a0b 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_ITCH +++ b/data_from_portwine/scripts/pw_autoinstall/PW_ITCH @@ -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 diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_LGC b/data_from_portwine/scripts/pw_autoinstall/PW_LGC index 6907897..3f1dedd 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_LGC +++ b/data_from_portwine/scripts/pw_autoinstall/PW_LGC @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_METAL_WAR_ONLINE b/data_from_portwine/scripts/pw_autoinstall/PW_METAL_WAR_ONLINE index 6f6887c..1e80509 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_METAL_WAR_ONLINE +++ b/data_from_portwine/scripts/pw_autoinstall/PW_METAL_WAR_ONLINE @@ -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 diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_MODERN_WARSHIPS b/data_from_portwine/scripts/pw_autoinstall/PW_MODERN_WARSHIPS index 7505514..9c093d6 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_MODERN_WARSHIPS +++ b/data_from_portwine/scripts/pw_autoinstall/PW_MODERN_WARSHIPS @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_PANZAR b/data_from_portwine/scripts/pw_autoinstall/PW_PANZAR index 1d42740..288a65b 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_PANZAR +++ b/data_from_portwine/scripts/pw_autoinstall/PW_PANZAR @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_PATH_OF_EXILE b/data_from_portwine/scripts/pw_autoinstall/PW_PATH_OF_EXILE index 19392f1..86f47a3 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_PATH_OF_EXILE +++ b/data_from_portwine/scripts/pw_autoinstall/PW_PATH_OF_EXILE @@ -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 diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_PLARIUM_PLAY b/data_from_portwine/scripts/pw_autoinstall/PW_PLARIUM_PLAY index 6528a2a..96afab1 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_PLARIUM_PLAY +++ b/data_from_portwine/scripts/pw_autoinstall/PW_PLARIUM_PLAY @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_PPSSPP b/data_from_portwine/scripts/pw_autoinstall/PW_PPSSPP index 3cbde48..d14c101 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_PPSSPP +++ b/data_from_portwine/scripts/pw_autoinstall/PW_PPSSPP @@ -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 diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_PROJECT64 b/data_from_portwine/scripts/pw_autoinstall/PW_PROJECT64 index 8ca9a77..745c410 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_PROJECT64 +++ b/data_from_portwine/scripts/pw_autoinstall/PW_PROJECT64 @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_RISE_OF_FLIGHT b/data_from_portwine/scripts/pw_autoinstall/PW_RISE_OF_FLIGHT index 247c944..185042c 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_RISE_OF_FLIGHT +++ b/data_from_portwine/scripts/pw_autoinstall/PW_RISE_OF_FLIGHT @@ -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 diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_RUSSIAN_FISHING b/data_from_portwine/scripts/pw_autoinstall/PW_RUSSIAN_FISHING index 78de5f6..c0c5cf3 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_RUSSIAN_FISHING +++ b/data_from_portwine/scripts/pw_autoinstall/PW_RUSSIAN_FISHING @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_SECRET_WORLD_LEGENDS b/data_from_portwine/scripts/pw_autoinstall/PW_SECRET_WORLD_LEGENDS index 19125d2..bc743a7 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_SECRET_WORLD_LEGENDS +++ b/data_from_portwine/scripts/pw_autoinstall/PW_SECRET_WORLD_LEGENDS @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_STALCRAFT b/data_from_portwine/scripts/pw_autoinstall/PW_STALCRAFT index 50426ed..36b0c8e 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_STALCRAFT +++ b/data_from_portwine/scripts/pw_autoinstall/PW_STALCRAFT @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_STALKER_ONLINE b/data_from_portwine/scripts/pw_autoinstall/PW_STALKER_ONLINE index 294dbdb..b261e51 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_STALKER_ONLINE +++ b/data_from_portwine/scripts/pw_autoinstall/PW_STALKER_ONLINE @@ -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 diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_STAR_CONFLICT b/data_from_portwine/scripts/pw_autoinstall/PW_STAR_CONFLICT index 7979cfa..cf5c055 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_STAR_CONFLICT +++ b/data_from_portwine/scripts/pw_autoinstall/PW_STAR_CONFLICT @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_STEAM b/data_from_portwine/scripts/pw_autoinstall/PW_STEAM index 9c70926..2d32dec 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_STEAM +++ b/data_from_portwine/scripts/pw_autoinstall/PW_STEAM @@ -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 diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_TANKI_ONLINE b/data_from_portwine/scripts/pw_autoinstall/PW_TANKI_ONLINE index 86aa815..c9d94d1 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_TANKI_ONLINE +++ b/data_from_portwine/scripts/pw_autoinstall/PW_TANKI_ONLINE @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_THE_LORD_OF_THE_RINGS_ONLINE b/data_from_portwine/scripts/pw_autoinstall/PW_THE_LORD_OF_THE_RINGS_ONLINE index 611c59c..a92eb2f 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_THE_LORD_OF_THE_RINGS_ONLINE +++ b/data_from_portwine/scripts/pw_autoinstall/PW_THE_LORD_OF_THE_RINGS_ONLINE @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_THE_WORLD_NIFTY_CRAFT b/data_from_portwine/scripts/pw_autoinstall/PW_THE_WORLD_NIFTY_CRAFT index 2dd10af..256765c 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_THE_WORLD_NIFTY_CRAFT +++ b/data_from_portwine/scripts/pw_autoinstall/PW_THE_WORLD_NIFTY_CRAFT @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_TOONTOWN_REWRITTEN b/data_from_portwine/scripts/pw_autoinstall/PW_TOONTOWN_REWRITTEN index 7364db3..f94dd30 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_TOONTOWN_REWRITTEN +++ b/data_from_portwine/scripts/pw_autoinstall/PW_TOONTOWN_REWRITTEN @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_TORIBASH b/data_from_portwine/scripts/pw_autoinstall/PW_TORIBASH index 7a20820..1aa84b2 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_TORIBASH +++ b/data_from_portwine/scripts/pw_autoinstall/PW_TORIBASH @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_UBISOFT b/data_from_portwine/scripts/pw_autoinstall/PW_UBISOFT index a6fadc8..6566200 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_UBISOFT +++ b/data_from_portwine/scripts/pw_autoinstall/PW_UBISOFT @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_VKPLAY b/data_from_portwine/scripts/pw_autoinstall/PW_VKPLAY index 042da8c..7b3b756 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_VKPLAY +++ b/data_from_portwine/scripts/pw_autoinstall/PW_VKPLAY @@ -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=" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_W3D_HUB b/data_from_portwine/scripts/pw_autoinstall/PW_W3D_HUB index 76b6ef5..4a71226 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_W3D_HUB +++ b/data_from_portwine/scripts/pw_autoinstall/PW_W3D_HUB @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_WARFRAME b/data_from_portwine/scripts/pw_autoinstall/PW_WARFRAME index 49ba23a..a340c50 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_WARFRAME +++ b/data_from_portwine/scripts/pw_autoinstall/PW_WARFRAME @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_WGC b/data_from_portwine/scripts/pw_autoinstall/PW_WGC index 43020e4..f8d3784 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_WGC +++ b/data_from_portwine/scripts/pw_autoinstall/PW_WGC @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_WORLD_OF_SEA_BATTLE b/data_from_portwine/scripts/pw_autoinstall/PW_WORLD_OF_SEA_BATTLE index 1ad2200..c410f4f 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_WORLD_OF_SEA_BATTLE +++ b/data_from_portwine/scripts/pw_autoinstall/PW_WORLD_OF_SEA_BATTLE @@ -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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_YABAUSE b/data_from_portwine/scripts/pw_autoinstall/PW_YABAUSE index 2875096..6203781 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_YABAUSE +++ b/data_from_portwine/scripts/pw_autoinstall/PW_YABAUSE @@ -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 From d14b4d2d24c60ae2a19e0496404aae1ea03bf586 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Tue, 12 Nov 2024 16:14:13 +0300 Subject: [PATCH 46/62] Scripts version 2374 --- data_from_portwine/changelog_en | 5 +++++ data_from_portwine/changelog_ru | 5 +++++ data_from_portwine/scripts/var | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/data_from_portwine/changelog_en b/data_from_portwine/changelog_en index 8ed84b3..9218019 100755 --- a/data_from_portwine/changelog_en +++ b/data_from_portwine/changelog_en @@ -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: diff --git a/data_from_portwine/changelog_ru b/data_from_portwine/changelog_ru index 965149f..a898061 100755 --- a/data_from_portwine/changelog_ru +++ b/data_from_portwine/changelog_ru @@ -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" * обновлены версии: diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index 328519c..23278fd 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -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" From 3d267a7172861a25fb89461fa11a2db6954c01a2 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Tue, 12 Nov 2024 19:36:49 +0300 Subject: [PATCH 47/62] changed last changelog --- data_from_portwine/changelog_en | 2 +- data_from_portwine/changelog_ru | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data_from_portwine/changelog_en b/data_from_portwine/changelog_en index 9218019..c46fcff 100755 --- a/data_from_portwine/changelog_en +++ b/data_from_portwine/changelog_en @@ -3,7 +3,7 @@ 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 +* added support for DLSS 3 for NVIDIA RTX 40XX * fixed gamescope (thanks to Htylol) * general optimization of scripts (thanks to Htylol) diff --git a/data_from_portwine/changelog_ru b/data_from_portwine/changelog_ru index a898061..0b60c4e 100755 --- a/data_from_portwine/changelog_ru +++ b/data_from_portwine/changelog_ru @@ -3,7 +3,7 @@ История изменений: ###Scripts version 2374### / Дата: 12.11.2024 / Размер скачиваемого обновления: 4 мегабайт -* добавлена тестовая поддержка DLSS 3 +* добавлена поддержка DLSS 3 для видеокарт NVIDIA RTX 40XX * исправлена работа gamescope (спасибо Htylol) * общая оптимизация скриптов (спасибо Htylol) From e39b4926c2285ef65cbf39f3cec398d0715862d2 Mon Sep 17 00:00:00 2001 From: Htylol Date: Wed, 13 Nov 2024 04:47:07 +0500 Subject: [PATCH 48/62] Fixes for reg edition function --- data_from_portwine/scripts/functions_helper | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 14ee332..4faa798 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -1385,7 +1385,7 @@ get_and_set_reg_file () { if [[ $name_add_or_del == --add ]] ; then if [[ -z $find_block ]] ; then if [[ -n $name_for_new_block ]] ; then - sed -i '$a\\n'"$name_block\n" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg" + sed -i '$a\\n'"$name_block" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg" find_file="${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg" find_line=$(wc -l "$find_file" | awk -F" " '{print $1}') find_line=$(( find_line - 1 )) @@ -1396,7 +1396,7 @@ get_and_set_reg_file () { fi if [[ $find_check_file == 1 ]] ; then print_info "Change $name_for_find_old to reg file" - sed -i "${find_number_line}s/$name_for_find.*/$name_for_find$name_for_set/" "$find_file" + sed -i "${find_number_line}s|$name_for_find.*|$name_for_find$name_for_set|" "$find_file" else print_info "Added $name_for_find_old to reg file" sed -i "$(( find_line + 1 ))a$name_for_find$name_for_set" "$find_file" @@ -3874,7 +3874,7 @@ start_portwine () { if [[ -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg" ]] \ && [[ -z $(grep "Windows $PW_WINDOWS_VER" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg") ]] then - if [[ -n "${PW_WINDOWS_VER}" ]] \ + if [[ -n $PW_WINDOWS_VER ]] \ && [[ $(echo "$PW_WINDOWS_VER" | sed 's/.*/\L&/') == "xp" ]] then export PW_WINDOWS_VER="xp64" @@ -3886,12 +3886,12 @@ start_portwine () { echo "Set to win${PW_WINDOWS_VER}" fi - if [[ "$portwine_exe" == *-Shipping.exe ]] ; then + if [[ $portwine_exe == *-Shipping.exe ]] ; then echo "Disable EAC" [[ -z "$LAUNCH_PARAMETERS" ]] && export LAUNCH_PARAMETERS+=" -eac-nop-loaded " fi - if [[ "$PW_DINPUT_PROTOCOL" == "1" ]] ; then + if [[ $PW_DINPUT_PROTOCOL == "1" ]] ; then get_and_set_reg_file --add 'System\CurrentControlSet\Services\winebus' 'DisableHidraw' 'REG_DWORD' "0" "system" get_and_set_reg_file --add 'System\CurrentControlSet\Services\winebus' 'Enable SDL' 'REG_DWORD' "0" "system" else @@ -3899,8 +3899,8 @@ start_portwine () { get_and_set_reg_file --add 'System\CurrentControlSet\Services\winebus' 'Enable SDL' 'REG_DWORD' "1" "system" fi - if [[ "$PW_WINE_DPI_VALUE" != "disabled" ]] ; then - if [[ "$PW_WINE_DPI_VALUE" == "recommended" ]] ; then + 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 @@ -3908,7 +3908,7 @@ start_portwine () { fi fi - if [[ "$PW_USE_NATIVE_WAYLAND" == "1" ]] ; then + if [[ $PW_USE_NATIVE_WAYLAND == "1" ]] ; then export PW_DISPLAY="env DISPLAY=" export PW_USE_RUNTIME="0" get_and_set_reg_file --add 'Software\Wine\Drivers' 'Graphics' 'REG_SZ' "x11,wayland" "user" @@ -3917,7 +3917,7 @@ start_portwine () { get_and_set_reg_file --delete 'Software\Wine\Drivers' 'Graphics' fi - if [[ "$PW_SOUND_DRIVER_USE" != "disabled" ]] ; then + if [[ $PW_SOUND_DRIVER_USE != "disabled" ]] ; then get_and_set_reg_file --add 'Software\Wine\Drivers' 'Audio' 'REG_SZ' "$PW_SOUND_DRIVER_USE" "user" fi @@ -3926,7 +3926,7 @@ start_portwine () { pw_tray_icon fi - if [[ "${PW_CHECK_AUTOINSTALL}" != "1" ]] ; then + if [[ $PW_CHECK_AUTOINSTALL != "1" ]] ; then pw_start_progress_bar_cover "${COVERS_PATH}/loading_${LANGUAGE_GIF}.gif" fi add_in_start_portwine From 3ee49f3cc1af920d27fffc8ccc3aaadbe253a378 Mon Sep 17 00:00:00 2001 From: Htylol Date: Wed, 13 Nov 2024 08:24:08 +0500 Subject: [PATCH 49/62] Added eval for systemd-inhibit --- data_from_portwine/locales/PortProton.pot | 15 +++++++----- .../locales/es/LC_MESSAGES/PortProton.po | 20 +++++++++------- .../locales/ru/LC_MESSAGES/PortProton.po | 23 ++++++++++++------- data_from_portwine/scripts/functions_helper | 2 +- 4 files changed, 37 insertions(+), 23 deletions(-) diff --git a/data_from_portwine/locales/PortProton.pot b/data_from_portwine/locales/PortProton.pot index 1f855a9..b202891 100644 --- a/data_from_portwine/locales/PortProton.pot +++ b/data_from_portwine/locales/PortProton.pot @@ -7,7 +7,7 @@ msgid "" msgstr "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2024-11-02 10:04+0500\n" + "POT-Creation-Date: 2024-11-13 08:17+0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -321,6 +321,9 @@ msgstr "" msgid "Do you want to installing recommended libraries in the new prefix:" msgstr "" +msgid "Launched" +msgstr "" + msgid "d3dadapter9.so.1.0.0 - Not found in the system.\\nInstall the " "missing package: d3dadapter9" msgstr "" @@ -1256,7 +1259,7 @@ msgid "Force use sdl videodriver x11, works with BACKEND SDL. (Default is " "wayland)" msgstr "" -msgid "If specified, sets a base output height to linearly scale the cursor " +msgid "if specified, sets a base output height to linearly scale the cursor " "against." msgstr "" @@ -1385,6 +1388,9 @@ msgid "If downloading steam covers is enabled, they will be downloaded and " "is unavailable for some reason)" msgstr "" +msgid "Recommended value" +msgstr "" + msgid "default" msgstr "" @@ -1394,13 +1400,10 @@ msgstr "" msgid "classic" msgstr "" -msgid "dark" -msgstr "" - msgid "light" msgstr "" -msgid "Recommended value" +msgid "dark" msgstr "" msgid "Choose a graphics card to run the game" diff --git a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po index e504769..19c80ed 100644 --- a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-02 10:04+0500\n" -"PO-Revision-Date: 2024-10-26 13:58+0500\n" +"POT-Creation-Date: 2024-11-13 08:17+0500\n" +"PO-Revision-Date: 2024-11-13 08:18+0500\n" "Last-Translator: \n" "Language-Team: \n" "Language: es_ES\n" @@ -349,6 +349,9 @@ msgstr "OK" msgid "Do you want to installing recommended libraries in the new prefix:" msgstr "¿Quieres instalar las bibliotecas recomendadas en el nuevo prefijo:" +msgid "Launched" +msgstr "Lanzado" + msgid "" "d3dadapter9.so.1.0.0 - Not found in the system.\\nInstall the missing " "package: d3dadapter9" @@ -1636,8 +1639,9 @@ msgstr "" "Forzar el uso del controlador de video SDL x11, funciona con el backend SDL. " "(Por defecto es Wayland)." +#, fuzzy msgid "" -"If specified, sets a base output height to linearly scale the cursor against." +"if specified, sets a base output height to linearly scale the cursor against." msgstr "" "Si se especifica, establece una altura de salida base para escalar " "linealmente el cursor." @@ -1810,6 +1814,9 @@ msgstr "" "crearán. (La desactivación se proporciona en los casos en que su descarga no " "esté disponible por algún motivo)" +msgid "Recommended value" +msgstr "" + msgid "default" msgstr "por defecto" @@ -1819,14 +1826,11 @@ msgstr "compacto" msgid "classic" msgstr "clásico" -msgid "dark" -msgstr "oscuro" - msgid "light" msgstr "ligero" -msgid "Recommended value" -msgstr "" +msgid "dark" +msgstr "oscuro" msgid "Choose a graphics card to run the game" msgstr "Elige una tarjeta gráfica para ejecutar el juego" diff --git a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po index 8d6530b..3c0a8ea 100644 --- a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-02 10:04+0500\n" -"PO-Revision-Date: 2024-11-02 10:05+0500\n" +"POT-Creation-Date: 2024-11-13 08:17+0500\n" +"PO-Revision-Date: 2024-11-13 08:18+0500\n" "Last-Translator: \n" "Language-Team: \n" "Language: ru_RU\n" @@ -351,6 +351,9 @@ msgstr "OK" msgid "Do you want to installing recommended libraries in the new prefix:" msgstr "Хотите добавить рекомендуемые библиотеки в префикс:" +msgid "Launched" +msgstr "Запущено" + msgid "" "d3dadapter9.so.1.0.0 - Not found in the system.\\nInstall the missing " "package: d3dadapter9" @@ -1615,8 +1618,9 @@ msgstr "" "запуском), работает вместе с SDL BACKEND (используется по умолчанию в " "Wayland сессии)" +#, fuzzy msgid "" -"If specified, sets a base output height to linearly scale the cursor against." +"if specified, sets a base output height to linearly scale the cursor against." msgstr "" "Если указано, устанавливает базовую высоту вывода для линейного " "масштабирования курсора." @@ -1788,6 +1792,9 @@ msgstr "" "создаваться. (Отключение предусмотрено в тех случаях, когда их скачивание по " "каким-то причинам недоступно)" +msgid "Recommended value" +msgstr "Рекомендуемое значение" + msgid "default" msgstr "по умолчанию" @@ -1797,14 +1804,11 @@ msgstr "компактная" msgid "classic" msgstr "классическая" -msgid "dark" -msgstr "тёмная" - msgid "light" msgstr "светлая" -msgid "Recommended value" -msgstr "Рекомендуемое значение" +msgid "dark" +msgstr "тёмная" msgid "Choose a graphics card to run the game" msgstr "Выбрать видеокарту для запуска игры" @@ -2246,6 +2250,9 @@ msgstr "" "--autoinstall и название того, что необходимо установить, указано в списке " "ниже:" +#~ msgid "Running" +#~ msgstr "Запущено" + #~ msgid "Choice gui themes" #~ msgstr "Выбор графической темы" diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 14ee332..3357b41 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -3318,7 +3318,7 @@ start_portwine () { if command -v systemd-inhibit &>/dev/null \ && [[ "$GAMEMODERUN" != "1" ]] then - PW_INHIBIT_SLR="systemd-inhibit --mode=block --who=ru.linux_gaming.PortProton --why=${PW_NAME_DESKTOP_PROXY// /_}" + PW_INHIBIT_SLR="eval systemd-inhibit --mode=block --who=ru.linux_gaming.PortProton --why=\"${translations[Launched]} $PW_NAME_DESKTOP_PROXY\"" print_info "Screensaver will be inhibit" fi pw_other_fixes From d92d439e604aca9b715b43f2abfacf716a1a3c67 Mon Sep 17 00:00:00 2001 From: Ivan Mazhukin Date: Thu, 14 Nov 2024 16:06:01 +0300 Subject: [PATCH 50/62] Static link for .deb package --- README-RU.md | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README-RU.md b/README-RU.md index 5587b20..cd4d69c 100755 --- a/README-RU.md +++ b/README-RU.md @@ -73,7 +73,7 @@ exit ``` * **Ubuntu 24.04**, **Debian 12**, **Linux Mint 21.x** **Deepin** : - [portproton_1.7-3_amd64.deb](https://github.com/Castro-Fidel/PortProton_dpkg/releases/download/portproton_1.7-3_amd64/portproton_1.7-3_amd64.deb) + [portproton_amd64.deb](https://github.com/Castro-Fidel/PortProton_dpkg/releases/download/portproton_amd64/portproton_amd64.deb) * **Arch Linux** и производные (Manjaro, Garuda, и т.д.) : [AUR](https://aur.archlinux.org/packages/portproton) diff --git a/README.md b/README.md index 2949725..1a3504d 100755 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ exit * **Ubuntu 24.04**, **Debian 12**, **Linux Mint 21.x**, and **Deepin**: - [portproton_1.7-3_amd64.deb](https://github.com/Castro-Fidel/PortProton_dpkg/releases/download/portproton_1.7-3_amd64/portproton_1.7-3_amd64.deb) + [portproton_amd64.deb](https://github.com/Castro-Fidel/PortProton_dpkg/releases/download/portproton_amd64/portproton_amd64.deb) * **Arch Linux** and derivatives (Manjaro, Garuda, etc.): [AUR](https://aur.archlinux.org/packages/portproton) From e623b31df22ea866ab265cee52fa4c9fcb2f492e Mon Sep 17 00:00:00 2001 From: Htylol Date: Thu, 14 Nov 2024 17:53:52 +0500 Subject: [PATCH 51/62] Fixes name_block and eval for systemd-inhibit --- data_from_portwine/scripts/functions_helper | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index b50b7fe..a179a1b 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -1337,26 +1337,23 @@ get_and_set_reg_file () { case $name_type_reg in REG_DWORD) - name_for_find='"'"$name_for_find"'"'"=dword:" + name_for_find="\"$name_for_find\"=dword:" name_for_set=$(convert_dec_and_hex --dec "$name_for_set") ;; REG_SZ) - name_for_find='"'"$name_for_find"'"'"=" - name_for_set='"'"$name_for_set"'"' ;; + name_for_find="\"$name_for_find\"=" + name_for_set="\"$name_for_set\"" ;; *) if [[ $name_add_or_del == --delete ]] ; then - name_for_find='"'"$name_for_find"'"' + name_for_find="\"$name_for_find\"" else print_error "Name type reg not set for $name_fatal" return 1 fi ;; esac - name_block=${name_block//\\/\\\\\\\\\\\\\\} - name_block=${name_block//*/\\[$name_block} - name_block="${name_block//*/${name_block//\\/\\\\}\\]}" if [[ -n $name_for_new_block ]] ; then - find_block=$(grep -n "$name_block" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg") + find_block=$(grep -n "${name_block//\\/\\\\\\\\}" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg") else - find_block=$(grep -n "$name_block" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/"*.reg) + find_block=$(grep -n "${name_block//\\/\\\\\\\\}" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/"*.reg) fi if [[ -n $find_block ]] ; then if [[ -n $name_for_new_block ]] ; then @@ -1385,7 +1382,7 @@ get_and_set_reg_file () { if [[ $name_add_or_del == --add ]] ; then if [[ -z $find_block ]] ; then if [[ -n $name_for_new_block ]] ; then - sed -i '$a\\n'"$name_block" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg" + sed -i '$a\\n'\["${name_block//\\/\\\\\\\\}"\] "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg" find_file="${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg" find_line=$(wc -l "$find_file" | awk -F" " '{print $1}') find_line=$(( find_line - 1 )) @@ -3318,7 +3315,7 @@ start_portwine () { if command -v systemd-inhibit &>/dev/null \ && [[ "$GAMEMODERUN" != "1" ]] then - PW_INHIBIT_SLR="eval systemd-inhibit --mode=block --who=ru.linux_gaming.PortProton --why=\"${translations[Launched]} $PW_NAME_DESKTOP_PROXY\"" + PW_INHIBIT_SLR="systemd-inhibit --mode=block --who=ru.linux_gaming.PortProton --why=${translations[Launched]}" print_info "Screensaver will be inhibit" fi pw_other_fixes From 065a20feb718d31eb7632f4293ef04b50724fd0d Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Thu, 14 Nov 2024 16:31:10 +0300 Subject: [PATCH 52/62] Scripts version 2375 --- data_from_portwine/changelog_en | 3 +++ data_from_portwine/changelog_ru | 3 +++ data_from_portwine/scripts/var | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/data_from_portwine/changelog_en b/data_from_portwine/changelog_en index c46fcff..23d21bf 100755 --- a/data_from_portwine/changelog_en +++ b/data_from_portwine/changelog_en @@ -2,6 +2,9 @@ You can help us in the development of the project on the website: https://linux- ---------------------------------------- Changelog: +###Scripts version 2375### / Date: 14.11.2024 / Download update size: 4 megabytes +* HOTFIX - fixed long launch on Alt p10 after updating scripts 2371 (thanks to Htylol) + ###Scripts version 2374### / Date: 12.11.2024 / Download update size: 4 megabytes * added support for DLSS 3 for NVIDIA RTX 40XX * fixed gamescope (thanks to Htylol) diff --git a/data_from_portwine/changelog_ru b/data_from_portwine/changelog_ru index 0b60c4e..898c981 100755 --- a/data_from_portwine/changelog_ru +++ b/data_from_portwine/changelog_ru @@ -2,6 +2,9 @@ ----------------------------------------- История изменений: +###Scripts version 2375### / Дата: 14.11.2024 / Размер скачиваемого обновления: 4 мегабайт +* HOTFIX - исправлен долгий запуск на Alt p10 после обновления скриптов 2371 (спасибо Htylol) + ###Scripts version 2374### / Дата: 12.11.2024 / Размер скачиваемого обновления: 4 мегабайт * добавлена поддержка DLSS 3 для видеокарт NVIDIA RTX 40XX * исправлена работа gamescope (спасибо Htylol) diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index 23278fd..e6d529b 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -1,6 +1,6 @@ #!/usr/bin/env bash #Author: Castro-Fidel (linux-gaming.ru) -#SCRIPTS_NEXT_VERSION=2374 +#SCRIPTS_NEXT_VERSION=2375 #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" From 8fb7745c5d77c96847875284b83d2c83625cf4e9 Mon Sep 17 00:00:00 2001 From: Htylol Date: Thu, 14 Nov 2024 20:12:36 +0500 Subject: [PATCH 53/62] Fixes name_block and for edit_user_conf_from_gui --- data_from_portwine/scripts/functions_helper | 38 +++++++++------------ 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index a179a1b..a80ed26 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -1350,10 +1350,11 @@ get_and_set_reg_file () { return 1 fi ;; esac + name_block=${name_block//\\/\\\\\\\\} if [[ -n $name_for_new_block ]] ; then - find_block=$(grep -n "${name_block//\\/\\\\\\\\}" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg") + find_block=$(grep -n "$name_block" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg") else - find_block=$(grep -n "${name_block//\\/\\\\\\\\}" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/"*.reg) + find_block=$(grep -n "$name_block" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/"*.reg) fi if [[ -n $find_block ]] ; then if [[ -n $name_for_new_block ]] ; then @@ -1382,7 +1383,7 @@ get_and_set_reg_file () { if [[ $name_add_or_del == --add ]] ; then if [[ -z $find_block ]] ; then if [[ -n $name_for_new_block ]] ; then - sed -i '$a\\n'\["${name_block//\\/\\\\\\\\}"\] "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg" + sed -i '$a\\n'\["$name_block"\] "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg" find_file="${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg" find_line=$(wc -l "$find_file" | awk -F" " '{print $1}') find_line=$(( find_line - 1 )) @@ -2763,8 +2764,8 @@ edit_db_from_gui () { edit_user_conf_from_gui () { for mod_db in "$@" ; do if [[ -z "${!mod_db}" ]] ; then - sed -i "/^export ${mod_db}=.*/d" "${USER_CONF}" - return 0 + sed -i "/^export ${mod_db}=/d" "${USER_CONF}" + continue fi proxy_mod_db="${!mod_db}" if [[ $proxy_mod_db =~ (${translations[Disabled]}|${translations[Disable]}) ]] ; then @@ -5794,15 +5795,8 @@ gui_userconf () { fi if command -v gsettings &>/dev/null ; then - YAD_GTK_THEME_CHECK=$(gsettings get org.gnome.desktop.interface gtk-theme) - YAD_GTK_THEME_CHECK=${YAD_GTK_THEME_CHECK//\'/} - if [[ -n $YAD_GTK_THEME_CHECK ]] ; then - if [[ ! ${YAD_GTK_THEME_CHECK,,} == adwaita ]] ; then - YAD_GTK_THEME="$YAD_GTK_THEME_CHECK:${translations[light]}!$YAD_GTK_THEME_CHECK:${translations[dark]}!" - elif [[ ${YAD_GTK_THEME_CHECK,,} == breeze ]] ; then - YAD_GTK_THEME="$YAD_GTK_THEME_CHECK!" - fi - fi + YAD_GTK_THEME=$(gsettings get org.gnome.desktop.interface gtk-theme) + [[ -n $YAD_GTK_THEME ]] && YAD_GTK_THEME="${YAD_GTK_THEME//\'/}!" fi if [[ -z $GTK_THEME ]] ; then GTK_THEME=${translations[default]} elif [[ $GTK_THEME =~ light$ ]] ; then GTK_THEME="${GTK_THEME//light/${translations[light]}}" @@ -5851,22 +5845,24 @@ gui_userconf () { IFS='%' read -r -a PW_ADD_SETTINGS_UC <"${PW_TMPFS_PATH}/tmp_yad_userconf_set_cb" PW_GPU_USE="${PW_ADD_SETTINGS_UC[0]}" PW_WINE_DPI_VALUE="${PW_ADD_SETTINGS_UC[1]}" + PW_SOUND_DRIVER_USE="${PW_ADD_SETTINGS_UC[2]}" + GUI_THEME="${PW_ADD_SETTINGS_UC[3]}" + GTK_THEME="${PW_ADD_SETTINGS_UC[4]}" + DESKTOP_WITH_TIME="${PW_ADD_SETTINGS_UC[5]}" + SORT_WITH_TIME="${PW_ADD_SETTINGS_UC[6]}" + if [[ $PW_WINE_DPI_VALUE == "${translations[Recommended value]}" ]] ; then PW_WINE_DPI_VALUE="recommended" fi - PW_SOUND_DRIVER_USE="${PW_ADD_SETTINGS_UC[2]}" - GUI_THEME="${PW_ADD_SETTINGS_UC[3]}" if [[ $GUI_THEME == "${translations[default]}" ]] ; then GUI_THEME=default elif [[ $GUI_THEME == "${translations[compact]}" ]] ; then GUI_THEME=compact elif [[ $GUI_THEME == "${translations[classic]}" ]] ; then GUI_THEME=classic fi - GTK_THEME="${PW_ADD_SETTINGS_UC[4]}" if [[ $GTK_THEME == "${translations[default]}" ]] ; then unset GTK_THEME - elif [[ $GTK_THEME =~ ${translations[light]} ]] ; then GTK_THEME="${GTK_THEME//${translations[light]}/light}" - elif [[ $GTK_THEME =~ ${translations[dark]} ]] ; then GTK_THEME="${GTK_THEME//${translations[dark]}/dark}" + elif [[ $GTK_THEME =~ ${translations[light]} ]] ; then GTK_THEME=${GTK_THEME//${translations[light]}/light} + elif [[ $GTK_THEME =~ ${translations[dark]} ]] ; then GTK_THEME=${GTK_THEME//${translations[dark]}/dark} fi - DESKTOP_WITH_TIME="${PW_ADD_SETTINGS_UC[5]}" - SORT_WITH_TIME="${PW_ADD_SETTINGS_UC[6]}" + edit_user_conf_from_gui PW_GPU_USE PW_WINE_DPI_VALUE PW_SOUND_DRIVER_USE GUI_THEME GTK_THEME DESKTOP_WITH_TIME SORT_WITH_TIME restart_pp ;; From b0b91e98a158dae1fff977edf1ceeec8f73f9def Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Thu, 14 Nov 2024 18:54:44 +0300 Subject: [PATCH 54/62] Scripts version 2376 --- data_from_portwine/changelog_en | 3 +++ data_from_portwine/changelog_ru | 3 +++ data_from_portwine/scripts/var | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/data_from_portwine/changelog_en b/data_from_portwine/changelog_en index 23d21bf..3f43840 100755 --- a/data_from_portwine/changelog_en +++ b/data_from_portwine/changelog_en @@ -2,6 +2,9 @@ You can help us in the development of the project on the website: https://linux- ---------------------------------------- Changelog: +###Scripts version 2376### / Date: 14.11.2024 / Download update size: 4 megabytes +* fixed function for changing global settings (thanks to Htylol) + ###Scripts version 2375### / Date: 14.11.2024 / Download update size: 4 megabytes * HOTFIX - fixed long launch on Alt p10 after updating scripts 2371 (thanks to Htylol) diff --git a/data_from_portwine/changelog_ru b/data_from_portwine/changelog_ru index 898c981..9667280 100755 --- a/data_from_portwine/changelog_ru +++ b/data_from_portwine/changelog_ru @@ -2,6 +2,9 @@ ----------------------------------------- История изменений: +###Scripts version 2376### / Дата: 14.11.2024 / Размер скачиваемого обновления: 4 мегабайт +* исправлена функция изменения глобальных настроек + ###Scripts version 2375### / Дата: 14.11.2024 / Размер скачиваемого обновления: 4 мегабайт * HOTFIX - исправлен долгий запуск на Alt p10 после обновления скриптов 2371 (спасибо Htylol) diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index e6d529b..449c1f1 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -1,6 +1,6 @@ #!/usr/bin/env bash #Author: Castro-Fidel (linux-gaming.ru) -#SCRIPTS_NEXT_VERSION=2375 +#SCRIPTS_NEXT_VERSION=2376 #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" From 82e7f1cb8e4cca0daad0adf3b52fdf2ac1bdae59 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Fri, 15 Nov 2024 02:55:31 +0300 Subject: [PATCH 55/62] STABLE: Scripts version 2377 --- data_from_portwine/changelog_en | 3 +++ data_from_portwine/changelog_ru | 3 +++ data_from_portwine/scripts/var | 4 ++-- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/data_from_portwine/changelog_en b/data_from_portwine/changelog_en index 3f43840..df60af2 100755 --- a/data_from_portwine/changelog_en +++ b/data_from_portwine/changelog_en @@ -2,6 +2,9 @@ You can help us in the development of the project on the website: https://linux- ---------------------------------------- Changelog: +###Scripts version 2377### / stable / Date: 15.11.2024 / Download update size: 220 megabytes +* cumulative update to the stable version of PortProton scripts + ###Scripts version 2376### / Date: 14.11.2024 / Download update size: 4 megabytes * fixed function for changing global settings (thanks to Htylol) diff --git a/data_from_portwine/changelog_ru b/data_from_portwine/changelog_ru index 9667280..d12bec0 100755 --- a/data_from_portwine/changelog_ru +++ b/data_from_portwine/changelog_ru @@ -2,6 +2,9 @@ ----------------------------------------- История изменений: +###Scripts version 2377### / stable / Дата: 15.11.2024 / Размер скачиваемого обновления: 220 мегабайт +* кумулятивное обновление стабильной версии скриптов PortProton + ###Scripts version 2376### / Дата: 14.11.2024 / Размер скачиваемого обновления: 4 мегабайт * исправлена функция изменения глобальных настроек diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index 449c1f1..9a8a5a1 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -1,7 +1,7 @@ #!/usr/bin/env bash #Author: Castro-Fidel (linux-gaming.ru) -#SCRIPTS_NEXT_VERSION=2376 -#SCRIPTS_STABLE_VERSION=2360 +#SCRIPTS_NEXT_VERSION=2377 +#SCRIPTS_STABLE_VERSION=2377 ######################################################################## 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="1" From fb8d10986d60e474be1106495c3b449f36452e40 Mon Sep 17 00:00:00 2001 From: Htylol Date: Fri, 15 Nov 2024 07:31:29 +0500 Subject: [PATCH 56/62] New fixes after cumulative update --- data_from_portwine/scripts/functions_helper | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index a80ed26..f8ca772 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -1352,9 +1352,9 @@ get_and_set_reg_file () { esac name_block=${name_block//\\/\\\\\\\\} if [[ -n $name_for_new_block ]] ; then - find_block=$(grep -n "$name_block" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg") + find_block=$(grep -n "\[$name_block\]" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg") else - find_block=$(grep -n "$name_block" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/"*.reg) + find_block=$(grep -n "\[$name_block\]" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/"*.reg) fi if [[ -n $find_block ]] ; then if [[ -n $name_for_new_block ]] ; then @@ -1378,7 +1378,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 @@ -5796,6 +5796,7 @@ gui_userconf () { if command -v gsettings &>/dev/null ; then YAD_GTK_THEME=$(gsettings get org.gnome.desktop.interface gtk-theme) + [[ $YAD_GTK_THEME == \'Adwaita\' ]] && unset YAD_GTK_THEME [[ -n $YAD_GTK_THEME ]] && YAD_GTK_THEME="${YAD_GTK_THEME//\'/}!" fi if [[ -z $GTK_THEME ]] ; then GTK_THEME=${translations[default]} From cef2febc0415691f4f98274aabf6857b54e5b477 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Fri, 15 Nov 2024 12:02:17 +0300 Subject: [PATCH 57/62] STABLE: Scripts version 2378 --- data_from_portwine/changelog_en | 3 +++ data_from_portwine/changelog_ru | 11 +++++++---- data_from_portwine/scripts/var | 4 ++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/data_from_portwine/changelog_en b/data_from_portwine/changelog_en index df60af2..ca1cd57 100755 --- a/data_from_portwine/changelog_en +++ b/data_from_portwine/changelog_en @@ -2,6 +2,9 @@ You can help us in the development of the project on the website: https://linux- ---------------------------------------- Changelog: +###Scripts version 2378### / stable / Date: 15.11.2024 / Download update size: 4 megabytes +minor adjustments to the stable version of PortProto scripts + ###Scripts version 2377### / stable / Date: 15.11.2024 / Download update size: 220 megabytes * cumulative update to the stable version of PortProton scripts diff --git a/data_from_portwine/changelog_ru b/data_from_portwine/changelog_ru index d12bec0..9e6fd3b 100755 --- a/data_from_portwine/changelog_ru +++ b/data_from_portwine/changelog_ru @@ -2,21 +2,24 @@ ----------------------------------------- История изменений: +###Scripts version 2378### / stable / Дата: 15.11.2024 / Размер скачиваемого обновления: 4 мегабайта +* небольшие корректировки стабильной версии скриптов PortProton + ###Scripts version 2377### / stable / Дата: 15.11.2024 / Размер скачиваемого обновления: 220 мегабайт * кумулятивное обновление стабильной версии скриптов PortProton -###Scripts version 2376### / Дата: 14.11.2024 / Размер скачиваемого обновления: 4 мегабайт +###Scripts version 2376### / Дата: 14.11.2024 / Размер скачиваемого обновления: 4 мегабайта * исправлена функция изменения глобальных настроек -###Scripts version 2375### / Дата: 14.11.2024 / Размер скачиваемого обновления: 4 мегабайт +###Scripts version 2375### / Дата: 14.11.2024 / Размер скачиваемого обновления: 4 мегабайта * HOTFIX - исправлен долгий запуск на Alt p10 после обновления скриптов 2371 (спасибо Htylol) -###Scripts version 2374### / Дата: 12.11.2024 / Размер скачиваемого обновления: 4 мегабайт +###Scripts version 2374### / Дата: 12.11.2024 / Размер скачиваемого обновления: 4 мегабайта * добавлена поддержка DLSS 3 для видеокарт NVIDIA RTX 40XX * исправлена работа gamescope (спасибо Htylol) * общая оптимизация скриптов (спасибо Htylol) -###Scripts version 2373### / Дата: 10.11.2024 / Размер скачиваемого обновления: 215 мегабайт +###Scripts version 2373### / Дата: 10.11.2024 / Размер скачиваемого обновления: 215 мегабайта * обновлен PROTON_LG до версии "9-19" * обновлены версии: * DXVK_GIT "2.4.1-446" (совместно с dxvk-nvapi) diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index 9a8a5a1..f1328ef 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -1,7 +1,7 @@ #!/usr/bin/env bash #Author: Castro-Fidel (linux-gaming.ru) -#SCRIPTS_NEXT_VERSION=2377 -#SCRIPTS_STABLE_VERSION=2377 +#SCRIPTS_NEXT_VERSION=2378 +#SCRIPTS_STABLE_VERSION=2378 ######################################################################## 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="1" From 4f544f3f1913099bf33f4b8cc8f63f83fa00a390 Mon Sep 17 00:00:00 2001 From: Htylol Date: Fri, 15 Nov 2024 14:30:05 +0500 Subject: [PATCH 58/62] New fixes for portwine_search_shortcut --- data_from_portwine/scripts/functions_helper | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index a80ed26..de6f774 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -6189,22 +6189,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 } From a8f8cef1fbf11e1e3cb6fcb8770d9a015840fb25 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Fri, 15 Nov 2024 17:27:11 +0300 Subject: [PATCH 59/62] Scripts version 2379 --- data_from_portwine/changelog_en | 5 ++++- data_from_portwine/changelog_ru | 3 +++ data_from_portwine/scripts/functions_helper | 10 +++++++--- data_from_portwine/scripts/var | 4 ++-- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/data_from_portwine/changelog_en b/data_from_portwine/changelog_en index ca1cd57..9cd534c 100755 --- a/data_from_portwine/changelog_en +++ b/data_from_portwine/changelog_en @@ -2,8 +2,11 @@ You can help us in the development of the project on the website: https://linux- ---------------------------------------- Changelog: +###Scripts version 2379### / stable / Date: 15.11.2024 / Download update size: 4 megabytes +* HOTFIX - fix for problems related to the lack of sound (pulse by default) + ###Scripts version 2378### / stable / Date: 15.11.2024 / Download update size: 4 megabytes -minor adjustments to the stable version of PortProto scripts +* minor adjustments to the stable version of PortProton scripts ###Scripts version 2377### / stable / Date: 15.11.2024 / Download update size: 220 megabytes * cumulative update to the stable version of PortProton scripts diff --git a/data_from_portwine/changelog_ru b/data_from_portwine/changelog_ru index 9e6fd3b..0bfe585 100755 --- a/data_from_portwine/changelog_ru +++ b/data_from_portwine/changelog_ru @@ -2,6 +2,9 @@ ----------------------------------------- История изменений: +###Scripts version 2379### / stable / Дата: 15.11.2024 / Размер скачиваемого обновления: 4 мегабайта +* HOTFIX - исправление проблем связанных с отсуствием звука + ###Scripts version 2378### / stable / Дата: 15.11.2024 / Размер скачиваемого обновления: 4 мегабайта * небольшие корректировки стабильной версии скриптов PortProton diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 9fd18b4..6a1eebc 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -3915,9 +3915,13 @@ start_portwine () { get_and_set_reg_file --delete 'Software\Wine\Drivers' 'Graphics' fi - if [[ $PW_SOUND_DRIVER_USE != "disabled" ]] ; then - get_and_set_reg_file --add 'Software\Wine\Drivers' 'Audio' 'REG_SZ' "$PW_SOUND_DRIVER_USE" "user" - fi + + case "$PW_SOUND_DRIVER_USE" in + pulse) get_and_set_reg_file --add 'Software\Wine\Drivers' 'Audio' 'REG_SZ' "pulse" "user" ;; + alsa) get_and_set_reg_file --add 'Software\Wine\Drivers' 'Audio' 'REG_SZ' "alsa" "user" ;; + oss) get_and_set_reg_file --add 'Software\Wine\Drivers' 'Audio' 'REG_SZ' "oss" "user" ;; + *) get_and_set_reg_file --delete 'Software\Wine\Drivers' 'Audio' ;; + esac pw_stop_progress_bar if ! check_start_from_steam ; then diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index f1328ef..41adb9d 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -1,7 +1,7 @@ #!/usr/bin/env bash #Author: Castro-Fidel (linux-gaming.ru) -#SCRIPTS_NEXT_VERSION=2378 -#SCRIPTS_STABLE_VERSION=2378 +#SCRIPTS_NEXT_VERSION=2379 +#SCRIPTS_STABLE_VERSION=2379 ######################################################################## 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="1" From edddaf8562991b2715b9a0cde75b3d2fe19db24c Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Fri, 15 Nov 2024 17:47:48 +0300 Subject: [PATCH 60/62] fix typos in changelog --- data_from_portwine/changelog_ru | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data_from_portwine/changelog_ru b/data_from_portwine/changelog_ru index 0bfe585..8ed9d33 100755 --- a/data_from_portwine/changelog_ru +++ b/data_from_portwine/changelog_ru @@ -3,7 +3,7 @@ История изменений: ###Scripts version 2379### / stable / Дата: 15.11.2024 / Размер скачиваемого обновления: 4 мегабайта -* HOTFIX - исправление проблем связанных с отсуствием звука +* HOTFIX - исправление проблем связанных с отсутствием звука ###Scripts version 2378### / stable / Дата: 15.11.2024 / Размер скачиваемого обновления: 4 мегабайта * небольшие корректировки стабильной версии скриптов PortProton From b586de2b229260743d9abf79f316d751ae2462dc Mon Sep 17 00:00:00 2001 From: Htylol Date: Sun, 17 Nov 2024 07:23:36 +0500 Subject: [PATCH 61/62] Prefix unpacking bug fixes --- data_from_portwine/scripts/start.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 3524fc6..885b00f 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -344,7 +344,6 @@ if [[ $(basename "${portwine_exe,,}") =~ .ppack$ ]] ; then PW_PREFIX_NAME=$(basename "${1^^}" .PPACK) cat << EOF > "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack.sh #!/usr/bin/env bash - ${TMP_ALL_PATH} unsquashfs -f -d "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}" "$1" \ ${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 EOF From 3be53b3c36158b2fb27c69ef80579ef001d9563c Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Sun, 17 Nov 2024 13:58:18 +0300 Subject: [PATCH 62/62] Scripts version 2380 --- data_from_portwine/changelog_en | 3 +++ data_from_portwine/changelog_ru | 3 +++ data_from_portwine/scripts/var | 4 ++-- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/data_from_portwine/changelog_en b/data_from_portwine/changelog_en index 9cd534c..3a4331d 100755 --- a/data_from_portwine/changelog_en +++ b/data_from_portwine/changelog_en @@ -2,6 +2,9 @@ You can help us in the development of the project on the website: https://linux- ---------------------------------------- Changelog: +###Scripts version 2380### / stable / Date: 17.11.2024 / Download update size: 4 megabytes +* fixed unpacking of prefixes from backups (thanks to Htylol) + ###Scripts version 2379### / stable / Date: 15.11.2024 / Download update size: 4 megabytes * HOTFIX - fix for problems related to the lack of sound (pulse by default) diff --git a/data_from_portwine/changelog_ru b/data_from_portwine/changelog_ru index 8ed9d33..92d1980 100755 --- a/data_from_portwine/changelog_ru +++ b/data_from_portwine/changelog_ru @@ -2,6 +2,9 @@ ----------------------------------------- История изменений: +###Scripts version 2380### / stable / Дата: 17.11.2024 / Размер скачиваемого обновления: 4 мегабайта +* исправлена распаковка префиксов из резервных копий (спасибо Htylol) + ###Scripts version 2379### / stable / Дата: 15.11.2024 / Размер скачиваемого обновления: 4 мегабайта * HOTFIX - исправление проблем связанных с отсутствием звука diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index 41adb9d..4d3b0d7 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -1,7 +1,7 @@ #!/usr/bin/env bash #Author: Castro-Fidel (linux-gaming.ru) -#SCRIPTS_NEXT_VERSION=2379 -#SCRIPTS_STABLE_VERSION=2379 +#SCRIPTS_NEXT_VERSION=2380 +#SCRIPTS_STABLE_VERSION=2380 ######################################################################## 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="1"