Scripts version 2262

This commit is contained in:
Mikhail Tergoev
2024-03-14 22:27:18 +03:00
parent cc3fdaf86a
commit 1280cb9ac5
7 changed files with 268 additions and 165 deletions

View File

@ -50,10 +50,12 @@ start_portwine () {
var_winedlloverride_update "${PW_MUST_WINEDLLOVERRIDES}"
pw_list_install_dll_in_prefix
pw_check_and_download_wine "${PW_WINE_USE}"
if [[ "${PW_WINE_USE}" != "USE_SYSTEM_WINE" ]]
then pw_check_and_download_wine "${PW_WINE_USE}"
fi
init_wine_ver
pw_init_runtime
check_variables VKD3D_DEBUG none
check_variables DXVK_LOG_LEVEL none
check_variables VK_LOADER_DEBUG none
@ -330,7 +332,7 @@ start_portwine () {
PW_GAMEMODERUN_SLR="gamemoderun"
systemctl enable --now --user gamemoded &>/dev/null
print_info "Gamemod will be launched."
else
elif [[ "$PW_USE_RUNTIME" == 1 ]] ; then
export GAMEMODERUN=1
if ! pidof gamemoded &>/dev/null ; then
GAMEMODEAUTO_NAME="libgamemodeauto.so.0"
@ -345,6 +347,9 @@ start_portwine () {
print_info "Gamemod will be launched."
sleep 0.1
fi
else
export GAMEMODERUN=0
export PW_GAMEMODERUN_SLR=""
fi
else
export GAMEMODERUN=0
@ -654,6 +659,9 @@ start_portwine () {
gsettings set org.cinnamon.muffin unredirect-fullscreen-windows true
fi
fi
pw_mangohud_check
pw_vkbasalt_check
}
pw_run () {
@ -666,55 +674,88 @@ pw_run () {
else
cd "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c"
fi
pw_mangohud_check
pw_vkbasalt_check
PW_LOG_TO_FILE="${PORT_WINE_PATH}/${portname}.log"
print_var "WINEDIR" "WINEPREFIX" "WINEDLLOVERRIDES" "PATH_TO_GAME" "PW_WINE_USE" "PW_VULKAN_USE" "VULKAN_DRIVER_NAME"
print_var "VULKAN_API_DRIVER_VERSION" "VKD3D_CONFIG" "PW_LD_LIBRARY_PATH" "PATH" "WINEESYNC" "WINEFSYNC" "WINEFSYNC_FUTEX2"
print_var "WINEDLLPATH" "WINE_CPU_TOPOLOGY" "PW_RUN_GAMESCOPE" "LD_LIBRARY_PATH"
kill -s SIGUSR1 "$PW_YAD_PID_PFX_COVER_UI" &>/dev/null
if [[ "${PW_LOG}" == 1 ]] ; then
if check_start_from_steam ; then
for VAR_LOGGER in PW_WINE_USE WINEDIR WINEDLLPATH WINEPREFIX PATH_TO_GAME PW_VULKAN_USE PW_LD_LIBRARY_PATH LD_LIBRARY_PATH PATH \
VKD3D_CONFIG WINEESYNC WINEFSYNC WINEFSYNC_FUTEX2 WINE_CPU_TOPOLOGY DESKTOP_SESSION
do
echo "${VAR_LOGGER}=${!VAR_LOGGER}" >> "${PW_LOG_TO_FILE}"
done
if [[ "$PW_USE_RUNTIME" == 1 ]] ; then
if [[ "${PW_LOG}" == 1 ]] ; then
if check_start_from_steam ; then
for VAR_LOGGER in PW_WINE_USE WINEDIR WINEDLLPATH WINEPREFIX PATH_TO_GAME PW_VULKAN_USE PW_LD_LIBRARY_PATH LD_LIBRARY_PATH PATH \
VKD3D_CONFIG WINEESYNC WINEFSYNC WINEFSYNC_FUTEX2 WINE_CPU_TOPOLOGY DESKTOP_SESSION
do
echo "${VAR_LOGGER}=${!VAR_LOGGER}" >> "${PW_LOG_TO_FILE}"
done
fi
echo "WINEDLLOVERRIDES=${WINEDLLOVERRIDES}" >> "${PW_LOG_TO_FILE}"
echo "------------------------------------" >> "${PW_LOG_TO_FILE}"
echo "Log WINE:" >> "${PW_LOG_TO_FILE}"
echo ""
print_info "Log from RUNTIME and WINE:"
${PW_RUN_GAMESCOPE} \
${pw_runtime} \
env PATH="${PATH}" \
LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
LD_PRELOAD="${PW_LD_PRELOAD}" \
VK_LAYER_PATH="${PW_VK_LAYER_PATH}" \
VK_INSTANCE_LAYERS=${PW_VK_INSTANCE_LAYERS} \
${PW_GAMEMODERUN_SLR} \
${PW_MANGOHUD_SLR} \
"${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}"
else
if [[ "$PW_USE_TERMINAL" == 1 ]] \
&& [[ "$PW_USE_RUNTIME" == 1 ]]
then
export PW_ADD_TO_ARGS_IN_RUNTIME="--xterm"
pw_init_runtime
fi
echo ""
echo "Log WINE:" > "${PW_LOG_TO_FILE}"
print_info "Log from RUNTIME and WINE:"
${PW_RUN_GAMESCOPE} \
${pw_runtime} \
env PATH="${PATH}" \
LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
LD_PRELOAD="${PW_LD_PRELOAD}" \
VK_LAYER_PATH="${PW_VK_LAYER_PATH}" \
VK_INSTANCE_LAYERS="${PW_VK_INSTANCE_LAYERS}" \
${PW_GAMEMODERUN_SLR} \
${PW_MANGOHUD_SLR} \
"${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}"
cat "${PW_LOG_TO_FILE}"
fi
echo "WINEDLLOVERRIDES=${WINEDLLOVERRIDES}" >> "${PW_LOG_TO_FILE}"
echo "------------------------------------" >> "${PW_LOG_TO_FILE}"
echo "Log WINE:" >> "${PW_LOG_TO_FILE}"
echo ""
print_info "Log from RUNTIME and WINE:"
${PW_RUN_GAMESCOPE} \
${pw_runtime} \
env PATH="${PATH}" \
LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
LD_PRELOAD="${PW_LD_PRELOAD}" \
VK_LAYER_PATH="${PW_VK_LAYER_PATH}" \
VK_INSTANCE_LAYERS=${PW_VK_INSTANCE_LAYERS} \
${PW_GAMEMODERUN_SLR} \
${PW_MANGOHUD_SLR} \
"${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}"
else
if [[ "${PW_USE_TERMINAL}" == "1" ]] ; then
export PW_ADD_TO_ARGS_IN_RUNTIME="--xterm"
pw_init_runtime
if [[ "${PW_LOG}" == 1 ]] ; then
if check_start_from_steam ; then
for VAR_LOGGER in PW_WINE_USE WINEDIR WINEDLLPATH WINEPREFIX PATH_TO_GAME PW_VULKAN_USE PW_LD_LIBRARY_PATH LD_LIBRARY_PATH PATH \
VKD3D_CONFIG WINEESYNC WINEFSYNC WINEFSYNC_FUTEX2 WINE_CPU_TOPOLOGY DESKTOP_SESSION
do
echo "${VAR_LOGGER}=${!VAR_LOGGER}" >> "${PW_LOG_TO_FILE}"
done
fi
echo "WINEDLLOVERRIDES=${WINEDLLOVERRIDES}" >> "${PW_LOG_TO_FILE}"
echo "------------------------------------" >> "${PW_LOG_TO_FILE}"
echo "Log WINE:" >> "${PW_LOG_TO_FILE}"
echo ""
print_info "Log WINE:"
env \
${PW_GAMEMODERUN_SLR} \
${PW_MANGOHUD_SLR} \
"${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}"
wait_wineserver
else
echo ""
echo "Log WINE:" > "${PW_LOG_TO_FILE}"
print_info "Log WINE:"
env \
${PW_GAMEMODERUN_SLR} \
${PW_MANGOHUD_SLR} \
"${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]}
wait_wineserver
# ${PW_RUN_GAMESCOPE} \ !!!
fi
echo ""
echo "Log WINE:" > "${PW_LOG_TO_FILE}"
print_info "Log from RUNTIME and WINE:"
${PW_RUN_GAMESCOPE} \
${pw_runtime} \
env PATH="${PATH}" \
LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
LD_PRELOAD="${PW_LD_PRELOAD}" \
VK_LAYER_PATH="${PW_VK_LAYER_PATH}" \
VK_INSTANCE_LAYERS="${PW_VK_INSTANCE_LAYERS}" \
${PW_GAMEMODERUN_SLR} \
${PW_MANGOHUD_SLR} \
"${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}"
cat "${PW_LOG_TO_FILE}"
fi
}
export -f pw_run
@ -824,6 +865,17 @@ check_user_conf
check_variables PW_LOG "0"
if [[ -z "${INSTALLING_PORT}" ]] ; then
if [[ -f "$HOME/.config/.portproton.lock" ]] ; then
yad_info "$loc_gui_portproton_lock"
exit 0
fi
touch "$HOME/.config/.portproton.lock"
rm_lock_file () {
echo "Removing the lock file..."
rm "$HOME/.config/.portproton.lock" && echo "OK"
}
trap "rm_lock_file" EXIT
. "${USER_CONF}"
if [[ "${SKIP_CHECK_UPDATES}" != 1 ]] ; then
pw_port_update