Compare commits

..

36 Commits

Author SHA1 Message Date
Mikhail Tergoev
ef83c60711 Scripts version 2368 2024-10-27 16:51:16 +03:00
Mikhail Tergoev
6fa65cb925 updated AI for latest games 2024-10-27 15:49:55 +03:00
Mikhail Tergoev
e7745dc524 Merge branch 'minergenon-3games' into devel 2024-10-27 14:35:52 +03:00
Mikhail Tergoev
6df237dbf4 Merge branch '3games' of github.com:minergenon/PortWINE into minergenon-3games 2024-10-27 14:35:45 +03:00
Mikhail Tergoev
e23dd5485b remove unneded WOSB icons 2024-10-27 14:33:22 +03:00
Mikhail Tergoev
3364792668 added NAME and IMG to systemd-inhibit 2024-10-27 14:31:13 +03:00
Mikhail Tergoev
2d40a16d13 Merge branch 'Boria138-inihibit' into devel 2024-10-27 13:49:10 +03:00
Mikhail Tergoev
1fdb35e231 Merge branch 'inihibit' of github.com:Boria138/PortWINE into Boria138-inihibit 2024-10-27 13:49:04 +03:00
Mikhail Tergoev
52a8f1ea01 added sort ENG games to bottom 2024-10-27 13:42:19 +03:00
Mikhail Tergoev
8d9ae5a79f dropped func: pw_stop_progress_bar_cover 2024-10-27 13:13:45 +03:00
Mikhail Tergoev
e9cdc85a41 minor fixes pw_stop_progress_bar 2024-10-27 12:46:51 +03:00
Mikhail Tergoev
d08147c52a Merge branch 'Htylol-pw_stop_progress_bar-fix' into devel 2024-10-27 12:37:59 +03:00
Mikhail Tergoev
205424f938 Merge branch 'pw_stop_progress_bar-fix' of github.com:Htylol/PortWINE into Htylol-pw_stop_progress_bar-fix 2024-10-27 12:37:53 +03:00
Mikhail Tergoev
80c3f97482 revert warframe.ppdb 2024-10-27 12:35:16 +03:00
Mikhail Tergoev
5e06bf6761 Merge branch 'Htylol-pw_prefix_manager-fix' into devel 2024-10-27 12:34:06 +03:00
Mikhail Tergoev
db696351ff Merge branch 'pw_prefix_manager-fix' of github.com:Htylol/PortWINE into Htylol-pw_prefix_manager-fix 2024-10-27 12:33:52 +03:00
Mikhail Tergoev
07175825f4 minor update hardmode-2 2024-10-27 12:33:11 +03:00
Mikhail Tergoev
64b70f0137 Merge branch 'Htylol-hardmode-2' into devel 2024-10-27 12:09:45 +03:00
Mikhail Tergoev
383807a6b7 Merge branch 'hardmode-2' of github.com:Htylol/PortWINE into Htylol-hardmode-2 2024-10-27 12:09:39 +03:00
Mikhail Tergoev
7fc4ea3a91 Merge branch 'Boria138-steam-grid-fix' into devel 2024-10-27 12:09:03 +03:00
Sergey Palcheh
aa66606a59 Added game TOONTOWN REWRITTEN 2024-10-27 14:43:34 +06:00
f29808f4ce Added portwine_search_shortcut 2024-10-27 13:41:22 +05:00
Sergey Palcheh
37bd14d8eb Added game Mini World 2024-10-27 14:41:14 +06:00
Sergey Palcheh
0f58886d72 Added game GOOSE_GOOSE_DUCK 2024-10-27 14:38:22 +06:00
1cb7fb5009 Spellcheck and rename 2024-10-27 00:53:45 +05:00
87e5d712f7 Dropped ENTRY_POINT_FIND 2024-10-26 23:56:41 +05:00
42eb2a99d5 Fixed bugs 2024-10-26 22:43:22 +05:00
625bc35ca4 Added NUMBER_OF_STARTS 2024-10-26 21:43:26 +05:00
7cb3be3d08 Added portwine_change_shortcut 2024-10-26 19:55:31 +05:00
Sergey Palcheh
358cdea9d5 Added game doomsday 2024-10-26 20:31:17 +06:00
33061138f4 Added screensaver inhibit on Game Running 2024-10-26 18:30:38 +05:00
259b6907d7 Fixes for pw_stop_progress_bar 2024-10-26 15:17:12 +05:00
87bf672ea0 Fixes for pw_prefix_manager 2024-10-26 14:17:32 +05:00
b78d173631 Fixes 2024-10-26 14:11:18 +05:00
1b7dcf3c1a Hardmode in PP number two 2024-10-26 02:54:27 +05:00
90f0515c70 Fix logo download and double download 2024-10-25 19:18:16 +05:00
22 changed files with 436 additions and 229 deletions

