diff --git a/PKGBUILD b/PKGBUILD index bc1be5b..ae67654 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,14 +1,14 @@ # Maintainer: VHSgunzo pkgname=lutris-wine-git -pkgver=0.60 +pkgver=0.61 pkgrel=1 pkgdesc='Lutris Wine Runner as system Wine and even better' arch=('any') url='https://github.com/VHSgunzo/lutris-wine' license=('MIT') -depends=('wget' 'qt5-tools' 'xterm' 'xorg-fonts-100dpi' 'xorg-fonts-75dpi' 'xorg-fonts-cyrillic' 'xorg-fonts-type1' 'xorg-fonts-misc' 'cabextract' 'perl' 'unzip' 'xorg-xmessage' 'zenity' 'yad' 'xkb-switch' 'imagemagick' 'icoutils' 'lib32-mangohud' 'lib32-vkbasalt' 'mangohud' 'mangohud-common' 'vkbasalt' 'gamemode' 'lib32-gamemode' 'giflib' 'lib32-giflib' 'libpng' 'lib32-libpng' 'libldap' 'lib32-libldap' 'gnutls' 'lib32-gnutls' 'mpg123' 'lib32-mpg123' 'openal' 'lib32-openal' 'v4l-utils' 'lib32-v4l-utils' 'libpulse' 'lib32-libpulse' 'libgpg-error' 'lib32-libgpg-error' 'alsa-plugins' 'lib32-alsa-plugins' 'alsa-lib' 'lib32-alsa-lib' 'libjpeg-turbo' 'lib32-libjpeg-turbo' 'sqlite' 'lib32-sqlite' 'libxcomposite' 'lib32-libxcomposite' 'libxinerama' 'lib32-libgcrypt' 'libgcrypt' 'lib32-libxinerama' 'ncurses' 'lib32-ncurses' 'opencl-icd-loader' 'lib32-opencl-icd-loader' 'libxslt' 'lib32-libxslt' 'libva' 'lib32-libva' 'gtk3' 'lib32-gtk3' 'gst-plugins-base' 'lib32-gst-plugins-base' 'gst-plugins-base-libs' 'lib32-gst-plugins-base-libs' 'lib32-vulkan-icd-loader' 'vulkan-headers' 'vulkan-icd-loader' 'vulkan-tools' 'mesa' 'lib32-glu' 'glu' 'lib32-libva-mesa-driver' 'lib32-mesa' 'libva-mesa-driver' 'mesa-demos' 'mesa-utils' 'mesa-vdpau' 'vulkan-mesa-layers' 'lib32-vulkan-mesa-layers' 'libstrangle' 'openssl' 'libnotify') +depends=('wget' 'qt5-tools' 'xterm' 'xorg-fonts-100dpi' 'xorg-fonts-75dpi' 'xorg-fonts-cyrillic' 'xorg-fonts-type1' 'xorg-fonts-misc' 'cabextract' 'perl' 'unzip' 'xorg-xmessage' 'zenity' 'yad' 'xkb-switch' 'imagemagick' 'icoutils' 'lib32-mangohud' 'lib32-vkbasalt' 'mangohud' 'mangohud-common' 'vkbasalt' 'gamemode' 'lib32-gamemode' 'giflib' 'lib32-giflib' 'libpng' 'lib32-libpng' 'libldap' 'lib32-libldap' 'gnutls' 'lib32-gnutls' 'mpg123' 'lib32-mpg123' 'openal' 'lib32-openal' 'v4l-utils' 'lib32-v4l-utils' 'libpulse' 'lib32-libpulse' 'libgpg-error' 'lib32-libgpg-error' 'alsa-plugins' 'lib32-alsa-plugins' 'alsa-lib' 'lib32-alsa-lib' 'libjpeg-turbo' 'lib32-libjpeg-turbo' 'sqlite' 'lib32-sqlite' 'libxcomposite' 'lib32-libxcomposite' 'libxinerama' 'lib32-libgcrypt' 'libgcrypt' 'lib32-libxinerama' 'ncurses' 'lib32-ncurses' 'opencl-icd-loader' 'lib32-opencl-icd-loader' 'libxslt' 'lib32-libxslt' 'libva' 'lib32-libva' 'gtk3' 'lib32-gtk3' 'gst-plugins-base' 'lib32-gst-plugins-base' 'gst-plugins-base-libs' 'lib32-gst-plugins-base-libs' 'lib32-vulkan-icd-loader' 'vulkan-headers' 'vulkan-icd-loader' 'vulkan-tools' 'mesa' 'lib32-glu' 'glu' 'lib32-libva-mesa-driver' 'lib32-mesa' 'libva-mesa-driver' 'mesa-demos' 'mesa-utils' 'mesa-vdpau' 'vulkan-mesa-layers' 'lib32-vulkan-mesa-layers' 'libstrangle' 'openssl' 'libnotify' 'coreutils' 'reshade-shaders-git') makedepends=('git') -optdepends=('lib32-vulkan-radeon' 'vulkan-radeon' 'xf86-video-amdgpu' 'lib32-vulkan-intel' 'vulkan-intel' 'lib32-libva-intel-driver' 'libva-intel-driver' 'libva-utils' 'xf86-video-intel' 'lib32-nvidia-utils' 'lib32-opencl-nvidia' 'libxnvctrl' 'nvidia' 'nvidia-dkms' 'nvidia-settings' 'nvidia-utils' 'opencl-nvidia' 'linux-zen' 'linux-zen-headers' 'vulkan-swrast' 'llvm' 'lib32-llvm' 'replay-sorcery' 'gamescope' 'goverlay' 'winetricks' 'wine' 'dxvk-bin' 'vkd3d-proton-bin') +optdepends=('lib32-vulkan-radeon' 'vulkan-radeon' 'xf86-video-amdgpu' 'lib32-vulkan-intel' 'vulkan-intel' 'lib32-libva-intel-driver' 'libva-intel-driver' 'libva-utils' 'xf86-video-intel' 'lib32-nvidia-utils' 'lib32-opencl-nvidia' 'libxnvctrl' 'nvidia' 'nvidia-dkms' 'nvidia-settings' 'nvidia-utils' 'opencl-nvidia' 'linux-zen' 'linux-zen-headers' 'vulkan-swrast' 'llvm' 'lib32-llvm' 'winetricks' 'wine') provides=("${pkgname%-git}") conflicts=("${pkgname%-git}") source=('git+https://github.com/VHSgunzo/lutris-wine.git') diff --git a/README.md b/README.md index e65f22b..2b91e86 100644 --- a/README.md +++ b/README.md @@ -5,15 +5,18 @@ All Arch-based distributions ``` ## Features: - [x] Easy setup +- [x] Full system integration - [x] Quick initialization and launch +- [x] Does not use containerization like steam runtime +- [x] This is not another game launcher - [x] Launch *.exe *.lnk *.bat *.msi *.reg files in one click - [x] Ability to specify EXE arguments and save them in settings -- [x] Tray launch -- [x] Full system integration +- [x] Tray mode - [x] Automatic download of necessary Wine libraries - [x] Checking for updates for libraries in a given period of time - [x] Ability to create separate configuration files for different EXEs - [x] Automatic enable WineD3D (OpenGL) mode if Vulkan API is not available +- [x] Manual enabling WineD3D (OpenGL) mode (Disables DXVK, DXVK-NVAPI, VKD3D, DXR) - [x] Supports running on virtual machines with GL acceleration (tested on KVM, see installation video) - [x] Debug mode - [x] Terminal mode (various terminals supported) @@ -21,9 +24,31 @@ All Arch-based distributions - [x] SHELL mode or open file in SHELL (with access to all lutris-wine functions) - [x] CMD mode or open file in CMD - [x] Wine Manager (Lutris, GloriousEggroll, Kron4ek) -- [x] System Wine Support +- [x] System Wine supports (selected automatically if no other versions of Wine are installed) - [x] Manage and install multiple wine/proton/dxvk/dxvk-nvapi/vkd3d/d3d_extras/dgvoodoo2 versions and on-the-fly change +- [x] Switching DXR/RTX Version (if the video adapter support and depends on VKD3D) - [x] Custom URL for runtime repo +- [x] Custom VKD3D config +- [x] MangoHud settings (with custom config support) +- [x] VkBasalt settings +- [x] Reshade Shaders settings (VkBasalt Effects, depends on VkBasalt) +- [x] Vulkan ICD loader automatic and manual settings +- [x] AMD FidelityFX Contrast Adaptive Sharpening settings (depends on VkBasalt) +- [x] Gstreamer (if Wine support, system Gstreamer in priority) +- [x] GameMode +- [x] Esync +- [x] Fsync (if linux kernel support) +- [x] Vsync settings +- [x] AMD FidelityFX Super Resolution settings (if Wine support) +- [x] BattleEye Runtime (if Wine support) +- [x] NVIDIA Prime Render Offload +- [x] US keyboard layout switcher +- [x] Reset PulseAudio (+PulseEffects) +- [x] Reduce PulseAudio latency +- [x] Restore gamma +- [x] Single CPU mode +- [x] Show Crash Dialog (WINEDBG) +- [x] FPS limit settings (with MangoHud or libstrangle) - [x] Custom Wine themes - [x] Runtime updater - [x] Quick add applications to Lutris (if Lutris installed) @@ -39,7 +64,7 @@ All Arch-based distributions ``` - [x] GUI for custom apps configs - [x] Built-in fixed Winetricks -- [x] System Winetricks Support +- [x] System Winetricks support - [x] Quick open drive C:\ - [x] Killer stuff: ``` @@ -52,36 +77,21 @@ All Arch-based distributions - [x] Ability to clear a prefix without completely recreating it - [x] Mouse context menu for Dolphin - [x] Ability to run applications from the terminal (see lutris-wine -help) +- [x] Terminal hold - [x] Window compositing management (KDE, MATE, XFCE, Deepin) - [x] Wine prefix management - [x] Wine architecture management - [x] Windows Version management - [x] Wine DLL overrides +- [x] Wine MONO overrides +- [x] Disabling MONO (.NET Core) - [x] Various optimizations for better gaming performance - [x] Lutris Runtime (with system library priority if needed) - [x] Custom EXE DB launch helper scripts, like this [LOL anticheat helper](https://github.com/VHSgunzo/lutris-wine/blob/main/usr/share/lutris-wine/db/LeagueClient.lwdb) +- [x] EXE DB launch helper script automatically starts if located in the application folder and has the same name, but with the extension *.lwdb - [x] Custom loading bar animation -- [x] Lots of settings in GUI: +- [x] Redefining Wine options in settings GUI: ``` - * DXR/RTX Version (if video adapter suports) - * Gstreamer - * VkBasalt Effects - * AMD FidelityFX Contrast Adaptive Sharpening - * GameMode - * MangoHud (With custom config) - * FPS Limit - * Esync - * Fsync - * Vsync - * AMD FidelityFX Super Resolution (if Wine supports) - * BattleEye Runtime - * NVIDIA Prime Render Offload - * Switch to US keyboard layout - * Reset PulseAudio (+PulseEffects) - * Reduce PulseAudio latency - * Restore gamma - * Single CPU mode - * Show Crash Dialog * OLD GL STRING * NO WRITE WATCH * VULKAN NO ASYNC @@ -90,15 +100,6 @@ All Arch-based distributions * STAGING SHARED MEMORY * ALLOW XIM * DISABLE LAYER AMD SWITCHABLE GRAPHICS - * WineD3D (OpenGL) Mode - * Disable MONO (.NET Core) - * DXVK - * VKD3D - * DXVK-NVAPI/DLSS - * D3D EXTRAS - * DGVOODOO2 - * WINE MONO OVERRIDES - * Hold terminal ``` - [ ] And much more ## To get started: diff --git a/usr/bin/lutris-wine b/usr/bin/lutris-wine index 68ffee1..dacec79 100755 --- a/usr/bin/lutris-wine +++ b/usr/bin/lutris-wine @@ -2,7 +2,7 @@ export ENVKEY=$RANDOM export > /tmp/envbackup$ENVKEY export LW_DEVELOPERS="VHSgunzo" -export LW_VERSION="0.60" +export LW_VERSION="0.61" export BLUE='\033[1;94m' export RED='\033[1;91m' @@ -22,7 +22,8 @@ export LW_DB_DIR="/usr/share/lutris-wine/db" export LU_DB="$LU_DIR/pga.db" export LW_DEF_CFG="$LW_DIR/luwine.wcfg" export LW_CFG="$LW_DEF_CFG" -export VKBASALT_CONFIG_FILE="$HOME/.config/vkBasalt/vkBasalt.conf" +export VKBASALT_CONFIG_FILE="$LW_DIR/vkBasalt.conf" +export RESHADE_DIR="/usr/share/reshade" export DEF_ICO="/usr/share/lutris-wine/icon/default_icon.png" export DEF_LOAD_GIF="/usr/share/lutris-wine/gif/default_loading.gif" export DEF_WINEPFX="$LW_DIR/winepfx" @@ -1374,7 +1375,7 @@ lu_debug() { echo "---------------------------------------------------------------------------------------" >> "$TMP_DEB" echo "[ GLIBC version ] : $(ldd --version|grep -m1 ldd|awk '{print $NF}')" >> "$TMP_DEB" echo "---------------------------------------------------------------------------------------" >> "$TMP_DEB" - echo "[ Desktop Environment ] : $XDG_CURRENT_DESKTOP - $DESKTOP_SESSION" >> "$TMP_DEB" + echo "[ Desktop Environment ] : $XDG_CURRENT_DESKTOP - $DESKTOP_SESSION $XDG_SESSION_TYPE" >> "$TMP_DEB" echo "---------------------------------------------------------------------------------------" >> "$TMP_DEB" echo "[ Kernel ] : $(uname -r)" >> "$TMP_DEB" echo "---------------------------------------------------------------------------------------" >> "$TMP_DEB" @@ -1952,6 +1953,7 @@ check_first_run() { do xdg-mime default shell.desktop "$shellmimetype" done + update-desktop-database -q "$MENU_APP_DIR" touch "$LW_DIR/.firstrun" fi } @@ -2084,7 +2086,6 @@ lu_config() { DXRLST="1.0 \n 1.1 \n Disabled" SHELLST="$(which bash 2>/dev/null)" VKICDFILESLST="AUTO \n Nvidia \n Intel \n AMD \n Lvp" - VKBEFFLST="cas \n Tonemap:FakeHDR:cas" DXVKLST="$(ls -I "*.json" -1 -t "$LW_RUNTIME_DIR/dxvk" 2>/dev/null) \n v1.9.2L-3e64e1b \n v1.9.3 \n latest $(if [ ! -z "$LU_EXE" ]; then echo '\n Default'; fi)" DXVKGITLST="https://github.com/lutris/dxvk/releases \n https://github.com/doitsujin/dxvk/releases" VKD3DLST="$(ls -I "*.json" -1 -t "$LW_RUNTIME_DIR/vkd3d" 2>/dev/null) \n v2.5L-db89d40 \n v2.5 \n latest $(if [ ! -z "$LU_EXE" ]; then echo '\n Default'; fi)" @@ -2101,25 +2102,38 @@ lu_config() { TRLWPRM="awk '!x[\$0]++'|tr '\n' '!'|sed 's/.$//'" SRTLWPRM="sort -u" lwconfig_save() { - LWCFGPARAM="$(echo -e "$(cat /tmp/winesett$LWCFGKEY 2>/dev/null|eval $SEDLWPRM)\n$(cat /tmp/syssett$LWCFGKEY|eval $SEDLWPRM)")" LWCFGVAR="WINE_VERSION WIN_VER WINEARCH WINEPREFIX WINE_THEME DXVK DXVK_VERSION DXVK_GIT_RELEASE_URL VKD3D VKD3D_VERSION VKD3DCFG \ VKD3D_GIT_RELEASE_URL DXVK_NVAPI DXVK_NVAPI_VERSION NVAPI_GIT_RELEASE_URL D3D_EXTRAS D3D_EXTRAS_VERSION D3D_GIT_RELEASE_URL \ DGVOODOO2 DGVOODOO2_VERSION DGVO_GIT_RELEASE_URL WDLLOVER WMONOVER MUST_HAVE_DLL SHOW_WINEDBG LARGE_ADDRESS OLD_GL_STRING \ NO_WRITE_WATCH VULKAN_NO_ASYNC HIDE_NVIDIA_GPU HEAP_DELAY_FREE SHARED_MEMORY ALLOW_XIM DIS_LAYER_AMD WINED3D DIS_NETCORE \ CHK_UPDATE RUNTIME PREF_SYS_LIBS EXE_ARG EXE_LWDB EXE_LWDBFL LOADBAR LOADBARGIF LOG DEBUG SYS_WINETRICKS SINGLE_CPU RESTORE_GAMMA \ DIS_COPMOSITOR RESET_PULSE PULSE_LTCY TERMINAL HOLD_TERMINAL LW_TERM_APP LWSHELL NO_TRAY US_LAYOUT DXR GSTREAMER VKBASALT \ - VKBASALT_EFFECTS VKBASALT_FFX_CAS VKICDFILES GAMEMODE LWMANGOHUD MANGOHUD_USER_CONF FPS_LIMIT MANGOHUDCFG ESYNC FSYNC VSYNC \ + VKBASALT_FFX_CAS VKICDFILES GAMEMODE LWMANGOHUD MANGOHUD_USER_CONF FPS_LIMIT MANGOHUDCFG ESYNC FSYNC VSYNC \ FSR FSR_STRENGTH BATTLEYE PRIME" - WCFGOUT="$(for (( numsett=1; numsett <= "$(echo "$LWCFGPARAM"|wc -l)"; numsett++ )) + WCFGOUT="$(while read CFGVAR <&3 && read CFGPARAM <&4 do - if [ ! -z "$(echo "$LWCFGPARAM"|sed "$numsett"p -n|sed "s/''//")" ] + if [ ! -z "$(echo "$CFGPARAM"|sed "s/''//")" ] then - echo "export $(echo "$LWCFGVAR"|tr ' ' '\n'|eval $SEDLWPRM|sed "$numsett"p -n)=$(echo "$LWCFGPARAM"|sed "$numsett"p -n)" + echo "$CFGVAR=$CFGPARAM" fi - done)" + done 3< <(echo "$LWCFGVAR"|tr ' ' '\n'|eval $SEDLWPRM|sed 's/^/export /') \ + 4< <(echo -e "$(cat /tmp/winesett$LWCFGKEY 2>/dev/null|eval $SEDLWPRM)\n$(cat /tmp/syssett$LWCFGKEY|eval $SEDLWPRM)"))" + + COUNT_FX=0 + for read_list_fx in $(cat /tmp/ressett$LWCFGKEY 2>/dev/null) + do + if [[ "$read_list_fx" == 1 ]] + then + export FX_RESULT+=":${RES_LST[$COUNT_FX]}" + fi + export COUNT_FX=$(( $COUNT_FX + 1 )) + done + FX_RESULT="cas$FX_RESULT" + if [ ! -z "$(echo "$WCFGOUT"|head -1)" ] then echo "$WCFGOUT" > "$LW_CFG" + echo "export VKBASALT_EFFECTS='$FX_RESULT'" >> "$LW_CFG" if [ "$(echo "$WCFGOUT"|grep -wo 'WINE_VERSION.*$'|cut -d'=' -f2|tr -d \')" != "$(cat "$WINEPREFIX/.defwine")" ] then export NEW_WINE_VERSION="$(echo "$WCFGOUT"|grep -wo 'WINE_VERSION.*$'|cut -d'=' -f2|tr -d \')" @@ -2195,7 +2209,7 @@ lu_config() { --field="Check update days (0-disabled)::NUM" "$CHK_UPDATE" \ --field="Lutris runtime:CHK" "$RUNTIME" \ --field="Prefer system libs:CHK" "$PREF_SYS_LIBS" \ - --field=$"EXE arguments::CBE" "$(echo "$EXE_ARG"|eval $AWKFIX)" \ + --field="EXE arguments::CBE" "$(echo "$EXE_ARG"|eval $AWKFIX)" \ --field="Run EXE DB script:CHK" "$EXE_LWDB" \ --field="EXE DB script::FL" "$EXE_LWDBFL" \ --file-filter="EXE DB script (*.lwdb)| *.lwdb *.LWDB" \ @@ -2219,7 +2233,6 @@ lu_config() { --field="DXR/RTX Version::CB" "$(echo -e "$DXR\n$(echo -e "$DXR\n$DXRLST"|eval $SEDLWPRM|eval $SRTLWPRM)"|eval $SEDLWPRM|eval $TRLWPRM)" \ --field="Gstreamer:CHK" "$GSTREAMER" \ --field="VkBasalt:CHK" "$VKBASALT" \ - --field="VkBasalt Effects::CBE" "$(echo -e "$VKBASALT_EFFECTS\n$(echo -e "$VKBASALT_EFFECTS\n$VKBEFFLST"|eval $SEDLWPRM|eval $SRTLWPRM)"|eval $SEDLWPRM|eval $TRLWPRM|eval $AWKFIX)" \ --field="AMD FidelityFX Contrast Adaptive Sharpening STRENGTH::CB" "$(echo -e "$VKBASALT_FFX_CAS\n$(echo -e "$VKBASALT_FFX_CAS\n$(seq -f "%0.1f" 0.1 0.1 1|tr ',' '.')"|eval $SEDLWPRM|eval $SRTLWPRM)"|eval $SEDLWPRM|eval $TRLWPRM)" \ --field="Vulkan ICD loader::CB" "$(echo -e "$VKICDFILES\n$(echo -e "$VKICDFILES\n$VKICDFILESLST"|eval $SEDLWPRM|eval $SRTLWPRM)"|eval $SEDLWPRM|eval $TRLWPRM)" \ --field="GameMode:CHK" "$GAMEMODE" \ @@ -2237,9 +2250,24 @@ lu_config() { --file-filter="All Files | *.*" \ 1> /tmp/syssett$LWCFGKEY & + RES_LST=($(grep ".fx$" "$VKBASALT_CONFIG_FILE"|awk '{print $1}')) + RES_CFG=($(echo "$VKBASALT_EFFECTS"|sed 's/cas//'|sed 's/^://'|sed 's/:$//'|sed 's/::/:/'|sed 's/:/ /')) + for add_relst in ${RES_LST[@]} + do + if [[ ! -z "$(echo "${RES_CFG[@]}"|grep -o "$add_relst")" ]] + then + RESHADE_SETT+="--field=$add_relst:CHK%TRUE%" + else + RESHADE_SETT+="--field=$add_relst:CHK%FALSE%" + fi + done + (IFS="%" ; yad --plug=$LWCFGKEY --tabnum=3 --form --separator=" " --bool-fmt=1 --columns=4 \ + $RESHADE_SETT \ + 1> /tmp/ressett$LWCFGKEY & ) + if [ -z "$FIRST_RUN" ] then - yad --plug=$LWCFGKEY --tabnum=3 --columns=3 --form \ + yad --plug=$LWCFGKEY --tabnum=4 --columns=3 --form \ --field="Wine explorer:FBTN" "$LWSHELL -c 'lu_explorer'" \ --field="Task manager:FBTN" "$LWSHELL -c 'lu_taskmgr'" \ --field="Open CMD:FBTN" "$LWSHELL -c 'lu_cmd'" \ @@ -2271,21 +2299,21 @@ lu_config() { check_exes if [[ ! -z "$LU_EXE" && -z "$RUN_EXE" ]] then - yad --notebook --key=$LWCFGKEY --tab="Wine" --tab="System" --tab="Tools" --title="Lutris Wine settings for $(basename "$LU_EXE")" \ + yad --notebook --key=$LWCFGKEY --tab="Wine" --tab="System" --tab="VkBasalt Effects" --tab="Tools" --title="Lutris Wine settings for $(basename "$LU_EXE")" \ --width=1000 --height=500 --text-align=center --center --window-icon="$DEF_ICO" \ --button="EXIT:1" --button="RESET:3" --button="SAVE:0" --button="SAVE and RUN:4" 2>/dev/null elif [[ ! -z "$LU_EXE" && ! -z "$RUN_EXE" ]] then - yad --notebook --key=$LWCFGKEY --tab="Wine" --tab="System" --tab="Tools" --title="Lutris Wine settings for $(basename "$LU_EXE")" \ + yad --notebook --key=$LWCFGKEY --tab="Wine" --tab="System" --tab="VkBasalt Effects" --tab="Tools" --title="Lutris Wine settings for $(basename "$LU_EXE")" \ --width=1000 --height=500 --text-align=center --center --window-icon="$DEF_ICO" \ --button="EXIT:1" --button="RESET:3" --button="SAVE:0" 2>/dev/null elif [ ! -z "$FIRST_RUN" ] then - yad --notebook --key=$LWCFGKEY --tab="Wine" --tab="System" --title="Lutris Wine settings" \ + yad --notebook --key=$LWCFGKEY --tab="Wine" --tab="System" --tab="VkBasalt Effects" --title="Lutris Wine settings" \ --width=1000 --height=500 --text-align=center --center --window-icon="$DEF_ICO" \ --button="EXIT:1" --button="SAVE:0" 2>/dev/null else - yad --notebook --key=$LWCFGKEY --tab="Wine" --tab="System" --tab="Tools" --title="Lutris Wine settings" \ + yad --notebook --key=$LWCFGKEY --tab="Wine" --tab="System" --tab="VkBasalt Effects" --tab="Tools" --title="Lutris Wine settings" \ --width=1000 --height=500 --text-align=center --center --window-icon="$DEF_ICO" \ --button="EXIT:1" --button="RESET:3" --button="SAVE:0" 2>/dev/null fi @@ -2343,6 +2371,7 @@ lu_config() { fi try_rm "/tmp/syssett$LWCFGKEY" &>/dev/null try_rm "/tmp/winesett$LWCFGKEY" &>/dev/null + try_rm "/tmp/ressett$LWCFGKEY" &>/dev/null if [ -f "/tmp/settbtn$LWCFGKEY" ] then SETTBTN="$(cat "/tmp/settbtn$LWCFGKEY")" @@ -3794,7 +3823,15 @@ check_vkbasalt() { try_mkdir "$(dirname "$VKBASALT_CONFIG_FILE")" if [ ! -f "$VKBASALT_CONFIG_FILE" ] then - touch "$VKBASALT_CONFIG_FILE" + if [ -d "$RESHADE_DIR" ] + then + echo -e "reshadeTexturePath = "$RESHADE_DIR"/textures\nreshadeIncludePath = "$RESHADE_DIR"/shaders" > "$VKBASALT_CONFIG_FILE" + (while read RES_NAME <&3 && read RES_FLPTH <&4 + do + echo "$RES_NAME = $RES_FLPTH" + done 3< <(ls -1 "$RESHADE_DIR"/shaders/*.fx|sed 's/.fx$//'|xargs -I {} basename {}) \ + 4< <(ls -1 "$RESHADE_DIR"/shaders/*.fx)) >> "$VKBASALT_CONFIG_FILE" + fi echo "toggleKey = Home" >> "$VKBASALT_CONFIG_FILE" fi if [ -z "$(grep -wo "effects" "$VKBASALT_CONFIG_FILE")" ]