VHSgunzo commited on
Commit
c9f87bc
·
1 Parent(s): 446c6a1
Files changed (10) hide show
  1. CHANGELOG.md +23 -0
  2. README.md +37 -47
  3. applications/rmapp.desktop +2 -2
  4. db/ACOdyssey.lwdb +0 -1
  5. db/game.lwdb +1 -1
  6. lutris-wine +1 -1
  7. lux-wine +251 -180
  8. lwrap/PKGBUILD +3 -3
  9. lwrap/lwrap.install +3 -0
  10. main.zip +2 -2
CHANGELOG.md CHANGED
@@ -1,3 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  # v0.78.3.2
2
 
3
  * Fix exit error on install init
 
1
+ # v0.78.3.3
2
+
3
+ * Update [lwrun](https://huggingface.co/lux-wine/lwrun/tree/main/releases/v0.39.1) packages
4
+ * Update [GE-Proton](https://github.com/VHSgunzo/ge-proton-lw/releases/tag/v9.1) `v9.1`
5
+ * Update [lw-runtime](https://github.com/VHSgunzo/lw-runtime/releases/tag/v0.0.3) `v0.0.3`
6
+ * Fix showing notify
7
+ * Update DB script for `Infernal`
8
+ * Update DB script for `Assassin's Creed Odyssey`
9
+ * Disable check default Wine for some arguments
10
+ * Fix run Debug if in EXEs path exist single quotes
11
+ * Add editable for `Wine version` field in settings
12
+ * Add question for restore from default prefix backup if custom Wine prifix doesn't exist
13
+ * Add run `console` EXEs in terminal
14
+ * Fix `Wine manager` lists
15
+ * Add `GTK theme` selector to settings (from $HOME/.themes)
16
+ * Add `WINE_CPU_TOPOLOGY` for `CPU limit`
17
+ * Add open apps settings with `-appcfg` arg
18
+ * Add linking for Steam Proton's `9.0 (Beta)` `Hotfix`
19
+ * Add linking Proton's GE from LW `Wine manager` to `Steam` ($HOME/.local/share/Steam/compatibilitytools.d)
20
+ * Update `README.md`
21
+ * Replace `firefox` with `chromium` in `lwrun` container
22
+ * Minor fixes
23
+
24
  # v0.78.3.2
25
 
26
  * Fix exit error on install init
README.md CHANGED
@@ -1,13 +1,3 @@
1
- ---
2
- title: Git
3
- emoji: 🔥
4
- colorFrom: green
5
- colorTo: blue
6
- sdk: static
7
- pinned: false
8
- license: mit
9
- ---
10
-
11
  # **Lux Wine**
12
  This project allows you to easily run your favorite applications and games for Windows on almost any Linux x86_64 distribution using a specially configured Wine/Proton and [RunImage](https://github.com/VHSgunzo/runimage) container. Lux Wine also comes with a native Steam, which allows you not to think about installing a large number of libraries into your system (especially 32-bit ones) for its work.
13
 
@@ -25,7 +15,7 @@ curl -sL lwrap.github.io|bash
25
  ```
26
  * HF mirror:
27
  ```
28
- curl -sL lux-wine-git.static.hf.space|bash
29
  ```
30
 
31
  * or with `wget`:
@@ -34,7 +24,7 @@ wget -qO - lwrap.github.io|bash
34
  ```
35
  * HF mirror:
36
  ```
37
- wget -qO - lux-wine-git.static.hf.space|bash
38
  ```
39
 
40
  ## Video of the installation process:
@@ -51,42 +41,42 @@ wget -qO - lux-wine-git.static.hf.space|bash
51
  ┌──[user@linux]─[~]
52
  └──╼ $ lwrap {lwrap arg} blabla.exe {exe args}
53
 
54
- -explorer Wine explorer
55
- -cmd Open CMD or open file in CMD
56
- -shell Open SHELL or open file in SHELL
57
- -config Settings
58
- -appcfg Apps Settings
59
- -regedit Registry editor
60
- -control Control panel
61
- -winecfg Wine settings
62
- -winemgr {delonly} Wine manager
63
- -taskmgr Task manager
64
- -uninstaller Wine uninstaller
65
- -winetricks {arguments} Winetricks
66
- -openpfx Open drive C:\
67
- -killwine Kill Wine processes
68
- -killtray Kill tray
69
- -killexe Kill running EXE
70
- -killshell Kill SHELL
71
- -exit Force exit
72
- -clearpfx Clear prefix
73
- -rmapp {num|name|all} Remove menu app
74
- -shortcut Create shortcut
75
- -debug DEBUG
76
- -help Show this usage info
77
- -version Show version info
78
- -tray {noclose} Tray
79
- -init Forced initialization
80
- -pfxbackup {xz} Make prefix backup
81
- -pfxrestore Restore prefix from backup
82
- -backupmnt Mount prefix backup
83
- -backupunmnt Unmount prefix backup
84
- -lsapp Show a list of added apps
85
- -runapp {num|name} Launch the added application
86
- -update {all} Runtime updater
87
  {dx|dxvk} {vkd|vkd3d} {d3d|d3d_extras|d3d-extras} {eac|eac_runtime}
88
- {dxnv|dxvk-nvapi|dxvk_nvapi} {bat|battleye|battleye_runtime} {wtrx|winetricks}
89
- {dg|dgvoodoo2} {nvml|wine_nvml}
90
  ```
91
 
92
  ### **Forced re/install Lux Wine**:
 
 
 
 
 
 
 
 
 
 
 
1
  # **Lux Wine**
2
  This project allows you to easily run your favorite applications and games for Windows on almost any Linux x86_64 distribution using a specially configured Wine/Proton and [RunImage](https://github.com/VHSgunzo/runimage) container. Lux Wine also comes with a native Steam, which allows you not to think about installing a large number of libraries into your system (especially 32-bit ones) for its work.
3
 
 
15
  ```
16
  * HF mirror:
17
  ```
18
+ curl -sL lux-wine-git.static.hf.space|sed 1d|bash
19
  ```
20
 
21
  * or with `wget`:
 
24
  ```
25
  * HF mirror:
26
  ```
27
+ wget -qO - lux-wine-git.static.hf.space|sed 1d|bash
28
  ```
29
 
30
  ## Video of the installation process:
 
41
  ┌──[user@linux]─[~]
42
  └──╼ $ lwrap {lwrap arg} blabla.exe {exe args}
43
 
44
+ -explorer Wine explorer
45
+ -cmd Open CMD or open file in CMD
46
+ -shell Open SHELL or open file in SHELL
47
+ -config Settings
48
+ -regedit Registry editor
49
+ -control Control panel
50
+ -winecfg Wine settings
51
+ -winemgr {delonly} Wine manager
52
+ -taskmgr Task manager
53
+ -uninstaller Wine uninstaller
54
+ -winetricks {arguments} Winetricks
55
+ -openpfx Open drive C:\
56
+ -killwine Kill Wine processes
57
+ -killtray Kill tray
58
+ -killexe Kill running EXE
59
+ -killshell Kill SHELL
60
+ -exit Force exit
61
+ -clearpfx Clear prefix
62
+ -shortcut Create shortcut
63
+ -debug DEBUG
64
+ -help Show this usage info
65
+ -version Show version info
66
+ -tray {noclose} Tray
67
+ -init Forced initialization
68
+ -pfxbackup {xz} Create prefix backup
69
+ -pfxrestore Restore prefix from backup
70
+ -backupmnt Mount prefix backup
71
+ -backupunmnt Unmount prefix backup
72
+ -lsapp Show a list of applications
73
+ -runapp {num|name} Launch the application
74
+ -rmapp {num|name|all} Remove application shortcut
75
+ -appcfg {num|name|resetall} Applications settings
76
+ -update {all} Runtime updater
77
  {dx|dxvk} {vkd|vkd3d} {d3d|d3d_extras|d3d-extras} {eac|eac_runtime}
78
+ {nvml|wine_nvml} {dxnv|dxvk-nvapi|dxvk_nvapi} {wtrx|winetricks}
79
+ {bat|battleye|battleye_runtime} {dg|dgvoodoo2}
80
  ```
81
 
82
  ### **Forced re/install Lux Wine**:
applications/rmapp.desktop CHANGED
@@ -3,8 +3,8 @@ Categories=Lux Wine
3
  Exec="/usr/bin/lux-wine" -rmapp %f
4
  Icon=/usr/share/lux-wine/icons/lw_default_icon.png
5
  MimeType=application/x-ms-dos-executable;application/x-msdos-program;text/win-bat;application/x-ms-shortcut;text/x-ms-regedit;application/x-msi
6
- Name=Remove menu app
7
- Name[ru_RU]=Удалить приложение из меню
8
  NoDisplay=false
9
  StartupNotify=true
10
  Terminal=0
 
3
  Exec="/usr/bin/lux-wine" -rmapp %f
4
  Icon=/usr/share/lux-wine/icons/lw_default_icon.png
5
  MimeType=application/x-ms-dos-executable;application/x-msdos-program;text/win-bat;application/x-ms-shortcut;text/x-ms-regedit;application/x-msi
6
+ Name=Remove shortcut
7
+ Name[ru_RU]=Удалить ярлык
8
  NoDisplay=false
9
  StartupNotify=true
10
  Terminal=0
db/ACOdyssey.lwdb CHANGED
@@ -6,4 +6,3 @@ WINEARCH=win64
6
  WINE_VERSION=System
7
  USE_DEFPFX_BACKUP=1
8
  MUST_HAVE_DLL=Disabled
9
- WPREFIX_NAME=syswinepfx
 
6
  WINE_VERSION=System
7
  USE_DEFPFX_BACKUP=1
8
  MUST_HAVE_DLL=Disabled
 
db/game.lwdb CHANGED
@@ -9,7 +9,7 @@ infernal() {
9
  then
10
  physexe="$LW_DEF_TMP/PhysX.v2.5.2.exe"
11
  if [ -f "$physexe" ]||try_download "https://github.com/VHSgunzo/wine-dlls/releases/download/physx-v2.5.2/PhysX.v2.5.2.exe" "$LW_DEF_TMP"
12
- then sleep 0.5 ; cleanrun "$LW_SOURCE" "$physexe" /VERYSILENT
13
  else
14
  try_rm "$physexe" &>/dev/null
15
  print_error yad "Failed to download PhysX v2.5.2!"
 
9
  then
10
  physexe="$LW_DEF_TMP/PhysX.v2.5.2.exe"
11
  if [ -f "$physexe" ]||try_download "https://github.com/VHSgunzo/wine-dlls/releases/download/physx-v2.5.2/PhysX.v2.5.2.exe" "$LW_DEF_TMP"
12
+ then sleep 0.5 ; "$WINE" "$physexe" /VERYSILENT
13
  else
14
  try_rm "$physexe" &>/dev/null
15
  print_error yad "Failed to download PhysX v2.5.2!"
lutris-wine CHANGED
@@ -1 +1 @@
1
- LW_VERSION="0.78.3.2"
 
1
+ LW_VERSION="0.78.3.3"
lux-wine CHANGED
@@ -1,6 +1,6 @@
1
  #!/usr/bin/env bash
2
 
3
- export LW_VERSION="0.78.3.2"
4
  export LW_DEVELOPERS="VHSgunzo"
5
 
6
  export RED='\033[1;91m'
@@ -143,12 +143,15 @@ done
143
  [ ! -n "$ZSTD_CMPRSS_LVL" ] && export ZSTD_CMPRSS_LVL="1"
144
  [ ! -n "$SYS_LDLIBPTH" ] && export SYS_LDLIBPTH="$LD_LIBRARY_PATH"
145
  [ ! -n "$SYS_STM_COMPAT_DIR" ] && export SYS_STM_COMPAT_DIR="/usr/share/steam/compatibilitytools.d"
 
146
  [ ! -n "$DEF_MANGOHUDCFG" ] && export DEF_MANGOHUDCFG="gpu_text=GPU,cpu_color=2e97cb,cpu_text=CPU,io_color=a491d3,vram_color=ad64c1,ram_color=c26693,\
147
  engine_color=eb5b5b,gpu_color=2e9762,wine_color=eb5b5b,frametime_color=00ff00,background_alpha=0.4,background_color=020202,position=top-right,\
148
  text_color=ffffff,toggle_hud=Shift_R+F12,gpu_load_change,cpu_load_change,core_load_change,arch,cpu_mhz,cpu_temp,engine_version,gamemode,\
149
  gpu_core_clock,gpu_mem_clock,gpu_name,gpu_power,gpu_temp,no_display,ram,resolution,show_fps_limit,time,vkbasalt,vram,vulkan_driver,wine"
150
- [[ ! -n "$NOT_TERM" && ! -n "$(tty|grep -v 'not a'|grep -Eo 'tty|pts')" ]] && \
151
- NOT_TERM=1||NOT_TERM=0
 
 
152
 
153
  export LWPID=$BASHPID
154
  [ ! -n "$LWPPID" ] && \
@@ -213,6 +216,7 @@ check_def_config() {
213
  [ ! -n "$CHKSTEAMAPPS" ] && export CHKSTEAMAPPS=1
214
  [ ! -n "$RESIZABLE_BAR" ] && export RESIZABLE_BAR=1
215
  [ ! -n "$DEFPFX_VERSION" ] && export DEFPFX_VERSION='v0.0.8'
 
216
  export DEFPFX_URL="https://github.com/VHSgunzo/wine-prefix/releases/download/$DEFPFX_VERSION/defprefix.xz.lwpfx"
217
  export DEFPFXDOTNET_URL="https://github.com/VHSgunzo/wine-prefix/releases/download/$DEFPFX_VERSION/defprefix_dotnet.xz.lwpfx"
218
  export DEFPFXDOTNETDESKTOP_URL="https://github.com/VHSgunzo/wine-prefix/releases/download/$DEFPFX_VERSION/defprefix_dotnetdesktop.xz.lwpfx"
@@ -1213,8 +1217,7 @@ check_musthave_dll() {
1213
  if [ -n "$NEED_INSTALL_DLLS" ]
1214
  then
1215
  export UPDPFX_LOG="$WINEPREFIX/update_pfx.log"
1216
- print_info notify "Try to install DLL in prefix: [ $NEED_INSTALL_DLLS ]"
1217
- $TERM_APP $LWSHELL -c "print_info 'Try to install DLL in prefix: [ $NEED_INSTALL_DLLS ]'|& tee -a '$UPDPFX_LOG' ; \
1218
  winetricks -q -f -r $NEED_INSTALL_DLLS|& tee -a '$UPDPFX_LOG'"
1219
  while read WTRXDLL
1220
  do
@@ -1569,15 +1572,15 @@ create_shortcut() {
1569
  echo "Icon="$SHRT_ICON"" >> "$DESKF"
1570
  echo "Actions=rmapp;config;openpfx;debug;cmd;explorer;control;regedit;winecfg;taskmgr;uninstaller;winetricks;clearpfx;pfxbackup;pfxrestore;killwine;version;init" >> "$DESKF"
1571
  echo -e "\n[Desktop Action rmapp]" >> "$DESKF"
1572
- echo "Name=Remove from menu" >> "$DESKF"
1573
- echo "Name[ru_RU]=Удалить из меню" >> "$DESKF"
1574
  echo "Icon="$SHRT_ICON"" >> "$DESKF"
1575
  echo "Exec='$LW_SOURCE' -rmapp '$SHRT_NAME'" >> "$DESKF"
1576
  echo -e "\n[Desktop Action config]" >> "$DESKF"
1577
  echo "Name=Settings" >> "$DESKF"
1578
  echo "Name[ru_RU]=Настройки" >> "$DESKF"
1579
  echo "Icon="$SHRT_ICON"" >> "$DESKF"
1580
- echo "Exec='$LW_SOURCE' -config $SHRTEXEPATH" >> "$DESKF"
1581
  echo -e "\n[Desktop Action openpfx]" >> "$DESKF"
1582
  echo "Name=Open drive C:\\\\\\" >> "$DESKF"
1583
  echo "Name[ru_RU]=Открыть диск C:\\\\\\" >> "$DESKF"
@@ -1696,13 +1699,14 @@ lu_debug() {
1696
  check_ld_library
1697
  export PRINT_VARS="$(print_var "WINE_VERSION" "WINEDIR" "WINE" "WINEARCH" "WINEPREFIX" "WIN_VER" "WINEDLLOVERRIDES" "CHK_UPDATE" "NVPRIME" \
1698
  "VKBASALT_EFFECTS" "WINE_MONO_OVERRIDES" "EXE_PATH" "LU_EXE" "VKD3D_CONFIG" "LD_LIBRARY_PATH" "PATH" "WINEDEBUG" "CPU_LIMIT" "VSYNC" \
1699
- "VKD3D_DEBUG" "WINE_MONO_TRACE" "VKBASALT_LOG_LEVEL" "DXVK_LOG_LEVEL" "EXE_ARGS" "PULSE_LATENCY_MSEC" "VIRTUAL_DESKTOP" "FPS_LIMIT" "LW_CENV" \
1700
  "LW_DIR" "LW_CFG" "GSTREAMER" "HIDE_NVIDIA_GPU" "EXE_LWDB" "EXE_LWDBFL" "GST_PLUGIN_SYSTEM_PATH_1_0" "WINE_GST_REGISTRY_DIR" "RUNSRC" "RUNROOTFS_VERSION" \
1701
  "WINE_SANDBOX" "WINEFSYNC" "WINEFSYNC_FUTEX2" "WINE_FULLSCREEN_FSR" "WINE_FULLSCREEN_FSR_STRENGTH" "STAGING_SHARED_MEMORY" "WINEESYNC" "VKBASALT_LOG_FILE" \
1702
  "LOG_FILE" "WINE_LARGE_ADDRESS_AWARE" "TERM_APP" "VKBASALT" "DXVK_NVAPIHACK" "MANGOHUD" "MANGOHUD_USER_CONF" "RUN_GAMEMODE" "VKD3D_LOG_FILE" \
1703
  "VKBASALT_CONFIG_FILE" "VK_ICD_FILENAMES" "__GL_THREADED_OPTIMIZATIONS" "DXVK_STATE_CACHE_PATH" "__GLX_VENDOR_LIBRARY_NAME" "__NV_PRIME_RENDER_OFFLOAD" \
1704
  "WINE_FULLSCREEN_FSR_MODE" "DXVK_STATE_CACHE" "__GL_DXVK_OPTIMIZATIONS" "__GL_SHADER_DISK_CACHE_PATH" "__GL_SHADER_DISK_CACHE" "__GL_SHADER_DISK_CACHE_SIZE" \
1705
- "WD3DMODE" "MEDIACONV_AUDIO_DUMP_FILE" "MEDIACONV_AUDIO_TRANSCODED_FILE" "MEDIACONV_VIDEO_DUMP_FILE" "MEDIACONV_VIDEO_TRANSCODED_FILE" "LW_STEAMAPPS_DIR")"
 
1706
  export LD_LIBRARY_PATH="$SYS_LDLIBPTH"
1707
  echo "---------------------------------------------------------------------------------------" >> "$TMP_DBG"
1708
  echo "[ Date and time of start debug ] : $(date)" >> "$TMP_DBG"
@@ -1972,27 +1976,44 @@ updcfgchksum() {
1972
  }
1973
 
1974
  check_def_wine() {
 
 
 
 
 
 
 
 
1975
  setpfxdefwine() { echo "$1" > "$WINEPREFIX/.defwine" ; }
1976
  def_wine_selector() {
 
1977
  unset SETWINE
1978
  export SETWINE="$(echo -e "\n$(echo "${LOCWINELST}$([ -n "$SYS_WINE" ] && echo -e '\nSystem')$([[ -n "$LU_EXE" \
1979
- && ! -n "$FIRST_RUN" ]] && echo -e '\nDefault')"|sed ':a;N;$!ba;s/\n/\n\n/g')"| \
1980
  yad --window-icon="$LW_DEF_ICO" --title "Wine Manager" --column="" --column="Select default Wine:" \
1981
  --width=400 --height=500 --list --radiolist --separator "\n" --button="EXIT:1" --button="OK:0" \
1982
  --center --on-top 2>/dev/null|sed '/^TRUE$/d'|sed '/^$/d')"
 
1983
  }
1984
  export_wine_changes() {
1985
  sed -i "s/WINE_VERSION.*/WINE_VERSION=\'$SETWINE\'/g" "$LW_CFG"
1986
  export NEW_WINE_VERSION="$SETWINE"
1987
  export OLD_WINE_VERSION="$WINE_VERSION"
1988
  export OLD_WINE="$WINE"
 
 
 
1989
  }
 
1990
  IGNWINE=('Default' 'SETWINE' 'System' 'Proton 7.0' 'Proton 8.0' 'Proton - Experimental')
1991
- if [[ -n "$WINE_VERSION" && ! -d "$LW_WINE_DIR/$WINE_VERSION" && \
1992
  ! -L "$LW_WINE_DIR/$WINE_VERSION" && ! "${IGNWINE[@]}" =~ "$WINE_VERSION" ]]
1993
  then
1994
  print_info notify "Trying to install Wine: $WINE_VERSION"
1995
- try_dl_install_wine "$WINE_VERSION"
 
 
 
1996
  fi
1997
  (IFS=$'\n' ; for BINWINE in $(ls -1 -t "$LW_WINE_DIR" 2>/dev/null)
1998
  do
@@ -2019,7 +2040,6 @@ check_def_wine() {
2019
  fi
2020
  fi
2021
  done)
2022
- LOCWINELST="$(ls -1 -t "$LW_WINE_DIR" 2>/dev/null)"
2023
  if [[ ! -f "$WINE" && "$(echo "$LOCWINELST"|sedspaces|wc -l)" == 0 && -n "$SYS_WINE" ]]
2024
  then
2025
  print_info "System Wine found"
@@ -2042,22 +2062,10 @@ check_def_wine() {
2042
  print_info yad "Wine Manager" "Wine is not installed, you must download Wine!"
2043
  lu_winemgr
2044
  check_def_wine
2045
- elif [ ! -f "$WINE" ] && [ "$(echo "$LOCWINELST"|sedspaces|wc -l)" -gt 1 ] \
2046
- && [ "$W_INST" == 1 ] \
2047
- || [ ! -f "$WINE" ] && [ "$(echo "$LOCWINELST"|sedspaces|wc -l)" -gt 1 ] \
2048
- && [[ ! -n "$P_DXVK" || ! -n "$P_NVAPI" || ! -n "$P_VKD3D" ]]
2049
- then
2050
- print_error yad "Wine Manager" "Default Wine not selected, you must select default Wine!"
2051
- def_wine_selector
2052
- if [ -n "$SETWINE" ]
2053
- then
2054
- export_wine_changes
2055
- import_luwine_wcfg
2056
- check_proton_d3dlib
2057
- print_info notify "Wine $SETWINE selected as default!"
2058
- else
2059
- check_def_wine
2060
- fi
2061
  elif [[ -f "$WINE" && "$(echo "$LOCWINELST"|sedspaces|wc -l)" == 1 && "$WINE_VERSION" != "System" ]] \
2062
  && [ "$W_INST" == 1 ]; then :
2063
  elif [ ! -f "$WINE" ] && [[ "$(echo "$LOCWINELST"|sedspaces|wc -l)" == 1 \
@@ -2066,22 +2074,12 @@ check_def_wine() {
2066
  then
2067
  export SETWINE="$(ls -1 -t "$LW_WINE_DIR" 2>/dev/null|grep -v '.*.tar.*'|head -1)"
2068
  export_wine_changes
2069
- import_luwine_wcfg
2070
- check_proton_d3dlib
2071
- print_info notify "Wine $SETWINE selected as default!"
2072
  elif [ "$W_INST" == 1 ] \
2073
  && [[ ! -n "$P_DXVK" || ! -n "$P_NVAPI" || ! -n "$P_VKD3D" ]]
2074
  then
2075
  if [ ! -n "$(pgrep -fa yad|grep "Wine Manager"|awk '{print$1}')" ]
2076
- then
2077
- def_wine_selector
2078
- if [ -n "$SETWINE" ]
2079
- then
2080
- export_wine_changes
2081
- import_luwine_wcfg
2082
- check_proton_d3dlib
2083
- print_info notify "Wine $SETWINE selected as default!"
2084
- fi
2085
  else
2086
  print_error yad "Wine Manager" "Wine Manager already runing!"
2087
  fi
@@ -2089,9 +2087,6 @@ check_def_wine() {
2089
  then
2090
  export SETWINE="$(ls -1 -t "$LW_WINE_DIR" 2>/dev/null|grep -v '.*.tar.*'|head -1)"
2091
  export_wine_changes
2092
- import_luwine_wcfg
2093
- check_proton_d3dlib
2094
- print_info notify "Wine $SETWINE selected as default!"
2095
  fi
2096
  try_mkdir "$WINEPREFIX"
2097
  PFXDEFWINE="$(cat "$WINEPREFIX/.defwine" 2>/dev/null)"
@@ -2241,11 +2236,13 @@ lu_run() {
2241
  $RUN_VKCAPTURE $RUN_FPSLIMIT $RUN_GAMEMODE $RUN_MANGOHUD $RUN_CPU_LIMIT \
2242
  "$WINE" $RUN_VDESKTOP "${EXE_WRAPPER[@]}" "${LU_EXEC[@]}" "${EXE_ARGS[@]}"
2243
  }
 
 
2244
  exec_with_log() {
2245
  [[ "$E_LU_EXEC" =~ ^declare ]] && eval "$E_LU_EXEC"
2246
  echo_dbg|& tee -a "$LOG_FILE" ; "${LU_EXEC[@]}"|& tee -a "$LOG_FILE"
2247
  }
2248
- export -f exec_wine echo_dbg exec_with_log
2249
  pre_launch 2>/dev/null
2250
  shrt_loop &
2251
  dis_displ_sw 2>/dev/null
@@ -2274,14 +2271,13 @@ lu_run() {
2274
  else $TERM_APP $LWSHELL
2275
  fi
2276
  else
2277
- $TERM_APP $LWSHELL -c "echo_dbg|& tee -a '$LOG_FILE' ; exec_wine|& tee -a '$LOG_FILE'"
2278
  clear_log 2>/dev/null
2279
  $LW_EDITOR "$LOG_FILE" 2>/dev/null &
2280
  fi
2281
  elif [ "$LOG" == 1 ]
2282
  then
2283
- echo_dbg
2284
- exec_wine|& tee -a "$LOG_FILE"
2285
  clear_log 2>/dev/null
2286
  $LW_EDITOR "$LOG_FILE" 2>/dev/null &
2287
  elif [ "$TERMINAL" == 1 ]
@@ -2305,8 +2301,8 @@ lu_run() {
2305
  else
2306
  if [ "$LU_LNK" == 1 ]
2307
  then
2308
- export TMP_OUT="/tmp/${WINE_VERSION}_$(date +'%Y-%m-%d_%H%M%S').out"
2309
- $TERM_APP $LWSHELL -c "echo_dbg ; exec_wine|& tee -a '$TMP_OUT'"
2310
  else
2311
  $TERM_APP $LWSHELL -c 'echo_dbg ; exec_wine'
2312
  fi
@@ -2379,6 +2375,8 @@ check_startfile() {
2379
  [ ! -n "$FULLCMDLINE" ] && export FULLCMDLINE=("$0" "$1")
2380
  fi
2381
  [ ! -n "$LU_START" ] && export LU_START="$ipath_pth"
 
 
2382
  case "$LU_START" in
2383
  *.[Mm][Ss][Ii]) export LU_MSI=1 ;;
2384
  *.[Bb][Aa][Tt]) export LU_BAT=1 ;;
@@ -2584,12 +2582,20 @@ check_steamapps() {
2584
  then
2585
  try_mkdir "$LW_WINE_DIR"
2586
  STMBATTLEYE="$LW_STEAMAPPS_DIR/Proton BattlEye Runtime"
2587
- STMEAC="$LW_STEAMAPPS_DIR/Proton EasyAntiCheat Runtime"
2588
- for ver in '7.0' '8.0' '- Experimental'
 
 
 
 
 
2589
  do
2590
- [[ "$ver" =~ "Experimental" ]] && \
2591
- STMverPRTN="$LW_STEAMAPPS_DIR/Proton ${ver}/files"||\
2592
- STMverPRTN="$LW_STEAMAPPS_DIR/Proton ${ver}/dist"
 
 
 
2593
  if [[ -f "$STMverPRTN/bin/wine" && ! -d "$LW_WINE_DIR/Proton ${ver}" ]]
2594
  then
2595
  try_ln "$STMverPRTN" "$LW_WINE_DIR/Proton ${ver}"
@@ -2597,7 +2603,7 @@ check_steamapps() {
2597
  try_ln "$STMverPRTN/../version" "$STMverPRTN/version"
2598
  print_info notify "Found Proton ${ver} in Steam and linked to Lux Wine"
2599
  fi
2600
- done
2601
  else
2602
  unset STMEAC STMBATTLEYE
2603
  fi
@@ -2652,7 +2658,10 @@ check_latencyflex() {
2652
 
2653
  lite_init() {
2654
  unset EXE_ARGS
2655
- DEPRECATE_INIT=("-killwine" "-killtray" "-killexe" "-killshell" "-exit" "-tray" "-lsapp" "-runapp")
 
 
 
2656
  export_all_functions
2657
  if ! [[ "${DEPRECATE_INIT[@]}" =~ "$1" ]] || [ ! -n "$1" ]
2658
  then
@@ -2678,7 +2687,12 @@ lite_init() {
2678
  check_nvprime
2679
  check_driprime
2680
  check_videodrv
2681
- [ "$1" == '-config' ]||\
 
 
 
 
 
2682
  check_def_wine
2683
  check_proton_d3dlib
2684
  check_path
@@ -2795,11 +2809,11 @@ lu_config() {
2795
  ls_dlls() { ls -I "*.json" -1 -t "$LW_RUNTIME_DIR/$1" 2>/dev/null|grep -v '.*.tar.*' ; }
2796
  is_exe_nofirstrun() { [[ -n "$LU_EXE" && ! -n "$FIRST_RUN" ]] ; }
2797
  export LWCFGKEY=$RANDOM
2798
- 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')"
2799
  WINETHEMESLST="Disabled \n $(ls -1 "$LW_THEMES_DIR" 2>/dev/null|sed 's|.reg||gi')"
2800
  WDLLOVERLST="steam_api,steam_api64,steamclient,steamclient64=n;lsteamclient,winemenubuilder.exe= \n Disabled"
2801
  WMONOOVERLST="Microsoft.Xna.Framework.*,Gac=n \n Disabled"
2802
- WINVERLST="10 \n \n 8 \n 7 \n xp"
2803
  WARCHLST="win64 \n win32"
2804
  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"
2805
  TERMAPPLST="$(for whichterm in {konsole,gnome-terminal,kitty,deepin-terminal,xfce4-terminal,xterm} ; do which_exe "$whichterm" ; done)"
@@ -2821,13 +2835,14 @@ lu_config() {
2821
  FSRMODELST="Enabled \n ultra \n quality \n balanced \n performance \n Disabled"
2822
  MANGOHUDLST="Enabled \n DLSYM \n Disabled"
2823
  VKCAPTURELST="Vulkan \n OpenGL \n Disabled"
 
2824
  lwconfig_save() {
2825
  LWCFGVAR="WINE_VERSION WIN_VER WINEARCH WINEPREFIX WINE_THEME WDLLOVER WMONOVER WD3DMODE DISABLE_NVAPI WINE_DXGI D3D_EXTRAS DGVOODOO2 \
2826
  DXVK_VERSION VKD3D_VERSION DXVK_NVAPI_VERSION D3D_EXTRAS_VERSION DGVOODOO2_VERSION WINE_NVML_VERSION VKD3DCFG MUST_HAVE_DLL \
2827
  FSR_MODE WINE_SANDBOX ESYNC FSYNC GSTREAMER SHOW_WINEDBG LARGE_ADDRESS OLD_GL_STRING \
2828
  NO_WRITE_WATCH HIDE_NVIDIA_GPU HEAP_DELAY_FREE SHARED_MEMORY ALLOW_XIM DIS_LAYER_AMD DIS_NETCORE \
2829
  VIRTUAL_DESKTOP BATTLEYE EAC DXVKASYNC RESIZABLE_BAR LATENCYFLEX DXR EXEARGS CHK_UPDATE EXE_LWDB EXE_LWDBFL \
2830
- LOADBAR LOADBARGIF CHKSTEAMAPPS LW_STEAMAPPS_DIR CHECK_LW_APPS LOG DEBUG SYS_WINETRICKS CPU_LIMIT CMPRSS_METHOD ZSTD_CMPRSS_LVL \
2831
  DIS_OTH_DISPL RESTORE_RESOL RESTORE_GAMMA DIS_COPMOSITOR RESET_PULSE PULSE_LTCY TERMINAL HOLD_TERMINAL LW_TERM_APP \
2832
  LW_DOWNLOADER NO_TRAY US_LAYOUT VKBASALT VKBASALT_FFX_CAS VKICDFILES GAMEMODE LWMANGOHUD MANGOHUD_USER_CONF FPS_LIMIT \
2833
  VSYNC LWVKCAPTURE NVPRIME DRIPRIME"
@@ -2869,16 +2884,8 @@ lu_config() {
2869
  && try_cp "/tmp/wlogsett$LWCFGKEY" "$WINEPFXWCFGOUT/winetricks.log"
2870
  if [[ -n "$WINEPFXWCFGOUT" && "$WINEPFXWCFGOUT" != "$WINEPREFIX" ]]
2871
  then
2872
- print_info notify "Wine prefix changed to [ $WINEPFXWCFGOUT ]"
2873
  export WINEPREFIX="$WINEPFXWCFGOUT"
2874
- if ! is_winepfx "$WINEPREFIX" && [[ -f "$LWRAP_DEFPFX" && "$WINEARCH" == "win64" ]] && \
2875
- print_question "Do you want to restore the default prefix backup for the new prefix?"
2876
- then
2877
- mkdir -p "$WINEPREFIX"
2878
- unpack_squash "$LWRAP_DEFPFX" \
2879
- "$(dirname "$WINEPREFIX")" \
2880
- "$(basename "$WINEPREFIX")"
2881
- fi
2882
  fi
2883
  CURDEFWINE="$(cat "$WINEPREFIX/.defwine" 2>/dev/null)"
2884
  if [[ "$WINEWCFGOUT" != "$CURDEFWINE" && "$WINEWCFGOUT" != "Default" ]] || \
@@ -2888,7 +2895,9 @@ lu_config() {
2888
  export NEW_WINE_VERSION="$WINEWCFGOUT"
2889
  export OLD_WINE_VERSION="$CURDEFWINE"
2890
  export OLD_WINE="$WINE"
2891
- print_info notify "Wine version changed to $NEW_WINE_VERSION"
 
 
2892
  fi
2893
  if [ -n "$LU_EXE" ]
2894
  then
@@ -2916,7 +2925,7 @@ lu_config() {
2916
  }
2917
  lwconfig_menu() {
2918
  yad --plug=$LWCFGKEY --tabnum=1 --form --separator="\n" --quoted-output --bool-fmt=1 --columns=2 "${YADSCROLL[@]}" \
2919
- --field="Wine version::CB" "$(cfg_items "$WINE_VERSION" "$WINELST")" \
2920
  --field="Windows version::CB" "$(cfg_items "$WIN_VER" "$WINVERLST")" \
2921
  --field="Wine architecture::CB" "$(cfg_items "$WINEARCH" "$WARCHLST")" \
2922
  --field="Wine prefix::DIR" "$WINEPREFIX" \
@@ -2979,6 +2988,7 @@ lu_config() {
2979
  --field="Check Steam apps:CHK" "$CHKSTEAMAPPS" \
2980
  --field="Steam apps common folder::DIR" "$LW_STEAMAPPS_DIR" \
2981
  --field="Auto remove apps shortcuts:CHK" "$CHECK_LW_APPS" \
 
2982
  --field="LOG:CHK" "$LOG" \
2983
  --field="DEBUG:CHK" "$DEBUG" \
2984
  --field="Use system Winetricks:CHK" "$SYS_WINETRICKS" \
@@ -3135,7 +3145,7 @@ lu_config() {
3135
  0) lwconfig_save init ;;
3136
  3) lwconfig_reset ;;
3137
  4) lwconfig_save
3138
- cleanrun "$LW_SOURCE" "$LU_EXE" ;;
3139
  esac
3140
  }
3141
 
@@ -3228,7 +3238,7 @@ btntls_run() {
3228
  cleanrun "$LW_SOURCE" "$1" "$LU_EXE"
3229
  sleep 0.5
3230
  fi
3231
- cleanrun "$LW_SOURCE" -config "$LU_EXE"
3232
  else
3233
  if [ -n "$1" ]
3234
  then
@@ -3269,8 +3279,8 @@ lu_shell() {
3269
  if [ -f "$2" ]
3270
  then
3271
  local file_info="$(file "$2")"
3272
- if [[ -n "$(grep "script"<<<"$file_info"|grep -o "executable")" || \
3273
- -n "$(grep "ELF"<<<"$file_info"|grep -o "executable")" ]]
3274
  then
3275
  export LU_SHELL_EXE="$(readlink -f "$2")"
3276
  lu_run "$LU_SHELL_EXE"
@@ -3402,12 +3412,11 @@ winetricks() {
3402
  then
3403
  if [ -x "/usr/bin/winetricks" ]
3404
  then
3405
- print_info notify "Using System winetricks!"
3406
  if [[ ! -n "$NEED_INSTALL_DLLS" && ! -n "$WTRX_ARG" && -n "$WTRX_RUN" ]] \
3407
  || [[ ! -n "$NEED_INSTALL_DLLS" && ! -n "$WTRX_ARG" && -n "$LU_EXE" && -n "$WTRX_RUN" ]] \
3408
  || [[ ! -n "$NEED_INSTALL_DLLS" && ! -n "$WTRX_ARG" && -n "$LU_EXE" && ! -n "$WTRX_RUN" ]]
3409
  then
3410
- $TERM_APP $LWSHELL -c "print_info 'Using System winetricks!' ; \
3411
  DISABLE_MANGOHUD=1 DISABLE_VKBASALT=1 /usr/bin/winetricks"
3412
  elif [[ -n "$NEED_INSTALL_DLLS" && ! -n "$WTRX_ARG" && ! -n "$WTRX_RUN" ]]
3413
  then
@@ -3421,7 +3430,7 @@ winetricks() {
3421
  check_winetricks
3422
  if [[ ! -n "$WTRX_ARG" && -n "$WTRX_RUN" ]]
3423
  then
3424
- $TERM_APP $LWSHELL -c "print_info 'Using Lux Wine winetricks!' ; \
3425
  DISABLE_MANGOHUD=1 DISABLE_VKBASALT=1 '$LW_WTRX_DIR/winetricks'"
3426
  elif [[ ! -n "$WTRX_ARG" && ! -n "$WTRX_RUN" ]]
3427
  then
@@ -3431,13 +3440,12 @@ winetricks() {
3431
  fi
3432
  fi
3433
  else
3434
- print_info notify "Using Lux Wine winetricks!"
3435
  check_winetricks
3436
  if [[ ! -n "$NEED_INSTALL_DLLS" && ! -n "$WTRX_ARG" && -n "$WTRX_RUN" ]] \
3437
  || [[ ! -n "$NEED_INSTALL_DLLS" && ! -n "$WTRX_ARG" && -n "$LU_EXE" && -n "$WTRX_RUN" ]] \
3438
  || [[ ! -n "$NEED_INSTALL_DLLS" && ! -n "$WTRX_ARG" && -n "$LU_EXE" && ! -n "$WTRX_RUN" ]]
3439
  then
3440
- $TERM_APP $LWSHELL -c "print_info 'Using Lux Wine winetricks!' ; \
3441
  DISABLE_MANGOHUD=1 DISABLE_VKBASALT=1 '$LW_WTRX_DIR/winetricks'"
3442
  elif [[ -n "$NEED_INSTALL_DLLS" && ! -n "$WTRX_ARG" && ! -n "$WTRX_RUN" ]]
3443
  then
@@ -3606,6 +3614,7 @@ lu_clearpfx() {
3606
  try_rm "$WINEPREFIX/drive_c/Program Files (x86)/Windows Media Player" &>/dev/null
3607
  try_rm "$WINEPREFIX/drive_c/Program Files (x86)/Windows NT" &>/dev/null
3608
  try_rm "$WINEPREFIX/.lwtheme" &>/dev/null
 
3609
  try_rm "$LW_DIR/.lwcfgchksum" &>/dev/null
3610
  try_rm /tmp/FORCE_EXIT &>/dev/null
3611
  print_info notify "Prefix [ $WINEPREFIX ] successfully cleared!"
@@ -3641,7 +3650,7 @@ is_app_exist() {
3641
  unset args
3642
  if [ -n "$2" ]
3643
  then
3644
- [ "$lurmapp" == 1 ] && \
3645
  local args="$(sed 's|"|\"|g;s|\\|\\\\|g'<<<"$2")"||\
3646
  local args="$(sed 's|"|\"|g;s|\\|\\\\\\\\|g'<<<"$2")"
3647
  fi
@@ -3704,6 +3713,7 @@ lu_rmapp() {
3704
  wait
3705
  fi)
3706
  }
 
3707
  LWAPPSHRT="$(grep "Categories=Lux Wine Apps" -lr "$MENU_APPS_DIR" 2>/dev/null)"
3708
  if [[ -n "$(echo "$LWAPPSHRT"|head -1)" ]]
3709
  then
@@ -3713,11 +3723,13 @@ lu_rmapp() {
3713
  sed 's|"||g'|sed 's|^ ||g')"
3714
  if [ -n "$APP_NAME" ]
3715
  then get_app_exe "$APP_NAME"
3716
- else print_error yad "No app found with this number!"
 
 
3717
  fi
3718
  else
3719
  if [ "${1,,}" == "all" ]
3720
- then rm_allsrtcts ; exit $?
3721
  else [ -n "$1" ] && LU_EXE="$1"
3722
  fi
3723
  fi
@@ -3726,7 +3738,7 @@ lu_rmapp() {
3726
  if [[ -n "$(grep -Eiom1 '\.exe$|\.bat$'<<<"$LU_EXE")" ]]
3727
  then
3728
  (IFS=$'\n'
3729
- local lurmapp=1
3730
  if [ "$RM_ALL_EXE_APPS" == 1 ]
3731
  then LWAPPSRM=($(grep -F "$LU_EXE" -lr "$MENU_APPS_DIR" 2>/dev/null))
3732
  elif [ -n "$EXEARGS" ]
@@ -3735,7 +3747,7 @@ lu_rmapp() {
3735
  fi
3736
  if [ -n "$LWAPPSRM" ]
3737
  then rm_srtcts "${LWAPPSRM[@]}"
3738
- else print_error yad "Shortcuts Remover" "'$LU_EXE' not found in the menu!"
3739
  fi)
3740
  else
3741
  LW_APP_RM="$(echo -e "\n$(echo "$LWAPPSHRT"|xargs -d "\n" -I {} grep -m1 "^Name=" {}|sed 's|^Name=||g'|sort -u|sed ':a;N;$!ba;s/\n/\n\n/g')"| \
@@ -3755,7 +3767,7 @@ lu_rmapp() {
3755
  fi
3756
  fi
3757
  else
3758
- print_error yad "Shortcuts Remover" "Lux Wine applications not found in menu!"
3759
  fi
3760
  }
3761
 
@@ -3812,7 +3824,7 @@ shrt_from_lnk() {
3812
  'openuserfolder.bat' 'language.changer.exe'
3813
  'uninst.exe' 'q2rtxded-x86.exe' 'q2rtxded.exe'
3814
  'ErrorReporter.exe' 'EAUpdater.exe' 'explorer.exe'
3815
- 'UninstWA.exe'
3816
  )
3817
  IGNLNK=(
3818
  'VKPlay.ru.lnk' 'App Recovery.lnk'
@@ -4021,39 +4033,39 @@ lu_help() {
4021
  $RED┌──[$GREEN$USER$YELLOW@$BLUE`uname -a|awk '{print$2}'`$RED]─[$GREEN$PWD$RED]
4022
  $RED└──╼ \$$GREEN $LW_NAME $BLUE{$LW_NAME arg} ${RED}blabla.exe $YELLOW{exe args}
4023
 
4024
- ${RED}-explorer $GREEN Wine explorer
4025
- ${RED}-cmd $GREEN Open CMD or open file in CMD
4026
- ${RED}-shell $GREEN Open SHELL or open file in SHELL
4027
- ${RED}-config $GREEN Settings
4028
- ${RED}-appcfg $GREEN Apps Settings
4029
- ${RED}-regedit $GREEN Registry editor
4030
- ${RED}-control $GREEN Control panel
4031
- ${RED}-winecfg $GREEN Wine settings
4032
- ${RED}-winemgr $BLUE{delonly}$GREEN Wine manager
4033
- ${RED}-taskmgr $GREEN Task manager
4034
- ${RED}-uninstaller $GREEN Wine uninstaller
4035
- ${RED}-winetricks $BLUE{arguments}$GREEN Winetricks
4036
- ${RED}-openpfx $GREEN Open drive C:\\\\
4037
- ${RED}-killwine $GREEN Kill Wine processes
4038
- ${RED}-killtray $GREEN Kill tray
4039
- ${RED}-killexe $GREEN Kill running EXE
4040
- ${RED}-killshell $GREEN Kill SHELL
4041
- ${RED}-exit $GREEN Force exit
4042
- ${RED}-clearpfx $GREEN Clear prefix
4043
- ${RED}-rmapp $BLUE{num|name|all}$GREEN Remove menu app
4044
- ${RED}-shortcut $GREEN Create shortcut
4045
- ${RED}-debug $GREEN DEBUG
4046
- ${RED}-help $GREEN Show this usage info
4047
- ${RED}-version $GREEN Show version info
4048
- ${RED}-tray $BLUE{noclose}$GREEN Tray
4049
- ${RED}-init $GREEN Forced initialization
4050
- ${RED}-pfxbackup $BLUE{xz}$GREEN Create prefix backup
4051
- ${RED}-pfxrestore $GREEN Restore prefix from backup
4052
- ${RED}-backupmnt $GREEN Mount prefix backup
4053
- ${RED}-backupunmnt $GREEN Unmount prefix backup
4054
- ${RED}-lsapp $GREEN Show a list of added apps
4055
- ${RED}-runapp $BLUE{num|name}$GREEN Launch the added application
4056
- ${RED}-update $BLUE{all} $GREEN Runtime updater$BLUE
4057
  {dx|dxvk} {vkd|vkd3d} {d3d|d3d_extras|d3d-extras} {eac|eac_runtime}
4058
  {nvml|wine_nvml} {dxnv|dxvk-nvapi|dxvk_nvapi} {wtrx|winetricks}
4059
  {bat|battleye|battleye_runtime} {dg|dgvoodoo2}
@@ -4159,11 +4171,9 @@ try_dl_install_wine() {
4159
  do
4160
  if [ -d "$WTMP_DIR/$W_DW/$PFILES" ]
4161
  then
4162
- for clearp in $(ls -I "version" -I "$PFILES" "$WTMP_DIR/$W_DW")
4163
- do try_rm "$WTMP_DIR/$W_DW/$clearp"
4164
- done
4165
- try_mv "$WTMP_DIR/$W_DW/$PFILES"/* "$WTMP_DIR/"
4166
- try_rm "$WTMP_DIR/$W_DW/$PFILES" "$WTMP_DIR/$W_DW"
4167
  break
4168
  fi
4169
  done
@@ -4179,6 +4189,13 @@ try_dl_install_wine() {
4179
  if try_mv "$WTMP_DIR" "$LW_WINE_DIR/$W_DW"
4180
  then
4181
  WINE_VERSION="$W_DW" WINEDIR="$LW_WINE_DIR/$W_DW" check_proton_d3dlib
 
 
 
 
 
 
 
4182
  print_info notify "Installation $W_DW completed!"
4183
  [ -n "$WGUIDW" ] && \
4184
  W_INST=1
@@ -4215,7 +4232,7 @@ get_wine_git_lst() {
4215
  if [[ ! -n "$PGE_GIT_LIST" || ! -n "$WLU_GIT_LIST" || ! -n "$WK4_GIT_LIST" || ! -n "$WGE_GIT_LIST" ]]
4216
  then
4217
  catlist() { cat /tmp/${1}GITLIST$WGUIDW 2>/dev/null ; }
4218
- print_info notify "Сhecking new Wine versions on GitHub..."
4219
  settingbar --text="Сhecking new Wine versions on GitHub..." get_wine_releases
4220
  WLU_GIT_LIST="$(catlist 'WLU')"
4221
  PGE_GIT_LIST="$(catlist 'PGE')"
@@ -4225,7 +4242,7 @@ get_wine_git_lst() {
4225
  if [[ -n "$WLU_GIT_LIST" || -n "$PGE_GIT_LIST" || -n "$WGE_GIT_LIST" || -n "$WK4_GIT_LIST" ]]
4226
  then
4227
  WINEGITOK=1
4228
- print_info notify "Сhecking new Wine versions on GitHub completed!"
4229
  return 0
4230
  else
4231
  unset WINEGITOK
@@ -4237,7 +4254,14 @@ get_wine_git_lst() {
4237
 
4238
  lu_winemgr() {
4239
  wnamesed() { echo "$1"|awk -F/ '{print $NF}'|sed 's|.tar.[a-z][a-z]||gi;/-x86$/d' ; }
4240
- wremovesame() { echo -e "$(wnamesed "$1")\n$ILW_LIST"|awk '!seen[$0]++'|grep -v "$ILW_LIST" ; }
 
 
 
 
 
 
 
4241
  wyadtab() {
4242
  echo -e "\n$(echo "$2"|sed ':a;N;$!ba;s/\n/\n\n/g')"|\
4243
  yad --plug=$WGUIDW --tabnum="$1" --list --column="" --checklist \
@@ -4346,6 +4370,7 @@ lu_winemgr() {
4346
  print_info notify "Removing $WINE_DEL completed!"
4347
  [ "$WINE_VERSION" == "$WINE_DEL" ] && touch "/tmp/WINEINUSEDEL$WGUIDW"
4348
  done
 
4349
  )
4350
  settingbar --text="Deletion is in progress. Please wait..." wine_rm
4351
  if [ -f "/tmp/WINEINUSEDEL$WGUIDW" ]
@@ -4353,7 +4378,7 @@ lu_winemgr() {
4353
  if [[ -n "$(ls -1 -t "$LW_WINE_DIR" 2>/dev/null|grep -v '.*.tar.*'|head -1)" || -n "$SYS_WINE" ]]
4354
  then
4355
  print_info notify "Removed Wine which was selected by default!"
4356
- check_def_wine
4357
  else
4358
  print_info notify "Removed Wine which was selected by default! Wine is not installed, you must download Wine!"
4359
  try_rm "/tmp/WINEINUSEDEL$WGUIDW" &>/dev/null
@@ -4528,13 +4553,13 @@ check_gamemode() {
4528
  then
4529
  if is_exe_exist gamemoderun
4530
  then
 
4531
  export RUN_GAMEMODE="gamemoderun"
4532
  else
4533
  print_error yad "GAMEMODE not found in your system!"
4534
  unset RUN_GAMEMODE
4535
  fi
4536
  else
4537
- print_info "GAMEMODE is disabled!"
4538
  unset RUN_GAMEMODE
4539
  fi
4540
  }
@@ -5073,19 +5098,29 @@ runtime_manager() {
5073
 
5074
  winepfx_init() {
5075
  print_info notify "Lux Wine prefix initialization..."
5076
- check_wine_pids
5077
- [[ ! -n "$WINE_PIDS" && -n "$OLD_WINE" ]] && unset OLD_WINE
5078
- check_ld_library
5079
- if [[ -n "$OLD_WINE" && -f "$OLD_WINE" ]]
5080
- then
5081
- DISABLE_MANGOHUD=1 DISABLE_VKBASALT=1 "$OLD_WINE" wineboot -i &>/dev/null
5082
- [ "$?" == 0 ] && export PFXINITOK=1
5083
- export LD_LIBRARY_PATH="$SYS_LDLIBPTH"
5084
- elif [ -f "$WINE" ]
5085
- then
5086
- DISABLE_MANGOHUD=1 DISABLE_VKBASALT=1 "$WINE" wineboot -i &>/dev/null
5087
- [ "$?" == 0 ] && export PFXINITOK=1
5088
- export LD_LIBRARY_PATH="$SYS_LDLIBPTH"
 
 
 
 
 
 
 
 
 
 
5089
  fi
5090
  if [ -n "$PFXINITOK" ]
5091
  then
@@ -5140,7 +5175,7 @@ check_winepfx() {
5140
  [ -n "$2" ] && export WINEARCH="$2"
5141
  WPFX_STEAMUSER_DIR="$WINEPREFIX/drive_c/users/steamuser"
5142
  if ! is_winepfx "$WINEPREFIX" && [ "$WINEARCH" == "win64" ] && \
5143
- [[ "$WINEPREFIX" =~ "defprefix" && -f "$LWRAP_DEFPFX" ]]
5144
  then
5145
  DEFPFXRESTORE=1 NO_FLMGR=1 lu_pfxrestore "$LWRAP_DEFPFX"
5146
  export NEEDCHKDLL=1
@@ -5467,7 +5502,10 @@ check_hold_terminal() {
5467
  }
5468
 
5469
  check_terminal() {
 
5470
  [ -n "$1" ] && export LW_TERM_APP="$1"
 
 
5471
  check_hold_terminal
5472
  if [[ -n "$LW_TERM_APP" && -n "$(which_exe "$(basename "$LW_TERM_APP")" 2>/dev/null)" ]]
5473
  then
@@ -5668,7 +5706,9 @@ check_cpu_limit() {
5668
  [ -n "$1" ] && export CPU_LIMIT="$1"
5669
  if [[ -n "$CPU_LIMIT" && "$CPU_LIMIT" != 0 ]]
5670
  then
5671
- export RUN_CPU_LIMIT="taskset -c 0-$(( $CPU_LIMIT - 1 ))"
 
 
5672
  print_info notify "The application will be launched with a CPU limitation"
5673
  fi
5674
  }
@@ -6027,7 +6067,7 @@ export_all_functions() {
6027
  export -f print_var print_error print_info check_tray check_wine_pids check_luwine_pid check_vkd3dconfig try_rm check_themes import_cenv sedspaces \
6028
  check_luwine_sh_pid check_exes check_compositor try_mkdir check_symlink check_netcore try_download check_cpu_limit ld_lib_upd wait_kill_exe \
6029
  unpack_tar_xz unpack_tar_gz unpack_tar shell_is_death exe_is_death exes_is_death wine_is_death try_cp check_us_switcher check_proton_d3dlib \
6030
- compositor_sw check_winetricks check_musthave_dll check_other_fixes wdllover_upd reg_edit exe2png gamma_sw vkd3dcfg_upd check_downloader \
6031
  create_shortcut lu_debug clear_log dis_debug_msg dis_cmd_msg import_luwine_wcfg check_def_wine lu_prerun lu_run lu_prestart try_mv path_upd select_lwpfx \
6032
  lu_start lu_cmd lu_shell lu_regedit lu_control lu_winecfg lu_taskmgr lu_uninstaller winetricks lu_openpfx lu_exit lu_killshell check_dxr winepfx_init \
6033
  lu_killtray lu_killwine lu_killexe lu_clearpfx lu_rmapp lu_shortcut lu_explorer lu_help lu_version lu_tray lu_winemgr updcfgchksum lite_init \
@@ -6042,7 +6082,7 @@ export_all_functions() {
6042
  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 \
6043
  check_display check_restore_resol resol_sw check_restore_gamma dis_displ_sw restore_resol check_virt_desktop check_vkbasalt_cfg check_exe_args \
6044
  check_wine_nvml check_resizable_bar check_latencyflex get_proton_d3dlib makesquash_zstd makesquash_xz lu_pfxbackup lu_pfxrestore lu_backupmnt lu_backupunmnt \
6045
- check_dxvk_async check_vsync get_wine_git_lst try_dl_install_wine exeargs_parse
6046
  }
6047
 
6048
  initbar() {
@@ -6103,40 +6143,69 @@ stop_loadbar() { is_loadbar && kill "$LOADBARPID" 2>/dev/null ; }
6103
  lu_appcfg() {
6104
  if [ ! -n "$(pgrep -fa yad|grep "Applications Settings"|awk '{print$1}')" ]; then :
6105
  else
6106
- print_error yad "Lux Wine Applications Settings" "Lux Wine Applications Settings already runing!"
6107
  exit 1
6108
  fi
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6109
  try_rm_broken_link "$LW_APPCFG_DIR"
6110
- LWAPPSCFG="$(cd "$LW_APPCFG_DIR" 2>/dev/null && ls -1 -t *.wcfg 2>/dev/null)"
6111
- if [[ -n "$(echo "$LWAPPSCFG"|head -1)" ]]
6112
- then
6113
- LW_APP_SETT="$(echo -e "\n$(echo "$LWAPPSCFG"|sed ':a;N;$!ba;s/\n/\n\n/g')"| \
6114
- yad --title "Lux Wine Applications Settings" --list --radiolist \
6115
- --separator "\n" --column="" --column="Select app config for open:" \
6116
- --text-align=center --center --window-icon="$LW_DEF_ICO" --width=400 \
6117
- --height=500 --button="RESET ALL:2" --button="EXIT:1" --button="OK:0" 2>/dev/null)"
6118
- if [ "$?" == "2" ]
6119
  then
6120
- if print_question "Applications Settings" \
6121
- "Are you sure you want to reset all Lux Wine applications config files?"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6122
  then
6123
- (IFS=$'\n' ; for RMLWAPPCFG in $(ls -1 -t "$LW_APPCFG_DIR"/*.wcfg 2>/dev/null)
6124
- do
6125
- try_rm "$(readlink -f "$RMLWAPPCFG")"
6126
- done)
6127
- try_rm "$LW_APPCFG_DIR"
6128
- print_info notify "Lux Wine applications config files deleted!"
6129
  fi
6130
- elif [ -n "$(echo "$LW_APP_SETT"|head -1)" ]
6131
- then
6132
- LW_APP_SETT="$(echo "$LW_APP_SETT"|sed '/^TRUE$/d'|sed '/^$/d')"
6133
- LW_APP_SETT_EXE="$(readlink -f "$LW_APPCFG_DIR/$LW_APP_SETT"|sed 's|.wcfg$|.exe|')"
6134
- cleanrun "$LW_SOURCE" -config "$LW_APP_SETT_EXE"
6135
- else
6136
- return 1
6137
  fi
6138
  else
6139
- print_error yad "Lux Wine Applications Settings" "Lux Wine applications config files not found!"
6140
  fi
6141
  }
6142
 
@@ -6519,20 +6588,22 @@ lu_runapp() {
6519
  sed 's|"||g'|sed 's|^ ||g')"
6520
  if [ -n "$APP_NAME" ]
6521
  then get_app_exe "$APP_NAME"
6522
- else print_error yad "No app found with this number!"
 
 
6523
  fi
6524
  else get_app_exe "$1"
6525
  fi
6526
  if [ ! -n "$LU_EXE" ]
6527
  then
6528
  print_error yad "No launch application found!"
6529
- exit 1
6530
  fi
6531
  shift
6532
  cleanrun env LWPPID="$LWPPID" "$LW_SOURCE" "$LU_EXE" "${EXE_ARGS[@]}" "$@"
6533
  else
6534
  print_error yad "Specify App for launch!"
6535
- exit 1
6536
  fi
6537
  }
6538
 
@@ -6681,14 +6752,14 @@ if [[ "$EUID" == 0 && "$ALLOW_ROOT" != 1 ]]
6681
  -killshell) lu_killshell "$@" ;;
6682
  -exit) lu_exit "$@" ;;
6683
  -clearpfx) lu_clearpfx "$@" ;;
6684
- -rmapp) shift ; lu_rmapp "$@" ;;
6685
  -shortcut) lu_shortcut ;;
6686
  -help) lu_help ;;
6687
  -version) lu_version ;;
6688
  -tray) lu_tray ;;
6689
  -update) lu_update "$@" ;;
6690
  -config) lu_config ;;
6691
- -appcfg) lu_appcfg ;;
6692
  -pfxbackup) lu_pfxbackup "$@" ;;
6693
  -pfxrestore) lu_pfxrestore ;;
6694
  -backupmnt) lu_backupmnt ;;
 
1
  #!/usr/bin/env bash
2
 
3
+ export LW_VERSION="0.78.3.3"
4
  export LW_DEVELOPERS="VHSgunzo"
5
 
6
  export RED='\033[1;91m'
 
143
  [ ! -n "$ZSTD_CMPRSS_LVL" ] && export ZSTD_CMPRSS_LVL="1"
144
  [ ! -n "$SYS_LDLIBPTH" ] && export SYS_LDLIBPTH="$LD_LIBRARY_PATH"
145
  [ ! -n "$SYS_STM_COMPAT_DIR" ] && export SYS_STM_COMPAT_DIR="/usr/share/steam/compatibilitytools.d"
146
+ [ ! -n "$HOME_STM_COMPAT_DIR" ] && export HOME_STM_COMPAT_DIR="$HOME/.local/share/Steam/compatibilitytools.d"
147
  [ ! -n "$DEF_MANGOHUDCFG" ] && export DEF_MANGOHUDCFG="gpu_text=GPU,cpu_color=2e97cb,cpu_text=CPU,io_color=a491d3,vram_color=ad64c1,ram_color=c26693,\
148
  engine_color=eb5b5b,gpu_color=2e9762,wine_color=eb5b5b,frametime_color=00ff00,background_alpha=0.4,background_color=020202,position=top-right,\
149
  text_color=ffffff,toggle_hud=Shift_R+F12,gpu_load_change,cpu_load_change,core_load_change,arch,cpu_mhz,cpu_temp,engine_version,gamemode,\
150
  gpu_core_clock,gpu_mem_clock,gpu_name,gpu_power,gpu_temp,no_display,ram,resolution,show_fps_limit,time,vkbasalt,vram,vulkan_driver,wine"
151
+ if [ ! -n "$NOT_TERM" ]
152
+ then [[ ! -n "$(tty|grep -v 'not a'|grep -Eo 'tty|pts')" ]] && \
153
+ NOT_TERM=1||NOT_TERM=0
154
+ fi
155
 
156
  export LWPID=$BASHPID
157
  [ ! -n "$LWPPID" ] && \
 
216
  [ ! -n "$CHKSTEAMAPPS" ] && export CHKSTEAMAPPS=1
217
  [ ! -n "$RESIZABLE_BAR" ] && export RESIZABLE_BAR=1
218
  [ ! -n "$DEFPFX_VERSION" ] && export DEFPFX_VERSION='v0.0.8'
219
+ [ ! -n "$GTK_THEME" ] && export GTK_THEME='Adwaita:dark'
220
  export DEFPFX_URL="https://github.com/VHSgunzo/wine-prefix/releases/download/$DEFPFX_VERSION/defprefix.xz.lwpfx"
221
  export DEFPFXDOTNET_URL="https://github.com/VHSgunzo/wine-prefix/releases/download/$DEFPFX_VERSION/defprefix_dotnet.xz.lwpfx"
222
  export DEFPFXDOTNETDESKTOP_URL="https://github.com/VHSgunzo/wine-prefix/releases/download/$DEFPFX_VERSION/defprefix_dotnetdesktop.xz.lwpfx"
 
1217
  if [ -n "$NEED_INSTALL_DLLS" ]
1218
  then
1219
  export UPDPFX_LOG="$WINEPREFIX/update_pfx.log"
1220
+ $TERM_APP $LWSHELL -c "print_info notify 'Try to install DLL in prefix: [ $NEED_INSTALL_DLLS ]'|& tee -a '$UPDPFX_LOG' ; \
 
1221
  winetricks -q -f -r $NEED_INSTALL_DLLS|& tee -a '$UPDPFX_LOG'"
1222
  while read WTRXDLL
1223
  do
 
1572
  echo "Icon="$SHRT_ICON"" >> "$DESKF"
1573
  echo "Actions=rmapp;config;openpfx;debug;cmd;explorer;control;regedit;winecfg;taskmgr;uninstaller;winetricks;clearpfx;pfxbackup;pfxrestore;killwine;version;init" >> "$DESKF"
1574
  echo -e "\n[Desktop Action rmapp]" >> "$DESKF"
1575
+ echo "Name=Remove shortcut" >> "$DESKF"
1576
+ echo "Name[ru_RU]=Удалить ярлык" >> "$DESKF"
1577
  echo "Icon="$SHRT_ICON"" >> "$DESKF"
1578
  echo "Exec='$LW_SOURCE' -rmapp '$SHRT_NAME'" >> "$DESKF"
1579
  echo -e "\n[Desktop Action config]" >> "$DESKF"
1580
  echo "Name=Settings" >> "$DESKF"
1581
  echo "Name[ru_RU]=Настройки" >> "$DESKF"
1582
  echo "Icon="$SHRT_ICON"" >> "$DESKF"
1583
+ echo "Exec='$LW_SOURCE' -config $SHRTEXEPATH $SHRTEXEARGS" >> "$DESKF"
1584
  echo -e "\n[Desktop Action openpfx]" >> "$DESKF"
1585
  echo "Name=Open drive C:\\\\\\" >> "$DESKF"
1586
  echo "Name[ru_RU]=Открыть диск C:\\\\\\" >> "$DESKF"
 
1699
  check_ld_library
1700
  export PRINT_VARS="$(print_var "WINE_VERSION" "WINEDIR" "WINE" "WINEARCH" "WINEPREFIX" "WIN_VER" "WINEDLLOVERRIDES" "CHK_UPDATE" "NVPRIME" \
1701
  "VKBASALT_EFFECTS" "WINE_MONO_OVERRIDES" "EXE_PATH" "LU_EXE" "VKD3D_CONFIG" "LD_LIBRARY_PATH" "PATH" "WINEDEBUG" "CPU_LIMIT" "VSYNC" \
1702
+ "VKD3D_DEBUG" "WINE_MONO_TRACE" "VKBASALT_LOG_LEVEL" "DXVK_LOG_LEVEL" "PULSE_LATENCY_MSEC" "VIRTUAL_DESKTOP" "FPS_LIMIT" "LW_CENV" \
1703
  "LW_DIR" "LW_CFG" "GSTREAMER" "HIDE_NVIDIA_GPU" "EXE_LWDB" "EXE_LWDBFL" "GST_PLUGIN_SYSTEM_PATH_1_0" "WINE_GST_REGISTRY_DIR" "RUNSRC" "RUNROOTFS_VERSION" \
1704
  "WINE_SANDBOX" "WINEFSYNC" "WINEFSYNC_FUTEX2" "WINE_FULLSCREEN_FSR" "WINE_FULLSCREEN_FSR_STRENGTH" "STAGING_SHARED_MEMORY" "WINEESYNC" "VKBASALT_LOG_FILE" \
1705
  "LOG_FILE" "WINE_LARGE_ADDRESS_AWARE" "TERM_APP" "VKBASALT" "DXVK_NVAPIHACK" "MANGOHUD" "MANGOHUD_USER_CONF" "RUN_GAMEMODE" "VKD3D_LOG_FILE" \
1706
  "VKBASALT_CONFIG_FILE" "VK_ICD_FILENAMES" "__GL_THREADED_OPTIMIZATIONS" "DXVK_STATE_CACHE_PATH" "__GLX_VENDOR_LIBRARY_NAME" "__NV_PRIME_RENDER_OFFLOAD" \
1707
  "WINE_FULLSCREEN_FSR_MODE" "DXVK_STATE_CACHE" "__GL_DXVK_OPTIMIZATIONS" "__GL_SHADER_DISK_CACHE_PATH" "__GL_SHADER_DISK_CACHE" "__GL_SHADER_DISK_CACHE_SIZE" \
1708
+ "WD3DMODE" "MEDIACONV_AUDIO_DUMP_FILE" "MEDIACONV_AUDIO_TRANSCODED_FILE" "MEDIACONV_VIDEO_DUMP_FILE" "MEDIACONV_VIDEO_TRANSCODED_FILE" "LW_STEAMAPPS_DIR")\
1709
+ \n[VAR] EXE_ARGS=${EXE_ARGS[@]}\n"
1710
  export LD_LIBRARY_PATH="$SYS_LDLIBPTH"
1711
  echo "---------------------------------------------------------------------------------------" >> "$TMP_DBG"
1712
  echo "[ Date and time of start debug ] : $(date)" >> "$TMP_DBG"
 
1976
  }
1977
 
1978
  check_def_wine() {
1979
+ def_wine_not() {
1980
+ print_error yad "Wine Manager" "Default Wine not selected, you must select default Wine!"
1981
+ def_wine_selector||exit 1
1982
+ if [ -n "$SETWINE" ]
1983
+ then export_wine_changes
1984
+ else check_def_wine
1985
+ fi
1986
+ }
1987
  setpfxdefwine() { echo "$1" > "$WINEPREFIX/.defwine" ; }
1988
  def_wine_selector() {
1989
+ set -o pipefail
1990
  unset SETWINE
1991
  export SETWINE="$(echo -e "\n$(echo "${LOCWINELST}$([ -n "$SYS_WINE" ] && echo -e '\nSystem')$([[ -n "$LU_EXE" \
1992
+ && ! -n "$FIRST_RUN" ]] && echo -e '\nDefault')"|sed ':a;N;$!ba;s/\n/\n\n/g')"|\
1993
  yad --window-icon="$LW_DEF_ICO" --title "Wine Manager" --column="" --column="Select default Wine:" \
1994
  --width=400 --height=500 --list --radiolist --separator "\n" --button="EXIT:1" --button="OK:0" \
1995
  --center --on-top 2>/dev/null|sed '/^TRUE$/d'|sed '/^$/d')"
1996
+ [ "$SETWINE" ]||return 1
1997
  }
1998
  export_wine_changes() {
1999
  sed -i "s/WINE_VERSION.*/WINE_VERSION=\'$SETWINE\'/g" "$LW_CFG"
2000
  export NEW_WINE_VERSION="$SETWINE"
2001
  export OLD_WINE_VERSION="$WINE_VERSION"
2002
  export OLD_WINE="$WINE"
2003
+ import_luwine_wcfg
2004
+ check_proton_d3dlib
2005
+ print_info notify "Wine $SETWINE selected as default!"
2006
  }
2007
+ LOCWINELST="$(ls -1 -t "$LW_WINE_DIR" 2>/dev/null)"
2008
  IGNWINE=('Default' 'SETWINE' 'System' 'Proton 7.0' 'Proton 8.0' 'Proton - Experimental')
2009
+ if [[ -n "$WINE_VERSION" && ! -d "$LW_WINE_DIR/$WINE_VERSION" && "$WINEINUSEDEL" != 1 && \
2010
  ! -L "$LW_WINE_DIR/$WINE_VERSION" && ! "${IGNWINE[@]}" =~ "$WINE_VERSION" ]]
2011
  then
2012
  print_info notify "Trying to install Wine: $WINE_VERSION"
2013
+ if ! try_dl_install_wine "$WINE_VERSION"
2014
+ then def_wine_selector && \
2015
+ export_wine_changes||exit 1
2016
+ fi
2017
  fi
2018
  (IFS=$'\n' ; for BINWINE in $(ls -1 -t "$LW_WINE_DIR" 2>/dev/null)
2019
  do
 
2040
  fi
2041
  fi
2042
  done)
 
2043
  if [[ ! -f "$WINE" && "$(echo "$LOCWINELST"|sedspaces|wc -l)" == 0 && -n "$SYS_WINE" ]]
2044
  then
2045
  print_info "System Wine found"
 
2062
  print_info yad "Wine Manager" "Wine is not installed, you must download Wine!"
2063
  lu_winemgr
2064
  check_def_wine
2065
+ elif [[ ! -f "$WINE" && "$(echo "$LOCWINELST"|sedspaces|wc -l)" -gt 1 && "$W_INST" == 1 ]]||\
2066
+ ([[ ! -f "$WINE" && "$(echo "$LOCWINELST"|sedspaces|wc -l)" -gt 1 ]] && \
2067
+ [[ ! -n "$P_DXVK" || ! -n "$P_NVAPI" || ! -n "$P_VKD3D" ]])
2068
+ then def_wine_not
 
 
 
 
 
 
 
 
 
 
 
 
2069
  elif [[ -f "$WINE" && "$(echo "$LOCWINELST"|sedspaces|wc -l)" == 1 && "$WINE_VERSION" != "System" ]] \
2070
  && [ "$W_INST" == 1 ]; then :
2071
  elif [ ! -f "$WINE" ] && [[ "$(echo "$LOCWINELST"|sedspaces|wc -l)" == 1 \
 
2074
  then
2075
  export SETWINE="$(ls -1 -t "$LW_WINE_DIR" 2>/dev/null|grep -v '.*.tar.*'|head -1)"
2076
  export_wine_changes
 
 
 
2077
  elif [ "$W_INST" == 1 ] \
2078
  && [[ ! -n "$P_DXVK" || ! -n "$P_NVAPI" || ! -n "$P_VKD3D" ]]
2079
  then
2080
  if [ ! -n "$(pgrep -fa yad|grep "Wine Manager"|awk '{print$1}')" ]
2081
+ then def_wine_selector && \
2082
+ export_wine_changes||exit 1
 
 
 
 
 
 
 
2083
  else
2084
  print_error yad "Wine Manager" "Wine Manager already runing!"
2085
  fi
 
2087
  then
2088
  export SETWINE="$(ls -1 -t "$LW_WINE_DIR" 2>/dev/null|grep -v '.*.tar.*'|head -1)"
2089
  export_wine_changes
 
 
 
2090
  fi
2091
  try_mkdir "$WINEPREFIX"
2092
  PFXDEFWINE="$(cat "$WINEPREFIX/.defwine" 2>/dev/null)"
 
2236
  $RUN_VKCAPTURE $RUN_FPSLIMIT $RUN_GAMEMODE $RUN_MANGOHUD $RUN_CPU_LIMIT \
2237
  "$WINE" $RUN_VDESKTOP "${EXE_WRAPPER[@]}" "${LU_EXEC[@]}" "${EXE_ARGS[@]}"
2238
  }
2239
+ exec_wine_with_dbg_log() { echo_dbg|& tee -a "$LOG_FILE" ; exec_wine|& tee -a "$LOG_FILE" ; }
2240
+ exec_wine_with_log() { echo_dbg ; exec_wine|& tee -a "$LOG_FILE" ; }
2241
  exec_with_log() {
2242
  [[ "$E_LU_EXEC" =~ ^declare ]] && eval "$E_LU_EXEC"
2243
  echo_dbg|& tee -a "$LOG_FILE" ; "${LU_EXEC[@]}"|& tee -a "$LOG_FILE"
2244
  }
2245
+ export -f exec_wine exec_wine_with_log exec_wine_with_dbg_log echo_dbg exec_with_log
2246
  pre_launch 2>/dev/null
2247
  shrt_loop &
2248
  dis_displ_sw 2>/dev/null
 
2271
  else $TERM_APP $LWSHELL
2272
  fi
2273
  else
2274
+ $TERM_APP $LWSHELL -c 'exec_wine_with_dbg_log'
2275
  clear_log 2>/dev/null
2276
  $LW_EDITOR "$LOG_FILE" 2>/dev/null &
2277
  fi
2278
  elif [ "$LOG" == 1 ]
2279
  then
2280
+ exec_wine_with_log
 
2281
  clear_log 2>/dev/null
2282
  $LW_EDITOR "$LOG_FILE" 2>/dev/null &
2283
  elif [ "$TERMINAL" == 1 ]
 
2301
  else
2302
  if [ "$LU_LNK" == 1 ]
2303
  then
2304
+ export TMP_OUT='/dev/null'
2305
+ $TERM_APP $LWSHELL -c 'exec_wine_with_log'
2306
  else
2307
  $TERM_APP $LWSHELL -c 'echo_dbg ; exec_wine'
2308
  fi
 
2375
  [ ! -n "$FULLCMDLINE" ] && export FULLCMDLINE=("$0" "$1")
2376
  fi
2377
  [ ! -n "$LU_START" ] && export LU_START="$ipath_pth"
2378
+ [ ! -n "$START_FLINFO" ] && \
2379
+ export START_FLINFO="$(file "$LU_START" 2>/dev/null)"
2380
  case "$LU_START" in
2381
  *.[Mm][Ss][Ii]) export LU_MSI=1 ;;
2382
  *.[Bb][Aa][Tt]) export LU_BAT=1 ;;
 
2582
  then
2583
  try_mkdir "$LW_WINE_DIR"
2584
  STMBATTLEYE="$LW_STEAMAPPS_DIR/Proton BattlEye Runtime"
2585
+ (STMEAC="$LW_STEAMAPPS_DIR/Proton EasyAntiCheat Runtime"
2586
+ IFS=$'\n'
2587
+ STMPROTONSVER=(
2588
+ $(ls -1 $LW_STEAMAPPS_DIR 2>/dev/null|grep -P 'Proton \d+.\d+'|sed 's|^Proton ||g')
2589
+ '- Experimental' 'Hotfix'
2590
+ )
2591
+ for ver in "${STMPROTONSVER[@]}"
2592
  do
2593
+ STMverPRTN="$LW_STEAMAPPS_DIR/Proton ${ver}"
2594
+ if [ -d "$STMverPRTN/files" ]
2595
+ then STMverPRTN+='/files'
2596
+ elif [ -d "$STMverPRTN/dist" ]
2597
+ then STMverPRTN+='/dist'
2598
+ fi
2599
  if [[ -f "$STMverPRTN/bin/wine" && ! -d "$LW_WINE_DIR/Proton ${ver}" ]]
2600
  then
2601
  try_ln "$STMverPRTN" "$LW_WINE_DIR/Proton ${ver}"
 
2603
  try_ln "$STMverPRTN/../version" "$STMverPRTN/version"
2604
  print_info notify "Found Proton ${ver} in Steam and linked to Lux Wine"
2605
  fi
2606
+ done)
2607
  else
2608
  unset STMEAC STMBATTLEYE
2609
  fi
 
2658
 
2659
  lite_init() {
2660
  unset EXE_ARGS
2661
+ DEPRECATE_INIT=(
2662
+ '-killwine' '-killtray' '-killexe' '-killshell'
2663
+ '-exit' '-tray' '-lsapp' '-runapp' '-rmapp' '-help'
2664
+ )
2665
  export_all_functions
2666
  if ! [[ "${DEPRECATE_INIT[@]}" =~ "$1" ]] || [ ! -n "$1" ]
2667
  then
 
2687
  check_nvprime
2688
  check_driprime
2689
  check_videodrv
2690
+ IGN_CHECK_DEF_WINE=(
2691
+ '-appcfg' '-config' '-version' '-winemgr' '-shell'
2692
+ '-backupunmnt' '-backupmnt' '-pfxrestore' '-pfxbackup'
2693
+ '-update' '-openpfx' '-clearpfx' '-shortcut'
2694
+ )
2695
+ [[ "${IGN_CHECK_DEF_WINE[@]}" =~ "$1" || -f "$SHRT_FL" ]]||\
2696
  check_def_wine
2697
  check_proton_d3dlib
2698
  check_path
 
2809
  ls_dlls() { ls -I "*.json" -1 -t "$LW_RUNTIME_DIR/$1" 2>/dev/null|grep -v '.*.tar.*' ; }
2810
  is_exe_nofirstrun() { [[ -n "$LU_EXE" && ! -n "$FIRST_RUN" ]] ; }
2811
  export LWCFGKEY=$RANDOM
2812
+ 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') \n GE-Proton7-55"
2813
  WINETHEMESLST="Disabled \n $(ls -1 "$LW_THEMES_DIR" 2>/dev/null|sed 's|.reg||gi')"
2814
  WDLLOVERLST="steam_api,steam_api64,steamclient,steamclient64=n;lsteamclient,winemenubuilder.exe= \n Disabled"
2815
  WMONOOVERLST="Microsoft.Xna.Framework.*,Gac=n \n Disabled"
2816
+ WINVERLST="11 \n 10 \n \n 8 \n 7 \n xp"
2817
  WARCHLST="win64 \n win32"
2818
  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"
2819
  TERMAPPLST="$(for whichterm in {konsole,gnome-terminal,kitty,deepin-terminal,xfce4-terminal,xterm} ; do which_exe "$whichterm" ; done)"
 
2835
  FSRMODELST="Enabled \n ultra \n quality \n balanced \n performance \n Disabled"
2836
  MANGOHUDLST="Enabled \n DLSYM \n Disabled"
2837
  VKCAPTURELST="Vulkan \n OpenGL \n Disabled"
2838
+ GTKTHEMELST="Adwaita:dark \n Adwaita \n $(ls -1 "$HOME/.themes" 2>/dev/null)"
2839
  lwconfig_save() {
2840
  LWCFGVAR="WINE_VERSION WIN_VER WINEARCH WINEPREFIX WINE_THEME WDLLOVER WMONOVER WD3DMODE DISABLE_NVAPI WINE_DXGI D3D_EXTRAS DGVOODOO2 \
2841
  DXVK_VERSION VKD3D_VERSION DXVK_NVAPI_VERSION D3D_EXTRAS_VERSION DGVOODOO2_VERSION WINE_NVML_VERSION VKD3DCFG MUST_HAVE_DLL \
2842
  FSR_MODE WINE_SANDBOX ESYNC FSYNC GSTREAMER SHOW_WINEDBG LARGE_ADDRESS OLD_GL_STRING \
2843
  NO_WRITE_WATCH HIDE_NVIDIA_GPU HEAP_DELAY_FREE SHARED_MEMORY ALLOW_XIM DIS_LAYER_AMD DIS_NETCORE \
2844
  VIRTUAL_DESKTOP BATTLEYE EAC DXVKASYNC RESIZABLE_BAR LATENCYFLEX DXR EXEARGS CHK_UPDATE EXE_LWDB EXE_LWDBFL \
2845
+ LOADBAR LOADBARGIF CHKSTEAMAPPS LW_STEAMAPPS_DIR CHECK_LW_APPS GTK_THEME LOG DEBUG SYS_WINETRICKS CPU_LIMIT CMPRSS_METHOD ZSTD_CMPRSS_LVL \
2846
  DIS_OTH_DISPL RESTORE_RESOL RESTORE_GAMMA DIS_COPMOSITOR RESET_PULSE PULSE_LTCY TERMINAL HOLD_TERMINAL LW_TERM_APP \
2847
  LW_DOWNLOADER NO_TRAY US_LAYOUT VKBASALT VKBASALT_FFX_CAS VKICDFILES GAMEMODE LWMANGOHUD MANGOHUD_USER_CONF FPS_LIMIT \
2848
  VSYNC LWVKCAPTURE NVPRIME DRIPRIME"
 
2884
  && try_cp "/tmp/wlogsett$LWCFGKEY" "$WINEPFXWCFGOUT/winetricks.log"
2885
  if [[ -n "$WINEPFXWCFGOUT" && "$WINEPFXWCFGOUT" != "$WINEPREFIX" ]]
2886
  then
2887
+ print_info "Wine prefix changed to [ $(basename "$WINEPFXWCFGOUT") ]"
2888
  export WINEPREFIX="$WINEPFXWCFGOUT"
 
 
 
 
 
 
 
 
2889
  fi
2890
  CURDEFWINE="$(cat "$WINEPREFIX/.defwine" 2>/dev/null)"
2891
  if [[ "$WINEWCFGOUT" != "$CURDEFWINE" && "$WINEWCFGOUT" != "Default" ]] || \
 
2895
  export NEW_WINE_VERSION="$WINEWCFGOUT"
2896
  export OLD_WINE_VERSION="$CURDEFWINE"
2897
  export OLD_WINE="$WINE"
2898
+ set_wine_version "$WINEWCFGOUT"
2899
+ print_info "Wine version changed to $NEW_WINE_VERSION"
2900
+ check_def_wine
2901
  fi
2902
  if [ -n "$LU_EXE" ]
2903
  then
 
2925
  }
2926
  lwconfig_menu() {
2927
  yad --plug=$LWCFGKEY --tabnum=1 --form --separator="\n" --quoted-output --bool-fmt=1 --columns=2 "${YADSCROLL[@]}" \
2928
+ --field="Wine version::CBE" "$(cfg_items "$WINE_VERSION" "$WINELST")" \
2929
  --field="Windows version::CB" "$(cfg_items "$WIN_VER" "$WINVERLST")" \
2930
  --field="Wine architecture::CB" "$(cfg_items "$WINEARCH" "$WARCHLST")" \
2931
  --field="Wine prefix::DIR" "$WINEPREFIX" \
 
2988
  --field="Check Steam apps:CHK" "$CHKSTEAMAPPS" \
2989
  --field="Steam apps common folder::DIR" "$LW_STEAMAPPS_DIR" \
2990
  --field="Auto remove apps shortcuts:CHK" "$CHECK_LW_APPS" \
2991
+ --field="GTK theme::CB" "$(cfg_items "$GTK_THEME" "$GTKTHEMELST")" \
2992
  --field="LOG:CHK" "$LOG" \
2993
  --field="DEBUG:CHK" "$DEBUG" \
2994
  --field="Use system Winetricks:CHK" "$SYS_WINETRICKS" \
 
3145
  0) lwconfig_save init ;;
3146
  3) lwconfig_reset ;;
3147
  4) lwconfig_save
3148
+ cleanrun "$LW_SOURCE" "$LU_EXE" "${EXE_ARGS[@]}" ;;
3149
  esac
3150
  }
3151
 
 
3238
  cleanrun "$LW_SOURCE" "$1" "$LU_EXE"
3239
  sleep 0.5
3240
  fi
3241
+ cleanrun "$LW_SOURCE" -config "$LU_EXE" "${EXE_ARGS[@]}"
3242
  else
3243
  if [ -n "$1" ]
3244
  then
 
3279
  if [ -f "$2" ]
3280
  then
3281
  local file_info="$(file "$2")"
3282
+ if [[ -n "$(grep "script"<<<"$START_FLINFO"|grep -o "executable")" || \
3283
+ -n "$(grep "ELF"<<<"$START_FLINFO"|grep -o "executable")" ]]
3284
  then
3285
  export LU_SHELL_EXE="$(readlink -f "$2")"
3286
  lu_run "$LU_SHELL_EXE"
 
3412
  then
3413
  if [ -x "/usr/bin/winetricks" ]
3414
  then
 
3415
  if [[ ! -n "$NEED_INSTALL_DLLS" && ! -n "$WTRX_ARG" && -n "$WTRX_RUN" ]] \
3416
  || [[ ! -n "$NEED_INSTALL_DLLS" && ! -n "$WTRX_ARG" && -n "$LU_EXE" && -n "$WTRX_RUN" ]] \
3417
  || [[ ! -n "$NEED_INSTALL_DLLS" && ! -n "$WTRX_ARG" && -n "$LU_EXE" && ! -n "$WTRX_RUN" ]]
3418
  then
3419
+ $TERM_APP $LWSHELL -c "print_info notify 'Using System winetricks!' ; \
3420
  DISABLE_MANGOHUD=1 DISABLE_VKBASALT=1 /usr/bin/winetricks"
3421
  elif [[ -n "$NEED_INSTALL_DLLS" && ! -n "$WTRX_ARG" && ! -n "$WTRX_RUN" ]]
3422
  then
 
3430
  check_winetricks
3431
  if [[ ! -n "$WTRX_ARG" && -n "$WTRX_RUN" ]]
3432
  then
3433
+ $TERM_APP $LWSHELL -c "print_info notify 'Using Lux Wine winetricks!' ; \
3434
  DISABLE_MANGOHUD=1 DISABLE_VKBASALT=1 '$LW_WTRX_DIR/winetricks'"
3435
  elif [[ ! -n "$WTRX_ARG" && ! -n "$WTRX_RUN" ]]
3436
  then
 
3440
  fi
3441
  fi
3442
  else
 
3443
  check_winetricks
3444
  if [[ ! -n "$NEED_INSTALL_DLLS" && ! -n "$WTRX_ARG" && -n "$WTRX_RUN" ]] \
3445
  || [[ ! -n "$NEED_INSTALL_DLLS" && ! -n "$WTRX_ARG" && -n "$LU_EXE" && -n "$WTRX_RUN" ]] \
3446
  || [[ ! -n "$NEED_INSTALL_DLLS" && ! -n "$WTRX_ARG" && -n "$LU_EXE" && ! -n "$WTRX_RUN" ]]
3447
  then
3448
+ $TERM_APP $LWSHELL -c "print_info notify 'Using Lux Wine winetricks!' ; \
3449
  DISABLE_MANGOHUD=1 DISABLE_VKBASALT=1 '$LW_WTRX_DIR/winetricks'"
3450
  elif [[ -n "$NEED_INSTALL_DLLS" && ! -n "$WTRX_ARG" && ! -n "$WTRX_RUN" ]]
3451
  then
 
3614
  try_rm "$WINEPREFIX/drive_c/Program Files (x86)/Windows Media Player" &>/dev/null
3615
  try_rm "$WINEPREFIX/drive_c/Program Files (x86)/Windows NT" &>/dev/null
3616
  try_rm "$WINEPREFIX/.lwtheme" &>/dev/null
3617
+ try_rm "$WINEPREFIX/.winver" &>/dev/null
3618
  try_rm "$LW_DIR/.lwcfgchksum" &>/dev/null
3619
  try_rm /tmp/FORCE_EXIT &>/dev/null
3620
  print_info notify "Prefix [ $WINEPREFIX ] successfully cleared!"
 
3650
  unset args
3651
  if [ -n "$2" ]
3652
  then
3653
+ [ "$luapp" == 1 ] && \
3654
  local args="$(sed 's|"|\"|g;s|\\|\\\\|g'<<<"$2")"||\
3655
  local args="$(sed 's|"|\"|g;s|\\|\\\\\\\\|g'<<<"$2")"
3656
  fi
 
3713
  wait
3714
  fi)
3715
  }
3716
+ shift
3717
  LWAPPSHRT="$(grep "Categories=Lux Wine Apps" -lr "$MENU_APPS_DIR" 2>/dev/null)"
3718
  if [[ -n "$(echo "$LWAPPSHRT"|head -1)" ]]
3719
  then
 
3723
  sed 's|"||g'|sed 's|^ ||g')"
3724
  if [ -n "$APP_NAME" ]
3725
  then get_app_exe "$APP_NAME"
3726
+ else
3727
+ print_error yad "No app found with this number!"
3728
+ return 1
3729
  fi
3730
  else
3731
  if [ "${1,,}" == "all" ]
3732
+ then rm_allsrtcts ; return $?
3733
  else [ -n "$1" ] && LU_EXE="$1"
3734
  fi
3735
  fi
 
3738
  if [[ -n "$(grep -Eiom1 '\.exe$|\.bat$'<<<"$LU_EXE")" ]]
3739
  then
3740
  (IFS=$'\n'
3741
+ local luapp=1
3742
  if [ "$RM_ALL_EXE_APPS" == 1 ]
3743
  then LWAPPSRM=($(grep -F "$LU_EXE" -lr "$MENU_APPS_DIR" 2>/dev/null))
3744
  elif [ -n "$EXEARGS" ]
 
3747
  fi
3748
  if [ -n "$LWAPPSRM" ]
3749
  then rm_srtcts "${LWAPPSRM[@]}"
3750
+ else print_error yad "Shortcuts Remover" "'$LU_EXE' not found!"
3751
  fi)
3752
  else
3753
  LW_APP_RM="$(echo -e "\n$(echo "$LWAPPSHRT"|xargs -d "\n" -I {} grep -m1 "^Name=" {}|sed 's|^Name=||g'|sort -u|sed ':a;N;$!ba;s/\n/\n\n/g')"| \
 
3767
  fi
3768
  fi
3769
  else
3770
+ print_error yad "Shortcuts Remover" "Lux Wine applications not found!"
3771
  fi
3772
  }
3773
 
 
3824
  'openuserfolder.bat' 'language.changer.exe'
3825
  'uninst.exe' 'q2rtxded-x86.exe' 'q2rtxded.exe'
3826
  'ErrorReporter.exe' 'EAUpdater.exe' 'explorer.exe'
3827
+ 'UninstWA.exe' 'msiexec.exe'
3828
  )
3829
  IGNLNK=(
3830
  'VKPlay.ru.lnk' 'App Recovery.lnk'
 
4033
  $RED┌──[$GREEN$USER$YELLOW@$BLUE`uname -a|awk '{print$2}'`$RED]─[$GREEN$PWD$RED]
4034
  $RED└──╼ \$$GREEN $LW_NAME $BLUE{$LW_NAME arg} ${RED}blabla.exe $YELLOW{exe args}
4035
 
4036
+ ${RED}-explorer $GREEN Wine explorer
4037
+ ${RED}-cmd $GREEN Open CMD or open file in CMD
4038
+ ${RED}-shell $GREEN Open SHELL or open file in SHELL
4039
+ ${RED}-config $GREEN Settings
4040
+ ${RED}-regedit $GREEN Registry editor
4041
+ ${RED}-control $GREEN Control panel
4042
+ ${RED}-winecfg $GREEN Wine settings
4043
+ ${RED}-winemgr $BLUE{delonly}$GREEN Wine manager
4044
+ ${RED}-taskmgr $GREEN Task manager
4045
+ ${RED}-uninstaller $GREEN Wine uninstaller
4046
+ ${RED}-winetricks $BLUE{arguments}$GREEN Winetricks
4047
+ ${RED}-openpfx $GREEN Open drive C:\\\\
4048
+ ${RED}-killwine $GREEN Kill Wine processes
4049
+ ${RED}-killtray $GREEN Kill tray
4050
+ ${RED}-killexe $GREEN Kill running EXE
4051
+ ${RED}-killshell $GREEN Kill SHELL
4052
+ ${RED}-exit $GREEN Force exit
4053
+ ${RED}-clearpfx $GREEN Clear prefix
4054
+ ${RED}-shortcut $GREEN Create shortcut
4055
+ ${RED}-debug $GREEN DEBUG
4056
+ ${RED}-help $GREEN Show this usage info
4057
+ ${RED}-version $GREEN Show version info
4058
+ ${RED}-tray $BLUE{noclose}$GREEN Tray
4059
+ ${RED}-init $GREEN Forced initialization
4060
+ ${RED}-pfxbackup $BLUE{xz}$GREEN Create prefix backup
4061
+ ${RED}-pfxrestore $GREEN Restore prefix from backup
4062
+ ${RED}-backupmnt $GREEN Mount prefix backup
4063
+ ${RED}-backupunmnt $GREEN Unmount prefix backup
4064
+ ${RED}-lsapp $GREEN Show a list of applications
4065
+ ${RED}-runapp $BLUE{num|name}$GREEN Launch the application
4066
+ ${RED}-rmapp $BLUE{num|name|all}$GREEN Remove application shortcut
4067
+ ${RED}-appcfg $BLUE{num|name|resetall}$GREEN Applications settings
4068
+ ${RED}-update $BLUE{all} $GREEN Runtime updater$BLUE
4069
  {dx|dxvk} {vkd|vkd3d} {d3d|d3d_extras|d3d-extras} {eac|eac_runtime}
4070
  {nvml|wine_nvml} {dxnv|dxvk-nvapi|dxvk_nvapi} {wtrx|winetricks}
4071
  {bat|battleye|battleye_runtime} {dg|dgvoodoo2}
 
4171
  do
4172
  if [ -d "$WTMP_DIR/$W_DW/$PFILES" ]
4173
  then
4174
+ try_mv "$WTMP_DIR/$W_DW"/* "$WTMP_DIR/"
4175
+ try_rm "$WTMP_DIR/$W_DW"
4176
+ try_ln "$WTMP_DIR/$PFILES"/* "$WTMP_DIR/"
 
 
4177
  break
4178
  fi
4179
  done
 
4189
  if try_mv "$WTMP_DIR" "$LW_WINE_DIR/$W_DW"
4190
  then
4191
  WINE_VERSION="$W_DW" WINEDIR="$LW_WINE_DIR/$W_DW" check_proton_d3dlib
4192
+ if [ -f "$LW_WINE_DIR/$W_DW/proton" ]
4193
+ then
4194
+ local prtncmptooldir="$HOME_STM_COMPAT_DIR/$W_DW"
4195
+ try_rm_broken_link "$HOME_STM_COMPAT_DIR"
4196
+ [[ ! -d "$prtncmptooldir" ]] && \
4197
+ ln -sf "$LW_WINE_DIR/$W_DW" "$prtncmptooldir"
4198
+ fi
4199
  print_info notify "Installation $W_DW completed!"
4200
  [ -n "$WGUIDW" ] && \
4201
  W_INST=1
 
4232
  if [[ ! -n "$PGE_GIT_LIST" || ! -n "$WLU_GIT_LIST" || ! -n "$WK4_GIT_LIST" || ! -n "$WGE_GIT_LIST" ]]
4233
  then
4234
  catlist() { cat /tmp/${1}GITLIST$WGUIDW 2>/dev/null ; }
4235
+ print_info "Сhecking new Wine versions on GitHub..."
4236
  settingbar --text="Сhecking new Wine versions on GitHub..." get_wine_releases
4237
  WLU_GIT_LIST="$(catlist 'WLU')"
4238
  PGE_GIT_LIST="$(catlist 'PGE')"
 
4242
  if [[ -n "$WLU_GIT_LIST" || -n "$PGE_GIT_LIST" || -n "$WGE_GIT_LIST" || -n "$WK4_GIT_LIST" ]]
4243
  then
4244
  WINEGITOK=1
4245
+ print_info "Сhecking new Wine versions on GitHub completed!"
4246
  return 0
4247
  else
4248
  unset WINEGITOK
 
4254
 
4255
  lu_winemgr() {
4256
  wnamesed() { echo "$1"|awk -F/ '{print $NF}'|sed 's|.tar.[a-z][a-z]||gi;/-x86$/d' ; }
4257
+ wremovesame() (
4258
+ IFS=$'\n'
4259
+ local wines="$(echo -e "$(wnamesed "$1")\n$ILW_LIST"|awk '!seen[$0]++')"
4260
+ for w in $ILW_LIST
4261
+ do wines="$(grep -v "^${w}$"<<<"$wines")"
4262
+ done
4263
+ echo "$wines"
4264
+ )
4265
  wyadtab() {
4266
  echo -e "\n$(echo "$2"|sed ':a;N;$!ba;s/\n/\n\n/g')"|\
4267
  yad --plug=$WGUIDW --tabnum="$1" --list --column="" --checklist \
 
4370
  print_info notify "Removing $WINE_DEL completed!"
4371
  [ "$WINE_VERSION" == "$WINE_DEL" ] && touch "/tmp/WINEINUSEDEL$WGUIDW"
4372
  done
4373
+ try_rm_broken_link "$HOME_STM_COMPAT_DIR"
4374
  )
4375
  settingbar --text="Deletion is in progress. Please wait..." wine_rm
4376
  if [ -f "/tmp/WINEINUSEDEL$WGUIDW" ]
 
4378
  if [[ -n "$(ls -1 -t "$LW_WINE_DIR" 2>/dev/null|grep -v '.*.tar.*'|head -1)" || -n "$SYS_WINE" ]]
4379
  then
4380
  print_info notify "Removed Wine which was selected by default!"
4381
+ WINEINUSEDEL=1 check_def_wine
4382
  else
4383
  print_info notify "Removed Wine which was selected by default! Wine is not installed, you must download Wine!"
4384
  try_rm "/tmp/WINEINUSEDEL$WGUIDW" &>/dev/null
 
4553
  then
4554
  if is_exe_exist gamemoderun
4555
  then
4556
+ print_info "GAMEMODE is enabled!"
4557
  export RUN_GAMEMODE="gamemoderun"
4558
  else
4559
  print_error yad "GAMEMODE not found in your system!"
4560
  unset RUN_GAMEMODE
4561
  fi
4562
  else
 
4563
  unset RUN_GAMEMODE
4564
  fi
4565
  }
 
5098
 
5099
  winepfx_init() {
5100
  print_info notify "Lux Wine prefix initialization..."
5101
+ if [[ -f "$LWRAP_DEFPFX" && "$WINEARCH" == "win64" ]] && \
5102
+ print_question "Do you want to restore the default prefix backup for the new prefix?"
5103
+ then
5104
+ mkdir -p "$WINEPREFIX"
5105
+ unpack_squash "$LWRAP_DEFPFX" \
5106
+ "$(dirname "$WINEPREFIX")" \
5107
+ "$(basename "$WINEPREFIX")"
5108
+ [ "$?" == 0 ] && PFXINITOK=1
5109
+ else
5110
+ check_wine_pids
5111
+ [[ ! -n "$WINE_PIDS" && -n "$OLD_WINE" ]] && unset OLD_WINE
5112
+ check_ld_library
5113
+ if [[ -n "$OLD_WINE" && -f "$OLD_WINE" ]]
5114
+ then
5115
+ DISABLE_MANGOHUD=1 DISABLE_VKBASALT=1 "$OLD_WINE" wineboot -i &>/dev/null
5116
+ [ "$?" == 0 ] && PFXINITOK=1
5117
+ export LD_LIBRARY_PATH="$SYS_LDLIBPTH"
5118
+ elif [ -f "$WINE" ]
5119
+ then
5120
+ DISABLE_MANGOHUD=1 DISABLE_VKBASALT=1 "$WINE" wineboot -i &>/dev/null
5121
+ [ "$?" == 0 ] && PFXINITOK=1
5122
+ export LD_LIBRARY_PATH="$SYS_LDLIBPTH"
5123
+ fi
5124
  fi
5125
  if [ -n "$PFXINITOK" ]
5126
  then
 
5175
  [ -n "$2" ] && export WINEARCH="$2"
5176
  WPFX_STEAMUSER_DIR="$WINEPREFIX/drive_c/users/steamuser"
5177
  if ! is_winepfx "$WINEPREFIX" && [ "$WINEARCH" == "win64" ] && \
5178
+ [[ "$(basename "$WINEPREFIX")" == 'defprefix' && -f "$LWRAP_DEFPFX" ]]
5179
  then
5180
  DEFPFXRESTORE=1 NO_FLMGR=1 lu_pfxrestore "$LWRAP_DEFPFX"
5181
  export NEEDCHKDLL=1
 
5502
  }
5503
 
5504
  check_terminal() {
5505
+ [ "$NOT_TERM" != 1 ] && return
5506
  [ -n "$1" ] && export LW_TERM_APP="$1"
5507
+ grep -qo 'console'<<<"$START_FLINFO" && \
5508
+ export TERMINAL=1
5509
  check_hold_terminal
5510
  if [[ -n "$LW_TERM_APP" && -n "$(which_exe "$(basename "$LW_TERM_APP")" 2>/dev/null)" ]]
5511
  then
 
5706
  [ -n "$1" ] && export CPU_LIMIT="$1"
5707
  if [[ -n "$CPU_LIMIT" && "$CPU_LIMIT" != 0 ]]
5708
  then
5709
+ local cores="$(( $CPU_LIMIT - 1 ))"
5710
+ export RUN_CPU_LIMIT="taskset -c 0-$cores"
5711
+ export WINE_CPU_TOPOLOGY="$CPU_LIMIT:$(seq -s',' 0 $cores)"
5712
  print_info notify "The application will be launched with a CPU limitation"
5713
  fi
5714
  }
 
6067
  export -f print_var print_error print_info check_tray check_wine_pids check_luwine_pid check_vkd3dconfig try_rm check_themes import_cenv sedspaces \
6068
  check_luwine_sh_pid check_exes check_compositor try_mkdir check_symlink check_netcore try_download check_cpu_limit ld_lib_upd wait_kill_exe \
6069
  unpack_tar_xz unpack_tar_gz unpack_tar shell_is_death exe_is_death exes_is_death wine_is_death try_cp check_us_switcher check_proton_d3dlib \
6070
+ compositor_sw check_winetricks check_musthave_dll check_other_fixes wdllover_upd reg_edit exe2png gamma_sw vkd3dcfg_upd check_downloader ipath \
6071
  create_shortcut lu_debug clear_log dis_debug_msg dis_cmd_msg import_luwine_wcfg check_def_wine lu_prerun lu_run lu_prestart try_mv path_upd select_lwpfx \
6072
  lu_start lu_cmd lu_shell lu_regedit lu_control lu_winecfg lu_taskmgr lu_uninstaller winetricks lu_openpfx lu_exit lu_killshell check_dxr winepfx_init \
6073
  lu_killtray lu_killwine lu_killexe lu_clearpfx lu_rmapp lu_shortcut lu_explorer lu_help lu_version lu_tray lu_winemgr updcfgchksum lite_init \
 
6082
  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 \
6083
  check_display check_restore_resol resol_sw check_restore_gamma dis_displ_sw restore_resol check_virt_desktop check_vkbasalt_cfg check_exe_args \
6084
  check_wine_nvml check_resizable_bar check_latencyflex get_proton_d3dlib makesquash_zstd makesquash_xz lu_pfxbackup lu_pfxrestore lu_backupmnt lu_backupunmnt \
6085
+ check_dxvk_async check_vsync get_wine_git_lst try_dl_install_wine exeargs_parse try_add_reg_cdrom shrt_loop shrt_from_url shrt_from_lnk check_shrt
6086
  }
6087
 
6088
  initbar() {
 
6143
  lu_appcfg() {
6144
  if [ ! -n "$(pgrep -fa yad|grep "Applications Settings"|awk '{print$1}')" ]; then :
6145
  else
6146
+ print_error yad "Applications Settings" "Lux Wine Applications Settings already runing!"
6147
  exit 1
6148
  fi
6149
+ openconfig() {
6150
+ shift ; [ "$1" ] && exe_args_add "$@"
6151
+ cleanrun "$LW_SOURCE" -config "$LU_EXE" "${EXE_ARGS[@]}"
6152
+ }
6153
+ rm_allappscfg() {
6154
+ if print_question "Applications Settings" \
6155
+ "Are you sure you want to reset all Lux Wine applications config files?"
6156
+ then
6157
+ (IFS=$'\n' ; for RMLWAPPCFG in $(ls -1 -t "$LW_APPCFG_DIR"/*.wcfg 2>/dev/null)
6158
+ do
6159
+ rm -f "$(readlink -f "$RMLWAPPCFG")"
6160
+ rm -f "$RMLWAPPCFG"
6161
+ done)
6162
+ print_info notify "Lux Wine applications config files deleted!"
6163
+ fi
6164
+ }
6165
+ shift
6166
  try_rm_broken_link "$LW_APPCFG_DIR"
6167
+ LWAPPSHRT="$(grep "Categories=Lux Wine Apps" -lr "$MENU_APPS_DIR" 2>/dev/null)"
6168
+ if [ -n "$(echo "$LWAPPSHRT"|head -1)" ]
6169
+ then
6170
+ if [[ "$1" =~ ^[0-9]+$ ]]
 
 
 
 
 
6171
  then
6172
+ APP_NAME="$(lsapps|awk '($1 == "'$1'")'|awk '{$1=""}1'|\
6173
+ sed 's|"||g'|sed 's|^ ||g')"
6174
+ if [ -n "$APP_NAME" ]
6175
+ then get_app_exe "$APP_NAME"
6176
+ else
6177
+ print_error yad "No app found with this number!"
6178
+ return 1
6179
+ fi
6180
+ else
6181
+ if [ "${1,,}" == "resetall" ]
6182
+ then rm_allappscfg ; return $?
6183
+ else [ -n "$1" ] && APP_NAME="$1"
6184
+ fi
6185
+ fi
6186
+ grep -qiom1 "^Name=$APP_NAME$" -lr "$MENU_APPS_DIR" 2>/dev/null && \
6187
+ get_app_exe "$APP_NAME"
6188
+ if [[ -n "$(grep -Eiom1 '\.exe$|\.bat$'<<<"$LU_EXE")" ]]
6189
+ then openconfig "$@"
6190
+ else
6191
+ LW_APP_SETT="$(echo -e "\n$(echo "$LWAPPSHRT"|xargs -d "\n" -I {} grep -m1 "^Name=" {}|\
6192
+ sed 's|^Name=||g'|sort -u|sed ':a;N;$!ba;s/\n/\n\n/g')"|\
6193
+ yad --title "Applications Settings" --list --radiolist --separator "\n" \
6194
+ --column="" --column="Select app for open settings:" \
6195
+ --text-align=center --center --window-icon="$LW_DEF_ICO" \
6196
+ --width=400 --height=500 \
6197
+ --button="RESET ALL:2" --button="EXIT:1" --button="OK:0" 2>/dev/null)"
6198
+ if [ "$?" == "2" ]
6199
+ then rm_allappscfg
6200
+ elif [ -n "$(head -1<<<"$LW_APP_SETT")" ]
6201
  then
6202
+ get_app_exe "$(sed '/^TRUE$/d;/^$/d'<<<"$LW_APP_SETT")"
6203
+ openconfig "$@"
6204
+ else return 1
 
 
 
6205
  fi
 
 
 
 
 
 
 
6206
  fi
6207
  else
6208
+ print_error yad "Applications Settings" "Lux Wine applications not found!"
6209
  fi
6210
  }
6211
 
 
6588
  sed 's|"||g'|sed 's|^ ||g')"
6589
  if [ -n "$APP_NAME" ]
6590
  then get_app_exe "$APP_NAME"
6591
+ else
6592
+ print_error yad "No app found with this number!"
6593
+ return 1
6594
  fi
6595
  else get_app_exe "$1"
6596
  fi
6597
  if [ ! -n "$LU_EXE" ]
6598
  then
6599
  print_error yad "No launch application found!"
6600
+ return 1
6601
  fi
6602
  shift
6603
  cleanrun env LWPPID="$LWPPID" "$LW_SOURCE" "$LU_EXE" "${EXE_ARGS[@]}" "$@"
6604
  else
6605
  print_error yad "Specify App for launch!"
6606
+ return 1
6607
  fi
6608
  }
6609
 
 
6752
  -killshell) lu_killshell "$@" ;;
6753
  -exit) lu_exit "$@" ;;
6754
  -clearpfx) lu_clearpfx "$@" ;;
6755
+ -rmapp) lu_rmapp "$@" ;;
6756
  -shortcut) lu_shortcut ;;
6757
  -help) lu_help ;;
6758
  -version) lu_version ;;
6759
  -tray) lu_tray ;;
6760
  -update) lu_update "$@" ;;
6761
  -config) lu_config ;;
6762
+ -appcfg) lu_appcfg "$@" ;;
6763
  -pfxbackup) lu_pfxbackup "$@" ;;
6764
  -pfxrestore) lu_pfxrestore ;;
6765
  -backupmnt) lu_backupmnt ;;
lwrap/PKGBUILD CHANGED
@@ -2,13 +2,13 @@
2
 
3
  pkgname='lwrap'
4
  pkgver='0.78.3'
5
- pkgrel='2'
6
  pkgdesc='Lux Wine wrapper for RunImage container'
7
  arch=('x86_64')
8
  url='https://github.com/VHSgunzo/lux-wine'
9
  license=('MIT')
10
  depends=(
11
- 'aria2' 'qt5-tools' 'xterm' 'xorg-fonts-100dpi' 'xorg-fonts-75dpi' 'firefox' 'intel-media-driver'
12
  'xorg-fonts-cyrillic' 'xorg-fonts-type1' 'xorg-fonts-misc' 'cabextract' 'exo' 'xapp' 'pulseaudio'
13
  'perl' 'unzip' 'xorg-xmessage' 'yad' 'xkb-switch' 'imagemagick' 'qt5ct' 'syslog-ng'
14
  'icoextract' 'lib32-vkbasalt' 'mangohud' 'lib32-mangohud' 'latencyflex-wine-git' 'steam' 'gamescope'
@@ -33,7 +33,7 @@ depends=(
33
  'dos2unix' 'lw-runtime' 'wine-gecko' 'wine-mono' 'libdvdread' 'a52dec' 'wavpack' 'lib32-wavpack'
34
  'libmpeg2' 'twolame' 'lib32-twolame' 'gst-plugin-msdk' 'lib32-libdv' 'libdv' 'GE-Proton'
35
  'xxd-standalone' 'obs-vkcapture-lw' 'lib32-obs-vkcapture-lw' 'egl-wayland' 'gstreamer-vaapi'
36
- 'moninfo' 'perl-image-exiftool' 'xorg-xlsfonts'
37
  )
38
  optdepends=(
39
  'xf86-video-amdgpu' 'xf86-video-intel' 'llvm'
 
2
 
3
  pkgname='lwrap'
4
  pkgver='0.78.3'
5
+ pkgrel='3'
6
  pkgdesc='Lux Wine wrapper for RunImage container'
7
  arch=('x86_64')
8
  url='https://github.com/VHSgunzo/lux-wine'
9
  license=('MIT')
10
  depends=(
11
+ 'aria2' 'qt5-tools' 'xterm' 'xorg-fonts-100dpi' 'xorg-fonts-75dpi' 'intel-media-driver'
12
  'xorg-fonts-cyrillic' 'xorg-fonts-type1' 'xorg-fonts-misc' 'cabextract' 'exo' 'xapp' 'pulseaudio'
13
  'perl' 'unzip' 'xorg-xmessage' 'yad' 'xkb-switch' 'imagemagick' 'qt5ct' 'syslog-ng'
14
  'icoextract' 'lib32-vkbasalt' 'mangohud' 'lib32-mangohud' 'latencyflex-wine-git' 'steam' 'gamescope'
 
33
  'dos2unix' 'lw-runtime' 'wine-gecko' 'wine-mono' 'libdvdread' 'a52dec' 'wavpack' 'lib32-wavpack'
34
  'libmpeg2' 'twolame' 'lib32-twolame' 'gst-plugin-msdk' 'lib32-libdv' 'libdv' 'GE-Proton'
35
  'xxd-standalone' 'obs-vkcapture-lw' 'lib32-obs-vkcapture-lw' 'egl-wayland' 'gstreamer-vaapi'
36
+ 'moninfo' 'perl-image-exiftool' 'xorg-xlsfonts' 'chromium'
37
  )
38
  optdepends=(
39
  'xf86-video-amdgpu' 'xf86-video-intel' 'llvm'
lwrap/lwrap.install CHANGED
@@ -48,6 +48,9 @@ post_upgrade() {
48
  pac -Q vulkan-virtio &>/dev/null && \
49
  pkg_tool 'yes|pac -Rdd vulkan-virtio lib32-vulkan-virtio'
50
 
 
 
 
51
  return 0
52
  }
53
 
 
48
  pac -Q vulkan-virtio &>/dev/null && \
49
  pkg_tool 'yes|pac -Rdd vulkan-virtio lib32-vulkan-virtio'
50
 
51
+ pac -Q firefox &>/dev/null && \
52
+ pkg_tool 'yes|pac -Rdd firefox'
53
+
54
  return 0
55
  }
56
 
main.zip CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:1bc03f6400f822c34fb587f90917ad6e1949dc95d77216cfd025e387f71c2d39
3
- size 585462
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a7ee39af5b46df9dab0b3a8d0686f903d19454fefde7385fdf1db11b7a7e65df
3
+ size 586536