View File

@@ -2,6 +2,17 @@ You can help us in the development of the project on the website: https://linux-
----------------------------------------
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
* fixed the use of gamemode in the native version of PortProton
* continued improvement of the functionality for creating labels and comments (thanks to Htylol)

View File

@@ -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 мегабайта
* исправлено использование gamemode в нативной версии PortProton
* продолжено улучшение функционала создания ярлыков и комментариев (спасибо Htylol)

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -7,7 +7,7 @@
msgid ""
msgstr "Project-Id-Version: PACKAGE VERSION\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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -59,10 +59,13 @@ msgstr ""
msgid "Create shortcut for select file..."
msgstr ""
msgid "DELETE SHORTCUT"
msgid "CHANGE SHORTCUT"
msgstr ""
msgid "Delete shortcut for select file..."
msgid "Change shortcut for select file..."
msgstr ""
msgid "Launching"
msgstr ""
msgid "Base settings"
@@ -227,9 +230,6 @@ msgstr ""
msgid "Downloading"
msgstr ""
msgid "Launching"
msgstr ""
msgid "day"
msgstr ""
@@ -1426,6 +1426,9 @@ msgstr ""
msgid "The shortcut will be created in the PortProton directory."
msgstr ""
msgid "Name"
msgstr ""
msgid "Add shortcut to MENU -> GAMES"
msgstr ""
@@ -1435,19 +1438,18 @@ msgstr ""
msgid "Add shortcut to STEAM library"
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?"
msgstr ""
msgid "Restarting STEAM... Please wait."
msgstr ""
msgid "The shortcut will be changed in the PortProton directory."
msgstr ""
msgid "REMOVE SHORTCUT"
msgstr ""
msgid "Could not find the file:"
msgstr ""
@@ -1455,6 +1457,9 @@ msgid "ATTENTION:\\nIf you forgot to mount the disk with the running "
"application, click CANCEL!"
msgstr ""
msgid "DELETE SHORTCUT"
msgstr ""
msgid "Starting prefix manager:"
msgstr ""

View File

