diff --git a/data_from_portwine/changelog_eng b/data_from_portwine/changelog_eng index 06d44f2f..21536acd 100755 --- a/data_from_portwine/changelog_eng +++ b/data_from_portwine/changelog_eng @@ -2,6 +2,11 @@ You can help us in the development of the project on the website: boosty.to/linu ----------------------------------------- Changelog: +###Scripts version 2171### +* all shortcuts created in the PortProton directory are automatically added to the "INSTALLED" tab item with which you can launch installed games and applications from PortProton itself +* the menu tab "INSTALLED" is automatically transferred as the main (first) tab in PortProton, if you already have shortcuts to installed games or programs +* minor improvements and optimization of scripts + ###Scripts version 2170### * added .ppdb file for Hogwarts Legacy diff --git a/data_from_portwine/changelog_rus b/data_from_portwine/changelog_rus index 25c78685..bffc213a 100755 --- a/data_from_portwine/changelog_rus +++ b/data_from_portwine/changelog_rus @@ -2,6 +2,11 @@ ----------------------------------------- История изменений: +###Scripts version 2171### +* в пункт меню "УСТАНОВЛЕННЫЕ" автоматически добавляются все ярлыки созданные в каталоге PortProton с помощью которых вы можете запускать установленные игры и приложения из самого PortProton +* пункт меню "УСТАНОВЛЕННЫЕ" автоматически переноситься как главная (первая) вкладка в PortProton, если у вас уже есть ярлыки установленных игр или программ +* небольшие улучшения и оптимизация скриптов + ###Scripts version 2170### * добавлен файл настроек для игры Hogwarts Legacy с рекомендациями по запуску и автоматическим переключением языка на русский diff --git a/data_from_portwine/img/gui/find_48.png b/data_from_portwine/img/gui/find_48.png new file mode 100644 index 00000000..3b7c5bbc Binary files /dev/null and b/data_from_portwine/img/gui/find_48.png differ diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 117cd376..2f179798 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -831,7 +831,9 @@ pw_port_update () { echo "2022" > "${PORT_WINE_TMP_PATH}/scripts_ver" fi export scripts_install_ver=`cat "${PORT_WINE_TMP_PATH}/scripts_ver" | head -n 1` + print_info "Check update..." curl -s --list-only https://raw.githubusercontent.com/Castro-Fidel/PortWINE/master/data_from_portwine/scripts/var > "${PORT_WINE_TMP_PATH}/curent_var_ver" + [[ $? == 0 ]] && print_info "OK!" || print_info "ERROR!" [[ ! -f "${PORT_WINE_TMP_PATH}/scripts_update_notifier" ]] && echo "1" > "${PORT_WINE_TMP_PATH}/scripts_update_notifier" read "scripts_update_not" < "${PORT_WINE_TMP_PATH}/scripts_update_notifier" if [[ "${scripts_update_not}" == "1" ]] ; then @@ -988,11 +990,17 @@ pw_find_exe () { --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 + print_var YAD_STATUS + if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" || -z "${PW_SET_FIND_EXE}" ]] ; then + /usr/bin/env bash -c ${pw_full_command_line[*]} & + 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 + /usr/bin/env bash -c ${pw_full_command_line[*]} & + exit 0 fi } diff --git a/data_from_portwine/scripts/runlib b/data_from_portwine/scripts/runlib index 3df3ebb0..4e2ee176 100755 --- a/data_from_portwine/scripts/runlib +++ b/data_from_portwine/scripts/runlib @@ -615,7 +615,7 @@ unset MANGOHUD MANGOHUD_DLSYM PW_NO_ESYNC PW_NO_FSYNC PW_VULKAN_USE WINEDLLOVERR unset PW_CHECK_AUTOINSTAL PW_VKBASALT_EFFECTS PW_VKBASALT_FFX_CAS PORTWINE_DB PORTWINE_DB_FILE PW_DISABLED_CREATE_DB unset CHK_SYMLINK_FILE MESA_GL_VERSION_OVERRIDE PATH_TO_GAME PW_START_DEBUG PORTPROTON_NAME PORTWINE_CREATE_SHORTCUT_NAME unset PW_PREFIX_NAME WINEPREFIX VULKAN_MOD PW_WINE_VER PW_ADD_TO_ARGS_IN_RUNTIME PW_GAMEMODERUN_SLR AMD_VULKAN_ICD -unset PW_NAME_D_NAME PW_NAME_D_ICON PW_NAME_D_EXEC PW_EXEC_FROM_DESKTOP +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 export portname=PortProton @@ -624,6 +624,8 @@ cd "${PORT_SCRIPTS_PATH}/../../" && export PORT_WINE_PATH="$(pwd)" export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp" rm -f "${PORT_WINE_TMP_PATH}"/*.tar.* +echo "" > "${PORT_WINE_TMP_PATH}/tmp_yad_form" + if [[ -d "${PORT_WINE_PATH}/data/dist" ]] ; then orig_IFS="$IFS" IFS=$'\n' diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 153be0d8..efb64375 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -8,8 +8,8 @@ if [ -f "$1" ]; then fi . "$(dirname $(readlink -f "$0"))/runlib" kill_portwine -killall -9 yad_new 2>/dev/null -pw_stop_progress_bar +killall -15 yad_new 2>/dev/null +kill -TERM `pgrep -a yad | grep ${portname} | head -n 1 | awk '{print $1}'` 2>/dev/null if [[ -f "/usr/bin/portproton" ]] && [[ -f "${HOME}/.local/share/applications/PortProton.desktop" ]] ; then /usr/bin/env bash "/usr/bin/portproton" "$@" & @@ -595,13 +595,11 @@ else if [[ -n $(pidof -s yad) ]] || [[ -n $(pidof -s yad_new) ]] ; then kill -s SIGUSR1 $(pgrep -a yad | grep "\-\-key=${KEY} \-\-notebook" | awk '{print $1}') > /dev/null 2>&1 fi - - PW_EXEC_FROM_DESKTOP="$(cat "${PORT_WINE_PATH}/${PW_YAD_SET}"* | grep Exec | head -n 1 | awk -F"=env " '{print $2}')" - export portwine_exe="$(echo $PW_EXEC_FROM_DESKTOP | awk -F"start.sh" '{print $1}')" + PW_EXEC_FROM_DESKTOP="$(cat "${PORT_WINE_PATH}/${PW_YAD_SET//¬/" "}" | grep Exec | head -n 1 | awk -F"=env " '{print $2}')" echo "Restarting PP after choose desktop file..." # stop_portwine - /usr/bin/env bash -c "${PW_EXEC_FROM_DESKTOP[*]}" & + /usr/bin/env bash -c "${PW_EXEC_FROM_DESKTOP}" & exit 0 } export -f run_desktop_b_click @@ -672,23 +670,25 @@ else orig_IFS="$IFS" && IFS=$'\n' PW_ALL_DF="$(ls ${PORT_WINE_PATH}/ | grep .desktop | grep -vE '(PortProton|readme)')" - - 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 - # echo $PW_DESKTOP_FILES - # 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_DESKTOP_FILES=$(sed 's/ /¬/g' <<< "$PW_DESKTOP_FILES") - # PW_GENERATE_BUTTONS+="--field= ${PW_NAME_D_NAME}!${PW_NAME_D_ICON}!:FBTN%@bash -c \"run_desktop_b_click "${PW_DESKTOP_FILES}"\"%" - # echo $PW_DESKTOP_FILES - # done + if [[ -z "${PW_ALL_DF}" ]] + then PW_GUI_SORT_TABS=(1 2 3 4 5) + else PW_GUI_SORT_TABS=(2 3 4 5 1) + fi + PW_GENERATE_BUTTONS="--field= $loc_create_shortcut_from_gui!${PW_GUI_ICON_PATH}/find_48.png!:FBTN%@bash -c \"button_click pw_find_exe\"%" + for PW_DESKTOP_FILES in ${PW_ALL_DF} ; do + PW_NAME_D_ICON="$(cat "${PORT_WINE_PATH}/${PW_DESKTOP_FILES}" | grep Icon | awk -F= '{print $2}')" + PW_NAME_D_ICON_48="${PW_NAME_D_ICON//".png"/"_48.png"}" + if [[ ! -f "${PW_NAME_D_ICON_48}" ]] && [[ -f "${PW_NAME_D_ICON}" ]] && [[ -x "`which "convert" 2>/dev/null`" ]] ; then + convert "${PW_NAME_D_ICON}" -resize 48x48 "${PW_NAME_D_ICON_48}" + fi + PW_GENERATE_BUTTONS+="--field= ${PW_DESKTOP_FILES//".desktop"/""}!${PW_NAME_D_ICON_48}!:FBTN%@bash -c \"run_desktop_b_click "${PW_DESKTOP_FILES//" "/¬}"\"%" + done IFS="$orig_IFS" old_IFS=$IFS && IFS="%" - "${pw_yad_new}" --plug=$KEY --tabnum=5 --form --columns=2 --align-buttons --keep-icon-size --scroll --separator=" " ${PW_GENERATE_BUTTONS} & + "${pw_yad_new}" --plug=$KEY --tabnum=${PW_GUI_SORT_TABS[4]} --form --columns=3 --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=";" \ + "${pw_yad_new}" --plug=${KEY} --tabnum=${PW_GUI_SORT_TABS[3]} --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"' \ @@ -699,7 +699,7 @@ else --field=" Xterm"!"$PW_GUI_ICON_PATH/separator.png"!"":"FBTN" '@bash -c "button_click pw_start_cont_xterm"' \ --field=" $loc_gui_credits"!"$PW_GUI_ICON_PATH/separator.png"!"":"FBTN" '@bash -c "button_click gui_credits"' & - "${pw_yad_new}" --plug=${KEY} --tabnum=3 --form --columns=3 --align-buttons --keep-icon-size --separator=";" \ + "${pw_yad_new}" --plug=${KEY} --tabnum=${PW_GUI_SORT_TABS[2]} --form --columns=3 --align-buttons --keep-icon-size --separator=";" \ --field=" 3D API : :CB" "${loc_gui_vulkan_stable}!${loc_gui_vulkan_git}!${loc_gui_open_gl}!${loc_gui_gallium_nine}" \ --field=" PREFIX : :CBE" "${PW_ADD_PREFIXES_TO_GUI}" \ --field=" WINE : :CB" "${PW_DEFAULT_WINE_USE}" \ @@ -713,7 +713,7 @@ else --field=" CLEAR PREFIX"!"$PW_GUI_ICON_PATH/separator.png"!"":"FBTN" '@bash -c "button_click gui_clear_pfx"' \ --field=" CREATE PFX BACKUP"!"$PW_GUI_ICON_PATH/separator.png"!"":"FBTN" '@bash -c "button_click pw_create_prefix_backup"' &> "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" & - "${pw_yad_new}" --plug=$KEY --tabnum=2 --form --columns=3 --align-buttons --keep-icon-size --scroll \ + "${pw_yad_new}" --plug=$KEY --tabnum=${PW_GUI_SORT_TABS[1]} --form --columns=3 --align-buttons --keep-icon-size --scroll \ --field=" Dolphin 5.0"!"$PW_GUI_ICON_PATH/dolphin.png"!"":"FBTN" '@bash -c "button_click PW_DOLPHIN"' \ --field=" MAME"!"$PW_GUI_ICON_PATH/mame.png"!"":"FBTN" '@bash -c "button_click PW_MAME"' \ --field=" ScummVM"!"$PW_GUI_ICON_PATH/scummvm.png"!"":"FBTN" '@bash -c "button_click PW_SCUMMVM"' \ @@ -727,7 +727,7 @@ else --field=" VBA-M"!"$PW_GUI_ICON_PATH/vba-m.png"!"":"FBTN" '@bash -c "button_click PW_VBA-M"' \ --field=" Yabause"!"$PW_GUI_ICON_PATH/yabause.png"!"":"FBTN" '@bash -c "button_click PW_YABAUSE"' & - "${pw_yad_new}" --plug=$KEY --tabnum=1 --form --columns=3 --align-buttons --keep-icon-size --scroll \ + "${pw_yad_new}" --plug=$KEY --tabnum=${PW_GUI_SORT_TABS[0]} --form --columns=3 --align-buttons --keep-icon-size --scroll \ --field=" Lesta Game Center"!"$PW_GUI_ICON_PATH/lgc.png"!"":"FBTN" '@bash -c "button_click PW_LGC"' \ --field=" Wargaming Game Center"!"$PW_GUI_ICON_PATH/wgc.png"!"":"FBTN" '@bash -c "button_click PW_WGC"' \ --field=" vkPlay Games Center"!"$PW_GUI_ICON_PATH/mygames.png"!"":"FBTN" '@bash -c "button_click PW_VKPLAY"' \ @@ -760,15 +760,27 @@ 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"' - "${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_installed"!"$PW_GUI_ICON_PATH/separator.png"!"" - YAD_STATUS="$?" + if [[ -z "${PW_ALL_DF}" ]] ; then + "${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_installed"!"$PW_GUI_ICON_PATH/separator.png"!"" + YAD_STATUS="$?" + else + "${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_installed"!"$PW_GUI_ICON_PATH/separator.png"!"" \ + --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"!"" + YAD_STATUS="$?" + fi if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; fi if [[ -f "${PORT_WINE_TMP_PATH}/tmp_yad_form" ]]; then @@ -813,7 +825,6 @@ if [[ -z "${PW_DISABLED_CREATE_DB}" ]] ; then fi case "$PW_YAD_SET" in - 1|252) exit 0 ;; 98) portwine_delete_shortcut ;; 100) portwine_create_shortcut ;; DEBUG|102) portwine_start_debug ;; @@ -840,7 +851,8 @@ case "$PW_YAD_SET" in pw_start_cont_xterm) pw_start_cont_xterm ;; pw_find_exe) pw_find_exe ;; PW_*) pw_autoinstall_from_db ;; - # *.desktop) run_desktop_b_click + *.desktop) run_desktop_b_click ;; + 1|252|*) exit 0 ;; esac stop_portwine diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index 39fd2712..244f59cf 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=2170 +#SCRIPTS_NEXT_VERSION=2171 ######################################################################## 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