diff --git a/CHANGELOG.md b/CHANGELOG.md index 877db5a..34fb831 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ # v0.78.2.8 * Add pseudo CD-ROM for fix old games CD-ROM check (`Road Rash` and others) +* Add `installrun_nupkg_exe()` for install and run exe with `*.nupkg` in DB scripts +* Update DB script for `Direct Commander` +* Update DB script for `WeMod` +* Add DB script for `EVE Online Setup` +* Add `Auto remove apps shortcuts` option to LW `Settings` +* Minor fixes # v0.78.2.7 diff --git a/db/ACOdyssey.lwdb b/db/ACOdyssey.lwdb index 1e25d7b..1fb09c2 100644 --- a/db/ACOdyssey.lwdb +++ b/db/ACOdyssey.lwdb @@ -1,4 +1,4 @@ -# Assassin's Creed Odyssey ('ACOdyssey.exe') +#DB# Assassin's Creed Odyssey # DB_EXES=('ACOdyssey.exe') WIN_VER=10 GSTREAMER=0 diff --git a/db/AbeWin.lwdb b/db/AbeWin.lwdb index 824c241..66f08e9 100644 --- a/db/AbeWin.lwdb +++ b/db/AbeWin.lwdb @@ -1,4 +1,4 @@ -# Abe's Oddysee ('AbeWin.exe') +#DB# Abe's Oddysee # DB_EXES=('AbeWin.exe') pre_launch() { EXE_ARGS+=(-interline) ; } WIN_VER=10 diff --git a/db/Anno1800.lwdb b/db/Anno1800.lwdb index d8bae58..09bb3aa 100644 --- a/db/Anno1800.lwdb +++ b/db/Anno1800.lwdb @@ -1,3 +1,3 @@ -# Anno 1800 ('Anno1800.exe') +#DB# Anno 1800 # DB_EXES=('Anno1800.exe') LANG=en_US diff --git a/db/Anno2205.lwdb b/db/Anno2205.lwdb index 1d22b7d..0f524cd 100644 --- a/db/Anno2205.lwdb +++ b/db/Anno2205.lwdb @@ -1,3 +1,3 @@ -# Anno 2205 ('Anno2205.exe') +#DB# Anno 2205 # DB_EXES=('Anno2205.exe') PYTHONIOENCODING=utf-8 diff --git a/db/Arcania.lwdb b/db/Arcania.lwdb index e732ce6..0271bf7 100644 --- a/db/Arcania.lwdb +++ b/db/Arcania.lwdb @@ -1,4 +1,4 @@ -# Gothic 4: Arcania - ('Arcania Addon.exe' 'ArcaniA Addon POL.exe' 'ArcaniA Addon RUS.exe' 'Arcania.exe') +#DB# Gothic 4: Arcania # DB_EXES=('Arcania Addon.exe' 'ArcaniA Addon POL.exe' 'ArcaniA Addon RUS.exe' 'Arcania.exe') WIN_VER=10 WINEARCH=win64 diff --git a/db/Battle.net-Setup.lwdb b/db/Battle.net-Setup.lwdb index 34225d9..af8f2c6 100644 --- a/db/Battle.net-Setup.lwdb +++ b/db/Battle.net-Setup.lwdb @@ -1,3 +1,3 @@ -# Battle.net Launcher ('Battle.net-Setup.exe' 'Battle.net Launcher.exe') +#DB# Battle.net Launcher # DB_EXES=('Battle.net-Setup.exe' 'Battle.net Launcher.exe') WINE_SIMULATE_WRITECOPY=1 diff --git a/db/BioshockHD.lwdb b/db/BioshockHD.lwdb index b178755..9785321 100644 --- a/db/BioshockHD.lwdb +++ b/db/BioshockHD.lwdb @@ -1,5 +1,5 @@ -# BioShock Remastered ('BioshockHD.exe') -# Ubisoft Connect ('UbisoftConnect.exe' 'UbisoftConnectInstaller.exe' 'upc.exe') +#DB# BioShock Remastered # DB_EXES=('BioshockHD.exe') +#DB# Ubisoft Connect # DB_EXES=('UbisoftConnect.exe' 'UbisoftConnectInstaller.exe' 'upc.exe') WIN_VER=10 ESYNC=0 diff --git a/db/CaliberSetup.lwdb b/db/CaliberSetup.lwdb index fc3d7d6..e134489 100644 --- a/db/CaliberSetup.lwdb +++ b/db/CaliberSetup.lwdb @@ -1,4 +1,4 @@ -# Caliber ('CaliberSetup.exe' 'Caliber.exe' 'CaliberStart.exe' 'launcher.exe') +#DB# Caliber # DB_EXES=('CaliberSetup.exe' 'Caliber.exe' 'CaliberStart.exe' 'launcher.exe') WIN_VER=10 WINEARCH=win64 diff --git a/db/Crysis.lwdb b/db/Crysis.lwdb index 904a1b5..e82ca4a 100644 --- a/db/Crysis.lwdb +++ b/db/Crysis.lwdb @@ -1,4 +1,4 @@ -# Crysis ('Crysis.exe' 'Crysis64.exe' 'CrysisLauncher.exe') +#DB# Crysis # DB_EXES=('Crysis.exe' 'Crysis64.exe' 'CrysisLauncher.exe') WIN_VER=10 ESYNC=0 diff --git a/db/DOOMEternalx64vk.lwdb b/db/DOOMEternalx64vk.lwdb index 951f2fa..56477f4 100644 --- a/db/DOOMEternalx64vk.lwdb +++ b/db/DOOMEternalx64vk.lwdb @@ -1,4 +1,4 @@ -# Doom Eternal ('DOOMEternalx64vk.exe') +#DB# Doom Eternal # DB_EXES=('DOOMEternalx64vk.exe') pre_launch() { EXE_ARGS+=(+com_skipIntroVideo 1 +com_skipKeyPressOnLoadScreens 1 +m_smoothing 0) ; } diff --git a/db/Direct Commander.lwdb b/db/Direct Commander.lwdb index 5ca35b0..50da59d 100644 --- a/db/Direct Commander.lwdb +++ b/db/Direct Commander.lwdb @@ -1,39 +1,8 @@ -# Direct Commander ('Direct Commander.exe' 'Direct Commander Setup*.exe') +#DB# Direct Commander # DB_EXES=('Direct Commander.exe' 'Direct Commander Setup*.exe') pre_launch() { - if [[ "${EXE_NAME,,}" == 'direct commander setup'* ]] - then - cleandcmdtmp() { [ -d "$dcmdtmp" ] && rm -rf "$dcmdtmp" ; } - dcmdtmp="$LW_DEF_TMP/dcmd-$RANDOM" - dcmddir="$WINEPREFIX/dosdevices/c:/Program Files/Direct Commander" - dcmdexe="$dcmddir/Direct Commander.exe" - cleandcmdtmp - mkdir -p "$dcmdtmp" - if (7z x "$LU_EXE" '*.nupkg' -o"$dcmdtmp" ; \ - unzip -o "$dcmdtmp"/*.nupkg 'lib/net*/*' -d "$dcmdtmp") - then - [ -d "$dcmddir" ] && rm -f "$dcmddir" - mkdir -p "$(dirname "$dcmddir")" - if mv -f "$dcmdtmp/lib/net"* "$dcmddir" && \ - [ -f "$dcmdexe" ] - then - cleandcmdtmp - export LU_EXE="$dcmdexe" - lu_shortcut "$LU_EXE" 'Direct Commander' - cleanrun "$LW_SOURCE" "$LU_EXE" - exit $? - else - print_error yad "Failed to install: $EXE_NAME" - cleandcmdtmp - exit 1 - fi - cleandcmdtmp - else - print_error yad "Failed to extract: $EXE_NAME" - cleandcmdtmp - exit 1 - fi - fi + [[ "${EXE_NAME,,}" == 'direct commander setup'* ]] && \ + installrun_nupkg_exe } WIN_VER=10 diff --git a/db/EpicGamesLauncher.lwdb b/db/EpicGamesLauncher.lwdb index 5515d72..ad88f03 100644 --- a/db/EpicGamesLauncher.lwdb +++ b/db/EpicGamesLauncher.lwdb @@ -1,4 +1,4 @@ -# Epic Games Launcher ('EpicGamesLauncher.exe') +#DB# Epic Games Launcher # DB_EXES=('EpicGamesLauncher.exe') pre_launch() { EXE_ARGS+=(-opengl) ; } diff --git a/db/LeagueClient.lwdb b/db/LeagueClient.lwdb index 4d79eb3..55713fb 100644 --- a/db/LeagueClient.lwdb +++ b/db/LeagueClient.lwdb @@ -1,4 +1,4 @@ -# League of Legends ('live.na.exe' 'LeagueClient.exe' 'RiotClientServices.exe' '*league of legends*') +#DB# League of Legends # DB_EXES=('live.na.exe' 'LeagueClient.exe' 'RiotClientServices.exe' '.*league of legends.*') WIN_VER=10 DIS_NETCORE=1 diff --git a/db/MassEffect.lwdb b/db/MassEffect.lwdb index 31440d6..b7c5629 100644 --- a/db/MassEffect.lwdb +++ b/db/MassEffect.lwdb @@ -1,4 +1,4 @@ -# Mass Effect ('MassEffect.exe') +#DB# Mass Effect # DB_EXES=('MassEffect.exe') WIN_VER=10 WINEARCH=win64 diff --git a/db/Porsche.lwdb b/db/Porsche.lwdb index ed6515f..4a3d8c4 100644 --- a/db/Porsche.lwdb +++ b/db/Porsche.lwdb @@ -1,5 +1,5 @@ -# Need for Speed Porsche ('Porsche.exe') -# Emperor: Rise of the Middle Kingdom ('EMPEROR.exe') +#DB# Need for Speed Porsche # DB_EXES=('Porsche.exe') +#DB# Emperor: Rise of the Middle Kingdom # DB_EXES=('EMPEROR.exe') WIN_VER=10 DGVOODOO2=1 diff --git a/db/Remnant2.lwdb b/db/Remnant2.lwdb index ec3a8ad..48fe213 100644 --- a/db/Remnant2.lwdb +++ b/db/Remnant2.lwdb @@ -1,3 +1,3 @@ -# Remnant 2 ('Remnant2.exe' 'Remnant2-Win64-Shipping.exe') +#DB# Remnant 2 # DB_EXES=('Remnant2.exe' 'Remnant2-Win64-Shipping.exe') VKD3D_DISABLE_EXTENSIONS=VK_EXT_mesh_shader diff --git a/db/Sam4.lwdb b/db/Sam4.lwdb index e7ca979..92b2be5 100644 --- a/db/Sam4.lwdb +++ b/db/Sam4.lwdb @@ -1,4 +1,4 @@ -# Serious Sam 4 ('Sam4.exe') +#DB# Serious Sam 4 # DB_EXES=('Sam4.exe') pre_launch() { EXE_ARGS+=(+gfxapi D3D12 +sfxapi OpenAL) ; } diff --git a/db/SettlersHoK.lwdb b/db/SettlersHoK.lwdb index 1772036..2dd88af 100644 --- a/db/SettlersHoK.lwdb +++ b/db/SettlersHoK.lwdb @@ -1,5 +1,5 @@ -# Heritage of Kings - The Settlers ('SettlersHoK.exe') -# Command & Conquer: Red Alert 3 ('RA3.exe') -# Command & Conquer: Red Alert 3 — Uprising ('RA3EP1.exe') +#DB# Heritage of Kings - The Settlers # DB_EXES=('SettlersHoK.exe') +#DB# Command & Conquer: Red Alert 3 # DB_EXES=('RA3.exe') +#DB# Command & Conquer: Red Alert 3 — Uprising # DB_EXES=('RA3EP1.exe') FSR_MODE=Enabled diff --git a/db/SoF2.lwdb b/db/SoF2.lwdb index d4f20fa..d55d458 100644 --- a/db/SoF2.lwdb +++ b/db/SoF2.lwdb @@ -1,4 +1,4 @@ -# Soldier of Fortune 2 ('SoF2.exe') +#DB# Soldier of Fortune 2 # DB_EXES=('SoF2.exe') SUM=($(sha256sum SoF2.exe 2>/dev/null)) PATCH_SUM='bf8225821e1b0e27ea97a7507034a575d93e3e190adbc9f162510bb547a52bbb' diff --git a/db/Starfield.lwdb b/db/Starfield.lwdb index 0e4a1eb..a75e5b3 100644 --- a/db/Starfield.lwdb +++ b/db/Starfield.lwdb @@ -1,4 +1,4 @@ -# Starfield ('Starfield.exe') +#DB# Starfield # DB_EXES=('Starfield.exe') WIN_VER=10 DXR=0 diff --git a/db/Syberia.lwdb b/db/Syberia.lwdb index 8a41a91..84075ad 100644 --- a/db/Syberia.lwdb +++ b/db/Syberia.lwdb @@ -1,4 +1,4 @@ -# Syberia ('Syberia.exe') +#DB# Syberia # DB_EXES=('Syberia.exe') pre_launch() { syberia_cfg="$EXE_PATH/player.ini" diff --git a/db/WeMod.lwdb b/db/WeMod.lwdb index 2984e8c..aa24713 100644 --- a/db/WeMod.lwdb +++ b/db/WeMod.lwdb @@ -1,39 +1,8 @@ -# WeMod ('WeMod.exe' 'WeMod-*.exe') +#DB# WeMod # DB_EXES=('WeMod.exe' 'WeMod-.*.exe') pre_launch() { - if [[ "${EXE_NAME,,}" == 'wemod-'[0-9]* ]] - then - cleanwemodtmp() { [ -d "$wemodtmp" ] && rm -rf "$wemodtmp" ; } - wemodtmp="$LW_DEF_TMP/wemod-$RANDOM" - wemoddir="$WINEPREFIX/dosdevices/c:/Program Files/WeMod" - wemodexe="$wemoddir/WeMod.exe" - cleanwemodtmp - mkdir -p "$wemodtmp" - if (unzip -o "$LU_EXE" '*.nupkg' -d "$wemodtmp" ; \ - unzip -o "$wemodtmp"/*.nupkg 'lib/net*/*' -d "$wemodtmp") - then - [ -d "$wemoddir" ] && rm -f "$wemoddir" - mkdir -p "$(dirname "$wemoddir")" - if mv -f "$wemodtmp/lib/net"* "$wemoddir" && \ - [ -f "$wemodexe" ] - then - cleanwemodtmp - export LU_EXE="$wemodexe" - lu_shortcut "$LU_EXE" 'WeMod' - cleanrun "$LW_SOURCE" "$LU_EXE" - exit $? - else - print_error yad "Failed to install: $EXE_NAME" - cleanwemodtmp - exit 1 - fi - cleanwemodtmp - else - print_error yad "Failed to extract: $EXE_NAME" - cleanwemodtmp - exit 1 - fi - fi + [[ "${EXE_NAME,,}" == 'wemod-'[0-9]* ]] && \ + installrun_nupkg_exe } WIN_VER=10 diff --git a/db/Wolf2.lwdb b/db/Wolf2.lwdb index 8f997df..fc04dd8 100644 --- a/db/Wolf2.lwdb +++ b/db/Wolf2.lwdb @@ -1,4 +1,4 @@ -# Wolfenstein (2009) ('Wolf2.exe') +#DB# Wolfenstein 2009 # DB_EXES=('Wolf2.exe') pre_launch() { EXE_ARGS+=(+set com_skipIntro 1) ; } diff --git a/db/WorldOfSeaBattleClient.lwdb b/db/WorldOfSeaBattleClient.lwdb index 4234639..5eaa3a6 100644 --- a/db/WorldOfSeaBattleClient.lwdb +++ b/db/WorldOfSeaBattleClient.lwdb @@ -1,4 +1,4 @@ -# World Of Sea Battle ('WorldOfSeaBattleClient.exe' 'wos_client.exe') +#DB# World Of Sea Battle # DB_EXES=('WorldOfSeaBattleClient.exe' 'wos_client.exe') WIN_VER=10 WINEARCH=win64 diff --git a/db/Zona.lwdb b/db/Zona.lwdb index fdfdbdd..8c0ae57 100644 --- a/db/Zona.lwdb +++ b/db/Zona.lwdb @@ -1,4 +1,4 @@ -# Zona ('Zona.exe' 'ZonaSetup*.exe') +#DB# Zona # DB_EXES=('Zona.exe' 'ZonaSetup.*.exe') WIN_VER=10 ZUPDATER="$WINEPREFIX/drive_c/users/steamuser/AppData/Roaming/Zona/plugins/zupdater" diff --git a/db/bms.lwdb b/db/bms.lwdb index a92a4d5..f2d5d25 100644 --- a/db/bms.lwdb +++ b/db/bms.lwdb @@ -1,4 +1,4 @@ -# Black Mesa ('bms.exe') +#DB# Black Mesa # DB_EXES=('bms.exe') WIN_VER=10 pre_launch() { diff --git a/db/crashday.lwdb b/db/crashday.lwdb index de8b565..5bc3382 100644 --- a/db/crashday.lwdb +++ b/db/crashday.lwdb @@ -1,4 +1,4 @@ -# Crashday ('crashday.exe') +#DB# Crashday # DB_EXES=('crashday.exe') is_crashday_gcfg_fixed() { grep -qo '"FSAA": 0,' "$crashday_gcfg" 2>/dev/null ; } diff --git a/db/eve-online-latest+Setup.lwdb b/db/eve-online-latest+Setup.lwdb new file mode 100644 index 0000000..6cd7085 --- /dev/null +++ b/db/eve-online-latest+Setup.lwdb @@ -0,0 +1,8 @@ +#DB# EVE Online Setup # DB_EXES=('eve-online-latest+Setup.exe') + +pre_launch() { installrun_nupkg_exe ; } + +WIN_VER=10 +WINEARCH=win64 +SHRT_NAME='EVE Online' +EXE_ARGS=('--product=eve-online') diff --git a/db/game.lwdb b/db/game.lwdb index 57c6c01..4464c23 100644 --- a/db/game.lwdb +++ b/db/game.lwdb @@ -1,4 +1,4 @@ -# Infernal ('game.exe') +#DB# Infernal # DB_EXES=('game.exe') infernal() { WIN_VER=10 diff --git a/db/launcher.lwdb b/db/launcher.lwdb index 2e1ff4f..5072f7a 100644 --- a/db/launcher.lwdb +++ b/db/launcher.lwdb @@ -1,7 +1,7 @@ -# Crossout ('launcher.exe') -# Dark Sector ('DS.exe' 'launcher.exe') -# Caliber ('CaliberSetup.exe' 'Caliber.exe' 'CaliberStart.exe' 'launcher.exe') -# Honkai: Star Rail ('launcher.exe') !'StarRail.exe' +#DB# Crossout # DB_EXES=('launcher.exe') +#DB# Dark Sector # DB_EXES=('DS.exe' 'launcher.exe') +#DB# Caliber # DB_EXES=('CaliberSetup.exe' 'Caliber.exe' 'CaliberStart.exe' 'launcher.exe') +#DB# Honkai: Star Rail # DB_EXES=('launcher.exe') !'StarRail.exe' srlauncher() { SR_PATCH_VER=v3.1.1 diff --git a/db/nvapi64-tests.lwdb b/db/nvapi64-tests.lwdb index 423de95..78f22dc 100644 --- a/db/nvapi64-tests.lwdb +++ b/db/nvapi64-tests.lwdb @@ -1,4 +1,4 @@ -# nvapi64-tests ('nvapi64-tests.exe') +#DB# nvapi64-tests # DB_EXES=('nvapi64-tests.exe') WIN_VER=10 TERMINAL=1 diff --git a/db/osu!.lwdb b/db/osu!.lwdb index e5793e9..2708a37 100644 --- a/db/osu!.lwdb +++ b/db/osu!.lwdb @@ -1,4 +1,4 @@ -# osu! ('osu!install.exe' 'osu!.exe') +#DB# osu! # DB_EXES=('osu!install.exe' 'osu!.exe') WIN_VER=10 FPS_LIMIT=0 diff --git a/db/re8.lwdb b/db/re8.lwdb index 7e5e352..2f3c642 100644 --- a/db/re8.lwdb +++ b/db/re8.lwdb @@ -1,4 +1,4 @@ -# Resident Evil Village ('re8.exe') +#DB# Resident Evil Village # DB_EXES=('re8.exe') pre_launch() { try_mkdir "$WINEPREFIX/drive_c/Program Files (x86)/Steam/userdata/418370/remote/win64_save" diff --git a/db/setup.lwdb b/db/setup.lwdb index 2cbb5cc..a211dad 100644 --- a/db/setup.lwdb +++ b/db/setup.lwdb @@ -1,6 +1,6 @@ -# ('setup.exe') -# GOG Galaxy ('gog_galaxy*.exe') -# League of Legends ('live.na.exe' 'LeagueClient.exe' 'RiotClientServices.exe' '*league of legends*') +#DB# Setup # DB_EXES=('setup.exe') +#DB# GOG Galaxy # DB_EXES=('gog_galaxy.*.exe') +#DB# League of Legends # DB_EXES=('live.na.exe' 'LeagueClient.exe' 'RiotClientServices.exe' '.*league of legends.*') ESYNC=0 FSYNC=0 diff --git a/db/speed.lwdb b/db/speed.lwdb index 468d754..d254fdf 100644 --- a/db/speed.lwdb +++ b/db/speed.lwdb @@ -1,7 +1,7 @@ -# Need for Speed Most Wanted ('speed.exe') -# Need for Speed Carbon ('NFSC.exe') -# Need for Speed Underground ('speed.exe') -# Need for Speed Underground 2 ('SPEED2.exe') +#DB# Need for Speed Most Wanted # DB_EXES=('speed.exe') +#DB# Need for Speed Carbon # DB_EXES=('NFSC.exe') +#DB# Need for Speed Underground # DB_EXES=('speed.exe') +#DB# Need for Speed Underground 2 # DB_EXES=('SPEED2.exe') set_syswine() { diff --git a/db/steam.lwdb b/db/steam.lwdb index 6190492..9b27d9f 100644 --- a/db/steam.lwdb +++ b/db/steam.lwdb @@ -1,4 +1,4 @@ -# Steam ('Steam.exe') +#DB# Steam # DB_EXES=('Steam.exe') pre_launch() { EXE_ARGS+=(-no-cef-sandbox -opengl) diff --git a/db/wic.lwdb b/db/wic.lwdb index df5ce27..4c17753 100644 --- a/db/wic.lwdb +++ b/db/wic.lwdb @@ -1,4 +1,4 @@ -# World in Conflict ('wic.exe') +#DB# World in Conflict # DB_EXES=('wic.exe') pre_launch() { wicconfig="$WINEPREFIX/drive_c/users/steamuser/Documents/World in Conflict/Game Options.txt" diff --git a/db/xrEngine.lwdb b/db/xrEngine.lwdb index 6efbe10..2da7649 100644 --- a/db/xrEngine.lwdb +++ b/db/xrEngine.lwdb @@ -1,4 +1,4 @@ -# S.T.A.L.K.E.R. ('xrEngine.exe') +#DB# S.T.A.L.K.E.R. # DB_EXES=('xrEngine.exe') pre_launch() { [[ ! -f "$EXE_PATH/fsgame.ltx" && \ diff --git a/lutris-wine b/lutris-wine index 1b52dd7..6c8b003 100755 --- a/lutris-wine +++ b/lutris-wine @@ -1 +1 @@ -LW_VERSION="0.78.2.7" +LW_VERSION="0.78.2.8" diff --git a/lux-wine b/lux-wine index 3280428..0418b63 100755 --- a/lux-wine +++ b/lux-wine @@ -1,6 +1,6 @@ #!/usr/bin/env bash -export LW_VERSION="0.78.2.7" +export LW_VERSION="0.78.2.8" export LW_DEVELOPERS="VHSgunzo" export RED='\033[1;91m' @@ -187,6 +187,7 @@ check_def_config() { [ ! -n "$BATTLEYE" ] && export BATTLEYE=1 [ ! -n "$EAC" ] && export EAC=1 [ ! -n "$EXE_LWDB" ] && export EXE_LWDB=1 + [ ! -n "$CHECK_LW_APPS" ] && export CHECK_LW_APPS=1 [ ! -n "$MUST_HAVE_DLL" ] && export MUST_HAVE_DLL='Disabled' [ ! -n "$VKBASALT_FFX_CAS" ] && export VKBASALT_FFX_CAS="0.6" export DXVK_GIT_RELEASE_URL="https://api.github.com/repos/doitsujin/dxvk/releases" @@ -2127,7 +2128,7 @@ check_def_wine() { lu_prerun() { if [ -n "$LU_EXE" ] then - export EXE_NAME="$(basename "$LU_EXE"|sed 's|.exe||i')" + export EXE_NAME="$(basename "$LU_EXE"|sed 's|.exe$||i')" export EXE_FULL_NAME="$(basename "$LU_EXE")" [ ! -n "$EXE_PATH" ] && \ export EXE_PATH="$(realpath "$(dirname "$LU_EXE")")" @@ -2159,15 +2160,20 @@ lu_prerun() { } check_shrt() ( - IFS=$'\n' - LW_APPS_EXES=($(grep -Eiom1 " [\"']/.*\.exe| [\"']/.*\.bat" -r \ - "$LW_APPS_DIR" 2>/dev/null|sed "s|.*\.desktop: ['\"]||g")) - if [ -n "$LW_APPS_EXES" ] - then - for exe in "${LW_APPS_EXES[@]}" - do [ ! -f "$(ipath "$exe"|head -1)" ] && \ - NO_YAD=1 RM_ALL_EXE_APPS=1 lu_rmapp "$exe" - done + [ -f "$LW_DEF_CFG" ] && \ + source "$LW_DEF_CFG" 2>/dev/null + if [ "$CHECK_LW_APPS" == 1 ] + then + IFS=$'\n' + LW_APPS_EXES=($(grep -Eiom1 " [\"']/.*\.exe| [\"']/.*\.bat" -r \ + "$LW_APPS_DIR" 2>/dev/null|sed "s|.*\.desktop: ['\"]||g")) + if [ -n "$LW_APPS_EXES" ] + then + for exe in "${LW_APPS_EXES[@]}" + do [ ! -f "$(ipath "$exe"|head -1)" ] && \ + NO_YAD=1 RM_ALL_EXE_APPS=1 lu_rmapp "$exe" + done + fi fi ) @@ -2814,7 +2820,7 @@ lu_config() { FSR_MODE WINE_SANDBOX ESYNC FSYNC GSTREAMER SHOW_WINEDBG LARGE_ADDRESS OLD_GL_STRING \ NO_WRITE_WATCH HIDE_NVIDIA_GPU HEAP_DELAY_FREE SHARED_MEMORY ALLOW_XIM DIS_LAYER_AMD DIS_NETCORE \ VIRTUAL_DESKTOP BATTLEYE EAC DXVKASYNC RESIZABLE_BAR LATENCYFLEX DXR EXEARGS CHK_UPDATE EXE_LWDB EXE_LWDBFL \ - LOADBAR LOADBARGIF CHKSTEAMAPPS LW_STEAMAPPS_DIR LOG DEBUG SYS_WINETRICKS CPU_LIMIT CMPRSS_METHOD ZSTD_CMPRSS_LVL \ + LOADBAR LOADBARGIF CHKSTEAMAPPS LW_STEAMAPPS_DIR CHECK_LW_APPS LOG DEBUG SYS_WINETRICKS CPU_LIMIT CMPRSS_METHOD ZSTD_CMPRSS_LVL \ DIS_OTH_DISPL RESTORE_RESOL RESTORE_GAMMA DIS_COPMOSITOR RESET_PULSE PULSE_LTCY TERMINAL HOLD_TERMINAL LW_TERM_APP \ LW_DOWNLOADER NO_TRAY US_LAYOUT VKBASALT VKBASALT_FFX_CAS VKICDFILES GAMEMODE LWMANGOHUD MANGOHUD_USER_CONF FPS_LIMIT \ VSYNC LWVKCAPTURE NVPRIME DRIPRIME" @@ -2965,6 +2971,7 @@ lu_config() { --file-filter="Loading bar cover (*.gif)| *.gif *.GIF" \ --field="Check Steam apps:CHK" "$CHKSTEAMAPPS" \ --field="Steam apps common folder::DIR" "$LW_STEAMAPPS_DIR" \ + --field="Auto remove apps shortcuts:CHK" "$CHECK_LW_APPS" \ --field="LOG:CHK" "$LOG" \ --field="DEBUG:CHK" "$DEBUG" \ --field="Use system Winetricks:CHK" "$SYS_WINETRICKS" \ @@ -6011,7 +6018,7 @@ export_all_functions() { runtime_manager upd_battleye is_exe_exist which_exe try_ln_wine_build_dll find_vk_icd btntls_run get_app_exe check_driprime greptardlurl get_wlu_releases \ upd_d3d_extras upd_dgvoodoo2 upd_dxvk upd_dxvk_nvapi upd_vkd3d upd_all is_loadbar lu_runapp lu_lsapp set_wine_version get_pge_releases get_wge_releases \ check_wined3d check_vkbasalt_eff check_luwine_wcfg_cenv check_videodrv check_startfile check_def_config get_wk4_releases is_app_exist \ - settingbar initbar check_network_status print_question print_input loadbar_cover check_first_run check_eac check_loadbar_cover \ + settingbar initbar check_network_status print_question print_input loadbar_cover check_first_run check_eac check_loadbar_cover installrun_nupkg_exe \ check_db_script stop_loadbar check_wmonover wmonover_upd check_exe_wcfg_cenv lu_appcfg try_fix_wrtx try_shutdown_wine check_steamapps is_winepfx \ check_display check_restore_resol resol_sw check_restore_gamma dis_displ_sw restore_resol check_virt_desktop check_vkbasalt_cfg check_exe_args \ check_wine_nvml check_resizable_bar check_latencyflex get_proton_d3dlib makesquash_zstd makesquash_xz lu_pfxbackup lu_pfxrestore lu_backupmnt lu_backupunmnt \ @@ -6529,6 +6536,67 @@ lu_tray() { fi } +installrun_nupkg_exe() { + cleanextrtmp() { [ -d "$extrtmp" ] && rm -rf "$extrtmp" ; } + installrun_errexit() { + print_error yad "$1: $EXE_NAME" + cleanextrtmp + exit 1 + } + findnupkgexe() { + local retexe="$(ls -1 "$extrtmp/lib/net"*/*.[Ee][Xx][Ee] 2>/dev/null)" + local IGNEXES=('squirrel.exe' '.*ExecutionStub.exe') + if [ -n "$retexe" ] + then + for exe in "${IGNEXES[@]}" + do retexe="$(grep -iv "$exe"<<<"$retexe")" + done + fi + [ -n "$retexe" ] && echo "$(basename "$(head -1<<<"$retexe")")"||return 1 + } + [ -n "$1" ] && local LU_EXE="$1" + [ -n "$2" ] && local NUPKG_EXE="$2" + [ -n "$3" ] && local SHRT_NAME="$3" + if [ -f "$LU_EXE" ] + then + if (7z l "$LU_EXE" '*.nupkg'|awk '{print$6}'|grep -qo '.*.nupkg') + then + local extrtmp="$LW_DEF_TMP/nupkg-$RANDOM" + cleanextrtmp + mkdir -p "$extrtmp" + if (7z x "$LU_EXE" '*.nupkg' -o"$extrtmp" ; \ + unzip -o "$extrtmp"/*.nupkg 'lib/net*/*' -d "$extrtmp") + then + local nupkgexe="$(findnupkgexe)" + if [ -n "$nupkgexe" ] + then + [ -n "$NUPKG_EXE" ]||\ + local NUPKG_EXE="$WINEPREFIX/dosdevices/c:/Program Files/$(sed 's|.exe$||i'<<<"$nupkgexe")/$nupkgexe" + local installdir="$(dirname "$NUPKG_EXE")" + [ -d "$installdir" ] && rm -rf "$installdir" + mkdir -p "$(dirname "$installdir")" + if cp -Trf "$extrtmp/lib/net"* "$installdir" && \ + [ -f "$NUPKG_EXE" ] + then + cleanextrtmp + [ -n "$SHRT_NAME" ]||\ + local SHRT_NAME="$(basename "$NUPKG_EXE"|sed 's|.exe$||i')" + lu_shortcut "$NUPKG_EXE" "$SHRT_NAME" + cleanrun "$LW_SOURCE" "$LU_EXE" "${EXE_ARGS[@]}" + exit $? + else installrun_errexit 'Failed to install' + fi + cleanextrtmp + else installrun_errexit 'EXE not found in nupkg' + fi + else installrun_errexit 'Failed to extract' + fi + else installrun_errexit 'Not found *.nupkg' + fi + else installrun_errexit 'Specify LU_EXE' + fi +} + if [[ "$EUID" == 0 && "$ALLOW_ROOT" != 1 ]] then print_error yad "Don't run Lux Wine as root!" diff --git a/lwrap/PKGBUILD b/lwrap/PKGBUILD index c58f9d6..5051e01 100644 --- a/lwrap/PKGBUILD +++ b/lwrap/PKGBUILD @@ -2,7 +2,7 @@ pkgname='lwrap' pkgver='0.78.2' -pkgrel='7' +pkgrel='8' pkgdesc='Lux Wine wrapper for RunImage container' arch=('x86_64') url='https://github.com/VHSgunzo/lux-wine'