@@ -8,15 +8,15 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-10-24 13:48+0500\n"
"PO-Revision-Date: 2024-10-24 13:51+0500\n"
"POT-Creation-Date: 2024-10-26 06:41+0500\n"
"PO-Revision-Date: 2024-10-26 13:58+0500\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: es_ES\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.4.2\n"
"X-Generator: Poedit 3.4.4\n"
msgid ""
"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..."
msgstr "Crear un acceso directo para el archivo seleccionado..."
msgid "DELETE SHORTCUT"
msgstr "ELIMINAR ACCESO DIRECTO"
msgid "CHANGE SHORTCUT"
msgstr "CAMBIAR ACCESO DIRECTO"
msgid "Delete shortcut for select file..."
msgstr "Eliminar el acceso directo del archivo seleccionado..."
msgid "Change shortcut for select file..."
msgstr "Cambiar un acceso directo para el archivo seleccionado..."
msgid "Launching"
msgstr "Lanzamiento"
msgid "Base settings"
msgstr "Configuración básica"
@@ -247,9 +250,6 @@ msgstr ""
msgid "Downloading"
msgstr "Descargando"
msgid "Launching"
msgstr "Lanzamiento"
msgid "day"
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."
msgstr "El acceso directo se creará en el directorio de PortProton."
msgid "Name"
msgstr "Nombre"
msgid "Add shortcut to MENU -> GAMES"
msgstr "Agregar acceso directo a MENU -> JUEGOS"
@@ -1867,16 +1870,6 @@ msgstr "Agregar acceso directo al escritorio"
msgid "Add shortcut to STEAM library"
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?"
msgstr ""
"Para agregar el acceso directo a STEAM, es necesario reiniciar.\\n\\¿Quieres "
@@ -1885,6 +1878,12 @@ msgstr ""
msgid "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:"
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 "
"CANCELAR!"
msgid "DELETE SHORTCUT"
msgstr "ELIMINAR ACCESO DIRECTO"
msgid "Starting prefix manager:"
msgstr "Iniciando el administrador de prefijos:"
@@ -2173,6 +2175,16 @@ msgstr ""
msgid "Please wait. downloading covers for"
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"
#~ msgstr "Activación forzada de la sincronización vertical"

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-10-24 12:43+0500\n"
"PO-Revision-Date: 2024-10-24 12:45+0500\n"
"POT-Creation-Date: 2024-10-26 06:41+0500\n"
"PO-Revision-Date: 2024-10-26 06:43+0500\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: ru_RU\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"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"
"X-Generator: Poedit 3.4.2\n"
"X-Generator: Poedit 3.4.4\n"
msgid ""
"A running PortProton session was detected.\\nDo you want to end the previous "
@@ -64,11 +64,14 @@ msgstr "СОЗДАТЬ ЯРЛЫК"
msgid "Create shortcut for select file..."
msgstr "Создать ярлык для выбранного файла..."
msgid "DELETE SHORTCUT"
msgstr "УДАЛИТЬ ЯРЛЫК"
msgid "CHANGE SHORTCUT"
msgstr "ИЗМЕНИТЬ ЯРЛЫК"
msgid "Delete shortcut for select file..."
msgstr "Удалить ярлык для выбранного файла..."
msgid "Change shortcut for select file..."
msgstr "Изменить ярлык для выбранного файла..."
msgid "Launching"
msgstr "Запуск"
msgid "Base settings"
msgstr "Основные настройки"
@@ -249,9 +252,6 @@ msgstr ""
msgid "Downloading"
msgstr "Загружается"
msgid "Launching"
msgstr "Запуск"
msgid "day"
msgstr "день"
@@ -1836,6 +1836,9 @@ msgstr "Вы действительно хотите сбросить настр
msgid "The shortcut will be created in the PortProton directory."
msgstr "Ярлык будет создан в каталоге PortProton."
msgid "Name"
msgstr "Имя"
msgid "Add shortcut to MENU -> GAMES"
msgstr "Добавить ярлык в МЕНЮ -> ИГРЫ"
@@ -1845,14 +1848,6 @@ msgstr "Добавить ярлык на рабочий стол"
msgid "Add shortcut to STEAM library"
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?"
msgstr ""
"Для добавления ярлыка в STEAM требуется перезапуск.\\n\\nПерезапустить STEAM "
@@ -1861,6 +1856,12 @@ msgstr ""
msgid "Restarting STEAM... Please wait."
msgstr "Перезапускаем STEAM... Пожалуйста, подождите."
msgid "The shortcut will be changed in the PortProton directory."
msgstr "Ярлык будет изменён в каталоге PortProton."
msgid "REMOVE SHORTCUT"
msgstr "УДАЛИТЬ ЯРЛЫК"
msgid "Could not find the file:"
msgstr "Не удалось найти файл:"
@@ -1871,6 +1872,9 @@ msgstr ""
"ВНИМАНИЕ:\\nЕсли вы забыли примонтировать диск с запускаемым приложением, "
"нажмите ОТМЕНИТЬ!"
msgid "DELETE SHORTCUT"
msgstr "УДАЛИТЬ ЯРЛЫК"
msgid "Starting prefix manager:"
msgstr "Запуск менеджера префиксов:"
@@ -2157,6 +2161,14 @@ msgstr "SteamGridDB не отвечает, принудительно отклю
msgid "Please wait. downloading covers for"
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"
#~ msgstr "Принудительное включение вертикальной синхронизации"

View File

