Commit 38e880d3 authored by Vladislav's avatar Vladislav

Fixes

parent 11dff461
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
msgid "" msgid ""
msgstr "Project-Id-Version: PACKAGE VERSION\n" msgstr "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-10-07 15:49+0500\n" "POT-Creation-Date: 2024-10-08 10:20+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
...@@ -239,7 +239,7 @@ msgstr "" ...@@ -239,7 +239,7 @@ msgstr ""
msgid "hours" msgid "hours"
msgstr "" msgstr ""
msgid "not known yet" msgid "less than a minute"
msgstr "" msgstr ""
msgid "minute" msgid "minute"
......
...@@ -8,7 +8,7 @@ msgid "" ...@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-10-07 15:49+0500\n" "POT-Creation-Date: 2024-10-08 10:15+0500\n"
"PO-Revision-Date: 2024-09-19 23:35+0500\n" "PO-Revision-Date: 2024-09-19 23:35+0500\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
...@@ -262,7 +262,7 @@ msgstr "" ...@@ -262,7 +262,7 @@ msgstr ""
msgid "hours" msgid "hours"
msgstr "" msgstr ""
msgid "not known yet" msgid "less than a minute"
msgstr "" msgstr ""
msgid "minute" msgid "minute"
......
...@@ -7,8 +7,8 @@ msgid "" ...@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-10-07 15:49+0500\n" "POT-Creation-Date: 2024-10-08 10:15+0500\n"
"PO-Revision-Date: 2024-10-07 15:52+0500\n" "PO-Revision-Date: 2024-10-08 10:15+0500\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
"Language: ru_RU\n" "Language: ru_RU\n"
...@@ -73,7 +73,6 @@ msgstr "Основные настройки" ...@@ -73,7 +73,6 @@ msgstr "Основные настройки"
msgid "Edit database file for" msgid "Edit database file for"
msgstr "Редактировать файл настроек для" msgstr "Редактировать файл настроек для"
#, fuzzy
msgid "Global settings" msgid "Global settings"
msgstr "Глобальные настройки" msgstr "Глобальные настройки"
...@@ -152,7 +151,6 @@ msgstr "История изменений" ...@@ -152,7 +151,6 @@ msgstr "История изменений"
msgid "Change language" msgid "Change language"
msgstr "Сменить язык" msgstr "Сменить язык"
#, fuzzy
msgid "Global settings (user.conf)" msgid "Global settings (user.conf)"
msgstr "Глобальные настройки (user.conf)" msgstr "Глобальные настройки (user.conf)"
...@@ -263,8 +261,8 @@ msgstr "и" ...@@ -263,8 +261,8 @@ msgstr "и"
msgid "hours" msgid "hours"
msgstr "часов" msgstr "часов"
msgid "not known yet" msgid "less than a minute"
msgstr "пока неизвестно" msgstr "меньше минуты"
msgid "minute" msgid "minute"
msgstr "минута" msgstr "минута"
...@@ -1730,7 +1728,6 @@ msgstr "Выключить" ...@@ -1730,7 +1728,6 @@ msgstr "Выключить"
msgid "Enable" msgid "Enable"
msgstr "Включить" msgstr "Включить"
#, fuzzy
msgid "Change global settings" msgid "Change global settings"
msgstr "Изменить глобальные настройки" msgstr "Изменить глобальные настройки"
...@@ -1815,7 +1812,6 @@ msgstr "" ...@@ -1815,7 +1812,6 @@ msgstr ""
"Эта настройка сортирует ярлыки в главном меню в зависимости от времени, " "Эта настройка сортирует ярлыки в главном меню в зависимости от времени, "
"проведенного в приложении или игре" "проведенного в приложении или игре"
#, fuzzy
msgid "GLOBAL SETTINGS (USER.CONF)" msgid "GLOBAL SETTINGS (USER.CONF)"
msgstr "ГЛОБАЛЬНЫЕ НАСТРОЙКИ (USER.CONF)" msgstr "ГЛОБАЛЬНЫЕ НАСТРОЙКИ (USER.CONF)"
...@@ -2146,6 +2142,9 @@ msgstr "ПРИСОЕДЕНИТЬСЯ" ...@@ -2146,6 +2142,9 @@ msgstr "ПРИСОЕДЕНИТЬСЯ"
msgid "THIRD PARTY LIBRARIES" msgid "THIRD PARTY LIBRARIES"
msgstr "БИБЛИОТЕКИ" msgstr "БИБЛИОТЕКИ"
#~ msgid "not known yet"
#~ msgstr "пока неизвестно"
#~ msgid "Emulator for Nintendo game consoles with high compatibility" #~ msgid "Emulator for Nintendo game consoles with high compatibility"
#~ msgstr "Эмулятор игровых консолей Nintendo с высокой совместимостью" #~ msgstr "Эмулятор игровых консолей Nintendo с высокой совместимостью"
......
...@@ -186,6 +186,7 @@ eval_translations () { ...@@ -186,6 +186,7 @@ eval_translations () {
} }
create_translations () { create_translations () {
local po_file msgid msgstr
if [[ ! -d "${PW_CACHE_LANG_PATH}" ]] ; then if [[ ! -d "${PW_CACHE_LANG_PATH}" ]] ; then
create_new_dir "${PW_CACHE_LANG_PATH}" create_new_dir "${PW_CACHE_LANG_PATH}"
fi fi
...@@ -456,12 +457,13 @@ try_download () { ...@@ -456,12 +457,13 @@ try_download () {
no_mirror=true no_mirror=true
esac esac
local filename
if [[ -n "${PW_AUTOINSTALL_EXE}" ]] \ if [[ -n "${PW_AUTOINSTALL_EXE}" ]] \
&& [[ "$no_mirror" == "true" ]] && [[ "$no_mirror" == "true" ]]
then then
local filename="$(basename "${PW_AUTOINSTALL_EXE}")" filename="$(basename "${PW_AUTOINSTALL_EXE}")"
else else
local filename="$(basename "$1")" filename="$(basename "$1")"
fi fi
if [[ "${MIRROR}" == CLOUD ]] \ if [[ "${MIRROR}" == CLOUD ]] \
...@@ -778,6 +780,9 @@ debug_timer () { ...@@ -778,6 +780,9 @@ debug_timer () {
# Поиск нужного .desktop файла по $portwine_exe # Поиск нужного .desktop файла по $portwine_exe
search_desktop_file () { search_desktop_file () {
local count desktop_file desktop_file_new EXEC_DESKTOP EXEC_DESKTOP_NEW TIME_TOTAL i j df
unset TIME_CURRENT_ARRAY DESKTOP_FILES_ARRAY
count=0
for desktop_file in "$PORT_WINE_PATH"/* ; do for desktop_file in "$PORT_WINE_PATH"/* ; do
desktop_file_new="${desktop_file//"$PORT_WINE_PATH/"/}" desktop_file_new="${desktop_file//"$PORT_WINE_PATH/"/}"
if [[ $desktop_file_new =~ .desktop ]] ; then if [[ $desktop_file_new =~ .desktop ]] ; then
...@@ -789,89 +794,117 @@ search_desktop_file () { ...@@ -789,89 +794,117 @@ search_desktop_file () {
else else
EXEC_DESKTOP=${line//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /} EXEC_DESKTOP=${line//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /}
fi fi
EXEC_DESKTOP_NEW="${EXEC_DESKTOP//\"/}" EXEC_DESKTOP_NEW=${EXEC_DESKTOP//\"/}
fi fi
if [[ $line =~ ^#Time= ]] && [[ $portwine_exe == "$EXEC_DESKTOP_NEW" ]] ; then
if [[ $line =~ ^#Time= ]] ; then TIME_CURRENT=${line//#Time=/}
if [[ $portwine_exe == "$EXEC_DESKTOP_NEW" ]] ; then
TIME_CURRENT=${line//#Time=/}
fi
fi fi
done < "$desktop_file" done < "$desktop_file"
if [[ $portwine_exe == "$EXEC_DESKTOP_NEW" ]] ; then if [[ $portwine_exe == "$EXEC_DESKTOP_NEW" ]] ; then
if [[ ! $TIME_CURRENT =~ [0-9]+ ]] ; then # Когда новый .desktop файл
if [[ $TIME_CURRENT == "" ]] ; then
echo "#NEW_DESKTOP" >> "$desktop_file"
TIME_CURRENT="0"
# Для битых #Time=
elif [[ ! $TIME_CURRENT == "" ]] && [[ ! $TIME_CURRENT =~ [0-9]+ ]] ; then
TIME_CURRENT="0" TIME_CURRENT="0"
sed -i '/^#Time=/d' "$desktop_file"
echo "#Time=0" >> "$desktop_file"
fi
if [[ -n $PW_TIME_IN_GAME ]] ; then
TIME_TOTAL=$(( TIME_CURRENT + PW_TIME_IN_GAME ))
sed -i '/^#Time=/d' "$desktop_file"
echo "#Time=$TIME_TOTAL" >> "$desktop_file"
fi fi
TIME_CURRENT_ARRAY+=($TIME_CURRENT)
unset TIME_CURRENT
DESKTOP_FILES_ARRAY["$count"]="$desktop_file"
(( count++ ))
fi fi
fi fi
fi fi
done done
IFS="$orig_IFS" IFS="$orig_IFS"
# Если существуют .desktop файлы на один и тот же .exe файл, то среди них выбирается
# текущее время берётся из того .desktop файла, в котором проведено больше времени
# и запись этого большего времени будет потом записываться во все .desktop файлы
# у которых общий .exe файл, это нужно для того, чтобы в главном меню .desktop файлы
# упорядочивались нормально.
for i in "${!TIME_CURRENT_ARRAY[@]}" ; do
for j in "${!TIME_CURRENT_ARRAY[@]}" ; do
if (( ${TIME_CURRENT_ARRAY[$i]} > ${TIME_CURRENT_ARRAY[$j]} )) ; then
tmp=${TIME_CURRENT_ARRAY[$i]}
TIME_CURRENT_ARRAY[i]=${TIME_CURRENT_ARRAY[$j]}
TIME_CURRENT_ARRAY[j]=$tmp
fi
done
done
TIME_CURRENT="${TIME_CURRENT_ARRAY[0]}"
if [[ -n $PW_TIME_IN_GAME ]] ; then
TIME_TOTAL=$(( TIME_CURRENT + PW_TIME_IN_GAME ))
for df in "${DESKTOP_FILES_ARRAY[@]}" ; do
sed -i '/^#Time=/d' "$df"
echo "#Time=$TIME_TOTAL" >> "$df"
done
else
for df in "${DESKTOP_FILES_ARRAY[@]}" ; do
sed -i '/^#Time=/d' "$df"
echo "#Time=$TIME_CURRENT" >> "$df"
done
fi
} }
# Конвертация секунд в дни, часы, минуты # Конвертация секунд в дни, часы, минуты
seconds_to_time () { seconds_to_time () {
[[ -z $1 ]] && return 0 [[ -z $1 ]] && return 0
local seconds=$1 local seconds days hours minutes
seconds=$1
local days=$((seconds / (60 * 60 * 24))) days=$((seconds / (60 * 60 * 24)))
local seconds=$((seconds % (60 * 60 * 24))) seconds=$((seconds % (60 * 60 * 24)))
local hours=$((seconds / (60 * 60))) hours=$((seconds / (60 * 60)))
local seconds=$((seconds % (60 * 60))) seconds=$((seconds % (60 * 60)))
local minutes=$((seconds / 60)) minutes=$((seconds / 60))
local seconds=$((seconds % 60)) seconds=$((seconds % 60))
if [[ $days =~ ^0$ ]] ; then if [[ $days =~ ^0$ ]] ; then
local days= days=
elif [[ $days =~ ^1$ ]] ; then elif [[ $days =~ ^1$ ]] ; then
local days="$days ${translations[day]}, " days="$days ${translations[day]}, "
elif [[ $days =~ ^([2-9]1|[1-9][0-9]+1)$ ]] && [[ $LANGUAGE == ru ]] ; then elif [[ $days =~ ^([2-9]1|[1-9][0-9]+1)$ ]] && [[ $LANGUAGE == ru ]] ; then
local days="$days ${translations[day]}, " days="$days ${translations[day]}, "
elif [[ $days =~ ^([2-4]|[2-9][2-4]|[1-9][0-9]+[2-4])$ ]] \ elif [[ $days =~ ^([2-4]|[2-9][2-4]|[1-9][0-9]+[2-4])$ ]] && [[ $LANGUAGE == ru ]] ; then
&& [[ $LANGUAGE == ru ]] ; then days="$days дня, "
local days="$days дня, "
else else
local days="$days ${translations[days]}, " days="$days ${translations[days]}, "
fi fi
if [[ $hours =~ ^0$ ]] ; then if [[ $hours =~ ^0$ ]] ; then
local hours= hours=
elif [[ $hours =~ ^1$ ]] ; then elif [[ $hours =~ ^1$ ]] ; then
local hours="$hours ${translations[hour]} ${translations[and]} " hours="$hours ${translations[hour]} ${translations[and]} "
elif [[ $hours =~ ^([2-4]|2[2-4])$ ]] && [[ $LANGUAGE == ru ]] ; then elif [[ $hours =~ ^([2-4]|2[2-4])$ ]] && [[ $LANGUAGE == ru ]] ; then
local hours="$hours часа ${translations[and]} " hours="$hours часа ${translations[and]} "
elif [[ $hours =~ ^21$ ]] && [[ $LANGUAGE == ru ]] ; then elif [[ $hours =~ ^21$ ]] && [[ $LANGUAGE == ru ]] ; then
local hours="$hours ${translations[hour]} ${translations[and]} " hours="$hours ${translations[hour]} ${translations[and]} "
else else
local hours="$hours ${translations[hours]} ${translations[and]} " hours="$hours ${translations[hours]} ${translations[and]} "
fi fi
if [[ $minutes =~ ^0$ ]] ; then if [[ $minutes =~ ^0$ ]] ; then
local hours=${hours//" ${translations[and]} "/} hours=${hours//" ${translations[and]} "/}
local minutes= minutes=
if [[ $days == "" ]] || [[ $hours == "" ]] ; then if [[ $days == "" ]] || [[ $hours == "" ]] ; then
local days=${days//","/} days=${days//","/}
fi fi
if [[ $days == "" ]] && [[ $hours == "" ]] ; then if [[ $days == "" ]] && [[ $hours == "" ]] ; then
local minutes="${translations[not known yet]}" minutes="${translations[less than a minute]}"
fi fi
elif [[ $minutes =~ ^1$ ]] ; then elif [[ $minutes =~ ^1$ ]] ; then
local minutes="$minutes ${translations[minute]}" minutes="$minutes ${translations[minute]}"
elif [[ $minutes =~ ^[2-5]1$ ]] && [[ $LANGUAGE == ru ]] ; then elif [[ $minutes =~ ^[2-5]1$ ]] && [[ $LANGUAGE == ru ]] ; then
local minutes="$minutes ${translations[minute]}" minutes="$minutes ${translations[minute]}"
elif [[ $minutes =~ ^([2-4]|[2-5][2-4])$ ]] && [[ $LANGUAGE == ru ]] ; then elif [[ $minutes =~ ^([2-4]|[2-5][2-4])$ ]] && [[ $LANGUAGE == ru ]] ; then
local minutes="$minutes минуты" minutes="$minutes минуты"
else else
local minutes="$minutes ${translations[minutes]}" minutes="$minutes ${translations[minutes]}"
fi fi
echo -e "<b>\n${translations[Time spent]}: $days$hours$minutes</b>" echo -e "<b>\n${translations[Time spent]}: $days$hours$minutes</b>"
...@@ -882,32 +915,34 @@ combobox_fix () { ...@@ -882,32 +915,34 @@ combobox_fix () {
print_error "no argument specified for combobox_fix" print_error "no argument specified for combobox_fix"
return 1 return 1
else else
local name1 name2
if [[ "$1" == "--disabled" ]] ; then if [[ "$1" == "--disabled" ]] ; then
if [[ -z "$3" ]] ; then if [[ -z "$3" ]] ; then
echo "disabled" echo "disabled"
return 0 return 0
fi fi
local name1="$2" name1="$2"
local name2="$3" name2="$3"
elif [[ "$1" == "--empty" ]] ; then elif [[ "$1" == "--empty" ]] ; then
if [[ -z "$3" ]] ; then if [[ -z "$3" ]] ; then
echo "" echo ""
return 0 return 0
fi fi
local name1="$2" name1="$2"
local name2="$3" name2="$3"
else else
local name1="$1" name1="$1"
if [[ -z "$2" ]] ; then if [[ -z "$2" ]] ; then
echo "${name1}" echo "${name1}"
return 0 return 0
fi fi
local name2="$2" name2="$2"
fi fi
local name3="${name2//\!${name1}\!/\!}" local name3 name4
local name3="!${name3//${name1}\!/\!}" name3="${name2//\!${name1}\!/\!}"
local name3="${name3//\!\!/\!}" name3="!${name3//${name1}\!/\!}"
local name4="${name3//*\!/}" name3="${name3//\!\!/\!}"
name4="${name3//*\!/}"
if [[ ${name1} == "${name4}" ]] || [[ ${name1} == "\\${name4}" ]] if [[ ${name1} == "${name4}" ]] || [[ ${name1} == "\\${name4}" ]]
then name3="${name3%\!"${name1}"}" then name3="${name3%\!"${name1}"}"
fi fi
...@@ -2320,14 +2355,12 @@ pw_find_exe () { ...@@ -2320,14 +2355,12 @@ pw_find_exe () {
--button="${translations[CANCEL]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1 \ --button="${translations[CANCEL]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1 \
--button="${translations[OK]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 2>/dev/null)" --button="${translations[OK]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 2>/dev/null)"
YAD_STATUS="$?" YAD_STATUS="$?"
IFS="$orig_IFS"
if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then
if [[ -z "${PW_SET_FIND_EXE}" ]] ; then print_info "Restarting..."
print_info "Restarting..." restart_pp
restart_pp
fi
exit 0
fi fi
IFS="$orig_IFS"
if [[ -n "${PW_SET_FIND_EXE}" ]] ; then if [[ -n "${PW_SET_FIND_EXE}" ]] ; then
portwine_exe="${PW_PATH_FOR_FIND}$(echo "${PW_SET_FIND_EXE}" | awk -F'|' '{print $1}')" portwine_exe="${PW_PATH_FOR_FIND}$(echo "${PW_SET_FIND_EXE}" | awk -F'|' '{print $1}')"
...@@ -5483,6 +5516,7 @@ portwine_create_shortcut () { ...@@ -5483,6 +5516,7 @@ portwine_create_shortcut () {
fi fi
elif [[ "$PW_YAD_OUT" == "2" ]] ; then elif [[ "$PW_YAD_OUT" == "2" ]] ; then
print_info "Restarting PP..." print_info "Restarting PP..."
[[ -n $KEY_MENU ]] && unset portwine_exe
[[ "${PW_GUI_START}" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB [[ "${PW_GUI_START}" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB
restart_pp restart_pp
fi fi
...@@ -5511,7 +5545,7 @@ pw_auto_create_shortcut () { ...@@ -5511,7 +5545,7 @@ pw_auto_create_shortcut () {
[[ -z "${LINKS[0]}" ]] && return 0 [[ -z "${LINKS[0]}" ]] && return 0
SORTED_LINKS=() SORTED_LINKS=()
while IFS= read -r line ; do while IFS= read -r line ; do
SORTED_LINKS+=("$line"); SORTED_LINKS+=("$line")
done < <(echo ${LINKS[@]} | tr ' ' '\n' | sort -u) done < <(echo ${LINKS[@]} | tr ' ' '\n' | sort -u)
IFS="$orig_IFS" IFS="$orig_IFS"
...@@ -5562,6 +5596,7 @@ pw_auto_create_shortcut () { ...@@ -5562,6 +5596,7 @@ pw_auto_create_shortcut () {
PORTPROTON_NAME="$link_name" PORTPROTON_NAME="$link_name"
export portwine_exe="$exe_path" export portwine_exe="$exe_path"
resize_png "$portwine_exe" "${PORTPROTON_NAME}" "128" resize_png "$portwine_exe" "${PORTPROTON_NAME}" "128"
export PW_NO_RESTART_PPDB=1
portwine_create_shortcut portwine_create_shortcut
fi fi
done done
...@@ -6002,8 +6037,8 @@ button_click () { ...@@ -6002,8 +6037,8 @@ button_click () {
kill -s SIGUSR1 $(pgrep -a yad | grep "\--key=${KEY_MENU}" | awk '{print $1}') > /dev/null 2>&1 kill -s SIGUSR1 $(pgrep -a yad | grep "\--key=${KEY_MENU}" | awk '{print $1}') > /dev/null 2>&1
PW_YAD_SET="${PORT_WINE_PATH}/${PW_YAD_SET//#@_@#/ }" PW_YAD_SET="${PORT_WINE_PATH}/${PW_YAD_SET//#@_@#/ }"
if [[ -n $PW_DESKTOP_FILES_REGEX ]] ; then if [[ -n $PW_DESKTOP_FILES_REGEX ]] ; then
count=1 local count=1
for y in ${PW_DESKTOP_FILES_REGEX[@]} ; do for y in "${PW_DESKTOP_FILES_REGEX[@]}" ; do
PW_YAD_SET="${PW_YAD_SET//#+_$count#/$y}" PW_YAD_SET="${PW_YAD_SET//#+_$count#/$y}"
(( count++ )) (( count++ ))
done done
......
...@@ -25,7 +25,8 @@ if PORT_SCRIPTS_PATH=$(readlink -f "${0%/*}") ; then ...@@ -25,7 +25,8 @@ if PORT_SCRIPTS_PATH=$(readlink -f "${0%/*}") ; then
export PORT_SCRIPTS_PATH export PORT_SCRIPTS_PATH
export PORT_WINE_PATH=${PORT_SCRIPTS_PATH%/*/*} export PORT_WINE_PATH=${PORT_SCRIPTS_PATH%/*/*}
else else
fatal echo "The PORT_SCRIPTS_PATH directory was not found!"
exit 1
fi fi
# shellcheck source=/dev/null # shellcheck source=/dev/null
...@@ -90,10 +91,11 @@ unset MANGOHUD MANGOHUD_DLSYM PW_NO_ESYNC PW_NO_FSYNC PW_VULKAN_USE WINEDLLOVERR ...@@ -90,10 +91,11 @@ unset MANGOHUD MANGOHUD_DLSYM PW_NO_ESYNC PW_NO_FSYNC PW_VULKAN_USE WINEDLLOVERR
unset PW_CHECK_AUTOINSTALL PW_VKBASALT_EFFECTS PW_VKBASALT_FFX_CAS PORTWINE_DB PORTWINE_DB_FILE RADV_PERFTEST unset PW_CHECK_AUTOINSTALL PW_VKBASALT_EFFECTS PW_VKBASALT_FFX_CAS PORTWINE_DB PORTWINE_DB_FILE RADV_PERFTEST
unset CHK_SYMLINK_FILE PW_MESA_GL_VERSION_OVERRIDE PW_VKD3D_FEATURE_LEVEL PATH_TO_GAME PW_START_DEBUG PORTPROTON_NAME PW_PATH unset CHK_SYMLINK_FILE PW_MESA_GL_VERSION_OVERRIDE PW_VKD3D_FEATURE_LEVEL PATH_TO_GAME PW_START_DEBUG PORTPROTON_NAME PW_PATH
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_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_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 unset MANGOHUD_CONFIG FPS_LIMIT PW_WINE_USE WINEDLLPATH WINE WINEDIR WINELOADER WINESERVER PW_USE_RUNTIME PORTWINE_CREATE_SHORTCUT_NAME MIRROR
unset PW_LOCALE_SELECT PW_SETTINGS_INDICATION PW_GUI_START PW_AUTOINSTALL_EXE NOSTSTDIR RADV_DEBUG PW_NO_AUTO_CREATE_SHORTCUT unset PW_LOCALE_SELECT PW_SETTINGS_INDICATION PW_GUI_START PW_AUTOINSTALL_EXE NOSTSTDIR RADV_DEBUG PW_NO_AUTO_CREATE_SHORTCUT
unset PW_DESKTOP_FILES_REGEX PW_TERM unset PW_NAME_D_ICON PW_ICON_PATH PW_GAME_TIME PW_ALL_DF PW_AMOUNT_NEW_DESKTOP PW_AMOUNT_OLD_DESKTOP PW_DESKTOP_FILES
unset AI_TYPE AI_NAME AI_IMAGE AI_INFO AI_FILE_ARRAY AI_TRUE_FILE AI_FILE_UNSORTED AI_FILE_SORTED PW_GENERATE_BUTTONS
unset PW_DESKTOP_FILES_REGEX PW_TERM PW_EXEC_FROM_DESKTOP
export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp" export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp"
rm -f "$PORT_WINE_TMP_PATH"/*{exe,msi,tar}* rm -f "$PORT_WINE_TMP_PATH"/*{exe,msi,tar}*
...@@ -324,7 +326,7 @@ export SKIP_CHECK_UPDATES="1" ...@@ -324,7 +326,7 @@ export SKIP_CHECK_UPDATES="1"
[[ "$MISSING_DESKTOP_FILE" == "1" ]] && portwine_missing_shortcut [[ "$MISSING_DESKTOP_FILE" == "1" ]] && portwine_missing_shortcut
if [[ -n $(basename "${portwine_exe}" | grep .ppack) ]] ; then if [[ $(basename "${portwine_exe}") =~ .ppack$ ]] ; then
unset PW_SANDBOX_HOME_PATH unset PW_SANDBOX_HOME_PATH
pw_init_runtime pw_init_runtime
if check_flatpak if check_flatpak
...@@ -500,9 +502,9 @@ if [[ -f "${portwine_exe}" ]] ; then ...@@ -500,9 +502,9 @@ if [[ -f "${portwine_exe}" ]] ; then
[[ $DESKTOP_WITH_TIME == enabled ]] && search_desktop_file [[ $DESKTOP_WITH_TIME == enabled ]] && search_desktop_file
if [[ -z "${PW_COMMENT_DB}" ]] ; then if [[ -z "${PW_COMMENT_DB}" ]] ; then
if [[ -n "${PORTPROTON_NAME}" ]] ; then if [[ -n "${PORTPROTON_NAME}" ]] ; then
PW_COMMENT_DB="${translations[Launching]} <b>$(print_wrapped "${PORTPROTON_NAME}" "50")$(seconds_to_time "$TIME_CURRENT")</b>" PW_COMMENT_DB="${translations[Launching]} <b>$(print_wrapped "${PORTPROTON_NAME}" "50")</b>$(seconds_to_time "$TIME_CURRENT")"
else else
PW_COMMENT_DB="${translations[Launching]} <b>$(print_wrapped "${PORTWINE_DB}" "50")$(seconds_to_time "$TIME_CURRENT")</b>" PW_COMMENT_DB="${translations[Launching]} <b>$(print_wrapped "${PORTWINE_DB}" "50")</b>$(seconds_to_time "$TIME_CURRENT")"
fi fi
else else
PW_COMMENT_DB="$PW_COMMENT_DB$(seconds_to_time "$TIME_CURRENT")" PW_COMMENT_DB="$PW_COMMENT_DB$(seconds_to_time "$TIME_CURRENT")"
...@@ -586,10 +588,14 @@ if [[ -f "${portwine_exe}" ]] ; then ...@@ -586,10 +588,14 @@ if [[ -f "${portwine_exe}" ]] ; then
--button="${translations[LAUNCH]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Run file ...]}":106 2>/dev/null --button="${translations[LAUNCH]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Run file ...]}":106 2>/dev/null
PW_YAD_SET="$?" PW_YAD_SET="$?"
fi fi
case $PW_YAD_SET in case "$PW_YAD_SET" in
128) 128)
[[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB [[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB
unset portwine_exe KEY_START $(sed -n '/export/p' "${PORTWINE_DB_FILE}" | sed 's/\(export\|=.*\| \)//g') PORTWINE_DB_FOR_UNSET=$(sed -n '/export/p' "${PORTWINE_DB_FILE}" | sed 's/\(export\|=.*\| \)//g')
for db_unset in $PORTWINE_DB_FOR_UNSET ; do
unset "$db_unset"
done
unset portwine_exe KEY_START
print_info "Restarting..." print_info "Restarting..."
restart_pp restart_pp
;; ;;
...@@ -622,32 +628,25 @@ else ...@@ -622,32 +628,25 @@ else
PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${line//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /} PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${line//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /}
fi fi
fi fi
if [[ $line =~ ^Icon= ]] ; then [[ $line =~ ^Icon= ]] && PW_ICON_PATH["$AMOUNT_GENERATE_BUTTONS"]="${line//Icon=/}"
PW_ICON_PATH["$AMOUNT_GENERATE_BUTTONS"]="${line//Icon=/}" [[ $line =~ ^#Time= ]] && PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]="${line//#Time=/}"
fi [[ $line =~ ^#NEW_DESKTOP ]] && NEW_DESKTOP=1
if [[ $line =~ ^#Time= ]] ; then
WITH_TIME="1"
PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]="${line//#Time=/}"
fi
done < "$desktop_file" done < "$desktop_file"
PW_ALL_DF["$AMOUNT_GENERATE_BUTTONS"]="$desktop_file_new" PW_ALL_DF["$AMOUNT_GENERATE_BUTTONS"]="$desktop_file_new"
# Чтобы новый ярлык показало первым при первом запуске, потом уже по времени if [[ $NEW_DESKTOP == 1 ]] && [[ $SORT_WITH_TIME == enabled ]] ; then
if [[ $WITH_TIME != 1 ]] ; then unset NEW_DESKTOP
echo "#Time=0" >> "$desktop_file" sed -i '/^#NEW_DESKTOP/d' "$desktop_file"
if [[ $SORT_WITH_TIME == enabled ]] ; then PW_AMOUNT_NEW_DESKTOP+=($AMOUNT_GENERATE_BUTTONS)
PW_AMOUNT_NO_TIME+=($AMOUNT_GENERATE_BUTTONS)
else
PW_AMOUNT_WITH_TIME+=($AMOUNT_GENERATE_BUTTONS)
fi
else else
if [[ ! ${PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]} =~ [0-9]+ ]] ; then PW_AMOUNT_OLD_DESKTOP+=($AMOUNT_GENERATE_BUTTONS)
sed -i '/^#Time=/d' "$desktop_file" fi
echo "#Time=0" >> "$desktop_file" # Для фикса битых #Time=
PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]="0" if [[ ! ${PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]} =~ [0-9]+ ]] ; then
fi portwine_exe=${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]//\"/}
PW_AMOUNT_WITH_TIME+=($AMOUNT_GENERATE_BUTTONS) search_desktop_file
unset portwine_exe
PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]=${TIME_CURRENT_ARRAY[0]}
fi fi
unset WITH_TIME
(( AMOUNT_GENERATE_BUTTONS++ )) (( AMOUNT_GENERATE_BUTTONS++ ))
fi fi
fi fi
...@@ -681,7 +680,7 @@ else ...@@ -681,7 +680,7 @@ else
# Генерация .desktop баттанов для главного меню # Генерация .desktop баттанов для главного меню
IFS=$'\n' IFS=$'\n'
PW_GENERATE_BUTTONS="--field= ${translations[Create shortcut...]}!${PW_GUI_ICON_PATH}/find_48.svg!:FBTNR%@bash -c \"button_click --normal pw_find_exe\"%" PW_GENERATE_BUTTONS="--field= ${translations[Create shortcut...]}!${PW_GUI_ICON_PATH}/find_48.svg!:FBTNR%@bash -c \"button_click --normal pw_find_exe\"%"
for dp in "${PW_AMOUNT_NO_TIME[@]}" "${PW_AMOUNT_WITH_TIME[@]}" ; do for dp in ${PW_AMOUNT_NEW_DESKTOP[@]} ${PW_AMOUNT_OLD_DESKTOP[@]} ; do
PW_NAME_D_ICON_48="${PW_ICON_PATH[dp]%.png}_48" PW_NAME_D_ICON_48="${PW_ICON_PATH[dp]%.png}_48"
PW_NAME_D_ICON_128="${PW_ICON_PATH[dp]%.png}" PW_NAME_D_ICON_128="${PW_ICON_PATH[dp]%.png}"
PW_NAME_D_ICON_NEW="${PW_NAME_D_ICON[dp]//\"/}" PW_NAME_D_ICON_NEW="${PW_NAME_D_ICON[dp]//\"/}"
...@@ -694,12 +693,12 @@ else ...@@ -694,12 +693,12 @@ else
PW_DESKTOP_FILES_SHOW_REGEX=(\! % \$ \& \<) PW_DESKTOP_FILES_SHOW_REGEX=(\! % \$ \& \<)
PW_DESKTOP_FILES_REGEX=(\( \) \! \$ % \& \` \' \" \> \< \\ \| \;) PW_DESKTOP_FILES_REGEX=(\( \) \! \$ % \& \` \' \" \> \< \\ \| \;)
for i in ${PW_DESKTOP_FILES_SHOW_REGEX[@]} ; do for i in "${PW_DESKTOP_FILES_SHOW_REGEX[@]}" ; do
PW_DESKTOP_FILES_SHOW="${PW_DESKTOP_FILES_SHOW//$i/}" PW_DESKTOP_FILES_SHOW="${PW_DESKTOP_FILES_SHOW//$i/}"
done done
count=1 count=1
for j in ${PW_DESKTOP_FILES_REGEX[@]} ; do for j in "${PW_DESKTOP_FILES_REGEX[@]}" ; do
PW_DESKTOP_FILES="${PW_DESKTOP_FILES//$j/#+_$count#}" PW_DESKTOP_FILES="${PW_DESKTOP_FILES//$j/#+_$count#}"
(( count++ )) (( count++ ))
done done
...@@ -868,7 +867,7 @@ if [[ -f "${PORTWINE_DB_FILE}" ]] ; then ...@@ -868,7 +867,7 @@ if [[ -f "${PORTWINE_DB_FILE}" ]] ; then
edit_db_from_gui PW_VULKAN_USE PW_WINE_USE PW_PREFIX_NAME edit_db_from_gui PW_VULKAN_USE PW_WINE_USE PW_PREFIX_NAME
fi fi
case $PW_YAD_SET in case "$PW_YAD_SET" in
gui_pw_reinstall_pp|open_changelog|\ gui_pw_reinstall_pp|open_changelog|\
128|gui_pw_update|gui_rm_portproton|\ 128|gui_pw_update|gui_rm_portproton|\
change_loc|gui_open_scripts_from_backup|\ change_loc|gui_open_scripts_from_backup|\
...@@ -898,7 +897,7 @@ case $PW_YAD_SET in ...@@ -898,7 +897,7 @@ case $PW_YAD_SET in
;; ;;
esac esac
case $PW_YAD_SET in case "$PW_YAD_SET" in
98) portwine_delete_shortcut ;; 98) portwine_delete_shortcut ;;
100) portwine_create_shortcut ;; 100) portwine_create_shortcut ;;
DEBUG|102) portwine_start_debug ;; DEBUG|102) portwine_start_debug ;;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment