From c322b56eedd6fffef179a9937ca7f8929e243b34 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Thu, 15 Feb 2024 05:34:45 +0300 Subject: [PATCH] Scripts version 2257 --- data_from_portwine/changelog_eng | 6 + data_from_portwine/changelog_rus | 8 +- data_from_portwine/img/gui/citra.png | Bin 2188 -> 8427 bytes data_from_portwine/img/gui/separator.png | Bin 468 -> 4158 bytes data_from_portwine/scripts/functions_helper | 137 ++++++-- data_from_portwine/scripts/lang | 8 + .../scripts/portwine_db/Caliber | 2 +- data_from_portwine/scripts/portwine_db/LOTF2 | 2 +- .../scripts/portwine_db/League of Legends | 2 +- .../scripts/pw_autoinstall/PW_CALIBER | 2 +- .../scripts/pw_autoinstall/PW_DUCKSTATION | 18 -- .../scripts/pw_autoinstall/PW_RPCS3 | 18 -- .../scripts/pw_autoinstall/PW_SCUMMVM | 20 -- data_from_portwine/scripts/runlib | 299 +++++++----------- data_from_portwine/scripts/start.sh | 34 +- data_from_portwine/scripts/var | 4 +- data_from_portwine/scripts/yad_gui | 19 +- 17 files changed, 265 insertions(+), 314 deletions(-) delete mode 100755 data_from_portwine/scripts/pw_autoinstall/PW_DUCKSTATION delete mode 100755 data_from_portwine/scripts/pw_autoinstall/PW_RPCS3 delete mode 100755 data_from_portwine/scripts/pw_autoinstall/PW_SCUMMVM diff --git a/data_from_portwine/changelog_eng b/data_from_portwine/changelog_eng index 66892de..7f296a8 100755 --- a/data_from_portwine/changelog_eng +++ b/data_from_portwine/changelog_eng @@ -2,6 +2,12 @@ You can help us in the development of the project on the website: https://linux- ---------------------------------------- Changelog: +###Scripts version 2257### Date: 15.02.2024 / Download update size: 15 megabytes +* for all setup.exe is automatically selected by WINE_LG (corrects errors unarc.dll ) +* added a function to disable compositing (thanks to Boria138) +* improved prefix update function +* many small script improvements + ###Scripts version 2256### Date: 13.02.2024 / Download update size: 15 megabytes * updated WINE_LG to version 9-2 * updated versions: diff --git a/data_from_portwine/changelog_rus b/data_from_portwine/changelog_rus index 47eb025..db471c0 100755 --- a/data_from_portwine/changelog_rus +++ b/data_from_portwine/changelog_rus @@ -2,7 +2,13 @@ ----------------------------------------- История изменений: -* для всех setup.exe автоматически используется WINE_LG (исправляет ошибки unarc.dll) +###Scripts version 2257### Дата: 15.02.2024 / Размер скачиваемого обновления: 15 мегабайт +* для всех setup.exe автоматически выбирается WINE_LG (исправляет ошибки unarc.dll) +* добавлена функция отключения композитинга (спасибо Boria138) +* для префиксов созданных вручную, добавлен выбор его наполнения (чистый, или с рекомендованными библиотеками) +* улучшена функция обновления префикса при смене версии WINE-PROTON +* улучшение переводов +* множество небольших улучшений скриптов ###Scripts version 2256### Дата: 13.02.2024 / Размер скачиваемого обновления: 15 мегабайт * обновлен WINE_LG до версии 9-2 diff --git a/data_from_portwine/img/gui/citra.png b/data_from_portwine/img/gui/citra.png index 2dc5c9c0a2faf72d594029b36618ec0c0babcf17..c3c3ccd14ecad6693c27ecb20f64803363a0e074 100755 GIT binary patch literal 8427 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 literal 2188 zcmV;72y^#|P)W#v%koKqiqnPzn?}zw$c1wy*6Q?r_dtpMRX&@)W`lR{9>-z|1V}pYzs1z!$-ef%IUY4B7*>3bQB8Y?a&% zGsctn#K0Z!4yaF;w-(7;|C0NN3UPUKc|LyZlK$%M(>v=vx$=^dapU9VevdpKm3s#$ zlUn_`8q3@ARwgM^Y_#PulY1_Ax%*mop8?<>mxQDs_t0T}n7nub=ITFLYP{-_ngtJk2*C5~qY218>5wSNv+LyfnB0@)VYSA z&eYoCYCI*a!!=NnHkYJHl(d}so$j4$hTi3N#1_?&w1RnO_Cl42pFUA%XIV(EV%Bc`&d9UYh~*n|5s^zOpO=RjReK)BguIGs(RIc0cG`EXmkzas0G8lLkjYQOLVdcsx z>HEN?3ew+DdjX-+X7JV$>#sGs5>d^KN)yUJxd)OAl1mFu+9;&gKyxjOE``=k5KyT> zHVRWOMr&S&JuA)f$>!VpNoLHRosLs~Uw=1f0anU@G6#H9%>1orzi5P2PNe;3e?CgJs2BjF2}V1C+oK55cqdV%wHO z_e5;>5E>f-=uRaiW)>xV8|90!G-vbgQZ_6SH3OHCKU?^^R)zZQUZgCI}@2&tJxxlcrK36{dpGlA8Y8(kHl%!q>S zgQ0#7bS02X0X+{K4$aG<^#rs6v;_H7(2-DG0Fy3(o+&W+1}yt71S?XX2}=y?IshQ= zoB=JylFtGeZ(m)anTs?UwZoxz9#qTV4-^1QgzQ&P{RcF+7G{nmh#9oDKx;d!e;npc zf&6T^cL6kppj-y`Li4l>dS?I(r;^V?@e&BI|YAd9PJRuAxjD(qb>OSHBgxkcYX=>Y=KGzJTIapZ;J^t6()bqfK4glN09Ua zkqO5IPI|-`ei3&3349HdfSx%}{yyxy5t1e(HR!HGGw&R<613Vdmci_sAwL7|JOM_x zzXxsr32J57;U~$ux>3wtOEJzYLePxX0Ia$ScCUb1TEu(hP^e!5TW^9e0x6Kz!6rcy zXansgls*GrSPGjP@W4EXBOSBn6zBq3aVgFHPLT!k?4JQ~XosHh=0am=1yp*Vl>-OE z)azl>5@_s%tWtpHQ=mKx@}A-VPQL->JPBLwht=o9j2av;y}&GXMg-JsirzU&jy@{@ z8}ax^3Uuwij65sSQ+p3|9|A`#g>_d!vmdH8XnSGu`j?Ac4_gLF9U8C08>hkEjc{NI zdIq7=2U{mYV-WKkg^GM6Gdum#XkFbwdF!6gJz*#S!%(~>HR~5rc>?M^2~Kzn*4+Zz zUW0aky<@Pq0kue6+Ca2oGZCA`P{_5zFA6Yrm;0J_7+y30hQ@6@l=?4A=HltHiA6?Bagwr-B3=z z0+1K+?uHVF`WQAm0kuaI$7JDqOLD7LgYx!GptNMnQM6DLWzQV)l4Q z%ct-2x&gSyMP^}%T4Py!`s$S3k64&7OIC9;ZAXoD&>AjGn|2n70@w^BWCoF<0hT7x z<_htxl5xrnd2;$?DW0#xl2bzno7~+(2r_q1LI}~_Z#3iQlI8LF>rE?unS?$RCV`cL z$x@KLhcG^a8pSbk!z>_=(vE0x>nw$nm*mNDXO$H54OloMB*_|g42~ZxS->PB!nb-jPt<%Xd#`cJa=FFplj_NF#23#VHhh@+>VAJAV;)8v4ToR zib>y!VfIDA4w@NEZu0mCEWJD=VQjqS?;}u<=(t0w5!+W1(w~`yUI}SvqiOpKQG4ES znp+_@jnD;^sj>-k%=(T`tnV2FFbv8a58CmE}=A+ z5M~xnAw{H}xWA3GoEYB;-94?2B8HiLRK@(ErO_uTy~nLd0LGL5F!?Wq7$8`>PL}Eb O0000kBgXAveu1#7+ z9<~k$;xMSCh!0Syf@OdzI#phkrwEGB0jj+I02x$j(UDP5+`E+04$L^6k^h>^<#xaQ zeZT#_-+sH3U7DYlosv8>*=f3 zVrppwVlXZS42F2)to-j&zQp?6yq-FI50SLowZ?y?$M9V}2Qwdz-gWh(+C@jdx#4+5 zDp;Ey9({7{kV_4ltf>{%4Ff9XyH`jThvf~mkHcKsPfPfvhyHmiEoE9=Qq9F}=avpE ze?4Peq44+m=l2bmSlrC^YK}J?ijB)S_jdZ#BO}i~Ti12xg~}D(ol~8@HKF1?TKpK&4M+v!`T_3!TKzqR&y zLr!5++M@2qW(JxLR5>cEEa#W4&N?dg%``PNZauwa`|85)o|xTy%(c+Fxb8yX@nc2h z3l5xg`Zk_@dE?W!nrXB#Nvhow9epLMnj@qIVN8gpctNM!gI`@}K$3oZg zne|0!W4FDy^za8Kz7YQSl<+qnnbQB2kqefkgq{%&zGNFScS_xc_cnMY9|~?;7rpgn z^{Nq%Y$|E$<2qdXP?QM<85`ODDkD_uYARK`MZ`rM9d-R!2K zvpn>A}XCi-z1io!zLie95ltl5mZwKLwZI$0{D4Q#W)xgC8x3J^Ib+v6r9Ex zjF0q1T(C&YDT~6XWqE$SY##3rj2RP>)8i~62tyTM@o-2|*tpZE^RlR|nF%ANL)3Xr zW1%k}bIDPN(I(nN;-0uzLK!C{W9d;Lz!tc(S}0J@X)IFJ2ul#LSj-f&nB-`XFgqL$ zf}{wF!Vv;jN+lJMVq7pqRA5shQF;|oW8zE*lkX;A^` zLBv6XFq=ps946X&D5|Ffk+cMKPY=b9b|6sz6}dRdLr)2m)KP6I1isZjQXCEG=?FXl zLoke>3Yyj2Zpv)0FTd48lOQODBf1w7yB$&$19!w~7n?Ssr_(kN>XHkxtRI2%RUnKl%YqavzG5NaEhMkOFB z3fM^!H~?;CXdb7n4ib?9fCC1=fQ=)~45V}_foHSiXc(a76vH40iHH=`2Qz4cwPy@)pX`CcV#qm2(zZiy7RiLS9wvjdmW2NnknW1Q#VH5ERS=q0)#QQt}!rf&)s z@QD-@Pyz)#PQ;ZM;){S3gy{5WDc9R}@m{51g*He70XNf>fU1eJ;vD1z98e6fTg*IQ zNUlA*A_vqMh{DVu(h+He%2U@08>27O*!JjH5!6-z35Jstez#ymOTvV9X57v=ow!Sr zbRE#gHPSPQLJLT$>t3wKO2;5m+opN&1 | \ tr '\r' '\n' | sed -ur 's|[# ]+||g;s|.*=.*||g;s|.*|#Downloading at &\n&|g' | \ - "${pw_yad_v12_3}" --progress --percentage=0 --text="Download ${PW_DOWNLOAD_FILE_NAME}" --auto-close --no-escape \ + "${pw_yad_v12_3}" --progress --percentage=0 --text="${loc_downloading} ${PW_DOWNLOAD_FILE_NAME}" --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 if [ "${PIPESTATUS[0]}" != 0 ] ; then @@ -143,7 +143,7 @@ try_download () { set -o pipefail curl -f -# -A "Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" -H 'Cache-Control: no-cache, no-store' -H 'Pragma: no-cache' -L "$1" -o "$2" 2>&1 | \ tr '\r' '\n' | sed -ur 's|[# ]+||g;s|.*=.*||g;s|.*|#Downloading at &\n&|g' | \ - "${pw_yad_v12_3}" --progress --percentage=0 --text="Download ${PW_DOWNLOAD_FILE_NAME}" --auto-close --no-escape \ + "${pw_yad_v12_3}" --progress --percentage=0 --text="${loc_downloading} ${PW_DOWNLOAD_FILE_NAME}" --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 if [ "${PIPESTATUS[0]}" != 0 ] ; then @@ -151,7 +151,7 @@ try_download () { print_info "Try download ${PW_DOWNLOAD_FILE_NAME} from FTP" curl -f -# -A "Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" -L "ftp://171.22.215.18/archives/${PW_DOWNLOAD_FILE_NAME}" -o "$2" 2>&1 | \ tr '\r' '\n' | sed -ur 's|[# ]+||g;s|.*=.*||g;s|.*|#Downloading at &\n&|g' | \ - "${pw_yad_v12_3}" --progress --percentage=0 --text="Download ${PW_DOWNLOAD_FILE_NAME}" --auto-close --no-escape \ + "${pw_yad_v12_3}" --progress --percentage=0 --text="${loc_downloading} ${PW_DOWNLOAD_FILE_NAME}" --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 if [ "${PIPESTATUS[0]}" != 0 ] ; then @@ -169,7 +169,7 @@ try_download_to_path () { set -o pipefail curl -f -# -A "Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" -H 'Cache-Control: no-cache, no-store' -H 'Pragma: no-cache' -L "$1" -o "$2/$PW_DOWNLOAD_FILE_NAME" 2>&1 | \ tr '\r' '\n' | sed -ur 's|[# ]+||g;s|.*=.*||g;s|.*|#Downloading at &\n&|g' | \ - "${pw_yad_v12_3}" --progress --percentage=0 --text="Download ${PW_DOWNLOAD_FILE_NAME}" --auto-close --no-escape \ + "${pw_yad_v12_3}" --progress --percentage=0 --text="${loc_downloading} ${PW_DOWNLOAD_FILE_NAME}" --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 if [ "${PIPESTATUS[0]}" != 0 ] ; then @@ -354,7 +354,7 @@ pw_reinstall_pp () { echo "" exit 1 fi - elif ! gui_question "${port_reinstall}" + elif ! yad_question "${port_reinstall}" then exit 1 fi pw_clear_pfx @@ -682,18 +682,24 @@ pw_kill_autostart () { export -f pw_kill_autostart stop_portwine () { - if [[ "$int_xneur" == "1" ]] ; then - xneur & - fi - if [[ "$PW_USE_US_LAYOUT" == "1" ]] && [[ "${XDG_SESSION_TYPE}" != "wayland" ]] && command -v setxkbmap &>/dev/null ; then + [[ "$int_xneur" == "1" ]] && xneur & + + if [[ "$PW_USE_US_LAYOUT" == "1" ]] \ + && [[ "${XDG_SESSION_TYPE}" != "wayland" ]] \ + && command -v setxkbmap &>/dev/null + then setxkbmap fi + if [[ "${XDG_SESSION_TYPE}" != "wayland" ]] \ && [[ "$(xrandr | sed -rn 's/^.*primary.* ([0-9]+x[0-9]+).*$/\1/p')" != "$PW_SCREEN_RESOLUTION" ]] then xrandr --output "$PW_SCREEN_PRIMARY" --mode "$PW_SCREEN_RESOLUTION" fi - if [[ "${PW_DISABLE_COMPOSITING}" == "1" ]] ; then + + if [[ "${PW_DISABLE_COMPOSITING}" == "1" ]] \ + && ! check_gamescope_session + then if [[ "${DESKTOP_SESSION}" =~ "plasma" ]] ; then qdbus org.kde.KWin /Compositor resume elif [[ "${DESKTOP_SESSION}" =~ "mate" ]] ; then @@ -704,13 +710,14 @@ stop_portwine () { gsettings set org.cinnamon.muffin unredirect-fullscreen-windows false fi fi + pw_stop_progress_bar try_remove_file "${PORT_SCRIPTS_PATH}/0" try_remove_file "${PORT_SCRIPTS_PATH}/1" kill_portwine && try_remove_dir "${PW_WINELIB}/var" find "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/" -maxdepth 1 -type f -name "*.tmp" -delete - if [ ! -z "`pgrep -a yad_v12_3 | grep "\--notification" | awk '{print $1}'`" ] ; then + if [[ ! -z "$(pgrep -a yad_v12_3 | grep "\--notification" | awk '{print $1}')" ]] ; then kill -s SIGUSR1 "`pgrep -a yad_v12_3 | grep "\--notification" | awk '{print $1}'`" 2>/dev/null fi add_in_stop_portwine #&>/dev/null @@ -881,11 +888,11 @@ pw_check_and_download_plugins () { if try_download "github.com/Castro-Fidel/wine_builds/releases/download/plugins${PW_PLUGINS_VER}/plugins${PW_PLUGINS_VER}.tar.xz" "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz" ; then if unpack_tar_xz "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz" "${PORT_WINE_TMP_PATH}" ; then try_remove_file "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz" - if [ ! -z "`ls ${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}` - do try_remove_dir "${PORT_WINE_TMP_PATH}/${RM_PLUGINS}" - done - fi + if [ ! -z "`ls ${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}` + do try_remove_dir "${PORT_WINE_TMP_PATH}/${RM_PLUGINS}" + done + fi else try_remove_file "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz" try_remove_dir "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}" @@ -906,7 +913,7 @@ pw_check_and_download_plugins () { fi else PW_NOTIFY_TEXT="Please wait for update PortProton" - pw_notify_send -u critical + pw_notify_send -u normal if try_download_silent "github.com/Castro-Fidel/wine_builds/releases/download/plugins${PW_PLUGINS_VER}/plugins${PW_PLUGINS_VER}.tar.xz" \ "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz" ; then if unpack_tar_xz "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz" "${PORT_WINE_TMP_PATH}" ; then @@ -932,6 +939,70 @@ pw_check_and_download_plugins () { return 0 } +check_dirs_and_files_in_pfx () { + create_new_dir "${WINEPREFIX}/dosdevices" + create_new_dir "${WINEPREFIX}/drive_c/windows/syswow64/" + create_new_dir "${WINEPREFIX}/drive_c/windows/system32/" + create_new_dir "${WINEPREFIX}/drive_c/tmp/.private/$USER/" + create_new_dir "${WINEPREFIX}/drive_c/tmp/.private/steamuser/" + + [ ! -d "${WINEPREFIX}/dosdevices/c:" ] && try_force_link_dir "${WINEPREFIX}/drive_c/" "${WINEPREFIX}/dosdevices/c:" + [ ! -d "${WINEPREFIX}/dosdevices/z:" ] && try_force_link_dir "/" "${WINEPREFIX}/dosdevices/z:" + [ ! -d "${WINEPREFIX}/dosdevices/h:" ] && try_force_link_dir "$HOME" "${WINEPREFIX}/dosdevices/h:" + + create_new_dir "${WINEPREFIX}/drive_c/windows/Fonts/" + LN_FONTS="arialbd.ttf courbd.ttf georgia.ttf micross.ttf msyh.ttf simsun.ttc arial.ttf cour.ttf malgun.ttf msgothic.ttc nirmala.ttf times.ttf" + for link_font in $LN_FONTS ; do + if [[ ! -f "${WINEPREFIX}/drive_c/windows/Fonts/${link_font}" ]] ; then + try_force_link_file "${WINEDIR}/share/fonts/${link_font}" "${WINEPREFIX}/drive_c/windows/Fonts/" + fi + done + + create_new_dir "${WINEPREFIX}/drive_c/users/steamuser" + if [[ ! -d "${WINEPREFIX}/drive_c/users/${USER}" ]] + then try_force_link_dir "${WINEPREFIX}/drive_c/users/steamuser" "${WINEPREFIX}/drive_c/users/${USER}" + fi + + create_new_dir "${WINEPREFIX}/drive_c/users/Public/Documents/Steam" + create_new_dir "${WINEPREFIX}/drive_c/users/steamuser/Documents/Steam" + if [[ ! -d "${WINEPREFIX}/drive_c/users/steamuser/My Documents" ]] + then try_force_link_dir "${WINEPREFIX}/drive_c/users/steamuser/Documents" "${WINEPREFIX}/drive_c/users/steamuser/My Documents" + fi + + create_new_dir "${WINEPREFIX}/drive_c/users/steamuser/AppData/Roaming" + if [[ ! -d "${WINEPREFIX}/drive_c/users/steamuser/Application Data" ]] + then try_force_link_dir "${WINEPREFIX}/drive_c/users/steamuser/AppData/Roaming" "${WINEPREFIX}/drive_c/users/steamuser/Application Data" + fi + + create_new_dir "${WINEPREFIX}/drive_c/users/steamuser/AppData/Local" + create_new_dir "${WINEPREFIX}/drive_c/users/steamuser/Local Settings" + if [[ ! -d "${WINEPREFIX}/drive_c/users/steamuser/Local Settings/Application Data" ]] + then try_force_link_dir "${WINEPREFIX}/drive_c/users/steamuser/AppData/Local" "${WINEPREFIX}/drive_c/users/steamuser/Local Settings/Application Data" + fi + + find "${WINEPREFIX}/dosdevices" -xtype l -maxdepth 1 2>/dev/null -exec rm {} \; + rm -f "${WINEPREFIX}/dosdevices/"*:: + DRIVES=(d e f g i j k l m n o p q r s t u v w x y) + DEF_MOUNT_DIRS=('/media' "/media/$USER" '/mnt' '/run/media' "/run/media/$USER") + MOUNT_DIRS=($(find "${DEF_MOUNT_DIRS[@]}" -maxdepth 1 -type d 2>/dev/null | sort -u)) + + for drive_dir in "${MOUNT_DIRS[@]}" ; do + if [[ ! "${DEF_MOUNT_DIRS[@]}" =~ "$drive_dir" ]] \ + && ! realpath "${WINEPREFIX}/dosdevices"/*: | grep "$drive_dir" &>/dev/null ; then + drive_num=0 + while [[ "$drive_num" -lt "${#DRIVES[@]}" ]] ; do + drive_path="${WINEPREFIX}/dosdevices/${DRIVES[$drive_num]}:" + if [ ! -d "$drive_path" ] ; then + ln -sf "$drive_dir" "$drive_path" + break + else + ((drive_num++)) + fi + done + fi + done + } + check_nvidia_rtx () { if [[ ! -z $(echo "$LSPCI_VGA" | grep -i "nvidia") ]]; then # Turing (without nvidia 16XX) @@ -1138,15 +1209,15 @@ update_winetricks () { edit_db_from_gui () { print_info "edit_db_from_gui PORTWINE_DB_FILE=$PORTWINE_DB_FILE" for mod_db in $@ ; do - print_info "${mod_db}=${!mod_db}" - if [ -z "`cat "${PORTWINE_DB_FILE}" | grep "export ${mod_db}="`" ] ; then - echo "export ${mod_db}=\"${!mod_db}\"" >> "${PORTWINE_DB_FILE}" - elif [ "`cat "${PORTWINE_DB_FILE}" | grep "export ${mod_db}=" | grep -v "#"`" ] ; then - if [ "`cat "${PORTWINE_DB_FILE}" | grep "export ${mod_db}=" | grep -v "#"`" != "export ${mod_db}=\"${!mod_db}\"" ] ; then - sed -ri "s/^export ${mod_db}=.*/export ${mod_db}=\"${!mod_db}\"/" "${PORTWINE_DB_FILE}" + if ! grep "export ${mod_db}=" "${PORTWINE_DB_FILE}" &>/dev/null + then echo "export ${mod_db}=\"${!mod_db}\"" >> "${PORTWINE_DB_FILE}" + elif grep "export ${mod_db}=" "${PORTWINE_DB_FILE}" | grep -v "#" &>/dev/null + then + if [[ "$(grep "export ${mod_db}=" "${PORTWINE_DB_FILE}" | grep -v "#")" != "export ${mod_db}=\"${!mod_db}\"" ]] + then sed -ri "s/^export ${mod_db}=.*/export ${mod_db}=\"${!mod_db}\"/" "${PORTWINE_DB_FILE}" fi - elif [ "`cat "${PORTWINE_DB_FILE}" | grep "export ${mod_db}="`" != "export ${mod_db}=${!mod_db}" ] ; then - sed -ri "s/.*export ${mod_db}=.*/export ${mod_db}=\"${!mod_db}\"/g" "${PORTWINE_DB_FILE}" + elif [[ "$(grep "export ${mod_db}=" "${PORTWINE_DB_FILE}")" != "export ${mod_db}=${!mod_db}" ]] + then sed -ri "s/.*export ${mod_db}=.*/export ${mod_db}=\"${!mod_db}\"/g" "${PORTWINE_DB_FILE}" fi done return 0 @@ -1154,15 +1225,15 @@ edit_db_from_gui () { edit_user_conf_from_gui () { for mod_db in $@ ; do - print_info "${mod_db}=${!mod_db}" - if [ -z "`cat "${USER_CONF}" | grep "export ${mod_db}="`" ] ; then - echo "export ${mod_db}=\"${!mod_db}\"" >> "${USER_CONF}" - elif [ "`cat "${USER_CONF}" | grep "export ${mod_db}=" | grep -v "#"`" ] ; then - if [ "`cat "${USER_CONF}" | grep "export ${mod_db}=" | grep -v "#"`" != "export ${mod_db}=\"${!mod_db}\"" ] ; then - sed -ri "s/^export ${mod_db}=.*/export ${mod_db}=\"${!mod_db}\"/" "${USER_CONF}" + if ! grep "export ${mod_db}=" "${USER_CONF}" &>/dev/null + then echo "export ${mod_db}=\"${!mod_db}\"" >> "${USER_CONF}" + elif grep "export ${mod_db}=" "${USER_CONF}" | grep -v "#" &>/dev/null + then + if [[ "$(grep "export ${mod_db}=" "${USER_CONF}" | grep -v "#")" != "export ${mod_db}=\"${!mod_db}\"" ]] + then sed -ri "s/^export ${mod_db}=.*/export ${mod_db}=\"${!mod_db}\"/" "${USER_CONF}" fi - elif [ "`cat "${USER_CONF}" | grep "export ${mod_db}="`" != "export ${mod_db}=${!mod_db}" ] ; then - sed -ri "s/.*export ${mod_db}=.*/export ${mod_db}=\"${!mod_db}\"/g" "${USER_CONF}" + elif [[ "$(grep "export ${mod_db}=" "${USER_CONF}")" != "export ${mod_db}=${!mod_db}" ]] + then sed -ri "s/.*export ${mod_db}=.*/export ${mod_db}=\"${!mod_db}\"/g" "${USER_CONF}" fi done return 0 diff --git a/data_from_portwine/scripts/lang b/data_from_portwine/scripts/lang index 33d89f5..1ac53e9 100755 --- a/data_from_portwine/scripts/lang +++ b/data_from_portwine/scripts/lang @@ -122,9 +122,12 @@ if [[ "${update_loc}" == "RUS" ]] ; then export loc_winetricks="Запустить префикс менеджер для установки доп. библиотек в выбранный префикс" export loc_edit_db="Изменить файл настроек для" export loc_download_other_wine="Открыть меню для скачивания других версий WINE-PROTON" + export loc_downloading="Скачивание" export loc_clear_pfx="Очистить префикс для исправления проблем" + export loc_gui_dll_new_pfx="Установить рекомендованные библиотеки в новый префикс: " + export ENABLE_VKBASALT_INFO='Включить vkBasalt по умолчанию для улучшение графики в играх работающих под Vulkan. (Горячая клавиша HOME отключает vkbasalt)' export PW_NO_ESYNC_INFO='Не использовать примитивы внутрипроцессной синхронизации на основе eventfd. (Рекомендуется не изменять значение)' export PW_NO_FSYNC_INFO='Не использовать примитивы внутрипроцессной синхронизации на основе фьютексов. (Автоматически отключается в системах без FUTEX_WAIT_MULTIPLE поддержки) (Рекомендуется не изменять значение)' @@ -161,6 +164,7 @@ if [[ "${update_loc}" == "RUS" ]] ; then export PW_USE_SYSTEM_VK_LAYERS_INFO='Использовать системные mangohud, vkBasalt, obs-vkcapture и прочие приложения использующие vulkan layers' export PW_USE_OBS_VKCAPTURE_INFO='Включить возможность записи в OBS Studio с помощью obs-vkcapture (ВНИМАНИЕ: будет включено принудительное использование системных mangohud, vkBasalt, obs-vkcapture и прочих приложений использующих vulkan layers)' export PW_USE_GALLIUM_ZINK_INFO='Использовать драйвер zink (OpenGL поверх Vulkan), позволяет использовать vkBasalt в играх на OpenGL (ВНИМАНИЕ: необходима поддержка vulkan, используется wined3d (opengl) вместо dxvk, подходит для игр на OpenGL и старых версий DirectX, на более новых версиях DirectX возможны артефакты)' + export PW_DISABLE_COMPOSITING_INFO='Отключить композитинг (эффекты) рабочего стола. Зачастую улучшает производительность.' export PW_3DFX_INFO='Имитация старого графического ускорителя 3dfx (добавляет горизонтальные полосы)' export PW_AdaptiveSharpen_INFO='Увеличение резкости, можно использовать совместно с CAS' @@ -527,9 +531,12 @@ elif [[ "${update_loc}" == "ENG" ]] ; then export loc_winetricks="Run winetricks to install additional libraries to the selected prefix" export loc_edit_db="Edit database file for" export loc_download_other_wine="Open the menu to download other versions of WINE-PROTON " + export loc_downloading="Downloading" export loc_clear_pfx="Clear the prefix to fix problems" + export loc_gui_dll_new_pfx="Do you want to installing recommended libraries in the new prefix: " + export ENABLE_VKBASALT_INFO='Enable vkBasalt by default to improve graphics in games running on Vulkan. (The HOME hotkey disables vkbasalt)' export PW_NO_ESYNC_INFO='Do not use in-process synchronization primitives based on eventfd. (It is recommended not to change the value.)' export PW_NO_FSYNC_INFO='Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems without FUTEX_WAIT_MULTIPLE support) (It is recommended not to change the value)' @@ -566,6 +573,7 @@ elif [[ "${update_loc}" == "ENG" ]] ; then export PW_USE_SYSTEM_VK_LAYERS_INFO='Use system mangohud, vkBasalt, obs-vkcapture and other applications using vulkan layers' export PW_USE_OBS_VKCAPTURE_INFO='Enable the ability to write to OBS Studio using obs-vkcapture (ATTENTION: the forced use of system mangohud, vkBasalt, obs-vkcapture and other applications using vulkan layers will be enabled)' export PW_USE_GALLIUM_ZINK_INFO='Use the zink driver (OpenGL on top of Vulkan), allows you to use vkBasalt in OpenGL games (ATTENTION: vulkan support is required, wined3d (opengl) is used instead of dxvk, suitable for games on OpenGL and older versions of DirectX, artifacts are possible on newer versions of DirectX)' + export PW_DISABLE_COMPOSITING_INFO='Disable desktop compositing (effects). It often improves performance.' export PW_3DFX_INFO='Simulation of an old 3dfx graphics accelerator (adds horizontal stripes)' export PW_AdaptiveSharpen_INFO='Sharpness increase, can be used with CAS' diff --git a/data_from_portwine/scripts/portwine_db/Caliber b/data_from_portwine/scripts/portwine_db/Caliber index 2007257..579557b 100644 --- a/data_from_portwine/scripts/portwine_db/Caliber +++ b/data_from_portwine/scripts/portwine_db/Caliber @@ -4,6 +4,6 @@ #Rating=1-5 #####################examples########################### export PW_VULKAN_USE="2" -export PW_WINE_USE="WINE_LG_9-0" +export PW_WINE_USE="WINE_LG" export PW_PREFIX_NAME="CALIBER" export DISABLE_CP_DEFPFX=1 diff --git a/data_from_portwine/scripts/portwine_db/LOTF2 b/data_from_portwine/scripts/portwine_db/LOTF2 index 8f22b7a..75a6a1d 100644 --- a/data_from_portwine/scripts/portwine_db/LOTF2 +++ b/data_from_portwine/scripts/portwine_db/LOTF2 @@ -3,4 +3,4 @@ #LOTF2.exe #Rating=5 #####################examples########################### -export PW_WINE_USE="WINE_LG_8-18-1" +export PW_WINE_USE="WINE_LG" diff --git a/data_from_portwine/scripts/portwine_db/League of Legends b/data_from_portwine/scripts/portwine_db/League of Legends index 944c945..6c8e73b 100755 --- a/data_from_portwine/scripts/portwine_db/League of Legends +++ b/data_from_portwine/scripts/portwine_db/League of Legends @@ -9,7 +9,7 @@ #Rating=1-5 #####################examples########################### export TEXT_OPSSL="" -[[ -z `which openssl` ]] && export TEXT_OPSSL="Install openssl in your system!!!\n" +[[ -z `which openssl` ]] && export TEXT_OPSSL="Install openssl in your system!\n" export PW_COMMENT_DB="${TEXT_OPSSL}Dwnload and start League of Legends can take a long time" # export WINEDLLOVERRIDES="mscoree,mshtml=" export LAUNCH_PARAMETERS="--launch-product=league_of_legends --launch-patchline=live" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_CALIBER b/data_from_portwine/scripts/pw_autoinstall/PW_CALIBER index 12c4c1f..dfda15a 100644 --- a/data_from_portwine/scripts/pw_autoinstall/PW_CALIBER +++ b/data_from_portwine/scripts/pw_autoinstall/PW_CALIBER @@ -4,7 +4,7 @@ export PW_PREFIX_NAME="CALIBER" export LAUNCH_PARAMETERS=("/VERYSILENT") export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/CaliberSetup.exe" -export PW_WINE_USE=WINE_LG_9-0 +export PW_WINE_USE=WINE_LG export DISABLE_CP_DEFPFX=1 export PORTWINE_CREATE_SHORTCUT_NAME="CALIBER" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_DUCKSTATION b/data_from_portwine/scripts/pw_autoinstall/PW_DUCKSTATION deleted file mode 100755 index d086138..0000000 --- a/data_from_portwine/scripts/pw_autoinstall/PW_DUCKSTATION +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash -# Author: chal55rus (Sergey P.) -######################################################################## -export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/duckstation-windows-x64-release.zip" -start_portwine -if try_download_no_mirror "https://github.com/stenzek/duckstation/releases/download/preview/duckstation-windows-x64-release.zip" "${PW_AUTOINSTALL_EXE}" -then - pw_start_progress_bar_block "${loc_gui_installing_the} VBA-M. ${loc_gui_please_wait} " - "$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)/Duckstation" - portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Duckstation/duckstation-qt-x64-ReleaseLTCG.exe" - try_remove_file "${PW_AUTOINSTALL_EXE}" - try_remove_file "${portwine_exe}.ppdb" - kill_portwine - pw_stop_progress_bar - export PORTWINE_CREATE_SHORTCUT_NAME="DuckStation" - portwine_create_shortcut -fi -stop_portwine diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_RPCS3 b/data_from_portwine/scripts/pw_autoinstall/PW_RPCS3 deleted file mode 100755 index 1e12d93..0000000 --- a/data_from_portwine/scripts/pw_autoinstall/PW_RPCS3 +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash -# Author: chal55rus (Sergey P.) -######################################################################## -export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/rpcs3-v0.0.29-15676-9fce7080_win64.7z" -start_portwine -if try_download_no_mirror "https://github.com/RPCS3/rpcs3-binaries-win/releases/download/build-9fce70809ee06a7e61a3dbe5bb9b0179fc541d9f/rpcs3-v0.0.29-15676-9fce7080_win64.7z" "${PW_AUTOINSTALL_EXE}" -then - pw_start_progress_bar_block "${loc_gui_installing_the} RPCS3. ${loc_gui_please_wait} " - "$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)/RPCS3" - portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/RPCS3/rpcs3.exe" - try_remove_file "${PW_AUTOINSTALL_EXE}" - try_remove_file "${portwine_exe}.ppdb" - kill_portwine - pw_stop_progress_bar - export PORTWINE_CREATE_SHORTCUT_NAME="RPCS3" - portwine_create_shortcut -fi -stop_portwine diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_SCUMMVM b/data_from_portwine/scripts/pw_autoinstall/PW_SCUMMVM deleted file mode 100755 index a64c4be..0000000 --- a/data_from_portwine/scripts/pw_autoinstall/PW_SCUMMVM +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env bash -# Author: chal55rus (Sergey P.) -########################################################################## -export LAUNCH_PARAMETERS=("/VERYSILENT") -export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/scummvm-2.7.1-win32.exe" -start_portwine -if try_download_no_mirror "https://downloads.scummvm.org/frs/scummvm/2.7.1/scummvm-2.7.1-win32.exe" "${PW_AUTOINSTALL_EXE}" -then - pw_start_progress_bar_block "${loc_gui_installing_the} ScummVM. ${loc_gui_please_wait} " - #pw_kill_autostart launcher101xp.exe & - pw_run "${PW_AUTOINSTALL_EXE}" - portwine_exe="$WINEPREFIX/drive_c/Program Files/ScummVM/scummvm.exe" - try_remove_file "${PW_AUTOINSTALL_EXE}" - try_remove_file "${portwine_exe}.ppdb" - kill_portwine - pw_stop_progress_bar - export PORTWINE_CREATE_SHORTCUT_NAME="ScummVM" - portwine_create_shortcut -fi -stop_portwine diff --git a/data_from_portwine/scripts/runlib b/data_from_portwine/scripts/runlib index dc2b92c..019da9a 100755 --- a/data_from_portwine/scripts/runlib +++ b/data_from_portwine/scripts/runlib @@ -22,50 +22,36 @@ fi . "$(dirname $(readlink -f "$0"))/functions_helper" start_portwine () { - var_winedlloverride_update "${PW_MUST_WINEDLLOVERRIDES}" export WINEPREFIX="$(readlink -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}")" - if [[ "$WINEPREFIX" != "${PORT_WINE_PATH}/data/prefixes/"* ]] && [[ ! -d "$WINEPREFIX" ]] ; then - yad_error "Path to PREFIX not found:\n$WINEPREFIX" - exit 1 - fi - create_new_dir "${WINEPREFIX}/drive_c/windows/system32/" - create_new_dir "${WINEPREFIX}/drive_c/windows/syswow64/" - try_force_link_dir "${PORT_WINE_PATH}/data/prefixes" "${WINEPREFIX}/drive_c/" - export WINEARCH="win64" - if [[ "${PW_VULKAN_USE}" == 3 ]] ; then - export PW_WINE_USE="${PW_PROTON_LG_VER}" - echo "Force to use $PW_WINE_USE" - if [ ! -d "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}" ] ; then - if try_download "github.com/Castro-Fidel/wine_builds/releases/download/${PW_WINE_USE}/${PW_WINE_USE}.tar.xz" \ - "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz" ; then - if unpack_tar_xz "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz" "${PORT_WINE_PATH}/data/dist/" ; then - try_remove_file "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz" - UNPACK_STATUS=0 - else - try_remove_file "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz" - try_remove_dir "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}" - fi - fi - [[ "${UNPACK_STATUS}" != 0 ]] && exit 1 + + PROGPFX_URL="github.com/Castro-Fidel/PortWINE/releases/download/progpfx${PROGPFX_VER}/progpfx${PROGPFX_VER}.tar.xz" + if [[ "${PW_PREFIX_NAME}" == "PROGRAMS" && ! -f "${WINEPREFIX}"/.progpfx ]] ; then + print_info "Download and install PROGRAMS pfx..." + if try_download "${PROGPFX_URL}" "${PORT_WINE_PATH}/data/tmp/progpfx.tar.xz" ; then + unpack_tar_xz "${PORT_WINE_PATH}/data/tmp/progpfx.tar.xz" "${PORT_WINE_PATH}/data/prefixes/" + try_remove_file "${PORT_WINE_PATH}/data/tmp/progpfx.tar.xz" + else + try_remove_file "${PORT_WINE_PATH}/data/tmp/progpfx.tar.xz" + yad_error_download && exit 1 fi - edit_db_from_gui PW_WINE_USE - else - pw_check_and_download_wine "${PW_WINE_USE}" fi - pw_install_dll_in_prefix + + DOTPFX_URL="github.com/Castro-Fidel/PortWINE/releases/download/dotpfx${DOTPFX_VER}/dotpfx${DOTPFX_VER}.tar.xz" + if [[ "${PW_PREFIX_NAME}" == "DOTNET" ]] && [[ ! -f "${WINEPREFIX}"/.dotnet${DOTPFX_VER} ]] ; then + print_info "Download and install DOTNET pfx..." + if try_download "${DOTPFX_URL}" "${PORT_WINE_PATH}/data/tmp/dotpfx.tar.xz" ; then + unpack_tar_xz "${PORT_WINE_PATH}/data/tmp/dotpfx.tar.xz" "${PORT_WINE_PATH}/data/prefixes/" + try_remove_file "${PORT_WINE_PATH}/data/tmp/dotpfx.tar.xz" + else + try_remove_file "${PORT_WINE_PATH}/data/tmp/dotpfx.tar.xz" + yad_error_download && exit 1 + fi + fi + + var_winedlloverride_update "${PW_MUST_WINEDLLOVERRIDES}" + pw_list_install_dll_in_prefix + pw_check_and_download_wine "${PW_WINE_USE}" init_wine_ver - - if [[ -f "$portwine_exe" ]] && [[ "${WARN_CYRILLIC_IN_PATH}" == 1 ]] ; then - edit_db_from_gui WARN_CYRILLIC_IN_PATH - unset WARN_CYRILLIC_IN_PATH - fi - - if [[ "$PW_USE_OBS_VKCAPTURE" == "1" ]] ; then - export OBS_VKCAPTURE="1" - export PW_USE_SYSTEM_VK_LAYERS="1" - print_warning "System mangohud, vkBasalt, obs-vk capture and other applications using vulkan layers are forcibly used." - fi - pw_init_runtime check_variables VKD3D_DEBUG none @@ -82,6 +68,65 @@ start_portwine () { unset WINE_MONO_TRACE fi + if [[ ! -d "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/drive_c/windows ]] \ + || [[ ! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/userdef.reg ]] \ + || [[ ! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/system.reg ]] \ + || [[ ! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/user.reg ]] + then + pw_clear_pfx + check_dirs_and_files_in_pfx + + pw_wineboot () { + print_info "Used wineboot $@ for prefix: ${PW_PREFIX_NAME}" + ${pw_runtime} env GST_PLUGIN_SYSTEM_PATH_1_0="" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \ + "${WINELOADER}" wineboot $@ &>>"${PORT_WINE_TMP_PATH}/update_pfx_log" + wait_wineserver + print_info "The prefix has been updated." + } + + if [[ "${PW_PREFIX_NAME}" == DEFAULT ]] ; then + pw_update_pfx_cover_gui + unpack_tar_xz "${PW_WINELIB}/default_pfx.tar.xz" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/" silent + pw_wineboot -u + elif [[ "${PW_CHECK_AUTOINSTAL}" == 1 ]] \ + && [[ "${DISABLE_CP_DEFPFX}" != 1 ]] ; then + pw_update_pfx_cover_gui + unpack_tar_xz "${PW_WINELIB}/default_pfx.tar.xz" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/" silent + pw_wineboot -u + elif yad_question "$loc_gui_dll_new_pfx ${PW_PREFIX_NAME}" ; then + pw_update_pfx_cover_gui + unpack_tar_xz "${PW_WINELIB}/default_pfx.tar.xz" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/" silent + pw_wineboot -u + else + pw_update_pfx_cover_gui + pw_wineboot -i + fi + else + check_dirs_and_files_in_pfx + if [[ ! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.wine_ver" ]] \ + || ! grep "${PW_WINE_USE}" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.wine_ver" &>/dev/null + then + pw_update_pfx_cover_gui + # HOTFIX - update prefix for vkPlay + if echo "$portwine_exe" | grep -i vkplay &>/dev/null + then pw_kill_autostart GameCe 5 please & : + fi + pw_wineboot -u + fi + fi + echo "${PW_WINE_USE}" > "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.wine_ver" + + # if [[ -f "$portwine_exe" ]] && [[ "${WARN_CYRILLIC_IN_PATH}" == 1 ]] ; then + # edit_db_from_gui WARN_CYRILLIC_IN_PATH + # unset WARN_CYRILLIC_IN_PATH + # fi + + if [[ "$PW_USE_OBS_VKCAPTURE" == "1" ]] ; then + export OBS_VKCAPTURE="1" + export PW_USE_SYSTEM_VK_LAYERS="1" + print_warning "System mangohud, vkBasalt, obs-vk capture and other applications using vulkan layers are forcibly used." + fi + if [[ "${PW_NO_ESYNC}" == 1 ]] then export WINEESYNC="0" else export WINEESYNC="1" @@ -134,18 +179,6 @@ start_portwine () { export PW_USE_GAMESCOPE="0" export PW_RUN_GAMESCOPE="" fi - - if [[ "${PW_DISABLE_COMPOSITING}" == "1" ]] ; then - if [[ "${DESKTOP_SESSION}" =~ "plasma" ]] ; then - qdbus org.kde.KWin /Compositor suspend - elif [[ "${DESKTOP_SESSION}" =~ "mate" ]] ; then - gsettings set org.mate.Marco.general compositing-manager false - elif [[ "${DESKTOP_SESSION}" =~ "xfce" ]] ; then - xfconf-query -c xfwm4 -p /general/use_compositing -s false - elif [[ "${DESKTOP_SESSION}" =~ "cinnamon" ]] ; then - gsettings set org.cinnamon.muffin unredirect-fullscreen-windows true - fi - fi enabled_fake_nvidia_videocard () { @@ -222,8 +255,8 @@ start_portwine () { var_winedlloverride_update "nvngx,_nvngx=" fi - if [[ "${PW_USE_GALLIUM_ZINK}" == 1 ]] ; then - export PW_VULKAN_USE=5 + if [[ "${PW_USE_GALLIUM_ZINK}" == 1 ]] + then export PW_VULKAN_USE=5 fi if [[ "${PW_HEAP_DELAY_FREE}" == 1 ]] @@ -265,36 +298,6 @@ start_portwine () { fi fi - # if [[ "${PW_AMD_VULKAN_USE}" == "amdvlk" ]] ; then - # export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1 - # if grep -i -q -E '(rosa|redos|nobara|linuxmint|ubuntu|centos|rhel|fedora)' "/etc/os-release" ; then - # export VK_ICD_FILENAMES="/opt/amdgpu/etc/vulkan/icd.d/amd_icd32.json:/opt/amdgpu/etc/vulkan/icd.d/amd_icd64.json" - # elif grep -i -q "altlinux" '/etc/os-release' ; then - # export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/amd_icd.json" - # else - # export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/amd_icd32.json:/usr/share/vulkan/icd.d/amd_icd64.json" - # fi - # elif [[ "${PW_AMD_VULKAN_USE}" == "amdgpupro" ]] ; then - # export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1 - # if grep -i -q -E '(rosa|redos|nobara|linuxmint|ubuntu|centos|rhel|fedora)' "/etc/os-release" ; then - # export VK_ICD_FILENAMES="/opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd32.json:/opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd64.json" - # var_ld_library_path_update "/opt/amdgpu/libdrm/lib64:/opt/amdgpu/libdrm/lib32" - # else - # export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/amd_pro_icd32.json:/usr/share/vulkan/icd.d/amd_pro_icd64.json" - # fi - # elif [[ "${PW_AMD_VULKAN_USE}" == "radv" ]] ; then - # export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1 - # export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json" - # elif [[ "${PW_AMD_VULKAN_USE}" == "radv_aco" ]] ; then - # export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1 - # var_radv_perftest_config_update aco - # export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json" - # elif [[ "${PW_AMD_VULKAN_USE}" == "radv_gpl" ]] ; then - # export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1 - # var_radv_perftest_config_update gpl - # export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json" - # fi - case "$PW_FORCE_USE_VSYNC" in # 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT 0) export vblank_mode=0 @@ -308,14 +311,15 @@ start_portwine () { unset vblank_mode __GL_SYNC_TO_VBLANK ;; esac + export int_xneur=0 if [[ ! -z "`pgrep xneur`" ]]; then killall xneur export int_xneur=1 fi - if [[ "$PW_USE_GAMEMODE" = "1" ]] ; then - if command -v gamemoded ; then + if [[ "$PW_USE_GAMEMODE" = "1" ]] ; then + if command -v gamemoded &>/dev/null ; then export GAMEMODERUN=1 PW_GAMEMODERUN_SLR="gamemoderun" systemctl enable --now --user gamemoded &>/dev/null @@ -342,110 +346,7 @@ start_portwine () { print_info "Gamemod is not installed or disabled in vars script or db file: PW_USE_GAMEMODE=$PW_USE_GAMEMODE" fi pw_other_fixes - - check_dirs_and_files_in_pfx () { - create_new_dir "${WINEPREFIX}" - create_new_dir "${WINEPREFIX}/drive_c" - create_new_dir "${WINEPREFIX}/dosdevices" - create_new_dir "${WINEPREFIX}/drive_c/windows/syswow64/" - create_new_dir "${WINEPREFIX}/drive_c/windows/system32/" - create_new_dir "${WINEPREFIX}/drive_c/tmp/.private/$USER/" - create_new_dir "${WINEPREFIX}/drive_c/tmp/.private/steamuser/" - - [ ! -d "${WINEPREFIX}/dosdevices/c:" ] && try_force_link_dir "${WINEPREFIX}/drive_c/" "${WINEPREFIX}/dosdevices/c:" - [ ! -d "${WINEPREFIX}/dosdevices/z:" ] && try_force_link_dir "/" "${WINEPREFIX}/dosdevices/z:" - [ ! -d "${WINEPREFIX}/dosdevices/h:" ] && try_force_link_dir "$HOME" "${WINEPREFIX}/dosdevices/h:" - - create_new_dir "${WINEPREFIX}/drive_c/windows/Fonts/" - LN_FONTS="arialbd.ttf courbd.ttf georgia.ttf micross.ttf msyh.ttf simsun.ttc arial.ttf cour.ttf malgun.ttf msgothic.ttc nirmala.ttf times.ttf" - for link_font in $LN_FONTS ; do - if [[ ! -f "${WINEPREFIX}/drive_c/windows/Fonts/${link_font}" ]] ; then - try_force_link_file "${WINEDIR}/share/fonts/${link_font}" "${WINEPREFIX}/drive_c/windows/Fonts/" - fi - done - - find "${WINEPREFIX}/dosdevices" -xtype l -maxdepth 1 2>/dev/null -exec rm {} \; - rm -f "${WINEPREFIX}/dosdevices/"*:: - DRIVES=(d e f g i j k l m n o p q r s t u v w x y) - DEF_MOUNT_DIRS=('/media' "/media/$USER" '/mnt' '/run/media' "/run/media/$USER") - MOUNT_DIRS=($(find "${DEF_MOUNT_DIRS[@]}" -maxdepth 1 -type d 2>/dev/null | sort -u)) - - for drive_dir in "${MOUNT_DIRS[@]}" ; do - if [[ ! "${DEF_MOUNT_DIRS[@]}" =~ "$drive_dir" ]] \ - && ! realpath "${WINEPREFIX}/dosdevices"/*: | grep "$drive_dir" &>/dev/null ; then - drive_num=0 - while [[ "$drive_num" -lt "${#DRIVES[@]}" ]] ; do - drive_path="${WINEPREFIX}/dosdevices/${DRIVES[$drive_num]}:" - if [ ! -d "$drive_path" ] ; then - ln -sf "$drive_dir" "$drive_path" - break - else - ((drive_num++)) - fi - done - fi - done - } - - PROGPFX_URL="github.com/Castro-Fidel/PortWINE/releases/download/progpfx${PROGPFX_VER}/progpfx${PROGPFX_VER}.tar.xz" - if [[ "${PW_PREFIX_NAME}" == "PROGRAMS" && ! -f "${WINEPREFIX}"/.progpfx ]] ; then - print_info "Download and install PROGRAMS pfx..." - if try_download "${PROGPFX_URL}" "${PORT_WINE_PATH}/data/tmp/progpfx.tar.xz" ; then - unpack_tar_xz "${PORT_WINE_PATH}/data/tmp/progpfx.tar.xz" "${PORT_WINE_PATH}/data/prefixes/" - try_remove_file "${PORT_WINE_PATH}/data/tmp/progpfx.tar.xz" - else - try_remove_file "${PORT_WINE_PATH}/data/tmp/progpfx.tar.xz" - yad_error_download && exit 1 - fi - fi - - DOTPFX_URL="github.com/Castro-Fidel/PortWINE/releases/download/dotpfx${DOTPFX_VER}/dotpfx${DOTPFX_VER}.tar.xz" - if [[ "${PW_PREFIX_NAME}" == "DOTNET" ]] && [[ ! -f "${WINEPREFIX}"/.dotnet${DOTPFX_VER} ]] ; then - print_info "Download and install DOTNET pfx..." - if try_download "${DOTPFX_URL}" "${PORT_WINE_PATH}/data/tmp/dotpfx.tar.xz" ; then - unpack_tar_xz "${PORT_WINE_PATH}/data/tmp/dotpfx.tar.xz" "${PORT_WINE_PATH}/data/prefixes/" - try_remove_file "${PORT_WINE_PATH}/data/tmp/dotpfx.tar.xz" - else - try_remove_file "${PORT_WINE_PATH}/data/tmp/dotpfx.tar.xz" - yad_error_download && exit 1 - fi - fi - pw_update_pfx_cover_gui - - if [[ ! -d "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}" \ - || ! -d "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/drive_c/windows \ - || ! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/userdef.reg \ - || ! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/system.reg \ - || ! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/user.reg ]] - then - pw_clear_pfx - check_dirs_and_files_in_pfx - if [[ -f "${PW_WINELIB}/default_pfx.tar.xz" ]] && [[ "${DISABLE_CP_DEFPFX}" != 1 ]] ; then - unpack_tar_xz "${PW_WINELIB}/default_pfx.tar.xz" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/" silent - fi - fi - echo "${PW_WINE_USE}" > "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.wine_ver" - check_dirs_and_files_in_pfx - - create_new_dir "${WINEPREFIX}/drive_c/users/steamuser" - if [ ! -d "${WINEPREFIX}/drive_c/users/${USER}" ]; then - try_force_link_dir "${WINEPREFIX}/drive_c/users/steamuser" "${WINEPREFIX}/drive_c/users/${USER}" - fi - create_new_dir "${WINEPREFIX}/drive_c/users/Public/Documents/Steam" - create_new_dir "${WINEPREFIX}/drive_c/users/steamuser/Documents/Steam" - if [ ! -d "${WINEPREFIX}/drive_c/users/steamuser/My Documents" ] - then try_force_link_dir "${WINEPREFIX}/drive_c/users/steamuser/Documents" "${WINEPREFIX}/drive_c/users/steamuser/My Documents" - fi - create_new_dir "${WINEPREFIX}/drive_c/users/steamuser/AppData/Roaming" - if [ ! -d "${WINEPREFIX}/drive_c/users/steamuser/Application Data" ] - then try_force_link_dir "${WINEPREFIX}/drive_c/users/steamuser/AppData/Roaming" "${WINEPREFIX}/drive_c/users/steamuser/Application Data" - fi - create_new_dir "${WINEPREFIX}/drive_c/users/steamuser/AppData/Local" - create_new_dir "${WINEPREFIX}/drive_c/users/steamuser/Local Settings" - if [ ! -d "${WINEPREFIX}/drive_c/users/steamuser/Local Settings/Application Data" ] - then try_force_link_dir "${WINEPREFIX}/drive_c/users/steamuser/AppData/Local" "${WINEPREFIX}/drive_c/users/steamuser/Local Settings/Application Data" - fi #enabled BattleEye_Runtime and EasyAntiCheat_Runtime if [[ "${PW_USE_EAC_AND_BE}" == 1 ]] ; then export PROTON_BATTLEYE_RUNTIME="${PW_PLUGINS_PATH}/BattlEye_Runtime" @@ -462,7 +363,10 @@ start_portwine () { unset PULSE_LATENCY_MSEC fi - if [[ "$PW_USE_US_LAYOUT" == "1" ]] && [[ "${XDG_SESSION_TYPE}" != "wayland" ]] && command -v setxkbmap &>/dev/null ; then + if [[ "$PW_USE_US_LAYOUT" == "1" ]] \ + && [[ "${XDG_SESSION_TYPE}" != "wayland" ]] \ + && command -v setxkbmap &>/dev/null + then setxkbmap -model pc101 us -print | xkbcomp - $DISPLAY &>/dev/null else export PW_USE_US_LAYOUT="0" @@ -692,6 +596,7 @@ start_portwine () { fi done if [[ "${USE_WT_FROM_DB}" == "1" ]] ; then + pw_update_pfx_cover_gui update_winetricks echo "START WINETRICKS..." >> "${PORT_WINE_TMP_PATH}/update_pfx_log" echo "Try to install DLL in prefix: ${PW_DLL_NEED_INSTALL}" >> "${PORT_WINE_TMP_PATH}/update_pfx_log" @@ -731,6 +636,20 @@ start_portwine () { if [[ -f "${PATH_TO_GAME}/dxvk.conf" ]] ; then export DXVK_CONFIG_FILE="${PATH_TO_GAME}/dxvk.conf" fi + + if [[ "${PW_DISABLE_COMPOSITING}" == "1" ]] \ + && ! check_gamescope_session + then + if [[ "${DESKTOP_SESSION}" =~ "plasma" ]] ; then + qdbus org.kde.KWin /Compositor suspend + elif [[ "${DESKTOP_SESSION}" =~ "mate" ]] ; then + gsettings set org.mate.Marco.general compositing-manager false + elif [[ "${DESKTOP_SESSION}" =~ "xfce" ]] ; then + xfconf-query -c xfwm4 -p /general/use_compositing -s false + elif [[ "${DESKTOP_SESSION}" =~ "cinnamon" ]] ; then + gsettings set org.cinnamon.muffin unredirect-fullscreen-windows true + fi + fi } pw_run () { diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index f25556e..f8ea582 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -45,7 +45,7 @@ if [[ -f "${PORT_WINE_TMP_PATH}/tmp_main_gui_size" ]] && [[ ! -z "$(cat ${PORT_W export PW_MAIN_SIZE_H="$(cat ${PORT_WINE_TMP_PATH}/tmp_main_gui_size | awk '{print $2}')" else export PW_MAIN_SIZE_W="1100" - export PW_MAIN_SIZE_H="300" + export PW_MAIN_SIZE_H="350" fi if [[ ! -z $(basename "${portwine_exe}" | grep .ppack) ]] ; then @@ -249,9 +249,9 @@ portwine_start_debug () { sed -i '/.fx$/d' "${PORT_WINE_PATH}/${portname}.log" sed -i '/HACK_does_openvr_work/d' "${PORT_WINE_PATH}/${portname}.log" sed -i '/Uploading is disabled/d' "${PORT_WINE_PATH}/${portname}.log" - sed -i '/dlopen failed - libgamemode.so/d' "${PORT_WINE_PATH}/${portname}.log" - sed -i '/gamemodeauto: /d' "${PORT_WINE_PATH}/${portname}.log" sed -i '/wine: RLIMIT_NICE is <= 20/d' "${PORT_WINE_PATH}/${portname}.log" + sed -i '/ALT_2.24/d' "${PORT_WINE_PATH}/${portname}.log" + sed -i '/UDEV monitor/d' "${PORT_WINE_PATH}/${portname}.log" deb_text=$(cat "${PORT_WINE_PATH}/${portname}.log" | awk '! a[$0]++') echo "$deb_text" > "${PORT_WINE_PATH}/${portname}.log" "$pw_yad" --title="${portname}.log" --borders=${YAD_BORDERS} --no-buttons --text-align=center \ @@ -680,7 +680,7 @@ else export -f run_desktop_b_click gui_clear_pfx () { - if gui_question "${port_clear_pfx}" ; then + if yad_question "${port_clear_pfx}" ; then pw_clear_pfx print_info "Restarting PP after clearing prefix..." export SKIP_CHECK_UPDATES=1 @@ -691,7 +691,7 @@ else export -f gui_clear_pfx gui_rm_portproton () { - if gui_question "${port_del2}" ; then + if yad_question "${port_del2}" ; then rm -fr "${PORT_WINE_PATH}" rm -fr "${PORT_WINE_TMP_PATH}" rm -fr "${HOME}/PortWINE" @@ -847,20 +847,16 @@ else # --field=" Bethesda.net Launcher"!"$PW_GUI_ICON_PATH/bethesda.png"!"":"FBTN" '@bash -c "button_click PW_BETHESDA"' # --field=" ROBLOX"!"$PW_GUI_ICON_PATH/roblox.png"!"":"FBTN" '@bash -c "button_click PW_ROBLOX"' - # --field=" DuckStation"!"$PW_GUI_ICON_PATH/duckstation.png"!"${loc_duckstation}":"FBTN" '@bash -c "button_click PW_DUCKSTATION"' - # --field=" ScummVM"!"$PW_GUI_ICON_PATH/scummvm.png"!"${loc_scummvm}":"FBTN" '@bash -c "button_click PW_SCUMMVM"' - # --field=" Rpcs3"!"$PW_GUI_ICON_PATH/rpcs3.png"!"${loc_rpcs3}":"FBTN" '@bash -c "button_click PW_RPCS3"' - - if [[ `command -v wmctrl` ]] &>/dev/null ; then - sleep 2 - while [[ $(pgrep -a yad_v12_3 | head -n 1 | awk '{print $1}' 2>/dev/null) ]] ; do - sleep 2 - PW_MAIN_GUI_SIZE_TMP="$(wmctrl -lG | grep PortProton-1.0 | awk '{print $5" "$6}' 2>/dev/null)" - if [[ ! -z "${PW_MAIN_GUI_SIZE_TMP}" ]] ; then - echo "${PW_MAIN_GUI_SIZE_TMP}" > "${PORT_WINE_TMP_PATH}/tmp_main_gui_size" - fi - done - fi & + # if command -v wmctrl &>/dev/null ; then + # sleep 2 + # while [[ -n $(pgrep -a yad_v12_3 | head -n 1 | awk '{print $1}' 2>/dev/null) ]] ; do + # sleep 2 + # PW_MAIN_GUI_SIZE_TMP="$(wmctrl -lG | grep "PortProton-${install_ver}" | awk '{print $5" "$6}' 2>/dev/null)" + # if [[ ! -z "${PW_MAIN_GUI_SIZE_TMP}" ]] ; then + # echo "${PW_MAIN_GUI_SIZE_TMP}" > "${PORT_WINE_TMP_PATH}/tmp_main_gui_size" + # fi + # done + # fi & export START_FROM_PP_GUI=1 diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index d0d86a6..046f6f0 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=2256 +#SCRIPTS_NEXT_VERSION=2257 ######################################################################## export PW_MANGOHUD="0" export DEFAULT_MANGOHUD_CONFIG="cpu_stats,cpu_temp,cpu_mhz,gpu_stats,gpu_temp,gpu_core_clock,gpu_mem_clock,vulkan_driver,gpu_name,vram,ram,frame_timing=1,time,arch,wine,toggle_hud=Shift_R+F12,resolution,vkbasalt,gamemode" @@ -60,7 +60,7 @@ export PW_MUST_WINEDLLOVERRIDES="steam_api,steam_api64,steamclient,steamclient64 ################################################################# export DXVK_CONFIG_FILE="${PORT_WINE_PATH}/data/dxvk.conf" ################################################################# -pw_install_dll_in_prefix () +pw_list_install_dll_in_prefix () { case $PW_PREFIX_NAME in DEFAULT) export PW_MUST_HAVE_DLL="d3dx9 d3dcompiler_43 physx mfc42 vcrun2022 sandbox" ;; diff --git a/data_from_portwine/scripts/yad_gui b/data_from_portwine/scripts/yad_gui index e44fe68..1a67902 100755 --- a/data_from_portwine/scripts/yad_gui +++ b/data_from_portwine/scripts/yad_gui @@ -36,7 +36,7 @@ yad_error_download () { [[ "$?" != 0 ]] && return 1 || return 0 } -gui_question () { +yad_question () { if [[ ! -f "${pw_yad_v12_3}" ]] ; then local pw_yad_v12_3="yad" command -v "${pw_yad_v12_3}" &>/dev/null || fatal "yad not found" @@ -73,14 +73,14 @@ pw_start_progress_bar_cover_block () { } pw_update_pfx_cover_gui () { - if ! check_start_from_steam ; then - PW_KEY_PROGRESS_BAR=$RANDOM + if ! check_start_from_steam && ! pgrep -a yad | grep "yad_v12_3 --notebook --key=$PW_KEY_PROGRESS_BAR_UP" &>/dev/null ; then + PW_KEY_PROGRESS_BAR_UP=$RANDOM PW_GIF_FILE="${PW_GUI_ICON_PATH}/covers/update_prefix_${update_loc}.gif" PW_GIF_SIZE_X=`file "${PW_GIF_FILE}" | awk '{print $7 + 40}'` PW_GIF_SIZE_Y=`file "${PW_GIF_FILE}" | awk '{print $9 + 80}'` echo "UPDATE PREFIX..." > "${PORT_WINE_TMP_PATH}/update_pfx_log" export PW_TIMER=0 - while read -r line || [[ ! -z `pgrep -a yad | grep "yad_v12_3 --notebook --key="$PW_KEY_PROGRESS_BAR"" | awk '{print $1}'` ]] ; do + while read -r line || [[ ! -z `pgrep -a yad | grep "yad_v12_3 --notebook --key=$PW_KEY_PROGRESS_BAR_UP" | awk '{print $1}'` ]] ; do sleep 0.005 if [[ ! -z "${line}" ]] && [[ -z "`echo "${line}" | grep -i "gstreamer"`" ]] \ && [[ -z "`echo "${line}" | grep -i "kerberos"`" ]] \ @@ -92,10 +92,10 @@ pw_update_pfx_cover_gui () { sleep 3 PW_TIMER=1 fi - done < "${PORT_WINE_TMP_PATH}/update_pfx_log" | "${pw_yad_v12_3}" --plug=$PW_KEY_PROGRESS_BAR --tabnum="2" --text-info --tail 2>/dev/null & - "${pw_yad_v12_3}" --plug=$PW_KEY_PROGRESS_BAR --tabnum="1" --picture --filename="${PW_GIF_FILE}" --image-on-top 2>/dev/null & + done < "${PORT_WINE_TMP_PATH}/update_pfx_log" | "${pw_yad_v12_3}" --plug=$PW_KEY_PROGRESS_BAR_UP --tabnum="2" --text-info --tail 2>/dev/null & + "${pw_yad_v12_3}" --plug=$PW_KEY_PROGRESS_BAR_UP --tabnum="1" --picture --filename="${PW_GIF_FILE}" --image-on-top 2>/dev/null & - "${pw_yad_v12_3}" --notebook --key="$PW_KEY_PROGRESS_BAR" --tab=LOGO --tab=TERMINAL --no-buttons --undecorated \ + "${pw_yad_v12_3}" --notebook --key="$PW_KEY_PROGRESS_BAR_UP" --tab=LOGO --tab=TERMINAL --no-buttons --undecorated \ --center --auto-close --skip-taskbar --width=$PW_GIF_SIZE_X --height=$PW_GIF_SIZE_Y --tab-pos=bottom 2>/dev/null & export PW_YAD_PID_PFX_COVER_UI="$!" return 0 @@ -452,7 +452,7 @@ gui_proton_downloader () { if unpack_tar_${archive_type} "${PORT_WINE_PATH}/data/tmp/${PW_WINE_ARCHIVE}.tar.${archive_type}" "${PORT_WINE_PATH}/data/dist/" ; then try_remove_file "${PORT_WINE_PATH}/data/tmp/${PW_WINE_ARCHIVE}.tar.${archive_type}" if [ ! -z "${portwine_exe}" ]; then - PW_WINE_USE=${VERSION_WINE_GIT} + PW_WINE_USE="$(echo ${VERSION_WINE_GIT} | tr [[:lower:]] [[:upper:]])" edit_db_from_gui PW_WINE_USE fi else @@ -468,6 +468,7 @@ gui_proton_downloader () { if [[ "$1" != "silent" ]] ; then export SKIP_CHECK_UPDATES=1 + edit_db_from_gui /usr/bin/env bash -c ${pw_full_command_line[*]} & exit 0 else @@ -765,7 +766,7 @@ portwine_create_shortcut () { "${PORT_SCRIPTS_PATH}/add_in_steam.sh" done if [[ "${PW_SKIP_RESTART_STEAM}" != 1 ]] && pgrep -i steam &>/dev/null ; then - if gui_question "$sc_restert_steam" ; then + if yad_question "$sc_restert_steam" ; then pw_start_progress_bar_block "Restarting STEAM... Please wait." kill -s SIGTERM $(pgrep -a steam) &>/dev/null while pgrep -i steam &>/dev/null ; do