|
|
|
@ -560,15 +560,6 @@ init_wine_ver () {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pw_init_runtime () {
|
|
|
|
|
if [ ! -z ${PATH_TMP} ]
|
|
|
|
|
then export PATH="${PATH_TMP}"
|
|
|
|
|
else export PATH_TMP="${PATH}"
|
|
|
|
|
fi
|
|
|
|
|
if [ ! -z "${PATH}" ]
|
|
|
|
|
then export PATH="${PATH}:${PW_PLUGINS_PATH}/portable/bin"
|
|
|
|
|
else export PATH="${PW_PLUGINS_PATH}/portable/bin"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
check_flatpak && export PW_USE_RUNTIME="0"
|
|
|
|
|
|
|
|
|
|
if [[ "$PW_USE_RUNTIME" != "1" ]] \
|
|
|
|
@ -608,19 +599,26 @@ ${PW_PV_OVERRIDES}/i386-linux-gnu/aliases:\
|
|
|
|
|
/overrides/lib/x86_64-linux-gnu:\
|
|
|
|
|
/overrides/lib/i386-linux-gnu"
|
|
|
|
|
|
|
|
|
|
if [ ! -z "${PATH}" ]
|
|
|
|
|
then export PW_PATH="${PATH}:${PW_PLUGINS_PATH}/portable/bin"
|
|
|
|
|
else export PW_PATH="${PW_PLUGINS_PATH}/portable/bin"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [[ ! -z "${PW_SANDBOX_HOME_PATH}" && -d "${PW_SANDBOX_HOME_PATH}" ]] ; then
|
|
|
|
|
export pw_runtime="${PW_WINELIB}/pressure-vessel/bin/pressure-vessel-unruntime \
|
|
|
|
|
--unshare-home \
|
|
|
|
|
--home="${PW_SANDBOX_HOME_PATH}" \
|
|
|
|
|
--home=${PW_SANDBOX_HOME_PATH} \
|
|
|
|
|
--remove-game-overlay \
|
|
|
|
|
--share-pid \
|
|
|
|
|
${PW_ADD_TO_ARGS_IN_RUNTIME} --"
|
|
|
|
|
${PW_ADD_TO_ARGS_IN_RUNTIME} -- \
|
|
|
|
|
env PATH=$PW_PATH "
|
|
|
|
|
else
|
|
|
|
|
export pw_runtime="${PW_WINELIB}/pressure-vessel/bin/pressure-vessel-unruntime \
|
|
|
|
|
--share-home \
|
|
|
|
|
--remove-game-overlay \
|
|
|
|
|
--share-pid \
|
|
|
|
|
${PW_ADD_TO_ARGS_IN_RUNTIME} --"
|
|
|
|
|
${PW_ADD_TO_ARGS_IN_RUNTIME} -- \
|
|
|
|
|
env PATH=$PW_PATH "
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [[ "$PW_USE_SYSTEM_VK_LAYERS" == "1" ]] ; then
|
|
|
|
@ -840,8 +838,8 @@ stop_portwine () {
|
|
|
|
|
kill_portwine &&
|
|
|
|
|
try_remove_dir "${PW_WINELIB}/var"
|
|
|
|
|
find "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/" -maxdepth 1 -type f -name "*.tmp" -delete
|
|
|
|
|
if [[ ! -z "$(pgrep -a $PW_YAD_BIN | grep "\--notification" | awk '{print $1}')" ]] ; then
|
|
|
|
|
kill -s SIGUSR1 "$(pgrep -a $PW_YAD_BIN | grep "\--notification" | awk '{print $1}')" 2>/dev/null
|
|
|
|
|
if [[ ! -z "$(pgrep -a yad_gui_pp | grep "\--notification" | awk '{print $1}')" ]] ; then
|
|
|
|
|
kill -s SIGUSR1 "$(pgrep -a yad_gui_pp | grep "\--notification" | awk '{print $1}')" 2>/dev/null
|
|
|
|
|
fi
|
|
|
|
|
add_in_stop_portwine
|
|
|
|
|
unset SKIP_CHECK_UPDATES
|
|
|
|
@ -1300,8 +1298,8 @@ pw_port_update () {
|
|
|
|
|
print_info "Scripts version in git = ${scripts_current_ver}"
|
|
|
|
|
print_info "Scripts version local = ${scripts_install_ver}"
|
|
|
|
|
if [[ ! -z "${scripts_current_ver}" ]] && [[ "${scripts_current_ver}" -gt "${scripts_install_ver}" ]] ; then
|
|
|
|
|
if [[ -f "${PW_PLUGINS_PATH}/portable/bin/$PW_YAD_BIN" ]]
|
|
|
|
|
then export pw_yad="${PW_PLUGINS_PATH}/portable/bin/$PW_YAD_BIN"
|
|
|
|
|
if [[ -f "$PW_GUI_THEMES_PATH/gui/yad_gui_pp" ]]
|
|
|
|
|
then export pw_yad="$PW_GUI_THEMES_PATH/gui/yad_gui_pp"
|
|
|
|
|
elif command -v yad &>/dev/null
|
|
|
|
|
then local pw_yad="yad"
|
|
|
|
|
else local pw_yad="not_found"
|
|
|
|
@ -1413,18 +1411,22 @@ edit_db_field_read () {
|
|
|
|
|
|
|
|
|
|
edit_db_from_gui () {
|
|
|
|
|
print_info "edit_db_from_gui PORTWINE_DB_FILE=$PORTWINE_DB_FILE"
|
|
|
|
|
for mod_db in $@ ; do
|
|
|
|
|
if ! grep "export ${mod_db}=" "${PORTWINE_DB_FILE}" &>/dev/null
|
|
|
|
|
then echo "export ${mod_db}=\"${!mod_db}\"" >> "${PORTWINE_DB_FILE}"
|
|
|
|
|
elif grep "export ${mod_db}=" "${PORTWINE_DB_FILE}" | grep -v "#" &>/dev/null
|
|
|
|
|
then
|
|
|
|
|
if [[ "$(grep "export ${mod_db}=" "${PORTWINE_DB_FILE}" | grep -v "#")" != "export ${mod_db}=\"${!mod_db}\"" ]]
|
|
|
|
|
then sed -ri "s|^export ${mod_db}=.*|export ${mod_db}=\"${!mod_db}\"|" "${PORTWINE_DB_FILE}"
|
|
|
|
|
if [[ ! -z "$PORTWINE_DB_FILE" ]] \
|
|
|
|
|
&& [[ -f "$PORTWINE_DB_FILE" ]]
|
|
|
|
|
then
|
|
|
|
|
for mod_db in $@ ; do
|
|
|
|
|
if ! grep "export ${mod_db}=" "${PORTWINE_DB_FILE}" &>/dev/null
|
|
|
|
|
then echo "export ${mod_db}=\"${!mod_db}\"" >> "${PORTWINE_DB_FILE}"
|
|
|
|
|
elif grep "export ${mod_db}=" "${PORTWINE_DB_FILE}" | grep -v "#" &>/dev/null
|
|
|
|
|
then
|
|
|
|
|
if [[ "$(grep "export ${mod_db}=" "${PORTWINE_DB_FILE}" | grep -v "#")" != "export ${mod_db}=\"${!mod_db}\"" ]]
|
|
|
|
|
then sed -ri "s|^export ${mod_db}=.*|export ${mod_db}=\"${!mod_db}\"|" "${PORTWINE_DB_FILE}"
|
|
|
|
|
fi
|
|
|
|
|
elif [[ "$(grep "export ${mod_db}=" "${PORTWINE_DB_FILE}")" != "export ${mod_db}=${!mod_db}" ]]
|
|
|
|
|
then sed -ri "s|.*export ${mod_db}=.*|export ${mod_db}=\"${!mod_db}\"|g" "${PORTWINE_DB_FILE}"
|
|
|
|
|
fi
|
|
|
|
|
elif [[ "$(grep "export ${mod_db}=" "${PORTWINE_DB_FILE}")" != "export ${mod_db}=${!mod_db}" ]]
|
|
|
|
|
then sed -ri "s|.*export ${mod_db}=.*|export ${mod_db}=\"${!mod_db}\"|g" "${PORTWINE_DB_FILE}"
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
done
|
|
|
|
|
fi
|
|
|
|
|
return 0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1449,7 +1451,12 @@ pw_create_gui_png () {
|
|
|
|
|
if [[ ! -z "${PORTWINE_CREATE_SHORTCUT_NAME}" ]] ; then
|
|
|
|
|
PORTPROTON_NAME="${PORTWINE_CREATE_SHORTCUT_NAME}"
|
|
|
|
|
else
|
|
|
|
|
PW_PRODUCTNAME=$(env PERL5LIB="${PW_PLUGINS_PATH}/portable/lib/perl5" "${PW_PLUGINS_PATH}/portable/bin/exiftool" -ProductName "${portwine_exe}" 2>/dev/null | sed -n 's/^Product Name\s*:\s*//p')
|
|
|
|
|
if command -v exiftool &>/dev/null ; then
|
|
|
|
|
PW_PRODUCTNAME=$(exiftool -ProductName "${portwine_exe}" 2>/dev/null | sed -n 's/^Product Name\s*:\s*//p')
|
|
|
|
|
else
|
|
|
|
|
PW_PRODUCTNAME=$(env PERL5LIB="${PW_PLUGINS_PATH}/portable/lib/perl5" "${PW_PLUGINS_PATH}/portable/bin/exiftool" -ProductName "${portwine_exe}" 2>/dev/null | sed -n 's/^Product Name\s*:\s*//p')
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [[ "$PW_PRODUCTNAME" =~ "Launcher" ]] \
|
|
|
|
|
|| [[ "$PW_PRODUCTNAME" =~ "RU" ]]
|
|
|
|
|
then
|
|
|
|
@ -1481,7 +1488,7 @@ pw_create_gui_png () {
|
|
|
|
|
else
|
|
|
|
|
env PYTHONPATH="${PW_PLUGINS_PATH}/portable/lib/python3.9/site-packages/" \
|
|
|
|
|
LD_LIBRARY_PATH="${PW_PLUGINS_PATH}/portable/lib/lib64" \
|
|
|
|
|
"${PW_WINELIB}/runtime/files/bin/python3.9" \
|
|
|
|
|
"${PW_WINELIB}/runtime/files/bin/python3.9" \
|
|
|
|
|
"${PW_PLUGINS_PATH}/portable/bin/exe-thumbnailer" -s "${PW_RESIZE_TO}" \
|
|
|
|
|
"$(readlink -f "${portwine_exe}")" "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png"
|
|
|
|
|
fi
|
|
|
|
@ -2312,7 +2319,7 @@ start_portwine () {
|
|
|
|
|
echo "START WINETRICKS..." >> "${PORT_WINE_TMP_PATH}/update_pfx_log"
|
|
|
|
|
echo "Try to install DLL in prefix: ${PW_DLL_NEED_INSTALL}" >> "${PORT_WINE_TMP_PATH}/update_pfx_log"
|
|
|
|
|
print_info "Try to install DLL in prefix: ${PW_DLL_NEED_INSTALL}"
|
|
|
|
|
${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" GST_PLUGIN_SYSTEM_PATH_1_0="" \
|
|
|
|
|
${pw_runtime} LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" GST_PLUGIN_SYSTEM_PATH_1_0="" \
|
|
|
|
|
"${PORT_WINE_TMP_PATH}/winetricks" -q -r -f ${PW_DLL_NEED_INSTALL} | tee -a "${PORT_WINE_TMP_PATH}/update_pfx_log"
|
|
|
|
|
wait_wineserver
|
|
|
|
|
kill_portwine
|
|
|
|
@ -2327,7 +2334,7 @@ start_portwine () {
|
|
|
|
|
then
|
|
|
|
|
export PW_WINDOWS_VER="xp64"
|
|
|
|
|
fi
|
|
|
|
|
${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}" GST_PLUGIN_SYSTEM_PATH_1_0="" \
|
|
|
|
|
${pw_runtime} LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}" GST_PLUGIN_SYSTEM_PATH_1_0="" \
|
|
|
|
|
"${WINELOADER}" winecfg -v $(echo "win${PW_WINDOWS_VER}" | sed 's/.*/\L&/')
|
|
|
|
|
wait_wineserver
|
|
|
|
|
kill_portwine
|
|
|
|
@ -2354,10 +2361,10 @@ start_portwine () {
|
|
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
print_info "Added DisableHidraw = 0 to reg file"
|
|
|
|
|
${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}" GST_PLUGIN_SYSTEM_PATH_1_0="" \
|
|
|
|
|
${pw_runtime} LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}" GST_PLUGIN_SYSTEM_PATH_1_0="" \
|
|
|
|
|
"${WINELOADER}" reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\winebus" /v "DisableHidraw" /t REG_DWORD /d 0 /f
|
|
|
|
|
print_info "Added Enable SDL = 0 to reg file"
|
|
|
|
|
${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}" GST_PLUGIN_SYSTEM_PATH_1_0="" \
|
|
|
|
|
${pw_runtime} LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}" GST_PLUGIN_SYSTEM_PATH_1_0="" \
|
|
|
|
|
"${WINELOADER}" reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\winebus" /v "Enable SDL" /t REG_DWORD /d 0 /f
|
|
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
@ -2375,10 +2382,10 @@ start_portwine () {
|
|
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
print_info "Added DisableHidraw = 1 to reg file"
|
|
|
|
|
${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}" GST_PLUGIN_SYSTEM_PATH_1_0="" \
|
|
|
|
|
${pw_runtime} LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}" GST_PLUGIN_SYSTEM_PATH_1_0="" \
|
|
|
|
|
"${WINELOADER}" reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\winebus" /v "DisableHidraw" /t REG_DWORD /d 1 /f
|
|
|
|
|
print_info "Added Enable SDL = 1 to reg file"
|
|
|
|
|
${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}" GST_PLUGIN_SYSTEM_PATH_1_0="" \
|
|
|
|
|
${pw_runtime} LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}" GST_PLUGIN_SYSTEM_PATH_1_0="" \
|
|
|
|
|
"${WINELOADER}" reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\winebus" /v "Enable SDL" /t REG_DWORD /d 1 /f
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
@ -2449,7 +2456,6 @@ pw_run () {
|
|
|
|
|
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}" \
|
|
|
|
@ -2468,7 +2474,6 @@ pw_run () {
|
|
|
|
|
echo "Log WINE:" > "${PW_LOG_TO_FILE}"
|
|
|
|
|
${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}" \
|
|
|
|
@ -2592,7 +2597,6 @@ pw_start_cont_xterm () {
|
|
|
|
|
unset PW_SANDBOX_HOME_PATH
|
|
|
|
|
pw_init_runtime
|
|
|
|
|
${pw_runtime} \
|
|
|
|
|
env PATH="${PATH}" \
|
|
|
|
|
LD_PRELOAD="${PW_LD_PRELOAD}" \
|
|
|
|
|
VK_LAYER_PATH="${PW_VK_LAYER_PATH}" \
|
|
|
|
|
VK_INSTANCE_LAYERS="${PW_VK_INSTANCE_LAYERS}" \
|
|
|
|
@ -2609,7 +2613,7 @@ yad_info () {
|
|
|
|
|
fi
|
|
|
|
|
"${pw_yad}" --no-wrap --text "$@" --width=400 --height=50 --borders=15 --title "INFO" \
|
|
|
|
|
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" --image="$PW_GUI_ICON_PATH/info.svg" \
|
|
|
|
|
--center --text-align=center \
|
|
|
|
|
--center --text-align=center --fixed \
|
|
|
|
|
--button="$(eval_gettext "OK")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png" 2>/dev/null
|
|
|
|
|
}
|
|
|
|
|
export -f yad_info
|
|
|
|
@ -2622,7 +2626,7 @@ yad_error () {
|
|
|
|
|
fi
|
|
|
|
|
"${pw_yad}" --no-wrap --text "$@" --width=400 --borders=15 --title "ERROR" \
|
|
|
|
|
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" --image="$PW_GUI_ICON_PATH/error.svg" \
|
|
|
|
|
--center --text-align=center \
|
|
|
|
|
--center --text-align=center --fixed \
|
|
|
|
|
--button="$(eval_gettext "EXIT")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png" 2>/dev/null
|
|
|
|
|
}
|
|
|
|
|
export -f yad_error
|
|
|
|
@ -2648,7 +2652,7 @@ yad_question () {
|
|
|
|
|
fi
|
|
|
|
|
"${pw_yad}" --text "${1}" --width=400 --borders=15 --title "$(eval_gettext "Choices")" \
|
|
|
|
|
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" --image="$PW_GUI_ICON_PATH/question.svg" \
|
|
|
|
|
--no-wrap --center --text-align=center \
|
|
|
|
|
--no-wrap --center --text-align=center --fixed \
|
|
|
|
|
--button="$(eval_gettext "CANCEL")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1 \
|
|
|
|
|
--button="$(eval_gettext "OK")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 2>/dev/null
|
|
|
|
|
[[ "$?" != 0 ]] && return 1 || return 0
|
|
|
|
@ -2692,14 +2696,16 @@ pw_update_pfx_cover_gui () {
|
|
|
|
|
YAD_UNDECORATED="--undecorated --center"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if ! check_start_from_steam && ! pgrep -a yad | grep "$PW_YAD_BIN --notebook --key=$PW_KEY_PROGRESS_BAR_UP" &>/dev/null ; then
|
|
|
|
|
if ! check_start_from_steam \
|
|
|
|
|
&& ! pgrep -a yad | grep "yad_gui_pp --notebook --key=$PW_KEY_PROGRESS_BAR_UP" &>/dev/null
|
|
|
|
|
then
|
|
|
|
|
PW_KEY_PROGRESS_BAR_UP=$RANDOM
|
|
|
|
|
PW_GIF_FILE="${COVERS_PATH}/update_prefix_${LANGUAGE}.gif"
|
|
|
|
|
PW_GIF_SIZE_X=$(file "${PW_GIF_FILE}" | awk '{print $7 + 20}')
|
|
|
|
|
PW_GIF_SIZE_Y=$(file "${PW_GIF_FILE}" | awk '{print $9 + 65}')
|
|
|
|
|
echo "UPDATE PREFIX..." > "${PORT_WINE_TMP_PATH}/update_pfx_log"
|
|
|
|
|
export PW_TIMER=0
|
|
|
|
|
while read -r line || [[ ! -z $(pgrep -a yad | grep "$PW_YAD_BIN --notebook --key=$PW_KEY_PROGRESS_BAR_UP" | awk '{print $1}') ]] ; do
|
|
|
|
|
while read -r line || [[ ! -z $(pgrep -a yad | grep "yad_gui_pp --notebook --key=$PW_KEY_PROGRESS_BAR_UP" | awk '{print $1}') ]] ; do
|
|
|
|
|
sleep 0.005
|
|
|
|
|
if [[ ! -z "${line}" ]] && [[ -z "$(echo "${line}" | grep -i "gstreamer")" ]] \
|
|
|
|
|
&& [[ -z "$(echo "${line}" | grep -i "kerberos")" ]] \
|
|
|
|
@ -2795,8 +2801,8 @@ open_changelog () {
|
|
|
|
|
export -f open_changelog
|
|
|
|
|
|
|
|
|
|
pw_tray_icon () {
|
|
|
|
|
if [ ! -z "$(pgrep -a $PW_YAD_BIN | grep "\--notification" | awk '{print $1}')" ] ; then
|
|
|
|
|
kill -s SIGUSR1 "$(pgrep -a $PW_YAD_BIN | grep "\--notification" | awk '{print $1}')"
|
|
|
|
|
if [ ! -z "$(pgrep -a yad_gui_pp | grep "\--notification" | awk '{print $1}')" ] ; then
|
|
|
|
|
kill -s SIGUSR1 "$(pgrep -a yad_gui_pp | grep "\--notification" | awk '{print $1}')"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
tray_icon_click () {
|
|
|
|
@ -2848,8 +2854,6 @@ pw_gui_for_edit_db () {
|
|
|
|
|
GPU_VAR="disabled"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
GET_GPU_NAMES=$("$PW_VULKANINFO_PORTABLE" 2>/dev/null | awk -F '=' '/deviceName/{print $2}' | sed '/llvm/d'| sort -u | sed 's/^ //' | paste -sd '!')
|
|
|
|
|
|
|
|
|
|
logical_cores=$(grep -c "^processor" /proc/cpuinfo)
|
|
|
|
|
if [[ "${logical_cores}" -le "4" ]] ; then
|
|
|
|
|
GET_LOGICAL_CORE="1!$(seq -s! 1 $((${logical_cores} - 1)))"
|
|
|
|
@ -3653,7 +3657,6 @@ gui_MangoHud () {
|
|
|
|
|
pw_init_runtime
|
|
|
|
|
pw_mangohud_check
|
|
|
|
|
${pw_runtime} \
|
|
|
|
|
env PATH="${PATH}" \
|
|
|
|
|
LD_PRELOAD="${PW_LD_PRELOAD}" \
|
|
|
|
|
VK_LAYER_PATH="${PW_VK_LAYER_PATH}" \
|
|
|
|
|
VK_INSTANCE_LAYERS="${PW_VK_INSTANCE_LAYERS}" \
|
|
|
|
@ -3749,13 +3752,14 @@ gui_dgVoodoo2 () {
|
|
|
|
|
|
|
|
|
|
# GUI CREATE SHORTCUT
|
|
|
|
|
portwine_create_shortcut () {
|
|
|
|
|
export GDK_BACKEND="x11"
|
|
|
|
|
pw_stop_progress_bar
|
|
|
|
|
[[ ! -e ${portwine_exe} ]] && return 1
|
|
|
|
|
pw_create_gui_png
|
|
|
|
|
|
|
|
|
|
if [[ "$1" == "block_name" ]] ; then
|
|
|
|
|
export name_desktop="${PORTPROTON_NAME}"
|
|
|
|
|
OUTPUT=$("${pw_yad}" --title="$(eval_gettext "Choices")" --form \
|
|
|
|
|
OUTPUT=$("${pw_yad}" --title="$(eval_gettext "Choices")" --form --gui-type=start \
|
|
|
|
|
--window-icon "$PW_GUI_ICON_PATH/portproton.svg" \
|
|
|
|
|
--image "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" \
|
|
|
|
|
--field="$(eval_gettext "The shortcut will be created in the PortProton directory.")":LBL "" \
|
|
|
|
@ -3767,7 +3771,7 @@ portwine_create_shortcut () {
|
|
|
|
|
PW_YAD_OUT=$?
|
|
|
|
|
else
|
|
|
|
|
export name_desktop="${PORTPROTON_NAME}"
|
|
|
|
|
OUTPUT=$("${pw_yad}" --title="$(eval_gettext "Choices")" --form \
|
|
|
|
|
OUTPUT=$("${pw_yad}" --title="$(eval_gettext "Choices")" --form --gui-type=start \
|
|
|
|
|
--window-icon "$PW_GUI_ICON_PATH/portproton.svg" \
|
|
|
|
|
--image "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" \
|
|
|
|
|
--field="$(eval_gettext "The shortcut will be created in the PortProton directory.")":LBL "" \
|
|
|
|
@ -3785,14 +3789,15 @@ portwine_create_shortcut () {
|
|
|
|
|
else name_desktop=$(echo "$OUTPUT" | awk -F'|' '{print $2}')
|
|
|
|
|
fi
|
|
|
|
|
name_desktop="$(echo "${name_desktop}" | sed "s/\`//g" | sed "s/\"//g" | sed "s/'//g")"
|
|
|
|
|
name_desktop_png="${name_desktop// /_}"
|
|
|
|
|
create_menu_desktop_shortcut=$(echo "$OUTPUT" | awk -F'|' '{print $3}')
|
|
|
|
|
create_desktop_desktop_shortcut=$(echo "$OUTPUT" | awk -F'|' '{print $4}')
|
|
|
|
|
create_menu_steam_shortcut=$(echo "$OUTPUT" | awk -F'|' '{print $5}')
|
|
|
|
|
|
|
|
|
|
try_remove_file "${PORT_WINE_PATH}/${name_desktop}.desktop"
|
|
|
|
|
|
|
|
|
|
if [[ "${PORTPROTON_NAME}" != "${name_desktop}" ]]
|
|
|
|
|
then mv -f "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" "${PORT_WINE_PATH}/data/img/${name_desktop}.png"
|
|
|
|
|
if [[ "${PORTPROTON_NAME}" != "${name_desktop_png}" ]]
|
|
|
|
|
then mv -f "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" "${PORT_WINE_PATH}/data/img/${name_desktop_png}.png"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop"
|
|
|
|
@ -3806,7 +3811,7 @@ portwine_create_shortcut () {
|
|
|
|
|
echo "Categories=Game"
|
|
|
|
|
echo "StartupNotify=true"
|
|
|
|
|
echo "Path=${PORT_SCRIPTS_PATH}/"
|
|
|
|
|
echo "Icon=${PORT_WINE_PATH}/data/img/${name_desktop}.png"
|
|
|
|
|
echo "Icon=${PORT_WINE_PATH}/data/img/${name_desktop_png}.png"
|
|
|
|
|
} >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
|
|
|
|
|
chmod u+x "${PORT_WINE_PATH}/${name_desktop}.desktop"
|
|
|
|
|
|
|
|
|
@ -3880,9 +3885,9 @@ portwine_delete_shortcut () {
|
|
|
|
|
|
|
|
|
|
portwine_missing_shortcut () {
|
|
|
|
|
"${pw_yad}" --title="$(eval_gettext "Error")" --form \
|
|
|
|
|
--window-icon "$PW_GUI_ICON_PATH/portproton.svg" \
|
|
|
|
|
--window-icon "$PW_GUI_ICON_PATH/portproton.svg" --fixed \
|
|
|
|
|
--image "$PW_GUI_ICON_PATH/error.svg" \
|
|
|
|
|
--text "\n$(eval_gettext "Could not find the file:")\n${portwine_exe}\n\n$(eval_gettext "ATTENTION:\nIf you forgot to mount the disk with the running application, click CANCEL!")" \
|
|
|
|
|
--text "\n$(eval_gettext "Could not find the file:")\n${portwine_exe}\n\n$(eval_gettext "ATTENTION:\nIf you forgot to mount the disk with the running application, click CANCEL!")\n" \
|
|
|
|
|
--button="$(eval_gettext "DELETE SHORTCUT")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 \
|
|
|
|
|
--button="$(eval_gettext "CANCEL")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1
|
|
|
|
|
if [ $? -eq "0" ] ; then
|
|
|
|
@ -3987,7 +3992,7 @@ pw_prefix_manager () {
|
|
|
|
|
echo "START WINETRICKS..." >> "${PORT_WINE_TMP_PATH}/update_pfx_log"
|
|
|
|
|
echo "Try to install DLL in prefix: ${SET_FROM_PFX_MANAGER}" >> "${PORT_WINE_TMP_PATH}/update_pfx_log"
|
|
|
|
|
print_info "Try to install DLL in prefix: ${SET_FROM_PFX_MANAGER}"
|
|
|
|
|
${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" GST_PLUGIN_SYSTEM_PATH_1_0="" \
|
|
|
|
|
${pw_runtime} LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" GST_PLUGIN_SYSTEM_PATH_1_0="" \
|
|
|
|
|
"${PORT_WINE_TMP_PATH}/winetricks" -q -r -f ${SET_FROM_PFX_MANAGER} | tee -a "${PORT_WINE_TMP_PATH}/update_pfx_log"
|
|
|
|
|
wait_wineserver
|
|
|
|
|
kill_portwine
|
|
|
|
@ -4151,7 +4156,7 @@ portwine_start_debug () {
|
|
|
|
|
sleep 3
|
|
|
|
|
pw_stop_progress_bar_cover
|
|
|
|
|
unset PW_TIMER
|
|
|
|
|
while read -r line || [[ ! -z $(pgrep -a yad | grep "$PW_YAD_BIN --text-info --tail --button="STOP"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 --title="DEBUG"" | awk '{print $1}') ]] ; do
|
|
|
|
|
while read -r line || [[ ! -z $(pgrep -a yad | grep "yad_gui_pp --text-info --tail --button="STOP"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 --title="DEBUG"" | awk '{print $1}') ]] ; do
|
|
|
|
|
sleep 0.005
|
|
|
|
|
if [[ ! -z "${line}" ]] && [[ -z "$(echo "${line}" | grep -i "kerberos")" ]] \
|
|
|
|
|
&& [[ -z "$(echo "${line}" | grep -i "ntlm")" ]]
|
|
|
|
@ -4197,7 +4202,7 @@ pw_create_prefix_backup () {
|
|
|
|
|
pw_init_runtime
|
|
|
|
|
if check_flatpak
|
|
|
|
|
then TMP_ALL_PATH=""
|
|
|
|
|
else TMP_ALL_PATH="env PATH=\"${PATH}\" LD_LIBRARY_PATH=\"${PW_LD_LIBRARY_PATH}\""
|
|
|
|
|
else TMP_ALL_PATH="LD_LIBRARY_PATH=\"${PW_LD_LIBRARY_PATH}\""
|
|
|
|
|
fi
|
|
|
|
|
chmod -R u+w "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"
|
|
|
|
|
cat << EOF > "${PORT_WINE_TMP_PATH}"/pp_pfx_backup.sh
|
|
|
|
@ -4223,14 +4228,12 @@ EOF
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pw_edit_db () {
|
|
|
|
|
PW_EDIT_DB_LIST="PW_MANGOHUD PW_MANGOHUD_USER_CONF PW_VKBASALT PW_VKBASALT_USER_CONF PW_DGVOODOO2 PW_NO_ESYNC PW_NO_FSYNC
|
|
|
|
|
PW_USE_RAY_TRACING PW_USE_NVAPI_AND_DLSS PW_USE_FAKE_DLSS PW_WINE_FULLSCREEN_FSR PW_HIDE_NVIDIA_GPU
|
|
|
|
|
PW_EDIT_DB_LIST="PW_MANGOHUD PW_MANGOHUD_USER_CONF PW_VKBASALT PW_VKBASALT_USER_CONF PW_DGVOODOO2 PW_USE_GAMESCOPE
|
|
|
|
|
PW_NO_ESYNC PW_NO_FSYNC PW_USE_RAY_TRACING PW_USE_NVAPI_AND_DLSS PW_USE_FAKE_DLSS PW_WINE_FULLSCREEN_FSR PW_HIDE_NVIDIA_GPU
|
|
|
|
|
PW_VIRTUAL_DESKTOP PW_USE_TERMINAL PW_GUI_DISABLED_CS PW_USE_GAMEMODE PW_USE_D3D_EXTRAS PW_FIX_VIDEO_IN_GAME
|
|
|
|
|
PW_REDUCE_PULSE_LATENCY PW_USE_US_LAYOUT PW_USE_GSTREAMER PW_FORCE_LARGE_ADDRESS_AWARE PW_USE_SHADER_CACHE
|
|
|
|
|
PW_USE_WINE_DXGI PW_USE_EAC_AND_BE PW_USE_SYSTEM_VK_LAYERS PW_USE_OBS_VKCAPTURE PW_USE_GAMESCOPE PW_DISABLE_COMPOSITING
|
|
|
|
|
PW_USE_RUNTIME PW_DINPUT_PROTOCOL
|
|
|
|
|
|
|
|
|
|
"
|
|
|
|
|
PW_USE_WINE_DXGI PW_USE_EAC_AND_BE PW_USE_SYSTEM_VK_LAYERS PW_USE_OBS_VKCAPTURE PW_DISABLE_COMPOSITING
|
|
|
|
|
PW_USE_RUNTIME PW_DINPUT_PROTOCOL"
|
|
|
|
|
|
|
|
|
|
if check_wayland_session ; then
|
|
|
|
|
rm_from_var PW_EDIT_DB_LIST "PW_USE_US_LAYOUT"
|
|
|
|
@ -4269,7 +4272,7 @@ export -f gui_credits
|
|
|
|
|
|
|
|
|
|
button_click () {
|
|
|
|
|
[[ ! -z "$1" ]] && echo "$1" > "${PORT_WINE_TMP_PATH}/tmp_yad_form"
|
|
|
|
|
if [[ ! -z $(pidof -s yad) ]] || [[ ! -z $(pidof -s $PW_YAD_BIN) ]] ; then
|
|
|
|
|
if [[ ! -z $(pidof -s yad) ]] || [[ ! -z $(pidof -s yad_gui_pp) ]] ; then
|
|
|
|
|
kill -s SIGUSR1 $(pgrep -a yad | grep "\--key=${KEY} \--notebook" | awk '{print $1}') > /dev/null 2>&1
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
@ -4277,7 +4280,7 @@ export -f button_click
|
|
|
|
|
|
|
|
|
|
button_click_start () {
|
|
|
|
|
[[ ! -z "$1" ]] && echo "$1" > "${PORT_WINE_TMP_PATH}/tmp_yad_form"
|
|
|
|
|
if [[ ! -z $(pidof -s yad) ]] || [[ ! -z $(pidof -s $PW_YAD_BIN) ]] ; then
|
|
|
|
|
if [[ ! -z $(pidof -s yad) ]] || [[ ! -z $(pidof -s yad_gui_pp) ]] ; then
|
|
|
|
|
kill -s SIGUSR1 $(pgrep -a yad | grep "\--key=${KEY_START} \--notebook" | awk '{print $1}') > /dev/null 2>&1 \
|
|
|
|
|
|| kill -s SIGUSR1 $(pgrep -a yad | grep "\--key=${KEY_START} \--paned" | awk '{print $1}') > /dev/null 2>&1
|
|
|
|
|
fi
|
|
|
|
@ -4286,7 +4289,7 @@ export -f button_click_start
|
|
|
|
|
|
|
|
|
|
run_desktop_b_click () {
|
|
|
|
|
[[ ! -z "$1" ]] && echo "$1" > "${PORT_WINE_TMP_PATH}/tmp_yad_form"
|
|
|
|
|
if [[ ! -z $(pidof -s yad) ]] || [[ ! -z $(pidof -s $PW_YAD_BIN) ]] ; then
|
|
|
|
|
if [[ ! -z $(pidof -s yad) ]] || [[ ! -z $(pidof -s yad_gui_pp) ]] ; then
|
|
|
|
|
kill -s SIGUSR1 $(pgrep -a yad | grep "\--key=${KEY} \--notebook" | awk '{print $1}') > /dev/null 2>&1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|