From 892de157cc36f1a9bd83a4848fe1537200b7108d Mon Sep 17 00:00:00 2001 From: castro-fidel Date: Thu, 24 Feb 2022 14:23:11 +0300 Subject: [PATCH] Scripts version 2086 - 2089 --- data_from_portwine/changelog_eng | 13 ++ data_from_portwine/changelog_rus | 13 ++ data_from_portwine/img/gui/battle_net.png | Bin 2368 -> 3081 bytes data_from_portwine/img/gui/epicgames.png | Bin 1787 -> 2336 bytes data_from_portwine/img/gui/gog.png | Bin 6683 -> 3430 bytes data_from_portwine/img/gui/steam.png | Bin 2129 -> 2285 bytes data_from_portwine/img/gui/ubc.png | Bin 3115 -> 3354 bytes data_from_portwine/img/gui/wgc.png | Bin 2758 -> 2973 bytes data_from_portwine/img/setup.png | Bin 0 -> 15929 bytes data_from_portwine/scripts/functions_helper | 195 +++++++++--------- data_from_portwine/scripts/lang | 11 +- .../scripts/portwine_db/Battle.net_Launcher | 10 +- .../scripts/portwine_db/League of Legends | 5 +- data_from_portwine/scripts/portwine_db/Stetup | 38 ---- .../portwine_db/WorldOfTanksEnCoreLauncher | 4 +- .../scripts/portwine_db/default | 2 +- data_from_portwine/scripts/portwine_db/osu | 2 +- data_from_portwine/scripts/portwine_db/setup | 2 + .../scripts/portwine_db/wot_encore_install_ru | 2 +- .../scripts/pw_autoinstall/PW_GOG | 2 +- .../scripts/pw_autoinstall/PW_LOL | 6 +- .../scripts/pw_autoinstall/PW_OSU | 4 +- .../scripts/pw_autoinstall/PW_WGC | 2 +- data_from_portwine/scripts/runlib | 107 +++++++--- data_from_portwine/scripts/start.sh | 184 +++++++++-------- data_from_portwine/scripts/var | 57 ++--- data_from_portwine/scripts/zen_yad_gui | 26 ++- 27 files changed, 369 insertions(+), 316 deletions(-) create mode 100644 data_from_portwine/img/setup.png delete mode 100644 data_from_portwine/scripts/portwine_db/Stetup diff --git a/data_from_portwine/changelog_eng b/data_from_portwine/changelog_eng index 571f7b9..db79535 100644 --- a/data_from_portwine/changelog_eng +++ b/data_from_portwine/changelog_eng @@ -2,6 +2,19 @@ You can help us in the development of the project on the website: https://boosty ----------------------------------------- Changelog: +###Scripts version 2086 - 2089### +* updated "PROTON_STEAM" to version 7.0-1 +* updated "libs_v22.2" (Steam Runtime Sniper container update) +* updated additional libraries "plugins_v3" (added "EasyAntiCheat_Runtime" and updated "BattlEye_Runtime") +* added ability to create custom prefixes +* fixed "AUTOINSTALL" operation after "Arch Linux" update +* "League of Legends" is put in a separate prefix, which speeds up its launch (no need to update the prefix on each launch) +* by default there is an empty "DOTNET" prefix, when it starts it is automatically filled with libraries: "physx mfc42 vcrun2019 dotnet20sp2 dotnet48" +* added saving priority user settings (db files) inside the directory with the launched .exe file +* redesigned the main interface of PortProton (AUTOINSTALL opens by default on the first tab, in the SETTINGS tab added prefix selection and creation of a new prefix) +* added check to which prefix the Launcher is set from AUTOINSTALL +* added change history display before PortProton update + ###Scripts version 2085### * added argument editor for ".exe" file to "EDIT_DB" interface * added "WINDOWS" version selection to "EDIT_DB" interface diff --git a/data_from_portwine/changelog_rus b/data_from_portwine/changelog_rus index e8c8047..2b467ef 100755 --- a/data_from_portwine/changelog_rus +++ b/data_from_portwine/changelog_rus @@ -2,6 +2,19 @@ ----------------------------------------- История изменений: +###Scripts version 2086 - 2089### +* обновлен "PROTON_STEAM" до версии 7.0-1 +* обновлен "libs_v22.2" (обновление контейнера Steam Runtime Sniper) +* обновлены дополнительные библиотеки "plugins_v3" (добавлен "EasyAntiCheat_Runtime" и обновлен "BattlEye_Runtime") +* добавлена возможность создавать пользовательские префиксы +* исправлена работа "AUTOINSTALL" после обновления "Arch Linux" +* "League of Legends" ставиться в отдельный префикс, что ускоряет его запуск (не требуется обновления префикса при каждом запуске) +* по умолчанию существует пустой префикс "DOTNET" при запуске которого он автоматически наполняется библиотеками: "physx mfc42 vcrun2019 dotnet20sp2 dotnet48" +* добавлено сохранение приоритетных пользовательских настроек (db файлов) внутри каталога с запускаемым .exe файлом +* переработано основной интерфейс PortProton (AUTOINSTALL открывается по умолчанию на первой вкладке, во вкладке SETTINGS добавлен выбор префикса и создание нового префикса) +* добавлена проверка в какой префикс установлен Launcher из AUTOINSTALL +* добавлено отображение истории изменений до обновления PortProton + ###Scripts version 2085### * добавлен редактор аргументов для ".exe" файла в интерфейс "EDIT_DB" * добавлен выбор версии "WINDOWS" в интерфейс "EDIT_DB" diff --git a/data_from_portwine/img/gui/battle_net.png b/data_from_portwine/img/gui/battle_net.png index 97dc0ed76923cf8a92a9677d74db1ab88a7849da..6bfb17e26a3d19d740cf553d8e1a097024142b21 100755 GIT binary patch literal 3081 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 X*s@;oXsrgK00000NkvXXu0mjfRdv#M literal 2368 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 IM6N<$f@i3ewg3PC literal 6683 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 Nm>XN;3JqOP{s-F;{lWkM diff --git a/data_from_portwine/img/gui/steam.png b/data_from_portwine/img/gui/steam.png index e506d6a26e3a13ad0380b67e6f67655aa289fbcb..cdaa2d13a026a530ec35d5c32dcd978e407f0f00 100755 GIT binary patch literal 2285 zcmV+P)SNDA#$3Q`I7!c?qo@F+7iRX#aTdpm5k9e4s zlmhVyag5UeiEo9j`urxi=<}Cgp35!*lISTH+gNR5R^le{6mirvDy(@Pag(rStt?X= zqcsi(S)`DJ3>6h@!hnl7Rf{s~>`OF!ODL0v(bq;5oE$}z$QvWILR~egI_Vls167gx z|2!RiX4>x_P6EBJp7%Kcg!X}Y&GUXwJ+FR7PxJy@TP=T?a+>=lz1GsA$3SEUxV&j; z>H%=I3yeP73RfCZkd~zDz{dqJme5SZPpHM-ZNQ@9i!uJQj9A z4g~}OML|T7fLe(VjA%%r6*XeSQZbRz#8mu~N{p3IUS(mK#E3Co72QN7O2ylXiU)E8 zQ4U2RqUees!mb<(3oNiNJp^>QXVE`aZC7>8yqTWv{(5@)&3g!$$s7T51k4dIN5C9` z*Ejr!3UvV^nZPDHKTK{}?cyja)$3bD56Y`OYa81nMh;iPc@NcBWSF!QCIJvT zPhk-fE`rfFjSLUi4e(TyejXRSBYOUvERN&aZB|yQ#k+R@7L~Z~RP3|HR*McLx$PjH zq*0#%1Kh>pW248M2u(2g~sp}`f|*K<9OCZBjKKfhpvr-xhZdr^@^ z!GYd67tW`@S>G&(K&LYR(6`mAQfa-S1|V?>=P|;6VZ=y*p<)iq4%Xt9!}}99ySff- zUbA-NBIO?^=DE8%H>fq$E*m!QUTiP7s*Q|{Q1Mo5-I}-eSExHla3sFyRxc!#Hr)^wpd6c1~RvFu_`@g=~t_Qg2w;2 zaKYSy?K_hjiXPWl!IU*vgIz}Jh}=L#@_>pMhK&J6rf|>%|EHkb_WXs6$t&U(rGoP| z8kFB5u<8i7S1J?HWF>LAbM8GvbgWUAcaJeCQU4BYHH>VC!H82v*DSELF2S4 z)#G7j(jK$}F!I>PsNZLostT#@=XlSa5#;Kk5Hoj+%dK=R00quNZ|rPmY1otaO|G3C z$qYnZR1&GBB|9xVq$)i#$9>=aW24hEbKQc2{Ittrql*OrNj4?ynvi$5Qrb=5twzo5 zvweErF+mkl*zUz3znrYmYU{ZxSF?vGlg>G&+$fVkdFn#SElX81rcZs+Ww7f5+~e8_ z*Ei^xZHdYeTb1d(Rkxot1Z#lm@EHLgRQngYi9l3QlGERpX{6;IXThpIA*;`@&*_a3@rcl)uH!y@Aw#q$;F z=e>S9v;b6~ql;4vgOT4D9|2ecJA}0L4NUU!i?ZU9Qa&OqL@T$GwHezbGAWm{tXHo; zsCc4nd9iO?pDq*`ukWk>LQ!85Fb>9f;9?A!-;Wq-ZEZt2`GpqScAt=L+qALa_JZad$GmHTg!bq3%_uAb6-Vw?FK4&S;S85XZ;I>nj@UK9GnR4@U<%D;A63-hz5C z!!V+uE<>=Ry$!yeS7b4Ej2A8_yf0b)^)8#_YmYd@f;l?AqfYy2qmiF|cBuf6)hcO# zC^@ZY_Ma!y#iG_mPHxMywlbcqCpplC$xfwa-R3;qo!F31w@bL{{v*0ExMBQ zbYgcPq6Q%KnOcZMqS$%^woWN1!@EvpGefu**3Wl1t8Zy#IgW%DwR7q}w-`qUTij+a zFo&)}D$_;1Q?3^7D~ojZQc2+$kf;IZ?p`bE?rmV2K#gyHZNmQtQe9d)5RJkOm2c?;-NPXtu_5d25@XWpF9f z-GE}vQ7Ih0k4gE1xlq`ZK8k}t4(D}n`T)G%4`?>bA>RToMK84jy;)YQJ0%A&fiO1` z*sepS7TSNo={(KasF(g9+M(0jm?L10fH?x@2$&=A`bXeDEX>4Tx04R}tkv&MmKpe$iTT4YMB6biF3{sseh>AFB6^c+H)C#RSm|Xe=O&XFE z7e~Rh;NZt%)xpJCR|i)?5c~jfb8}L3krMxx6k5c1aNLh~_a1le0DryARI_6oP&La) zCE`LRyDEfU5yTLBF^yq~nfjb4CgC~0?&0I>U5saWpZjxkD>;(^K7n|a>4rtTK|H-_ z>74h8BdjPX#OK6g23?T&k?XR{Z=4Gb`*~)>NT=qBBg8_Xjpa6GMMEW?B91DmM*04X z%L?Z$&T6^Jn)l={4Cl0!Wv+@x?E2)@|%#|RMG1sXNm{yw(t#t9I32ClT0zfuQgK1r{& zwCEAgvkhEaw={VVxZDBypLEHP94SE4pU(sDXY@^3pzjvwT624A?&I_UNK;qI8{ps& z7%foty2raa+k5->OtZfq%@K0TE1?Df00006VoOIv0RI600RN!9r;`8x010qNS#tmY z3ljhU3ljkVnw%H_000McNliru=_hC zlK_ax)l$@OTLQ|!`3&I404(staa_2u@o(AbyV6%ID-i^N06=T2Rk?f5hiN(cj$~cy z8Bh&h2S7}&D+MDt!A2Wm(&QHbnhj96i$$|1pFgyJ*LssFv8D7>dHA8+!+));teO%Y z7Sj1}T53&V{M53ajutL(^l=410|DY1bXf9lAs_}Vk_gC`1XN8x;ST(Kl>MK7v~^2x z@Wj6L8#ZN{KRvuWG&r!^YHJUAW6Pe^z6S5k)YKG<mO&|lCrFqbdli80=ubuSp3lzASBatq*ZYMo zEG!f&moNG4#EBx4C@M9k#Hi*`x)~#W0YD0QXaXfHff51kLK2lcHg-k_0FBexr#2Y$ z6o6(lj7Ed(a`kHgXe3GEH}u(5DP(EH2mwM_JY@o*On|%Cw0`Ap(KDv?0nnL}W?lQW zv?6*qdH_1kxvsdRa$0O`lpTQfa#Ndev_7Fi;z$m}MfgRWX}AUu_ui%_Ql@ugta`G3 zC{nCUf2?6`_P>)=qNtcVcTQ7pZ=dk_fy2|a8i~$Hm}R$EE>HTd;DV7dVYHdZkt(p% zmrZ^A!Gz!-qmtIvHG4bzK?r3S4}p3wd2h}?%k_FK0EhrYwU-xLyeO%yu(&LA-$!4~ zC@d}yNlb{bugyxY;~e7Vt-EJe)V8W`vUR4%cJ_M$0G#vH0M-G3-R=-hoGhJSKJcS| z-svXs=3Z&uw#M?{l7(09{0?0&EJwGK?#MAu*={Zzue#o`RheHJK9k<-kOb3#wJilRJVZ2K2_wjB*Uij<;H_T9p?qO{%*3OI{!BKdwJ} z*)9-;IG(6=bRV$XY?M-hnCM6z6CG*eoWt(urnz4q)7CXKN-4=nc7t9!I3{e)k@s_n z&nvHgX1rqWzj1DYa67IwBX0rcT;iP95klyll5b#O5M`CssvUa{t9NXEp~Ilp$^g)1 zcaWStxzhIB)1vzW0}rzn@4UzWVB^M(u9j~7qoR_A`TH4|QmIe?xCN9_#l)Zq#NSs# zPF2*XW=2Pls_J@i-9L6~a(}%ffHAmQWR0b?M7fa-=;tVo%K?~k9tnVO5}bM@myaTQLMok!M+#dz6yvmJF?=#?`h?ObRsOskC`G_-zrk{#5}xH;tgQ7{Juwy-+U&)-8(SVL=AoZto!n^Q+16<}Obswo8!ZxmNSb zO@BC)`mWs-3QB(*?$`HVU4kqxw(fnt*6p#}_k|CPpyU&Pq~4uxo)4L)TXV9SJ^q;Z zzG5bv&}TsD>mUg9%r9)<@_!)9@7lI!4Bpk(%((uL8iYIzN;3hN0K#tLRR(YhvivbP z|Je4%GW)&%oW6F%07BvcOaq`F+U^AKJ29Ac diff --git a/data_from_portwine/img/gui/ubc.png b/data_from_portwine/img/gui/ubc.png index 6b7e544ddf5f12dbca8329f23afcedda79c23da7..a8d67e9ca8f6a415b2fd0570b24474c187afe4fc 100755 GIT binary patch literal 3354 zcmV+#4dwEQP)e5SbJ1eRUZD%<8tps1rbOE zuObQvwBL}SZRZOhV4fh;^x9Elo>=Qg&l8_=uDD0Dj056HimVMO;i|TUfn)7vfWXZC_ zsdd*wa5q7Umf-sh>x#iQI}qaN23^h;ysGub2gORu zXDe=3pi1C^z^wU0G5vvC(Z$bKK4`cNR904@sV`eN z?Cf?gkmPW?JkWR4D^ZO3gNn;#QEB~`pHIZ3iK8U=4I5IhYv(~sdtfZ0qx&I<;bOB} z;bhELS5@Ok$x(ds$+yV;IER*YOV3#d^r4kcV8Z>sfubt-cGG6;SiJ@;Wmm*>lEk3r zb{_b_8;N##ARz3n)rR7ZGg%fVkMD&i9>1GbR@~u+1;FR}TdApGZHO(@e&_!FbNjJBgY14TsfgAqf>1Yc6AT z^80vZ!M~7|c^DQS1EUfn(b><2)NPsg=GAP zT&l%W3;u@fyN=??*|%WIJ+~n&td}GvREj((JywdXn?J$qhi7B$dutKGA$^$=M@@ z_HP+_Yu%?v%Q=CK>t^HW`Hvtxymt$DG0DPwh#C-yKP_8?ISc3D?Kj?(;g&FNENp@P zaEofCxpAl5((RSG}N31bp4Ve&+rIDVYp0bkrQWeUL?FeoL31@gJT?mZ-U`7S{~ zhvTXWe|FO=0Yz84c?ggMD^F)u7IEe7E5g)q{V_fzE{tg?T;>H^+)^IhCG z{SmBsaW%>-D&+l`*jV%l3zL13xNcS)gVsKE)I-2#v(w9b55b%CgsCGyPHy9eQ`^2o z*g!QY9;F%+S6l~*PvW8b$IFn}Us#Mv*8I?r9;mCU$E z&O5AFdP|7e_%$|JZA5rFjYg?cd=rHAC3w+#HLrvvpKbj|H7*E+La{<|x?FPZ<%R}C zMTE)zm#G=Jd6;KOkyo%EX@w;)eE8L{QdpIC<>%nsxpQ)E^G{t}EldmZiWR4OShTz? z)=n~fgs~`Y6;;jiTWh^?G*zQadVsDLuD!qyk+?#71|q=UkJSm-l#$EO>Ll-1U%Uv# zhnArzBBHDc?49lC)X6h0C-JA`hazSU?3YmHDG<5FLr3FK6?Pa88 zd_;W=8Op#RL*>}1vQp_05mv(MhKl@_hg#`)C!m?>3}zCb&{`>3tkb+kUkMqpq_}Hf z7N=E5_IKKs}cW%sOD};gfi>>e#sDHCD1>v4mi? zQlaU}hfCHR+#(0t`0+|WJnJ8S=V20<18%+YcfrQEx3c@V}5wd&2o9YcYik4yf>Sh8XAP)uSgLWalg&X_(^Q% zyk710fY8)u@n0fLxUvj)W01kUf$8S9k?nH{WAI?o-3aje-^N|czr=Fs;?~k;wZYCr zZN92&E?`^QCVZ3qHZ5*StJ@e>R!u!m>yLbKY5tMsx!&4qA|RCYUbcLwX}Y$PKp;p! z5COv~m}Pd}=p>A0P4CmAmyGS7zr4}eh#$}Vh&_c__%wSx3|9@maR#g`MpnjwRaYu4 zigL#*OAGe>{5fy^YbGERI+ibvAc@at{b(5UGzq9oP7ORZL?diW^f5i75Zu|HmC8ib zI(Dn+#XFHlX`_|IOiy4lSMTf zC3w%-XOo8v^F$siayMtWA`-YD!T%)Uw8DIymS6JjviR;)(4lLtZo&gR#k-)n-DNyK%_H!1lKJ|p#kp;6)|>Tqv>g`c kut0|eIxNs(fwnC0UzT!YTyz-veEEX>4Tx04R}tkv&MmKpe$iQ%glEMJy;Hn4vmZ5EXIMDionYsTEpvFuC+YXws0R zxHt-~1qVMCs}3&Cx;nTDg5U>;o12rOi`{MF2zSK^T1!Gxgb2Dhbc=bq^n3?_xa5``n+STgjUY@QK7TOgAjzb>gW_ zOXs{#9APC%AwDM_HRyuGk6f2se&bwpSm2ovBa@yZju4B*HkR9%l?;`5k~pfU8s!UF zmle)ioYiubHSft^7|LtQOI)Wphy)g}h!jM~sA2lA>^e5@H zmKHq%!rQ>bbxV`?fXf}A|4Ek&$&vgtg+c*%KcjET0ll|C*Q(oFb04Pb%724YJ`L;(K){{a7>y{D4^000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2jvAH5fB%iGPd~u0178bL_t(o!=;yfa8}iw$3N%o zdGdsi5RynF1VSJQ4R4W%hBq;-rB+6SR>W;xu)9v{$fC7&lx_iO-Ce0Awq3>5%Cfa? zeQCAWTB?AMuyK^7h<&&e=bnkQt`!$aL?_Z|=;w_nzP9e$V~g z^ZN>}@K`YR@nPD#TO#=KhC zeEbuI#{2IXXO|dnW7=DccNiQRhr*&oh$29V043sR5%ek%ysBid?q8Z;JMuRH%$Tq~ zS$H1P&aN=d8tp=~vlt(uy-frTEi4*~5c!iB3EtC~L(pk#8zH0j({>1?L37Ue=Rvo-(tz)Z?!PGZE>nTWrD9R?w% zj<>RBXARXAZ=ie}BLj>IF)Bn$dsa$6Z`Ho)_x~!uq>_pP>3prQVTN=e!dmWqa2j`h z?eh#xO$NYOM|*n*9qpZjK|u157#W%Aq@||~&eQ(sX*NImOPXHVo&b;`S~;|I?LzvQ ztLtl<{|sQlwH3+I`n|%2#lnU}q~m8BZe#YGDFAew?c|-UwQPQ27aupaqg;q45k@#B z&o5-&;x96N_I1RPV>sui-m;b7J-iMhT>?NkwDL_t+3BnIyw?MuE&-(H%v*=I3%s*{ zW#gthm@#7_-g$Psvzz71o}udZjht`mLQ01X13Uo`;)SLC=%?&`^M9$StYlPSE?1Ar zA+M-_;l=sv-}(+hIizw3sNQ zxP@Ii53uBGH&9$Wj?Bz-l44PUAf&USljb8wdF%DJ+54N_7-@+}hf$8Z9>0(IcYGBg z1#iFn3Om+6iP3H#d?2-(^!=UtKTrVad0$@dge~rzh6ghXBSe19QvOchUR85?sF3uQ&h;o z1NC&DK7}+6shyI_58c^v`gdaN=Qj-V&VKA|Jmzhj$L}xW&c!z(r63F~S}VNw96o%E zU6s43uB@kN?@5ZLW-)W_RBkAr!Q?3uQA%;<^cjBe!1ws*y@N!xC88Z`Uw?`G!a@!= z)U)aSWkig}Xir4ZtCbk3(#PNWRfJ#Su{c6%>rS%l_US~U1}P=yFI;4O#S47*;s2(l z`Vc1Km|0#(N@@~YH&^rP=QeYy?KmZ+Q_0NAq@=8r9b4YS#(R*;ak{;YS@XWc@T*2p zS5r-YR~y=ZHo_>y0gaaBSb;|Xf^RLJOzO}?$zAB`<~tAnJKJ_0<=e||WYKM3ATMte zQc3`VAf)A33$MNMI?L}~&W2xXVC1MA?pgCN8y;DSQjWtlRh&55OnzYz)8{W@=f?e@ z1VVYF66F#lukl)d5_k#MO&dR0&(CiBE!%gW;H8brdFa7!ke@$#FgbuRnxYAX{PUwL zS@FmUo_qQky!XtSdjm-sX;|s7%5t!w4uH`GMTxpo9-%=RN~PB#7bONR!06no062F1 z6zgBEW#jt0nKP>t=RC(+PX6T$MF?iinZ^8tw{qh6abn5I+_-2FRymw<9BFI-AY()} zD4)osL27cP&~kVJK!6maq$K3u`+gIP=Z@#5@-hHk_|DLO~FQ09@?rqo^S9Hg9gN;`(b7zvQ}xeQa+$f{S=u)Z-$K zUG=*;bLPxt%hJ=+jW+^sU_@T=z=jnh41Y`t66o?99DKUl&8FCrGkq?@{00#0WOionQ`Ev;FX{f z$9Rr?_z3{BubYGr;GO5A{ysW76CGCm*gRweWE5mXAR~fhUs*!R(4m9LySp#4z3SIs z1Q@}@DboNr)!KqL;I+UjaFTk7@|9>0+Jk{DHTx3)1CmQA`0~U&cGT_$ptz`zb>I94 zL_{DX5*d*+HXo#`>%t(wj;ihS`EG~^QZsV+T=7%@-rKV+p+F=7;S`nH3-?Eq@Aclt z@bKE9lYG1NWAbxH4o-OM+%i`D*NZG}Y-HM`N!)YS-!rGIjFywf8J3#LHIqw-#bOER zj~?cyzx*LOB0<5jr7KBFiqYEI!UspUl4Qid2Pk^IXNx-Du%$2Ux|_$NT#1(!FD?Fj z2j$bJA_iKY?5nc)&Ccz-U0Y4*_yR_b$R;x*gM$3=mk| zBowDxFoYQCFwzl`j+m1C({0~n!MsHn6X9@kBTqcL6eB~Dv>>VkMv5o@?XiZ3 zF6)R==X~*9q1_^(Y!=EAijY6l?WH7p1f#RF0m#c4#qG1cz__$by1F_z-FFtPK^afk z*ix3xTgF36S2BI-^(duyZ(l7>{$e>o_G7fT6irfzzpJkLH2AZobj+%ME%1aj&h}?I z8^_xKZ{vJ_)*QY*?-tTi(=My^uI`J3VL(zeiC9u>aJ=)vIW}*9nYU`6BdR=6B}mc` zRr0KnV#bfw)HnatwtV!XYo~c1ZgV!Cfemmr4lYiX_B=3q9}jmwx3!ya;RT|?5tR^C5Y?jH2=S$#tZ8`vGmS~^+EoSKhi`ZrFUAGn;z;^X z#L@JVBrS8UE+Q)>4Iw-o7u#w0qz>idL~ule8$2gTPeh6)BgMiEYZ{ub*qY_8U773& z9`i0(A$;6O-;bt$!287$Fd|IYGAw2wA`B$Q5)m$l;-4}?tbYE{eLa7ZIn7yne~~0u zDd}ILMSn~W03`fhh{B=M$S^aBix~9 zv{m6F;gBr{6uwq^!s8dkX^%e?+w-w$@T;D|bOk3WSkKs|@St#?Y2@|4^QfD&CbJ83 zQoCjL;1DB1m>>!AtYMI2NNQFxtL_^v`DR!bk1l_U0=78PWW*a1H7{M0Qd6QQgU*8GgRyuDQug8OkD% zfE0)(keiIirnN(%GtS5;13KW)j>V$3wSb)}Bh;miS{=&|RK_l&MeRbZ?Ks6+JB6;u z)`2AKl*+IOMIdD1-rRe?wapq{!Datxeao1bdI;x>HQUC?N@u1o%ziBmwBUuAVt2!!bKFO<$MG<=#%!r8=&L%vBNCw|C!d zx~_eX0P0=Wh2uJaX+jT$6yQL((C|pevu$t?NB{;ewq5-GWOYr=26?%X7U<~L+=hmR zSU41VmKOdNFT)`?GZsV0abO%h3G?8G(2t*j)^LWDz1T3H5TsZ5wJ#M9NBGRF8)4QP{*dSwfu^S2 zF{`r~{D&VJ!W4Ee$1D6g!5 z>3Rq;N<(B2jzpoqy9wdn{t+5;K<4*^xsqY~@l^-g!Gh1SnP);i{A}tUBJ?gmd?; z09c8%&I+Ue_^e(UL(N|E1Ui`Hbb;iAZ5%B!t5-jTXh~ctl@(X2&iNJ3Ais4d7|>{@e;{@GOsan%)z3V3Om-@J#+J4{qsQX>%O80T=VGy&`9Em(Ee!(6fuHj}uJgdryO zp(E7sks2S4L}JuERZZ;Wrx*e$wU?m+{m_R%TN=%k!%^}5m530e2nfJ?nGUqCU8gLs zzLAt>c1D4+G>N7;VerFW$CyW#B6sabCbd)W0;>UZS;d8nc*XZqy?Bgt|m0e=38n%ia4Vz$i@y0Gu<;$jzF8!MDy-p%7R;5T5-#w-VmPa0t3D63hOHjPG#Um*D z+TALNJHKBPE8&yhwYLy57kfCHInz8iiP5h-huEOc6uKhGGQ{tm%cX(4)UM{Lfa-ct zx`Uoe-}@v$`0ccd+6tT8gq74(!Q*11XmwNIoIDNpKOckpx=a3jVLiGwj z`^Yh5*1is-yi6U0tT2sJbuAA)tW2Vly1R?I)N@aBU224;Z_9F*B?LUWIk@BmrcPm^ zjPv|#zTgcJBj2Ry451e8P($2xj#@Cc^CN%N97%YdCu9+ma++mA>tiYyu8wT%xJ%Tw z7baZhp-%#lX#9ZZdOMYsX_WxDc*6-U!tr=eP@&ePNCe9f^0b|U`N#v9u=1foxfIVi z;!)X#GsL9oDau|lbx*FH7V(ILv?Fu}{TP&**cATV2a%;^vL}q_pozP^A=&Vmo z;vu{DR!k1S429p~mU&r8NxWKs3mCa%!4d0e1mg@!;*7_gr@@U`eH8}JyA9W|&PQ1` zCHzzfisd<<+hy1+yWW{|YW~?+7{;>2fE!f|f!2sZe8MeedmQy%n54L&Rv25aki)Un*BoSsp zice(GlYCI6kSGG{t1y)0r|0sUHsjQ?$DloOKaz94q`-?;+tcZvOsu`({$wH&)PY`k z6iq;+?A+Cu%w;>?E=`oo5-{QkIejStyvu(*azaxfrn0k3JP8%n4yj~J_;c_71#TpS zk}35C@E6kQjj?!QetlhSTd%0Qb@q#Z%-gzc$5798-b^G)W=mKIXdxi??gT#Rfr1yh z%C8D1rm7=bYFa*>PX7tIxoF0;DQCLj>+`YS1Vkb|QJ(F{yuduTHxdcUUq77$2t;{6 z!iUd+aOv+speq-oKW|ySW!bMr<0TK@P@ih$r+&3SN53Y?U;*@x%^xf@bbVDU7Oj@Q z3nfg%@>0hy=>hi3yv{oBf(zt+$Mv4R`KB4`Ilicv|0K{WCJ+eP{K2+C4546EVK9H%$&>283-hEhUGTK!O9n$)MO$yzpxk! zztTvQ2%Us9!?nk!r<43UzV2yI^=?r0`hQ>D(Xx_u4QOZ*9x-gEAUr0VTrb#)cZ4HG zR$CE15*~2mfWp^G*L{9bobmZXu``>RfPm^5%ha%5!$#Jzg!_eitX$EkoJZZHHJzWE zk=iA*8fp=Zx~?}hL#{FFTJ``Gh-P9XRMm-(uHO>!Fj6unf{dJds|3(l{q zn!X1Y+Yo)UHAgE;L74&5gts$jTY!#RXkPNOs;qPR0JEF&L^rU10DZE*efbx(OlRkH z+I|ZF000SaNLh0L01FWS01FWTe`H^g000R6NklQ|O9p z4a^KXr4kmIBFw@JcRg#L_q+F8<^n}~k~4Six!?Cb&-cF1yBrPw$93fJ;fVooW8nK~ zKL|z#L6DN|nx^&Xns!pt^)`Op)!5j0f!lOl`yLIndY(t)E?}C_BM}7{ zZWbCo3HgpA3_t=fc=OuB=T9~@H*fl1B(6xHt*tF?MIz7ggx}(AxHN9Y@Tq*>Rjl)9G~nQX-cT*tc(g zJs-Ydn8v&UjTrG5EXRYjWgCo5n}L5FL-u?h3XTn50C;?pp@`}RqII<}nkK-VHwX3? zXTpvc@bU%3NuHtE#ARQZG^zRgKoV61Iy&~obq&8VO>-XO2dg%T=>DUKtotdj_aFj| zab~=GZC&0dtK`a)7>w51} zymz&OF zw0%#mh57S$)LJc>fcKsIkiYd7*t8LgMq%6bx|Vc$W$1;Hba_$j6rBD|0gv$H3jFDp z5b(Qz`vm&9n8Ud*+=wARcpUYk8(?}qB9vl;U{*8+{oO6Fe)~sg)PU>>3Pl*tyo~rC z{st>q1F=nv2L&s{RUT+-@2ClUZyVJ+8CC>|!^aR=@stABspcHDaBk!f3|qY%qwl;O z5dz4mWwS~}h9&pj7IfXW3ScH^r3@$ul-Z*(RL;65kfTWH0@1@>rs>QnQ_@-G0fH~2 z>L)WkN^s_j8a}GUgo=0Fiu-o>dXT{^n_&{)3 zC*Oli4kmSEIW80iv4X%~D8K7%9ea(y50=VFl;Z!q4d^%sou25;XHi&k2U^}(kNPnU zmBQnl>&CfzR^q~I8)5I>i|&Tf6gp$B zPRzSVTm39rTA75}$F(}s*rXQ(iw37sR}*v^oq78e>^)Qz$hC>ln(kwz@9yvygkJNfA8jTZs zx)4aKTFwRfkq?2s47x`TN5l75BT5hvNeJ#|bLd~cL7iMZnkMBM{lhV3#d!o`Aff+d_-Dtp*bb;=6IKt-w;1`SNpF9y`9{V;mRDv9G*X?k|k5OJI34|VF|4_dw zeFQ0?q8uph>q|sY_qDr~2usf|UgG}Zp8XY8F>Hs80@oE#Ka>7hGfWhA3|*^ z1*gBhA-F4zKeJ0>)SbSao{( zGj5nLo___07u<_te}Cm?5p40r*AN>qTm}YZ+Z}a{8fH{@1Dq5!b%a13UFq|LA$a&H z!-v=1%NoEsA!#}AlDN`iT_2rB{STi*a^#3|xHUM(P9VGfbr|(^YLKxl989|O2}n&rSG%iZdV!;yPURDkH!**e9zylPDxfFuy{kj)lIHG2L%hzv zOyw^{1D7ej6Osx!F$CG2Y%Hyf7`)&%T*o|*G40CDMHyDa z89Ik)>!0mXr#~0BV60dQ$WTKv*?i%k5sAE|N<$d5ZQFL-X<6n*&IGzip|NEmVp*ye z$fuOi-d%f8H(?x7R8fn>zs zKem3bn4oLo@mQ0*Zi$=K>`;#XKn*AYrBSP#=N?$#4!WNI^vyTT+Q_xl-K`Avi7%&H zKiDydAz8$C#3dv%g)bN}Cd!o@C&fioI6v^)JwN!FVMcyQm-k$8@uwvaZa#YKc=SwX z=OpT48dcZAlX7A~tvG|B?x$-`QPUk1=+5CIM(!IowxM`6;PAKq0;KZneKOqooB#j- M07*qoM6N<$g5VQ1egFUf diff --git a/data_from_portwine/img/setup.png b/data_from_portwine/img/setup.png new file mode 100644 index 0000000000000000000000000000000000000000..eca55cae6bc8f7fe797f5d7cd8d2ad36f624db0a GIT binary patch literal 15929 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 $NF}' | sed s/".exe"/""/gi` - orig_IFS="$IFS" - IFS=$'\n' - PW_FIND_DB_FILE=`grep -ilw "#${PORTWINE_DB}.exe" "${PORT_SCRIPTS_PATH}/portwine_db"/* | sed s/".exe"/""/gi` - if [[ `echo "$PW_FIND_DB_FILE" | wc -l` -gt 1 ]] ; then - unset ADD_CB_DBFILE - for PW_CHECK_DB_FILE in $PW_FIND_DB_FILE ; do - if [[ -z "${ADD_CB_DBFILE}" ]] ; then - export ADD_CB_DBFILE="${PW_CHECK_DB_FILE}" - else - export ADD_CB_DBFILE="${PW_CHECK_DB_FILE}!${ADD_CB_DBFILE}" + if [[ -f "${portwine_exe}".ppdb ]] ; then + export PORTWINE_DB_FILE="${portwine_exe}".ppdb + else + orig_IFS="$IFS" + IFS=$'\n' + PW_FIND_DB_FILE=`grep -ilw "#${PORTWINE_DB}.exe" "${PORT_SCRIPTS_PATH}/portwine_db"/* | sed s/".exe"/""/gi` + if [[ `echo "$PW_FIND_DB_FILE" | wc -l` -gt 1 ]] ; then + unset ADD_CB_DBFILE + for PW_CHECK_DB_FILE in $PW_FIND_DB_FILE ; do + if [[ -z "${ADD_CB_DBFILE}" ]] ; then + export ADD_CB_DBFILE="${PW_CHECK_DB_FILE}" + else + export ADD_CB_DBFILE="${PW_CHECK_DB_FILE}!${ADD_CB_DBFILE}" + fi + done + PORTWINE_DB_FILE=`"${pw_yad_new}" --text-align=center --text "${PW_SELECTION_DB_LOC}" --borders=15 --form --center \ + --title "Database file selection..." --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --form --separator="" \ + --field="DB FILE: :CB" "${ADD_CB_DBFILE}"` + if [[ "$?" == "1" || "$?" == "252" ]] ; then exit 0 ; fi + elif [[ `echo "$PW_FIND_DB_FILE" | wc -l` -eq 1 ]] ; then + PORTWINE_DB_FILE="${PW_FIND_DB_FILE}" + fi + IFS="$orig_IFS" + if [[ -f "${PW_FIND_DB_FILE}" ]] && [[ -z `grep "^export PW_DISABLED_CREATE_DB=1" "${PW_FIND_DB_FILE}"` ]] ; then + try_copy_file "${PW_FIND_DB_FILE}" "${portwine_exe}".ppdb + export PORTWINE_DB_FILE="${portwine_exe}".ppdb + if [[ ! -z `echo "${portwine_exe}" | grep "/data/prefixes/"` ]] && \ + [[ -z `echo "${portwine_exe}" | grep "/data/prefixes/DEFAULT"` ]] + then + export PW_PREFIX_NAME=`echo "${portwine_exe}" | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}'` + edit_db_from_gui PW_PREFIX_NAME fi - done - PORTWINE_DB_FILE=`"${pw_yad_new}" --text-align=center --text "${PW_SELECTION_DB_LOC}" --borders=15 --form --center \ - --title "Database file selection..." --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --form --separator="" \ - --field="DB FILE: :CB" "${ADD_CB_DBFILE}"` - if [[ "$?" == "1" || "$?" == "252" ]] ; then exit 0 ; fi - elif [[ `echo "$PW_FIND_DB_FILE" | wc -l` -eq 1 ]] ; then - PORTWINE_DB_FILE="${PW_FIND_DB_FILE}" + fi fi - IFS="$orig_IFS" if [ ! -z "${PORTWINE_DB_FILE}" ]; then . "${PORTWINE_DB_FILE}" init_wine_ver && @@ -572,88 +582,68 @@ pw_init_db () { fi fi return 0 -# export WIN_PATH_TO_GAME=`echo "C:${PATH_TO_GAME}" | sed "s%$WINEPREFIX%%g" | sed "s/drive_c//g" | sed 's#/#\\\#g'` } pw_port_update () { - ###PORT UPDATE### + ###SCRIPTS UPDATE### if [ ! -f "${PORT_WINE_TMP_PATH}/scripts_ver" ] ; then - echo "2000" > "${PORT_WINE_TMP_PATH}/scripts_ver" + echo "2022" > "${PORT_WINE_TMP_PATH}/scripts_ver" fi export scripts_install_ver=`cat "${PORT_WINE_TMP_PATH}/scripts_ver" | head -n 1` curl -s --list-only https://raw.githubusercontent.com/Castro-Fidel/PortWINE/master/data_from_portwine/scripts/var > "${PORT_WINE_TMP_PATH}/curent_var_ver" - if [[ "$?" == 0 ]] ; then - if [ ! -f "${PORT_WINE_TMP_PATH}/${portname}_ver" ] ; then - echo "10" > "${PORT_WINE_TMP_PATH}/${portname}_ver" - fi - export port_install_ver=`cat "${PORT_WINE_TMP_PATH}/${portname}_ver" | head -n 1` - if [ ! -f "${PORT_WINE_TMP_PATH}/update_notifier" ] ; then - echo "1" > "${PORT_WINE_TMP_PATH}/update_notifier" - fi - read "update_not" < "${PORT_WINE_TMP_PATH}/update_notifier" - if [ "${update_not}" = "1" ] ; then - export port_current_ver=`cat "${PORT_WINE_TMP_PATH}/curent_var_ver" | grep PORT_NEXT_VERSION | awk -F "=" '{print $2}'` - print_info "Port version in github = ${port_current_ver}" - print_info "Port version local = ${port_install_ver}" - if [[ ! -z "${port_current_ver}" && "${port_current_ver}" -gt "${port_install_ver}" ]] ; then - xsd=`zenity --title "${port_upd1}" --text "${port_upd2}" --list --radiolist --height=240 --column="${inst_set}" --column "${port_upd3}" \ - TRUE "${port_upd4}" \ - FALSE "${port_upd5}" \ - FALSE "${port_upd6}" ` - case $xsd in - "${port_upd4}") - kill_portwine && - xdg-open $PORTWINE_URL - exit 0 ;; - "${port_upd5}") - echo " " ;; - "${port_upd6}") - echo "0" > "${PORT_WINE_TMP_PATH}/update_notifier" ;; - esac - fi - fi - ###SCRIPTS UPDATE### - if [ ! -f "${PORT_WINE_TMP_PATH}/scripts_update_notifier" ] ; then - echo "1" > "${PORT_WINE_TMP_PATH}/scripts_update_notifier" - fi - read "scripts_update_not" < "${PORT_WINE_TMP_PATH}/scripts_update_notifier" - if [ "${scripts_update_not}" = "1" ] ; then - export scripts_current_ver=`cat "${PORT_WINE_TMP_PATH}/curent_var_ver" | grep SCRIPTS_NEXT_VERSION | awk -F "=" '{print $2}'` - print_info "Scripts version in github = ${scripts_current_ver}" - print_info "Scripts version local = ${scripts_install_ver}" - if [[ ! -z "${scripts_current_ver}" && "${scripts_current_ver}" -gt "${scripts_install_ver}" ]] ; then + [[ ! -f "${PORT_WINE_TMP_PATH}/scripts_update_notifier" ]] && echo "1" > "${PORT_WINE_TMP_PATH}/scripts_update_notifier" + read "scripts_update_not" < "${PORT_WINE_TMP_PATH}/scripts_update_notifier" + if [[ "${scripts_update_not}" == "1" ]] ; then + export scripts_current_ver=`cat "${PORT_WINE_TMP_PATH}/curent_var_ver" | grep SCRIPTS_NEXT_VERSION | awk -F "=" '{print $2}'` + print_info "Scripts version in github = ${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_WINELIB}/portable/bin/yad_new" ]] ; then + export pw_yad_new="${PW_WINELIB}/portable/bin/yad_new" + curl -s --list-only "https://raw.githubusercontent.com/Castro-Fidel/PortWINE/master/data_from_portwine/${PW_CHANGELOG_FILE}" | tee "${PORT_WINE_TMP_PATH}/curent_var_ver" | sszen + CHANGLOG_NEWS=`cat "${PORT_WINE_TMP_PATH}/curent_var_ver" | sed "/Scripts version ${scripts_install_ver}/,$ d" | sed '1,/---/ d' ` + xcsd=`"${pw_yad_new}" --title "${scripts_upd2} v.${scripts_current_ver}" --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \ + --borders=5 --form --separator='%%%' --width=1000 --height=350 --center \ + --field=":TXT" "${CHANGLOG_NEWS}" \ + --field=" ${scripts_upd3} :CB" "${scripts_upd4}!${scripts_upd5}!${scripts_upd6}" ` + YAD_STATUS="$?" + if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; fi + xcsd=`echo "${xcsd}" | awk -F'%%%' '{print $2}'` + else xcsd=`zenity --title "${scripts_upd1}" --text "${scripts_upd2}" --list --radiolist --height=240 --column="${inst_set}" --column "${scripts_upd3}" \ TRUE "${scripts_upd4}" \ FALSE "${scripts_upd5}" \ FALSE "${scripts_upd6}"` - case $xcsd in - "${scripts_upd4}") - echo "######################################################" - print_info "Update scripts..." - try_remove_file "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" - if try_download "https://github.com/Castro-Fidel/PortWINE/archive/refs/heads/master.tar.gz" "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" ; then - if unpack_tar_gz "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" "${PORT_WINE_TMP_PATH}" ; then - cp -fr "${PORT_WINE_TMP_PATH}/PortWINE-master/data_from_portwine/"* "${PORT_WINE_PATH}/data/" - try_remove_file "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" - try_remove_dir "${PORT_WINE_TMP_PATH}/PortWINE-master/" - echo "${scripts_current_ver}" > "${PORT_WINE_TMP_PATH}/scripts_ver" + fi + case $xcsd in + "${scripts_upd4}") + echo "######################################################" + print_info "Update scripts..." + try_remove_file "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" + if try_download "https://github.com/Castro-Fidel/PortWINE/archive/refs/heads/master.tar.gz" "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" ; then + if unpack_tar_gz "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" "${PORT_WINE_TMP_PATH}" ; then + cp -fr "${PORT_WINE_TMP_PATH}/PortWINE-master/data_from_portwine/"* "${PORT_WINE_PATH}/data/" + try_remove_file "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" + try_remove_dir "${PORT_WINE_TMP_PATH}/PortWINE-master/" + echo "${scripts_current_ver}" > "${PORT_WINE_TMP_PATH}/scripts_ver" + if [[ -z "${pw_yad_new}" ]] ; then zenity --title="Changelog" --text-info --width=1200 --height=550 \ --filename="${PORT_WINE_PATH}/data/${PW_CHANGELOG_FILE}" - [ "$?" == 0 ] && /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 fi - else - zenity_error_download && pw_scripts_update - fi ;; - "${scripts_upd5}") - echo " " ;; - "${scripts_upd6}") - echo "0" > "${PORT_WINE_TMP_PATH}/scripts_update_notifier" ;; - esac - fi + [ "$?" == 0 ] && /usr/bin/env bash -c ${pw_full_command_line[*]} & + exit 0 + fi + else + zenity_error_download && pw_scripts_update + fi ;; + "${scripts_upd5}") + echo " " ;; + "${scripts_upd6}") + echo "0" > "${PORT_WINE_TMP_PATH}/scripts_update_notifier" ;; + esac fi - try_remove_file "${PORT_WINE_TMP_PATH}/curent_var_ver" fi + try_remove_file "${PORT_WINE_TMP_PATH}/curent_var_ver" return 0 } @@ -683,16 +673,17 @@ update_winetricks () { } edit_db_from_gui () { + echo "edit_db_from_gui PORTWINE_DB_FILE=$PORTWINE_DB_FILE" for mod_db in $@ ; do echo "${mod_db}=${!mod_db}" if [ -z "`cat "${PORTWINE_DB_FILE}" | grep "export ${mod_db}="`" ] ; then - echo "export ${mod_db}=${!mod_db}" >> "${PORTWINE_DB_FILE}" + 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 [ "`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}" 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}" + sed -ri "s/.*export ${mod_db}=.*/export ${mod_db}=\"${!mod_db}\"/g" "${PORTWINE_DB_FILE}" fi done return 0 @@ -704,7 +695,7 @@ pw_create_gui_png () { else export PORTPROTON_NAME="$(basename "${portwine_exe}" | sed s/".exe"/""/gi )" fi - PW_RESIZE_TO=96 + PW_RESIZE_TO=128 try_remove_file "${PORT_WINE_PATH}/data/img/setup.png" if [[ -x "`which wrestool 2>/dev/null`" ]] && [[ ! -f "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" ]] ; then try_remove_dir "${PORT_WINE_TMP_PATH}/tmp_img" @@ -724,9 +715,11 @@ pw_create_gui_png () { [[ -x "`which "convert" 2>/dev/null`" ]] && [[ -f "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" ]] ; then convert "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" -resize ${PW_RESIZE_TO}x${PW_RESIZE_TO} "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" fi - if [[ ! -z "`file "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" | grep "${PW_RESIZE_TO} x ${PW_RESIZE_TO}"`" ]] ; then - export PW_ICON_FOR_YAD="${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" - else - export PW_ICON_FOR_YAD="${PW_GUI_ICON_PATH}/port_proton.png" + if [[ -z "${PW_ICON_FOR_YAD}" ]] ; then + if [[ ! -z "`file "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" | grep "${PW_RESIZE_TO} x ${PW_RESIZE_TO}"`" ]] ; then + export PW_ICON_FOR_YAD="${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" + else + export PW_ICON_FOR_YAD="${PW_GUI_ICON_PATH}/port_proton.png" + fi fi } diff --git a/data_from_portwine/scripts/lang b/data_from_portwine/scripts/lang index e97678c..0cae696 100755 --- a/data_from_portwine/scripts/lang +++ b/data_from_portwine/scripts/lang @@ -23,8 +23,8 @@ then export port_upd6="Больше не напоминать" export scripts_upd1="Обновление скриптов" - export scripts_upd2="Доступно обновление скриптов для ${portname}\n" - export scripts_upd3="Действие:" + export scripts_upd2="Доступно обновление скриптов для ${portname}" + export scripts_upd3="Действие :" export scripts_upd4="Обновить сейчас" export scripts_upd5="Напомнить позже" export scripts_upd6="Больше не напоминать" @@ -58,6 +58,7 @@ then export loc_winereg="Запустить редактор реестра префикса ${portname}" export loc_winetricks="Запустить winetricks для установки доп. библиотек в префикс ${portname}" export loc_edit_db="Изменить файл настроек для" + export loc_download_other_wine="Открыть меню для скачивания других версий WINE-PROTON" export ENABLE_VKBASALT_INFO='Включить vkBasalt по умолчанию для улучшение графики в играх работающих под Vulkan. (Горячая клавиша HOME отключает vkbasalt)' export PW_NO_ESYNC_INFO='Не использовать примитивы внутрипроцессной синхронизации на основе eventfd. (Рекомендуется не изменять значение)' @@ -127,8 +128,8 @@ then export port_upd6="Do not remind me" export scripts_upd1="New update for scripts" - export scripts_upd2="Scripts update avialable for ${portname}\n" - export scripts_upd3="Action:" + export scripts_upd2="Scripts update avialable for ${portname}" + export scripts_upd3="Action :" export scripts_upd4="Updating now" export scripts_upd5="Remind me later" export scripts_upd6="Do not remind me" @@ -154,6 +155,8 @@ then export PW_WAYLAND_INFO="Attention! You are running $portname in a Wayland session, some features may not be available!\nRestarting your session in X11 is recommended!" + export loc_download_other_wine="Download other wine-proton from GITHUB" + #Helped in translation: ConTI1NuEsZZZ export loc_create_shortcut="Create shortcut for select file..." export loc_delete_shortcut="Delete shortcut for select file..." diff --git a/data_from_portwine/scripts/portwine_db/Battle.net_Launcher b/data_from_portwine/scripts/portwine_db/Battle.net_Launcher index 61f1870..97ab02e 100755 --- a/data_from_portwine/scripts/portwine_db/Battle.net_Launcher +++ b/data_from_portwine/scripts/portwine_db/Battle.net_Launcher @@ -14,9 +14,9 @@ export PW_DLL_INSTALL="vcrun2019 d3dx11_42 d3dx11_43" export PW_WINDOWS_VER=10 add_in_start_portwine () { - rm -fr "${PORT_WINE_PATH}/data/pfx/drive_c/ProgramData/Agent/data" - rm -fr "${PORT_WINE_PATH}/data/pfx/drive_c/users/${USER}/Blizzard Entertainment/Battle.net/Cache" - rm -fr "${PORT_WINE_PATH}/data/pfx/drive_c/users/Public/Blizzard Entertainment/Battle.net/Cache" - try_remove_file "${PORT_WINE_PATH}/data/pfx/drive_c/windows/Fonts/sourcehansans.ttc" - sed -i 's/"GrabFullscreen"="Y"/"GrabFullscreen"="N"/' "${WINEPREFIX}/user.reg" + rm -fr "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/ProgramData/Agent/data" + rm -fr "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/${USER}/Blizzard Entertainment/Battle.net/Cache" + rm -fr "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/Public/Blizzard Entertainment/Battle.net/Cache" + try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/Fonts/sourcehansans.ttc" + sed -i 's/"GrabFullscreen"="Y"/"GrabFullscreen"="N"/' "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/user.reg" } diff --git a/data_from_portwine/scripts/portwine_db/League of Legends b/data_from_portwine/scripts/portwine_db/League of Legends index d55cbbb..2a115a7 100755 --- a/data_from_portwine/scripts/portwine_db/League of Legends +++ b/data_from_portwine/scripts/portwine_db/League of Legends @@ -14,10 +14,11 @@ export PW_COMMENT_DB="${TEXT_OPSSL}Dwnload and start League of Legends can take ##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP ##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks) ##export WINEDLLOVERRIDES="blabla=n,b" -export LAUNCH_PARAMETERS=("--launch-product=league_of_legends" "--launch-patchline=live") # Additional launch options +export LAUNCH_PARAMETERS="--launch-product=league_of_legends --launch-patchline=live" # Additional launch options export PW_WINE_USE=WINE_LOL_GE_7.0-1 export PW_VULKAN_USE=1 -export PW_MUST_HAVE_DLL="vcrun2013" +export PW_MUST_HAVE_DLL="" +export PW_PREFIX_NAME="LEAGUE_OF_LEGENDS" ##export PW_USE_DXR10=1 ##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN ##export PW_USE_NVAPI_AND_DLSS=0 diff --git a/data_from_portwine/scripts/portwine_db/Stetup b/data_from_portwine/scripts/portwine_db/Stetup deleted file mode 100644 index a77ea95..0000000 --- a/data_from_portwine/scripts/portwine_db/Stetup +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env bash -#Author: xuser -#Stetup.exe -#Rating=1-5 -#####################examples########################### -##export PW_COMMENT_DB="blablabla" -##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP -##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks) -##export WINEDLLOVERRIDES="blabla=n,b" -##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options -export PW_WINE_USE=PROTON_PW_6.19 -export PW_VULKAN_USE=1 -##export PW_DXR_ON=1 -##export PW_DLSS_ON=1 -##export PW_VULKAN_NO_ASYNC=1 # Disabled ASYNC for VULKAN -##export PW_USE_NVAPI_AND_DLSS=0 -##export PW_OLD_GL_STRING=1 -##export PW_HIDE_NVIDIA_GPU=1 -##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT -##export PW_VIRTUAL_DESKTOP=1 -##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue -##export ENABLE_VKBASALT=1 -##export PW_VKBASALT_EFFECTS="FakeHDR:cas" # Use Reshade in others games (dx9-12 to vulkan only) -##export PW_VKBASALT_FFX_CAS="0.75" # FidelityFX Contrast Adaptive Sharpening (min 0 - max 1) -##export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support. -##export PW_NO_ESYNC=0 # Do not use eventfd-based in-process synchronization primitives -##export PW_USE_GSTREAMER=1 # 0 - disabled use winegstreamer -##export PULSE_LATENCY_MSEC=60 # Fix crackling audio in games -##export PW_NO_WRITE_WATCH=1 # Disable support for memory write watches in ntdll. This is a very dangerous hack and should only be applied if you have verified that the game can operate without write watches. This improves performance for some very specific games (e.g. CoreRT-based games). -##export PW_HEAP_DELAY_FREE=1 -##export PW_WINE_ALLOW_XIM=1 # Disable XIM support until libx11 >= 1.7 is widespread -##export WINEARCH=win32 # defaut = win64 -##export WINEPREFIX= -##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG -##export PW_USE_TERMINAL=1 # Force run in terminal -##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI -##export PATH_TO_GAME= -##add_in_start_portwine () { commands ; } diff --git a/data_from_portwine/scripts/portwine_db/WorldOfTanksEnCoreLauncher b/data_from_portwine/scripts/portwine_db/WorldOfTanksEnCoreLauncher index f3dd18a..b20551f 100755 --- a/data_from_portwine/scripts/portwine_db/WorldOfTanksEnCoreLauncher +++ b/data_from_portwine/scripts/portwine_db/WorldOfTanksEnCoreLauncher @@ -5,8 +5,8 @@ ################################################ export PW_VULKAN_USE=1 export PW_USE_TERMINAL=0 - export WINEPREFIX="${PORT_WINE_PATH}/data/pfx_dotnet/" - export PW_DLL_INSTALL="vcrun2017 mfc42 vb6run physx dotnet40 " # Install DDL in port prefix (used winetricks) + export PW_PREFIX_NAME="DOTNET" + export PW_DLL_INSTALL="mfc42 vb6run physx dotnet40" # Install DDL in port prefix (used winetricks) export PW_COMMENT_DB="World Of Tanks EnCore" ## export DXVK_HUD=fps,devinfo ## export PW_MANGOHUD=1 diff --git a/data_from_portwine/scripts/portwine_db/default b/data_from_portwine/scripts/portwine_db/default index 7901eb7..3b6bf9b 100755 --- a/data_from_portwine/scripts/portwine_db/default +++ b/data_from_portwine/scripts/portwine_db/default @@ -8,7 +8,7 @@ ##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP ##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks) ##export WINEDLLOVERRIDES="blabla=n,b" -##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options +##export LAUNCH_PARAMETERS="+com_skipIntroVideo 1 +com_skipSignInManager 1" # Additional launch options ##export PW_WINE_USE=PROTON_GE # PROTON_STEAM or PROTON_GE ##export PW_VULKAN_USE=1 # 1 ,dxvk or 0 for OpenGL diff --git a/data_from_portwine/scripts/portwine_db/osu b/data_from_portwine/scripts/portwine_db/osu index a15adf1..6ff7296 100755 --- a/data_from_portwine/scripts/portwine_db/osu +++ b/data_from_portwine/scripts/portwine_db/osu @@ -5,7 +5,7 @@ #Rating=1-5 ######################################################## export PW_VULKAN_USE=0 -export WINEPREFIX="${PORT_WINE_PATH}/data/pfx_dotnet" +export PW_PREFIX_NAME="DOTNET" export PW_DLL_INSTALL="dotnet40" export PW_COMMENT_DB="OSU!" #####################examples########################### diff --git a/data_from_portwine/scripts/portwine_db/setup b/data_from_portwine/scripts/portwine_db/setup index 6571dc5..f860ad0 100755 --- a/data_from_portwine/scripts/portwine_db/setup +++ b/data_from_portwine/scripts/portwine_db/setup @@ -7,6 +7,8 @@ #Rating=5 #export PW_COMMENT_DB="blablabla" ################################################ +export PW_DISABLED_CREATE_DB=1 +export PW_ICON_FOR_YAD="${PORT_WINE_PATH}/data/img/setup.png" export PW_VULKAN_USE=0 #dxvk or vkd3d export PW_MANGOHUD=0 #export PW_WINE_USE=PROTON_STEAM diff --git a/data_from_portwine/scripts/portwine_db/wot_encore_install_ru b/data_from_portwine/scripts/portwine_db/wot_encore_install_ru index d02f17b..1639c95 100755 --- a/data_from_portwine/scripts/portwine_db/wot_encore_install_ru +++ b/data_from_portwine/scripts/portwine_db/wot_encore_install_ru @@ -5,7 +5,7 @@ ################################################ export PW_VULKAN_USE=dxvk export PW_USE_TERMINAL=1 - export WINEPREFIX="${PORT_WINE_PATH}/data/pfx_dotnet" + export PW_PREFIX_NAME="DOTNET" export PW_DLL_INSTALL="dotnet40 vcrun2017 mfc42 vb6run physx" export PW_COMMENT_DB="World Of Tanks EnCore Installer" ## export DXVK_HUD=fps,devinfo diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_GOG b/data_from_portwine/scripts/pw_autoinstall/PW_GOG index 47a6fbb..637fc5f 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_GOG +++ b/data_from_portwine/scripts/pw_autoinstall/PW_GOG @@ -2,7 +2,7 @@ # Author: Castro-Fidel (PortWINE-Linux.ru) ######################################################################## export LAUNCH_PARAMETERS=("/VERYSILENT") -export GOG_VER=2.0.45.61 +export GOG_VER=2.0.46.133 export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/setup_galaxy_${GOG_VER}.exe" start_portwine if try_download "https://content-system.gog.com/open_link/download?path=/open/galaxy/client/${GOG_VER}/setup_galaxy_${GOG_VER}.exe" "${PW_AUTOINSTALL_EXE}" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_LOL b/data_from_portwine/scripts/pw_autoinstall/PW_LOL index 28ecc6a..1132601 100644 --- a/data_from_portwine/scripts/pw_autoinstall/PW_LOL +++ b/data_from_portwine/scripts/pw_autoinstall/PW_LOL @@ -1,9 +1,9 @@ #!/usr/bin/env bash # Author: Castro-Fidel (PortWINE-Linux.ru) ######################################################################## -export LAUNCH_PARAMETERS=("/q" ) -export PW_AUTOINSTALL_EXE="${WINEPREFIX}/drive_c/live.na.exe" -export LAUNCH_PARAMETERS=("--launch-product=league_of_legends" "--launch-patchline=live") +export PW_PREFIX_NAME="LEAGUE_OF_LEGENDS" +export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/live.na.exe" +export LAUNCH_PARAMETERS="--launch-product=league_of_legends --launch-patchline=live" export PW_MUST_HAVE_DLL="" export PW_VULKAN_USE=1 export PW_WINE_USE=WINE_LOL_GE_7.0-1 diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_OSU b/data_from_portwine/scripts/pw_autoinstall/PW_OSU index e95a976..a746290 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_OSU +++ b/data_from_portwine/scripts/pw_autoinstall/PW_OSU @@ -1,11 +1,11 @@ #!/usr/bin/env bash # Author: cefeiko ######################################################################## -export WINEPREFIX="${PORT_WINE_PATH}/data/pfx_dotnet" +export PW_PREFIX_NAME=DOTNET +start_portwine export PW_DLL_INSTALL="dotnet40" mkdir -p "${WINEPREFIX}/drive_c/Program Files (x86)/OSU/" export PW_AUTOINSTALL_EXE="${WINEPREFIX}/drive_c/Program Files (x86)/OSU/osu!.exe" -start_portwine if try_download "https://m1.ppy.sh/r/osu!install.exe" "${PW_AUTOINSTALL_EXE}" then pw_start_progress_bar_block "Installing the OSU!. Please wait..." diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_WGC b/data_from_portwine/scripts/pw_autoinstall/PW_WGC index 96d0fd1..709912f 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_WGC +++ b/data_from_portwine/scripts/pw_autoinstall/PW_WGC @@ -9,7 +9,7 @@ try_download_wgc () { set -o pipefail wget -t 5 -T 3 "$1" --output-document="$2" 2>&1 | \ tr '\r' '\n' | sed -u 's/.* \([0-9]\+%\)\ \+\([0-9,.]\+.\) \(.*\)/\1\n#Downloading at \1\/, \2\/s, ETA \3/; s/^20[0-9][0-9].*/#Done./' | \ - zenity --progress --percentage=0 --title="Download $(basename $1)" --text=Starting... --auto-close --auto-kill --width=500 --height=90 + "${pw_yad_new}" --center --progress --percentage=0 --title="Download $(basename $1)" --text=Starting... --auto-close --auto-kill --width=500 --height=90 [ "${PIPESTATUS[0]}" != 0 ] && print_error "failed to download $1. Scipping." && return 1 || return 0 } diff --git a/data_from_portwine/scripts/runlib b/data_from_portwine/scripts/runlib index a44913a..e624c2c 100755 --- a/data_from_portwine/scripts/runlib +++ b/data_from_portwine/scripts/runlib @@ -22,7 +22,11 @@ fi . "$(dirname $(readlink -f "$0"))/functions_helper" start_portwine () { + export WINEPREFIX="${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}" + create_new_dir "${WINEPREFIX}/drive_c/" + try_force_link_dir "${PORT_WINE_PATH}/data/prefixes" "${WINEPREFIX}/drive_c/" export WINEARCH="win64" + pw_install_dll_in_prefix pw_check_and_download_wine "${PW_WINE_USE}" init_wine_ver sed -i '/Steam.exe/d' "${WINEDIR}/share/wine/wine.inf" @@ -54,12 +58,14 @@ start_portwine () { mv -f "${PW_WINELIB}/portable/lib/lib32" "${PW_WINELIB}/portable/lib/lib" fi fi - if [[ ! -z "${LD_LIBRARY_PATH}" ]] ; then - if [[ -z "`echo ${LD_LIBRARY_PATH} | grep "${WINEDIR}/lib64:${WINEDIR}/lib"`" ]] ; then - export LD_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib:${PW_WINELIB}/portable/lib/\$LIB:${LD_LIBRARY_PATH}" + + PW_PV_OVERRIDES="/usr/lib/pressure-vessel/overrides/lib" + if [[ ! -z "${LD_LIBRARY_PATH}" ]] ; then + if [[ -z "`echo ${PW_LD_LIBRARY_PATH} | grep "${WINEDIR}/lib64:${WINEDIR}/lib"`" ]] ; then + export PW_LD_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib:${PW_WINELIB}/portable/lib/\$LIB:${PW_PV_OVERRIDES}/x86_64-linux-gnu/aliases:${PW_PV_OVERRIDES}/i386-linux-gnu/aliases:${LD_LIBRARY_PATH}" fi else - export LD_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib:${PW_WINELIB}/portable/lib/\$LIB" + export PW_LD_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib:${PW_WINELIB}/portable/lib/\$LIB:${PW_PV_OVERRIDES}/x86_64-linux-gnu/aliases:${PW_PV_OVERRIDES}/i386-linux-gnu/aliases" fi if [[ ! -z "${VK_LAYER_PATH}" ]] @@ -86,8 +92,8 @@ start_portwine () { else var_winedlloverride_update "winegstreamer=" fi - export STAGING_SHARED_MEMORY=1 - export PW_FORCE_LARGE_ADDRESS_AWARE=1 + # export STAGING_SHARED_MEMORY=1 + # export PW_FORCE_LARGE_ADDRESS_AWARE=1 if [ "${PW_USE_RUNTIME}" = 0 ] ; then export pw_runtime="" @@ -275,7 +281,7 @@ start_portwine () { fi pw_vkbasalt_check pw_other_fixes - #init_pfx + check_dirs_and_files_in_pfx () { create_new_dir "${WINEPREFIX}" create_new_dir "${WINEPREFIX}/drive_c" @@ -300,6 +306,7 @@ start_portwine () { try_force_link_file "${WINEDIR}/share/wine/fonts/"tahoma.ttf "${WINEPREFIX}/drive_c/windows/Fonts/"tahoma.ttf } + if [[ ! -d "${WINEPREFIX}" || ! -d "${WINEPREFIX}"/drive_c/windows || ! -d "${WINEPREFIX}/dosdevices" || \ ! -f "${WINEPREFIX}"/userdef.reg || ! -f "${WINEPREFIX}"/system.reg || ! -f "${WINEPREFIX}"/user.reg ]] then @@ -308,14 +315,14 @@ start_portwine () { # export PW_WINE_USE=${PW_PROTON_STEAM_VER} # init_wine_ver check_dirs_and_files_in_pfx - ${pw_runtime} env LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" "${WINELOADER}" wineboot -i &>>"${PORT_WINE_TMP_PATH}/update_pfx_log" + ${pw_runtime} env LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" "${WINELOADER}" wineboot -i &>>"${PORT_WINE_TMP_PATH}/update_pfx_log" wait_wineserver && # export PW_WINE_USE="${OLD_PW_WINE_USE}" # init_wine_ver echo "${PW_WINE_USE}" > "${WINEPREFIX}/.wine_ver" - elif [[ -z "`cat ${WINEPREFIX}/.wine_ver | grep ${PW_WINE_USE}`" ]] ; then + elif [[ -z "`cat "${WINEPREFIX}/.wine_ver" | grep ${PW_WINE_USE}`" ]] ; then check_dirs_and_files_in_pfx - ${pw_runtime} env LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" "${WINELOADER}" wineboot -i &>>"${PORT_WINE_TMP_PATH}/update_pfx_log" + ${pw_runtime} env LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" "${WINELOADER}" wineboot -i &>>"${PORT_WINE_TMP_PATH}/update_pfx_log" wait_wineserver && echo "${PW_WINE_USE}" > "${WINEPREFIX}/.wine_ver" fi @@ -325,26 +332,15 @@ start_portwine () { if [ ! -d "${WINEPREFIX}/drive_c/users/${USER}" ]; then try_force_link_dir "${WINEPREFIX}/drive_c/users/steamuser" "${WINEPREFIX}/drive_c/users/${USER}" fi - [ ! -d "${PORT_WINE_PATH}/drive_c" ] && try_force_link_dir "${PORT_WINE_PATH}/data/pfx/drive_c/" "${PORT_WINE_PATH}/" 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 - #try link Battle Eye libs - try_force_link_file "${PW_PLUGINS_PATH}"/BattlEye_Runtime/v1/lib/wine/fakedlls/beclient.dll "${WINEPREFIX}/drive_c/windows/syswow64/" - try_force_link_file "${PW_PLUGINS_PATH}"/BattlEye_Runtime/v1/lib64/wine/fakedlls/beclient_x64.dll "${WINEPREFIX}/drive_c/windows/system32/" - if [[ ! -d "${WINEDIR}"/lib/wine/i386-unix ]] - then try_force_link_file "${PW_PLUGINS_PATH}"/BattlEye_Runtime/v1/lib/wine/beclient.dll.so "${WINEDIR}"/lib/wine/ - else try_force_link_file "${PW_PLUGINS_PATH}"/BattlEye_Runtime/v1/lib/wine/beclient.dll.so "${WINEDIR}"/lib/wine/i386-unix/ - fi - if [[ ! -d "${WINEDIR}"/lib64/wine/x86_64-unix ]] - then try_force_link_file "${PW_PLUGINS_PATH}"/BattlEye_Runtime/v1/lib64/wine/beclient_x64.dll.so "${WINEDIR}"/lib64/wine/ - else try_force_link_file "${PW_PLUGINS_PATH}"/BattlEye_Runtime/v1/lib64/wine/beclient_x64.dll.so "${WINEDIR}"/lib64/wine/x86_64-unix/ - fi - try_force_link_file "${PW_PLUGINS_PATH}"/BattlEye_Runtime/BEClient.so "${WINEDIR}"/lib - try_force_link_file "${PW_PLUGINS_PATH}"/BattlEye_Runtime/BEClient_x64.so "${WINEDIR}"/lib64 - var_winedlloverride_update "beclient,beclient_x64=b,n" + #enabled BattleEye_Runtime and EasyAntiCheat_Runtime + export PROTON_BATTLEYE_RUNTIME="${PW_PLUGINS_PATH}/d3d_extras/BattlEye_Runtime" + export PROTON_EAC_RUNTIME="${PW_PLUGINS_PATH}/d3d_extras/EasyAntiCheat_Runtime" + var_winedlloverride_update "easyanticheat_x86,easyanticheat_x64,beclient,beclient_x64=b,n" #try link d3d extras libs for d3d_extras_from_plugins in d3dcompiler_33 d3dcompiler_34 d3dcompiler_35 d3dcompiler_36 d3dcompiler_37 \ d3dcompiler_38 d3dcompiler_39 d3dcompiler_40 d3dcompiler_41 d3dcompiler_42 d3dcompiler_43 d3dcompiler_46 \ @@ -469,7 +465,7 @@ start_portwine () { # export PW_WINE_VER="${PW_PROTON_STEAM_VER}" # init_wine_ver # fi - ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" \ + ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \ "${PORT_WINE_TMP_PATH}/winetricks" -q -r -f ${PW_DLL_NEED_INSTALL} &>>"${PORT_WINE_TMP_PATH}/update_pfx_log" wait_wineserver kill_portwine @@ -484,7 +480,7 @@ start_portwine () { if [[ ! -z "${PW_WINDOWS_VER}" && `echo "$PW_WINDOWS_VER" | sed 's/.*/\L&/'` == "xp" ]] ; then export PW_WINDOWS_VER="xp64" fi - ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" \ + ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \ "${WINELOADER}" winecfg -v `echo "win${PW_WINDOWS_VER}" | sed 's/.*/\L&/'` wait_wineserver kill_portwine @@ -507,25 +503,25 @@ pw_run () { pw_mangohud_check PW_LOG_TO_FILE="${PORT_WINE_PATH}/${portname}.log" print_var "WINEDIR" "WINEPREFIX" "WINEDLLOVERRIDES" "PATH_TO_GAME" "PW_WINE_USE" "PW_VULKAN_USE" "VKD3D_CONFIG" \ - "LD_LIBRARY_PATH" "PATH" "WINEESYNC" "WINEFSYNC" "WINEFSYNC_FUTEX2" + "PW_LD_LIBRARY_PATH" "PATH" "WINEESYNC" "WINEFSYNC" "WINEFSYNC_FUTEX2" if [ "${PW_LOG}" == 1 ] ; then echo "WINEDLLOVERRIDES=${WINEDLLOVERRIDES}" >> "${PW_LOG_TO_FILE}" echo "------------------------------------" >> "${PW_LOG_TO_FILE}" echo "Log WINE:" >> "${PW_LOG_TO_FILE}" if [[ ! -z "${PW_GAMEMODERUN}" && "${PW_GAMEMODERUN}" != 0 ]] ; then ${optirun_on} ${pw_runtime} env LD_PRELOAD="${PW_LD_PRELOAD}" VK_LAYER_PATH="${VK_LAYER_PATH}" PATH="${PATH}" \ - LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" ${RUN_MANGOHUD_IN_SLR} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}" + LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" ${RUN_MANGOHUD_IN_SLR} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}" else - ${optirun_on} ${pw_runtime} env VK_LAYER_PATH="${VK_LAYER_PATH}" PATH="${PATH}" LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" \ + ${optirun_on} ${pw_runtime} env VK_LAYER_PATH="${VK_LAYER_PATH}" PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \ ${RUN_MANGOHUD_IN_SLR} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}" fi else [ "${PW_USE_TERMINAL}" != "1" ] && export PW_TERM="" if [[ ! -z "${PW_GAMEMODERUN}" && "${PW_GAMEMODERUN}" != 0 ]] ; then $PW_TERM ${optirun_on} ${pw_runtime} env LD_PRELOAD="${PW_LD_PRELOAD}" VK_LAYER_PATH="${VK_LAYER_PATH}" PATH="${PATH}" \ - LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" ${RUN_MANGOHUD_IN_SLR} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} + LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" ${RUN_MANGOHUD_IN_SLR} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} else - $PW_TERM ${optirun_on} ${pw_runtime} env VK_LAYER_PATH="${VK_LAYER_PATH}" PATH="${PATH}" LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" \ + $PW_TERM ${optirun_on} ${pw_runtime} env VK_LAYER_PATH="${VK_LAYER_PATH}" PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \ ${RUN_MANGOHUD_IN_SLR} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} fi fi @@ -546,6 +542,8 @@ fi unset MANGOHUD MANGOHUD_DLSYM PW_NO_ESYNC PW_NO_FSYNC PW_VULKAN_USE WINEDLLOVERRIDES PW_NO_WRITE_WATCH PW_YAD_SET PW_ICON_FOR_YAD unset PW_CHECK_AUTOINSTAL PW_VKBASALT_EFFECTS PW_VKBASALT_FFX_CAS PORTWINE_DB PORTWINE_DB_FILE PW_DISABLED_CREATE_DB unset CHK_SYMLINK_FILE MESA_GL_VERSION_OVERRIDE PATH_TO_GAME PW_START_DEBUG PORTPROTON_NAME PORTWINE_CREATE_SHORTCUT_NAME +unset PW_PREFIX_NAME WINEPREFIX VULKAN_MOD PW_WINE_VER + export portname=PortProton cd "$(dirname "`readlink -f "$0"`")" && export PORT_SCRIPTS_PATH="$(pwd)" @@ -553,19 +551,60 @@ cd "${PORT_SCRIPTS_PATH}/../../" && export PORT_WINE_PATH="$(pwd)" export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp" rm -f "${PORT_WINE_TMP_PATH}"/*.tar.* -if [ -d "${PORT_WINE_PATH}/data/dist" ] ; then +if [[ -d "${PORT_WINE_PATH}/data/dist" ]] ; then chmod -R 755 "${PORT_WINE_PATH}/data/dist" orig_IFS="$IFS" IFS=$'\n' for dist_dir in $(ls -1 "${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 + 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^^}" fi done IFS="$orig_IFS" fi +create_new_dir "${PORT_WINE_PATH}/data/prefixes" +try_force_link_dir "${PORT_WINE_PATH}/data/prefixes" "${PORT_WINE_PATH}" +if [[ -d "${PORT_WINE_PATH}/data/pfx" ]] ; then + mv -f "${PORT_WINE_PATH}/data/pfx" "${PORT_WINE_PATH}/data/prefixes/DEFAULT" + orig_IFS="$IFS" + IFS=$'\n' + for change_path in `grep -il "/data/pfx/" "${HOME}/.local/share/applications"/*.desktop` ; do + sed -i 's%/data/pfx/%/data/prefixes/DEFAULT/%g' "${change_path}" + done + for change_path in `grep -il "/data/pfx/" "${PORT_WINE_PATH}"/*.desktop` ; do + sed -i 's%/data/pfx/%/data/prefixes/DEFAULT/%g' "${change_path}" + done + IFS="$orig_IFS" + rm -f "${PORT_WINE_PATH}/drive_c" +fi + +if [[ -d "${PORT_WINE_PATH}/data/pfx_dotnet" ]] ; then + mv -f "${PORT_WINE_PATH}/data/pfx_dotnet" "${PORT_WINE_PATH}/data/prefixes/DOTNET" + orig_IFS="$IFS" + IFS=$'\n' + for change_path in `grep -il "/data/pfx_dotnet/" "${HOME}/.local/share/applications"/*.desktop` ; do + sed -i 's%/data/pfx_dotnet/%/data/prefixes/DOTNET/%g' "${change_path}" + done + for change_path in `grep -il "/data/pfx_dotnet/" "${PORT_WINE_PATH}"/*.desktop` ; do + sed -i 's%/data/pfx_dotnet/%/data/prefixes/DOTNET/%g' "${change_path}" + done + IFS="$orig_IFS" +fi +create_new_dir "${PORT_WINE_PATH}/data/prefixes/DOTNET" + + +orig_IFS="$IFS" +IFS=$'\n' +for pfx_dir in $(ls -1 "${PORT_WINE_PATH}/data/prefixes/") ; do + pfx_dir_new=`echo "${pfx_dir}" | awk '$1=$1' | sed -e s/[[:blank:]]/_/g` + if [[ ! -d "${PORT_WINE_PATH}/data/prefixes/${pfx_dir_new^^}" ]] ; then + mv -- "${PORT_WINE_PATH}/data/prefixes/$pfx_dir" "${PORT_WINE_PATH}/data/prefixes/${pfx_dir_new^^}" + fi +done +IFS="$orig_IFS" + create_new_dir "${PORT_WINE_TMP_PATH}"/gecko create_new_dir "${PORT_WINE_TMP_PATH}"/mono diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index a9b9c3c..b122ef9 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -52,7 +52,7 @@ portwine_create_shortcut () { chmod u+x "${PORT_WINE_PATH}/${name_desktop}.desktop" `zenity --question --title "${inst_set}." --text "${ss_done}" --no-wrap ` &> /dev/null if [ $? -eq "0" ]; then - cp -f "${PORT_WINE_PATH}/${name_desktop}.desktop" ${HOME}/.local/share/applications/ + cp -fu "${PORT_WINE_PATH}/${name_desktop}.desktop" ${HOME}/.local/share/applications/ fi xdg-open "${PORT_WINE_PATH}" 2>1 >/dev/null & } @@ -62,7 +62,6 @@ portwine_delete_shortcut () { rm -f "`grep -il "${portwine_exe}" "${PORT_WINE_PATH}"/*.desktop`" } - portwine_start_debug () { kill_portwine export PW_LOG=1 @@ -126,7 +125,7 @@ portwine_start_debug () { echo "Graphic cards and drivers:" >> "${PORT_WINE_PATH}/${portname}.log" echo 'lspci | grep -i vga:' >> "${PORT_WINE_PATH}/${portname}.log" echo `lspci | grep -i vga` >> "${PORT_WINE_PATH}/${portname}.log" - env LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${PW_WINELIB}/portable/lib/\$LIB" "${PW_WINELIB}/portable/bin/glxinfo" -B >> "${PORT_WINE_PATH}/${portname}.log" + env LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" "${PW_WINELIB}/portable/bin/glxinfo" -B >> "${PORT_WINE_PATH}/${portname}.log" echo " " >> "${PORT_WINE_PATH}/${portname}.log" echo "inxi -G:" >> "${PORT_WINE_PATH}/${portname}.log" env LANG=C "${PW_WINELIB}/portable/bin/inxi" -G >> "${PORT_WINE_PATH}/${portname}.log" @@ -146,7 +145,7 @@ portwine_start_debug () { fi echo "-------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" echo "winetricks.log:" >> "${PORT_WINE_PATH}/${portname}.log" - cat "${WINEPREFIX}/winetricks.log" >> "${PORT_WINE_PATH}/${portname}.log" + cat "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" >> "${PORT_WINE_PATH}/${portname}.log" echo "------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" if [ ! -z "${PORTWINE_DB_FILE}" ]; then echo "Use ${PORTWINE_DB_FILE} db file:" >> "${PORT_WINE_PATH}/${portname}.log" @@ -211,7 +210,7 @@ pw_winecmd () { export PW_USE_TERMINAL=1 start_portwine cd "${WINEPREFIX}/drive_c" - ${pw_runtime} env LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" xterm -e "${WINELOADER}" cmd + ${pw_runtime} env LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" xterm -e "${WINELOADER}" cmd stop_portwine } @@ -259,7 +258,7 @@ pw_edit_db () { } pw_autoinstall_from_db () { - export PW_USER_TEMP="$WINEPREFIX/drive_c" + export PW_USER_TEMP="${PORT_WINE_TMP_PATH}" export PW_FORCE_LARGE_ADDRESS_AWARE=0 export PW_USE_GAMEMODE=0 export PW_CHECK_AUTOINSTAL=1 @@ -277,6 +276,23 @@ pw_autoinstall_from_db () { } ###MAIN### +export PW_PREFIX_NAME="`echo "${PW_PREFIX_NAME}" | sed -e s/[[:blank:]]/_/g`" +PW_ALL_PREFIXES=`ls "${PORT_WINE_PATH}/data/prefixes/" | sed -e s/"${PW_PREFIX_NAME}$"//g` + +# if [[ ! -z "${PORTWINE_DB}" ]] && [[ -z `echo "${PW_PREFIX_NAME}" | grep -i "$(echo "${PORTWINE_DB}" | sed -e s/[[:blank:]]/_/g)"` ]] ; then +# export PW_PREFIX_NAME="${PW_PREFIX_NAME}!`echo "${PORTWINE_DB}" | sed -e s/[[:blank:]]/_/g`" +# fi + +unset PW_ADD_PREFIXES_TO_GUI +IFS_OLD=$IFS +IFS=$'\n' +for PAIG in ${PW_ALL_PREFIXES[*]} ; do + [[ "${PAIG}" != `echo "${PORTWINE_DB^^}" | sed -e s/[[:blank:]]/_/g` ]] && \ + export PW_ADD_PREFIXES_TO_GUI="${PW_ADD_PREFIXES_TO_GUI}!${PAIG}" +done +IFS=$IFS_OLD +export PW_ADD_PREFIXES_TO_GUI="${PW_PREFIX_NAME^^}${PW_ADD_PREFIXES_TO_GUI}" + PW_ALL_DIST=`ls "${PORT_WINE_PATH}/data/dist/" | sed -e s/"${PW_PROTON_GE_VER}$//g" | sed -e s/"${PW_PROTON_STEAM_VER}$//g"` unset DIST_ADD_TO_GUI for DAIG in ${PW_ALL_DIST} @@ -340,6 +356,7 @@ if [ ! -z "${portwine_exe}" ]; then --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \ --field="3D API : :CB" "${PW_DEFAULT_VULKAN_USE}" \ --field=" WINE : :CB" "${PW_DEFAULT_WINE_USE}" \ + --field="PREFIX : :CBE" "${PW_ADD_PREFIXES_TO_GUI}" \ --field=":LBL" "" \ --button='VKBASALT'!!"${ENABLE_VKBASALT_INFO}":120 \ --button='EDIT DB'!!"${loc_edit_db} ${PORTWINE_DB}":118 \ @@ -350,13 +367,19 @@ if [ ! -z "${portwine_exe}" ]; then if [[ "$PW_YAD_SET" == "1" || "$PW_YAD_SET" == "252" ]] ; then exit 0 ; fi export VULKAN_MOD=`echo "${OUTPUT_START}" | grep \;\; | awk -F";" '{print $1}'` export PW_WINE_VER=`echo "${OUTPUT_START}" | grep \;\; | awk -F";" '{print $2}'` + export PW_PREFIX_NAME=`echo "${OUTPUT_START}" | grep \;\; | awk -F";" '{print $3}' | sed -e s/[[:blank:]]/_/g` + if [[ -z "${PW_PREFIX_NAME}" ]] || [[ ! -z "`echo "${PW_PREFIX_NAME}" | grep -E '^_.*' `" ]] ; then + export PW_PREFIX_NAME="DEFAULT" + else + export PW_PREFIX_NAME="${PW_PREFIX_NAME^^}" + fi elif [ ! -z "${PORTWINE_DB_FILE}" ]; then portwine_launch fi else button_click () { [ ! -z "$1" ] && echo "$1" > "${PORT_WINE_TMP_PATH}/tmp_yad_form" - if [ ! -z `pidof -s yad` ] ; then + if [ ! -z `pidof -s yad` ] || [ ! -z `pidof -s yad_new` ] ; then kill -s SIGUSR1 `pgrep -a yad | grep "\-\-key=${KEY} \-\-notebook" | awk '{print $1}'` > /dev/null 2>&1 fi } @@ -395,72 +418,65 @@ else } export -f gui_wine_uninstaller - gui_open_var () { - xdg-open "${PORT_SCRIPTS_PATH}/var" + gui_open_user_conf () { + xdg-open "${PORT_WINE_PATH}/data/user.conf" } - export -f gui_open_var + export -f gui_open_user_conf export KEY=$RANDOM - "${pw_yad}" --plug=$KEY --tabnum=4 --form --columns=2 \ - --field="CLEAR PREFIX":"BTN" '@bash -c "button_click gui_clear_pfx"' \ - --field="EDIT SCRIPT VAR":"BTN" '@bash -c "button_click gui_open_var"' \ - --field="WINE UNINSTALLER":"BTN" '@bash -c "button_click gui_wine_uninstaller"' \ - --field="UPDATE PORTPROTON":"BTN" '@bash -c "button_click gui_pw_update"' \ - --field="REMOVE PORTPROTON":"BTN" '@bash -c "button_click gui_rm_portproton"' \ - --field="CHANGELOG":"BTN" '@bash -c "button_click open_changelog"' & + "${pw_yad_new}" --plug=${KEY} --tabnum=3 --columns=4 --align-buttons --form --separator=";" \ + --field=" 3D API : :CB" "VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL" \ + --field=" PREFIX : :CBE" "${PW_ADD_PREFIXES_TO_GUI}" \ + --field=" WINE : :CB" "${PW_DEFAULT_WINE_USE}" \ + --field=" DOWNLOAD OTHER WINE "!"${loc_download_other_wine}":"FBTN" '@bash -c "button_click gui_proton_downloader"' \ + --field=' DEBUG'!""!"${loc_debug}":"FBTN" '@bash -c "button_click DEBUG"' \ + --field=' WINECFG'!""!"${loc_winecfg}":"FBTN" '@bash -c "button_click WINECFG"' \ + --field=' WINEFILE'!""!"${loc_winefile}":"FBTN" '@bash -c "button_click WINEFILE"' \ + --field=' WINECMD'!""!"${loc_winecmd}":"FBTN" '@bash -c "button_click WINECMD"' \ + --field=' WINEREG'!""!"${loc_winereg}":"FBTN" '@bash -c "button_click WINEREG"' \ + --field=' WINETRICKS'!""!"${loc_winetricks}":"FBTN" '@bash -c "button_click WINETRICKS"' \ + --field=" WINE UNINSTALLER"!""!"":"FBTN" '@bash -c "button_click gui_wine_uninstaller"' \ + --field=" CLEAR PREFIX"!""!"":"FBTN" '@bash -c "button_click gui_clear_pfx"' \ + --field=" EDIT USER.CONF"!""!"":"FBTN" '@bash -c "button_click gui_open_user_conf"' \ + --field=" REMOVE PORTPROTON"!""!"":"FBTN" '@bash -c "button_click gui_rm_portproton"' \ + --field=" UPDATE PORTPROTON"!""!"":"FBTN" '@bash -c "button_click gui_pw_update"' \ + --field=" CHANGELOG"!""!"":"FBTN" '@bash -c "button_click open_changelog"' &> "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" & - "${pw_yad}" --plug=$KEY --tabnum=3 --form --columns=3 --scroll --height=500 \ - --field=" Dolphin 5.0"!"$PW_GUI_ICON_PATH/dolphin.png":"BTN" '@bash -c "button_click PW_DOLPHIN"' \ - --field=" MAME"!"$PW_GUI_ICON_PATH/mame.png":"BTN" '@bash -c "button_click PW_MAME"' \ - --field=" ScummVM"!"$PW_GUI_ICON_PATH/scummvm.png":"BTN" '@bash -c "button_click PW_SCUMMVM"' \ - --field=" RetroArch"!"$PW_GUI_ICON_PATH/retroarch.png":"BTN" '@bash -c "button_click PW_RETROARCH"' \ - --field=" PPSSPP Windows"!"$PW_GUI_ICON_PATH/ppsspp.png":"BTN" '@bash -c "button_click PW_PPSSPP"' \ - --field=" Citra"!"$PW_GUI_ICON_PATH/citra.png":"BTN" '@bash -c "button_click PW_CITRA"' \ - --field=" Cemu"!"$PW_GUI_ICON_PATH/cemu.png":"BTN" '@bash -c "button_click PW_CEMU"' \ - --field=" DuckStation"!"$PW_GUI_ICON_PATH/duckstation.png":"BTN" '@bash -c "button_click PW_DUCKSTATION"' \ - --field=" ePSXe"!"$PW_GUI_ICON_PATH/epsxe.png":"BTN" '@bash -c "button_click PW_EPSXE"' \ - --field=" Project64"!"$PW_GUI_ICON_PATH/project64.png":"BTN" '@bash -c "button_click PW_PROJECT64"' \ - --field=" VBA-M"!"$PW_GUI_ICON_PATH/vba-m.png":"BTN" '@bash -c "button_click PW_VBA-M"' \ - --field=" Yabause"!"$PW_GUI_ICON_PATH/yabause.png":"BTN" '@bash -c "button_click PW_YABAUSE"' & + "${pw_yad_new}" --plug=$KEY --tabnum=2 --form --columns=3 --align-buttons --keep-icon-size --scroll \ + --field=" Dolphin 5.0"!"$PW_GUI_ICON_PATH/dolphin.png"!"":"FBTN" '@bash -c "button_click PW_DOLPHIN"' \ + --field=" MAME"!"$PW_GUI_ICON_PATH/mame.png"!"":"FBTN" '@bash -c "button_click PW_MAME"' \ + --field=" ScummVM"!"$PW_GUI_ICON_PATH/scummvm.png"!"":"FBTN" '@bash -c "button_click PW_SCUMMVM"' \ + --field=" RetroArch"!"$PW_GUI_ICON_PATH/retroarch.png"!"":"FBTN" '@bash -c "button_click PW_RETROARCH"' \ + --field=" PPSSPP Windows"!"$PW_GUI_ICON_PATH/ppsspp.png"!"":"FBTN" '@bash -c "button_click PW_PPSSPP"' \ + --field=" Citra"!"$PW_GUI_ICON_PATH/citra.png"!"":"FBTN" '@bash -c "button_click PW_CITRA"' \ + --field=" Cemu"!"$PW_GUI_ICON_PATH/cemu.png"!"":"FBTN" '@bash -c "button_click PW_CEMU"' \ + --field=" DuckStation"!"$PW_GUI_ICON_PATH/duckstation.png"!"":"FBTN" '@bash -c "button_click PW_DUCKSTATION"' \ + --field=" ePSXe"!"$PW_GUI_ICON_PATH/epsxe.png"!"":"FBTN" '@bash -c "button_click PW_EPSXE"' \ + --field=" Project64"!"$PW_GUI_ICON_PATH/project64.png"!"":"FBTN" '@bash -c "button_click PW_PROJECT64"' \ + --field=" VBA-M"!"$PW_GUI_ICON_PATH/vba-m.png"!"":"FBTN" '@bash -c "button_click PW_VBA-M"' \ + --field=" Yabause"!"$PW_GUI_ICON_PATH/yabause.png"!"":"FBTN" '@bash -c "button_click PW_YABAUSE"' & - "${pw_yad}" --plug=$KEY --tabnum=2 --form --columns=3 --scroll --height=500 \ - --field=" Wargaming Game Center"!"$PW_GUI_ICON_PATH/wgc.png":"BTN" '@bash -c "button_click PW_WGC"' \ - --field=" Battle.net Launcher"!"$PW_GUI_ICON_PATH/battle_net.png":"BTN" '@bash -c "button_click PW_BATTLE_NET"' \ - --field=" Epic Games Launcher"!"$PW_GUI_ICON_PATH/epicgames.png":"BTN" '@bash -c "button_click PW_EPIC"' \ - --field=" GoG Galaxy Launcher"!"$PW_GUI_ICON_PATH/gog.png":"BTN" '@bash -c "button_click PW_GOG"' \ - --field=" Ubisoft Game Launcher"!"$PW_GUI_ICON_PATH/ubc.png":"BTN" '@bash -c "button_click PW_UBC"' \ - --field=" Steam Client Launcher"!"$PW_GUI_ICON_PATH/steam.png":"BTN" '@bash -c "button_click PW_STEAM"' \ - --field=" EVE Online Launcher"!"$PW_GUI_ICON_PATH/eve.png":"BTN" '@bash -c "button_click PW_EVE"' \ - --field=" Origin Launcher"!"$PW_GUI_ICON_PATH/origin.png":"BTN" '@bash -c "button_click PW_ORIGIN"' \ - --field=" Bethesda.net Launcher"!"$PW_GUI_ICON_PATH/bethesda.png":"BTN" '@bash -c "button_click PW_BETHESDA"' \ - --field=" Rockstar Games Launcher"!"$PW_GUI_ICON_PATH/Rockstar.png":"BTN" '@bash -c "button_click PW_ROCKSTAR"' \ - --field=" My.Games Launcher"!"$PW_GUI_ICON_PATH/mygames.png":"BTN" '@bash -c "button_click PW_MYGAMES"' \ - --field=" OSU"!"$PW_GUI_ICON_PATH/osu.png":"BTN" '@bash -c "button_click PW_OSU"' \ - --field=" Ankama Launcher"!"$PW_GUI_ICON_PATH/ankama.png":"BTN" '@bash -c "button_click PW_ANKAMA"' \ - --field=" League of Legends"!"$PW_GUI_ICON_PATH/lol.png":"BTN" '@bash -c "button_click PW_LOL"' \ - --field=" Gameforge Client"!"$PW_GUI_ICON_PATH/gameforge.png":"BTN" '@bash -c "button_click PW_GAMEFORGE"' \ - --field=" ITCH.IO"!"$PW_GUI_ICON_PATH/itch.png":"BTN" '@bash -c "button_click PW_ITCH"' & + "${pw_yad_new}" --plug=$KEY --tabnum=1 --form --columns=3 --align-buttons --keep-icon-size --scroll \ + --field=" Wargaming Game Center"!"$PW_GUI_ICON_PATH/wgc.png"!"":"FBTN" '@bash -c "button_click PW_WGC"' \ + --field=" Battle.net Launcher"!"$PW_GUI_ICON_PATH/battle_net.png"!"":"FBTN" '@bash -c "button_click PW_BATTLE_NET"' \ + --field=" Epic Games Launcher"!"$PW_GUI_ICON_PATH/epicgames.png"!"":"FBTN" '@bash -c "button_click PW_EPIC"' \ + --field=" GoG Galaxy Launcher"!"$PW_GUI_ICON_PATH/gog.png"!"":"FBTN" '@bash -c "button_click PW_GOG"' \ + --field=" Ubisoft Game Launcher"!"$PW_GUI_ICON_PATH/ubc.png"!"":"FBTN" '@bash -c "button_click PW_UBC"' \ + --field=" Steam Client Launcher"!"$PW_GUI_ICON_PATH/steam.png"!"":"FBTN" '@bash -c "button_click PW_STEAM"' \ + --field=" EVE Online Launcher"!"$PW_GUI_ICON_PATH/eve.png"!"":"FBTN" '@bash -c "button_click PW_EVE"' \ + --field=" Origin Launcher"!"$PW_GUI_ICON_PATH/origin.png"!"":"FBTN" '@bash -c "button_click PW_ORIGIN"' \ + --field=" Bethesda.net Launcher"!"$PW_GUI_ICON_PATH/bethesda.png"!"":"FBTN" '@bash -c "button_click PW_BETHESDA"' \ + --field=" Rockstar Games Launcher"!"$PW_GUI_ICON_PATH/Rockstar.png"!"":"FBTN" '@bash -c "button_click PW_ROCKSTAR"' \ + --field=" My.Games Launcher"!"$PW_GUI_ICON_PATH/mygames.png"!"":"FBTN" '@bash -c "button_click PW_MYGAMES"' \ + --field=" OSU"!"$PW_GUI_ICON_PATH/osu.png"!"":"FBTN" '@bash -c "button_click PW_OSU"' \ + --field=" Ankama Launcher"!"$PW_GUI_ICON_PATH/ankama.png"!"":"FBTN" '@bash -c "button_click PW_ANKAMA"' \ + --field=" League of Legends"!"$PW_GUI_ICON_PATH/lol.png"!"":"FBTN" '@bash -c "button_click PW_LOL"' \ + --field=" Gameforge Client"!"$PW_GUI_ICON_PATH/gameforge.png"!"":"FBTN" '@bash -c "button_click PW_GAMEFORGE"' \ + --field=" ITCH.IO"!"$PW_GUI_ICON_PATH/itch.png"!"":"FBTN" '@bash -c "button_click PW_ITCH"' & - # --field=" Glyph Client"!"$PW_GUI_ICON_PATH/glyph.png":"BTN" '@bash -c "button_click PW_GLYPH"' \ - - "${pw_yad}" --plug=${KEY} --tabnum=1 --columns=3 --form --separator=";" \ - --image "$PW_GUI_ICON_PATH/port_proton.png" \ - --field=":CB" "VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL" \ - --field=":LBL" "" \ - --field='DEBUG'!!"${loc_debug}":"BTN" '@bash -c "button_click DEBUG"' \ - --field='WINECFG'!!"${loc_winecfg}":"BTN" '@bash -c "button_click WINECFG"' \ - --field=":CB" "${PW_DEFAULT_WINE_USE}" \ - --field=":LBL" "" \ - --field='WINEFILE'!!"${loc_winefile}":"BTN" '@bash -c "button_click WINEFILE"' \ - --field='WINECMD'!!"${loc_winecmd}":"BTN" '@bash -c "button_click WINECMD"' \ - --field="GET OTHER WINE"!!"":"FBTN" '@bash -c "button_click gui_proton_downloader"' \ - --field=":LBL" "" \ - --field='WINEREG'!!"${loc_winereg}":"BTN" '@bash -c "button_click WINEREG"' \ - --field='WINETRICKS'!!"${loc_winetricks}":"BTN" '@bash -c "button_click WINETRICKS"' &> "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" & - - "${pw_yad}" --key=$KEY --notebook --borders=3 --width=1000 --height=168 --no-buttons --text-align=center \ - --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "${portname}-${install_ver} (${scripts_install_ver})" --separator=";" \ - --tab-pos=right --tab="PORT_PROTON" --tab="AUTOINSTALL" --tab=" EMULATORS" --tab=" SETTINGS" --center + "${pw_yad_new}" --key=$KEY --notebook --borders=5 --width=1000 --height=235 --no-buttons --auto-close \ + --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "${portname}-${install_ver} (${scripts_install_ver})" \ + --tab-pos=bottom --tab="AUTOINSTALL"!""!"" --tab="EMULATORS"!""!"" --tab="SETTINGS"!""!"" --center YAD_STATUS="$?" if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; fi @@ -469,11 +485,17 @@ else try_remove_file "${PORT_WINE_TMP_PATH}/tmp_yad_form" fi if [ -f "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" ] ; then - cat "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" export VULKAN_MOD=`cat "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" | grep \;\; | awk -F";" '{print $1}'` - export PW_WINE_VER=`cat "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" | grep \;\; | awk -F";" '{print $5}'` + export PW_PREFIX_NAME=`cat "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" | grep \;\; | awk -F";" '{print $2}' | sed -e "s/[[:blank:]]/_/g" ` + export PW_WINE_VER=`cat "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" | grep \;\; | awk -F";" '{print $3}'` + if [[ -z "${PW_PREFIX_NAME}" ]] || [[ ! -z "`echo "${PW_PREFIX_NAME}" | grep -E '^_.*' `" ]] ; then + export PW_PREFIX_NAME="DEFAULT" + else + export PW_PREFIX_NAME="${PW_PREFIX_NAME^^}" + fi try_remove_file "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" fi + export PW_DISABLED_CREATE_DB=1 fi if [[ ! -z "${VULKAN_MOD}" && "${VULKAN_MOD}" = "OPENGL" ]] @@ -486,21 +508,21 @@ fi init_wine_ver -if [ -z "${PW_DISABLED_CREATE_DB}" ] ; then - if [ ! -z "${PORTWINE_DB}" ] ; then +if [[ -z "${PW_DISABLED_CREATE_DB}" ]] ; then + if [[ ! -z "${PORTWINE_DB}" ]] && [[ -z "${PORTWINE_DB_FILE}" ]] ; then PORTWINE_DB_FILE=`grep -il "\#${PORTWINE_DB}.exe" "${PORT_SCRIPTS_PATH}/portwine_db"/*` - if [ -z "${PORTWINE_DB_FILE}" ] ; then - echo "#!/usr/bin/env bash" > "${PORT_SCRIPTS_PATH}/portwine_db/$PORTWINE_DB" - echo "#Author: "${USER}"" >> "${PORT_SCRIPTS_PATH}/portwine_db/$PORTWINE_DB" - echo "#"${PORTWINE_DB}.exe"" >> "${PORT_SCRIPTS_PATH}/portwine_db/$PORTWINE_DB" - echo "#Rating=1-5" >> "${PORT_SCRIPTS_PATH}/portwine_db/$PORTWINE_DB" - cat "${PORT_SCRIPTS_PATH}/portwine_db/default" | grep "##" >> "${PORT_SCRIPTS_PATH}/portwine_db/$PORTWINE_DB" - export PORTWINE_DB_FILE="${PORT_SCRIPTS_PATH}/portwine_db/${PORTWINE_DB}" + if [[ -z "${PORTWINE_DB_FILE}" ]] ; then + echo "#!/usr/bin/env bash" > "${portwine_exe}".ppdb + echo "#Author: "${USER}"" >> "${portwine_exe}".ppdb + echo "#"${PORTWINE_DB}.exe"" >> "${portwine_exe}".ppdb + echo "#Rating=1-5" >> "${portwine_exe}".ppdb + cat "${PORT_SCRIPTS_PATH}/portwine_db/default" | grep "##" >> "${portwine_exe}".ppdb + export PORTWINE_DB_FILE="${portwine_exe}".ppdb fi - edit_db_from_gui PW_VULKAN_USE PW_WINE_USE fi + edit_db_from_gui PW_VULKAN_USE PW_WINE_USE PW_PREFIX_NAME fi -echo "PW_YAD_SET=$PW_YAD_SET" + case "$PW_YAD_SET" in 1|252) exit 0 ;; 98) portwine_delete_shortcut ;; @@ -514,7 +536,7 @@ case "$PW_YAD_SET" in WINETRICKS|116) pw_winetricks ;; 118) pw_edit_db ;; gui_clear_pfx) gui_clear_pfx ;; - gui_open_var) gui_open_var ;; + gui_open_user_conf) gui_open_user_conf ;; gui_wine_uninstaller) gui_wine_uninstaller ;; gui_rm_portproton) gui_rm_portproton ;; gui_pw_update) gui_pw_update ;; diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index 3c5dee4..ec9e601 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -1,6 +1,6 @@ #!/bin/env bash #Author: Castro-Fidel (PortWINE-Linux.ru) -#SCRIPTS_NEXT_VERSION=2085 +#SCRIPTS_NEXT_VERSION=2089 #PORT_NEXT_VERSION=97 ######################################################################## export PW_MANGOHUD=1 @@ -19,21 +19,20 @@ export PW_FORCE_USE_VSYNC=2 export PW_LOG=0 export PW_TERM="" export PW_USE_TERMINAL=0 -export PW_MUST_HAVE_DLL="physx mfc42 vcrun2019" export PW_WINEDBG_DISABLE=1 export PW_WINDOWS_VER="10" export WINEARCH="win64" -export PW_LIBS_VER="_v21" +export PW_LIBS_VER="_v22.2" export PORTWINE_URL="http://portwine-linux.ru/" export GDK_BACKEND="x11" export PW_USE_GSTREAMER="1" -export WINEPREFIX="${PORT_WINE_PATH}/data/pfx" +export PW_PREFIX_NAME="DEFAULT" export WINE_WIN_START="start.exe /i /unix" ###DEFAULT_WINE### export PW_WINE_USE=PROTON_GE -export PW_PLUGINS_VER="_v2" +export PW_PLUGINS_VER="_v3" ###WINE_PROTON_STEAM### -export PW_STEAM_VER="6.3-8C_PW2" +export PW_STEAM_VER="7.0-1" export PW_PROTON_STEAM_VER="PROTON_STEAM_${PW_STEAM_VER}" ###WINE_PROTON_GE### export PW_GE_VER="7.1-2" @@ -41,33 +40,41 @@ export PW_PROTON_GE_VER="PROTON_GE_${PW_GE_VER}" export WINE_FULLSCREEN_FSR="1" export WINE_FULLSCREEN_FSR_STRENGTH="2" ################################################################# +pw_install_dll_in_prefix () +{ + case $PW_PREFIX_NAME in + DEFAULT) export PW_MUST_HAVE_DLL="physx mfc42 vcrun2019" ;; + DOTNET) export PW_MUST_HAVE_DLL="physx mfc42 vcrun2019 dotnet20sp2 dotnet48" ;; + *) export PW_MUST_HAVE_DLL="" ;; + esac +} add_in_start_portwine () { -echo " " + echo " " } ######################################################################## add_in_stop_portwine () { -echo " " + echo " " } ######################################################################## pw_other_fixes () { -if [[ -f "${WINEPREFIX}/system.reg" ]] ; then -#fix after installation Origin, for disabled OriginWebHelperService by default - if [[ ! -z `cat "${WINEPREFIX}/system.reg" | grep -wm 1 "Origin.exe" | awk '{print $1}'` ]] ; then - sysreg_norig=$(((`cat -n "${WINEPREFIX}/system.reg" | grep OriginWebHelperService | awk '{print $1}'` + 3))) - sed -i "${sysreg_norig}s/dword:0000000[1-2]/dword:00000003/" "${WINEPREFIX}/system.reg" - fi - #fix after installation PnkBstr*, for disabled PnkBstr* by default - for fix_reg in "PnkBstrA.exe" "PnkBstrB.exe" ; do - if [[ ! -z `cat "${WINEPREFIX}/system.reg" | grep -wm 1 "${fix_reg}" | awk '{print $1}'` ]] ; then - sysreg_norig=$(((`cat -n "${WINEPREFIX}/system.reg" | grep "${fix_reg}" | awk '{print $1}'` + 3))) - sed -i "${sysreg_norig}s/dword:0000000[1-2]/dword:00000003/" "${WINEPREFIX}/system.reg" + if [[ -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg" ]] ; then + #fix after installation Origin, for disabled OriginWebHelperService by default + if [[ ! -z `cat "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg" | grep -wm 1 "Origin.exe" | awk '{print $1}'` ]] ; then + sysreg_norig=$(((`cat -n "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg" | grep OriginWebHelperService | awk '{print $1}'` + 3))) + sed -i "${sysreg_norig}s/dword:0000000[1-2]/dword:00000003/" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg" fi - done -fi -#disabled silent autostart steam -if [[ -f "${WINEPREFIX}/user.reg" ]] ; then - sed -i '/steam.exe\\" -silent"/d' "${WINEPREFIX}/user.reg" -fi + #fix after installation PnkBstr*, for disabled PnkBstr* by default + for fix_reg in "PnkBstrA.exe" "PnkBstrB.exe" ; do + if [[ ! -z `cat "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg" | grep -wm 1 "${fix_reg}" | awk '{print $1}'` ]] ; then + sysreg_norig=$(((`cat -n "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg" | grep "${fix_reg}" | awk '{print $1}'` + 3))) + sed -i "${sysreg_norig}s/dword:0000000[1-2]/dword:00000003/" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg" + fi + done + fi + #disabled silent autostart steam + if [[ -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/user.reg" ]] ; then + sed -i '/steam.exe\\" -silent"/d' "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/user.reg" + fi } diff --git a/data_from_portwine/scripts/zen_yad_gui b/data_from_portwine/scripts/zen_yad_gui index 6153432..078d672 100644 --- a/data_from_portwine/scripts/zen_yad_gui +++ b/data_from_portwine/scripts/zen_yad_gui @@ -85,7 +85,8 @@ pw_start_progress_bar_block () { } pw_stop_progress_bar () { - for PW_KILL_YAD_PID in "$PW_YAD_PID_PROGRESS_BAR_BLOCK" "$PW_YAD_PID_PROGRESS_BAR_CS" "$PW_YAD_PID_PFX_COVER_UI" "$PW_YAD_PID_PROGRESS_BAR_COVER" + for PW_KILL_YAD_PID in "$PW_YAD_PID_PROGRESS_BAR_BLOCK" "$PW_YAD_PID_PROGRESS_BAR_CS" \ + "$PW_YAD_PID_PFX_COVER_UI" "$PW_YAD_PID_PROGRESS_BAR_COVER" do kill -s SIGUSR1 "$PW_KILL_YAD_PID" > /dev/null 2>&1 done @@ -151,7 +152,7 @@ pw_gui_for_edit_db () { else export ${int_to_boole}="FALSE" fi TMP_HELP_FOR_GUI="${int_to_boole}_INFO" - int_to_boole_non_pw="`echo ${int_to_boole} | sed 's/^PW_//'`" + int_to_boole_non_pw="`echo ${int_to_boole} | sed 's/^PW_//' `" ADD_CHK_BOX_EDIT_DB+="--field= ${int_to_boole_non_pw} !${!TMP_HELP_FOR_GUI}:CHK%${!int_to_boole}%" done } @@ -180,15 +181,11 @@ pw_gui_for_edit_db () { --text "Change settings in database file for ${PORTWINE_DB}\n" --separator=" " --borders=10 --center \ --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --button="CANCEL":1 --button="OPEN DB FILE":150 --button="SAVE CHANGES":0 YAD_STATUS="$?" - if [[ "$YAD_STATUS" == "1" ]] ; then - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 - elif [[ "$YAD_STATUS" == "252" ]] ; then - exit 0 - elif [ "$YAD_STATUS" == "150" ] ; then - xdg-open "${PORTWINE_DB_FILE}" & - exit 0 - fi + case "$YAD_STATUS" in + 1) /usr/bin/env bash -c ${pw_full_command_line[*]} & exit 0 ;; + 150) xdg-open "${PORTWINE_DB_FILE}" & exit 0 ;; + 252) exit 0 ;; + esac output_yad_edit_db=(`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_edit_db"`) bool_from_yad=0 edit_db_field_read () { @@ -203,9 +200,9 @@ pw_gui_for_edit_db () { } edit_db_field_read $@ PW_WINDOWS_VER="`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $1}'`" - PW_DLL_INSTALL=\"`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $2}'`\" - WINEDLLOVERRIDES=\"`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $3}'`\" - LAUNCH_PARAMETERS=\"`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $5}'`\" + PW_DLL_INSTALL=`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $2}'` + WINEDLLOVERRIDES=`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $3}'` + LAUNCH_PARAMETERS=`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $5}'` FPS_LIMIT="`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $7}'`" if [ "${FPS_LIMIT}" == 0 ] ; then @@ -213,6 +210,7 @@ pw_gui_for_edit_db () { else export MANGOHUD_CONFIG=font_size=24,position=top-left,toggle_hud=Shift_R+F12,no_display,resolution,wine,gpu_name,vulkan_driver,gpu_stats,vkbasalt,fps_limit=${FPS_LIMIT} fi + echo "pw_gui_for_edit_db PORTWINE_DB_FILE=$PORTWINE_DB_FILE" edit_db_from_gui $@ MANGOHUD_CONFIG LAUNCH_PARAMETERS PW_WINDOWS_VER PW_DLL_INSTALL WINEDLLOVERRIDES return 0 }