Есть bash-скрипт для создания префиксов и запуска игр. Раньше работал, сейчас выдаёт:
Application could not be started, or no application associated with the specifie
d file.
ShellExecuteEx failed: File not found.
Запуск:
'/path/game.sh' wine '/path/file.exe'
Одно время была такая же проблема, при создании префикса заменил winetricks sandbox на isolate_home, пофиксилось. Сейчас и isolate_home убрал.
Код скрипта:
#!/usr/bin/bash
export script="$(readlink -f "${BASH_SOURCE[0]}")"
export scriptdir="$(dirname "$script")"
cd "${scriptdir}"
source game.config
export WINE="${WINEPATH}/wine"
export WINEPREFIX="${scriptdir}/prefix"
export WINEDLLOVERRIDES="mscoree,mshtml=;winemenubuilder.exe="
if [[ "$1" == "prefix" ]]; then
"${WINEPATH}/wineboot"
~/Apps/wine/winetricks dxvk
if [[ ! -d docs ]]; then
if [[ -d "prefix/drive_c/users/al/" && ! -h "prefix/drive_c/users/al" ]]; then
mv prefix/drive_c/users/al/ docs
fi
if [[ -d "prefix/drive_c/users/steamuser/" && ! -h "prefix/drive_c/users/steamuser" ]]; then
mv prefix/drive_c/users/steamuser/ docs
fi
ln -s ../../../docs prefix/drive_c/users/al
ln -s ../../../docs prefix/drive_c/users/steamuser
fi
if [[ ! -d game ]]; then
mkdir game
ln -s ../../game prefix/drive_c/game
fi
elif [[ "$1" == "wt" ]]; then
~/Apps/wine/winetricks "${@:2}"
elif [[ "$2" ]]; then
"${WINEPATH}/wine" "${1}" "$2"
elif [[ "$1" ]]; then
"${WINEPATH}/wine" "${1}"
else
export WINEESYNC=1
export WINEFSYNC=1
export WINE_LARGE_ADDRESS_AWARE=1
export XDG_CACHE_HOME="${scriptdir}"/cache
export DXVK_LOG_PATH="${XDG_CACHE_HOME}"/dxvk
export DXVK_STATE_CACHE_PATH="${XDG_CACHE_HOME}"/dxvk
export DXVK_CONFIG_FILE="${scriptdir}"/dxvk.conf
export DXVK_LOG_LEVEL=none
export DXVK_HUD=fps
export VKD3D_DEBUG=none
export VKD3D_SHADER_DEBUG=none
export WINE_FULLSCREEN_FSR=0
openbox --replace &
cd "${scriptdir}/${GAMEPATH}"
"${WINEPATH}/wine" "${scriptdir}/${GAMEPATH}/${GAMEEXE}"
"${WINEPATH}/wineserver" -w
xrandr --output "DP-1" --mode "1920x1080" &>/dev/null
xgamma -gamma 1.0 &>/dev/null
xfwm4 --replace &
fi
