diff --git a/data_from_portwine/changelog b/data_from_portwine/changelog index 39860ffa..7fd648ac 100644 --- a/data_from_portwine/changelog +++ b/data_from_portwine/changelog @@ -9,6 +9,9 @@ * добавить комментарии описывающие функционал скриптов * заниматься только развитием проекта за счет вашей подписки на https://boosty.to/portwine-linux.ru ----------------------------------------- +###Scripts version 2001### +* добавлен графический интерфейс для настройки db файлов + ###PortProton-94### 25.08.2021 ###Scripts version 2000### * добавлено автоматическое скачивание и обновление Proton GE * db файлы создаются автоматически при запуске любого *.exe @@ -20,7 +23,7 @@ export PW_VKBASALT_FFX_CAS="0.7" - изменение резкости в игр PS: не забывает для активации добавить переменную: export ENABLE_VKBASALT=1 в db файл, или для глобального включения в user.conf * добавлены условия для правильного определения переменных LD_LIBRARY_PATH и LD_PRELOAD при автоматическом перезапуске скриптов * запуск нескольких приложений можно запустить только через один и тот же протон -* добавлена автоматическая очиста каталога Temp в преыиксе порта +* добавлена автоматическая очиста каталога Temp в префиксе порта * создан новый скрипт functions_helper, в который перенесены все вспомогательные функции из runlib * создана новая ветка обновлений скриптов v.2XXX * упрощена структура скрипта runlib diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 0653ee2f..fbe16255 100644 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -588,15 +588,54 @@ pw_kill_autostart () { } edit_db_from_gui () { - if [ -z "`cat "${PORTWINE_DB_FILE}" | grep "export ${1}="`" ] ; then - echo "export ${1}=${!1}" >> "${PORTWINE_DB_FILE}" - elif [ "`cat "${PORTWINE_DB_FILE}" | grep "export ${1}=" | grep -v "#"`" ] ; then - if [ "`cat "${PORTWINE_DB_FILE}" | grep "export ${1}=" | grep -v "#"`" != "export ${1}=${!1}" ] ; then - sed -ri "s/^export ${1}=.*/export ${1}=${!1}/" "${PORTWINE_DB_FILE}" + for mod_db in $@ ; do + echo "${mod_db}=${!mod_db}" + if [ -z "`cat "${PORTWINE_DB_FILE}" | grep "export ${mod_db}="`" ] ; then + echo "export ${mod_db}=${!mod_db}" >> "${PORTWINE_DB_FILE}" + elif [ "`cat "${PORTWINE_DB_FILE}" | grep "export ${mod_db}=" | grep -v "#"`" ] ; then + if [ "`cat "${PORTWINE_DB_FILE}" | grep "export ${mod_db}=" | grep -v "#"`" != "export ${mod_db}=${!mod_db}" ] ; then + sed -ri "s/^export ${mod_db}=.*/export ${mod_db}=${!mod_db}/" "${PORTWINE_DB_FILE}" + fi + elif [ "`cat "${PORTWINE_DB_FILE}" | grep "export ${mod_db}="`" != "export ${mod_db}=${!mod_db}" ] ; then + sed -ri "s/.*export ${mod_db}=.*/export ${mod_db}=${!mod_db}/g" "${PORTWINE_DB_FILE}" fi - elif [ "`cat "${PORTWINE_DB_FILE}" | grep "export ${1}="`" != "export ${1}=${!1}" ] ; then - sed -ri "s/.*export ${1}=.*/export ${1}=${!1}/g" "${PORTWINE_DB_FILE}" - fi + done +} + +pw_gui_for_edit_db () { + unset ADD_CHK_BOX_EDIT_DB + edit_db_field_add () { + for int_to_boole in $@ ; do + if [ "${!int_to_boole}" == "1" ] ; then + export ${int_to_boole}="TRUE" + else + export ${int_to_boole}="FALSE" + fi + ADD_CHK_BOX_EDIT_DB="${ADD_CHK_BOX_EDIT_DB} --field="${int_to_boole}:CHK" "${!int_to_boole}"" + done + } + edit_db_field_add $@ + output_yad_edit_db=`"${pw_yad}" --title "EDIT_DB" --text-align=center --text "Change settings in database file for ${PORTWINE_DB}\n" \ + --columns=4 --form --separator=" " --borders=10 --center ${ADD_CHK_BOX_EDIT_DB} ` + YAD_STATUS="$?" + [ "$YAD_STATUS" == "1" ] && exit 0 + [ "$YAD_STATUS" == "252" ] && xdg-open "${PORTWINE_DB_FILE}" & exit 0 + export output_yad_edit_db=($output_yad_edit_db) + export bool_from_yad=0 + edit_db_field_read () { + for boole_to_int in $@ ; do + export ${boole_to_int}=${output_yad_edit_db[$bool_from_yad]} + if [ "${!boole_to_int}" == "TRUE" ] ; then + export ${boole_to_int}="1" + else + export ${boole_to_int}="0" + fi + export bool_from_yad=$(( ${bool_from_yad} + 1 )) + done + } + edit_db_field_read $@ + edit_db_from_gui $@ + return 0 } pw_check_and_download_wine () { diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 6870bed8..be6c56ac 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -201,7 +201,11 @@ pw_winetricks () { } pw_edit_db () { - xdg-open "${PORTWINE_DB_FILE}" + pw_gui_for_edit_db ENABLE_VKBASALT PW_NO_ESYNC PW_NO_FSYNC PW_DXR_ON PW_VULKAN_NO_ASYNC PW_USE_NVAPI \ + PW_OLD_GL_STRING PW_HIDE_NVIDIA_GPU PW_FORCE_USE_VSYNC PW_VIRTUAL_DESKTOP PW_WINEDBG_DISABLE PW_USE_TERMINAL \ + PW_WINE_ALLOW_XIM PW_HEAP_DELAY_FREE PW_NO_WRITE_WATCH PW_GUI_DISABLED_CS + [ "$?" == 0 ] && /bin/bash -c ${pw_full_command_line[*]} & + exit 0 } pw_autoinstall_from_db () { @@ -249,7 +253,8 @@ if [ ! -z "${portwine_exe}" ]; then --button='CREATE SHORTCUT'!!"${loc_creat_shortcut}":100 \ --button='DEBUG'!!"${loc_debug}":102 \ --button='LAUNCH'!!"${loc_launch}":106 ) - PW_YAD_SET="$?" + export PW_YAD_SET="$?" + if [ "$PW_YAD_SET" == "1" ] || [ "$PW_YAD_SET" == "252" ] ; then exit 0 ; fi export VULKAN_MOD=`echo "${OUTPUT_START}" | grep \;\; | awk -F";" '{print $1}' | awk '{print $1}'` export PW_WINE_VER=`echo "${OUTPUT_START}" | grep \;\; | awk -F";" '{print $2}' | awk '{print $1}'` elif [ ! -z "${PORTWINE_DB_FILE}" ]; then @@ -335,6 +340,8 @@ else "${pw_yad}" --key=$KEY --notebook --borders=10 --width=1000 --height=168 --no-buttons --text-align=center \ --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "$portname" --separator=";" \ --tab-pos=right --tab="PORT_PROTON" --tab="AUTOINSTALL" --tab=" SETTINGS" --center + 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}'` @@ -355,6 +362,7 @@ if [ ! -z "${VULKAN_MOD}" ] ; then fi init_wine_ver + if [ -z "${PW_DISABLED_CREAT_DB}" ] ; then if [ ! -z "${PORTWINE_DB}" ] ; then PORTWINE_DB_FILE=`grep -il "\#${PORTWINE_DB}.exe" "${PORT_SCRIPTS_PATH}/portwine_db"/*` @@ -367,8 +375,7 @@ if [ -z "${PW_DISABLED_CREAT_DB}" ] ; then export PORTWINE_DB_FILE="${PORT_SCRIPTS_PATH}/portwine_db/${PORTWINE_DB}" fi - edit_db_from_gui PW_VULKAN_USE - edit_db_from_gui PW_WINE_USE + edit_db_from_gui PW_VULKAN_USE PW_WINE_USE PW_DB_TMP=`cat "${PORTWINE_DB_FILE}"` echo "${PW_DB_TMP}" | awk '! a[$0]++' > "${PORTWINE_DB_FILE}" diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index 69aaab1d..4128754c 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -1,6 +1,6 @@ #!/bin/bash #Author: Castro-Fidel (PortWINE-Linux.ru) -#SCRIPTS_NEXT_VERSION=2000 +#SCRIPTS_NEXT_VERSION=2001 ######################################################################## export PW_MANGOHUD=1 export MANGOHUD_CONFIG=font_size=24,position=top-left,toggle_hud=Shift_R+F12,no_display,resolution,wine,gpu_name,vulkan_driver,gpu_stats,vkbasalt