Scripts version 2232

This commit is contained in:
Mikhail Tergoev
2023-11-25 22:23:25 +03:00
parent fb0ecbc611
commit 97f9b10c67
64 changed files with 350 additions and 162 deletions

View File

@ -31,7 +31,6 @@ gui_question () {
[ $? -eq "0" ] && return 0 || return 1
}
pw_start_progress_bar_cover () {
PW_GIF_FILE="$1"
PW_GIF_SIZE_X=`file "${PW_GIF_FILE}" | awk '{print $7 + 20}'`
@ -48,7 +47,7 @@ pw_update_pfx_cover_gui () {
PW_GIF_SIZE_X=`file "${PW_GIF_FILE}" | awk '{print $7 + 40}'`
PW_GIF_SIZE_Y=`file "${PW_GIF_FILE}" | awk '{print $9 + 80}'`
echo "UPDATE PREFIX..." > "${PORT_WINE_TMP_PATH}/update_pfx_log"
unset PW_TIMER
export PW_TIMER=0
while read -r line || [[ ! -z `pgrep -a yad | grep "yad_v12_3 --notebook --key="$PW_KEY_PROGRESS_BAR"" | awk '{print $1}'` ]] ; do
sleep 0.005
if [[ ! -z "${line}" ]] && [[ -z "`echo "${line}" | grep -i "gstreamer"`" ]] \
@ -159,11 +158,11 @@ pw_gui_for_edit_db () {
else
CPU_LIMIT_VAR="disabled"
fi
if [[ ! -z "${PW_AMD_VULKAN_USE}" ]] && [[ "${PW_AMD_VULKAN_USE}" != "disabled" ]] ; then
AMD_VULKAN_VAR="${PW_AMD_VULKAN_USE}"
else
AMD_VULKAN_VAR="disabled"
fi
# if [[ ! -z "${PW_AMD_VULKAN_USE}" ]] && [[ "${PW_AMD_VULKAN_USE}" != "disabled" ]] ; then
# AMD_VULKAN_VAR="${PW_AMD_VULKAN_USE}"
# else
# AMD_VULKAN_VAR="disabled"
# fi
if [[ ! -z "${PW_GPU_USE}" ]] && [[ "${PW_GPU_USE}" != "disabled" ]] ; then
GPU_VAR="${PW_GPU_USE}"
@ -171,7 +170,7 @@ pw_gui_for_edit_db () {
GPU_VAR="disabled"
fi
GET_GPU_NAMES=$(vulkaninfo 2>/dev/null | awk -F '=' '/deviceName/{print $2}' | paste -sd '!' | sed 's/^ //')
GET_GPU_NAMES=$(vulkaninfo 2>/dev/null | awk -F '=' '/deviceName/{print $2}' | sed '/llvm/d'| sort -u | sed 's/^ //' | paste -sd '!')
GET_REFRASH_RATE="30!45!60!75!120!144!165!240"
@ -206,6 +205,9 @@ pw_gui_for_edit_db () {
"XP") ADD_WINVER_EDIT_DB="XP!7!10" ;;
*) ADD_WINVER_EDIT_DB="10!7!XP" ;;
esac
# --field="${loc_gui_amd_vulkan_select}!${loc_gui_amd_vulkan_select_help} :CB" "${AMD_VULKAN_VAR}!disabled!amdvlk!amdgpupro!radv!radv_gpl!radv_aco"
"${pw_yad_v12_3}" --plug=$KEY_EDIT_DB_GUI --tabnum="2" --form --separator="%" --columns=1 \
--field="${loc_gui_ver_windows}!${loc_gui_ver_windows_help} :CB" "${ADD_WINVER_EDIT_DB}" \
--field="${loc_gui_aut_winetricks}!${loc_gui_aut_winetricks_help} :CBE" "${PW_DLL_INSTALL}!vcrun2019 corefonts lucida" \
@ -214,10 +216,9 @@ pw_gui_for_edit_db () {
--field="${loc_gui_arg_exe}!${loc_gui_arg_exe_help} :CBE" "\\${LAUNCH_PARAMETERS[@]}!-dx11 -skipintro 1" \
--field=":LBL" "" \
--field="${loc_gui_cpu_limit}!${loc_gui_cpu_limit_help} :CB" "${CPU_LIMIT_VAR}!disabled!${GET_LOGICAL_CORE}" \
--field="${loc_gui_amd_vulkan_select}!${loc_gui_amd_vulkan_select_help} :CB" "${AMD_VULKAN_VAR}!disabled!amdvlk!amdgpupro!radv!radv_gpl!radv_aco" \
--field="${loc_gui_gpu_select}!${loc_gui_gpu_select_help} :CB" "${GPU_VAR}!disabled!${GET_GPU_NAMES}" \
--field="${loc_gui_mango_fps}!${loc_gui_mango_fps_help} :CB" "${FPS_LIMIT_VAR}!disabled!${GET_REFRASH_RATE}" 2>/dev/null 1> "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" 2>/dev/null &
"${pw_yad_v12_3}" --paned --key="$KEY_EDIT_DB_GUI" --title "EDIT_DB" --text-align=center --height="700" \
"${pw_yad_v12_3}" --paned --key="$KEY_EDIT_DB_GUI" --title "EDIT_DB" --text-align=center --height="750" \
--text "${loc_gui_edit_db} <b>${PORTWINE_DB}</b>\n ${loc_gui_edit_db_help}" --separator=" " --borders=3 \
--window-icon="$PW_GUI_ICON_PATH/port_proton.png" \
--button="${loc_gui_cancel}"!!"${loc_gui_cancel_help}":1 \
@ -247,9 +248,9 @@ pw_gui_for_edit_db () {
WINEDLLOVERRIDES=`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $3}'`
LAUNCH_PARAMETERS=`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $5}'`
CPU_LIMIT="`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $7}'`"
PW_AMD_VULKAN_USE="`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $8}'`"
PW_GPU_USE="`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $9}'`"
FPS_LIMIT="`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $10}'`"
PW_GPU_USE="`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $8}'`"
FPS_LIMIT="`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $9}'`"
# PW_AMD_VULKAN_USE="`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $10}'`"
if [[ "${FPS_LIMIT}" != "disabled" ]] && [[ "${FPS_LIMIT_VAR}" != "disabled" ]] ; then
export MANGOHUD_CONFIG="$(echo ${MANGOHUD_CONFIG} | sed "s/fps_limit=${FPS_LIMIT_VAR}/fps_limit=${FPS_LIMIT}/")"
@ -265,41 +266,10 @@ pw_gui_for_edit_db () {
else
export PW_WINE_CPU_TOPOLOGY="disabled"
fi
if [[ "${PW_AMD_VULKAN_USE}" == "amdvlk" ]] ; then
export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1
if grep -i -q -E '(rosa|redos|nobara|linuxmint|ubuntu|centos|rhel|fedora)' "/etc/os-release" ; then
export VK_ICD_FILENAMES="/opt/amdgpu/etc/vulkan/icd.d/amd_icd32.json:/opt/amdgpu/etc/vulkan/icd.d/amd_icd64.json"
elif grep -i -q "altlinux" '/etc/os-release' ; then
export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/amd_icd.json"
else
export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/amd_icd32.json:/usr/share/vulkan/icd.d/amd_icd64.json"
fi
elif [[ "${PW_AMD_VULKAN_USE}" == "amdgpupro" ]] ; then
export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1
if grep -i -q -E '(rosa|redos|nobara|linuxmint|ubuntu|centos|rhel|fedora)' "/etc/os-release" ; then
export VK_ICD_FILENAMES="/opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd32.json:/opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd64.json"
var_ld_library_path_update "/opt/amdgpu/libdrm/lib64:/opt/amdgpu/libdrm/lib32"
else
export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/amd_pro_icd32.json:/usr/share/vulkan/icd.d/amd_pro_icd64.json"
fi
elif [[ "${PW_AMD_VULKAN_USE}" == "radv" ]] ; then
export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1
export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json"
elif [[ "${PW_AMD_VULKAN_USE}" == "radv_aco" ]] ; then
export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1
var_radv_perftest_config_update aco
export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json"
elif [[ "${PW_AMD_VULKAN_USE}" == "radv_gpl" ]] ; then
export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1
var_radv_perftest_config_update gpl
export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json"
fi
if [[ "${PW_GPU_USE}" != "disabled" ]]; then
export DXVK_FILTER_DEVICE_NAME=$PW_GPU_USE
export VKD3D_FILTER_DEVICE_NAME=$PW_GPU_USE
fi
echo "pw_gui_for_edit_db PORTWINE_DB_FILE=$PORTWINE_DB_FILE"
edit_db_from_gui $@ MANGOHUD_CONFIG LAUNCH_PARAMETERS PW_WINDOWS_VER PW_DLL_INSTALL WINEDLLOVERRIDES PW_WINE_CPU_TOPOLOGY PW_AMD_VULKAN_USE PW_GPU_USE
edit_db_from_gui $@ MANGOHUD_CONFIG LAUNCH_PARAMETERS PW_WINDOWS_VER PW_DLL_INSTALL WINEDLLOVERRIDES PW_WINE_CPU_TOPOLOGY
edit_user_conf_from_gui PW_GPU_USE
# PW_AMD_VULKAN_USE
return 0
}
@ -536,22 +506,27 @@ gui_vkBasalt () {
portwine_create_shortcut () {
pw_create_gui_png
pw_stop_progress_bar
if ls "$HOME/.local/share/Steam/userdata/"*"/config/shortcuts.vdf" &>/dev/null
then PW_FOUND_VDF=TRUE
else PW_FOUND_VDF=FALSE
fi
export name_desktop="${PORTPROTON_NAME}"
OUTPUT=$("${pw_yad}" --title="${inst_set}." --form --borders=3 \
--window-icon "$PW_GUI_ICON_PATH/port_proton.png" \
--image "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" \
--field="${sc_info}":LBL "" \
--field="${sc_name}:" "${name_desktop}" \
--field="${sc_menu_desktop}":CHK "TRUE" \
--field=" ${sc_menu_desktop}":CHK "TRUE" \
--field=" ${sc_add_in_steam}":CHK "$PW_FOUND_VDF" \
--button="$loc_gui_create_shortcut":0)
if [ $? -eq "0" ]; then
name_desktop=$(echo "$OUTPUT" | awk -F'|' '{ print $2 }')
create_menu_desktop_shortcut=$(echo "$OUTPUT" | awk -F'|' '{ print $3 }')
name_desktop=$(echo "$OUTPUT" | awk -F'|' '{print $2}')
create_menu_desktop_shortcut=$(echo "$OUTPUT" | awk -F'|' '{print $3}')
create_menu_steam_shortcut=$(echo "$OUTPUT" | awk -F'|' '{print $4}')
try_remove_file "${PORT_WINE_PATH}/${name_desktop}.desktop"
mv -f "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" "${PORT_WINE_PATH}/data/img/${name_desktop}.png"
echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop"
echo "Name=${name_desktop}" >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
echo "Exec=env "\"${PORT_SCRIPTS_PATH}/start.sh\" \"${portwine_exe}\" "" >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
@ -562,14 +537,6 @@ portwine_create_shortcut () {
echo "Icon="${PORT_WINE_PATH}/data/img/${name_desktop}.png"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
chmod u+x "${PORT_WINE_PATH}/${name_desktop}.desktop"
# TODO: for steam
# echo "#!/usr/bin/env bash" > "${STEAM_SCRIPTS}/${name_desktop}.sh"
# echo "export START_FROM_STEAM=1" >> "${STEAM_SCRIPTS}/${name_desktop}.sh"
# echo "export LD_PRELOAD=\"\"" >> "${STEAM_SCRIPTS}/${name_desktop}.sh"
# echo "\"${PORT_SCRIPTS_PATH}/start.sh\" \"${portwine_exe}\" " >> "${STEAM_SCRIPTS}/${name_desktop}.sh"
# chmod u+x "${STEAM_SCRIPTS}/${name_desktop}.sh"
# "${PORT_SCRIPTS_PATH}/add_in_steam.sh"
if [[ "${create_menu_desktop_shortcut}" == "TRUE" ]]; then
try_remove_file "${HOME}/.local/share/applications/${name_desktop}.desktop"
cp -f "${PORT_WINE_PATH}/${name_desktop}.desktop" "${HOME}/.local/share/applications/"
@ -580,6 +547,27 @@ portwine_create_shortcut () {
fi
fi
if [[ "${PW_FOUND_VDF}" == "TRUE" ]] && [[ "${create_menu_steam_shortcut}" == "TRUE" ]] ; then
echo "#!/usr/bin/env bash" > "${STEAM_SCRIPTS}/${name_desktop}.sh"
echo "export START_FROM_STEAM=1" >> "${STEAM_SCRIPTS}/${name_desktop}.sh"
echo "export LD_PRELOAD=" >> "${STEAM_SCRIPTS}/${name_desktop}.sh"
echo "\"${PORT_SCRIPTS_PATH}/start.sh\" \"${portwine_exe}\" " >> "${STEAM_SCRIPTS}/${name_desktop}.sh"
chmod u+x "${STEAM_SCRIPTS}/${name_desktop}.sh"
"${PORT_SCRIPTS_PATH}/add_in_steam.sh"
if pgrep -i steam &>/dev/null ; then
if gui_question "$sc_restert_steam" ; then
pw_start_progress_bar_block "Restarting STEAM... Please wait."
kill -s SIGTERM $(pgrep -a steam) &>/dev/null
while pgrep -i steam &>/dev/null ; do
sleep 0.5
done
steam &
sleep 5
pw_stop_progress_bar
exit 0
fi
fi
fi
[[ "$1" != silent ]] && xdg-open "${PORT_WINE_PATH}" 2>1 >/dev/null &
fi
@ -588,7 +576,7 @@ portwine_create_shortcut () {
portwine_delete_shortcut () {
rm -f "$(grep -il "${portwine_exe}" "${HOME}/.local/share/applications"/*.desktop)" $>/dev/null
rm -f "$(grep -il "${portwine_exe}" "${PORT_WINE_PATH}"/*.desktop)" $>/dev/null
rm -f "$(grep -il "${portwine_exe}" "${STEAM_SCRIPTS}"/*.sh)" $>/dev/null
# rm -f "$(grep -il "${portwine_exe}" "${STEAM_SCRIPTS}"/*.sh)" $>/dev/null
if [[ -d "${HOME}/Desktop" ]] ; then
rm -f "$(grep -il "${portwine_exe}" "${HOME}/Desktop"/*.desktop)" $>/dev/null
elif [[ -d "${HOME}/Рабочий стол" ]] ; then