diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper
index f3bf3d8..1875c15 100755
--- a/data_from_portwine/scripts/functions_helper
+++ b/data_from_portwine/scripts/functions_helper
@@ -110,8 +110,8 @@ try_copy_file () {
export -f try_copy_file
try_copy_dir () {
- if [ ! -d "$1" ] ; then print_info "directory $1 not found for copy"
- elif [ -z "$2" ] ; then print_error "no way to copy directory $1"
+ if [ ! -d "$1" ] ; then print_info "directory $1 not found for copy"
+ elif [ -z "$2" ] ; then print_error "no way to copy directory $1"
else
cp -fr "$1" "$2"
[ "$?" != 0 ] && print_error "failed to copy directory $1 to $2" || return 0
@@ -145,7 +145,7 @@ create_new_dir () {
try_force_link_file () {
if [ ! -f "$1" ] ; then :
- elif [ -z "$2" ] ; then print_error "no way to link file $1"
+ elif [ -z "$2" ] ; then print_error "no way to link file $1"
else
ln -s -f -r "$1" "$2"
[ "$?" != 0 ] && print_error "failed to link file $1 to $2" || return 0
@@ -169,8 +169,8 @@ check_symlink () {
export -f check_symlink
try_force_link_dir () {
- if [ ! -d "$1" ] ; then print_info "directory $1 not found for link"
- elif [ -z "$2" ] ; then print_error "no way to link directory $1"
+ if [ ! -d "$1" ] ; then print_info "directory $1 not found for link"
+ elif [ -z "$2" ] ; then print_error "no way to link directory $1"
else
ln -s -f -r "$1" "$2"
[ "$?" != 0 ] && print_error "failed to link directory $1 to $2" || return 0
@@ -444,8 +444,6 @@ check_user_conf () {
# export DXVK_HUD=full"
# export GALLIUM_HUD=fps"
EOF
- elif grep "optirun_on" "${USER_CONF}" &>/dev/null ; then
- sed -i '/optirun_on/d' "${USER_CONF}"
fi
}
@@ -539,20 +537,18 @@ init_wine_ver () {
fi
done
- grep 'Global,"{41FCC608-8496-4DEF-B43E-7D9BD675A6FF}",0x10001,0x00000001' "${WINEDIR}/share/wine/wine.inf" &> /dev/null
- if [[ "$?" != "0" ]] ; then
+ if ! grep 'Global,"{41FCC608-8496-4DEF-B43E-7D9BD675A6FF}",0x10001,0x00000001' "${WINEDIR}/share/wine/wine.inf" &> /dev/null ; then
echo 'HKLM,Software\NVIDIA Corporation\Global,"{41FCC608-8496-4DEF-B43E-7D9BD675A6FF}",0x10001,0x00000001' >> "${WINEDIR}/share/wine/wine.inf"
echo 'HKLM,System\ControlSet001\Services\nvlddmkm,"{41FCC608-8496-4DEF-B43E-7D9BD675A6FF}",0x10001,0x00000001' >> "${WINEDIR}/share/wine/wine.inf"
sed -i '/Steam.exe/d' "${WINEDIR}/share/wine/wine.inf"
sed -i '/\\Valve\\Steam/d' "${WINEDIR}/share/wine/wine.inf"
sed -i '/winemenubuilder/d' "${WINEDIR}/share/wine/wine.inf"
+ rm -f "${WINEDIR}"/lib*/*steam* &>/dev/null
+ rm -f "${WINEDIR}"/lib*/wine/*/*steam* &>/dev/null
+ rm -f "${WINEDIR}"/lib*/wine/*-windows/winemenubuilder.exe &>/dev/null
fi
fi
- rm -f "${WINEDIR}"/lib*/*steam* &>/dev/null
- rm -f "${WINEDIR}"/lib*/wine/*/*steam* &>/dev/null
- rm -f "${WINEDIR}"/lib*/wine/*-windows/winemenubuilder.exe &>/dev/null
-
export WINEDLLPATH="${WINEDIR}/lib64/wine:${WINEDIR}/lib/wine"
if [[ -d "${PATH_TO_GAME}" ]] ; then
export WINEDLLPATH+=":${PATH_TO_GAME}"
@@ -844,6 +840,7 @@ stop_portwine () {
kill -s SIGUSR1 "$(pgrep -a $PW_YAD_BIN | grep "\--notification" | awk '{print $1}')" 2>/dev/null
fi
add_in_stop_portwine
+ unset SKIP_CHECK_UPDATES
exit 0
}
export -f stop_portwine
@@ -1263,8 +1260,6 @@ pw_init_db () {
fi
done
fi
- # rename var ENABLE_VKBASALT to PW_VKBASALT
- sed -i 's/ENABLE_VKBASALT/PW_VKBASALT/g' "${PORTWINE_DB_FILE}"
fi
[[ "${START_FROM_STEAM}" == 1 ]] && export PW_GUI_DISABLED_CS=1
@@ -1447,26 +1442,29 @@ edit_user_conf_from_gui () {
}
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 [[ "$PW_PRODUCTNAME" =~ "Launcher" ]] \
- || [[ "$PW_PRODUCTNAME" =~ "RU" ]]
- then
- PW_PRODUCTNAME="$(echo "$PW_PRODUCTNAME" | sed 's/Launcher\|RU//g')"
- fi
-
- if [[ ! -z "$PW_PRODUCTNAME" ]] \
- && [[ "$PW_PRODUCTNAME" != Bootstrap* ]] \
- && ! echo "${portwine_exe}" | grep -i "setup" &>/dev/null
- then
- PORTPROTON_NAME="$PW_PRODUCTNAME"
+ if [[ -z "$PORTPROTON_NAME" ]] ; then
+ if [[ ! -z "${PORTWINE_CREATE_SHORTCUT_NAME}" ]] ; then
+ PORTPROTON_NAME="${PORTWINE_CREATE_SHORTCUT_NAME}"
else
- PORTPROTON_NAME="$(basename "${portwine_exe}" .exe)"
+ 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 [[ "$PW_PRODUCTNAME" =~ "Launcher" ]] \
+ || [[ "$PW_PRODUCTNAME" =~ "RU" ]]
+ then
+ PW_PRODUCTNAME="$(echo "$PW_PRODUCTNAME" | sed 's/Launcher\|RU//g')"
+ fi
+
+ if [[ ! -z "$PW_PRODUCTNAME" ]] \
+ && [[ "$PW_PRODUCTNAME" != Bootstrap* ]] \
+ && ! echo "${portwine_exe}" | grep -i "setup" &>/dev/null
+ then
+ PORTPROTON_NAME="$PW_PRODUCTNAME"
+ else
+ PORTPROTON_NAME="$(basename "${portwine_exe}" .exe)"
+ fi
fi
+ export PORTPROTON_NAME
+ edit_db_from_gui PORTPROTON_NAME
fi
- export PORTPROTON_NAME
PW_RESIZE_TO="128"
try_remove_file "${PORT_WINE_PATH}/data/img/setup.png"
try_remove_file "${PORT_WINE_PATH}/data/img/Setup.png"
diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh
index 8b1c93a..93ec4ce 100755
--- a/data_from_portwine/scripts/start.sh
+++ b/data_from_portwine/scripts/start.sh
@@ -2,6 +2,7 @@
# Author: Castro-Fidel (linux-gaming.ru)
# Development assistants: Cefeiko; Dezert1r; Taz_mania; Anton_Famillianov; gavr; RidBowt; chal55rus; UserDiscord; Boria138; Vano; Akai
# shellcheck disable=SC2140,SC2119,SC2206
+export START=$(date +%s.%N)
########################################################################
echo '
█░░ █ █▄░█ █░█ ▀▄▀ ▄▄ █▀▀ ▄▀█ █▀▄▀█ █ █▄░█ █▀▀ ░ █▀█ █░█
@@ -61,7 +62,9 @@ fi
source "${PORT_SCRIPTS_PATH}/functions_helper"
create_new_dir "${HOME}/.local/share/applications"
-if [[ "${PW_SILENT_RESTART}" == 1 ]] || [[ "${START_FROM_STEAM}" == 1 ]] ; then
+if [[ "${PW_SILENT_RESTART}" == 1 ]] \
+|| [[ "${START_FROM_STEAM}" == 1 ]]
+then
export PW_GUI_DISABLED_CS=1
unset PW_SILENT_RESTART
else
@@ -70,7 +73,7 @@ fi
unset MANGOHUD MANGOHUD_DLSYM PW_NO_ESYNC PW_NO_FSYNC PW_VULKAN_USE WINEDLLOVERRIDES PW_NO_WRITE_WATCH PW_YAD_SET PW_ICON_FOR_YAD
unset PW_CHECK_AUTOINSTAL PW_VKBASALT_EFFECTS PW_VKBASALT_FFX_CAS PORTWINE_DB PORTWINE_DB_FILE PW_DISABLED_CREATE_DB RADV_PERFTEST
-unset CHK_SYMLINK_FILE PW_MESA_GL_VERSION_OVERRIDE PW_VKD3D_FEATURE_LEVEL PATH_TO_GAME PW_START_DEBUG PORTPROTON_NAME FLATPAK_IN_USE
+unset CHK_SYMLINK_FILE PW_MESA_GL_VERSION_OVERRIDE PW_VKD3D_FEATURE_LEVEL PATH_TO_GAME PW_START_DEBUG PORTPROTON_NAME
unset PW_PREFIX_NAME WINEPREFIX VULKAN_MOD PW_WINE_VER PW_ADD_TO_ARGS_IN_RUNTIME PW_GAMEMODERUN_SLR AMD_VULKAN_ICD PW_WINE_CPU_TOPOLOGY
unset PW_NAME_D_NAME PW_NAME_D_ICON PW_NAME_D_EXEC PW_EXEC_FROM_DESKTOP PW_ALL_DF PW_GENERATE_BUTTONS PW_NAME_D_ICON PW_NAME_D_ICON_48
unset MANGOHUD_CONFIG FPS_LIMIT PW_WINE_USE WINEDLLPATH WINE WINEDIR WINELOADER WINESERVER PW_USE_RUNTIME PORTWINE_CREATE_SHORTCUT_NAME MIRROR
@@ -113,21 +116,6 @@ create_new_dir "${PORT_WINE_TMP_PATH}"/mono
export PW_VULKAN_DIR="${PORT_WINE_TMP_PATH}/VULKAN"
create_new_dir "${PW_VULKAN_DIR}"
-LSPCI_VGA="$(lspci -k 2>/dev/null | grep -E 'VGA|3D' | tr -d '\n')"
-export LSPCI_VGA
-
-if command -v xrandr &>/dev/null ; then
- try_remove_file "${PORT_WINE_TMP_PATH}/tmp_screen_configuration"
- if [[ $(xrandr | grep "primary" | awk '{print $1}') ]] ; then
- PW_SCREEN_RESOLUTION="$(xrandr | sed -rn 's/^.*primary.* ([0-9]+x[0-9]+).*$/\1/p')"
- PW_SCREEN_PRIMARY="$(xrandr | grep "primary" | awk '{print $1}')"
- fi
- export PW_SCREEN_PRIMARY PW_SCREEN_RESOLUTION
- print_var PW_SCREEN_RESOLUTION PW_SCREEN_PRIMARY
-else
- print_error "xrandr - not found!"
-fi
-
cd "${PORT_SCRIPTS_PATH}" || fatal
# shellcheck source=./var
@@ -200,16 +188,29 @@ if [[ "${SKIP_CHECK_UPDATES}" != 1 ]] \
&& [[ ! -f "/tmp/portproton.lock" ]]
then
pw_port_update
+ pw_check_and_download_plugins
+ export PW_VULKANINFO_PORTABLE="$PW_PLUGINS_PATH/portable/bin/x86_64-linux-gnu-vulkaninfo"
+ VULKAN_DRIVER_NAME="$("$PW_VULKANINFO_PORTABLE" 2>/dev/null | grep driverName | awk '{print$3}' | head -1)"
+ LSPCI_VGA="$(lspci -k 2>/dev/null | grep -E 'VGA|3D' | tr -d '\n')"
+ export LSPCI_VGA VULKAN_DRIVER_NAME
+
+ if command -v xrandr &>/dev/null ; then
+ try_remove_file "${PORT_WINE_TMP_PATH}/tmp_screen_configuration"
+ if [[ $(xrandr | grep "primary" | awk '{print $1}') ]] ; then
+ PW_SCREEN_RESOLUTION="$(xrandr | sed -rn 's/^.*primary.* ([0-9]+x[0-9]+).*$/\1/p')"
+ PW_SCREEN_PRIMARY="$(xrandr | grep "primary" | awk '{print $1}')"
+ fi
+ export PW_SCREEN_PRIMARY PW_SCREEN_RESOLUTION
+ echo ""
+ print_var PW_SCREEN_RESOLUTION PW_SCREEN_PRIMARY
+ else
+ print_error "xrandr - not found!"
+ fi
+ echo ""
else
scripts_install_ver=$(head -n 1 "${PORT_WINE_TMP_PATH}/scripts_ver")
export scripts_install_ver
fi
-unset SKIP_CHECK_UPDATES
-
-pw_check_and_download_plugins
-export PW_VULKANINFO_PORTABLE="$PW_PLUGINS_PATH/portable/bin/x86_64-linux-gnu-vulkaninfo"
-VULKAN_DRIVER_NAME="$("$PW_VULKANINFO_PORTABLE" 2>/dev/null | grep driverName | awk '{print$3}' | head -1)"
-export VULKAN_DRIVER_NAME
# create lock file
if [[ -f "/tmp/portproton.lock" ]] ; then
@@ -234,21 +235,23 @@ pw_check_and_download_dxvk_and_vkd3d
# shellcheck source=/dev/null
source "${USER_CONF}"
-kill_portwine
-killall -15 $PW_YAD_BIN 2>/dev/null
-kill -TERM "$(pgrep -a yad | grep PortProton | head -n 1 | awk '{print $1}')" 2>/dev/null
+if [[ "${SKIP_CHECK_UPDATES}" != 1 ]] ; then
+ kill_portwine
+ killall -15 $PW_YAD_BIN 2>/dev/null
+ kill -TERM "$(pgrep -a yad | grep PortProton | head -n 1 | awk '{print $1}')" 2>/dev/null
-if [[ -f "/usr/bin/portproton" ]] \
-&& [[ -f "${HOME}/.local/share/applications/PortProton.desktop" ]]
-then
- rm -f "${HOME}/.local/share/applications/PortProton.desktop"
-fi
+ if [[ -f "/usr/bin/portproton" ]] \
+ && [[ -f "${HOME}/.local/share/applications/PortProton.desktop" ]]
+ then
+ rm -f "${HOME}/.local/share/applications/PortProton.desktop"
+ fi
-if grep "SteamOS" "/etc/os-release" &>/dev/null \
-&& [[ ! -f "${HOME}/.local/share/applications/PortProton.desktop" ]]
-then
- cp -f "${PORT_WINE_PATH}/PortProton.desktop" "${HOME}/.local/share/applications/"
- update-desktop-database -q "${HOME}/.local/share/applications"
+ if grep "SteamOS" "/etc/os-release" &>/dev/null \
+ && [[ ! -f "${HOME}/.local/share/applications/PortProton.desktop" ]]
+ then
+ cp -f "${PORT_WINE_PATH}/PortProton.desktop" "${HOME}/.local/share/applications/"
+ update-desktop-database -q "${HOME}/.local/share/applications"
+ fi
fi
[[ "$MISSING_DESKTOP_FILE" == 1 ]] && portwine_missing_shortcut
@@ -349,8 +352,6 @@ for DAIG in ./* ; do
done
popd 1>/dev/null || fatal
-check_nvidia_rtx && check_variables PW_VULKAN_USE "2"
-
[[ "${PW_DGVOODOO2}" == "1" ]] && DGV2_TXT='dgVoodoo2 ' || unset DGV2_TXT
[[ "${PW_VKBASALT}" == "1" ]] && VKBASALT_TXT='vkBasalt ' || unset VKBASALT_TXT
[[ "${PW_MANGOHUD}" == "1" ]] && MANGOHUD_TXT='MangoHud ' || unset MANGOHUD_TXT
@@ -443,6 +444,8 @@ if [[ -f "${portwine_exe}" ]] ; then
export TAB_START=1
fi
+print_error "START 449: $(echo "$(date +%s.%N) - $START" | bc)"
+
"${pw_yad}" --key=$KEY_START --notebook --center --active-tab=$TAB_START --width="800" --tab-pos=right \
--title "PortProton-${install_ver} (${scripts_install_ver})" --expand --buttons-layout=expand \
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" \