From e36eae069fe765c9d7d35fcede4c0364798b91a8 Mon Sep 17 00:00:00 2001 From: castro-fidel Date: Thu, 23 Feb 2023 14:28:58 +0300 Subject: [PATCH] Scripts version 2166 --- data_from_portwine/changelog_eng | 4 ++ data_from_portwine/changelog_rus | 4 ++ data_from_portwine/scripts/functions_helper | 39 +++++++++++------ data_from_portwine/scripts/lang | 9 ++++ data_from_portwine/scripts/portwine_db/setup | 2 +- data_from_portwine/scripts/start.sh | 45 ++++++++++---------- data_from_portwine/scripts/var | 2 +- 7 files changed, 69 insertions(+), 36 deletions(-) diff --git a/data_from_portwine/changelog_eng b/data_from_portwine/changelog_eng index d907d027..b88ee692 100755 --- a/data_from_portwine/changelog_eng +++ b/data_from_portwine/changelog_eng @@ -2,6 +2,10 @@ You can help us in the development of the project on the website: boosty.to/linu ----------------------------------------- Changelog: +###Scripts version 2166### +* added a shortcut creation assistant after installing the game/program using setup.exe +* the "INSTALLED" tab has been added to the main interface of PortProton, in which you can search for all exe files in all PortProton prefixes + ###Scripts version 2165### * HOTFIX - runing Atomic Heart from VK Play diff --git a/data_from_portwine/changelog_rus b/data_from_portwine/changelog_rus index b559c75f..c8386ece 100755 --- a/data_from_portwine/changelog_rus +++ b/data_from_portwine/changelog_rus @@ -2,6 +2,10 @@ ----------------------------------------- История изменений: +###Scripts version 2166### +* добавлен помощник создания ярлыка после установки игры/программы с помощью setup.exe +* в основном интерфейсе PortProton добавлена вкладка "УСТАНОВЛЕННЫЕ" в которой можно произвести поиск всех exe файлов во всех префиксах PortProton + ###Scripts version 2165### * HOTFIX для запуска Atomic Heart из VK Play (после обновления ОБЯЗАТЕЛЬНО кликаем заново автоустановку VK Play из PortProton) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index c9ce5288..50451c48 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -598,7 +598,7 @@ stop_portwine () { if [ ! -z "`pgrep -a yad_new | grep "\-\-notification" | awk '{print $1}'`" ] ; then kill -s SIGUSR1 "`pgrep -a yad_new | grep "\-\-notification" | awk '{print $1}'`" 2>/dev/null fi - add_in_stop_portwine &>/dev/null + add_in_stop_portwine #&>/dev/null kill -n 9 `pgrep -a start.sh | grep -i '/PortProton/' | awk '{print $1}'` > /dev/null 2>&1 killall yad_new &>/dev/null exit 0 @@ -762,7 +762,7 @@ pw_init_db () { export PORTWINE_DB=`echo "${portwine_exe}" | awk -F '/' 'NF>1{print $NF}' | sed s/".exe"/""/gi` if [[ -f "${portwine_exe}".ppdb ]] && [[ "${PORTWINE_DB}" != "RiotClientServices" ]] ; then export PORTWINE_DB_FILE="${portwine_exe}".ppdb - sed -i 's/ PP_/ PW_/g' "${PORTWINE_DB_FILE}" + # sed -i 's/ PP_/ PW_/g' "${PORTWINE_DB_FILE}" . "${PORTWINE_DB_FILE}" if [[ -z "`ls -p "${PORT_WINE_PATH}/prefixes/" | grep -e "^${PW_PREFIX_NAME}/"`" ]] ; then export PW_PREFIX_NAME=`echo "${portwine_exe}" | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}'` @@ -785,10 +785,10 @@ pw_init_db () { --title "Database file selection..." --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --form --separator="" \ --field="DB FILE: :CB" "${ADD_CB_DBFILE}"` if [[ "$?" == "1" || "$?" == "252" ]] ; then exit 0 ; fi - sed -i 's/ PP_/ PW_/g' "${PORTWINE_DB_FILE}" + # sed -i 's/ PP_/ PW_/g' "${PORTWINE_DB_FILE}" elif [[ `echo "$PW_FIND_DB_FILE" | wc -l` -eq 1 ]] ; then PORTWINE_DB_FILE="${PW_FIND_DB_FILE}" - sed -i 's/ PP_/ PW_/g' "${PORTWINE_DB_FILE}" + # sed -i 's/ PP_/ PW_/g' "${PORTWINE_DB_FILE}" fi IFS="$orig_IFS" if [[ -f "${PW_FIND_DB_FILE}" ]] && [[ -z `grep "^export PW_DISABLED_CREATE_DB=1" "${PW_FIND_DB_FILE}"` ]] ; then @@ -899,10 +899,7 @@ update_winetricks () { if [ -f "${PORT_WINE_TMP_PATH}/winetricks" ] ; then sed -i 's/w_metadata vcrun2015 dlls \\/w_metadata !dont_use_2015! dlls \\/' "${PORT_WINE_TMP_PATH}/winetricks" sed -i 's/w_metadata vcrun2017 dlls \\/w_metadata !dont_use_2017! dlls \\/' "${PORT_WINE_TMP_PATH}/winetricks" - #HOTFIX SHA256SUM FOR VC_RUN2019 - sed -i 's/vc_redist.x86.exe 1acd8d5ea1cdc3eb2eb4c87be3ab28722d0825c15449e5c9ceef95d897de52fa/vc_redist.x86.exe 80c7969f4e05002a0cd820b746e0acb7406d4b85e52ef096707315b390927824/g' "${PORT_WINE_TMP_PATH}/winetricks" - sed -i 's/vc_redist.x64.exe 003063723b2131da23f40e2063fb79867bae275f7b5c099dbd1792e25845872b/vc_redist.x64.exe 9b9dd72c27ab1db081de56bb7b73bee9a00f60d14ed8e6fde45dab3e619b5f04/g' "${PORT_WINE_TMP_PATH}/winetricks" - + sed -i 's/w_metadata vcrun2019 dlls \\/w_metadata !dont_use_2019! dlls \\/' "${PORT_WINE_TMP_PATH}/winetricks" fi return 0 } @@ -962,11 +959,29 @@ pw_create_gui_png () { pw_find_exe () { unset PW_FIND_TIME case "$1" in - "last_day") PW_FIND_TIME="-mtime -1" ;; + "news") PW_FIND_TIME="-cmin -180" ;; esac - PW_EXCUDE_EXE_FIND='(windows|explorer|anticheat|programdata|redist|setup|.ppdb|unin|error|crash|handler|install|/jre/|steam|uploader)' - PW_PATH_FOR_FIND="${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/" + PW_EXCLUDE_EXE_FIND='(windows|explorer|anticheat|programdata|redist|setup|.ppdb|unin|error|crash|handler|install|/jre/|steam|uploader|eac|netframe)' + PW_PATH_FOR_FIND="${PORT_WINE_PATH}/data/prefixes/" - find -P "${PW_PATH_FOR_FIND}" -type f -name "*.exe" ${PW_FIND_TIME} | grep -viE ${PW_EXCUDE_EXE_FIND} + find -P "${PW_PATH_FOR_FIND}" -type f -name "*.exe" ${PW_FIND_TIME} | grep -viE ${PW_EXCLUDE_EXE_FIND} | awk -F"/prefixes/" '{print $2}' > "${PORT_WINE_TMP_PATH}/tmp_yad_find_exe" + + unset FIND_TO_GUI + while read line; do + FIND_TO_GUI+="false%${line}%" + done < "${PORT_WINE_TMP_PATH}/tmp_yad_find_exe" + + OrigIFS="$IFS" && IFS=% + PW_SET_FIND_EXE="$("${pw_yad_new}" --height="300" --width="1000" --center --list --radiolist \ + --text-align=center --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "Create shortcut for..." \ + --text="\n${loc_gui_create_shortcut_for_exe}" --column="set:" --column="path to .exe file:" ${FIND_TO_GUI})" + YAD_STATUS="$?" + if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; fi + IFS=$OrigIFS + + if [[ -n "${PW_SET_FIND_EXE}" ]] ; then + portwine_exe="${PW_PATH_FOR_FIND}$(echo "${PW_SET_FIND_EXE}" | awk -F'|' '{print $2}')" + portwine_create_shortcut + fi } diff --git a/data_from_portwine/scripts/lang b/data_from_portwine/scripts/lang index 88ce140b..b67d7011 100755 --- a/data_from_portwine/scripts/lang +++ b/data_from_portwine/scripts/lang @@ -26,6 +26,7 @@ then export loc_mg_emulators="ЭМУЛЯТОРЫ" export loc_mg_wine_settings="НАСТРОЙКИ WINE" export loc_mg_portproton_settings="НАСТРОЙКИ PORTPROTON" + export loc_mg_installed="УСТАНОВЛЕННЫЕ" export PW_CHANGELOG_FILE="changelog_rus" export PW_SELECTION_DB_LOC="Найдено более одного DB файла для запускаемого приложения.\nВыберите необходимый, или перед следующим запуском удалите лишний DB файл.\n" @@ -71,6 +72,7 @@ then export port_debug="Не торопитесь! После окончания работы ${portname}, нажмите STOP." + export loc_create_shortcut_from_gui="Создать ярлык..." export loc_create_shortcut="Создать ярлык для запускаемого файла." export loc_delete_shortcut="Удалить ярлык для запускаемого файла." export loc_debug="Запуск c созданием .log файла в корне ${portname}" @@ -141,6 +143,8 @@ then export loc_find_d3dadapter9_error="не найден в системе.\nУстановите недостающий пакет: d3dadapter9" + export loc_gui_create_shortcut_for_exe="Выберите .exe файл для которого необходимо создать ярлык и нажмите ОК.\n" + export loc_gui_error='Ошибка.' export loc_gui_error_download="Проверьте интернет соединение и\nнажмите OK для повторной попытки скачивания" export loc_gui_settings="Пожалуйста подождите." @@ -250,6 +254,8 @@ then export loc_gui_vkbasalt_start="VKBASALT" export loc_gui_db_comments="PortProton database file was found for" + export loc_create_shortcut_from_gui="Create shortcut..." + export loc_gui_rm_pp="REMOVE PORTPROTON" export loc_gui_upd_pp="UPDATE PORTPROTON" export loc_gui_changelog="CHANGELOG" @@ -268,6 +274,7 @@ then export loc_mg_emulators="EMULATORS" export loc_mg_wine_settings="WINE SETTINGS" export loc_mg_portproton_settings="PORTPROTON SETTINGS" + export loc_mg_installed="INSTALLED" export PW_CHANGELOG_FILE="changelog_eng" export PW_SELECTION_DB_LOC="More than one DB file found for the application being launched.\nSelect the required one, or delete the extra DB file before the next run.\n" @@ -310,6 +317,8 @@ then export port_start7="Run winetricks" export port_start8="DXVK" + export loc_gui_create_shortcut_for_exe="Choose the .exe file for which you need to create a shortcut and click OK.\n" + export port_debug="Please wait! After finishing the ${portname}, click STOP." export PW_WAYLAND_INFO="Attention! You are running $portname in a Wayland session, some features may not be available!\nRestarting your session in X11 is recommended!" diff --git a/data_from_portwine/scripts/portwine_db/setup b/data_from_portwine/scripts/portwine_db/setup index a943eb74..29ce5668 100755 --- a/data_from_portwine/scripts/portwine_db/setup +++ b/data_from_portwine/scripts/portwine_db/setup @@ -19,5 +19,5 @@ export PW_FORCE_LARGE_ADDRESS_AWARE=1 # Force Wine to enable the LARGE_ export PW_DLL_INSTALL="" add_in_stop_portwine () { - echo TEST + pw_find_exe news } diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index b4b25bb3..06318e23 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -597,7 +597,7 @@ else fi PW_EXEC_FROM_DESKTOP="$(cat "${PORT_WINE_PATH}/${PW_YAD_SET}"* | grep Exec | head -n 1 | awk -F"=env " '{print $2}')" - echo ${PW_EXEC_FROM_DESKTOP[*]} + export portwine_exe="$(echo $PW_EXEC_FROM_DESKTOP | awk -F"start.sh" '{print $1}')" echo "Restarting PP after choose desktop file..." # stop_portwine @@ -668,8 +668,24 @@ else export -f gui_open_scripts_from_backup - export KEY=$RANDOM - "${pw_yad_new}" --plug=${KEY} --tabnum=4 --form --columns=3 --align-buttons --keep-icon-size --separator=";" \ + export KEY="$RANDOM" + + orig_IFS="$IFS" && IFS=$'\n' + PW_ALL_DF="$(ls ${PORT_WINE_PATH}/ | grep .desktop | grep -vE '(PortProton|readme)')" + IFS="$orig_IFS" + PW_GENERATE_BUTTONS="--field= $loc_create_shortcut_from_gui!$PW_GUI_ICON_PATH/separator.png!:FBTN%@bash -c \"button_click pw_find_exe\"%" + for PW_DESKTOP_FILES in ${PW_ALL_DF} ; do + PW_NAME_D_NAME="$(cat "${PORT_WINE_PATH}/$PW_DESKTOP_FILES" | grep Name | awk -F= '{print $2}')" + # PW_NAME_D_ICON="$(cat "${PORT_WINE_PATH}/$PW_DESKTOP_FILES" | grep Icon | awk -F= '{print $2}')" + PW_NAME_D_ICON="$PW_GUI_ICON_PATH/separator.png" + # PW_GENERATE_BUTTONS+="--field= ${PW_NAME_D_NAME}!${PW_NAME_D_ICON}!:FBTN%@bash -c \"run_desktop_b_click ${PW_DESKTOP_FILES}\"%" + done + + old_IFS=$IFS && IFS="%" + "${pw_yad_new}" --plug=$KEY --tabnum=5 --form --columns=2 --align-buttons --keep-icon-size --scroll --separator=" " ${PW_GENERATE_BUTTONS} & + IFS="$orig_IFS" + + "${pw_yad_new}" --plug=${KEY} --tabnum=4 --form --columns=3 --align-buttons --keep-icon-size --separator=";" \ --field=" $loc_gui_pw_reinstall_pp"!"$PW_GUI_ICON_PATH/separator.png"!"":"FBTN" '@bash -c "button_click gui_pw_reinstall_pp"' \ --field=" $loc_gui_rm_pp"!"$PW_GUI_ICON_PATH/separator.png"!"":"FBTN" '@bash -c "button_click gui_rm_portproton"' \ --field=" $loc_gui_upd_pp"!"$PW_GUI_ICON_PATH/separator.png"!"":"FBTN" '@bash -c "button_click gui_pw_update"' \ @@ -740,36 +756,19 @@ else # --field=" Guild Wars 2"!"$PW_GUI_ICON_PATH/gw2.png"!"":"FBTN" '@bash -c "button_click PW_GUILD_WARS_2"' # --field=" Bethesda.net Launcher"!"$PW_GUI_ICON_PATH/bethesda.png"!"":"FBTN" '@bash -c "button_click PW_BETHESDA"' - orig_IFS="$IFS" && IFS=$'\n' - PW_ALL_DF="$(ls ${PORT_WINE_PATH}/ | grep .desktop | grep -v "PortProton" | grep -v "readme")" - IFS="$orig_IFS" - - for PW_DESKTOP_FILES in ${PW_ALL_DF} ; do - PW_NAME_D_NAME="$(cat "${PORT_WINE_PATH}/$PW_DESKTOP_FILES" | grep Name | awk -F= '{print $2}')" - PW_NAME_D_ICON="$(cat "${PORT_WINE_PATH}/$PW_DESKTOP_FILES" | grep Icon | awk -F= '{print $2}')" - - PW_GENERATE_BUTTONS+="--field= ${PW_NAME_D_NAME}!${PW_NAME_D_ICON}!:FBTN%@bash -c \"run_desktop_b_click ${PW_DESKTOP_FILES}\"%" - done - - old_IFS=$IFS && IFS="%" - "${pw_yad_new}" --plug=$KEY --tabnum=5 --form --columns=2 --align-buttons --keep-icon-size --scroll --separator=" " ${PW_GENERATE_BUTTONS} & - IFS="$orig_IFS" - - "${pw_yad_new}" --key=$KEY --notebook --borders=5 --width=1000 --height=235 --no-buttons --auto-close --center \ --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "${portname}-${install_ver} (${scripts_install_ver})" \ --tab-pos=bottom --keep-icon-size \ --tab="$loc_mg_autoinstall"!"$PW_GUI_ICON_PATH/separator.png"!"" \ --tab="$loc_mg_emulators"!"$PW_GUI_ICON_PATH/separator.png"!"" \ --tab="$loc_mg_wine_settings"!"$PW_GUI_ICON_PATH/separator.png"!"" \ - --tab="$loc_mg_portproton_settings"!"$PW_GUI_ICON_PATH/separator.png"!"" + --tab="$loc_mg_portproton_settings"!"$PW_GUI_ICON_PATH/separator.png"!"" \ + --tab="$loc_mg_installed"!"$PW_GUI_ICON_PATH/separator.png"!"" YAD_STATUS="$?" if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; fi if [[ -f "${PORT_WINE_TMP_PATH}/tmp_yad_form" ]]; then export PW_YAD_SET=$(cat "${PORT_WINE_TMP_PATH}/tmp_yad_form" | head -n 1 | awk '{print $1}') - echo "from tmp_yad_form $PW_YAD_SET, and cat tmp_yad_form" - cat "${PORT_WINE_TMP_PATH}/tmp_yad_form" fi if [[ -f "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" ]] ; then export VULKAN_MOD=$(cat "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" | grep \;\; | awk -F";" '{print $1}') @@ -835,7 +834,9 @@ case "$PW_YAD_SET" in pw_create_prefix_backup) pw_create_prefix_backup ;; gui_credits) gui_credits ;; pw_start_cont_xterm) pw_start_cont_xterm ;; + pw_find_exe) pw_find_exe ;; PW_*) pw_autoinstall_from_db ;; + # *) run_desktop_b_click esac stop_portwine diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index 98bbbd5c..abe312f8 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -1,6 +1,6 @@ #!/usr/bin/env bash #Author: Castro-Fidel (linux-gaming.ru) -#SCRIPTS_NEXT_VERSION=2165 +#SCRIPTS_NEXT_VERSION=2166 ######################################################################## export PW_MANGOHUD=0 export MANGOHUD_CONFIG=cpu_stats,cpu_temp,cpu_mhz,cpu_color=2e97cb,cpu_text=CPU,gpu_stats,gpu_temp,gpu_core_clock,gpu_mem_clock,vulkan_driver,gpu_name,gpu_color=2e9762,gpu_text=GPU,vram,vram_color=ad64c1,ram,ram_color=c26693,io_color=a491d3,frame_timing=1,frametime_color=00ff00,time,arch,wine,wine_color=eb5b5b,engine_color=eb5b5b,background_alpha=0.2,font_size=24,background_color=020202,text_color=ffffff,toggle_hud=Shift_R+F12,resolution,vkbasalt