Commit a476cdca authored by Mikhail Tergoev's avatar Mikhail Tergoev

optimized GUI

parent ecbcb9da
......@@ -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"
......
......@@ -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='<b>dgVoodoo2 </b>' || unset DGV2_TXT
[[ "${PW_VKBASALT}" == "1" ]] && VKBASALT_TXT='<b>vkBasalt </b>' || unset VKBASALT_TXT
[[ "${PW_MANGOHUD}" == "1" ]] && MANGOHUD_TXT='<b>MangoHud </b>' || 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" \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment