forked from CastroFidel/PortWINE
		
	Scripts version 2284
This commit is contained in:
		| @@ -183,56 +183,70 @@ export -f check_process | ||||
|  | ||||
| try_download () { | ||||
|     local filename="$(basename "$1")" | ||||
|     local url="$url_cdn/$filename" | ||||
|     local dest="$2" | ||||
|     local silent="false" | ||||
|     local no_mirror="false" | ||||
|  | ||||
|     case "$3" in | ||||
|            silent) | ||||
|                 silent=true ;; | ||||
|         no_mirror) | ||||
|                 no_mirror=true | ||||
|                 url="$1" ;; | ||||
|     esac | ||||
|  | ||||
|     if [[ "${MIRROR}" == CDN ]] \ | ||||
|     && [[ "$no_mirror" != "true" ]] | ||||
|     then | ||||
|         FIRST_URL="$url_cdn/$filename" | ||||
|         SECOND_URL="$1" | ||||
|     else | ||||
|         FIRST_URL="$1" | ||||
|         SECOND_URL="$url_cdn/$filename" | ||||
|     fi | ||||
|  | ||||
|     [[ ! -f "${pw_yad_v13_0}" ]] && local pw_yad_v13_0="yad" | ||||
|  | ||||
|     # If gamescope session is active, use PW_TERM for downloading | ||||
|     if check_gamescope_session ; then | ||||
|         $PW_TERM curl -f -# -A 'Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)' -H 'Cache-Control: no-cache, no-store' \ | ||||
|         -H 'Pragma: no-cache' -L "$url" -o "$dest" | ||||
|         -H 'Pragma: no-cache' -L "$FIRST_URL" -o "$dest" | ||||
|         [ "$?" != 0 ] && return 1 || return 0 | ||||
|     fi | ||||
|  | ||||
|     # Normal download | ||||
|     print_info "Download $filename from $FIRST_URL..." | ||||
|     set -o pipefail | ||||
|     if [ "$silent" == "true" ] ; then | ||||
|     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 "$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 "$url" -o "$dest" 2>&1 | \ | ||||
|         -H 'Pragma: no-cache' -L "$FIRST_URL" -o "$dest" 2>&1 | \ | ||||
|         tr '\r' '\n' | sed -ur 's|[# ]+||g;s|.*=.*||g;s|.*|#Downloading at &\n&|g' | \ | ||||
|         "$pw_yad_v13_0" --progress --percentage=0 --text="$(eval_gettext "Downloading") $filename" --auto-close --no-escape \ | ||||
|         --auto-kill --center --text-align="center" --fixed --no-buttons --title "PortProton" --width=500 --height=90 \ | ||||
|         --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --borders=15 | ||||
|     fi | ||||
|  | ||||
|     if [ "${PIPESTATUS[0]}" != 0 ] ; then | ||||
|     if [[ "${PIPESTATUS[0]}" != 0 ]] ; then | ||||
|         if [[ "$no_mirror" != "true" ]] ; then | ||||
|             print_error "Failed to download $filename from $url, trying GITHUB mirror..." | ||||
|             url="$1" | ||||
|             print_warning "Failed download $filename from $FIRST_URL, trying mirror..." | ||||
|             curl -f -# -A 'Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)' -H 'Cache-Control: no-cache, no-store' \ | ||||
|             -H 'Pragma: no-cache' -L "$url" -o "$dest" 2>&1 | \ | ||||
|             -H 'Pragma: no-cache' -L "$SECOND_URL" -o "$dest" 2>&1 | \ | ||||
|             tr '\r' '\n' | sed -ur 's|[# ]+||g;s|.*=.*||g;s|.*|#Downloading at &\n&|g' | \ | ||||
|             "$pw_yad_v13_0" --progress --percentage=0 --text="$(eval_gettext "Downloading") $filename" --auto-close --no-escape \ | ||||
|             --auto-kill --center --text-align="center" --fixed --no-buttons --title "PortProton" --width=500 --height=90 \ | ||||
|             --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --borders=15 | ||||
|         fi | ||||
|         [[ "${PIPESTATUS[0]}" != 0 ]] && print_error "Failed to download $filename from GITHUB. Skipping." && return 1 | ||||
|         if [[ "${PIPESTATUS[0]}" != 0 ]] ; then | ||||
|             print_error "Failed to download $filename from mirror. Skipping..." | ||||
|             return 1 | ||||
|         else | ||||
|             print_ok "File downloaded successfully: $filename from $SECOND_URL" | ||||
|             return 0 | ||||
|         fi | ||||
|     fi | ||||
|  | ||||
|     print_ok "File downloaded successfully: $filename from $url" | ||||
|     print_ok "File downloaded successfully: $filename from $FIRST_URL" | ||||
|     return 0 | ||||
| } | ||||
|  | ||||
| @@ -334,7 +348,7 @@ unpack_tar_zst () { | ||||
|     pw_start_progress_bar_cover_block "${COVERS_PATH}/unpacking_${LANGUAGE}.gif" | ||||
|     if command -v zstd &>/dev/null ; then | ||||
|         tar -I zstd -xhf "$1" -C "$2" | ||||
|         pw_stop_progress_bar_cover_block | ||||
|         pw_stop_progress_bar_cover_block  | ||||
|         [ "${PIPESTATUS[0]}" != 0 ] && print_error "File $1 unpacking error." && return 1 || return 0 | ||||
|     else | ||||
|         env LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${PW_PLUGINS_PATH}/portable/lib/lib64:${PW_PLUGINS_PATH}/portable/lib/lib" tar -I "${PW_PLUGINS_PATH}/portable/bin/zstd" -xhvf "$1" -C "$2" | ||||
| @@ -436,10 +450,10 @@ pw_reinstall_pp () { | ||||
| check_user_conf () { | ||||
|     if [[ ! -f "${USER_CONF}" ]] ; then | ||||
|         cat << EOF > "${USER_CONF}" | ||||
|             echo "#!/usr/bin/env bash" | ||||
|             echo "# User overides db and var settings..." | ||||
|             echo "# export DXVK_HUD=full" | ||||
|             echo "# export GALLIUM_HUD=fps" | ||||
| #!/usr/bin/env bash" | ||||
| # User overides db and var settings..." | ||||
| # export DXVK_HUD=full" | ||||
| # export GALLIUM_HUD=fps" | ||||
| EOF | ||||
|     elif grep "optirun_on" "${USER_CONF}" &>/dev/null ; then | ||||
|         sed -i '/optirun_on/d' "${USER_CONF}" | ||||
| @@ -1241,13 +1255,11 @@ pw_port_update () { | ||||
|     then | ||||
|         URL_FOR_CHANGELOG="https://gitlab.eterfund.ru/Castro-Fidel/PortWINE/raw/master/data_from_portwine" | ||||
|         URL_TO_PW_MASTER="https://gitlab.eterfund.ru/Castro-Fidel/PortWINE/-/archive/master/PortWINE-master.tar.gz" | ||||
|         print_info "OK." | ||||
|     else | ||||
|         if curl -f -s --list-only --connect-timeout 3 "https://raw.githubusercontent.com/Castro-Fidel/PortWINE/master/data_from_portwine/scripts/var" > "${PORT_WINE_TMP_PATH}/curent_var_ver" | ||||
|         then | ||||
|             URL_FOR_CHANGELOG="https://raw.githubusercontent.com/Castro-Fidel/PortWINE/master/data_from_portwine" | ||||
|             URL_TO_PW_MASTER="https://github.com/Castro-Fidel/PortWINE/archive/refs/heads/master.tar.gz" | ||||
|             print_info "OK." | ||||
|         else | ||||
|             print_error "Unable to determine the version on the server. Skip it..." | ||||
|             return 1 | ||||
| @@ -1258,7 +1270,7 @@ pw_port_update () { | ||||
|     read "scripts_update_not" < "${PORT_WINE_TMP_PATH}/scripts_update_notifier" | ||||
|     if [[ "${scripts_update_not}" == "1" ]] ; then | ||||
|         scripts_current_ver=$(grep "SCRIPTS_NEXT_VERSION" "${PORT_WINE_TMP_PATH}/curent_var_ver" | awk -F "=" '{print $2}') | ||||
|         print_info "Scripts version in github = ${scripts_current_ver}" | ||||
|         print_info "Scripts version in git = ${scripts_current_ver}" | ||||
|         print_info "Scripts version local = ${scripts_install_ver}" | ||||
|         if [[ ! -z "${scripts_current_ver}" ]] &&  [[ "${scripts_current_ver}" -gt "${scripts_install_ver}" ]] ; then | ||||
|             if [[ -f "${PW_PLUGINS_PATH}/portable/bin/yad_v13_0" ]] | ||||
| @@ -2398,7 +2410,7 @@ pw_start_progress_bar_cover_block () { | ||||
|         PW_GIF_SIZE_X=$(file "${PW_GIF_FILE}" | awk '{print $7 + 8}') | ||||
|         PW_GIF_SIZE_Y=$(file "${PW_GIF_FILE}" | awk '{print $9 + 15}') | ||||
|         "${pw_yad_v13_0}" --picture --filename="${PW_GIF_FILE}" --close-on-unfocus --no-buttons --undecorated --center \ | ||||
|         --skip-taskbar "$PW_GIF_SIZE_X" --height="$PW_GIF_SIZE_Y" --window-icon="$PW_GUI_ICON_PATH/portproton.svg" > /dev/null 2>&1 & | ||||
|         --skip-taskbar --width="$PW_GIF_SIZE_X" --height="$PW_GIF_SIZE_Y" --window-icon="$PW_GUI_ICON_PATH/portproton.svg" > /dev/null 2>&1 & | ||||
|         export PW_YAD_PID_PROGRESS_BAR_COVER_BLOCK="$!" | ||||
|         return 0 | ||||
|     fi | ||||
| @@ -2543,7 +2555,7 @@ pw_tray_icon () { | ||||
|     } | ||||
|     export -f tray_icon_click_exit | ||||
|  | ||||
|     if check_flatpak | ||||
|     if check_flatpak || [[ "$PW_DESKTOP_THEME" == "universal" ]] | ||||
|     then TRAY_ICON="$PW_GUI_ICON_PATH/portproton_tray_flatpak.svg" | ||||
|     elif [[ "$PW_DESKTOP_THEME" == "dark" ]] | ||||
|     then TRAY_ICON="$PW_GUI_ICON_PATH/portproton_tray_dark.svg" | ||||
| @@ -2777,11 +2789,13 @@ A brief instruction: | ||||
|  | ||||
| gui_proton_downloader () { | ||||
|     if [[ "$PW_WINE_USE" == PROTON_LG ]] | ||||
|     then export PW_WINE_USE="${PW_PROTON_LG_VER}" | ||||
|     then PW_WINE_USE="${PW_PROTON_LG_VER}" | ||||
|     elif [[ "$PW_WINE_USE" == WINE_*_LG ]] || [[ "$PW_WINE_USE" == WINE_LG ]] | ||||
|     then export PW_WINE_USE="${PW_WINE_LG_VER}" | ||||
|     then PW_WINE_USE="${PW_WINE_LG_VER}" | ||||
|     fi | ||||
|     if [[ "$1" == "silent" ]] && [[ -d "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}" ]] ; then | ||||
|     export PW_WINE_USE | ||||
|     if [[ "$1" == "silent" ]] \ | ||||
|     && [[ -d "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}" ]] ; then | ||||
|         return 0 | ||||
|     fi | ||||
|     pw_start_progress_bar_block "$(eval_gettext "Check new version WINE...")" | ||||
| @@ -2818,7 +2832,7 @@ gui_proton_downloader () { | ||||
|     fi | ||||
|  | ||||
|     # PROTON_LG | ||||
|     export PROTON_PW_GIT=($(curl -s "$url_cdn/metainfo")) | ||||
|     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)) | ||||
|     try_remove_file "${PORT_WINE_TMP_PATH}/tmp_proton_pw_git" | ||||
|     if [[ ! -z "${PROTON_PW_GIT}" ]] ; then | ||||
|         for PPWGIT in ${PROTON_PW_GIT[@]} ; do | ||||
| @@ -3851,6 +3865,7 @@ gui_pw_update () { | ||||
|     /usr/bin/env bash -c ${pw_full_command_line[*]} & | ||||
|     exit 0 | ||||
| } | ||||
| export -f gui_pw_update | ||||
|  | ||||
| change_loc () { | ||||
|     try_remove_file "${PORT_WINE_TMP_PATH}/PortProton_loc" | ||||
| @@ -3859,6 +3874,22 @@ change_loc () { | ||||
|     /usr/bin/env bash -c ${pw_full_command_line[*]} & | ||||
|     exit 0 | ||||
| } | ||||
| export -f change_loc | ||||
|  | ||||
| change_mirror () { | ||||
|     if [[ "$MIRROR" == "CDN" ]] ; then | ||||
|         sed -i 's/="CDN"/="GITHUB"/g' "$USER_CONF" | ||||
|         yad_info "$(eval_gettext "Mirror changed to:") GITHUB" | ||||
|     else | ||||
|         sed -i 's/="GITHUB"/="CDN"/g' "$USER_CONF" | ||||
|         yad_info "$(eval_gettext "Mirror changed to:") CDN" | ||||
|     fi | ||||
|     print_info "Restarting PP for change mirror..." | ||||
|     export SKIP_CHECK_UPDATES=1 | ||||
|     /usr/bin/env bash -c ${pw_full_command_line[*]} & | ||||
|     exit 0 | ||||
| } | ||||
| export -f change_mirror | ||||
|  | ||||
| gui_wine_uninstaller () { | ||||
|     start_portwine | ||||
|   | ||||
| @@ -68,7 +68,7 @@ unset PW_CHECK_AUTOINSTAL PW_VKBASALT_EFFECTS PW_VKBASALT_FFX_CAS PORTWINE_DB PO | ||||
| unset CHK_SYMLINK_FILE PW_MESA_GL_VERSION_OVERRIDE MESA_GL_VERSION_OVERRIDE PATH_TO_GAME PW_START_DEBUG PORTPROTON_NAME FLATPAK_IN_USE | ||||
| unset PW_PREFIX_NAME WINEPREFIX VULKAN_MOD PW_WINE_VER PW_ADD_TO_ARGS_IN_RUNTIME PW_GAMEMODERUN_SLR AMD_VULKAN_ICD PW_WINE_CPU_TOPOLOGY | ||||
| unset PW_NAME_D_NAME PW_NAME_D_ICON PW_NAME_D_EXEC PW_EXEC_FROM_DESKTOP PW_ALL_DF PW_GENERATE_BUTTONS PW_NAME_D_ICON PW_NAME_D_ICON_48 | ||||
| unset MANGOHUD_CONFIG PW_WINE_USE WINEDLLPATH WINE WINEDIR WINELOADER WINESERVER PW_USE_RUNTIME PORTWINE_CREATE_SHORTCUT_NAME | ||||
| unset MANGOHUD_CONFIG PW_WINE_USE WINEDLLPATH WINE WINEDIR WINELOADER WINESERVER PW_USE_RUNTIME PORTWINE_CREATE_SHORTCUT_NAME MIRROR | ||||
|  | ||||
| export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp" | ||||
| rm -f "$PORT_WINE_TMP_PATH"/*{exe,msi,tar}* | ||||
| @@ -154,6 +154,7 @@ try_remove_file "${PORT_WINE_TMP_PATH}/update_pfx_log" | ||||
| # shellcheck source=/dev/null | ||||
| source "${USER_CONF}" | ||||
|  | ||||
| # check PortProton theme | ||||
| if [[ ! -z "$GUI_THEME" ]] \ | ||||
| && [[ -f "$PW_GUI_THEMES_PATH/$GUI_THEME.pptheme" ]] | ||||
| then | ||||
| @@ -165,9 +166,28 @@ else | ||||
| echo 'export GUI_THEME="default"' >> "$USER_CONF" | ||||
| fi | ||||
|  | ||||
| if [[ $(gsettings get org.gnome.desktop.interface color-scheme) == "'prefer-dark'" ]] | ||||
| then export PW_DESKTOP_THEME="dark" | ||||
| # check tray icon theme | ||||
| if gsettings get org.gnome.desktop.interface color-scheme &>/dev/null ; then | ||||
|     COLOR_SCHEME="$(gsettings get org.gnome.desktop.interface color-scheme 2>/dev/null)" | ||||
|     if [[ "$COLOR_SCHEME" == "'prefer-dark'" ]] | ||||
|     then PW_DESKTOP_THEME="dark" | ||||
|     fi | ||||
| else | ||||
|     PW_DESKTOP_THEME="universal" | ||||
| fi | ||||
| export PW_DESKTOP_THEME | ||||
|  | ||||
| # choose mirror | ||||
| if [[ -z "$MIRROR" ]] \ | ||||
| && [[ "$LANGUAGE" == "ru" ]] | ||||
| then | ||||
|     echo 'export MIRROR="CDN"' >> "$USER_CONF" | ||||
|     export MIRROR="CDN" | ||||
| elif [[ -z "$MIRROR" ]] ; then | ||||
|     echo 'export MIRROR="GITHUB"' >> "$USER_CONF" | ||||
|     export MIRROR="GITHUB" | ||||
| fi | ||||
| print_info "The first mirror in used: $MIRROR\n" | ||||
|  | ||||
| if [[ "${INSTALLING_PORT}" == 1 ]] ; then | ||||
|     return 0 | ||||
| @@ -177,6 +197,9 @@ if [[ "${SKIP_CHECK_UPDATES}" != 1 ]] \ | ||||
| && [[ ! -f "/tmp/portproton.lock" ]] | ||||
| then | ||||
|     pw_port_update | ||||
| else | ||||
|     scripts_install_ver=$(head -n 1 "${PORT_WINE_TMP_PATH}/scripts_ver") | ||||
|     export scripts_install_ver | ||||
| fi | ||||
| unset SKIP_CHECK_UPDATES | ||||
|  | ||||
| @@ -441,7 +464,9 @@ else | ||||
|     --field="   $(eval_gettext "Edit user.conf")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click gui_open_user_conf"' \ | ||||
|     --field="   $(eval_gettext "Scripts from backup")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click gui_open_scripts_from_backup"' \ | ||||
|     --field="   Xterm"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click pw_start_cont_xterm"' \ | ||||
|     --field="   $(eval_gettext "Credits")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click gui_credits"'  2>/dev/null & | ||||
|     --field="   $(eval_gettext "Credits")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click gui_credits"' \ | ||||
|     --field="   $(eval_gettext "Change mirror")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click change_mirror"' \ | ||||
|     2>/dev/null & | ||||
|  | ||||
|     "${pw_yad_v13_0}" --plug=${KEY} --tabnum="${PW_GUI_SORT_TABS[2]}" --form --columns=3 --align-buttons --separator=";" \ | ||||
|     --field="  3D API  : :CB" "${PW_DEFAULT_VULKAN_USE}" \ | ||||
| @@ -615,6 +640,7 @@ fi | ||||
|     gui_open_scripts_from_backup) gui_open_scripts_from_backup ;; | ||||
|     open_changelog) open_changelog ;; | ||||
|     change_loc) change_loc ;; | ||||
|     change_mirror) change_mirror ;; | ||||
|     120) gui_vkBasalt ;; | ||||
|     122) gui_MangoHud ;; | ||||
|     pw_create_prefix_backup) pw_create_prefix_backup ;; | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| #!/usr/bin/env bash | ||||
| #Author: Castro-Fidel (linux-gaming.ru) | ||||
| #SCRIPTS_NEXT_VERSION=2283 | ||||
| #SCRIPTS_NEXT_VERSION=2284 | ||||
| ######################################################################## | ||||
| export LANGUAGES_LIST="ru" | ||||
| export PW_MANGOHUD="0" | ||||
| @@ -44,18 +44,18 @@ 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-2" | ||||
| export PW_WINE_LG_VER="WINE_LG_9-2" | ||||
| export PW_PROTON_LG_VER="PROTON_LG_9-4" | ||||
| export PW_WINE_LG_VER="WINE_LG_9-7" | ||||
| export PW_WINE_FULLSCREEN_FSR="1" | ||||
| ###DXVK_AND_VKD3D### | ||||
| export VKD3D_LIMIT_TESS_FACTORS="64" | ||||
| export D8VK_VER="1.7.1-2367" | ||||
| export DXVK_STABLE_VER="1.10.3-28" | ||||
| export DXVK_GIT_VER="2.3.1" | ||||
| export DXVK_GIT_VER="2.3.1-9" | ||||
| export VKD3D_STABLE_VER="1.1-2602" | ||||
| export VKD3D_GIT_VER="1.1-3973" | ||||
| export VKD3D_GIT_VER="1.1-3980" | ||||
| ###PREFIX_VERSION### | ||||
| export DOTPFX_VER="48v4" | ||||
| export DOTPFX_VER="48v7" | ||||
| export DEFPFX_VER="v1" | ||||
| export PROGPFX_VER="v1" | ||||
| export PW_MUST_WINEDLLOVERRIDES="steam_api,steam_api64,steamclient,steamclient64=n;dotnetfx35.exe,dotnetfx35setup.exe=b;winemenubuilder.exe=" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user