11#! /usr/bin/env bash
22
3- export LW_VERSION=" 0.77.9.8 "
3+ export LW_VERSION=" 0.77.9.9 "
44export LW_DEVELOPERS=" VHSgunzo"
55
66export RED=' \033[1;91m'
@@ -129,8 +129,10 @@ done
129129[ ! -n " $LW_DEF_WINEPFXBKP_DIR " ] && export LW_DEF_WINEPFXBKP_DIR=" $LW_DIR /prefix_backups"
130130[ ! -n " $LWRAP_DEFPFX " ] && export LWRAP_DEFPFX=" $LWRAP_PFX_DIR /defprefix.xz.lwpfx"
131131[ ! -n " $LWRAP_DEFPFXDOTNET " ] && export LWRAP_DEFPFXDOTNET=" $LWRAP_PFX_DIR /defprefix_dotnet.xz.lwpfx"
132+ [ ! -n " $LWRAP_DEFPFXDOTNETDESKTOP " ] && export LWRAP_DEFPFXDOTNETDESKTOP=" $LWRAP_PFX_DIR /defprefix_dotnetdesktop.xz.lwpfx"
132133[ ! -n " $LWDIR_DEFPFX " ] && export LWDIR_DEFPFX=" $LW_DEF_WINEPFXBKP_DIR /defprefix.xz.lwpfx"
133134[ ! -n " $LWDIR_DEFPFXDOTNET " ] && export LWDIR_DEFPFXDOTNET=" $LW_DEF_WINEPFXBKP_DIR /defprefix_dotnet.xz.lwpfx"
135+ [ ! -n " $LWDIR_DEFPFXDOTNETDESKTOP " ] && export LWDIR_DEFPFXDOTNETDESKTOP=" $LW_DEF_WINEPFXBKP_DIR /defprefix_dotnetdesktop.xz.lwpfx"
134136[ ! -n " $LW_DEF_CACHE " ] && export LW_DEF_CACHE=" $LW_DIR /cache"
135137[ ! -n " $LW_DEF_TMP " ] && export LW_DEF_TMP=" $LW_DIR /tmp"
136138[ ! -n " $LW_DEF_CENV " ] && export LW_DEF_CENV=" $LW_DIR /luwine.cenv"
@@ -162,7 +164,7 @@ check_def_config() {
162164 [ ! -n " $WTRX_LOG " ] && export WTRX_LOG=" $WINEPREFIX /winetricks.log"
163165 [ ! -n " $VKICDFILES " ] && export VKICDFILES=" AUTO"
164166 [ ! -n " $FSYNC " ] && export FSYNC=1
165- [ ! -n " $FSR_MODE " ] && export FSR_MODE=' balanced '
167+ [ ! -n " $FSR_MODE " ] && export FSR_MODE=' Enabled '
166168 [ ! -n " $VSYNC " ] && export VSYNC=" Default"
167169 [ ! -n " $PULSE_LTCY " ] && export PULSE_LTCY=1
168170 [ ! -n " $VKBASALT " ] && export VKBASALT=1
@@ -211,11 +213,13 @@ check_def_config() {
211213 [ ! -n " $LW_STEAMAPPS_DIR " ] && export LW_STEAMAPPS_DIR=" $HOME /.local/share/Steam/steamapps/common"
212214 [ ! -n " $CHKSTEAMAPPS " ] && export CHKSTEAMAPPS=1
213215 [ ! -n " $RESIZABLE_BAR " ] && export RESIZABLE_BAR=1
214- [ ! -n " $DEFPFX_VERSION " ] && export DEFPFX_VERSION=' v0.0.7 '
216+ [ ! -n " $DEFPFX_VERSION " ] && export DEFPFX_VERSION=' v0.0.8 '
215217 export DEFPFX_URL=" https://github.com/VHSgunzo/wine-prefix/releases/download/$DEFPFX_VERSION /defprefix.xz.lwpfx"
216218 export DEFPFXDOTNET_URL=" https://github.com/VHSgunzo/wine-prefix/releases/download/$DEFPFX_VERSION /defprefix_dotnet.xz.lwpfx"
219+ export DEFPFXDOTNETDESKTOP_URL=" https://github.com/VHSgunzo/wine-prefix/releases/download/$DEFPFX_VERSION /defprefix_dotnetdesktop.xz.lwpfx"
217220 export DEFPFX_HF_URL=" https://huggingface.co/lux-wine/wine-prefix/resolve/main/releases/$DEFPFX_VERSION /defprefix.xz.lwpfx"
218221 export DEFPFXDOTNET_HF_URL=" https://huggingface.co/lux-wine/wine-prefix/resolve/main/releases/$DEFPFX_VERSION /defprefix_dotnet.xz.lwpfx"
222+ export DEFPFXDOTNETDESKTOP_HF_URL=" https://huggingface.co/lux-wine/wine-prefix/resolve/main/releases/$DEFPFX_VERSION /defprefix_dotnetdesktop.xz.lwpfx"
219223}
220224
221225print_var () {
@@ -1928,8 +1932,13 @@ set_wine_version() {
19281932 && export " $( grep -wo ' WINE_VERSION.*$' " $LW_DEF_CFG " | tr -d \' ) "
19291933 export WINEDIR=" $LW_WINE_DIR /$WINE_VERSION "
19301934 export WINE=" $WINEDIR /bin/wine"
1931- [ " $WINE_VERSION " == " System" ] \
1932- && unset WINEDIR && export WINE=" $SYS_WINE "
1935+ export WINEDLLPATH=" $WINEDIR /lib64/wine:$WINEDIR /lib/wine:$EXE_PATH "
1936+ if [ " $WINE_VERSION " == " System" ]
1937+ then
1938+ unset WINEDIR
1939+ export WINE=" $SYS_WINE "
1940+ export WINEDLLPATH=" /usr/lib/wine:/usr/lib32/wine:$EXE_PATH "
1941+ fi
19331942}
19341943
19351944check_luwine_wcfg_cenv () {
@@ -2181,13 +2190,14 @@ shrt_loop() {
21812190 )
21822191 find_wpfxlnk () { find " $@ " -type f -iname " *.lnk" 2> /dev/null ; }
21832192 find_wpfxurl () { find " $@ " -type f -iname " *.url" 2> /dev/null ; }
2184- [ -f ' /tmp/.lwshrtloop' ] && \
2193+ export pfxshrtname=" $( basename " $WINEPREFIX " ) "
2194+ [ -f " /tmp/.lwshrt.$pfxshrtname " ] && \
21852195 ! pidof wineserver & > /dev/null && \
2186- rm -f ' /tmp/.lwshrtloop '
2187- if [ ! -f ' /tmp/.lwshrtloop ' ]
2196+ rm -f " /tmp/.lwshrt. $pfxshrtname "
2197+ if [ ! -f " /tmp/.lwshrt. $pfxshrtname " ]
21882198 then
21892199 (IFS=$' \n '
2190- touch ' /tmp/.lwshrtloop '
2200+ touch " /tmp/.lwshrt. $pfxshrtname "
21912201 wait_wpids=100
21922202 while [ " $wait_wpids " -gt 0 ] && \
21932203 ! pidof wineserver & > /dev/null
@@ -2216,7 +2226,7 @@ shrt_loop() {
22162226 check_tray
22172227 [ " $FORCE_TRAY " != 1 ] && \
22182228 check_shrt
2219- done ; rm -f ' /tmp/.lwshrtloop ' )
2229+ done ; rm -f " /tmp/.lwshrt. $pfxshrtname " )
22202230 fi
22212231}
22222232
@@ -2273,7 +2283,7 @@ lu_run() {
22732283 unset LU_SHELL_PTH TERMINAL LD_LIBRARY_PATH
22742284 $TERM_APP $LWSHELL
22752285 else
2276- if [ -n " $LU_LNK " ]
2286+ if [ " $LU_LNK " == 1 ]
22772287 then
22782288 export TMP_OUT=" /tmp/${WINE_VERSION} _$( date +' %Y-%m-%d_%H%M%S' ) .out"
22792289 $TERM_APP $LWSHELL -c " echo -en '$( cat " $TMP_DBG " 2> /dev/null) \n$PRINT_VARS \n' ; \
@@ -2311,23 +2321,14 @@ lu_run() {
23112321
23122322lu_prestart () {
23132323 export LU_EXE=" $LU_START "
2314- export LU_MSI=" $( basename " $LU_EXE " | grep -io " \.msi$" ) "
2315- export LU_BAT=" $( basename " $LU_EXE " | grep -io " \.bat$" ) "
2316- export LU_REG=" $( basename " $LU_EXE " | grep -io " \.reg$" ) "
2317- export LU_LNK=" $( basename " $LU_EXE " | grep -io " \.lnk$" ) "
2318- if [[ -n " $LU_MSI " && -n " $( file " $LU_EXE " | grep " Os: Windows" | grep -o " MSI Installer" ) " ]]
2319- then
2320- dis_debug_msg
2321- UNSET_CMPSTR_SW=1
2322- lu_run " $LU_EXE "
2323- elif [ -n " $LU_BAT " ]
2324+ if [ " $LU_BAT " == 1 ]
23242325 then
23252326 dis_debug_msg
23262327 LOADBAR=0
23272328 TERMINAL=1
23282329 UNSET_CMPSTR_SW=1
23292330 lu_run " $LU_EXE "
2330- elif [ -n " $LU_REG " ]
2331+ elif [ " $LU_REG " == 1 ]
23312332 then
23322333 dis_debug_msg
23332334 dis_cmd_msg
@@ -2337,6 +2338,7 @@ lu_prestart() {
23372338}
23382339
23392340check_startfile () {
2341+ unset LU_MSI LU_BAT LU_REG LU_LNK
23402342 if [ -f " $( ipath " $1 " | head -1) " ]
23412343 then
23422344 ipath_pth=" $( ipath " $1 " | head -1) "
@@ -2355,6 +2357,12 @@ check_startfile() {
23552357 [ ! -n " $FULLCMDLINE " ] && export FULLCMDLINE=" $0 $1 "
23562358 fi
23572359 [ ! -n " $LU_START " ] && export LU_START=" $ipath_pth "
2360+ case " $LU_START " in
2361+ * .[Mm][Ss][Ii]) export LU_MSI=1 ;;
2362+ * .[Bb][Aa][Tt]) export LU_BAT=1 ;;
2363+ * .[Rr][Ee][Gg]) export LU_REG=1 ;;
2364+ * .[Ll][Nn][Kk]) export LU_LNK=1 ;;
2365+ esac
23582366}
23592367
23602368check_exe_wcfg_cenv () {
@@ -2463,6 +2471,21 @@ check_db_script() {
24632471 fi
24642472 fi
24652473 restore_dbpfx
2474+ elif [[ " $WPREFIX_NAME " == ' defprefix_dotnetdesktop' || \
2475+ " $USE_DEFPFXDOTNETDESKTOP_BACKUP " == 1 ]]
2476+ then
2477+ if [ -f " $LWDIR_DEFPFXDOTNETDESKTOP " ]
2478+ then PFXRESTORE=" $LWDIR_DEFPFXDOTNETDESKTOP "
2479+ elif [ -f " $LWRAP_DEFPFXDOTNETDESKTOP " ]
2480+ then PFXRESTORE=" $LWRAP_DEFPFXDOTNETDESKTOP "
2481+ else
2482+ if (try_download " $DEFPFXDOTNETDESKTOP_HF_URL " " $LW_DEF_WINEPFXBKP_DIR /" || \
2483+ try_download " $DEFPFXDOTNETDESKTOP_URL " " $LW_DEF_WINEPFXBKP_DIR /" )
2484+ then PFXRESTORE=" $LWDIR_DEFPFXDOTNETDESKTOP "
2485+ else exit 1
2486+ fi
2487+ fi
2488+ restore_dbpfx
24662489 elif [ " $USE_DEFPFX_BACKUP " == 1 ]
24672490 then
24682491 if [ -f " $LWDIR_DEFPFX " ]
@@ -2746,12 +2769,12 @@ lu_config() {
27462769 is_exe_nofirstrun () { [[ -n " $LU_EXE " && ! -n " $FIRST_RUN " ]] ; }
27472770 export LWCFGKEY=$RANDOM
27482771 WINELST=" $( ls -1 -t " $LW_WINE_DIR " 2> /dev/null| grep -v ' .*.tar.*' ) $( is_exe_nofirstrun && echo ' \n Default' ) $( [ -n " $SYS_WINE " ] && echo ' \n System' ) "
2749- WINETHEMESLST=" Disabled \n $( ls -1 " $LW_THEMES_DIR " 2> /dev/null| sed ' s/ .reg//g ' ) "
2772+ WINETHEMESLST=" Disabled \n $( ls -1 " $LW_THEMES_DIR " 2> /dev/null| sed ' s| .reg||gi ' ) "
27502773 WDLLOVERLST=" steam_api,steam_api64,steamclient,steamclient64=n;lsteamclient,winemenubuilder.exe= \n Disabled"
27512774 WMONOOVERLST=" Microsoft.Xna.Framework.*,Gac=n \n Disabled"
27522775 WINVERLST=" 10 \n \n 8 \n 7 \n xp"
27532776 WARCHLST=" win64 \n win32"
2754- MHAVEDLLST=" corefonts vcrun2022 mfc42 mfc140 \n corefonts lucida tahoma vcrun6 vcrun6sp6 vcrun2005 vcrun2008 vcrun2010 vcrun2012 vcrun2013 vcrun2022 mfc120 mfc140 mfc42 msvcirt physx vb6run openal 7zip \n dotnet20 xna40 dotnet48 dotnetdesktop6 dotnetdesktop7 faudio \n physx \n Disabled"
2777+ MHAVEDLLST=" corefonts vcrun2022 mfc42 mfc140 \n corefonts lucida tahoma vcrun6 vcrun6sp6 vcrun2005 vcrun2008 vcrun2010 vcrun2012 vcrun2013 vcrun2022 mfc120 mfc140 mfc42 msvcirt vb6run openal 7zip \n dotnet20 xna40 dotnet48 faudio \n dotnetdesktop6 dotnetdesktop7 \n physx \n Disabled"
27552778 TERMAPPLST=" $( for whichterm in {konsole,gnome-terminal,kitty,deepin-terminal,xfce4-terminal,xterm} ; do which_exe " $whichterm " ; done) "
27562779 DOWNLOADERLST=" $( for whichdwnl in {aria2c,wget} ; do is_exe_exist " $whichdwnl " && echo " $whichdwnl " ; done) "
27572780 VSYNCLST=" Enabled \n Disabled \n Default"
@@ -2768,7 +2791,7 @@ lu_config() {
27682791 DGVOOLST=" $( ls_dlls dgvoodoo2) \n v2.8 \n latest $( is_exe_nofirstrun && echo ' \n Default' ) "
27692792 NVMLLST=" $( ls_dlls wine_nvml) \n v0.1 \n 0.3 \n latest $( is_exe_nofirstrun && echo ' \n Default' ) "
27702793 CMPRSSLST=" xz \n zstd"
2771- FSRMODELST=" ultra \n quality \n balanced \n performance \n Disabled"
2794+ FSRMODELST=" Enabled \n ultra \n quality \n balanced \n performance \n Disabled"
27722795 MANGOHUDLST=" Enabled \n DLSYM \n Disabled"
27732796 lwconfig_save () {
27742797 LWCFGVAR=" WINE_VERSION WIN_VER WINEARCH WINEPREFIX WINE_THEME WDLLOVER WMONOVER WD3DMODE DISABLE_NVAPI WINE_DXGI D3D_EXTRAS DGVOODOO2 \
@@ -3351,7 +3374,7 @@ lu_exit() {
33513374 print_info notify " Lux Wine successfully killed!"
33523375 sleep 2
33533376 rm -rf /tmp/FORCE_EXIT /tmp/syssett* /tmp/winesett* \
3354- /tmp/ressett* /tmp/settbtn* rm -f /tmp/.lwshrtloop
3377+ /tmp/ressett* /tmp/settbtn* rm -f /tmp/.lwshrt *
33553378 kill $( pgrep -fa " $LW_NAME " | awk ' {print$1}' )
33563379 lu_killtray
33573380 else
@@ -5155,10 +5178,13 @@ check_fsr() {
51555178 if [[ -n " $FSR_MODE " && " $FSR_MODE " != " Disabled" ]]
51565179 then
51575180 export WINE_FULLSCREEN_FSR=1
5158- # export WINE_FULLSCREEN_FSR_STRENGTH=2
5181+ export WINE_FULLSCREEN_FSR_STRENGTH=2
5182+ export WINE_FULLSCREEN_INTEGER_SCALING=0
5183+ [ " $FSR_MODE " == ' Enabled' ]|| \
51595184 export WINE_FULLSCREEN_FSR_MODE=" $FSR_MODE "
51605185 else
5161- unset WINE_FULLSCREEN_FSR WINE_FULLSCREEN_FSR_MODE # WINE_FULLSCREEN_FSR_STRENGTH
5186+ unset WINE_FULLSCREEN_FSR WINE_FULLSCREEN_FSR_MODE \
5187+ WINE_FULLSCREEN_FSR_STRENGTH WINE_FULLSCREEN_INTEGER_SCALING
51625188 fi
51635189}
51645190
0 commit comments