Compare commits
36 Commits
0483902b17
...
ef83c60711
Author | SHA1 | Date | |
---|---|---|---|
|
ef83c60711 | ||
|
6fa65cb925 | ||
|
e7745dc524 | ||
|
6df237dbf4 | ||
|
e23dd5485b | ||
|
3364792668 | ||
|
2d40a16d13 | ||
|
1fdb35e231 | ||
|
52a8f1ea01 | ||
|
8d9ae5a79f | ||
|
e9cdc85a41 | ||
|
d08147c52a | ||
|
205424f938 | ||
|
80c3f97482 | ||
|
5e06bf6761 | ||
|
db696351ff | ||
|
07175825f4 | ||
|
64b70f0137 | ||
|
383807a6b7 | ||
|
7fc4ea3a91 | ||
|
aa66606a59 | ||
f29808f4ce | |||
|
37bd14d8eb | ||
|
0f58886d72 | ||
1cb7fb5009 | |||
87e5d712f7 | |||
42eb2a99d5 | |||
625bc35ca4 | |||
7cb3be3d08 | |||
|
358cdea9d5 | ||
33061138f4
|
|||
259b6907d7 | |||
87bf672ea0 | |||
b78d173631 | |||
1b7dcf3c1a | |||
90f0515c70
|
@@ -2,6 +2,17 @@ You can help us in the development of the project on the website: https://linux-
|
|||||||
----------------------------------------
|
----------------------------------------
|
||||||
Changelog:
|
Changelog:
|
||||||
|
|
||||||
|
###Scripts version 2368### / Date: 27.10.2024 / Download update size: 4 megabytes
|
||||||
|
* added automatic installation of games (thanks to Chal55rus):
|
||||||
|
* Goose Goose Duck
|
||||||
|
* Miniworld
|
||||||
|
* Toontown Rewritten
|
||||||
|
* added disabling sleep mode during the game if gamemode is not used (thanks to Boria138)
|
||||||
|
* fixes and optimization of the interface in the Prefix Manager (thanks to Htylol)
|
||||||
|
* added the ability to change all shortcuts from the PortProton interface (thanks to Htylol)
|
||||||
|
* fixed reset of the time spent in the game counter when moving the game to another directory, or deleting the shortcut (thanks to Htylol)
|
||||||
|
* improved function for downloading covers when adding a game to the STEAM library (thanks to Boria138)
|
||||||
|
|
||||||
###Scripts version 2367### / Date: 25.10.2024 / Download update size: 4 megabytes
|
###Scripts version 2367### / Date: 25.10.2024 / Download update size: 4 megabytes
|
||||||
* fixed the use of gamemode in the native version of PortProton
|
* fixed the use of gamemode in the native version of PortProton
|
||||||
* continued improvement of the functionality for creating labels and comments (thanks to Htylol)
|
* continued improvement of the functionality for creating labels and comments (thanks to Htylol)
|
||||||
|
@@ -2,6 +2,17 @@
|
|||||||
-----------------------------------------
|
-----------------------------------------
|
||||||
История изменений:
|
История изменений:
|
||||||
|
|
||||||
|
###Scripts version 2368### / Дата: 27.10.2024 / Размер скачиваемого обновления: 4 мегабайта
|
||||||
|
* добавлены автоустановки игр (спасибо Chal55rus):
|
||||||
|
* Goose Goose Duck
|
||||||
|
* Miniworld
|
||||||
|
* Toontown Rewritten
|
||||||
|
* добавлено отключение спящего режима в процессе игры, если не используется gamemode (спасибо Boria138)
|
||||||
|
* исправления и оптимизации работы интерфейса в Менеджере префиксов (спасибо Htylol)
|
||||||
|
* добавлена возможность изменения всех ярлыков из интерфейса PortProton (спасибо Htylol)
|
||||||
|
* исправлен сброс счетчика времени проведенного в игре при перемещении игры в другой каталог, или удалёния ярлыка (спасибо Htylol)
|
||||||
|
* улучшена функция скачивания обложек при добавлении игры в библиотеку STEAM (спасибо Boria138)
|
||||||
|
|
||||||
###Scripts version 2367### / Дата: 25.10.2024 / Размер скачиваемого обновления: 4 мегабайта
|
###Scripts version 2367### / Дата: 25.10.2024 / Размер скачиваемого обновления: 4 мегабайта
|
||||||
* исправлено использование gamemode в нативной версии PortProton
|
* исправлено использование gamemode в нативной версии PortProton
|
||||||
* продолжено улучшение функционала создания ярлыков и комментариев (спасибо Htylol)
|
* продолжено улучшение функционала создания ярлыков и комментариев (спасибо Htylol)
|
||||||
|
BIN
data_from_portwine/img/GGDLauncher.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
data_from_portwine/img/Goose_Goose_Duck.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
data_from_portwine/img/Goose_Goose_Duck_48.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 38 KiB |
BIN
data_from_portwine/img/gui/doomsday.png
Normal file
After Width: | Height: | Size: 6.0 KiB |
BIN
data_from_portwine/img/gui/goosegooseduck.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
data_from_portwine/img/gui/miniworld.png
Normal file
After Width: | Height: | Size: 6.0 KiB |
BIN
data_from_portwine/img/gui/toontownrewritten.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
@@ -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 "Принудительное включение вертикальной синхронизации"
|
||||||
|
|
||||||
|
@@ -150,7 +150,7 @@ function downloadArtFromSteamGridDB {
|
|||||||
[[ -n "$SEARCHHUMOR" ]] && SGDB_ENDPOINT_STR+="&humor=${SEARCHHUMOR}"
|
[[ -n "$SEARCHHUMOR" ]] && SGDB_ENDPOINT_STR+="&humor=${SEARCHHUMOR}"
|
||||||
[[ -n "$SEARCHEPILEPSY" ]] && SGDB_ENDPOINT_STR+="&epilepsy=${SEARCHEPILEPSY}"
|
[[ -n "$SEARCHEPILEPSY" ]] && SGDB_ENDPOINT_STR+="&epilepsy=${SEARCHEPILEPSY}"
|
||||||
|
|
||||||
|
RESPONSE=$(curl -H "Authorization: Bearer $SGDBAPIKEY" -s "$SGDB_ENDPOINT_STR" 2> >(grep -v "SSL_INIT"))
|
||||||
if ! jq -e '.success' <<< "$RESPONSE" > /dev/null; then
|
if ! jq -e '.success' <<< "$RESPONSE" > /dev/null; then
|
||||||
echo "The server response wasn't 'success' for this batch of requested games."
|
echo "The server response wasn't 'success' for this batch of requested games."
|
||||||
return
|
return
|
||||||
@@ -194,7 +194,7 @@ function downloadArtFromSteamGridDB {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$STARTDL" -eq 1 ]] ; then
|
if [[ "$STARTDL" -eq 1 ]] ; then
|
||||||
curl -f -# -A 'Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)' -H 'Cache-Control: no-cache, no-store' -H 'Pragma: no-cache' -L "$DLSRC" -o "$DLDST"
|
curl -f -# -A 'Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)' -H 'Cache-Control: no-cache, no-store' -H 'Pragma: no-cache' -L "$DLSRC" -o "$DLDST" 2>&1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "No grid found to download for '$SEARCHID' - maybe loosen filters?"
|
echo "No grid found to download for '$SEARCHID' - maybe loosen filters?"
|
||||||
@@ -280,10 +280,11 @@ function commandlineGetSteamGridDBArtwork {
|
|||||||
SGDBSEARCHENDPOINT_HERO="${BASESTEAMGRIDDBAPI}/heroes/${SGDBENDPOINTTYPE}"
|
SGDBSEARCHENDPOINT_HERO="${BASESTEAMGRIDDBAPI}/heroes/${SGDBENDPOINTTYPE}"
|
||||||
SGDBSEARCHENDPOINT_LOGO="${BASESTEAMGRIDDBAPI}/logos/${SGDBENDPOINTTYPE}"
|
SGDBSEARCHENDPOINT_LOGO="${BASESTEAMGRIDDBAPI}/logos/${SGDBENDPOINTTYPE}"
|
||||||
SGDBSEARCHENDPOINT_BOXART="${BASESTEAMGRIDDBAPI}/grids/${SGDBENDPOINTTYPE}" # Grid endpoint is used for Boxart and Tenfoot, which SteamGridDB counts as vertical/horizontal grids respectively
|
SGDBSEARCHENDPOINT_BOXART="${BASESTEAMGRIDDBAPI}/grids/${SGDBENDPOINTTYPE}" # Grid endpoint is used for Boxart and Tenfoot, which SteamGridDB counts as vertical/horizontal grids respectively
|
||||||
SGDB_ENDPOINT_STR="${SGDBSEARCHENDPOINT_HERO}/$(echo "$GSGDBA_APPID" | awk '{print $1}' | paste -s -d, -)?"
|
SGDB_ENDPOINT_STR_TEST="${SGDBSEARCHENDPOINT_HERO}/$(echo "$GSGDBA_APPID" | awk '{print $1}' | paste -s -d, -)?"
|
||||||
|
|
||||||
|
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
RESPONSE=$(curl -H "Authorization: Bearer $SGDBAPIKEY" -s "$SGDB_ENDPOINT_STR" 2> >(grep -v "SSL_INIT"))
|
TEST_RESPONSE=$(curl -H "Authorization: Bearer $SGDBAPIKEY" -s "$SGDB_ENDPOINT_STR_TEST" 2> >(grep -v "SSL_INIT"))
|
||||||
if [[ "${PIPESTATUS[0]}" != 0 ]] && [[ "$DOWNLOAD_STEAM_GRID" != 0 ]]; then
|
if [[ "${PIPESTATUS[0]}" != 0 ]] && [[ "$DOWNLOAD_STEAM_GRID" != 0 ]]; then
|
||||||
pw_notify_send -i info \
|
pw_notify_send -i info \
|
||||||
"${translations[SteamGridDB is not responding, forcing cover download to be disabled]}"
|
"${translations[SteamGridDB is not responding, forcing cover download to be disabled]}"
|
||||||
@@ -291,16 +292,18 @@ function commandlineGetSteamGridDBArtwork {
|
|||||||
export DOWNLOAD_STEAM_GRID="0"
|
export DOWNLOAD_STEAM_GRID="0"
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
if [[ ! -z "$GSGDBA_FOUNDGAMEID" ]] ; then
|
|
||||||
pw_start_progress_bar_block "${translations[Please wait. downloading covers for]} $NOSTAPPNAME"
|
|
||||||
# Download Hero, Logo, Boxart, Tenfoot from SteamGridDB from given endpoint using given AppID
|
# Download Hero, Logo, Boxart, Tenfoot from SteamGridDB from given endpoint using given AppID
|
||||||
# On SteamGridDB tenfoot called horizontal Steam grid, so fetch it by passing specific dimensions matching this -- Users can override this, but default is what SteamGridDB expects for the tenfoot sizes
|
# On SteamGridDB tenfoot called horizontal Steam grid, so fetch it by passing specific dimensions matching this -- Users can override this, but default is what SteamGridDB expects for the tenfoot sizes
|
||||||
|
if [[ ! -z "$GSGDBA_FOUNDGAMEID" ]] ; then
|
||||||
|
pw_start_progress_bar_block "${translations[Please wait. downloading covers for]} $NOSTAPPNAME"
|
||||||
|
|
||||||
downloadArtFromSteamGridDB "$GSGDBA_APPID" "$SGDBSEARCHENDPOINT_HERO" "${GSGDBA_FILENAME}_hero" "$SGDBHEROSTYLES" "$SGDBHERODIMS" "$SGDBHEROTYPES" "$SGDBHERONSFW" "$SGDBHEROHUMOR" "$SGDBHEROEPILEPSY" "$GSGDBA_HASFILE" "$GSGDBA_APPLYARTWORK"
|
downloadArtFromSteamGridDB "$GSGDBA_APPID" "$SGDBSEARCHENDPOINT_HERO" "${GSGDBA_FILENAME}_hero" "$SGDBHEROSTYLES" "$SGDBHERODIMS" "$SGDBHEROTYPES" "$SGDBHERONSFW" "$SGDBHEROHUMOR" "$SGDBHEROEPILEPSY" "$GSGDBA_HASFILE" "$GSGDBA_APPLYARTWORK"
|
||||||
# Logo doesn't have dimensions, so it's left intentionally blank
|
# Logo doesn't have dimensions, so it's left intentionally blank
|
||||||
downloadArtFromSteamGridDB "$GSGDBA_APPID" "$SGDBSEARCHENDPOINT_LOGO" "${GSGDBA_FILENAME}_logo" "$SGDBLOGOSTYLES" "" "$SGDBLOGOTYPES" "$SGDBLOGONSFW" "$SGDBLOGOHUMOR" "$SGDBLOGOEPILEPSY" "$GSGDBA_HASFILE" "$GSGDBA_APPLYARTWORK"
|
downloadArtFromSteamGridDB "$GSGDBA_APPID" "$SGDBSEARCHENDPOINT_LOGO" "${GSGDBA_FILENAME}_logo" "$SGDBLOGOSTYLES" "" "$SGDBLOGOTYPES" "$SGDBLOGONSFW" "$SGDBLOGOHUMOR" "$SGDBLOGOEPILEPSY" "$GSGDBA_HASFILE" "$GSGDBA_APPLYARTWORK"
|
||||||
downloadArtFromSteamGridDB "$GSGDBA_APPID" "$SGDBSEARCHENDPOINT_BOXART" "${GSGDBA_FILENAME}p" "$SGDBBOXARTSTYLES" "$SGDBBOXARTDIMS" "$SGDBBOXARTTYPES" "$SGDBBOXARTNSFW" "$SGDBBOXARTHUMOR" "$SGDBBOXARTEPILEPSY" "$GSGDBA_HASFILE" "$GSGDBA_APPLYARTWORK"
|
downloadArtFromSteamGridDB "$GSGDBA_APPID" "$SGDBSEARCHENDPOINT_BOXART" "${GSGDBA_FILENAME}p" "$SGDBBOXARTSTYLES" "$SGDBBOXARTDIMS" "$SGDBBOXARTTYPES" "$SGDBBOXARTNSFW" "$SGDBBOXARTHUMOR" "$SGDBBOXARTEPILEPSY" "$GSGDBA_HASFILE" "$GSGDBA_APPLYARTWORK"
|
||||||
downloadArtFromSteamGridDB "$GSGDBA_APPID" "$SGDBSEARCHENDPOINT_BOXART" "${GSGDBA_FILENAME}" "$SGDBTENFOOTSTYLES" "$SGDBTENFOOTDIMS" "$SGDBTENFOOTTYPES" "$SGDBTENFOOTNSFW" "$SGDBTENFOOTHUMOR" "$SGDBTENFOOTEPILEPSY" "$GSGDBA_HASFILE" "$GSGDBA_APPLYARTWORK"
|
downloadArtFromSteamGridDB "$GSGDBA_APPID" "$SGDBSEARCHENDPOINT_BOXART" "${GSGDBA_FILENAME}" "$SGDBTENFOOTSTYLES" "$SGDBTENFOOTDIMS" "$SGDBTENFOOTTYPES" "$SGDBTENFOOTNSFW" "$SGDBTENFOOTHUMOR" "$SGDBTENFOOTEPILEPSY" "$GSGDBA_HASFILE" "$GSGDBA_APPLYARTWORK"
|
||||||
|
|
||||||
pw_stop_progress_bar
|
pw_stop_progress_bar
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
@@ -792,7 +790,6 @@ unpack () {
|
|||||||
silent) local silent=true ;;
|
silent) local silent=true ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|
||||||
# If gamescope session is active, use PW_TERM for unpack
|
# If gamescope session is active, use PW_TERM for unpack
|
||||||
if check_gamescope_session ; then
|
if check_gamescope_session ; then
|
||||||
$PW_TERM "echo ; echo ; echo \"Unpacking file: $1. Please wait...\" ; $command \"$1\" -C \"$2\""
|
$PW_TERM "echo ; echo ; echo \"Unpacking file: $1. Please wait...\" ; $command \"$1\" -C \"$2\""
|
||||||
@@ -849,80 +846,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
|
fi
|
||||||
EXEC_DESKTOP_NEW=${EXEC_DESKTOP//\"/}
|
done < "$PORT_WINE_TMP_PATH/statistics"
|
||||||
if [[ $portwine_exe == "$EXEC_DESKTOP_NEW" ]] ; then
|
if [[ $portwine_exe == "${EXEC_DESKTOP//\"/}" ]] ; then
|
||||||
if [[ -n $TIME_CURRENT_PROXY ]] ; then
|
DESKTOP_CORRECT_FILE="$desktop_file"
|
||||||
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
|
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
|
|
||||||
DESKTOP_FILES_ARRAY["$count"]="$desktop_file"
|
|
||||||
(( count++ ))
|
|
||||||
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|" "$PORT_WINE_TMP_PATH/statistics"
|
||||||
|
else
|
||||||
|
echo "${portwine_exe// /#@_@#} $ENTRY_POINT $TIME_CURRENT NEW_DESKTOP" >> "$PORT_WINE_TMP_PATH/statistics"
|
||||||
|
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|" "$PORT_WINE_TMP_PATH/statistics"
|
||||||
done
|
|
||||||
else
|
else
|
||||||
for df in "${DESKTOP_FILES_ARRAY[@]}" ; do
|
# Когда только запустили приложение первый раз
|
||||||
sed -i '/^#Time=/d' "$df"
|
echo "${portwine_exe// /#@_@#} $ENTRY_POINT $TIME_TOTAL OLD_DESKTOP" >> "$PORT_WINE_TMP_PATH/statistics"
|
||||||
echo "#Time=$TIME_CURRENT" >> "$df"
|
fi
|
||||||
done
|
# Здесь добавляются новые линии для статистики по аналогии, к примеру ${line2[4]}
|
||||||
|
# L4 важен, чтобы не было путаницы из-за sed, то что используется \(.*\), для ${line2[5]} это будет L5 и т.д.
|
||||||
|
if [[ -z ${line2[4]} ]] ; then
|
||||||
|
line2[4]=1
|
||||||
|
sed -i "s|$ENTRY_POINT \(.*\)|$ENTRY_POINT \1 L4-${line2[4]}|" "$PORT_WINE_TMP_PATH/statistics"
|
||||||
|
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|" "$PORT_WINE_TMP_PATH/statistics"
|
||||||
|
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|" "$PORT_WINE_TMP_PATH/statistics"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -938,9 +929,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 +2474,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 +2484,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 +2493,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) ]]
|
||||||
@@ -2508,7 +2502,7 @@ pw_create_gui_png () {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -n "$PW_PRODUCTNAME" ]] \
|
if [[ -n "$PW_PRODUCTNAME" ]] \
|
||||||
&& [[ "$PW_PRODUCTNAME" != Bootstrap* ]]
|
&& [[ ! "$PW_PRODUCTNAME" =~ Bootstrap ]]
|
||||||
then
|
then
|
||||||
PORTPROTON_NAME="$PW_PRODUCTNAME"
|
PORTPROTON_NAME="$PW_PRODUCTNAME"
|
||||||
else
|
else
|
||||||
@@ -2518,7 +2512,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"
|
||||||
@@ -2925,7 +2919,7 @@ start_portwine () {
|
|||||||
elif [[ "$PW_USE_GAMEMODE" = "1" ]] \
|
elif [[ "$PW_USE_GAMEMODE" = "1" ]] \
|
||||||
&& [[ -n "$DBUS_SESSION_BUS_ADDRESS" ]]
|
&& [[ -n "$DBUS_SESSION_BUS_ADDRESS" ]]
|
||||||
then
|
then
|
||||||
if command -v systemctl \
|
if command -v systemctl &>/dev/null \
|
||||||
&& (systemctl is-active --quiet ananicy.service \
|
&& (systemctl is-active --quiet ananicy.service \
|
||||||
|| systemctl is-active --quiet ananicy-cpp.service)
|
|| systemctl is-active --quiet ananicy-cpp.service)
|
||||||
then
|
then
|
||||||
@@ -2973,6 +2967,13 @@ start_portwine () {
|
|||||||
export GAMEMODERUN=0
|
export GAMEMODERUN=0
|
||||||
export PW_GAMEMODERUN_SLR=""
|
export PW_GAMEMODERUN_SLR=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if command -v systemd-inhibit &>/dev/null \
|
||||||
|
&& [[ "$GAMEMODERUN" != "1" ]]
|
||||||
|
then
|
||||||
|
PW_INHIBIT_SLR="systemd-inhibit --mode=block --who=ru.linux_gaming.PortProton --why=${PW_NAME_DESKTOP_PROXY// /_}"
|
||||||
|
print_info "Screensaver will be inhibit"
|
||||||
|
fi
|
||||||
pw_other_fixes
|
pw_other_fixes
|
||||||
|
|
||||||
# enabled BattleEye_Runtime and EasyAntiCheat_Runtime
|
# enabled BattleEye_Runtime and EasyAntiCheat_Runtime
|
||||||
@@ -3766,13 +3767,13 @@ pw_run () {
|
|||||||
if [[ -n "${PATH_TO_GAME}" ]] \
|
if [[ -n "${PATH_TO_GAME}" ]] \
|
||||||
&& [[ -d "${PATH_TO_GAME}" ]]
|
&& [[ -d "${PATH_TO_GAME}" ]]
|
||||||
then
|
then
|
||||||
cd "${PATH_TO_GAME}" || fatal
|
cd "${PATH_TO_GAME}" || :
|
||||||
elif [[ -f "$portwine_exe" ]]
|
elif [[ -f "$portwine_exe" ]]
|
||||||
then
|
then
|
||||||
PATH_TO_GAME="$( cd "$( dirname "${portwine_exe}" )" >/dev/null 2>&1 && pwd )"
|
PATH_TO_GAME="$( cd "$( dirname "${portwine_exe}" )" >/dev/null 2>&1 && pwd )"
|
||||||
cd "${PATH_TO_GAME}" || fatal
|
cd "${PATH_TO_GAME}" || :
|
||||||
else
|
else
|
||||||
cd "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c" || fatal
|
cd "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c" || :
|
||||||
fi
|
fi
|
||||||
PW_LOG_TO_FILE="${PORT_WINE_PATH}/PortProton.log"
|
PW_LOG_TO_FILE="${PORT_WINE_PATH}/PortProton.log"
|
||||||
PW_LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}"
|
PW_LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}"
|
||||||
@@ -3793,6 +3794,7 @@ pw_run () {
|
|||||||
print_info "Log from RUNTIME and WINE:"
|
print_info "Log from RUNTIME and WINE:"
|
||||||
${PW_RUN_GAMESCOPE} \
|
${PW_RUN_GAMESCOPE} \
|
||||||
${PW_POWERPROFILECTL_SLR} \
|
${PW_POWERPROFILECTL_SLR} \
|
||||||
|
${PW_INHIBIT_SLR}\
|
||||||
${pw_runtime} \
|
${pw_runtime} \
|
||||||
LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
|
LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
|
||||||
LD_PRELOAD="${PW_LD_PRELOAD}" \
|
LD_PRELOAD="${PW_LD_PRELOAD}" \
|
||||||
@@ -3811,6 +3813,7 @@ pw_run () {
|
|||||||
echo "Log WINE:" > "${PW_LOG_TO_FILE}"
|
echo "Log WINE:" > "${PW_LOG_TO_FILE}"
|
||||||
${PW_RUN_GAMESCOPE} \
|
${PW_RUN_GAMESCOPE} \
|
||||||
${PW_POWERPROFILECTL_SLR} \
|
${PW_POWERPROFILECTL_SLR} \
|
||||||
|
${PW_INHIBIT_SLR}\
|
||||||
${pw_runtime} \
|
${pw_runtime} \
|
||||||
LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
|
LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
|
||||||
LD_PRELOAD="${PW_LD_PRELOAD}" \
|
LD_PRELOAD="${PW_LD_PRELOAD}" \
|
||||||
@@ -3846,6 +3849,7 @@ pw_run () {
|
|||||||
${PW_POWERPROFILECTL_SLR} \
|
${PW_POWERPROFILECTL_SLR} \
|
||||||
${PW_MANGOHUD_SLR} \
|
${PW_MANGOHUD_SLR} \
|
||||||
${PW_DISPLAY} \
|
${PW_DISPLAY} \
|
||||||
|
${PW_INHIBIT_SLR}\
|
||||||
"${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}"
|
"${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}"
|
||||||
wait_wineserver
|
wait_wineserver
|
||||||
else
|
else
|
||||||
@@ -3864,6 +3868,7 @@ pw_run () {
|
|||||||
${PW_POWERPROFILECTL_SLR} \
|
${PW_POWERPROFILECTL_SLR} \
|
||||||
${PW_MANGOHUD_SLR} \
|
${PW_MANGOHUD_SLR} \
|
||||||
${PW_DISPLAY} \
|
${PW_DISPLAY} \
|
||||||
|
${PW_INHIBIT_SLR}\
|
||||||
"${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]}
|
"${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]}
|
||||||
wait_wineserver
|
wait_wineserver
|
||||||
fi
|
fi
|
||||||
@@ -3964,7 +3969,7 @@ pw_winereg () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pw_start_cont_xterm () {
|
pw_start_cont_xterm () {
|
||||||
cd "$HOME" || fatal
|
cd "$HOME" || :
|
||||||
unset PW_SANDBOX_HOME_PATH
|
unset PW_SANDBOX_HOME_PATH
|
||||||
pw_init_runtime
|
pw_init_runtime
|
||||||
${pw_runtime} \
|
${pw_runtime} \
|
||||||
@@ -4153,27 +4158,17 @@ pw_start_progress_bar_install_game () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pw_stop_progress_bar () {
|
pw_stop_progress_bar () {
|
||||||
sleep 0.1
|
[[ -n $PW_YAD_PID_PROGRESS_BAR_BLOCK ]] && kill -s SIGUSR1 "$PW_YAD_PID_PROGRESS_BAR_BLOCK" &>/dev/null
|
||||||
for PW_KILL_YAD_PID in "$PW_YAD_PID_PROGRESS_BAR_BLOCK" "$PW_YAD_PID_PROGRESS_BAR_CS" \
|
[[ -n $PW_YAD_PID_PROGRESS_BAR_CS ]] && kill -s SIGUSR1 "$PW_YAD_PID_PROGRESS_BAR_CS" &>/dev/null
|
||||||
"$PW_YAD_PID_PFX_COVER_UI" "$PW_YAD_PID_PROGRESS_BAR_COVER"
|
[[ -n $PW_YAD_PID_PFX_COVER_UI ]] && kill -s SIGUSR1 "$PW_YAD_PID_PFX_COVER_UI" &>/dev/null
|
||||||
do
|
[[ -n $PW_YAD_PID_PROGRESS_BAR_COVER ]] && kill -s SIGUSR1 "$PW_YAD_PID_PROGRESS_BAR_COVER" &>/dev/null
|
||||||
kill -s SIGUSR1 "$PW_KILL_YAD_PID" &>/dev/null
|
unset PW_YAD_PID_PROGRESS_BAR_BLOCK PW_YAD_PID_PROGRESS_BAR_CS
|
||||||
done
|
unset PW_YAD_PID_PFX_COVER_UI PW_YAD_PID_PROGRESS_BAR_COVER
|
||||||
unset PW_YAD_PID_PROGRESS_BAR_BLOCK PW_YAD_PID_PROGRESS_BAR_CS \
|
|
||||||
PW_YAD_PID_PFX_COVER_UI PW_YAD_PID_PROGRESS_BAR_COVER
|
|
||||||
return 0
|
|
||||||
}
|
}
|
||||||
export -f pw_stop_progress_bar
|
export -f pw_stop_progress_bar
|
||||||
|
|
||||||
pw_stop_progress_bar_cover () {
|
|
||||||
kill -s KILL "$PW_YAD_PID_PROGRESS_BAR_COVER" &>/dev/null
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
export -f pw_stop_progress_bar_cover
|
|
||||||
|
|
||||||
pw_stop_progress_bar_cover_block () {
|
pw_stop_progress_bar_cover_block () {
|
||||||
kill -s KILL "$PW_YAD_PID_PROGRESS_BAR_COVER_BLOCK" &>/dev/null
|
kill -s KILL "$PW_YAD_PID_PROGRESS_BAR_COVER_BLOCK" &>/dev/null
|
||||||
return 0
|
|
||||||
}
|
}
|
||||||
export -f pw_stop_progress_bar_cover_block
|
export -f pw_stop_progress_bar_cover_block
|
||||||
|
|
||||||
@@ -5600,24 +5595,21 @@ 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}')
|
||||||
|
|
||||||
|
if [[ $PORTWINE_CHANGE_SHORTCUT != 1 ]] ; then
|
||||||
edit_user_conf_from_gui PW_SHORTCUT_MENU PW_SHORTCUT_DESKTOP PW_SHORTCUT_STEAM
|
edit_user_conf_from_gui PW_SHORTCUT_MENU PW_SHORTCUT_DESKTOP PW_SHORTCUT_STEAM
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ -n ${DESKTOP_FILES_ARRAY[0]} && $name_desktop != "$DESKTOP_NAME_FILE" ]] || [[ -n ${DESKTOP_FILES_ARRAY[1]} ]] ; then
|
portwine_delete_shortcut
|
||||||
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
|
|
||||||
|
|
||||||
[[ -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"
|
||||||
|
|
||||||
@@ -5663,14 +5655,17 @@ portwine_create_shortcut () {
|
|||||||
fi
|
fi
|
||||||
chmod u+x "${STEAM_SCRIPTS}/${name_desktop}.sh"
|
chmod u+x "${STEAM_SCRIPTS}/${name_desktop}.sh"
|
||||||
export SCVDF="shortcuts.vdf"
|
export SCVDF="shortcuts.vdf"
|
||||||
for STUIDPATH in "${HOME}"/.local/share/Steam/userdata/*/ ; do
|
for STUIDPATH in "${HOME}"/.local/share/Steam/userdata/*/; do
|
||||||
create_new_dir "${STUIDPATH}/config/"
|
if [[ -d "$STUIDPATH" ]]; then
|
||||||
create_new_dir "${STUIDPATH}/config/grid"
|
create_new_dir "${STUIDPATH}config/"
|
||||||
export SCPATH="${STUIDPATH}/config/$SCVDF"
|
create_new_dir "${STUIDPATH}config/grid"
|
||||||
export SGGRIDDIR="${STUIDPATH}/config/grid"
|
export SCPATH="${STUIDPATH}config/$SCVDF"
|
||||||
|
export SGGRIDDIR="${STUIDPATH}config/grid"
|
||||||
# shellcheck source=/dev/null
|
# shellcheck source=/dev/null
|
||||||
source "${PORT_SCRIPTS_PATH}/add_in_steam.sh"
|
source "${PORT_SCRIPTS_PATH}/add_in_steam.sh"
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
if [[ "${PW_SKIP_RESTART_STEAM}" != 1 ]] && pgrep -i steam &>/dev/null ; then
|
if [[ "${PW_SKIP_RESTART_STEAM}" != 1 ]] && pgrep -i steam &>/dev/null ; then
|
||||||
if yad_question "${translations[For adding shortcut to STEAM, needed restart.\\n\\nRestart STEAM now?]}" ; then
|
if yad_question "${translations[For adding shortcut to STEAM, needed restart.\\n\\nRestart STEAM now?]}" ; then
|
||||||
pw_start_progress_bar_block "${translations[Restarting STEAM... Please wait.]}"
|
pw_start_progress_bar_block "${translations[Restarting STEAM... Please wait.]}"
|
||||||
@@ -5687,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
|
||||||
@@ -5770,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
|
||||||
}
|
}
|
||||||
@@ -5896,10 +5942,6 @@ pw_prefix_manager () {
|
|||||||
try_remove_file "${PW_TMPFS_PATH}/settings_list_tmp"
|
try_remove_file "${PW_TMPFS_PATH}/settings_list_tmp"
|
||||||
|
|
||||||
case "$YAD_STATUS" in
|
case "$YAD_STATUS" in
|
||||||
1|252)
|
|
||||||
print_info "Nothing to do. Restarting PortProton..."
|
|
||||||
stop_portwine --restart
|
|
||||||
;;
|
|
||||||
0)
|
0)
|
||||||
WT_FORCE=""
|
WT_FORCE=""
|
||||||
;;
|
;;
|
||||||
@@ -6089,7 +6131,7 @@ portwine_start_debug () {
|
|||||||
|
|
||||||
portwine_launch &
|
portwine_launch &
|
||||||
sleep 3
|
sleep 3
|
||||||
pw_stop_progress_bar_cover
|
pw_stop_progress_bar
|
||||||
local PW_TIMER=0
|
local PW_TIMER=0
|
||||||
while read -r line || [[ -n $(pgrep -a yad | grep "yad_gui_pp --text-info --tail --button="STOP"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 --title="DEBUG"" | awk '{print $1}') ]] ; do
|
while read -r line || [[ -n $(pgrep -a yad | grep "yad_gui_pp --text-info --tail --button="STOP"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 --title="DEBUG"" | awk '{print $1}') ]] ; do
|
||||||
sleep 0.005
|
sleep 0.005
|
||||||
@@ -6119,7 +6161,7 @@ portwine_start_debug () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pw_create_prefix_backup () {
|
pw_create_prefix_backup () {
|
||||||
cd "$HOME"
|
cd "$HOME" || :
|
||||||
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 \
|
||||||
|
27
data_from_portwine/scripts/pw_autoinstall/PW_DOOMSDAY
Executable file
@@ -0,0 +1,27 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Author: chal55rus
|
||||||
|
# type: games
|
||||||
|
# name: Doomsday
|
||||||
|
# image: doomsday
|
||||||
|
# info_en:
|
||||||
|
# info_ru:
|
||||||
|
########################################################################
|
||||||
|
export PW_PREFIX_NAME="DOOMSDAY"
|
||||||
|
export LAUNCH_PARAMETERS=("/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-")
|
||||||
|
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/dls_installer_1.0.30_1729944485-3778620.exe"
|
||||||
|
export PORTWINE_CREATE_SHORTCUT_NAME="Doomsday"
|
||||||
|
|
||||||
|
start_portwine
|
||||||
|
if try_download "https://statics-global.igg.com/game_package/dls/11200199071/2024/08/28/dls_installer_1.0.30.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||||
|
then
|
||||||
|
pw_start_progress_bar_install_game "Doomsday."
|
||||||
|
pw_kill_autostart Launcher.exe &
|
||||||
|
pw_run "${PW_AUTOINSTALL_EXE}"
|
||||||
|
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Doomsday/DoomsdayLastSurvivors.exe"
|
||||||
|
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||||
|
try_remove_file "${portwine_exe}.ppdb"
|
||||||
|
kill_portwine
|
||||||
|
pw_stop_progress_bar
|
||||||
|
portwine_create_shortcut
|
||||||
|
fi
|
||||||
|
stop_portwine
|
27
data_from_portwine/scripts/pw_autoinstall/PW_GOOSE_GOOSE_DUCK
Executable file
@@ -0,0 +1,27 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Author: chal55rus
|
||||||
|
# type: games
|
||||||
|
# name: Goose Goose Duck
|
||||||
|
# image: goosegooseduck
|
||||||
|
# info_en:
|
||||||
|
# info_ru:
|
||||||
|
########################################################################
|
||||||
|
VERSION="3.11.00"
|
||||||
|
export PW_PREFIX_NAME="GOOSE_GOOSE_DUCK"
|
||||||
|
export LAUNCH_PARAMETERS=("/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-")
|
||||||
|
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Goose Goose Duck Installer $VERSION release.exe"
|
||||||
|
export PORTWINE_CREATE_SHORTCUT_NAME="Goose Goose Duck"
|
||||||
|
|
||||||
|
start_portwine
|
||||||
|
if try_download "https://firebasestorage.googleapis.com/v0/b/gaggle-staging.appspot.com/o/Builds%2FGGD%2FGoose%20Goose%20Duck%20Installer%20${VERSION}%20release.exe?alt=media&token=e6c29f8f-bfd8-4592-a740-821aa4cebe00" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||||
|
then
|
||||||
|
pw_start_progress_bar_install_game "Goose Goose Duck."
|
||||||
|
pw_run "${PW_AUTOINSTALL_EXE}"
|
||||||
|
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Goose Goose Duck/GGDLauncher.exe"
|
||||||
|
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||||
|
try_remove_file "${portwine_exe}.ppdb"
|
||||||
|
kill_portwine
|
||||||
|
pw_stop_progress_bar
|
||||||
|
portwine_create_shortcut
|
||||||
|
fi
|
||||||
|
stop_portwine
|
27
data_from_portwine/scripts/pw_autoinstall/PW_MINI_WORLD
Executable file
@@ -0,0 +1,27 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Author: chal55rus
|
||||||
|
# type: games
|
||||||
|
# name: Mini World
|
||||||
|
# image: miniworld
|
||||||
|
# info_en:
|
||||||
|
# info_ru:
|
||||||
|
########################################################################
|
||||||
|
URL_VER=$(curl https://www.miniworldgame.com/ | awk -F"/app_install/" '{print $2}' | awk -F"universal" '{print $1}')
|
||||||
|
|
||||||
|
export PW_PREFIX_NAME="MINI_WORLD"
|
||||||
|
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/miniworld_universal.exe"
|
||||||
|
export PORTWINE_CREATE_SHORTCUT_NAME="Mini World"
|
||||||
|
|
||||||
|
start_portwine
|
||||||
|
if try_download "https://mwu-api.miniworldgame.com/app_install/${URL_VER//[[:space:]]/}universal" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||||
|
then
|
||||||
|
pw_start_progress_bar_install_game "Mini World."
|
||||||
|
"$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/users/steamuser/AppData/Roaming/miniworldOverseasgame"
|
||||||
|
portwine_exe="$WINEPREFIX/drive_c/users/steamuser/AppData/Roaming/miniworldOverseasgame/MicroMiniNew.exe"
|
||||||
|
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||||
|
try_remove_file "${portwine_exe}.ppdb"
|
||||||
|
kill_portwine
|
||||||
|
pw_stop_progress_bar
|
||||||
|
portwine_create_shortcut
|
||||||
|
fi
|
||||||
|
stop_portwine
|
32
data_from_portwine/scripts/pw_autoinstall/PW_TOONTOWN_REWRITTEN
Executable file
@@ -0,0 +1,32 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Author: chal55rus
|
||||||
|
# type: games
|
||||||
|
# name: Toontown Rewritten (ENG)
|
||||||
|
# image: toontownrewritten
|
||||||
|
# info_en:
|
||||||
|
# info_ru:
|
||||||
|
########################################################################
|
||||||
|
URL_VER=$(curl https://www.toontownrewritten.com/play \
|
||||||
|
| awk -F"https://cdn.toontownrewritten.com/launcher/windows/TTRInstaller-" '{print $2}' \
|
||||||
|
| awk -F".exe" '{print $1}' | grep "v1" | head -n1)
|
||||||
|
|
||||||
|
export PW_PREFIX_NAME="TOONTOWN_REWRITTEN"
|
||||||
|
export LAUNCH_PARAMETERS=("/S")
|
||||||
|
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/TTRInstaller-$URL_VER.exe"
|
||||||
|
export PORTWINE_CREATE_SHORTCUT_NAME="Toontown Rewritten"
|
||||||
|
|
||||||
|
start_portwine
|
||||||
|
if try_download "https://cdn.toontownrewritten.com/launcher/windows/TTRInstaller-$URL_VER.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||||
|
then
|
||||||
|
pw_start_progress_bar_install_game "Toontown Rewritten."
|
||||||
|
pw_kill_autostart Launcher.exe &
|
||||||
|
pw_run "${PW_AUTOINSTALL_EXE}"
|
||||||
|
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Toontown Rewritten/Launcher.exe"
|
||||||
|
pw_create_unique_exe "Toontown_Launcher"
|
||||||
|
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||||
|
try_remove_file "${portwine_exe}.ppdb"
|
||||||
|
kill_portwine
|
||||||
|
pw_stop_progress_bar
|
||||||
|
portwine_create_shortcut
|
||||||
|
fi
|
||||||
|
stop_portwine
|
@@ -3,6 +3,10 @@
|
|||||||
# Development assistants: Cefeiko; Dezert1r; Taz_mania; Anton_Famillianov; gavr; RidBowt; chal55rus; UserDiscord; Boria138; Vano; Akai; Htylol
|
# Development assistants: Cefeiko; Dezert1r; Taz_mania; Anton_Famillianov; gavr; RidBowt; chal55rus; UserDiscord; Boria138; Vano; Akai; Htylol
|
||||||
# shellcheck disable=SC2140,SC2119,SC2206,SC2068
|
# shellcheck disable=SC2140,SC2119,SC2206,SC2068
|
||||||
########################################################################
|
########################################################################
|
||||||
|
export url_site="https://linux-gaming.ru/portproton/"
|
||||||
|
export url_cloud="https://cloud.linux-gaming.ru/portproton"
|
||||||
|
export url_git="https://git.linux-gaming.ru/CastroFidel/PortWINE"
|
||||||
|
########################################################################
|
||||||
echo '
|
echo '
|
||||||
█░░ █ █▄░█ █░█ ▀▄▀ ▄▄ █▀▀ ▄▀█ █▀▄▀█ █ █▄░█ █▀▀ ░ █▀█ █░█
|
█░░ █ █▄░█ █░█ ▀▄▀ ▄▄ █▀▀ ▄▀█ █▀▄▀█ █ █▄░█ █▀▀ ░ █▀█ █░█
|
||||||
█▄▄ █ █░▀█ █▄█ █░█ ░░ █▄█ █▀█ █░▀░█ █ █░▀█ █▄█ ▄ █▀▄ █▄█
|
█▄▄ █ █░▀█ █▄█ █░█ ░░ █▄█ █▀█ █░▀░█ █ █░▀█ █▄█ ▄ █▀▄ █▄█
|
||||||
@@ -157,9 +161,6 @@ export pw_yad="${PW_GUI_THEMES_PATH}/gui/yad_gui_pp"
|
|||||||
|
|
||||||
change_locale
|
change_locale
|
||||||
|
|
||||||
export urlg="https://linux-gaming.ru/portproton/"
|
|
||||||
export url_cloud="https://cloud.linux-gaming.ru/portproton"
|
|
||||||
export url_git="https://git.linux-gaming.ru/CastroFidel/PortWINE"
|
|
||||||
export PW_WINELIB="${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}"
|
export PW_WINELIB="${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}"
|
||||||
try_remove_dir "${PW_WINELIB}/var"
|
try_remove_dir "${PW_WINELIB}/var"
|
||||||
install_ver="$(<"${PORT_WINE_TMP_PATH}/PortProton_ver")"
|
install_ver="$(<"${PORT_WINE_TMP_PATH}/PortProton_ver")"
|
||||||
@@ -176,21 +177,20 @@ check_variables PW_LOG "0"
|
|||||||
try_remove_file "${PW_TMPFS_PATH}/update_pfx_log"
|
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
|
[[ ! -f "$PORT_WINE_TMP_PATH/statistics" ]] && touch "$PORT_WINE_TMP_PATH/statistics"
|
||||||
create_translations
|
[[ ! -f "$PW_CACHE_LANG_PATH/$LANGUAGE" ]] && create_translations
|
||||||
fi
|
|
||||||
|
|
||||||
unset translations
|
unset translations
|
||||||
# shellcheck source=/dev/null
|
# shellcheck source=/dev/null
|
||||||
source "${PW_CACHE_LANG_PATH}/$LANGUAGE"
|
source "$PW_CACHE_LANG_PATH/$LANGUAGE"
|
||||||
|
|
||||||
if [[ $TRANSLATIONS_VER != "$scripts_install_ver" ]] ; then
|
if [[ $TRANSLATIONS_VER != "$scripts_install_ver" ]] ; then
|
||||||
try_remove_dir "${PW_CACHE_LANG_PATH}"
|
try_remove_dir "$PW_CACHE_LANG_PATH"
|
||||||
create_translations
|
create_translations
|
||||||
# shellcheck source=/dev/null
|
# shellcheck source=/dev/null
|
||||||
source "${PW_CACHE_LANG_PATH}/$LANGUAGE"
|
source "$PW_CACHE_LANG_PATH/$LANGUAGE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# check PortProton theme
|
# check PortProton theme
|
||||||
@@ -491,10 +491,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
|
||||||
@@ -608,57 +608,51 @@ else
|
|||||||
gui_userconf
|
gui_userconf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
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 PW_NAME_D_ICON PW_ICON_PATH PW_GAME_TIME PW_ALL_DF PW_AMOUNT_NEW_DESKTOP
|
||||||
unset AI_TYPE AI_NAME AI_IMAGE AI_INFO AI_FILE_ARRAY AI_TRUE_FILE AI_FILE_UNSORTED AI_FILE_SORTED PW_DESKTOP_FILES_REGEX
|
unset PW_DESKTOP_FILES_REGEX PW_AMOUNT_OLD_DESKTOP PW_DESKTOP_FILES
|
||||||
# Поиск .desktop файлов
|
# Поиск .desktop файлов
|
||||||
AMOUNT_GENERATE_BUTTONS="0"
|
AMOUNT_GENERATE_BUTTONS="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
|
||||||
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 < "$PORT_WINE_TMP_PATH/statistics"
|
||||||
|
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/" "$PORT_WINE_TMP_PATH/statistics"
|
||||||
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 +677,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\"%"
|
||||||
@@ -756,6 +749,7 @@ else
|
|||||||
--field=" ${translations[Command line]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"${translations[Run wine cmd]}":"FBTN" '@bash -c "button_click --normal WINECMD"' \
|
--field=" ${translations[Command line]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"${translations[Run wine cmd]}":"FBTN" '@bash -c "button_click --normal WINECMD"' \
|
||||||
--field=" ${translations[Regedit]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"${translations[Run wine regedit]}":"FBTN" '@bash -c "button_click --normal WINEREG"' 1> "${PW_TMPFS_PATH}/tmp_yad_form_vulkan" 2>/dev/null &
|
--field=" ${translations[Regedit]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"${translations[Run wine regedit]}":"FBTN" '@bash -c "button_click --normal WINEREG"' 1> "${PW_TMPFS_PATH}/tmp_yad_form_vulkan" 2>/dev/null &
|
||||||
|
|
||||||
|
unset AI_TYPE AI_NAME AI_IMAGE AI_INFO AI_FILE_ARRAY AI_TRUE_FILE AI_FILE_UNSORTED AI_FILE_SORTED AI_FILE_ENG
|
||||||
if [[ $AI_SKIP != 1 ]] ; then
|
if [[ $AI_SKIP != 1 ]] ; then
|
||||||
# AI_TOP_GAMES используется для сортировки автоинсталлов (работает на эмуляторы тоже)
|
# AI_TOP_GAMES используется для сортировки автоинсталлов (работает на эмуляторы тоже)
|
||||||
AI_AMOUNT_GAMES="0" && AI_AMOUNT_EMULS="0" && AI_AMOUNT_ARRAY="0"
|
AI_AMOUNT_GAMES="0" && AI_AMOUNT_EMULS="0" && AI_AMOUNT_ARRAY="0"
|
||||||
@@ -776,9 +770,13 @@ else
|
|||||||
AI_FILE_ARRAY+=($AI_FILE)
|
AI_FILE_ARRAY+=($AI_FILE)
|
||||||
if [[ $AI_TOP_GAMES =~ ${AI_FILE_CHECK//=*/} ]] ; then
|
if [[ $AI_TOP_GAMES =~ ${AI_FILE_CHECK//=*/} ]] ; then
|
||||||
AI_TRUE_FILE+=($AI_FILE_CHECK)
|
AI_TRUE_FILE+=($AI_FILE_CHECK)
|
||||||
|
else
|
||||||
|
if [[ ${AI_NAME["$AI_AMOUNT_ARRAY"]} =~ \(ENG\) ]] ; then
|
||||||
|
AI_FILE_ENG+=($AI_AMOUNT_ARRAY)
|
||||||
else
|
else
|
||||||
AI_FILE_UNSORTED+=($AI_AMOUNT_ARRAY)
|
AI_FILE_UNSORTED+=($AI_AMOUNT_ARRAY)
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
(( AI_AMOUNT_ARRAY++ ))
|
(( AI_AMOUNT_ARRAY++ ))
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -790,7 +788,7 @@ else
|
|||||||
done
|
done
|
||||||
|
|
||||||
IFS=$'\n'
|
IFS=$'\n'
|
||||||
for ai in "${AI_FILE_SORTED[@]}" "${AI_FILE_UNSORTED[@]}" ; do
|
for ai in "${AI_FILE_SORTED[@]}" "${AI_FILE_UNSORTED[@]}" "${AI_FILE_ENG[@]}" ; do
|
||||||
case ${AI_TYPE[$ai]} in
|
case ${AI_TYPE[$ai]} in
|
||||||
games)
|
games)
|
||||||
export PW_GENERATE_BUTTONS_GAMES+="--field= ${AI_NAME[$ai]}!$PW_GUI_ICON_PATH/${AI_IMAGE[$ai]}.png!${AI_INFO[$ai]}:FBTNR%@bash -c \"button_click --normal ${AI_FILE_ARRAY[$ai]}\"%"
|
export PW_GENERATE_BUTTONS_GAMES+="--field= ${AI_NAME[$ai]}!$PW_GUI_ICON_PATH/${AI_IMAGE[$ai]}.png!${AI_INFO[$ai]}:FBTNR%@bash -c \"button_click --normal ${AI_FILE_ARRAY[$ai]}\"%"
|
||||||
@@ -903,7 +901,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 ;;
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
#Author: Castro-Fidel (linux-gaming.ru)
|
#Author: Castro-Fidel (linux-gaming.ru)
|
||||||
#SCRIPTS_NEXT_VERSION=2367
|
#SCRIPTS_NEXT_VERSION=2368
|
||||||
#SCRIPTS_STABLE_VERSION=2360
|
#SCRIPTS_STABLE_VERSION=2360
|
||||||
########################################################################
|
########################################################################
|
||||||
export AI_TOP_GAMES="PW_LGC PW_VKPLAY PW_EPIC PW_BATTLE_NET PW_WORLD_OF_SEA_BATTLE PW_RUSSIAN_FISHING PW_HO_YO_PLAY PW_FARLIGHT84 PW_WARFRAME PW_WGC PW_UBISOFT"
|
export AI_TOP_GAMES="PW_LGC PW_VKPLAY PW_EPIC PW_BATTLE_NET PW_WORLD_OF_SEA_BATTLE PW_RUSSIAN_FISHING PW_HO_YO_PLAY PW_FARLIGHT84 PW_WARFRAME PW_WGC PW_UBISOFT"
|
||||||
@@ -15,7 +15,7 @@ export PW_RT_MOUNT_RO=("")
|
|||||||
export PW_RT_MOUNT_RW=("/media" "/mnt" "/run/media/${USER}" "${PORT_WINE_PATH}")
|
export PW_RT_MOUNT_RW=("/media" "/mnt" "/run/media/${USER}" "${PORT_WINE_PATH}")
|
||||||
#export PW_SANDBOX_HOME_PATH="${PORT_WINE_PATH}"
|
#export PW_SANDBOX_HOME_PATH="${PORT_WINE_PATH}"
|
||||||
export PW_NO_ESYNC="0"
|
export PW_NO_ESYNC="0"
|
||||||
export PW_USE_GAMEMODE="1"
|
export PW_USE_GAMEMODE="0"
|
||||||
export PW_FORCE_USE_VSYNC="2"
|
export PW_FORCE_USE_VSYNC="2"
|
||||||
export PW_USE_TERMINAL="0"
|
export PW_USE_TERMINAL="0"
|
||||||
export PW_WINDOWS_VER="10"
|
export PW_WINDOWS_VER="10"
|
||||||
|