optimized GUI
This commit is contained in:
parent
ecbcb9da76
commit
a476cdca88
@ -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" \
|
||||
|
Loading…
Reference in New Issue
Block a user