VHSgunzo commited on
Commit
90a73fa
·
1 Parent(s): fc7e3a7
CHANGELOG.md CHANGED
@@ -1,3 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  # v0.78.4.5
2
 
3
  * HotFix menu apps LW categories icon
 
1
+ # v0.78.4.6
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.4) `v9.4`
5
+ * Update `wine-staging` (System) in container to `v9.6`
6
+ * Remove DB script for `Caliber`
7
+ * Remove DB script for `setup`
8
+ * Update DB script for `Need for Speed Underground`
9
+ * Update DB script for `Need for Speed Underground 2`
10
+ * Update DB script for `Need for Speed Most Wanted`
11
+ * Update DB script for `Need for Speed Carbon`
12
+ * Add install LW from container if couldn't download from the internet
13
+ * Fix install with `wget2`
14
+ * Fix install with `aria2` if user config exist
15
+ * Add `Controllermap` to `Settings`
16
+ * Add `SDL_GAMECONTROLLERCONFIG` to `Settings`
17
+ * Add `Gamescope` to `Settings`
18
+
19
  # v0.78.4.5
20
 
21
  * HotFix menu apps LW categories icon
README.md CHANGED
@@ -154,6 +154,8 @@ lwrun --uninstall
154
  - [x] AMD FidelityFX Contrast Adaptive Sharpening settings (depends on [VkBasalt](https://github.com/DadSchoorse/vkBasalt/releases))
155
  - [x] [Gstreamer](https://github.com/GStreamer/gstreamer) (if Wine support)
156
  - [x] [GameMode](https://github.com/FeralInteractive/gamemode/releases)
 
 
157
  - [x] Esync
158
  - [x] Fsync (if linux kernel support)
159
  - [x] Vsync settings
 
154
  - [x] AMD FidelityFX Contrast Adaptive Sharpening settings (depends on [VkBasalt](https://github.com/DadSchoorse/vkBasalt/releases))
155
  - [x] [Gstreamer](https://github.com/GStreamer/gstreamer) (if Wine support)
156
  - [x] [GameMode](https://github.com/FeralInteractive/gamemode/releases)
157
+ - [x] [Gamescope](https://github.com/ValveSoftware/gamescope)
158
+ - [x] [controllermap](https://aur.archlinux.org/packages/controllermap)
159
  - [x] Esync
160
  - [x] Fsync (if linux kernel support)
161
  - [x] Vsync settings
db/Caliber.lwdb DELETED
@@ -1 +0,0 @@
1
- CaliberSetup.lwdb
 
 
db/CaliberSetup.lwdb DELETED
@@ -1,8 +0,0 @@
1
- #DB# Caliber # DB_EXES=('CaliberSetup.exe' 'Caliber.exe' 'CaliberStart.exe' 'launcher.exe')
2
-
3
- WIN_VER=10
4
- WINEARCH=win64
5
- WINE_VERSION=System
6
- USE_DEFPFX_BACKUP=1
7
- MUST_HAVE_DLL=Disabled
8
- WPREFIX_NAME=syswinepfx
 
 
 
 
 
 
 
 
 
db/CaliberStart.lwdb DELETED
@@ -1 +0,0 @@
1
- CaliberSetup.lwdb
 
 
db/LeagueClient.lwdb CHANGED
@@ -14,7 +14,7 @@ EXE_ARGS=(--launch-product=league_of_legends --launch-patchline=live)
14
  pfxsetupfl="$LW_DEF_WPFXS_DIR/$WPREFIX_NAME/.setup"
15
  if [ ! -f "$pfxsetupfl" ]
16
  then
17
- source "$LW_DB_DIR/setup.lwdb"
18
  pre_launch() {
19
  touch "$pfxsetupfl"
20
  (if [ "$EXE_NAME" == "LeagueClient" ]
 
14
  pfxsetupfl="$LW_DEF_WPFXS_DIR/$WPREFIX_NAME/.setup"
15
  if [ ! -f "$pfxsetupfl" ]
16
  then
17
+ WINE_VERSION=System
18
  pre_launch() {
19
  touch "$pfxsetupfl"
20
  (if [ "$EXE_NAME" == "LeagueClient" ]
db/[EXE_NAMES].lwdb CHANGED
@@ -1,8 +1,6 @@
1
  case "${EXE_NAME,,}" in
2
  *'league of legends'*)
3
  EXE_LWDBFL="$LW_DB_DIR/LeagueClient.lwdb" ;;
4
- gog_galaxy*)
5
- EXE_LWDBFL="$LW_DB_DIR/setup.lwdb" ;;
6
  wemod-*)
7
  EXE_LWDBFL="$LW_DB_DIR/WeMod.lwdb" ;;
8
  zonasetup*)
 
1
  case "${EXE_NAME,,}" in
2
  *'league of legends'*)
3
  EXE_LWDBFL="$LW_DB_DIR/LeagueClient.lwdb" ;;
 
 
4
  wemod-*)
5
  EXE_LWDBFL="$LW_DB_DIR/WeMod.lwdb" ;;
6
  zonasetup*)
db/launcher.lwdb CHANGED
@@ -1,6 +1,5 @@
1
  #DB# Crossout # DB_EXES=('launcher.exe')
2
  #DB# Dark Sector # DB_EXES=('DS.exe' 'launcher.exe')
3
- #DB# Caliber # DB_EXES=('CaliberSetup.exe' 'Caliber.exe' 'CaliberStart.exe' 'launcher.exe')
4
  #DB# Honkai: Star Rail # DB_EXES=('launcher.exe') !'StarRail.exe'
5
 
6
  srlauncher() {
@@ -53,7 +52,3 @@ pre_launch() {
53
  }
54
 
55
  WIN_VER=10
56
-
57
- case "$EXE_DIR" in
58
- Caliber) source "$LW_DB_DIR/CaliberSetup.lwdb" ;;
59
- esac
 
1
  #DB# Crossout # DB_EXES=('launcher.exe')
2
  #DB# Dark Sector # DB_EXES=('DS.exe' 'launcher.exe')
 
3
  #DB# Honkai: Star Rail # DB_EXES=('launcher.exe') !'StarRail.exe'
4
 
5
  srlauncher() {
 
52
  }
53
 
54
  WIN_VER=10
 
 
 
 
db/setup.lwdb DELETED
@@ -1,5 +0,0 @@
1
- #DB# Setup # DB_EXES=('setup.exe')
2
- #DB# GOG Galaxy # DB_EXES=('gog_galaxy.*.exe')
3
- #DB# League of Legends # DB_EXES=('live.na.exe' 'LeagueClient.exe' 'RiotClientServices.exe' '.*league of legends.*')
4
-
5
- WINE_VERSION=System
 
 
 
 
 
 
db/speed.lwdb CHANGED
@@ -15,8 +15,8 @@ set_syswine() {
15
  }
16
 
17
  case "$EXE_DIR" in
18
- 'Need for Speed Most Wanted'|\
19
- 'Need for Speed Carbon') set_syswine ;;
20
- 'Need for Speed Underground'|\
21
- 'Need for Speed Underground 2') set_syswine ; WD3DMODE=WineD3D ;;
22
  esac
 
15
  }
16
 
17
  case "$EXE_DIR" in
18
+ 'Need for Speed'*'Most Wanted'|\
19
+ 'Need for Speed'*'Carbon') set_syswine ;;
20
+ 'Need for Speed'*'Underground'|\
21
+ 'Need for Speed'*'Underground 2') set_syswine ; WD3DMODE=WineD3D ;;
22
  esac
index.html CHANGED
@@ -395,6 +395,17 @@ try_dl_lwzip() {
395
  }
396
 
397
  install_lw() {
 
 
 
 
 
 
 
 
 
 
 
398
  rm_tmplw() { [[ -d "$TMP_LW" || -f "$TMP_LW.zip" ]] && rm -rf "$TMP_LW"* ; }
399
  TMP_LW="/tmp/lux-wine.$RANDOM"
400
  if [ "$1" != "local" ] && \
@@ -407,15 +418,9 @@ install_lw() {
407
  cd "$TMP_LW/lux-wine-main" && \
408
  make_install "$1"
409
  rm_tmplw)
 
410
  fi
411
- elif [ -d "/opt/lwrap" ]
412
- then
413
- info_msg "Installing Lux Wine from container..."
414
- (mkdir -p "$TMP_LW" && \
415
- cp -rf "/opt/lwrap"/!(runtime.tar.zst|prefix_backups) "$TMP_LW" && \
416
- cd "$TMP_LW" && \
417
- make_install "$1"
418
- rm_tmplw)
419
  fi
420
  if is_lw
421
  then info_msg "Lux Wine installed!"
@@ -770,6 +775,7 @@ try_dl() {
770
  fi
771
  if is_url "$URL"
772
  then
 
773
  [ ! -d "$FILEDIR" ] && \
774
  mkdir -p "$FILEDIR"
775
  if [[ "$NOT_TERM" == 1 && "$NO_DL_GUI" != 1 ]] && \
@@ -793,26 +799,62 @@ try_dl() {
793
  else return 1
794
  fi
795
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
796
  if [ "$NO_ARIA2C" != 1 ] && \
797
  is_exe_exist aria2c
798
  then
799
- aria2c -R -x 13 -s 13 --allow-overwrite --summary-interval=1 -o \
800
  "$FILENAME" -d "$FILEDIR" "$URL"|grep --line-buffered 'ETA'|\
801
  sed -u 's|(.*)| &|g;s|(||g;s|)||g;s|\[||g;s|\]||g'|\
802
  awk '{print$3"\n#Downloading at "$3,$2,$5,$6;system("")}'|\
803
  dl_progress
804
- elif is_exe_exist wget
805
- then
806
- wget --no-check-certificate --content-disposition -t 3 -T 5 \
807
- -w 0.5 "$URL" -O "$FILEDIR/$FILENAME"|& tr '\r' '\n'|\
808
- sed -u 's/.* \([0-9]\+%\)\ \+\([0-9,.]\+.\) \(.*\)/\1\n#Downloading at \1\ ETA: \3/; s/^20[0-9][0-9].*/#Done./'|\
809
- dl_progress
810
  elif is_exe_exist curl
811
  then
812
  curl -R --progress-bar --insecure --fail -L "$URL" -o \
813
  "$FILEDIR/$FILENAME" |& tr '\r' '\n'|\
814
  sed -ur 's|[# ]+||g;s|.*=.*||g;s|.*|#Downloading at &\n&|g'|\
815
  dl_progress
 
 
 
 
 
 
 
 
816
  else
817
  err_no_downloader
818
  fi
@@ -820,14 +862,16 @@ try_dl() {
820
  else
821
  if [ "$NO_ARIA2C" != 1 ] && is_exe_exist aria2c
822
  then
823
- aria2c -R -x 13 -s 13 --allow-overwrite -d "$FILEDIR" -o "$FILENAME" "$URL"
824
- elif is_exe_exist wget
825
- then
826
- wget -q --show-progress --no-check-certificate --content-disposition \
827
- -t 3 -T 5 -w 0.5 "$URL" -O "$FILEDIR/$FILENAME"
828
  elif is_exe_exist curl
829
  then
830
  curl -R --progress-bar --insecure --fail -L "$URL" -o "$FILEDIR/$FILENAME"
 
 
 
 
 
 
831
  else
832
  err_no_downloader
833
  fi
 
395
  }
396
 
397
  install_lw() {
398
+ install_local_lw() {
399
+ if [ -d "/opt/lwrap" ]
400
+ then
401
+ info_msg "Installing Lux Wine from container..."
402
+ (mkdir -p "$TMP_LW" && \
403
+ cp -rf "/opt/lwrap"/!(runtime.tar.zst|prefix_backups) "$TMP_LW" && \
404
+ cd "$TMP_LW" && \
405
+ make_install "$1"
406
+ rm_tmplw)
407
+ fi
408
+ }
409
  rm_tmplw() { [[ -d "$TMP_LW" || -f "$TMP_LW.zip" ]] && rm -rf "$TMP_LW"* ; }
410
  TMP_LW="/tmp/lux-wine.$RANDOM"
411
  if [ "$1" != "local" ] && \
 
418
  cd "$TMP_LW/lux-wine-main" && \
419
  make_install "$1"
420
  rm_tmplw)
421
+ else install_local_lw "$1"
422
  fi
423
+ else install_local_lw "$1"
 
 
 
 
 
 
 
424
  fi
425
  if is_lw
426
  then info_msg "Lux Wine installed!"
 
775
  fi
776
  if is_url "$URL"
777
  then
778
+ WGET_ARGS=(-q --no-check-certificate --content-disposition -t 3 -T 5 -w 0.5 "$URL" -O "$FILEDIR/$FILENAME")
779
  [ ! -d "$FILEDIR" ] && \
780
  mkdir -p "$FILEDIR"
781
  if [[ "$NOT_TERM" == 1 && "$NO_DL_GUI" != 1 ]] && \
 
799
  else return 1
800
  fi
801
  }
802
+ dl_progress_pulsate() {
803
+ local ret=1
804
+ [[ "$URL" =~ '&key=' ]] && \
805
+ local URL="$(echo "$URL"|sed "s|\&key=.*||g")"
806
+ [[ "$URL" =~ '&' && ! "$URL" =~ '&' ]] && \
807
+ local URL="$(echo "$URL"|sed "s|\&|\&|g")"
808
+ if is_exe_exist yad
809
+ then
810
+ local yad_args=(
811
+ --progress --pulsate --text="Download:\t$FILENAME\n$URL"
812
+ --width=650 --height=40 --undecorated --skip-taskbar
813
+ --no-buttons --text-align center --auto-close --auto-kill
814
+ --center --fixed --on-top --no-escape --selectable-labels
815
+ )
816
+ "$@" &
817
+ local exec_pid="$!"
818
+ if [[ -n "$exec_pid" && -d "/proc/$exec_pid" ]]
819
+ then
820
+ (while [ -d "/proc/$exec_pid" ]
821
+ do echo -e "#\n" ; sleep 0.1 2>/dev/null
822
+ done)|yad "${yad_args[@]}" &>/dev/null &
823
+ local yad_pid="$!"
824
+ wait "$exec_pid" &>/dev/null
825
+ ret="$?"
826
+ kill "$yad_pid" &>/dev/null
827
+ fi
828
+ elif is_exe_exist zenity
829
+ then
830
+ "$@"|zenity --progress --pulsate --text="$URL" --width=650 --height=40 \
831
+ --auto-close --no-cancel --title="Download: $FILENAME"
832
+ ret="$?"
833
+ fi
834
+ return "$ret"
835
+ }
836
  if [ "$NO_ARIA2C" != 1 ] && \
837
  is_exe_exist aria2c
838
  then
839
+ aria2c --no-conf -R -x 13 -s 13 --allow-overwrite --summary-interval=1 -o \
840
  "$FILENAME" -d "$FILEDIR" "$URL"|grep --line-buffered 'ETA'|\
841
  sed -u 's|(.*)| &|g;s|(||g;s|)||g;s|\[||g;s|\]||g'|\
842
  awk '{print$3"\n#Downloading at "$3,$2,$5,$6;system("")}'|\
843
  dl_progress
 
 
 
 
 
 
844
  elif is_exe_exist curl
845
  then
846
  curl -R --progress-bar --insecure --fail -L "$URL" -o \
847
  "$FILEDIR/$FILENAME" |& tr '\r' '\n'|\
848
  sed -ur 's|[# ]+||g;s|.*=.*||g;s|.*|#Downloading at &\n&|g'|\
849
  dl_progress
850
+ elif is_exe_exist wget2
851
+ then
852
+ dl_progress_pulsate wget2 "${WGET_ARGS[@]}"
853
+ elif is_exe_exist wget
854
+ then
855
+ wget "${WGET_ARGS[@]}"|& tr '\r' '\n'|\
856
+ sed -u 's/.* \([0-9]\+%\)\ \+\([0-9,.]\+.\) \(.*\)/\1\n#Downloading at \1\ ETA: \3/; s/^20[0-9][0-9].*/#Done./'|\
857
+ dl_progress
858
  else
859
  err_no_downloader
860
  fi
 
862
  else
863
  if [ "$NO_ARIA2C" != 1 ] && is_exe_exist aria2c
864
  then
865
+ aria2c --no-conf -R -x 13 -s 13 --allow-overwrite -d "$FILEDIR" -o "$FILENAME" "$URL"
 
 
 
 
866
  elif is_exe_exist curl
867
  then
868
  curl -R --progress-bar --insecure --fail -L "$URL" -o "$FILEDIR/$FILENAME"
869
+ elif is_exe_exist wget2
870
+ then
871
+ wget2 --force-progress "${WGET_ARGS[@]}"
872
+ elif is_exe_exist wget
873
+ then
874
+ wget --show-progress "${WGET_ARGS[@]}"
875
  else
876
  err_no_downloader
877
  fi
lux-wine CHANGED
@@ -1,6 +1,6 @@
1
  #!/usr/bin/env bash
2
 
3
- export LW_VERSION="0.78.4.5"
4
  export LW_DEVELOPERS="VHSgunzo"
5
 
6
  export RED='\033[1;91m'
@@ -2262,7 +2262,7 @@ lu_run() {
2262
  [[ "$E_EXE_ARGS" =~ ^declare ]] && eval "$E_EXE_ARGS"
2263
  [[ "$E_EXE_WRAPPER" =~ ^declare ]] && eval "$E_EXE_WRAPPER"
2264
  $RUN_VKCAPTURE $RUN_FPSLIMIT $RUN_GAMEMODE $RUN_MANGOHUD $RUN_CPU_LIMIT \
2265
- "$WINE" $RUN_VDESKTOP "${EXE_WRAPPER[@]}" "${LU_EXEC[@]}" "${EXE_ARGS[@]}"
2266
  }
2267
  exec_wine_with_dbg_log() { echo_dbg|& tee -a "$LOG_FILE" ; exec_wine|& tee -a "$LOG_FILE" ; }
2268
  exec_wine_with_log() { echo_dbg ; exec_wine|& tee -a "$LOG_FILE" ; }
@@ -2780,6 +2780,7 @@ full_init() {
2780
  check_themes
2781
  check_cpu_limit
2782
  check_fps_limit
 
2783
  check_us_switcher
2784
  check_restore_gamma
2785
  check_restore_resol
@@ -2882,6 +2883,7 @@ lu_config() {
2882
  MANGOHUDLST="Enabled \n DLSYM \n Disabled"
2883
  VKCAPTURELST="Vulkan \n OpenGL \n Disabled"
2884
  GTKTHEMELST="Adwaita:dark \n Adwaita \n $(ls -1 "$HOME/.themes" 2>/dev/null)"
 
2885
  lwconfig_save() {
2886
  LWCFGVAR="WINE_VERSION WIN_VER WINEARCH WINEPREFIX WINE_THEME WDLLOVER WMONOVER WD3DMODE DISABLE_NVAPI WINE_DXGI D3D_EXTRAS DGVOODOO2 \
2887
  DXVK_VERSION VKD3D_VERSION DXVK_NVAPI_VERSION D3D_EXTRAS_VERSION DGVOODOO2_VERSION WINE_NVML_VERSION VKD3DCFG MUST_HAVE_DLL \
@@ -2891,7 +2893,7 @@ lu_config() {
2891
  LOADBAR LOADBARGIF CHKSTEAMAPPS LW_STEAMAPPS_DIR CHECK_LW_APPS GTK_THEME LOG DEBUG SYS_WINETRICKS CPU_LIMIT CMPRSS_METHOD ZSTD_CMPRSS_LVL \
2892
  DIS_OTH_DISPL RESTORE_RESOL RESTORE_GAMMA DIS_COPMOSITOR RESET_PULSE PULSE_LTCY TERMINAL HOLD_TERMINAL LW_TERM_APP \
2893
  LW_DOWNLOADER AUTOSTART_TRAY US_LAYOUT VKBASALT VKBASALT_FFX_CAS VKICDFILES GAMEMODE LWMANGOHUD MANGOHUD_USER_CONF FPS_LIMIT \
2894
- VSYNC LWVKCAPTURE NVPRIME DRIPRIME"
2895
  WCFGOUT="$(while read CFGVAR <&3 && read CFGPARAM <&4
2896
  do
2897
  [ -n "$(echo "$CFGPARAM"|sed "s|''||")" ] && \
@@ -3065,6 +3067,8 @@ lu_config() {
3065
  --field="OBS-VkCapture::CB" "$(cfg_items "$LWVKCAPTURE" "$VKCAPTURELST")" \
3066
  --field="NVIDIA Prime Render Offload:CHK" "$NVPRIME" \
3067
  --field="DRI_PRIME:CHK" "$DRIPRIME" \
 
 
3068
  --file-filter="All Files | *.*" \
3069
  1> /tmp/syssett$LWCFGKEY &
3070
 
@@ -3148,6 +3152,7 @@ lu_config() {
3148
  --field="Kill SHELL:FBTN" "$LWSHELL -c 'lu_killshell'" \
3149
  --field="Kill tray:FBTN" "$LWSHELL -c 'lu_killtray'" \
3150
  --field="Force Exit:FBTN" "$LWSHELL -c 'lu_exit'" \
 
3151
  &>/dev/null &
3152
 
3153
  check_exes
@@ -3254,25 +3259,63 @@ lu_config() {
3254
  SETTBTN="$(cat "/tmp/settbtn$LWCFGKEY")"
3255
  try_rm "/tmp/settbtn$LWCFGKEY"
3256
  case $SETTBTN in
3257
- winemgr) lu_winemgr
3258
- btntls_run ;;
3259
-
3260
- clearpfx) lu_clearpfx
3261
- sleep 0.5
3262
- btntls_run ;;
3263
-
3264
- update) lu_update
3265
- btntls_run ;;
3266
-
3267
- winetricks) btntls_run -winetricks ;;
3268
-
3269
- init) btntls_run -init ;;
3270
-
3271
- pfxbackup) btntls_run -pfxbackup ;;
3272
-
3273
- pfxrestore) btntls_run -pfxrestore ;;
3274
-
3275
- appcfg) LU_EXE= lu_appcfg ;;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3276
  esac
3277
  fi
3278
  }
@@ -5838,6 +5881,20 @@ check_cpu_limit() {
5838
  fi
5839
  }
5840
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5841
  check_vkd3dconfig() {
5842
  [ -n "$1" ] && export VKD3DCFG="$1"
5843
  if [[ -n "$VKD3DCFG" && "$VKD3DCFG" != "Disabled" ]]
@@ -6208,7 +6265,7 @@ export_all_functions() {
6208
  check_display check_restore_resol resol_sw check_restore_gamma dis_displ_sw restore_resol check_virt_desktop check_vkbasalt_cfg check_exe_args \
6209
  check_wine_nvml check_resizable_bar check_latencyflex get_proton_d3dlib makesquash_zstd makesquash_xz lu_pfxbackup lu_pfxrestore lu_backupmnt lu_backupunmnt \
6210
  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 \
6211
- get_shrt_data check_autostart_tray check_config_only
6212
  }
6213
 
6214
  initbar() {
 
1
  #!/usr/bin/env bash
2
 
3
+ export LW_VERSION="0.78.4.6"
4
  export LW_DEVELOPERS="VHSgunzo"
5
 
6
  export RED='\033[1;91m'
 
2262
  [[ "$E_EXE_ARGS" =~ ^declare ]] && eval "$E_EXE_ARGS"
2263
  [[ "$E_EXE_WRAPPER" =~ ^declare ]] && eval "$E_EXE_WRAPPER"
2264
  $RUN_VKCAPTURE $RUN_FPSLIMIT $RUN_GAMEMODE $RUN_MANGOHUD $RUN_CPU_LIMIT \
2265
+ $RUN_GAMESCOPE "$WINE" $RUN_VDESKTOP "${EXE_WRAPPER[@]}" "${LU_EXEC[@]}" "${EXE_ARGS[@]}"
2266
  }
2267
  exec_wine_with_dbg_log() { echo_dbg|& tee -a "$LOG_FILE" ; exec_wine|& tee -a "$LOG_FILE" ; }
2268
  exec_wine_with_log() { echo_dbg ; exec_wine|& tee -a "$LOG_FILE" ; }
 
2780
  check_themes
2781
  check_cpu_limit
2782
  check_fps_limit
2783
+ check_gamescope
2784
  check_us_switcher
2785
  check_restore_gamma
2786
  check_restore_resol
 
2883
  MANGOHUDLST="Enabled \n DLSYM \n Disabled"
2884
  VKCAPTURELST="Vulkan \n OpenGL \n Disabled"
2885
  GTKTHEMELST="Adwaita:dark \n Adwaita \n $(ls -1 "$HOME/.themes" 2>/dev/null)"
2886
+ GAMESCOPEARGSLST="Disabled \n -f \n -W 1920 -H 1080 -f \n -w 2560 -h 1440 -W 1920 -H 1080 -F fsr -f"
2887
  lwconfig_save() {
2888
  LWCFGVAR="WINE_VERSION WIN_VER WINEARCH WINEPREFIX WINE_THEME WDLLOVER WMONOVER WD3DMODE DISABLE_NVAPI WINE_DXGI D3D_EXTRAS DGVOODOO2 \
2889
  DXVK_VERSION VKD3D_VERSION DXVK_NVAPI_VERSION D3D_EXTRAS_VERSION DGVOODOO2_VERSION WINE_NVML_VERSION VKD3DCFG MUST_HAVE_DLL \
 
2893
  LOADBAR LOADBARGIF CHKSTEAMAPPS LW_STEAMAPPS_DIR CHECK_LW_APPS GTK_THEME LOG DEBUG SYS_WINETRICKS CPU_LIMIT CMPRSS_METHOD ZSTD_CMPRSS_LVL \
2894
  DIS_OTH_DISPL RESTORE_RESOL RESTORE_GAMMA DIS_COPMOSITOR RESET_PULSE PULSE_LTCY TERMINAL HOLD_TERMINAL LW_TERM_APP \
2895
  LW_DOWNLOADER AUTOSTART_TRAY US_LAYOUT VKBASALT VKBASALT_FFX_CAS VKICDFILES GAMEMODE LWMANGOHUD MANGOHUD_USER_CONF FPS_LIMIT \
2896
+ VSYNC LWVKCAPTURE NVPRIME DRIPRIME SDL_GAMECONTROLLERCONFIG GAMESCOPEARG"
2897
  WCFGOUT="$(while read CFGVAR <&3 && read CFGPARAM <&4
2898
  do
2899
  [ -n "$(echo "$CFGPARAM"|sed "s|''||")" ] && \
 
3067
  --field="OBS-VkCapture::CB" "$(cfg_items "$LWVKCAPTURE" "$VKCAPTURELST")" \
3068
  --field="NVIDIA Prime Render Offload:CHK" "$NVPRIME" \
3069
  --field="DRI_PRIME:CHK" "$DRIPRIME" \
3070
+ --field="SDL GAMECONTROLLER CONFIG:CBE" "$SDL_GAMECONTROLLERCONFIG" \
3071
+ --field="Gamescope arguments:CBE" "$(cfg_items "$GAMESCOPEARG" "$GAMESCOPEARGSLST")" \
3072
  --file-filter="All Files | *.*" \
3073
  1> /tmp/syssett$LWCFGKEY &
3074
 
 
3152
  --field="Kill SHELL:FBTN" "$LWSHELL -c 'lu_killshell'" \
3153
  --field="Kill tray:FBTN" "$LWSHELL -c 'lu_killtray'" \
3154
  --field="Force Exit:FBTN" "$LWSHELL -c 'lu_exit'" \
3155
+ --field="Controllermap:FBTN" "$LWSHELL -c 'btn_tools controllermap'" \
3156
  &>/dev/null &
3157
 
3158
  check_exes
 
3259
  SETTBTN="$(cat "/tmp/settbtn$LWCFGKEY")"
3260
  try_rm "/tmp/settbtn$LWCFGKEY"
3261
  case $SETTBTN in
3262
+ winemgr)
3263
+ lu_winemgr
3264
+ btntls_run
3265
+ ;;
3266
+ clearpfx)
3267
+ lu_clearpfx
3268
+ sleep 0.5
3269
+ btntls_run
3270
+ ;;
3271
+ update)
3272
+ lu_update
3273
+ btntls_run
3274
+ ;;
3275
+ winetricks)
3276
+ btntls_run -winetricks
3277
+ ;;
3278
+ init)
3279
+ btntls_run -init
3280
+ ;;
3281
+ pfxbackup)
3282
+ btntls_run -pfxbackup
3283
+ ;;
3284
+ pfxrestore)
3285
+ btntls_run -pfxrestore
3286
+ ;;
3287
+ appcfg)
3288
+ LU_EXE= lu_appcfg
3289
+ ;;
3290
+ controllermap)
3291
+ if [ "$(ls /dev/input/js* 2>/dev/null)" ]
3292
+ then
3293
+ if is_exe_exist controllermap
3294
+ then
3295
+ print_info yad \
3296
+ "Press the buttons on your controller when indicated
3297
+ (Your controller may look different than the picture)
3298
+ If you want to correct a mistake, press backspace or the back button on your device
3299
+ To skip a button, press SPACE or click/touch the screen
3300
+ To exit, press ESC"
3301
+ controllermap="$(SDL_GAMECONTROLLERCONFIG= controllermap)"
3302
+ if [ "$controllermap" ]
3303
+ then
3304
+ if grep -q '^SDL_GAMECONTROLLERCONFIG' "$LW_CFG"
3305
+ then
3306
+ if print_question 'Add to the previous SDL GAMECONTROLLERCONFIG configuration?'
3307
+ then sed -i "s|^SDL_GAMECONTROLLERCONFIG='|SDL_GAMECONTROLLERCONFIG='$controllermap|g" "$LW_CFG"
3308
+ else sed -i "s|^SDL_GAMECONTROLLERCONFIG.*|SDL_GAMECONTROLLERCONFIG='$controllermap'|g" "$LW_CFG"
3309
+ fi
3310
+ else echo "SDL_GAMECONTROLLERCONFIG='$controllermap'" >> "$LW_CFG"
3311
+ fi
3312
+ fi
3313
+ else print_error yad "controllermap is not found!"
3314
+ fi
3315
+ else print_error yad "Game controller is not found!"
3316
+ fi
3317
+ btntls_run
3318
+ ;;
3319
  esac
3320
  fi
3321
  }
 
5881
  fi
5882
  }
5883
 
5884
+ check_gamescope() {
5885
+ [ -n "$1" ] && export GAMESCOPEARG="$1"
5886
+ if [[ -n "$GAMESCOPEARG" && "$GAMESCOPEARG" != 'Disabled' ]]
5887
+ then
5888
+ print_info "GAMESCOPE is enabled!"
5889
+ unset __GL_THREADED_OPTIMIZATIONS
5890
+ if [ "$VKBASALT" == 1 ]
5891
+ then export RUN_GAMESCOPE="env -u ENABLE_VKBASALT gamescope $GAMESCOPEARG -- env ENABLE_VKBASALT=1"
5892
+ else export RUN_GAMESCOPE="gamescope $GAMESCOPEARG --"
5893
+ fi
5894
+ else unset RUN_GAMESCOPE
5895
+ fi
5896
+ }
5897
+
5898
  check_vkd3dconfig() {
5899
  [ -n "$1" ] && export VKD3DCFG="$1"
5900
  if [[ -n "$VKD3DCFG" && "$VKD3DCFG" != "Disabled" ]]
 
6265
  check_display check_restore_resol resol_sw check_restore_gamma dis_displ_sw restore_resol check_virt_desktop check_vkbasalt_cfg check_exe_args \
6266
  check_wine_nvml check_resizable_bar check_latencyflex get_proton_d3dlib makesquash_zstd makesquash_xz lu_pfxbackup lu_pfxrestore lu_backupmnt lu_backupunmnt \
6267
  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 \
6268
+ get_shrt_data check_autostart_tray check_config_only check_gamescope
6269
  }
