forked from CastroFidel/PortWINE
Merge branch 'hardmode-2' of github.com:Htylol/PortWINE into Htylol-hardmode-2
This commit is contained in:
commit
383807a6b7
@ -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-24 12:43+0500\n"
|
"POT-Creation-Date: 2024-10-26 06:41+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"
|
||||||
@ -59,10 +59,13 @@ msgstr ""
|
|||||||
msgid "Create shortcut for select file..."
|
msgid "Create shortcut for select file..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "DELETE SHORTCUT"
|
msgid "CHANGE SHORTCUT"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Delete shortcut for select file..."
|
msgid "Change shortcut for select file..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Launching"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Base settings"
|
msgid "Base settings"
|
||||||
@ -227,9 +230,6 @@ msgstr ""
|
|||||||
msgid "Downloading"
|
msgid "Downloading"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Launching"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "day"
|
msgid "day"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1426,6 +1426,9 @@ msgstr ""
|
|||||||
msgid "The shortcut will be created in the PortProton directory."
|
msgid "The shortcut will be created in the PortProton directory."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Add shortcut to MENU -> GAMES"
|
msgid "Add shortcut to MENU -> GAMES"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1435,19 +1438,18 @@ msgstr ""
|
|||||||
msgid "Add shortcut to STEAM library"
|
msgid "Add shortcut to STEAM library"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Name"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "A higher number of duplicate desktop files were found for this file."
|
|
||||||
"\\nShould I delete the extra ones or not?"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "For adding shortcut to STEAM, needed restart.\\n\\nRestart STEAM now?"
|
msgid "For adding shortcut to STEAM, needed restart.\\n\\nRestart STEAM now?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Restarting STEAM... Please wait."
|
msgid "Restarting STEAM... Please wait."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "The shortcut will be changed in the PortProton directory."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "REMOVE SHORTCUT"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Could not find the file:"
|
msgid "Could not find the file:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1455,6 +1457,9 @@ msgid "ATTENTION:\\nIf you forgot to mount the disk with the running "
|
|||||||
"application, click CANCEL!"
|
"application, click CANCEL!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "DELETE SHORTCUT"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Starting prefix manager:"
|
msgid "Starting prefix manager:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -8,15 +8,15 @@ 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-24 13:48+0500\n"
|
"POT-Creation-Date: 2024-10-26 06:41+0500\n"
|
||||||
"PO-Revision-Date: 2024-10-24 13:51+0500\n"
|
"PO-Revision-Date: 2024-10-26 13:58+0500\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"Language: es_ES\n"
|
"Language: es_ES\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: Poedit 3.4.2\n"
|
"X-Generator: Poedit 3.4.4\n"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"A running PortProton session was detected.\\nDo you want to end the previous "
|
"A running PortProton session was detected.\\nDo you want to end the previous "
|
||||||
@ -64,11 +64,14 @@ msgstr "CREAR ACCESO DIRECTO"
|
|||||||
msgid "Create shortcut for select file..."
|
msgid "Create shortcut for select file..."
|
||||||
msgstr "Crear un acceso directo para el archivo seleccionado..."
|
msgstr "Crear un acceso directo para el archivo seleccionado..."
|
||||||
|
|
||||||
msgid "DELETE SHORTCUT"
|
msgid "CHANGE SHORTCUT"
|
||||||
msgstr "ELIMINAR ACCESO DIRECTO"
|
msgstr "CAMBIAR ACCESO DIRECTO"
|
||||||
|
|
||||||
msgid "Delete shortcut for select file..."
|
msgid "Change shortcut for select file..."
|
||||||
msgstr "Eliminar el acceso directo del archivo seleccionado..."
|
msgstr "Cambiar un acceso directo para el archivo seleccionado..."
|
||||||
|
|
||||||
|
msgid "Launching"
|
||||||
|
msgstr "Lanzamiento"
|
||||||
|
|
||||||
msgid "Base settings"
|
msgid "Base settings"
|
||||||
msgstr "Configuración básica"
|
msgstr "Configuración básica"
|
||||||
@ -247,9 +250,6 @@ msgstr ""
|
|||||||
msgid "Downloading"
|
msgid "Downloading"
|
||||||
msgstr "Descargando"
|
msgstr "Descargando"
|
||||||
|
|
||||||
msgid "Launching"
|
|
||||||
msgstr "Lanzamiento"
|
|
||||||
|
|
||||||
msgid "day"
|
msgid "day"
|
||||||
msgstr "día"
|
msgstr "día"
|
||||||
|
|
||||||
@ -1858,6 +1858,9 @@ msgstr "¿Realmente deseas restablecer la configuración de"
|
|||||||
msgid "The shortcut will be created in the PortProton directory."
|
msgid "The shortcut will be created in the PortProton directory."
|
||||||
msgstr "El acceso directo se creará en el directorio de PortProton."
|
msgstr "El acceso directo se creará en el directorio de PortProton."
|
||||||
|
|
||||||
|
msgid "Name"
|
||||||
|
msgstr "Nombre"
|
||||||
|
|
||||||
msgid "Add shortcut to MENU -> GAMES"
|
msgid "Add shortcut to MENU -> GAMES"
|
||||||
msgstr "Agregar acceso directo a MENU -> JUEGOS"
|
msgstr "Agregar acceso directo a MENU -> JUEGOS"
|
||||||
|
|
||||||
@ -1867,16 +1870,6 @@ msgstr "Agregar acceso directo al escritorio"
|
|||||||
msgid "Add shortcut to STEAM library"
|
msgid "Add shortcut to STEAM library"
|
||||||
msgstr "Agregar acceso directo a la biblioteca de STEAM"
|
msgstr "Agregar acceso directo a la biblioteca de STEAM"
|
||||||
|
|
||||||
msgid "Name"
|
|
||||||
msgstr "Nombre"
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"A higher number of duplicate desktop files were found for this file."
|
|
||||||
"\\nShould I delete the extra ones or not?"
|
|
||||||
msgstr ""
|
|
||||||
"Se encontraron un mayor número de archivos de escritorio duplicados para "
|
|
||||||
"este archivo.\\n¿Debería eliminar los adicionales o no?"
|
|
||||||
|
|
||||||
msgid "For adding shortcut to STEAM, needed restart.\\n\\nRestart STEAM now?"
|
msgid "For adding shortcut to STEAM, needed restart.\\n\\nRestart STEAM now?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Para agregar el acceso directo a STEAM, es necesario reiniciar.\\n\\¿Quieres "
|
"Para agregar el acceso directo a STEAM, es necesario reiniciar.\\n\\¿Quieres "
|
||||||
@ -1885,6 +1878,12 @@ msgstr ""
|
|||||||
msgid "Restarting STEAM... Please wait."
|
msgid "Restarting STEAM... Please wait."
|
||||||
msgstr "Restarting STEAM... Please wait."
|
msgstr "Restarting STEAM... Please wait."
|
||||||
|
|
||||||
|
msgid "The shortcut will be changed in the PortProton directory."
|
||||||
|
msgstr "El acceso directo se cambiará en el directorio de PortProton."
|
||||||
|
|
||||||
|
msgid "REMOVE SHORTCUT"
|
||||||
|
msgstr "ELIMINAR ACCESO DIRECTO"
|
||||||
|
|
||||||
msgid "Could not find the file:"
|
msgid "Could not find the file:"
|
||||||
msgstr "No se pudo encontrar el archivo:"
|
msgstr "No se pudo encontrar el archivo:"
|
||||||
|
|
||||||
@ -1896,6 +1895,9 @@ msgstr ""
|
|||||||
"Si olvidaste montar el disco con la aplicación en ejecución, ¡haz clic en "
|
"Si olvidaste montar el disco con la aplicación en ejecución, ¡haz clic en "
|
||||||
"CANCELAR!"
|
"CANCELAR!"
|
||||||
|
|
||||||
|
msgid "DELETE SHORTCUT"
|
||||||
|
msgstr "ELIMINAR ACCESO DIRECTO"
|
||||||
|
|
||||||
msgid "Starting prefix manager:"
|
msgid "Starting prefix manager:"
|
||||||
msgstr "Iniciando el administrador de prefijos:"
|
msgstr "Iniciando el administrador de prefijos:"
|
||||||
|
|
||||||
@ -2173,6 +2175,16 @@ msgstr ""
|
|||||||
msgid "Please wait. downloading covers for"
|
msgid "Please wait. downloading covers for"
|
||||||
msgstr "Por favor, espera. Descargando portadas para"
|
msgstr "Por favor, espera. Descargando portadas para"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "A higher number of duplicate desktop files were found for this file."
|
||||||
|
#~ "\\nShould I delete the extra ones or not?"
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Se encontraron un mayor número de archivos de escritorio duplicados para "
|
||||||
|
#~ "este archivo.\\n¿Debería eliminar los adicionales o no?"
|
||||||
|
|
||||||
|
#~ msgid "Delete shortcut for select file..."
|
||||||
|
#~ msgstr "Eliminar el acceso directo del archivo seleccionado..."
|
||||||
|
|
||||||
#~ msgid "Forced activation of vertical sync"
|
#~ msgid "Forced activation of vertical sync"
|
||||||
#~ msgstr "Activación forzada de la sincronización vertical"
|
#~ msgstr "Activación forzada de la sincronización vertical"
|
||||||
|
|
||||||
|
@ -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-24 12:43+0500\n"
|
"POT-Creation-Date: 2024-10-26 06:41+0500\n"
|
||||||
"PO-Revision-Date: 2024-10-24 12:45+0500\n"
|
"PO-Revision-Date: 2024-10-26 06:43+0500\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"Language: ru_RU\n"
|
"Language: ru_RU\n"
|
||||||
@ -17,7 +17,7 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||||
"n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
|
"n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
|
||||||
"X-Generator: Poedit 3.4.2\n"
|
"X-Generator: Poedit 3.4.4\n"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"A running PortProton session was detected.\\nDo you want to end the previous "
|
"A running PortProton session was detected.\\nDo you want to end the previous "
|
||||||
@ -64,11 +64,14 @@ msgstr "СОЗДАТЬ ЯРЛЫК"
|
|||||||
msgid "Create shortcut for select file..."
|
msgid "Create shortcut for select file..."
|
||||||
msgstr "Создать ярлык для выбранного файла..."
|
msgstr "Создать ярлык для выбранного файла..."
|
||||||
|
|
||||||
msgid "DELETE SHORTCUT"
|
msgid "CHANGE SHORTCUT"
|
||||||
msgstr "УДАЛИТЬ ЯРЛЫК"
|
msgstr "ИЗМЕНИТЬ ЯРЛЫК"
|
||||||
|
|
||||||
msgid "Delete shortcut for select file..."
|
msgid "Change shortcut for select file..."
|
||||||
msgstr "Удалить ярлык для выбранного файла..."
|
msgstr "Изменить ярлык для выбранного файла..."
|
||||||
|
|
||||||
|
msgid "Launching"
|
||||||
|
msgstr "Запуск"
|
||||||
|
|
||||||
msgid "Base settings"
|
msgid "Base settings"
|
||||||
msgstr "Основные настройки"
|
msgstr "Основные настройки"
|
||||||
@ -249,9 +252,6 @@ msgstr ""
|
|||||||
msgid "Downloading"
|
msgid "Downloading"
|
||||||
msgstr "Загружается"
|
msgstr "Загружается"
|
||||||
|
|
||||||
msgid "Launching"
|
|
||||||
msgstr "Запуск"
|
|
||||||
|
|
||||||
msgid "day"
|
msgid "day"
|
||||||
msgstr "день"
|
msgstr "день"
|
||||||
|
|
||||||
@ -1836,6 +1836,9 @@ msgstr "Вы действительно хотите сбросить настр
|
|||||||
msgid "The shortcut will be created in the PortProton directory."
|
msgid "The shortcut will be created in the PortProton directory."
|
||||||
msgstr "Ярлык будет создан в каталоге PortProton."
|
msgstr "Ярлык будет создан в каталоге PortProton."
|
||||||
|
|
||||||
|
msgid "Name"
|
||||||
|
msgstr "Имя"
|
||||||
|
|
||||||
msgid "Add shortcut to MENU -> GAMES"
|
msgid "Add shortcut to MENU -> GAMES"
|
||||||
msgstr "Добавить ярлык в МЕНЮ -> ИГРЫ"
|
msgstr "Добавить ярлык в МЕНЮ -> ИГРЫ"
|
||||||
|
|
||||||
@ -1845,14 +1848,6 @@ msgstr "Добавить ярлык на рабочий стол"
|
|||||||
msgid "Add shortcut to STEAM library"
|
msgid "Add shortcut to STEAM library"
|
||||||
msgstr "Добавить ярлык в библиотеку STEAM"
|
msgstr "Добавить ярлык в библиотеку STEAM"
|
||||||
|
|
||||||
msgid "Name"
|
|
||||||
msgstr "Имя"
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"A higher number of duplicate desktop files were found for this file."
|
|
||||||
"\\nShould I delete the extra ones or not?"
|
|
||||||
msgstr "Найдены дубликаты создаваемого ярлыка.\\nУдалить лишние ярлыки?"
|
|
||||||
|
|
||||||
msgid "For adding shortcut to STEAM, needed restart.\\n\\nRestart STEAM now?"
|
msgid "For adding shortcut to STEAM, needed restart.\\n\\nRestart STEAM now?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Для добавления ярлыка в STEAM требуется перезапуск.\\n\\nПерезапустить STEAM "
|
"Для добавления ярлыка в STEAM требуется перезапуск.\\n\\nПерезапустить STEAM "
|
||||||
@ -1861,6 +1856,12 @@ msgstr ""
|
|||||||
msgid "Restarting STEAM... Please wait."
|
msgid "Restarting STEAM... Please wait."
|
||||||
msgstr "Перезапускаем STEAM... Пожалуйста, подождите."
|
msgstr "Перезапускаем STEAM... Пожалуйста, подождите."
|
||||||
|
|
||||||
|
msgid "The shortcut will be changed in the PortProton directory."
|
||||||
|
msgstr "Ярлык будет изменён в каталоге PortProton."
|
||||||
|
|
||||||
|
msgid "REMOVE SHORTCUT"
|
||||||
|
msgstr "УДАЛИТЬ ЯРЛЫК"
|
||||||
|
|
||||||
msgid "Could not find the file:"
|
msgid "Could not find the file:"
|
||||||
msgstr "Не удалось найти файл:"
|
msgstr "Не удалось найти файл:"
|
||||||
|
|
||||||
@ -1871,6 +1872,9 @@ msgstr ""
|
|||||||
"ВНИМАНИЕ:\\nЕсли вы забыли примонтировать диск с запускаемым приложением, "
|
"ВНИМАНИЕ:\\nЕсли вы забыли примонтировать диск с запускаемым приложением, "
|
||||||
"нажмите ОТМЕНИТЬ!"
|
"нажмите ОТМЕНИТЬ!"
|
||||||
|
|
||||||
|
msgid "DELETE SHORTCUT"
|
||||||
|
msgstr "УДАЛИТЬ ЯРЛЫК"
|
||||||
|
|
||||||
msgid "Starting prefix manager:"
|
msgid "Starting prefix manager:"
|
||||||
msgstr "Запуск менеджера префиксов:"
|
msgstr "Запуск менеджера префиксов:"
|
||||||
|
|
||||||
@ -2157,6 +2161,14 @@ msgstr "SteamGridDB не отвечает, принудительно отклю
|
|||||||
msgid "Please wait. downloading covers for"
|
msgid "Please wait. downloading covers for"
|
||||||
msgstr "Пожалуйста, подождите. Загрузка обложек для"
|
msgstr "Пожалуйста, подождите. Загрузка обложек для"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "A higher number of duplicate desktop files were found for this file."
|
||||||
|
#~ "\\nShould I delete the extra ones or not?"
|
||||||
|
#~ msgstr "Найдены дубликаты создаваемого ярлыка.\\nУдалить лишние ярлыки?"
|
||||||
|
|
||||||
|
#~ msgid "Delete shortcut for select file..."
|
||||||
|
#~ msgstr "Удалить ярлык для выбранного файла..."
|
||||||
|
|
||||||
#~ msgid "Forced activation of vertical sync"
|
#~ msgid "Forced activation of vertical sync"
|
||||||
#~ msgstr "Принудительное включение вертикальной синхронизации"
|
#~ msgstr "Принудительное включение вертикальной синхронизации"
|
||||||
|
|
||||||
|
@ -248,9 +248,7 @@ eval_translations () {
|
|||||||
|
|
||||||
create_translations () {
|
create_translations () {
|
||||||
local po_file msgid msgstr
|
local po_file msgid msgstr
|
||||||
if [[ ! -d "${PW_CACHE_LANG_PATH}" ]] ; then
|
[[ ! -d $PW_CACHE_LANG_PATH ]] && create_new_dir "$PW_CACHE_LANG_PATH"
|
||||||
create_new_dir "${PW_CACHE_LANG_PATH}"
|
|
||||||
fi
|
|
||||||
cat << EOF > "${PW_CACHE_LANG_PATH}/$LANGUAGE"
|
cat << EOF > "${PW_CACHE_LANG_PATH}/$LANGUAGE"
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
TRANSLATIONS_VER=$scripts_install_ver
|
TRANSLATIONS_VER=$scripts_install_ver
|
||||||
@ -769,10 +767,10 @@ background_pid () {
|
|||||||
case $arg1 in
|
case $arg1 in
|
||||||
--start)
|
--start)
|
||||||
eval "$arg2 &"
|
eval "$arg2 &"
|
||||||
PID=$!
|
local PID=$!
|
||||||
export bg_pid"${arg3}"="$PID" ;;
|
export bg_pid"${arg3}"="$PID" ;;
|
||||||
--end)
|
--end)
|
||||||
PID=$(get_bg_pid bg_pid"${arg3}")
|
local PID=$(get_bg_pid bg_pid"${arg3}")
|
||||||
[[ -z $PID ]] && return 1
|
[[ -z $PID ]] && return 1
|
||||||
wait "$PID" 2>/dev/null && return 0 ;;
|
wait "$PID" 2>/dev/null && return 0 ;;
|
||||||
esac
|
esac
|
||||||
@ -849,80 +847,74 @@ debug_timer () {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Поиск нужного .desktop файла по $portwine_exe
|
# Поиск нужного .desktop файла по $portwine_exe (для показа в комментариях нужного времени)
|
||||||
|
# Параллельное создание базы по времени после завершения приложения
|
||||||
search_desktop_file () {
|
search_desktop_file () {
|
||||||
local count desktop_file desktop_file_new EXEC_DESKTOP TIME_CURRENT_PROXY EXEC_DESKTOP_NEW TIME_TOTAL i j df
|
local desktop_file desktop_file_new EXEC_DESKTOP line1 line2 TIME_TOTAL
|
||||||
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
|
||||||
if [[ ! $desktop_file_new =~ (PortProton|readme) ]] ; then
|
if [[ ! $desktop_file_new =~ (PortProton|readme) ]] ; then
|
||||||
while IFS= read -r line ; do
|
while IFS= read -r line1 ; do
|
||||||
if [[ $line =~ ^Exec= ]] ; then
|
if [[ $line1 =~ ^Exec= ]] ; then
|
||||||
if check_flatpak ; then
|
if check_flatpak ; then
|
||||||
EXEC_DESKTOP=${line//Exec=flatpak run ru.linux_gaming.PortProton /}
|
EXEC_DESKTOP=${line1//Exec=flatpak run ru.linux_gaming.PortProton /}
|
||||||
else
|
else
|
||||||
EXEC_DESKTOP=${line//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /}
|
EXEC_DESKTOP=${line1//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /}
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
[[ $line =~ ^#Time= ]] && TIME_CURRENT_PROXY=${line//#Time=/}
|
|
||||||
done < "$desktop_file"
|
done < "$desktop_file"
|
||||||
# Для конвертации существующих .desktop файлов flatpak в натив и наоборот
|
while IFS=" " read -r -a line2 ; do
|
||||||
if [[ $EXEC_DESKTOP =~ ^"Exec=flatpak run ru.linux_gaming.PortProton " ]] ; then
|
if [[ ${line2[1]} == "$ENTRY_POINT" ]] ; then
|
||||||
sed -i "s|Exec=flatpak run ru.linux_gaming.PortProton|Exec=env \"$PORT_SCRIPTS_PATH/start.sh\"|" "$desktop_file"
|
break
|
||||||
elif [[ $EXEC_DESKTOP =~ ^"Exec=env \"$PORT_SCRIPTS_PATH/start.sh\" " ]] ; then
|
|
||||||
sed -i "s|Exec=env \"$PORT_SCRIPTS_PATH/start.sh\"|Exec=flatpak run ru.linux_gaming.PortProton|" "$desktop_file"
|
|
||||||
fi
|
|
||||||
EXEC_DESKTOP_NEW=${EXEC_DESKTOP//\"/}
|
|
||||||
if [[ $portwine_exe == "$EXEC_DESKTOP_NEW" ]] ; then
|
|
||||||
if [[ -n $TIME_CURRENT_PROXY ]] ; then
|
|
||||||
TIME_CURRENT=$TIME_CURRENT_PROXY
|
|
||||||
TIME_CURRENT_ARRAY+=($TIME_CURRENT)
|
|
||||||
# Если существует несколько .desktop файлов на один и тот же .exe файл,
|
|
||||||
# то среди них время берётся из того .desktop файла, в котором проведено дольше времени
|
|
||||||
# и данное время будет потом записываться во все .desktop файлы у которых общий .exe файл
|
|
||||||
if [[ -n ${TIME_CURRENT_ARRAY[1]} ]] ; then
|
|
||||||
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
|
|
||||||
fi
|
|
||||||
TIME_CURRENT="${TIME_CURRENT_ARRAY[0]}"
|
|
||||||
# Для битых #Time=
|
|
||||||
if [[ ! $TIME_CURRENT =~ [0-9]+ ]] \
|
|
||||||
|| (( TIME_CURRENT >= 999999999 )) ; then
|
|
||||||
TIME_CURRENT="0"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
DESKTOP_FILES_ARRAY["$count"]="$desktop_file"
|
done < "$PW_DATABASE_PATH/database"
|
||||||
(( count++ ))
|
if [[ $portwine_exe == "${EXEC_DESKTOP//\"/}" ]] ; then
|
||||||
|
DESKTOP_CORRECT_FILE="$desktop_file"
|
||||||
fi
|
fi
|
||||||
unset TIME_CURRENT_PROXY
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
IFS="$orig_IFS"
|
IFS="$orig_IFS"
|
||||||
|
if [[ -n ${line2[2]} ]]
|
||||||
[[ -z $TIME_CURRENT ]] && TIME_CURRENT=0
|
then TIME_CURRENT=${line2[2]}
|
||||||
|
else TIME_CURRENT=0
|
||||||
|
fi
|
||||||
export TIME_CURRENT
|
export TIME_CURRENT
|
||||||
|
# Проверка новых десктоп файлов, чтобы их можно было сортировать первыми при первом создании в главном меню
|
||||||
|
if [[ $PW_NEW_DESKTOP == 1 ]] && [[ ${line2[3]} != NEW_DESKTOP ]] ; then
|
||||||
|
if [[ -n ${line2[1]} ]] ; then
|
||||||
|
sed -i "s|$ENTRY_POINT $TIME_CURRENT OLD_DESKTOP|$ENTRY_POINT $TIME_CURRENT NEW_DESKTOP|" "$PW_DATABASE_PATH/database"
|
||||||
|
else
|
||||||
|
echo "${portwine_exe// /#@_@#} $ENTRY_POINT $TIME_CURRENT NEW_DESKTOP" >> "$PW_DATABASE_PATH/database"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
unset PW_NEW_DESKTOP
|
||||||
|
# Когда приложение было запущено и завершено
|
||||||
if [[ -n $PW_TIME_IN_GAME ]] ; then
|
if [[ -n $PW_TIME_IN_GAME ]] ; then
|
||||||
TIME_TOTAL=$(( TIME_CURRENT + PW_TIME_IN_GAME ))
|
TIME_TOTAL=$(( TIME_CURRENT + PW_TIME_IN_GAME ))
|
||||||
for df in "${DESKTOP_FILES_ARRAY[@]}" ; do
|
if [[ -n ${line2[1]} ]] ; then
|
||||||
sed -i '/^#Time=/d' "$df"
|
# Когда есть предыдущее время
|
||||||
echo "#Time=$TIME_TOTAL" >> "$df"
|
sed -i "s|$ENTRY_POINT $TIME_CURRENT|$ENTRY_POINT $TIME_TOTAL|" "$PW_DATABASE_PATH/database"
|
||||||
done
|
else
|
||||||
else
|
# Когда только запустили приложение первый раз
|
||||||
for df in "${DESKTOP_FILES_ARRAY[@]}" ; do
|
echo "${portwine_exe// /#@_@#} $ENTRY_POINT $TIME_TOTAL OLD_DESKTOP" >> "$PW_DATABASE_PATH/database"
|
||||||
sed -i '/^#Time=/d' "$df"
|
fi
|
||||||
echo "#Time=$TIME_CURRENT" >> "$df"
|
# Здесь добавляются новые линии для статистики по аналогии, к примеру ${line2[4]}
|
||||||
done
|
# L4 важен, чтобы не было путаницы из-за sed, то что используется \(.*\), для ${line2[5]} это будет L5 и т.д.
|
||||||
|
if [[ -z ${line2[4]} ]] ; then
|
||||||
|
line2[4]=1
|
||||||
|
sed -i "s|$ENTRY_POINT \(.*\)|$ENTRY_POINT \1 L4-${line2[4]}|" "$PW_DATABASE_PATH/database"
|
||||||
|
else
|
||||||
|
line2[4]=${line2[4]//L4-/}
|
||||||
|
NUMBER_OF_STARTS=$(( line2[4] + 1 ))
|
||||||
|
sed -i "s|$ENTRY_POINT \(.*\) L4-${line2[4]}|$ENTRY_POINT \1 L4-$NUMBER_OF_STARTS|" "$PW_DATABASE_PATH/database"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# Ремонтирует путь на новый, если вдруг путь до .exe файла битый или изменился, но .exe файл он опознал
|
||||||
|
if [[ -n ${line2[1]} ]] && [[ ${line2[0]} != "${portwine_exe// /#@_@#}" ]] ; then
|
||||||
|
[[ -z $TIME_TOTAL ]] && TIME_TOTAL=$TIME_CURRENT
|
||||||
|
sed -i "s|${line2[0]} $ENTRY_POINT $TIME_CURRENT|${portwine_exe// /#@_@#} $ENTRY_POINT $TIME_TOTAL|" "$PW_DATABASE_PATH/database"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -938,9 +930,9 @@ create_name_desktop () {
|
|||||||
elif [[ -n $name_desktop ]] ; then
|
elif [[ -n $name_desktop ]] ; then
|
||||||
DESKTOP_NAME_FILE="$name_desktop"
|
DESKTOP_NAME_FILE="$name_desktop"
|
||||||
unset name_desktop
|
unset name_desktop
|
||||||
elif [[ -n ${DESKTOP_FILES_ARRAY[0]} ]] \
|
elif [[ -n $DESKTOP_CORRECT_FILE ]] ; then
|
||||||
&& [[ -z ${DESKTOP_FILES_ARRAY[1]} ]] ; then
|
DESKTOP_NAME_FILE="${DESKTOP_CORRECT_FILE//"$PORT_WINE_PATH/"/}"
|
||||||
DESKTOP_NAME_FILE="${DESKTOP_FILES_ARRAY[0]//"$PORT_WINE_PATH/"/}"
|
unset DESKTOP_CORRECT_FILE
|
||||||
DESKTOP_NAME_FILE="${DESKTOP_NAME_FILE//.desktop/}"
|
DESKTOP_NAME_FILE="${DESKTOP_NAME_FILE//.desktop/}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -2483,6 +2475,7 @@ pw_create_gui_png () {
|
|||||||
fi
|
fi
|
||||||
if [[ -z "$PORTPROTON_NAME" ]] \
|
if [[ -z "$PORTPROTON_NAME" ]] \
|
||||||
|| [[ -z "$FILE_DESCRIPTION" ]] \
|
|| [[ -z "$FILE_DESCRIPTION" ]] \
|
||||||
|
|| [[ -z "$ENTRY_POINT" ]] \
|
||||||
|| [[ "$PW_NO_RESTART_PPDB" == "1" ]]
|
|| [[ "$PW_NO_RESTART_PPDB" == "1" ]]
|
||||||
then
|
then
|
||||||
if [[ -n "${PORTWINE_CREATE_SHORTCUT_NAME}" ]] ; then
|
if [[ -n "${PORTWINE_CREATE_SHORTCUT_NAME}" ]] ; then
|
||||||
@ -2492,6 +2485,7 @@ pw_create_gui_png () {
|
|||||||
if timeout 3 exiftool "$portwine_exe" &> "${PW_TMPFS_PATH}/exiftool.tmp" ; then
|
if timeout 3 exiftool "$portwine_exe" &> "${PW_TMPFS_PATH}/exiftool.tmp" ; then
|
||||||
PW_PRODUCTNAME=$(sed -n 's/^Product Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
PW_PRODUCTNAME=$(sed -n 's/^Product Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
||||||
FILE_DESCRIPTION=$(sed -n 's/^File Description\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
FILE_DESCRIPTION=$(sed -n 's/^File Description\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
||||||
|
ENTRY_POINT=$(sed -n 's/^Entry Point\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
||||||
else
|
else
|
||||||
print_error "exiftool - broken!"
|
print_error "exiftool - broken!"
|
||||||
fi
|
fi
|
||||||
@ -2500,6 +2494,7 @@ pw_create_gui_png () {
|
|||||||
env PERL5LIB="${PW_PLUGINS_PATH}/portable/lib/perl5" "${PW_PLUGINS_PATH}/portable/bin/exiftool" "$portwine_exe" &> "${PW_TMPFS_PATH}/exiftool.tmp"
|
env PERL5LIB="${PW_PLUGINS_PATH}/portable/lib/perl5" "${PW_PLUGINS_PATH}/portable/bin/exiftool" "$portwine_exe" &> "${PW_TMPFS_PATH}/exiftool.tmp"
|
||||||
PW_PRODUCTNAME=$(sed -n 's/^Product Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
PW_PRODUCTNAME=$(sed -n 's/^Product Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
||||||
FILE_DESCRIPTION=$(sed -n 's/^File Description\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
FILE_DESCRIPTION=$(sed -n 's/^File Description\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
||||||
|
ENTRY_POINT=$(sed -n 's/^Entry Point\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$PW_PRODUCTNAME" =~ (Launcher|RU) ]]
|
if [[ "$PW_PRODUCTNAME" =~ (Launcher|RU) ]]
|
||||||
@ -2518,7 +2513,7 @@ pw_create_gui_png () {
|
|||||||
|
|
||||||
PORTPROTON_NAME="$(echo "${PORTPROTON_NAME}" | sed "s/\`//g" | sed "s/\"//g" | sed "s/'//g" | sed "s/\!//g")"
|
PORTPROTON_NAME="$(echo "${PORTPROTON_NAME}" | sed "s/\`//g" | sed "s/\"//g" | sed "s/'//g" | sed "s/\!//g")"
|
||||||
export PORTPROTON_NAME
|
export PORTPROTON_NAME
|
||||||
edit_db_from_gui PORTPROTON_NAME FILE_DESCRIPTION
|
edit_db_from_gui PORTPROTON_NAME FILE_DESCRIPTION ENTRY_POINT
|
||||||
fi
|
fi
|
||||||
|
|
||||||
resize_png "$portwine_exe" "${PORTPROTON_NAME}" "128"
|
resize_png "$portwine_exe" "${PORTPROTON_NAME}" "128"
|
||||||
@ -5600,25 +5595,22 @@ portwine_create_shortcut () {
|
|||||||
--button="${translations[CANCEL]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":2 \
|
--button="${translations[CANCEL]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":2 \
|
||||||
--button="${translations[CREATE SHORTCUT]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 2>/dev/null)
|
--button="${translations[CREATE SHORTCUT]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 2>/dev/null)
|
||||||
PW_YAD_OUT=$?
|
PW_YAD_OUT=$?
|
||||||
|
portwine_output_yad_shortcut
|
||||||
|
}
|
||||||
|
|
||||||
|
portwine_output_yad_shortcut () {
|
||||||
if [[ "$PW_YAD_OUT" == "0" ]] ; then
|
if [[ "$PW_YAD_OUT" == "0" ]] ; then
|
||||||
name_desktop=$(echo "$OUTPUT" | awk -F'|' '{print $1}' | sed "s/\`//g" | sed "s/\"//g" | sed "s/'//g" | sed "s/\!//g")
|
name_desktop=$(echo "$OUTPUT" | awk -F'|' '{print $1}' | sed "s/\`//g" | sed "s/\"//g" | sed "s/'//g" | sed "s/\!//g")
|
||||||
PW_SHORTCUT_MENU=$(echo "$OUTPUT" | awk -F'|' '{print $2}')
|
PW_SHORTCUT_MENU=$(echo "$OUTPUT" | awk -F'|' '{print $2}')
|
||||||
PW_SHORTCUT_DESKTOP=$(echo "$OUTPUT" | awk -F'|' '{print $3}')
|
PW_SHORTCUT_DESKTOP=$(echo "$OUTPUT" | awk -F'|' '{print $3}')
|
||||||
PW_SHORTCUT_STEAM=$(echo "$OUTPUT" | awk -F'|' '{print $4}')
|
PW_SHORTCUT_STEAM=$(echo "$OUTPUT" | awk -F'|' '{print $4}')
|
||||||
|
|
||||||
edit_user_conf_from_gui PW_SHORTCUT_MENU PW_SHORTCUT_DESKTOP PW_SHORTCUT_STEAM
|
if [[ $PORTWINE_CHANGE_SHORTCUT != 1 ]] ; then
|
||||||
|
edit_user_conf_from_gui PW_SHORTCUT_MENU PW_SHORTCUT_DESKTOP PW_SHORTCUT_STEAM
|
||||||
if [[ -n ${DESKTOP_FILES_ARRAY[0]} && $name_desktop != "$DESKTOP_NAME_FILE" ]] || [[ -n ${DESKTOP_FILES_ARRAY[1]} ]] ; then
|
|
||||||
if yad_question "${translations[A higher number of duplicate desktop files were found for this file.\\nShould I delete the extra ones or not?]}" ; then
|
|
||||||
for rm in "${DESKTOP_FILES_ARRAY[@]}" ; do
|
|
||||||
rm -f "$rm"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
try_remove_file "${PORT_WINE_PATH}/${name_desktop}.desktop"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
portwine_delete_shortcut
|
||||||
|
|
||||||
[[ -z $name_desktop ]] && create_name_desktop && export name_desktop="$PW_NAME_DESKTOP_PROXY"
|
[[ -z $name_desktop ]] && create_name_desktop && export name_desktop="$PW_NAME_DESKTOP_PROXY"
|
||||||
|
|
||||||
echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop"
|
echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop"
|
||||||
@ -5690,15 +5682,14 @@ portwine_create_shortcut () {
|
|||||||
unset PW_SKIP_RESTART_STEAM
|
unset PW_SKIP_RESTART_STEAM
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Когда новый .desktop файл
|
export PW_NEW_DESKTOP="1"
|
||||||
echo "#NEW_DESKTOP" >> "$PORT_WINE_PATH/$name_desktop.desktop"
|
|
||||||
|
|
||||||
if [[ "$PW_NO_RESTART_PPDB" != "1" ]] ; then
|
if [[ "$PW_NO_RESTART_PPDB" != "1" ]] ; then
|
||||||
print_info "Restarting PP..."
|
print_info "Restarting PP..."
|
||||||
[[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB
|
[[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB
|
||||||
restart_pp
|
restart_pp
|
||||||
fi
|
fi
|
||||||
elif [[ "$PW_YAD_OUT" == "2" ]] ; then
|
elif [[ "$PW_YAD_OUT" =~ (^1$|^2$|^252$) ]] ; then
|
||||||
print_info "Restarting PP..."
|
print_info "Restarting PP..."
|
||||||
[[ -n $KEY_MENU ]] && unset portwine_exe
|
[[ -n $KEY_MENU ]] && unset portwine_exe
|
||||||
[[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB
|
[[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB
|
||||||
@ -5773,27 +5764,79 @@ pw_auto_create_shortcut () {
|
|||||||
}
|
}
|
||||||
export -f pw_auto_create_shortcut
|
export -f pw_auto_create_shortcut
|
||||||
|
|
||||||
portwine_delete_shortcut () {
|
# GUI CHANGE SHORTCUT
|
||||||
|
portwine_change_shortcut () {
|
||||||
|
export GDK_BACKEND="x11"
|
||||||
|
|
||||||
|
portwine_search_shortcut
|
||||||
|
if [[ -n $PW_DELETE_MENU ]]
|
||||||
|
then PW_SHORTCUT_MENU="TRUE"
|
||||||
|
else PW_SHORTCUT_MENU="FALSE"
|
||||||
|
fi
|
||||||
|
if [[ -n ${PW_DELETE_SHORTCUT_DESKTOP[0]} ]]
|
||||||
|
then PW_SHORTCUT_DESKTOP="TRUE"
|
||||||
|
else PW_SHORTCUT_DESKTOP="FALSE"
|
||||||
|
fi
|
||||||
|
PW_SHORTCUT_STEAM="FALSE"
|
||||||
|
|
||||||
|
unset name_desktop
|
||||||
|
create_name_desktop
|
||||||
|
export name_desktop="$PW_NAME_DESKTOP_PROXY"
|
||||||
|
|
||||||
|
[[ -z "${name_desktop_png}" ]] && name_desktop_png="${PORTPROTON_NAME// /_}"
|
||||||
|
|
||||||
|
OUTPUT=$("${pw_yad}" --title="${translations[Choices]}" --form \
|
||||||
|
--gui-type="settings-shortcut" \
|
||||||
|
--gui-type-box="${NOTEBOOK_GUI_TYPE_BOX}" --gui-type-layout="${NOTEBOOK_GUI_TYPE_LAYOUT}" \
|
||||||
|
--gui-type-text="${NOTEBOOK_GUI_TYPE_TEXT}" --gui-type-images="${NOTEBOOK_GUI_TYPE_IMAGE}" \
|
||||||
|
--window-icon "$PW_GUI_ICON_PATH/portproton.svg" \
|
||||||
|
--image "${PORT_WINE_PATH}/data/img/${name_desktop_png}.png" \
|
||||||
|
--text-align="center" --text "${translations[The shortcut will be changed in the PortProton directory.]}" \
|
||||||
|
--field="${translations[Name]}" "${name_desktop}" \
|
||||||
|
--field=" ${translations[Add shortcut to MENU -> GAMES]}":CHK "$PW_SHORTCUT_MENU" \
|
||||||
|
--field=" ${translations[Add shortcut to Desktop]}":CHK "$PW_SHORTCUT_DESKTOP" \
|
||||||
|
--field=" ${translations[Add shortcut to STEAM library]}":CHK "$PW_SHORTCUT_STEAM" \
|
||||||
|
--button="${translations[REMOVE SHORTCUT]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1 \
|
||||||
|
--button="${translations[CHANGE SHORTCUT]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 2>/dev/null)
|
||||||
|
PW_YAD_OUT=$?
|
||||||
|
PORTWINE_CHANGE_SHORTCUT=1
|
||||||
|
if [[ $PW_YAD_OUT == 1 ]] ; then
|
||||||
|
[[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB
|
||||||
|
portwine_delete_shortcut
|
||||||
|
restart_pp
|
||||||
|
fi
|
||||||
|
portwine_output_yad_shortcut
|
||||||
|
}
|
||||||
|
|
||||||
|
portwine_search_shortcut () {
|
||||||
|
unset PW_DELETE_SHORTCUT_MENU PW_DELETE_SHORTCUT_DESKTOP
|
||||||
PW_DELETE_MENU="$(grep -il "${portwine_exe}" "${HOME}/.local/share/applications"/*.desktop 2>/dev/null)"
|
PW_DELETE_MENU="$(grep -il "${portwine_exe}" "${HOME}/.local/share/applications"/*.desktop 2>/dev/null)"
|
||||||
PW_DELETE_SHORTCUT+=(${PW_DELETE_MENU// /@_@})
|
PW_DELETE_SHORTCUT_MENU+=(${PW_DELETE_MENU// /@_@})
|
||||||
|
|
||||||
PW_DELETE_PP="$(grep -il "${portwine_exe}" "${PORT_WINE_PATH}"/*.desktop 2>/dev/null)"
|
PW_DELETE_PP="$(grep -il "${portwine_exe}" "${PORT_WINE_PATH}"/*.desktop 2>/dev/null)"
|
||||||
PW_DELETE_SHORTCUT+=(${PW_DELETE_PP// /@_@})
|
PW_DELETE_SHORTCUT_MENU+=(${PW_DELETE_PP// /@_@})
|
||||||
|
|
||||||
if [[ -d "${HOME}/Desktop" ]] ; then
|
if [[ -d "${HOME}/Desktop" ]] ; then
|
||||||
PW_DELETE_DESKTOP="$(grep -il "${portwine_exe}" "${HOME}/Desktop"/*.desktop 2>/dev/null)"
|
PW_DELETE_DESKTOP="$(grep -il "${portwine_exe}" "${HOME}/Desktop"/*.desktop 2>/dev/null)"
|
||||||
PW_DELETE_SHORTCUT+=(${PW_DELETE_DESKTOP// /@_@})
|
PW_DELETE_SHORTCUT_DESKTOP+=(${PW_DELETE_DESKTOP// /@_@})
|
||||||
fi
|
fi
|
||||||
if [[ -d "${HOME}/Рабочий стол" ]] ; then
|
if [[ -d "${HOME}/Рабочий стол" ]] ; then
|
||||||
PW_DELETE_DESKTOP="$(grep -il "${portwine_exe}" "${HOME}/Рабочий стол"/*.desktop 2>/dev/null)"
|
PW_DELETE_DESKTOP="$(grep -il "${portwine_exe}" "${HOME}/Рабочий стол"/*.desktop 2>/dev/null)"
|
||||||
PW_DELETE_SHORTCUT+=(${PW_DELETE_DESKTOP// /@_@})
|
PW_DELETE_SHORTCUT_DESKTOP+=(${PW_DELETE_DESKTOP// /@_@})
|
||||||
fi
|
fi
|
||||||
if [[ $(xdg-user-dir DESKTOP) ]] ; then
|
if [[ $(xdg-user-dir DESKTOP) ]] ; then
|
||||||
PW_DELETE_DESKTOP="$(grep -il "${portwine_exe}" "$(xdg-user-dir DESKTOP)"/*.desktop 2>/dev/null)"
|
PW_DELETE_DESKTOP="$(grep -il "${portwine_exe}" "$(xdg-user-dir DESKTOP)"/*.desktop 2>/dev/null)"
|
||||||
PW_DELETE_SHORTCUT+=(${PW_DELETE_DESKTOP// /@_@})
|
PW_DELETE_SHORTCUT_DESKTOP+=(${PW_DELETE_DESKTOP// /@_@})
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
for delete_shortcut in ${PW_DELETE_SHORTCUT[@]} ; do
|
portwine_delete_shortcut () {
|
||||||
|
if [[ $PORTWINE_CHANGE_SHORTCUT != 1 ]] ; then
|
||||||
|
portwine_search_shortcut
|
||||||
|
fi
|
||||||
|
unset PORTWINE_CHANGE_SHORTCUT
|
||||||
|
|
||||||
|
for delete_shortcut in ${PW_DELETE_SHORTCUT_MENU[@]} ${PW_DELETE_SHORTCUT_DESKTOP[@]} ; do
|
||||||
rm -f "${delete_shortcut//@_@/ }"
|
rm -f "${delete_shortcut//@_@/ }"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
@ -6122,7 +6165,7 @@ portwine_start_debug () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pw_create_prefix_backup () {
|
pw_create_prefix_backup () {
|
||||||
cd "$HOME"
|
cd "$HOME" || fatal
|
||||||
PW_PREFIX_TO_BACKUP=$("${pw_yad}" --file --directory --width=800 --height=500 \
|
PW_PREFIX_TO_BACKUP=$("${pw_yad}" --file --directory --width=800 --height=500 \
|
||||||
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" --title "${translations[BACKUP PREFIX TO...]}" \
|
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" --title "${translations[BACKUP PREFIX TO...]}" \
|
||||||
--button="${translations[CANCEL]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1 \
|
--button="${translations[CANCEL]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1 \
|
||||||
|
@ -151,6 +151,7 @@ source "${PORT_SCRIPTS_PATH}/var"
|
|||||||
export STEAM_SCRIPTS="${PORT_WINE_PATH}/steam_scripts"
|
export STEAM_SCRIPTS="${PORT_WINE_PATH}/steam_scripts"
|
||||||
export PW_PLUGINS_PATH="${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}"
|
export PW_PLUGINS_PATH="${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}"
|
||||||
export PW_CACHE_LANG_PATH="${PORT_WINE_TMP_PATH}/cache_lang/"
|
export PW_CACHE_LANG_PATH="${PORT_WINE_TMP_PATH}/cache_lang/"
|
||||||
|
export PW_DATABASE_PATH="${PORT_WINE_TMP_PATH}/pw_database/"
|
||||||
export PW_GUI_ICON_PATH="${PORT_WINE_PATH}/data/img/gui"
|
export PW_GUI_ICON_PATH="${PORT_WINE_PATH}/data/img/gui"
|
||||||
export PW_GUI_THEMES_PATH="${PORT_WINE_PATH}/data/themes"
|
export PW_GUI_THEMES_PATH="${PORT_WINE_PATH}/data/themes"
|
||||||
export pw_yad="${PW_GUI_THEMES_PATH}/gui/yad_gui_pp"
|
export pw_yad="${PW_GUI_THEMES_PATH}/gui/yad_gui_pp"
|
||||||
@ -178,9 +179,11 @@ try_remove_file "${PW_TMPFS_PATH}/update_pfx_log"
|
|||||||
# shellcheck source=/dev/null
|
# shellcheck source=/dev/null
|
||||||
source "${USER_CONF}"
|
source "${USER_CONF}"
|
||||||
|
|
||||||
if [[ ! -f "${PW_CACHE_LANG_PATH}/$LANGUAGE" ]] ; then
|
if [[ ! -f $PW_DATABASE_PATH/database ]] ; then
|
||||||
create_translations
|
create_new_dir "$PW_DATABASE_PATH"
|
||||||
|
touch "$PW_DATABASE_PATH/database"
|
||||||
fi
|
fi
|
||||||
|
[[ ! -f "${PW_CACHE_LANG_PATH}/$LANGUAGE" ]] && create_translations
|
||||||
|
|
||||||
unset translations
|
unset translations
|
||||||
# shellcheck source=/dev/null
|
# shellcheck source=/dev/null
|
||||||
@ -491,10 +494,10 @@ if [[ -f "${portwine_exe}" ]] ; then
|
|||||||
fi
|
fi
|
||||||
if [[ "${PW_GUI_DISABLED_CS}" != 1 ]] ; then
|
if [[ "${PW_GUI_DISABLED_CS}" != 1 ]] ; then
|
||||||
pw_create_gui_png
|
pw_create_gui_png
|
||||||
if ! grep -il "${portwine_exe}" "${HOME}/.local/share/applications"/*.desktop &>/dev/null ; then
|
if ! grep -il "${portwine_exe}" "$PORT_WINE_PATH"/*.desktop &>/dev/null ; then
|
||||||
PW_SHORTCUT="${translations[CREATE SHORTCUT]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Create shortcut for select file...]}:100"
|
PW_SHORTCUT="${translations[CREATE SHORTCUT]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Create shortcut for select file...]}:100"
|
||||||
else
|
else
|
||||||
PW_SHORTCUT="${translations[DELETE SHORTCUT]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Delete shortcut for select file...]}:98"
|
PW_SHORTCUT="${translations[CHANGE SHORTCUT]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Change shortcut for select file...]}:98"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
create_name_desktop
|
create_name_desktop
|
||||||
@ -616,49 +619,43 @@ else
|
|||||||
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
|
||||||
if [[ ! $desktop_file_new =~ (PortProton|readme) ]] ; then
|
if [[ ! $desktop_file_new =~ (PortProton|readme) ]] ; then
|
||||||
while IFS= read -r line ; do
|
while IFS= read -r line1 ; do
|
||||||
if [[ $line =~ ^Exec= ]] ; then
|
if [[ $line1 =~ ^Exec= ]] ; then
|
||||||
if check_flatpak ; then
|
if check_flatpak ; then
|
||||||
PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${line//Exec=flatpak run ru.linux_gaming.PortProton /}
|
PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${line1//Exec=flatpak run ru.linux_gaming.PortProton /}
|
||||||
else
|
else
|
||||||
PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${line//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /}
|
PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${line1//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /}
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
[[ $line =~ ^Icon= ]] && PW_ICON_PATH["$AMOUNT_GENERATE_BUTTONS"]="${line//Icon=/}"
|
[[ $line1 =~ ^Icon= ]] && PW_ICON_PATH["$AMOUNT_GENERATE_BUTTONS"]=${line1//Icon=/}
|
||||||
[[ $line =~ ^#Time= ]] && PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]="${line//#Time=/}"
|
|
||||||
[[ $line =~ ^#NEW_DESKTOP ]] && NEW_DESKTOP=1
|
|
||||||
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 [[ $SORT_WITH_TIME == enabled ]] && [[ $NEW_DESKTOP == 1 ]] ; then
|
# Для конвертации существующих .desktop файлов flatpak в натив и наоборот
|
||||||
unset NEW_DESKTOP
|
if [[ ${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]} =~ ^"Exec=flatpak run ru.linux_gaming.PortProton " ]] ; then
|
||||||
sed -i '/^#NEW_DESKTOP/d' "$desktop_file"
|
PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]//Exec=flatpak run ru.linux_gaming.PortProton /}
|
||||||
|
sed -i "s|Exec=flatpak run ru.linux_gaming.PortProton|Exec=env \"$PORT_SCRIPTS_PATH/start.sh\"|" "$desktop_file"
|
||||||
|
elif [[ ${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]} =~ ^"Exec=env \"$PORT_SCRIPTS_PATH/start.sh\" " ]] ; then
|
||||||
|
PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /}
|
||||||
|
sed -i "s|Exec=env \"$PORT_SCRIPTS_PATH/start.sh\"|Exec=flatpak run ru.linux_gaming.PortProton|" "$desktop_file"
|
||||||
|
fi
|
||||||
|
while IFS=" " read -r -a line2 ; do
|
||||||
|
if [[ \"${line2[0]//#@_@#/ }\" == "${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]}" ]] ; then
|
||||||
|
PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]=${line2[2]}
|
||||||
|
break
|
||||||
|
else
|
||||||
|
PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]=0
|
||||||
|
fi
|
||||||
|
done < "$PW_DATABASE_PATH/database"
|
||||||
|
if [[ $SORT_WITH_TIME == enabled ]] && [[ ${line2[3]} == NEW_DESKTOP ]] ; then
|
||||||
|
sed -i "s/${line2[1]} ${line2[2]} NEW_DESKTOP/${line2[1]} ${line2[2]} OLD_DESKTOP/" "$PW_DATABASE_PATH/database"
|
||||||
PW_AMOUNT_NEW_DESKTOP+=($AMOUNT_GENERATE_BUTTONS)
|
PW_AMOUNT_NEW_DESKTOP+=($AMOUNT_GENERATE_BUTTONS)
|
||||||
else
|
else
|
||||||
PW_AMOUNT_OLD_DESKTOP+=($AMOUNT_GENERATE_BUTTONS)
|
PW_AMOUNT_OLD_DESKTOP+=($AMOUNT_GENERATE_BUTTONS)
|
||||||
fi
|
fi
|
||||||
# Для конвертация .desktop файлов flatpak в натив и наоборот
|
|
||||||
if [[ ${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]} =~ ^"Exec=flatpak run ru.linux_gaming.PortProton " ]] ; then
|
|
||||||
PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]//Exec=flatpak run ru.linux_gaming.PortProton /}
|
|
||||||
NEED_FIXES_DESKTOP=1
|
|
||||||
elif [[ ${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]} =~ ^"Exec=env \"$PORT_SCRIPTS_PATH/start.sh\" " ]] ; then
|
|
||||||
PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /}
|
|
||||||
NEED_FIXES_DESKTOP=1
|
|
||||||
fi
|
|
||||||
# Для фикса битых #Time=
|
|
||||||
if [[ ! ${PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]} =~ [0-9]+ ]] \
|
|
||||||
|| (( ${PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]} >= 999999999 )) \
|
|
||||||
|| [[ $NEED_FIXES_DESKTOP == 1 ]]
|
|
||||||
then
|
|
||||||
portwine_exe=${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]//\"/}
|
|
||||||
search_desktop_file
|
|
||||||
unset portwine_exe NEED_FIXES_DESKTOP
|
|
||||||
PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]=$TIME_CURRENT
|
|
||||||
fi
|
|
||||||
(( AMOUNT_GENERATE_BUTTONS++ ))
|
(( AMOUNT_GENERATE_BUTTONS++ ))
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# Переопределение элементов в массивах в зависимости от PW_GAME_TIME, от большего значения к меньшему.
|
# Переопределение элементов в массивах в зависимости от PW_GAME_TIME, от большего значения к меньшему.
|
||||||
# 10 миллисекунд на 40 .desktop файлов, работает быстро
|
# 10 миллисекунд на 40 .desktop файлов, работает быстро
|
||||||
if [[ $SORT_WITH_TIME == enabled ]] && [[ -n ${PW_GAME_TIME[1]} ]] ; then
|
if [[ $SORT_WITH_TIME == enabled ]] && [[ -n ${PW_GAME_TIME[1]} ]] ; then
|
||||||
@ -683,7 +680,6 @@ else
|
|||||||
done
|
done
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Генерация .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\"%"
|
||||||
@ -903,7 +899,7 @@ case "$PW_YAD_SET" in
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
case "$PW_YAD_SET" in
|
case "$PW_YAD_SET" in
|
||||||
98) portwine_delete_shortcut ;;
|
98) portwine_change_shortcut ;;
|
||||||
100) portwine_create_shortcut ;;
|
100) portwine_create_shortcut ;;
|
||||||
DEBUG|102) portwine_start_debug ;;
|
DEBUG|102) portwine_start_debug ;;
|
||||||
106) portwine_launch ;;
|
106) portwine_launch ;;
|
||||||
|
Loading…
Reference in New Issue
Block a user