@@ -150,7 +150,7 @@ function downloadArtFromSteamGridDB {
[[ -n "$SEARCHHUMOR" ]] && SGDB_ENDPOINT_STR+="&humor=${SEARCHHUMOR}"
[[ -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
echo "The server response wasn't 'success' for this batch of requested games."
return
@@ -194,7 +194,7 @@ function downloadArtFromSteamGridDB {
fi
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
else
echo "No grid found to download for '$SEARCHID' - maybe loosen filters?"
@@ -280,10 +280,11 @@ function commandlineGetSteamGridDBArtwork {
SGDBSEARCHENDPOINT_HERO="${BASESTEAMGRIDDBAPI}/heroes/${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
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
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
pw_notify_send -i info \
"${translations[SteamGridDB is not responding, forcing cover download to be disabled]}"
@@ -291,18 +292,20 @@ function commandlineGetSteamGridDBArtwork {
export DOWNLOAD_STEAM_GRID="0"
return
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
# 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
# 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
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"
# 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_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"
pw_stop_progress_bar
fi
fi
}
## Fetch artwork from SteamGridDB

View File

@@ -248,9 +248,7 @@ eval_translations () {
create_translations () {
local po_file msgid msgstr
if [[ ! -d "${PW_CACHE_LANG_PATH}" ]] ; then
create_new_dir "${PW_CACHE_LANG_PATH}"
fi
[[ ! -d $PW_CACHE_LANG_PATH ]] && create_new_dir "$PW_CACHE_LANG_PATH"
cat << EOF > "${PW_CACHE_LANG_PATH}/$LANGUAGE"
#!/usr/bin/env bash
TRANSLATIONS_VER=$scripts_install_ver
@@ -769,10 +767,10 @@ background_pid () {
case $arg1 in
--start)
eval "$arg2 &"
PID=$!
local PID=$!
export bg_pid"${arg3}"="$PID" ;;
--end)
PID=$(get_bg_pid bg_pid"${arg3}")
local PID=$(get_bg_pid bg_pid"${arg3}")
[[ -z $PID ]] && return 1
wait "$PID" 2>/dev/null && return 0 ;;
esac
@@ -792,7 +790,6 @@ unpack () {
silent) local silent=true ;;
esac
# If gamescope session is active, use PW_TERM for unpack
if check_gamescope_session ; then
$PW_TERM "echo ; echo ; echo \"Unpacking file: $1. Please wait...\" ; $command \"$1\" -C \"$2\""
@@ -849,80 +846,74 @@ debug_timer () {
fi
}
# Поиск нужного .desktop файла по $portwine_exe
# Поиск нужного .desktop файла по $portwine_exe (для показа в комментариях нужного времени)
# Параллельное создание базы по времени после завершения приложения
search_desktop_file () {
local count desktop_file desktop_file_new EXEC_DESKTOP TIME_CURRENT_PROXY EXEC_DESKTOP_NEW TIME_TOTAL i j df
unset TIME_CURRENT_ARRAY DESKTOP_FILES_ARRAY
count=0
local desktop_file desktop_file_new EXEC_DESKTOP line1 line2 TIME_TOTAL
for desktop_file in "$PORT_WINE_PATH"/* ; do
desktop_file_new="${desktop_file//"$PORT_WINE_PATH/"/}"
if [[ $desktop_file_new =~ .desktop$ ]] ; then
if [[ ! $desktop_file_new =~ (PortProton|readme) ]] ; then
while IFS= read -r line ; do
if [[ $line =~ ^Exec= ]] ; then
while IFS= read -r line1 ; do
if [[ $line1 =~ ^Exec= ]] ; 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
EXEC_DESKTOP=${line//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /}
EXEC_DESKTOP=${line1//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /}
fi
fi
[[ $line =~ ^#Time= ]] && TIME_CURRENT_PROXY=${line//#Time=/}
done < "$desktop_file"
# Для конвертации существующих .desktop файлов flatpak в натив и наоборот
if [[ $EXEC_DESKTOP =~ ^"Exec=flatpak run ru.linux_gaming.PortProton " ]] ; then
sed -i "s|Exec=flatpak run ru.linux_gaming.PortProton|Exec=env \"$PORT_SCRIPTS_PATH/start.sh\"|" "$desktop_file"
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
while IFS=" " read -r -a line2 ; do
if [[ ${line2[1]} == "$ENTRY_POINT" ]] ; then
break
fi
DESKTOP_FILES_ARRAY["$count"]="$desktop_file"
(( count++ ))
done < "$PORT_WINE_TMP_PATH/statistics"
if [[ $portwine_exe == "${EXEC_DESKTOP//\"/}" ]] ; then
DESKTOP_CORRECT_FILE="$desktop_file"
fi
unset TIME_CURRENT_PROXY
fi
fi
done
IFS="$orig_IFS"
[[ -z $TIME_CURRENT ]] && TIME_CURRENT=0
if [[ -n ${line2[2]} ]]
then TIME_CURRENT=${line2[2]}
else TIME_CURRENT=0
fi
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
TIME_TOTAL=$(( TIME_CURRENT + PW_TIME_IN_GAME ))
for df in "${DESKTOP_FILES_ARRAY[@]}" ; do
sed -i '/^#Time=/d' "$df"
echo "#Time=$TIME_TOTAL" >> "$df"
done
else
for df in "${DESKTOP_FILES_ARRAY[@]}" ; do
sed -i '/^#Time=/d' "$df"
echo "#Time=$TIME_CURRENT" >> "$df"
done
if [[ -n ${line2[1]} ]] ; then
# Когда есть предыдущее время
sed -i "s|$ENTRY_POINT $TIME_CURRENT|$ENTRY_POINT $TIME_TOTAL|" "$PORT_WINE_TMP_PATH/statistics"
else
# Когда только запустили приложение первый раз
echo "${portwine_exe// /#@_@#} $ENTRY_POINT $TIME_TOTAL OLD_DESKTOP" >> "$PORT_WINE_TMP_PATH/statistics"
fi
# Здесь добавляются новые линии для статистики по аналогии, к примеру ${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
}
@@ -938,9 +929,9 @@ create_name_desktop () {
elif [[ -n $name_desktop ]] ; then
DESKTOP_NAME_FILE="$name_desktop"
unset name_desktop
elif [[ -n ${DESKTOP_FILES_ARRAY[0]} ]] \
&& [[ -z ${DESKTOP_FILES_ARRAY[1]} ]] ; then
DESKTOP_NAME_FILE="${DESKTOP_FILES_ARRAY[0]//"$PORT_WINE_PATH/"/}"
elif [[ -n $DESKTOP_CORRECT_FILE ]] ; then
DESKTOP_NAME_FILE="${DESKTOP_CORRECT_FILE//"$PORT_WINE_PATH/"/}"
unset DESKTOP_CORRECT_FILE
DESKTOP_NAME_FILE="${DESKTOP_NAME_FILE//.desktop/}"
fi
@@ -2483,6 +2474,7 @@ pw_create_gui_png () {
fi
if [[ -z "$PORTPROTON_NAME" ]] \
|| [[ -z "$FILE_DESCRIPTION" ]] \
|| [[ -z "$ENTRY_POINT" ]] \
|| [[ "$PW_NO_RESTART_PPDB" == "1" ]]
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
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")
ENTRY_POINT=$(sed -n 's/^Entry Point\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
else
print_error "exiftool - broken!"
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"
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")
ENTRY_POINT=$(sed -n 's/^Entry Point\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
fi
if [[ "$PW_PRODUCTNAME" =~ (Launcher|RU) ]]
@@ -2508,7 +2502,7 @@ pw_create_gui_png () {
fi
if [[ -n "$PW_PRODUCTNAME" ]] \
&& [[ "$PW_PRODUCTNAME" != Bootstrap* ]]
&& [[ ! "$PW_PRODUCTNAME" =~ Bootstrap ]]
then
PORTPROTON_NAME="$PW_PRODUCTNAME"
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")"
export PORTPROTON_NAME
edit_db_from_gui PORTPROTON_NAME FILE_DESCRIPTION
edit_db_from_gui PORTPROTON_NAME FILE_DESCRIPTION ENTRY_POINT
fi
resize_png "$portwine_exe" "${PORTPROTON_NAME}" "128"
@@ -2925,7 +2919,7 @@ start_portwine () {
elif [[ "$PW_USE_GAMEMODE" = "1" ]] \
&& [[ -n "$DBUS_SESSION_BUS_ADDRESS" ]]
then
if command -v systemctl \
if command -v systemctl &>/dev/null \
&& (systemctl is-active --quiet ananicy.service \
|| systemctl is-active --quiet ananicy-cpp.service)
then
@@ -2973,6 +2967,13 @@ start_portwine () {
export GAMEMODERUN=0
export PW_GAMEMODERUN_SLR=""
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
# enabled BattleEye_Runtime and EasyAntiCheat_Runtime
@@ -3766,13 +3767,13 @@ pw_run () {
if [[ -n "${PATH_TO_GAME}" ]] \
&& [[ -d "${PATH_TO_GAME}" ]]
then
cd "${PATH_TO_GAME}" || fatal
cd "${PATH_TO_GAME}" || :
elif [[ -f "$portwine_exe" ]]
then
PATH_TO_GAME="$( cd "$( dirname "${portwine_exe}" )" >/dev/null 2>&1 && pwd )"
cd "${PATH_TO_GAME}" || fatal
cd "${PATH_TO_GAME}" || :
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
PW_LOG_TO_FILE="${PORT_WINE_PATH}/PortProton.log"
PW_LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}"
@@ -3793,6 +3794,7 @@ pw_run () {
print_info "Log from RUNTIME and WINE:"
${PW_RUN_GAMESCOPE} \
${PW_POWERPROFILECTL_SLR} \
${PW_INHIBIT_SLR}\
${pw_runtime} \
LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
LD_PRELOAD="${PW_LD_PRELOAD}" \
@@ -3811,6 +3813,7 @@ pw_run () {
echo "Log WINE:" > "${PW_LOG_TO_FILE}"
${PW_RUN_GAMESCOPE} \
${PW_POWERPROFILECTL_SLR} \
${PW_INHIBIT_SLR}\
${pw_runtime} \
LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
LD_PRELOAD="${PW_LD_PRELOAD}" \
@@ -3846,6 +3849,7 @@ pw_run () {
${PW_POWERPROFILECTL_SLR} \
${PW_MANGOHUD_SLR} \
${PW_DISPLAY} \
${PW_INHIBIT_SLR}\
"${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}"
wait_wineserver
else
@@ -3864,6 +3868,7 @@ pw_run () {
${PW_POWERPROFILECTL_SLR} \
${PW_MANGOHUD_SLR} \
${PW_DISPLAY} \
${PW_INHIBIT_SLR}\
"${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]}
wait_wineserver
fi
@@ -3964,7 +3969,7 @@ pw_winereg () {
}
pw_start_cont_xterm () {
cd "$HOME" || fatal
cd "$HOME" || :
unset PW_SANDBOX_HOME_PATH
pw_init_runtime
${pw_runtime} \
@@ -4153,27 +4158,17 @@ pw_start_progress_bar_install_game () {
}
pw_stop_progress_bar () {
sleep 0.1
for PW_KILL_YAD_PID in "$PW_YAD_PID_PROGRESS_BAR_BLOCK" "$PW_YAD_PID_PROGRESS_BAR_CS" \
"$PW_YAD_PID_PFX_COVER_UI" "$PW_YAD_PID_PROGRESS_BAR_COVER"
do
kill -s SIGUSR1 "$PW_KILL_YAD_PID" &>/dev/null
done
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
[[ -n $PW_YAD_PID_PROGRESS_BAR_BLOCK ]] && kill -s SIGUSR1 "$PW_YAD_PID_PROGRESS_BAR_BLOCK" &>/dev/null
[[ -n $PW_YAD_PID_PROGRESS_BAR_CS ]] && kill -s SIGUSR1 "$PW_YAD_PID_PROGRESS_BAR_CS" &>/dev/null
[[ -n $PW_YAD_PID_PFX_COVER_UI ]] && kill -s SIGUSR1 "$PW_YAD_PID_PFX_COVER_UI" &>/dev/null
[[ -n $PW_YAD_PID_PROGRESS_BAR_COVER ]] && kill -s SIGUSR1 "$PW_YAD_PID_PROGRESS_BAR_COVER" &>/dev/null
unset PW_YAD_PID_PROGRESS_BAR_BLOCK PW_YAD_PID_PROGRESS_BAR_CS
unset PW_YAD_PID_PFX_COVER_UI PW_YAD_PID_PROGRESS_BAR_COVER
}
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 () {
kill -s KILL "$PW_YAD_PID_PROGRESS_BAR_COVER_BLOCK" &>/dev/null
return 0
}
export -f pw_stop_progress_bar_cover_block
@@ -5600,25 +5595,22 @@ portwine_create_shortcut () {
--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)
PW_YAD_OUT=$?
portwine_output_yad_shortcut
}
portwine_output_yad_shortcut () {
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")
PW_SHORTCUT_MENU=$(echo "$OUTPUT" | awk -F'|' '{print $2}')
PW_SHORTCUT_DESKTOP=$(echo "$OUTPUT" | awk -F'|' '{print $3}')
PW_SHORTCUT_STEAM=$(echo "$OUTPUT" | awk -F'|' '{print $4}')
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"
if [[ $PORTWINE_CHANGE_SHORTCUT != 1 ]] ; then
edit_user_conf_from_gui PW_SHORTCUT_MENU PW_SHORTCUT_DESKTOP PW_SHORTCUT_STEAM
fi
portwine_delete_shortcut
[[ -z $name_desktop ]] && create_name_desktop && export name_desktop="$PW_NAME_DESKTOP_PROXY"
echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop"
@@ -5663,14 +5655,17 @@ portwine_create_shortcut () {
fi
chmod u+x "${STEAM_SCRIPTS}/${name_desktop}.sh"
export SCVDF="shortcuts.vdf"
for STUIDPATH in "${HOME}"/.local/share/Steam/userdata/*/ ; do
create_new_dir "${STUIDPATH}/config/"
create_new_dir "${STUIDPATH}/config/grid"
export SCPATH="${STUIDPATH}/config/$SCVDF"
export SGGRIDDIR="${STUIDPATH}/config/grid"
# shellcheck source=/dev/null
source "${PORT_SCRIPTS_PATH}/add_in_steam.sh"
for STUIDPATH in "${HOME}"/.local/share/Steam/userdata/*/; do
if [[ -d "$STUIDPATH" ]]; then
create_new_dir "${STUIDPATH}config/"
create_new_dir "${STUIDPATH}config/grid"
export SCPATH="${STUIDPATH}config/$SCVDF"
export SGGRIDDIR="${STUIDPATH}config/grid"
# shellcheck source=/dev/null
source "${PORT_SCRIPTS_PATH}/add_in_steam.sh"
fi
done
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
pw_start_progress_bar_block "${translations[Restarting STEAM... Please wait.]}"
@@ -5687,15 +5682,14 @@ portwine_create_shortcut () {
unset PW_SKIP_RESTART_STEAM
fi
# Когда новый .desktop файл
echo "#NEW_DESKTOP" >> "$PORT_WINE_PATH/$name_desktop.desktop"
export PW_NEW_DESKTOP="1"
if [[ "$PW_NO_RESTART_PPDB" != "1" ]] ; then
print_info "Restarting PP..."
[[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB
restart_pp
fi
elif [[ "$PW_YAD_OUT" == "2" ]] ; then
elif [[ "$PW_YAD_OUT" =~ (^1$|^2$|^252$) ]] ; then
print_info "Restarting PP..."
[[ -n $KEY_MENU ]] && unset portwine_exe
[[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB
@@ -5770,27 +5764,79 @@ 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_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_SHORTCUT+=(${PW_DELETE_PP// /@_@})
PW_DELETE_SHORTCUT_MENU+=(${PW_DELETE_PP// /@_@})
if [[ -d "${HOME}/Desktop" ]] ; then
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
if [[ -d "${HOME}/Рабочий стол" ]] ; then
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
if [[ $(xdg-user-dir DESKTOP) ]] ; then
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
}
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//@_@/ }"
done
}
@@ -5896,10 +5942,6 @@ pw_prefix_manager () {
try_remove_file "${PW_TMPFS_PATH}/settings_list_tmp"
case "$YAD_STATUS" in
1|252)
print_info "Nothing to do. Restarting PortProton..."
stop_portwine --restart
;;
0)
WT_FORCE=""
;;
@@ -6089,7 +6131,7 @@ portwine_start_debug () {
portwine_launch &
sleep 3
pw_stop_progress_bar_cover
pw_stop_progress_bar
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
sleep 0.005
@@ -6119,7 +6161,7 @@ portwine_start_debug () {
}
pw_create_prefix_backup () {
cd "$HOME"
cd "$HOME" || :
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...]}" \
--button="${translations[CANCEL]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1 \

View 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

View 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

View 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

View 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

View File

@@ -3,6 +3,10 @@
# Development assistants: Cefeiko; Dezert1r; Taz_mania; Anton_Famillianov; gavr; RidBowt; chal55rus; UserDiscord; Boria138; Vano; Akai; Htylol
# 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 '
█░░ █ █▄░█ █░█ ▀▄▀ ▄▄ █▀▀ ▄▀█ █▀▄▀█ █ █▄░█ █▀▀ ░ █▀█ █░█
█▄▄ █ █░▀█ █▄█ █░█ ░░ █▄█ █▀█ █░▀░█ █ █░▀█ █▄█ ▄ █▀▄ █▄█
@@ -157,9 +161,6 @@ export pw_yad="${PW_GUI_THEMES_PATH}/gui/yad_gui_pp"
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}"
try_remove_dir "${PW_WINELIB}/var"
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"
# shellcheck source=/dev/null
source "${USER_CONF}"
source "$USER_CONF"
if [[ ! -f "${PW_CACHE_LANG_PATH}/$LANGUAGE" ]] ; then
create_translations
fi
[[ ! -f "$PORT_WINE_TMP_PATH/statistics" ]] && touch "$PORT_WINE_TMP_PATH/statistics"
[[ ! -f "$PW_CACHE_LANG_PATH/$LANGUAGE" ]] && create_translations
unset translations
# shellcheck source=/dev/null
source "${PW_CACHE_LANG_PATH}/$LANGUAGE"
source "$PW_CACHE_LANG_PATH/$LANGUAGE"
if [[ $TRANSLATIONS_VER != "$scripts_install_ver" ]] ; then
try_remove_dir "${PW_CACHE_LANG_PATH}"
try_remove_dir "$PW_CACHE_LANG_PATH"
create_translations
# shellcheck source=/dev/null
source "${PW_CACHE_LANG_PATH}/$LANGUAGE"
source "$PW_CACHE_LANG_PATH/$LANGUAGE"
fi
# check PortProton theme
@@ -491,10 +491,10 @@ if [[ -f "${portwine_exe}" ]] ; then
fi
if [[ "${PW_GUI_DISABLED_CS}" != 1 ]] ; then
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"
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
create_name_desktop
@@ -608,57 +608,51 @@ else
gui_userconf
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 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_NAME_D_ICON PW_ICON_PATH PW_GAME_TIME PW_ALL_DF PW_AMOUNT_NEW_DESKTOP
unset PW_DESKTOP_FILES_REGEX PW_AMOUNT_OLD_DESKTOP PW_DESKTOP_FILES
# Поиск .desktop файлов
AMOUNT_GENERATE_BUTTONS="0"
for desktop_file in "$PORT_WINE_PATH"/* ; do
desktop_file_new="${desktop_file//"$PORT_WINE_PATH/"/}"
if [[ $desktop_file_new =~ .desktop$ ]] ; then
if [[ ! $desktop_file_new =~ (PortProton|readme) ]] ; then
while IFS= read -r line ; do
if [[ $line =~ ^Exec= ]] ; then
while IFS= read -r line1 ; do
if [[ $line1 =~ ^Exec= ]] ; 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
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
[[ $line =~ ^Icon= ]] && PW_ICON_PATH["$AMOUNT_GENERATE_BUTTONS"]="${line//Icon=/}"
[[ $line =~ ^#Time= ]] && PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]="${line//#Time=/}"
[[ $line =~ ^#NEW_DESKTOP ]] && NEW_DESKTOP=1
[[ $line1 =~ ^Icon= ]] && PW_ICON_PATH["$AMOUNT_GENERATE_BUTTONS"]=${line1//Icon=/}
done < "$desktop_file"
PW_ALL_DF["$AMOUNT_GENERATE_BUTTONS"]="$desktop_file_new"
if [[ $SORT_WITH_TIME == enabled ]] && [[ $NEW_DESKTOP == 1 ]] ; then
unset NEW_DESKTOP
sed -i '/^#NEW_DESKTOP/d' "$desktop_file"
# Для конвертации существующих .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 /}
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)
else
PW_AMOUNT_OLD_DESKTOP+=($AMOUNT_GENERATE_BUTTONS)
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++ ))
fi
fi
done
# Переопределение элементов в массивах в зависимости от PW_GAME_TIME, от большего значения к меньшему.
# 10 миллисекунд на 40 .desktop файлов, работает быстро
if [[ $SORT_WITH_TIME == enabled ]] && [[ -n ${PW_GAME_TIME[1]} ]] ; then
@@ -683,7 +677,6 @@ else
done
done
fi
# Генерация .desktop баттанов для главного меню
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\"%"
@@ -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[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
# AI_TOP_GAMES используется для сортировки автоинсталлов (работает на эмуляторы тоже)
AI_AMOUNT_GAMES="0" && AI_AMOUNT_EMULS="0" && AI_AMOUNT_ARRAY="0"
@@ -777,7 +771,11 @@ else
if [[ $AI_TOP_GAMES =~ ${AI_FILE_CHECK//=*/} ]] ; then
AI_TRUE_FILE+=($AI_FILE_CHECK)
else
AI_FILE_UNSORTED+=($AI_AMOUNT_ARRAY)
if [[ ${AI_NAME["$AI_AMOUNT_ARRAY"]} =~ \(ENG\) ]] ; then
AI_FILE_ENG+=($AI_AMOUNT_ARRAY)
else
AI_FILE_UNSORTED+=($AI_AMOUNT_ARRAY)
fi
fi
(( AI_AMOUNT_ARRAY++ ))
done
@@ -790,7 +788,7 @@ else
done
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
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]}\"%"
@@ -903,7 +901,7 @@ case "$PW_YAD_SET" in
esac
case "$PW_YAD_SET" in
98) portwine_delete_shortcut ;;
98) portwine_change_shortcut ;;
100) portwine_create_shortcut ;;
DEBUG|102) portwine_start_debug ;;
106) portwine_launch ;;

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#Author: Castro-Fidel (linux-gaming.ru)
#SCRIPTS_NEXT_VERSION=2367
#SCRIPTS_NEXT_VERSION=2368
#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"
@@ -15,7 +15,7 @@ export PW_RT_MOUNT_RO=("")
export PW_RT_MOUNT_RW=("/media" "/mnt" "/run/media/${USER}" "${PORT_WINE_PATH}")
#export PW_SANDBOX_HOME_PATH="${PORT_WINE_PATH}"
export PW_NO_ESYNC="0"
export PW_USE_GAMEMODE="1"
export PW_USE_GAMEMODE="0"
export PW_FORCE_USE_VSYNC="2"
export PW_USE_TERMINAL="0"
export PW_WINDOWS_VER="10"