6270
 
6271
  initbar() {
lwrap/PKGBUILD CHANGED
@@ -2,7 +2,7 @@
2
 
3
  pkgname='lwrap'
4
  pkgver='0.78.4'
5
- pkgrel='5'
6
  pkgdesc='Lux Wine wrapper for RunImage container'
7
  arch=('x86_64')
8
  url='https://github.com/VHSgunzo/lux-wine'
@@ -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' 'firefox'
37
  )
38
  optdepends=(
39
  'xf86-video-amdgpu' 'xf86-video-intel' 'llvm'
 
2
 
3
  pkgname='lwrap'
4
  pkgver='0.78.4'
5
+ pkgrel='6'
6
  pkgdesc='Lux Wine wrapper for RunImage container'
7
  arch=('x86_64')
8
  url='https://github.com/VHSgunzo/lux-wine'
 
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' 'firefox' 'controllermap'
37
  )
38
  optdepends=(
39
  'xf86-video-amdgpu' 'xf86-video-intel' 'llvm'
lwrap/lwrap CHANGED
@@ -395,6 +395,17 @@ try_dl_lwzip() {
395
  }
396
 
397
  install_lw() {
 
 
 
 
 
 
 
 
 
 
 
398
  rm_tmplw() { [[ -d "$TMP_LW" || -f "$TMP_LW.zip" ]] && rm -rf "$TMP_LW"* ; }
399
  TMP_LW="/tmp/lux-wine.$RANDOM"
400
  if [ "$1" != "local" ] && \
@@ -407,15 +418,9 @@ install_lw() {
407
  cd "$TMP_LW/lux-wine-main" && \
408
  make_install "$1"
409
  rm_tmplw)
 
410
  fi
411
- elif [ -d "/opt/lwrap" ]
412
- then
413
- info_msg "Installing Lux Wine from container..."
414
- (mkdir -p "$TMP_LW" && \
415
- cp -rf "/opt/lwrap"/!(runtime.tar.zst|prefix_backups) "$TMP_LW" && \
416
- cd "$TMP_LW" && \
417
- make_install "$1"
418
- rm_tmplw)
419
  fi
420
  if is_lw
421
  then info_msg "Lux Wine installed!"
@@ -770,6 +775,7 @@ try_dl() {
770
  fi
771
  if is_url "$URL"
772
  then
 
773
  [ ! -d "$FILEDIR" ] && \
774
  mkdir -p "$FILEDIR"
775
  if [[ "$NOT_TERM" == 1 && "$NO_DL_GUI" != 1 ]] && \
@@ -793,26 +799,62 @@ try_dl() {
793
  else return 1
794
  fi
795
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
796
  if [ "$NO_ARIA2C" != 1 ] && \
797
  is_exe_exist aria2c
798
  then
799
- aria2c -R -x 13 -s 13 --allow-overwrite --summary-interval=1 -o \
800
  "$FILENAME" -d "$FILEDIR" "$URL"|grep --line-buffered 'ETA'|\
801
  sed -u 's|(.*)| &|g;s|(||g;s|)||g;s|\[||g;s|\]||g'|\
802
  awk '{print$3"\n#Downloading at "$3,$2,$5,$6;system("")}'|\
803
  dl_progress
804
- elif is_exe_exist wget
805
- then
806
- wget --no-check-certificate --content-disposition -t 3 -T 5 \
807
- -w 0.5 "$URL" -O "$FILEDIR/$FILENAME"|& tr '\r' '\n'|\
808
- sed -u 's/.* \([0-9]\+%\)\ \+\([0-9,.]\+.\) \(.*\)/\1\n#Downloading at \1\ ETA: \3/; s/^20[0-9][0-9].*/#Done./'|\
809
- dl_progress
810
  elif is_exe_exist curl
811
  then
812
  curl -R --progress-bar --insecure --fail -L "$URL" -o \
813
  "$FILEDIR/$FILENAME" |& tr '\r' '\n'|\
814
  sed -ur 's|[# ]+||g;s|.*=.*||g;s|.*|#Downloading at &\n&|g'|\
815
  dl_progress
 
 
 
 
 
 
 
 
816
  else
817
  err_no_downloader
818
  fi
@@ -820,14 +862,16 @@ try_dl() {
820
  else
821
  if [ "$NO_ARIA2C" != 1 ] && is_exe_exist aria2c
822
  then
823
- aria2c -R -x 13 -s 13 --allow-overwrite -d "$FILEDIR" -o "$FILENAME" "$URL"
824
- elif is_exe_exist wget
825
- then
826
- wget -q --show-progress --no-check-certificate --content-disposition \
827
- -t 3 -T 5 -w 0.5 "$URL" -O "$FILEDIR/$FILENAME"
828
  elif is_exe_exist curl
829
  then
830
  curl -R --progress-bar --insecure --fail -L "$URL" -o "$FILEDIR/$FILENAME"
 
 
 
 
 
 
831
  else
832
  err_no_downloader
833
  fi
 
395
  }
396
 
397
  install_lw() {
398
+ install_local_lw() {
399
+ if [ -d "/opt/lwrap" ]
400
+ then
401
+ info_msg "Installing Lux Wine from container..."
402
+ (mkdir -p "$TMP_LW" && \
403
+ cp -rf "/opt/lwrap"/!(runtime.tar.zst|prefix_backups) "$TMP_LW" && \
404
+ cd "$TMP_LW" && \
405
+ make_install "$1"
406
+ rm_tmplw)
407
+ fi
408
+ }
409
  rm_tmplw() { [[ -d "$TMP_LW" || -f "$TMP_LW.zip" ]] && rm -rf "$TMP_LW"* ; }
410
  TMP_LW="/tmp/lux-wine.$RANDOM"
411
  if [ "$1" != "local" ] && \
 
418
  cd "$TMP_LW/lux-wine-main" && \
419
  make_install "$1"
420
  rm_tmplw)
421
+ else install_local_lw "$1"
422
  fi
423
+ else install_local_lw "$1"
 
 
 
 
 
 
 
424
  fi
425
  if is_lw
426
  then info_msg "Lux Wine installed!"
 
775
  fi
776
  if is_url "$URL"
777
  then
778
+ WGET_ARGS=(-q --no-check-certificate --content-disposition -t 3 -T 5 -w 0.5 "$URL" -O "$FILEDIR/$FILENAME")
779
  [ ! -d "$FILEDIR" ] && \
780
  mkdir -p "$FILEDIR"
781
  if [[ "$NOT_TERM" == 1 && "$NO_DL_GUI" != 1 ]] && \
 
799
  else return 1
800
  fi
801
  }
802
+ dl_progress_pulsate() {
803
+ local ret=1
804
+ [[ "$URL" =~ '&key=' ]] && \
805
+ local URL="$(echo "$URL"|sed "s|\&key=.*||g")"
806
+ [[ "$URL" =~ '&' && ! "$URL" =~ '&amp;' ]] && \
807
+ local URL="$(echo "$URL"|sed "s|\&|\&amp;|g")"
808
+ if is_exe_exist yad
809
+ then
810
+ local yad_args=(
811
+ --progress --pulsate --text="Download:\t$FILENAME\n$URL"
812
+ --width=650 --height=40 --undecorated --skip-taskbar
813
+ --no-buttons --text-align center --auto-close --auto-kill
814
+ --center --fixed --on-top --no-escape --selectable-labels
815
+ )
816
+ "$@" &
817
+ local exec_pid="$!"
818
+ if [[ -n "$exec_pid" && -d "/proc/$exec_pid" ]]
819
+ then
820
+ (while [ -d "/proc/$exec_pid" ]
821
+ do echo -e "#\n" ; sleep 0.1 2>/dev/null
822
+ done)|yad "${yad_args[@]}" &>/dev/null &
823
+ local yad_pid="$!"
824
+ wait "$exec_pid" &>/dev/null
825
+ ret="$?"
826
+ kill "$yad_pid" &>/dev/null
827
+ fi
828
+ elif is_exe_exist zenity
829
+ then
830
+ "$@"|zenity --progress --pulsate --text="$URL" --width=650 --height=40 \
831
+ --auto-close --no-cancel --title="Download: $FILENAME"
832
+ ret="$?"
833
+ fi
834
+ return "$ret"
835
+ }
836
  if [ "$NO_ARIA2C" != 1 ] && \
837
  is_exe_exist aria2c
838
  then
839
+ aria2c --no-conf -R -x 13 -s 13 --allow-overwrite --summary-interval=1 -o \
840
  "$FILENAME" -d "$FILEDIR" "$URL"|grep --line-buffered 'ETA'|\
841
  sed -u 's|(.*)| &|g;s|(||g;s|)||g;s|\[||g;s|\]||g'|\
842
  awk '{print$3"\n#Downloading at "$3,$2,$5,$6;system("")}'|\
843
  dl_progress
 
 
 
 
 
 
844
  elif is_exe_exist curl
845
  then
846
  curl -R --progress-bar --insecure --fail -L "$URL" -o \
847
  "$FILEDIR/$FILENAME" |& tr '\r' '\n'|\
848
  sed -ur 's|[# ]+||g;s|.*=.*||g;s|.*|#Downloading at &\n&|g'|\
849
  dl_progress
850
+ elif is_exe_exist wget2
851
+ then
852
+ dl_progress_pulsate wget2 "${WGET_ARGS[@]}"
853
+ elif is_exe_exist wget
854
+ then
855
+ wget "${WGET_ARGS[@]}"|& tr '\r' '\n'|\
856
+ sed -u 's/.* \([0-9]\+%\)\ \+\([0-9,.]\+.\) \(.*\)/\1\n#Downloading at \1\ ETA: \3/; s/^20[0-9][0-9].*/#Done./'|\
857
+ dl_progress
858
  else
859
  err_no_downloader
860
  fi
 
862
  else
863
  if [ "$NO_ARIA2C" != 1 ] && is_exe_exist aria2c
864
  then
865
+ aria2c --no-conf -R -x 13 -s 13 --allow-overwrite -d "$FILEDIR" -o "$FILENAME" "$URL"
 
 
 
 
866
  elif is_exe_exist curl
867
  then
868
  curl -R --progress-bar --insecure --fail -L "$URL" -o "$FILEDIR/$FILENAME"
869
+ elif is_exe_exist wget2
870
+ then
871
+ wget2 --force-progress "${WGET_ARGS[@]}"
872
+ elif is_exe_exist wget
873
+ then
874
+ wget --show-progress "${WGET_ARGS[@]}"
875
  else
876
  err_no_downloader
877
  fi
main.zip CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:7ba87ebc78f2acd93f85f769c40b20b17c94a8ced6870e8c01cdc9c584cdbe1a
3
- size 588235
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8ae5f3829d3ae689f88e792c8f5a6fc6b5691490f59756cd4a92bcba9908dd9b
3
+ size 588362