diff --git a/data_from_portwine/locales/PortProton.pot b/data_from_portwine/locales/PortProton.pot index c21b66b5..ee4d11b6 100644 --- a/data_from_portwine/locales/PortProton.pot +++ b/data_from_portwine/locales/PortProton.pot @@ -7,7 +7,7 @@ msgid "" msgstr "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2024-09-04 13:16+0300\n" + "POT-Creation-Date: 2024-09-13 02:43+0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -68,6 +68,18 @@ msgstr "" msgid "Edit database file for" msgstr "" +msgid "Settings user.conf" +msgstr "" + +msgid "Settings for user.conf" +msgstr "" + +msgid "Open directory" +msgstr "" + +msgid "Open directory with .ppdb file" +msgstr "" + msgid "Enable vkBasalt by default to improve graphics in games running on " "Vulkan. (The HOME hotkey disables vkbasalt)" msgstr "" @@ -107,12 +119,6 @@ msgstr "" msgid "Run file ..." msgstr "" -msgid "Disable" -msgstr "" - -msgid "Enable" -msgstr "" - msgid "Create shortcut..." msgstr "" @@ -131,27 +137,12 @@ msgstr "" msgid "Change language" msgstr "" -msgid "Edit user.conf" -msgstr "" - msgid "Scripts from backup" msgstr "" msgid "Credits" msgstr "" -msgid "Change mirror to" -msgstr "" - -msgid "Change branch to" -msgstr "" - -msgid "Change start gui" -msgstr "" - -msgid "steam covers download" -msgstr "" - msgid "Create prefix backup" msgstr "" @@ -357,6 +348,15 @@ msgstr "" msgid "CHANGELOG" msgstr "" +msgid "WINEFILE" +msgstr "" + +msgid "TASKMGR" +msgstr "" + +msgid "FORCE EXIT" +msgstr "" + msgid "Check new version WINE..." msgstr "" @@ -567,13 +567,6 @@ msgid "Limiting the number of CPU cores is useful for Unity games (It is " "recommended to set the value equal to 8)" msgstr "" -msgid "Choose a graphics card to run the game (in user.conf)" -msgstr "" - -msgid "Select which video card will be used to run the game (used for all " - "running games and programs in PortProton)" -msgstr "" - msgid "Forcibly select the OpenGL version for the game" msgstr "" @@ -594,12 +587,6 @@ msgstr "" msgid "Fixes encoding issues in legacy software" msgstr "" -msgid "Choice wine audio driver" -msgstr "" - -msgid "Fixes sound popling if choice alsa" -msgstr "" - msgid "EDIT DB" msgstr "" @@ -827,6 +814,12 @@ msgid "AMD FidelityFX - CAS is designed to dramatically improve texture " "set value = 100)" msgstr "" +msgid "RESET" +msgstr "" + +msgid "Restore default settings for" +msgstr "" + msgid "DISABLE" msgstr "" @@ -965,9 +958,10 @@ msgstr "" msgid "Show temperature in Fahrenheit" msgstr "" -msgid "Show if GPU is throttling based on Power, current, temp or \"other" - "\" (Only shows if throttling is currently happening). Currently " - "disabled by default for Nvidia as it causes lag on 3000 series" +msgid "Show if GPU is throttling based on Power, current, temp or " + "\"other\" (Only shows if throttling is currently happening). " + "Currently disabled by default for Nvidia as it causes lag on 3000 " + "series" msgstr "" msgid "Same as throttling_status but displays throttling in the frametime " @@ -1004,15 +998,15 @@ msgid "Enabling fps limitation with MANGOHUD tools built into PortProton " "(Keys L_SHIFT + F1 Toggles fps limitation)" msgstr "" -msgid "Disable MangoHud and go to the previous menu" -msgstr "" - msgid "PREVIEW CHANGES" msgstr "" msgid "Start vkcube for preview changes" msgstr "" +msgid "Disable MangoHud and go to the previous menu" +msgstr "" + msgid "Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working " "only on newest and stable dxvk/vkd3d) (Direct3D and Glide settings)" msgstr "" @@ -1181,12 +1175,6 @@ msgid "Integer scale factor of the emulated hardware mouse cursor. 0: " "Glide settings)" msgstr "" -msgid "RESET" -msgstr "" - -msgid "Restore default settings for" -msgstr "" - msgid "Disable dgVoodoo2 and go to the previous menu" msgstr "" @@ -1255,17 +1243,14 @@ msgid "Force use sdl videodriver x11, works with BACKEND SDL. (Default is " "wayland)" msgstr "" -msgid "Fixes artifacts on AMD and Intel video cards. (Use only when " - "necessary)." -msgstr "" - msgid "Change settings gamescope for" msgstr "" +#, sh-format msgid "Gamescope is not detected on the system, to install it, run the " "command in the terminal:\\n flatpak install -y runtime/org." - "freedesktop.Platform.VulkanLayer.gamescope/x86_64/23.08\\n (Can be " - "selected and copied)" + "freedesktop.Platform.VulkanLayer.gamescope/x86_64/" + "${GAMESCOPE_VERSION}\\n (Can be selected and copied)" msgstr "" msgid "Gamescope is not detected on the system, please contact the " @@ -1362,6 +1347,72 @@ msgstr "" msgid "Disable GameScope and go to the previous menu" msgstr "" +msgid "Disable" +msgstr "" + +msgid "Enable" +msgstr "" + +msgid "Change settings for" +msgstr "" + +msgid "Change mirror to" +msgstr "" + +msgid "Depending on which mirror is selected, updates will be downloaded " + "from there." +msgstr "" + +msgid "Change branch to" +msgstr "" + +msgid "Depending on the version of the scripts, PortProton will receive the " + "latest changes first (the DEVEL branch), the STABLE branch is " + "updated later and is stable." +msgstr "" + +msgid "Change start gui to" +msgstr "" + +msgid "When using PANED in the game start menu, additional buttons are " + "located on one large page; if NOTEBOOK, then they are divided into " + "several." +msgstr "" + +msgid "steam covers download" +msgstr "" + +msgid "If downloading steam covers is enabled, they will be downloaded and " + "created. (Disablement is provided in cases where their downloading " + "is unavailable for some reason)" +msgstr "" + +msgid "Choose a graphics card to run the game" +msgstr "" + +msgid "Select which video card will be used to run the game (used for all " + "running games and programs in PortProton)" +msgstr "" + +msgid "Choice wine audio driver" +msgstr "" + +msgid "Fixes sound popling if choice alsa" +msgstr "" + +msgid "Choice gui themes" +msgstr "" + +msgid "Allows you to select a theme for PortProton" +msgstr "" + +msgid "SETTINGS USER.CONF" +msgstr "" + +msgid "Open the user.conf settings file in a system text editor to " + "view and change variables manually" +msgstr "" + msgid "The shortcut will be created in the PortProton directory." msgstr "" @@ -1471,6 +1522,9 @@ msgstr "" msgid "Mirror changed to:" msgstr "" +msgid "Do you actually want to change the scripts version to:" +msgstr "" + msgid "Branch changed to:" msgstr "" @@ -1486,6 +1540,9 @@ msgstr "" msgid "EDIT USER CONFIG" msgstr "" +msgid "BACK" +msgstr "" + msgid "SAVE" msgstr "" @@ -1515,8 +1572,8 @@ msgid "MIT License\n" "\n" "Permission is hereby granted, free of charge, to any person " "obtaining a copy\n" - "of this software and associated documentation files (the \"Software" - "\"), to deal\n" + "of this software and associated documentation files (the " + "\"Software\"), to deal\n" "in the Software without restriction, including without limitation " "the rights\n" "to use, copy, modify, merge, publish, distribute, sublicense, and/or " diff --git a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.mo b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.mo index c388a155..5eff950a 100644 Binary files a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.mo and b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.mo differ diff --git a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po old mode 100755 new mode 100644 index 69cac667..49626e42 --- a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-04 13:16+0300\n" -"PO-Revision-Date: 2024-07-16 11:59+0300\n" +"POT-Creation-Date: 2024-09-12 02:37+0500\n" +"PO-Revision-Date: 2024-09-12 02:40+0500\n" "Last-Translator: \n" "Language-Team: \n" "Language: es_ES\n" @@ -73,6 +73,18 @@ msgstr "Configuración básica" msgid "Edit database file for" msgstr "Editar archivo de base de datos para" +msgid "Settings user.conf" +msgstr "Configuración user.conf" + +msgid "Settings for user.conf" +msgstr "Configuración user.conf" + +msgid "Open directory" +msgstr "directorio abierto" + +msgid "Open directory with .ppdb file" +msgstr "Abrir directorio con el archivo .ppdb" + msgid "" "Enable vkBasalt by default to improve graphics in games running on Vulkan. " "(The HOME hotkey disables vkbasalt)" @@ -103,12 +115,11 @@ msgstr "GENERAL" msgid "SETTINGS" msgstr "AJUSTES" -#, fuzzy msgid "MAIN MENU" -msgstr "MAIN" +msgstr "MENÚ PRINCIPAL" msgid "Main menu" -msgstr "" +msgstr "menú principal" msgid "DEBUG" msgstr "DEPURAR" @@ -122,12 +133,6 @@ msgstr "INICIAR" msgid "Run file ..." msgstr "Ejecutar archivo ..." -msgid "Disable" -msgstr "" - -msgid "Enable" -msgstr "" - msgid "Create shortcut..." msgstr "Crear acceso directo..." @@ -146,27 +151,12 @@ msgstr "Lista de cambios" msgid "Change language" msgstr "Cambiar idioma" -msgid "Edit user.conf" -msgstr "Editar user.conf" - msgid "Scripts from backup" msgstr "Scripts desde la copia de seguridad" msgid "Credits" msgstr "Creadores" -msgid "Change mirror to" -msgstr "Cambiar el espejo a" - -msgid "Change branch to" -msgstr "Cambiar rama a" - -msgid "Change start gui" -msgstr "Cambiar la interfaz gráfica de inicio" - -msgid "steam covers download" -msgstr "" - msgid "Create prefix backup" msgstr "Crear una copia de seguridad del prefijo" @@ -307,13 +297,11 @@ msgstr "" "¿Realmente deseas reinstalar PortProton?\\nPara esto, se requerirá una " "conexión a Internet." -#, fuzzy msgid "Please wait for update PortProton" -msgstr "Actualizar PortProton" +msgstr "Espere la actualización PortProton" -#, fuzzy msgid "Failed updating PortProton!" -msgstr "Actualizar PortProton" +msgstr "¡Error al actualizar PortProton!" msgid "" "More than one DB file found for the application being launched.\\nSelect the " @@ -400,6 +388,15 @@ msgstr "Por favor, espera. Instalando el" msgid "CHANGELOG" msgstr "LISTA DE CAMBIOS" +msgid "WINEFILE" +msgstr "WINEFILE" + +msgid "TASKMGR" +msgstr "GESTOR DE TAREAS" + +msgid "FORCE EXIT" +msgstr "FORZAR SALIDA" + msgid "Check new version WINE..." msgstr "Comprobar nueva versión de WINE..." @@ -433,6 +430,8 @@ msgstr "Forzar el uso del protocolo DirectInput en lugar de XInput" msgid "" "Enable experemental native Wayland support (need special wine build to work)" msgstr "" +"Habilite el soporte experimental nativo de Wayland (necesita una compilación " +"de vino especial para funcionar)" msgid "" "Do not use in-process synchronization primitives based on eventfd. (It is " @@ -709,16 +708,6 @@ msgstr "" "Limitar el número de núcleos de CPU es útil para los juegos de Unity (se " "recomienda establecer el valor igual a 8)" -msgid "Choose a graphics card to run the game (in user.conf)" -msgstr "Elige una tarjeta gráfica para ejecutar el juego (en user.conf)" - -msgid "" -"Select which video card will be used to run the game (used for all running " -"games and programs in PortProton)" -msgstr "" -"Selecciona qué tarjeta de vídeo se utilizará para ejecutar el juego (se " -"utiliza para todos los juegos y programas en ejecución en PortProton)" - msgid "Forcibly select the OpenGL version for the game" msgstr "Seleccionar forzosamente la versión de OpenGL para el juego" @@ -744,12 +733,6 @@ msgstr "Forzar cierta configuración regional para una aplicación:" msgid "Fixes encoding issues in legacy software" msgstr "Soluciona problemas de codificación en software heredado" -msgid "Choice wine audio driver" -msgstr "" - -msgid "Fixes sound popling if choice alsa" -msgstr "" - msgid "EDIT DB" msgstr "CONFIGURACIÓN" @@ -1026,6 +1009,13 @@ msgstr "" "de rendimiento. (Para juegos más antiguos, se recomienda establecer el valor " "en 100)" +msgid "RESET" +msgstr "RESET" + +msgid "Restore default settings for" +msgstr "" +"Restore default settings for (Restaurar configuraciones predeterminadas para)" + msgid "DISABLE" msgstr "DESACTIVAR " @@ -1228,15 +1218,15 @@ msgstr "" "Activación de la limitación de fps con las herramientas MANGOHUD integradas " "en PortProton (Teclas L_SHIFT + F1 Activa la limitación de fps)" -msgid "Disable MangoHud and go to the previous menu" -msgstr "Desactivar MangoHud y volver al menú anterior" - msgid "PREVIEW CHANGES" msgstr "VISTA PREVIA" msgid "Start vkcube for preview changes" msgstr "Iniciar vkcube para previsualizar los cambios" +msgid "Disable MangoHud and go to the previous menu" +msgstr "Desactivar MangoHud y volver al menú anterior" + msgid "" "Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working only on " "newest and stable dxvk/vkd3d) (Direct3D and Glide settings)" @@ -1529,13 +1519,6 @@ msgstr "" "calculado a partir de la aplicación y resolución forzada. (Configuraciones " "de Direct3D y Glide)" -msgid "RESET" -msgstr "RESET" - -msgid "Restore default settings for" -msgstr "" -"Restore default settings for (Restaurar configuraciones predeterminadas para)" - msgid "Disable dgVoodoo2 and go to the previous menu" msgstr "" "Disable dgVoodoo2 and go to the previous menu (Deshabilitar dgVoodoo2 y " @@ -1638,24 +1621,20 @@ msgstr "" "Forzar el uso del controlador de video SDL x11, funciona con el backend SDL. " "(Por defecto es Wayland)." -msgid "" -"Fixes artifacts on AMD and Intel video cards. (Use only when necessary)." -msgstr "" -"Corrige artefactos en tarjetas de video AMD e Intel. (Usar solo cuando sea " -"necesario)." - msgid "Change settings gamescope for" msgstr "Cambiar ajustes gamescope para" +#, sh-format msgid "" "Gamescope is not detected on the system, to install it, run the command " "in the terminal:\\n flatpak install -y runtime/org.freedesktop.Platform." -"VulkanLayer.gamescope/x86_64/23.08\\n (Can be selected and copied)" +"VulkanLayer.gamescope/x86_64/${GAMESCOPE_VERSION}\\n (Can be selected and " +"copied)" msgstr "" " Gamescope no se detecta en el sistema, para instalarlo, ejecute el " "comando en el terminal:\\n flatpak install -y runtime/org.freedesktop." -"Platform.VulkanLayer.gamescope/x86_64/23.08\\n (Se puede seleccionar y " -"copiar)." +"Platform.VulkanLayer.gamescope/x86_64/${GAMESCOPE_VERSION}\\n (Se puede " +"seleccionar y copiar)." msgid "" "Gamescope is not detected on the system, please contact the manufacturer " @@ -1783,6 +1762,91 @@ msgstr "" msgid "Disable GameScope and go to the previous menu" msgstr "Desactivar GameScope e ir al menú anterior" +msgid "Disable" +msgstr "Desactivar" + +msgid "Enable" +msgstr "Permitir" + +msgid "Change settings for" +msgstr "Cambiar la configuración de" + +msgid "Change mirror to" +msgstr "Cambiar el espejo a" + +msgid "" +"Depending on which mirror is selected, updates will be downloaded from there." +msgstr "" +"Dependiendo del espejo seleccionado, las actualizaciones se descargarán " +"desde allí." + +msgid "Change branch to" +msgstr "Cambiar rama a" + +msgid "" +"Depending on the version of the scripts, PortProton will receive the latest " +"changes first (the DEVEL branch), the STABLE branch is updated later and is " +"stable." +msgstr "" +"Dependiendo de la versión de los scripts, PortProton recibirá primero los " +"últimos cambios (la rama DEVEL), la rama STABLE se actualiza más tarde y es " +"estable." + +msgid "Change start gui to" +msgstr "Cambiar la interfaz gráfica de inicio a" + +msgid "" +"When using PANED in the game start menu, additional buttons are located on " +"one large page; if NOTEBOOK, then they are divided into several." +msgstr "" +"Cuando se usa PANED en el menú de inicio del juego, los botones adicionales " +"se encuentran en una página grande; si CUADERNO, entonces se dividen en " +"varios." + +msgid "steam covers download" +msgstr "descargar portadas de steam" + +msgid "" +"If downloading steam covers is enabled, they will be downloaded and created. " +"(Disablement is provided in cases where their downloading is unavailable for " +"some reason)" +msgstr "" +"Si la descarga de portadas de Steam está habilitada, se descargarán y " +"crearán. (La desactivación se proporciona en los casos en que su descarga no " +"esté disponible por algún motivo)" + +msgid "Choose a graphics card to run the game" +msgstr "Elige una tarjeta gráfica para ejecutar el juego" + +msgid "" +"Select which video card will be used to run the game (used for all running " +"games and programs in PortProton)" +msgstr "" +"Selecciona qué tarjeta de vídeo se utilizará para ejecutar el juego (se " +"utiliza para todos los juegos y programas en ejecución en PortProton)" + +msgid "Choice wine audio driver" +msgstr "Controlador de audio de vino elegido" + +msgid "Fixes sound popling if choice alsa" +msgstr "Corrige el sonido estallido de elección alsa alsa" + +msgid "Choice gui themes" +msgstr "Temas de interfaz gráfica de usuario elegidos" + +msgid "Allows you to select a theme for PortProton" +msgstr "Le permite seleccionar un tema para PortProton" + +msgid "SETTINGS USER.CONF" +msgstr "AJUSTES USUARIO.CONF" + +msgid "" +"Open the user.conf settings file in a system text editor to view and " +"change variables manually" +msgstr "" +"Abre el archivo de configuración user.conf en un editor de texto del " +"sistema para ver y cambiar las variables manualmente" + msgid "The shortcut will be created in the PortProton directory." msgstr "El acceso directo se creará en el directorio de PortProton." @@ -1827,10 +1891,10 @@ msgid "using wine:" msgstr "usando vino:" msgid "Libraries" -msgstr "" +msgstr "Bibliotecas" msgid "Information" -msgstr "" +msgstr "Información" msgid "Select fonts to install in prefix:" msgstr "Seleccionar fuentes para instalar en prefijo:" @@ -1841,19 +1905,17 @@ msgstr "Cambiar la configuración del prefijo:" msgid "PREFIX MANAGER" msgstr "GESTOR DE PREFIJOS" -#, fuzzy msgid "FORCE INSTALL" -msgstr "SALIDA FORZADA" +msgstr "INSTALACIÓN FORZADA" msgid "Installation with forced redownload of libraries" -msgstr "" +msgstr "Instalación con recarga forzada de bibliotecas." -#, fuzzy msgid "INSTALL" -msgstr "INSTALADO" +msgstr "INSTALAR" msgid "Standard installation." -msgstr "" +msgstr "Instalación estándar." msgid "DLLS" msgstr "DLLS" @@ -1862,12 +1924,11 @@ msgid "FONTS" msgstr "FUENTES" msgid "Attention working version of vulkan not detected!" -msgstr "" +msgstr "¡Atención, no se detectó la versión funcional de vulkan!" -#, fuzzy msgid "It is recommended to run games in OpenGL (low performance possible)!" msgstr "" -"Se recomienda ejecutar los juegos en\\ OpenGL (bajo rendimiento posible)!" +"¡Se recomienda ejecutar juegos en OpenGL (es posible un rendimiento bajo)!" msgid "" "PortProton was launched in creation mode PortProton.log and it is " @@ -1913,23 +1974,29 @@ msgstr "¿Realmente desea eliminar PortProton?" msgid "Mirror changed to:" msgstr "Espejo cambiado a:" +msgid "Do you actually want to change the scripts version to:" +msgstr "¿Realmente desea cambiar la versión de los scripts a:" + msgid "Branch changed to:" msgstr "Rama cambiada a:" msgid "Cover downloads are disabled" -msgstr "" +msgstr "Las descargas de portadas están deshabilitadas." msgid "Cover downloads are enabled" -msgstr "" +msgstr "Las descargas de portadas están habilitadas." msgid "Gui start changed to:" msgstr "Inicio Gui cambiado a:" msgid "EDIT USER CONFIG" -msgstr "" +msgstr "EDITAR CONFIGURACIÓN DE USUARIO" + +msgid "BACK" +msgstr "ATRÁS" msgid "SAVE" -msgstr "" +msgstr "AHORRAR" #, sh-format msgid "" @@ -2026,9 +2093,8 @@ msgstr "" msgid "ABOUT PORTPROTON" msgstr "" -#, fuzzy msgid "AUTORS" -msgstr "EMULADORES" +msgstr "" msgid "LICENSE" msgstr "" @@ -2042,11 +2108,11 @@ msgstr "" msgid "THIRD PARTY LIBRARIES" msgstr "" -#~ msgid "WINEFILE" -#~ msgstr "WINEFILE" - -#~ msgid "TASKMGR" -#~ msgstr "GESTOR DE TAREAS" +#~ msgid "" +#~ "Fixes artifacts on AMD and Intel video cards. (Use only when necessary)." +#~ msgstr "" +#~ "Corrige artefactos en tarjetas de video AMD e Intel. (Usar solo cuando " +#~ "sea necesario)." #, sh-format #~ msgid "Add arguments for GAMESCOPE:" diff --git a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.mo b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.mo index 49aa9264..64a50fd8 100644 Binary files a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.mo and b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.mo differ diff --git a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po index c90f7235..f2e44119 100644 --- a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po @@ -7,16 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-04 13:16+0300\n" -"PO-Revision-Date: 2024-08-26 14:07+0300\n" +"POT-Creation-Date: 2024-09-12 02:37+0500\n" +"PO-Revision-Date: 2024-09-12 02:39+0500\n" "Last-Translator: \n" "Language-Team: \n" "Language: ru_RU\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "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" +"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.4\n" msgid "" @@ -73,6 +73,18 @@ msgstr "Основные настройки" msgid "Edit database file for" msgstr "Редактировать файл настроек для" +msgid "Settings user.conf" +msgstr "Настройки user.conf" + +msgid "Settings for user.conf" +msgstr "Настройки для user.conf" + +msgid "Open directory" +msgstr "Открыть папку" + +msgid "Open directory with .ppdb file" +msgstr "Открывает папку с .ppdb файлом" + msgid "" "Enable vkBasalt by default to improve graphics in games running on Vulkan. " "(The HOME hotkey disables vkbasalt)" @@ -121,12 +133,6 @@ msgstr "ЗАПУСТИТЬ" msgid "Run file ..." msgstr "Запустить файл..." -msgid "Disable" -msgstr "Выключить" - -msgid "Enable" -msgstr "Включить" - msgid "Create shortcut..." msgstr "Создать ярлык..." @@ -145,27 +151,12 @@ msgstr "История изменений" msgid "Change language" msgstr "Сменить язык" -msgid "Edit user.conf" -msgstr "Редактировать user.conf" - msgid "Scripts from backup" msgstr "Откатить версию скриптов" msgid "Credits" msgstr "Авторы и благодарности" -msgid "Change mirror to" -msgstr "Сменить зеркало на" - -msgid "Change branch to" -msgstr "Сменить версию на" - -msgid "Change start gui" -msgstr "Изменить интерфейс запуска" - -msgid "steam covers download" -msgstr "скачивание обложек для steam" - msgid "Create prefix backup" msgstr "Создать резервную копию префикса" @@ -393,6 +384,15 @@ msgstr "Пожалуйста, подождите. Устанавливается msgid "CHANGELOG" msgstr "ИЗМЕНЕНИЯ" +msgid "WINEFILE" +msgstr "ФАЙЛОВЫЙ МЕНЕДЖЕР" + +msgid "TASKMGR" +msgstr "ДИСПЕТЧЕР ЗАДАЧ" + +msgid "FORCE EXIT" +msgstr "ПРИНУДИТЕЛЬНЫЙ ВЫХОД" + msgid "Check new version WINE..." msgstr "Проверяем новые версии WINE..." @@ -714,16 +714,6 @@ msgstr "" "Ограничение количества ядер процессора. Полезно, например, для игр на движке " "Unity, для которого рекомендуется установить значение равное 8" -msgid "Choose a graphics card to run the game (in user.conf)" -msgstr "Выбрать видеокарту для запуска игры (в user.conf)" - -msgid "" -"Select which video card will be used to run the game (used for all running " -"games and programs in PortProton)" -msgstr "" -"Выбор видеокарты для запуска игры (используется для всех запущенных игр и " -"программ в PortProton)" - msgid "Forcibly select the OpenGL version for the game" msgstr "Принудительно выбрать версию OpenGL для игры" @@ -749,12 +739,6 @@ msgstr "" "Исправляет кодировку в устаревших приложениях. Необходимо, например, для " "запуска старых графических новелл (Chaos;Head)" -msgid "Choice wine audio driver" -msgstr "Выбрать звуковой драйвер (в user.conf)" - -msgid "Fixes sound popling if choice alsa" -msgstr "Выбор alsa исправляет заикание звука" - msgid "EDIT DB" msgstr "НАСТРОЙКИ" @@ -1033,6 +1017,12 @@ msgstr "" "потерей производительности (для старых игр рекомендуется устанавливать " "значение 50-100 в зависимости от разрешения экрана)" +msgid "RESET" +msgstr "СБРОС" + +msgid "Restore default settings for" +msgstr "Восстановить настройки по умолчанию" + msgid "DISABLE" msgstr "ОТКЛЮЧИТЬ" @@ -1239,15 +1229,15 @@ msgstr "" "Включить лимит FPS с помощью MANGOHUD (сочетание L_SHIFT + F1 " "переключает лимиты)" -msgid "Disable MangoHud and go to the previous menu" -msgstr "Отключить MangoHud и перейти в предыдущее меню" - msgid "PREVIEW CHANGES" msgstr "ПРЕДПРОСМОТР" msgid "Start vkcube for preview changes" msgstr "Запустить vkcube для предпросмотра изменений" +msgid "Disable MangoHud and go to the previous menu" +msgstr "Отключить MangoHud и перейти в предыдущее меню" + msgid "" "Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working only on " "newest and stable dxvk/vkd3d) (Direct3D and Glide settings)" @@ -1500,12 +1490,6 @@ msgstr "" "Задать вручную размер курсора в игре, если при увеличении изображения " "увеличивается курсор (Direct3D + Glide)" -msgid "RESET" -msgstr "СБРОС" - -msgid "Restore default settings for" -msgstr "Восстановить настройки по умолчанию" - msgid "Disable dgVoodoo2 and go to the previous menu" msgstr "Отключить dgVoodoo2 и перейти в предыдущее меню" @@ -1609,23 +1593,20 @@ msgstr "" "запуском), работает вместе с SDL BACKEND (используется по умолчанию в " "Wayland сессии)" -msgid "" -"Fixes artifacts on AMD and Intel video cards. (Use only when necessary)." -msgstr "" -"Устраняет артефакты на видеокартах AMD и Intel (использовать только при " -"необходимости)" - msgid "Change settings gamescope for" msgstr "Изменить настройки Gamescope для" +#, sh-format msgid "" "Gamescope is not detected on the system, to install it, run the command " "in the terminal:\\n flatpak install -y runtime/org.freedesktop.Platform." -"VulkanLayer.gamescope/x86_64/23.08\\n (Can be selected and copied)" +"VulkanLayer.gamescope/x86_64/${GAMESCOPE_VERSION}\\n (Can be selected and " +"copied)" msgstr "" "Gamescope не найден в системе, для его установки выполните команду в " "терминале:\\n flatpak install -y runtime/org.freedesktop.Platform." -"VulkanLayer.gamescope/x86_64/23.08\\n (можно выделить и скопировать)" +"VulkanLayer.gamescope/x86_64/${GAMESCOPE_VERSION}\\n (можно выделить и " +"скопировать)" msgid "" "Gamescope is not detected on the system, please contact the manufacturer " @@ -1755,6 +1736,90 @@ msgstr "" msgid "Disable GameScope and go to the previous menu" msgstr "Отключить Gamescope и перейти в предыдущее меню" +msgid "Disable" +msgstr "Выключить" + +msgid "Enable" +msgstr "Включить" + +msgid "Change settings for" +msgstr "Изменить настройки для" + +msgid "Change mirror to" +msgstr "Сменить зеркало на" + +msgid "" +"Depending on which mirror is selected, updates will be downloaded from there." +msgstr "" +"В зависимости от того, какое выбрано зеркало, оттуда и будут загружаться " +"обновления." + +msgid "Change branch to" +msgstr "Сменить версию на" + +msgid "" +"Depending on the version of the scripts, PortProton will receive the latest " +"changes first (the DEVEL branch), the STABLE branch is updated later and is " +"stable." +msgstr "" +"В зависимости от версии скриптов, PortProton будет получать самые последнее " +"изменения раньше всех (ветка DEVEL), ветка STABLE обновляется позже и " +"является стабильной." + +msgid "Change start gui to" +msgstr "Изменить интерфейс запуска на" + +msgid "" +"When using PANED in the game start menu, additional buttons are located on " +"one large page; if NOTEBOOK, then they are divided into several." +msgstr "" +"При использовании PANED в меню запуске игры дополнительные кнопки находятся " +"на одной большой странице, если NOTEBOOK, то поделены на несколько." + +msgid "steam covers download" +msgstr "скачивание обложек для steam" + +msgid "" +"If downloading steam covers is enabled, they will be downloaded and created. " +"(Disablement is provided in cases where their downloading is unavailable for " +"some reason)" +msgstr "" +"Если скачивания обложек steam включено, то они будут загружаться и " +"создаваться. (Отключение предусмотрено в тех случаях, когда их скачивание по " +"каким-то причинам недоступно)" + +msgid "Choose a graphics card to run the game" +msgstr "Выбрать видеокарту для запуска игры" + +msgid "" +"Select which video card will be used to run the game (used for all running " +"games and programs in PortProton)" +msgstr "" +"Выбор видеокарты для запуска игры (используется для всех запущенных игр и " +"программ в PortProton)" + +msgid "Choice wine audio driver" +msgstr "Выбрать звуковой драйвер" + +msgid "Fixes sound popling if choice alsa" +msgstr "Выбор alsa исправляет заикание звука" + +msgid "Choice gui themes" +msgstr "Выбор графической темы" + +msgid "Allows you to select a theme for PortProton" +msgstr "Позволяет выбрать тему для PortProton" + +msgid "SETTINGS USER.CONF" +msgstr "НАСТРОЙКИ USER.CONF" + +msgid "" +"Open the user.conf settings file in a system text editor to view and " +"change variables manually" +msgstr "" +"Открыть файл настроек user.conf в системном текстовом редакторе, " +"чтобы просмотреть и изменить переменные вручную" + msgid "The shortcut will be created in the PortProton directory." msgstr "Ярлык будет создан в каталоге PortProton." @@ -1881,6 +1946,9 @@ msgstr "Вы действительно хотите удалить PortProton?" msgid "Mirror changed to:" msgstr "Зеркало для скачивания изменено на:" +msgid "Do you actually want to change the scripts version to:" +msgstr "Вы действительно хотите изменить версию скриптов на:" + msgid "Branch changed to:" msgstr "Версия изменена на:" @@ -1896,6 +1964,9 @@ msgstr "Интерфейс запуска изменён на:" msgid "EDIT USER CONFIG" msgstr "РЕДАКТИРОВАТЬ USER.CONF" +msgid "BACK" +msgstr "НАЗАД" + msgid "SAVE" msgstr "СОХРАНИТЬ" @@ -2073,6 +2144,15 @@ msgstr "ПРИСОЕДЕНИТЬСЯ" msgid "THIRD PARTY LIBRARIES" msgstr "БИБЛИОТЕКИ" +#~ msgid "Open game folder" +#~ msgstr "Открыть папку с игрой" + +#~ msgid "" +#~ "Fixes artifacts on AMD and Intel video cards. (Use only when necessary)." +#~ msgstr "" +#~ "Устраняет артефакты на видеокартах AMD и Intel (использовать только при " +#~ "необходимости)" + #~ msgid "" #~ "Author: Casro-Fidel (Mikhail Tergoev)\n" #~ "\n" @@ -2132,12 +2212,6 @@ msgstr "БИБЛИОТЕКИ" #~ "Vuursteen\n" #~ "Akai\n" -#~ msgid "WINEFILE" -#~ msgstr "ФАЙЛОВЫЙ МЕНЕДЖЕР" - -#~ msgid "TASKMGR" -#~ msgstr "ДИСПЕТЧЕР ЗАДАЧ" - #~ msgid "" #~ "Forced use of 16bit screen mode. Solves the problem of launching old " #~ "games, such as Moto Racer." diff --git a/data_from_portwine/scripts/add_in_steam.sh b/data_from_portwine/scripts/add_in_steam.sh index a1d300bf..52def2dc 100755 --- a/data_from_portwine/scripts/add_in_steam.sh +++ b/data_from_portwine/scripts/add_in_steam.sh @@ -72,12 +72,12 @@ function setGameArt { GAMEARTBASE="$( basename "$GAMEARTSOURCE" )" GAMEARTDEST="${SGGRIDDIR}/${GAMEARTAPPID}${GAMEARTSUFFIX}.${GAMEARTBASE#*.}" # path to filename in grid e.g. turns "/home/gaben/GamesArt/cs2_hero.png" into "~/.local/share/Steam/userdata/1234567/config/grid/4440654_hero.png" - if [ -n "$GAMEARTSOURCE" ]; then - if [ -f "$GAMEARTDEST" ]; then + if [[ -n "$GAMEARTSOURCE" ]] ; then + if [[ -f "$GAMEARTDEST" ]] ; then rm "$GAMEARTDEST" fi - if [ -f "$GAMEARTSOURCE" ]; then + if [[ -f "$GAMEARTSOURCE" ]] ; then $GAMEARTCMD "$GAMEARTSOURCE" "$GAMEARTDEST" fi fi @@ -143,12 +143,12 @@ function downloadArtFromSteamGridDB { SGDB_ENDPOINT_STR="${SEARCHENDPOINT}/$(echo "$SEARCHID" | awk '{print $1}' | paste -s -d, -)?" - [ -n "$SEARCHSTYLES" ] && SGDB_ENDPOINT_STR+="&styles=${SEARCHSTYLES}" - [ -n "$SEARCHDIMS" ] && SGDB_ENDPOINT_STR+="&dimensions=${SEARCHDIMS}" - [ -n "$SEARCHTYPES" ] && SGDB_ENDPOINT_STR+="&types=${SEARCHTYPES}" - [ -n "$SEARCHNSFW" ] && SGDB_ENDPOINT_STR+="&nsfw=${SEARCHNSFW}" - [ -n "$SEARCHHUMOR" ] && SGDB_ENDPOINT_STR+="&humor=${SEARCHHUMOR}" - [ -n "$SEARCHEPILEPSY" ] && SGDB_ENDPOINT_STR+="&epilepsy=${SEARCHEPILEPSY}" + [[ -n "$SEARCHSTYLES" ]] && SGDB_ENDPOINT_STR+="&styles=${SEARCHSTYLES}" + [[ -n "$SEARCHDIMS" ]] && SGDB_ENDPOINT_STR+="&dimensions=${SEARCHDIMS}" + [[ -n "$SEARCHTYPES" ]] && SGDB_ENDPOINT_STR+="&types=${SEARCHTYPES}" + [[ -n "$SEARCHNSFW" ]] && SGDB_ENDPOINT_STR+="&nsfw=${SEARCHNSFW}" + [[ -n "$SEARCHHUMOR" ]] && SGDB_ENDPOINT_STR+="&humor=${SEARCHHUMOR}" + [[ -n "$SEARCHEPILEPSY" ]] && SGDB_ENDPOINT_STR+="&epilepsy=${SEARCHEPILEPSY}" set -o pipefail RESPONSE=$(curl -H "Authorization: Bearer $SGDBAPIKEY" -s "$SGDB_ENDPOINT_STR" 2> >(grep -v "SSL_INIT")) @@ -193,17 +193,17 @@ function downloadArtFromSteamGridDB { DLDST="${GRIDDLDIR}/${SGDBFILENAME}.${GRIDDLURL##*.}" STARTDL=1 - if [ -f "$DLDST" ]; then - if [ "$SGDBHASFILE" == "backup" ]; then + if [[ -f "$DLDST" ]] ; then + if [[ "$SGDBHASFILE" == "backup" ]] ; then BACKDIR="${GRIDDLDIR}/backup" mkdir -p "$BACKDIR" mv "$DLDST" "$BACKDIR" - elif [ "$SGDBHASFILE" == "replace" ]; then + elif [[ "$SGDBHASFILE" == "replace" ]] ; then rm "$DLDST" 2>/dev/null fi fi - if [ "$STARTDL" -eq 1 ]; then + if [[ "$STARTDL" -eq 1 ]] ; then filename="$(basename "$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 | \ tr '\r' '\n' | sed -ur 's|[# ]+||g;s|.*=.*||g;s|.*|#Downloading at &\n&|g' | \ @@ -217,7 +217,7 @@ function downloadArtFromSteamGridDB { done } -if [ -f "$SCPATH" ]; then +if [[ -f "$SCPATH" ]] ; then cp "$SCPATH" "${SCPATH//.vdf}_${PROGNAME}_backup.vdf" 2>/dev/null truncate -s-2 "$SCPATH" OLDSET="$(grep -aPo '\x00[0-9]\x00\x02appid' "$SCPATH" | tail -n1 | tr -dc '0-9')" @@ -231,11 +231,11 @@ fi function getSGDBGameIDFromTitle { SGDBSEARCHNAME="$1" - if [ -n "$SGDBSEARCHNAME" ]; then + if [[ -n "$SGDBSEARCHNAME" ]] ; then SGDBSEARCHENDPOINT="${BASESTEAMGRIDDBAPI}/search/autocomplete/${SGDBSEARCHNAME}" SGDBSEARCHNAMERESP="$(curl -H "Authorization: Bearer $SGDBAPIKEY" -s "$SGDBSEARCHENDPOINT" 2> >(grep -v "SSL_INIT") )" if jq -e '.success' 1> /dev/null <<< "$SGDBSEARCHNAMERESP"; then - if [ "$(jq '.data | length' <<< "$SGDBSEARCHNAMERESP" )" -gt 0 ]; then + if [[ "$(jq '.data | length' <<< "$SGDBSEARCHNAMERESP" )" -gt 0 ]] ; then SGDBSEARCH_FOUNDNAME="$(jq '.data[0].name' <<< "$SGDBSEARCHNAMERESP" )" SGDBSEARCH_FOUNDGAID="$(jq '.data[0].id' <<< "$SGDBSEARCHNAMERESP" )" @@ -280,10 +280,10 @@ function commandlineGetSteamGridDBArtwork { done # If we pass a name to search on and we get a Game ID back from SteamGridDB, set this as the ID to search for artwork on - if [ -n "$GSGDBA_SEARCHNAME" ]; then - if [ -n "$GSGDBA_FILENAME" ]; then + if [[ -n "$GSGDBA_SEARCHNAME" ]] ; then + if [[ -n "$GSGDBA_FILENAME" ]] ; then GSGDBA_FOUNDGAMEID="$( getSGDBGameIDFromTitle "$GSGDBA_SEARCHNAME" )" - if [ -n "$GSGDBA_FOUNDGAMEID" ]; then + if [[ -n "$GSGDBA_FOUNDGAMEID" ]] ; then GSGDBA_APPID="$GSGDBA_FOUNDGAMEID" SGDBENDPOINTTYPE="game" fi @@ -327,7 +327,7 @@ NOSTSEARCHID="" # ID to search for the SteamGridDB artwork on (either Steam App NOSTSEARCHFLAG="--nonsteam" # Whether to search using a Steam AppID or SteamGridDB Game ID (will be set to --steam if we get an AppID) # Only add NOSTAPPNAME as fallback if we don't have an ID to search on, because commandlineGetSteamGridDBArtwork will prefer name over ID, so if we have to fall back to Non-Steam Name (i.e. no entered custom name) then only do so if we don't have an ID given -if [ -n "$NOSTAPPNAME" ]; then +if [[ -n "$NOSTAPPNAME" ]] ; then NOSTSEARCHNAME="$NOSTAPPNAME" NOSTSEARCHNAME="${NOSTSEARCHNAME// /_}" fi diff --git a/data_from_portwine/scripts/clear_db.sh b/data_from_portwine/scripts/clear_db.sh index 0b1f9f8c..74e7ab46 100755 --- a/data_from_portwine/scripts/clear_db.sh +++ b/data_from_portwine/scripts/clear_db.sh @@ -9,7 +9,7 @@ IFS=$'\n' unset DUPLICATE DUPLICATE="$(cat "$SELF_PATH/portwine_db/"* | grep -E ".exe" | grep '#' | uniq -D | sort -u)" -if [[ ! -z "$DUPLICATE" ]] ; then +if [[ -n "$DUPLICATE" ]] ; then for duplicate_db in $DUPLICATE ; do echo -e "\nDuplicate:" grep -E "$duplicate_db" "$SELF_PATH/portwine_db/"* | awk -F"portwine_db/" '{print $2}' diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index b3b80ecd..3cdf0405 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -197,34 +197,34 @@ try_copy_file_with_checksums () { export -f try_copy_file_with_checksums try_copy_dir () { - if [ ! -d "$1" ] ; then print_info "directory $1 not found for copy" - elif [ -z "$2" ] ; then print_error "no way to copy directory $1" + if [[ ! -d "$1" ]] ; then print_info "directory $1 not found for copy" + elif [[ -z "$2" ]] ; then print_error "no way to copy directory $1" else cp -fr "$1" "$2" - [ "$?" != 0 ] && print_error "failed to copy directory $1 to $2" || return 0 + [[ "$?" != 0 ]] && print_error "failed to copy directory $1 to $2" || return 0 fi return 1 } export -f try_copy_dir try_remove_file () { - if [ -f "$1" ] || [ ! -e "$1" ] ; then + if [[ -f "$1" ]] || [[ ! -e "$1" ]] ; then rm -f "$1" - [ "$?" == 0 ] && return 0 || return 1 + [[ "$?" == 0 ]] && return 0 || return 1 fi } export -f try_remove_file try_remove_dir () { - if [ -d "$1" ] ; then + if [[ -d "$1" ]] ; then rm -fr "$1" - [ "$?" == 0 ] && return 0 || return 1 + [[ "$?" == 0 ]] && return 0 || return 1 fi } export -f try_remove_dir create_new_dir () { - if [ ! -d "$1" ] ; then + if [[ ! -d "$1" ]] ; then mkdir -p "$1" fi return 0 @@ -249,9 +249,9 @@ export -f try_force_link_file check_symlink () { CHK_SYMLINK_FILE="$(file "$1")" - if [[ ! -z "$(echo "$CHK_SYMLINK_FILE" | grep -v "broken" | grep "symbolic link to" | awk '{print $1}')" ]] ; then + if [[ -n "$(echo "$CHK_SYMLINK_FILE" | grep -v "broken" | grep "symbolic link to" | awk '{print $1}')" ]] ; then return 0 - elif [[ ! -z "$(echo "$CHK_SYMLINK_FILE" | grep "broken symbolic link to" | awk '{print $1}')" ]] ; then + elif [[ -n "$(echo "$CHK_SYMLINK_FILE" | grep "broken symbolic link to" | awk '{print $1}')" ]] ; then print_error "remove broken symlink: $CHK_SYMLINK_FILE" rm -fr "$CHK_SYMLINK_FILE" return 1 @@ -262,18 +262,18 @@ check_symlink () { export -f check_symlink try_force_link_dir () { - if [ ! -d "$1" ] ; then print_info "directory $1 not found for link" - elif [ -z "$2" ] ; then print_error "no way to link directory $1" + if [[ ! -d "$1" ]] ; then print_info "directory $1 not found for link" + elif [[ -z "$2" ]] ; then print_error "no way to link directory $1" else ln -s -f -r "$1" "$2" - [ "$?" != 0 ] && print_error "failed to link directory $1 to $2" || return 0 + [[ "$?" != 0 ]] && print_error "failed to link directory $1 to $2" || return 0 fi return 1 } export -f try_force_link_dir check_process () { - [ ! -n "$(ps cax | grep "$1" | awk '{print $1}')" ] && return 0 || return 1 + [[ -z "$(ps cax | grep "$1" | awk '{print $1}')" ]] && return 0 || return 1 } export -f check_process @@ -330,7 +330,7 @@ try_download () { if check_gamescope_session ; then $PW_TERM curl -f -# -A 'Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)' -H 'Cache-Control: no-cache, no-store' \ -H 'Pragma: no-cache' -L ${FIRST_URL[@]} -o "$dest" - [ "$?" != 0 ] && return 1 || return 0 + [[ "$?" != 0 ]] && return 1 || return 0 fi # Normal download @@ -440,10 +440,10 @@ pw_notify_send () { local OPTIND="1" while getopts a:i:t: opt ; do case "$opt" in - a) + a) local app=$OPTARG ;; - i) + i) case "$OPTARG" in info) local OPTARG="${PORT_WINE_PATH}/data/img/gui/notify_info.svg";; warning) local OPTARG="${PORT_WINE_PATH}/data/img/gui/notify_warning.svg";; @@ -451,10 +451,10 @@ pw_notify_send () { esac local icon=$OPTARG ;; - t) + t) local timeout=$OPTARG ;; - *) + *) echo "usage: $0 [-a] name application (PortProton default) [-i] info, warning, error (none default) @@ -487,7 +487,7 @@ check_start_from_steam () { } check_gamescope_session () { - if [[ ! -z "$GAMESCOPE_IN_USE" ]] + if [[ -n "$GAMESCOPE_IN_USE" ]] then [[ "$GAMESCOPE_IN_USE" == 1 ]] && return 0 || return 1 fi if echo "${DESKTOP_SESSION}" | grep -i "gamescope" &>/dev/null ; then @@ -500,7 +500,7 @@ check_gamescope_session () { } check_wayland_session () { - if [[ ! -z "$WAYLAND_IN_USE" ]] + if [[ -n "$WAYLAND_IN_USE" ]] then [[ "$WAYLAND_IN_USE" == 1 ]] && return 0 || return 1 fi if echo "${XDG_SESSION_TYPE}" | grep -i "wayland" &>/dev/null ; then @@ -514,7 +514,7 @@ check_wayland_session () { export -f check_wayland_session check_flatpak () { - if [[ ! -z "$FLATPAK_IN_USE" ]] + if [[ -n "$FLATPAK_IN_USE" ]] then [[ "$FLATPAK_IN_USE" == 1 ]] && return 0 || return 1 fi if grep -i "flatpak" /etc/os-release &>/dev/null ; then @@ -547,7 +547,7 @@ unpack () { pw_start_progress_bar_cover_block "${COVERS_PATH}/unpacking_${LANGUAGE_GIF}.gif" $command "$1" -C "$2" 2>/dev/null pw_stop_progress_bar_cover_block - [ "${PIPESTATUS[0]}" != 0 ] && print_error "File $1 unpacking error." && return 1 || return 0 + [[ "${PIPESTATUS[0]}" != 0 ]] && print_error "File $1 unpacking error." && return 1 || return 0 else $command "$1" -C "$2" && return 0 || return 1 fi @@ -622,6 +622,18 @@ combobox_fix () { fi } +restart_pp () { + if [[ -n "$1" ]] ; then + if [[ "$1" == "--userconf" ]] ; then + export RESTART_PP_USED="userconf" + elif [[ "$1" == "--edit_db" ]] ; then + export RESTART_PP_USED="edit_db" + fi + fi + /usr/bin/env bash -c ${pw_full_command_line[@]} & + exit 0 +} + pw_clear_pfx () { rm -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/.dot* rm -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/.prog* @@ -678,11 +690,10 @@ pw_reinstall_pp () { try_remove_file "${PORT_WINE_TMP_PATH}/scripts_update_notifier" try_remove_file "${PORT_WINE_PATH}/data/user.conf" try_remove_file "${PORT_WINE_TMP_PATH}/scripts_ver" - echo + echo "" + unset SKIP_CHECK_UPDATES print_info "Restarting PP for reinstall files..." - export SKIP_CHECK_UPDATES="0" - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + restart_pp } check_user_conf () { @@ -701,7 +712,7 @@ init_wine_ver () { then export PW_WINE_USE="USE_SYSTEM_WINE" elif [[ "${PW_WINE_VER}" == "GET-OTHER-WINE" ]] then gui_proton_downloader - elif [[ ! -z "${PW_WINE_VER}" ]] + elif [[ -n "${PW_WINE_VER}" ]] then export PW_WINE_USE="$PW_WINE_VER" fi unset PW_WINE_VER @@ -753,7 +764,7 @@ init_wine_ver () { done mv -f "${WINEDIR}/dist"/* "${WINEDIR}/" rm -fr "${WINEDIR}/dist" - elif [ -f "${WINEDIR}/proton_dist.tar" ] ; then + elif [[ -f "${WINEDIR}/proton_dist.tar" ]] ; then unpack "${WINEDIR}/proton_dist.tar" "${WINEDIR}/" for clear_dist_files in $(ls "${WINEDIR}" | sed -e "s/^bin$//g" | sed -e "s/^lib$//g" | sed -e "s/^lib64$//g" | sed -e "s/^share$//g" | sed -e "s/^version$//g") ; do rm -fr "${WINEDIR}/$clear_dist_files" @@ -849,12 +860,12 @@ ${PW_PV_OVERRIDES}/i386-linux-gnu/aliases:\ /overrides/lib/x86_64-linux-gnu:\ /overrides/lib/i386-linux-gnu" - if [ ! -z "${PATH}" ] + if [[ -n "${PATH}" ]] then export PW_PATH="${PATH}:${PW_PLUGINS_PATH}/portable/bin" else export PW_PATH="${PW_PLUGINS_PATH}/portable/bin" fi - if [[ ! -z "${PW_SANDBOX_HOME_PATH}" && -d "${PW_SANDBOX_HOME_PATH}" ]] ; then + if [[ -n "${PW_SANDBOX_HOME_PATH}" && -d "${PW_SANDBOX_HOME_PATH}" ]] ; then export pw_runtime="${PW_WINELIB}/pressure-vessel/bin/pressure-vessel-unruntime \ --unshare-home \ --home=${PW_SANDBOX_HOME_PATH} \ @@ -892,13 +903,13 @@ ${PW_PV_OVERRIDES}/i386-linux-gnu/aliases:\ unset PRESSURE_VESSEL_FILESYSTEMS_RO PRESSURE_VESSEL_FILESYSTEMS_RW for PWRTMRO in ${PW_RT_MOUNT_RO[*]} ; do - if [ ! -z "${PRESSURE_VESSEL_FILESYSTEMS_RO}" ] + if [[ -n "${PRESSURE_VESSEL_FILESYSTEMS_RO}" ]] then export PRESSURE_VESSEL_FILESYSTEMS_RO="${PRESSURE_VESSEL_FILESYSTEMS_RO}:${PWRTMRO}" else export PRESSURE_VESSEL_FILESYSTEMS_RO="${PWRTMRO}" fi done for PWRTMRW in ${PW_RT_MOUNT_RW[*]} ; do - if [ ! -z "${PRESSURE_VESSEL_FILESYSTEMS_RW}" ] + if [[ -n "${PRESSURE_VESSEL_FILESYSTEMS_RW}" ]] then export PRESSURE_VESSEL_FILESYSTEMS_RW="${PRESSURE_VESSEL_FILESYSTEMS_RW}:${PWRTMRW}" else export PRESSURE_VESSEL_FILESYSTEMS_RW="${PWRTMRW}" fi @@ -925,7 +936,7 @@ pw_mangohud_check () { if [[ "${PW_VULKAN_USE}" = "0" ]] ; then MANGOHUD_LIB_NAME="libMangoHud_dlsym.so:libMangoHud_opengl.so:${MANGOHUD_LIB_NAME}" fi - if [[ ! -z "${PW_LD_PRELOAD}" ]] + if [[ -n "${PW_LD_PRELOAD}" ]] then export PW_LD_PRELOAD="${PW_LD_PRELOAD}:${MANGOHUD_LIB_NAME}" else export PW_LD_PRELOAD="${MANGOHUD_LIB_NAME}" fi @@ -950,7 +961,7 @@ pw_vkbasalt_check () { if ! grep "${PW_PLUGINS_PATH}/reshade" "${VKBASALT_CONFIG_FILE}" &>/dev/null then sed -ri "s|= .*/reshade|= \"${PW_PLUGINS_PATH}\"/reshade|g" "${VKBASALT_CONFIG_FILE}" fi - if [[ ! -z "${PW_VKBASALT_EFFECTS}" ]] && [[ ! -z "${PW_VKBASALT_FFX_CAS}" ]] ; then + if [[ -n "${PW_VKBASALT_EFFECTS}" ]] && [[ -n "${PW_VKBASALT_FFX_CAS}" ]] ; then sed -ri "s/effects = .*/effects = ${PW_VKBASALT_EFFECTS}/g" "${VKBASALT_CONFIG_FILE}" sed -ri "s/casSharpness .*/casSharpness = ${PW_VKBASALT_FFX_CAS}/g" "${VKBASALT_CONFIG_FILE}" fi @@ -1026,7 +1037,7 @@ pw_kill_autostart () { sleep 5 while true ; do if [[ -z "$(ps aux | grep -m 1 -i "$1" | grep -v grep | awk '{print $2}')" ]] \ - && [[ ! -z "$(ps aux | grep wrap | grep -v grep | grep -i "PortProton" | head -n 1)" ]] + && [[ -n "$(ps aux | grep wrap | grep -v grep | grep -i "PortProton" | head -n 1)" ]] then echo -e "PID $1 not found" sleep "${SWAIT}" @@ -1040,7 +1051,7 @@ pw_kill_autostart () { fi done - if [[ ! -z "$(ls "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/drive_c/ | grep -m 1 ".tmp")" ]] ; then + if [[ -n "$(ls "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/drive_c/ | grep -m 1 ".tmp")" ]] ; then rm -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/drive_c/*.tmp fi @@ -1087,15 +1098,15 @@ stop_portwine () { try_remove_dir "${PW_WINELIB}/var" find "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/" -maxdepth 1 -type f -name "*.tmp" -delete if [[ "$XDG_SESSION_TYPE" == "tty" ]] ; then - if [ ! -z "$(pgrep -a yad_gui_pp | grep "\--notification" | awk '{print $1}')" ] ; then + if [[ -n "$(pgrep -a yad_gui_pp | grep "\--notification" | awk '{print $1}')" ]] ; then kill -s SIGUSR1 "$(pgrep -a yad_gui_pp | grep "\--notification" | awk '{print $1}')" fi else - if [[ ! -z "$(pgrep -a tray_gui_pp)" ]] ; then + if [[ -n "$(pgrep -a tray_gui_pp)" ]] ; then kill -s SIGUSR1 $(pgrep -a tray_gui_pp) 2>/dev/null fi fi - if [[ ! -z "$(pgrep -a yad_gui_pp)" ]] ; then + if [[ -n "$(pgrep -a yad_gui_pp)" ]] ; then kill -s SIGUSR1 $(pgrep -a yad_gui_pp) 2>/dev/null fi pw_auto_create_shortcut @@ -1151,7 +1162,7 @@ pw_check_and_download_wine () { elif [[ "$PW_WINE_USE" == WINE_*_LG ]] || [[ "$PW_WINE_USE" == WINE_LG ]] then export PW_WINE_USE="${PW_WINE_LG_VER}" fi - if [ ! -d "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}" ] ; then + if [[ ! -d "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}" ]] ; then print_info "Download and install ${PW_WINE_USE}..." if try_download "github.com/Castro-Fidel/wine_builds/releases/download/${PW_WINE_USE}/${PW_WINE_USE}.tar.xz" \ "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz" ; then @@ -1176,7 +1187,7 @@ pw_check_and_download_wine () { pw_check_and_download_dxvk_and_vkd3d () { # Download stable and git version DXVK for DXVK_VAR_VER in "${DXVK_STABLE_VER}" "${DXVK_GIT_VER}" "${DXVK_LEGACY_VER}" ; do - if [ ! -d "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}" ] ; then + if [[ ! -d "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}" ]] ; then print_info "Download and install DXVK v.${DXVK_VAR_VER}" if try_download "https://github.com/Castro-Fidel/vulkan/releases/download/dxvk-${DXVK_VAR_VER}/dxvk-${DXVK_VAR_VER}.tar.xz" \ "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}.tar.xz" ; then @@ -1206,7 +1217,7 @@ pw_check_and_download_dxvk_and_vkd3d () { # Download stable and git version VKD3D for VKD3D_VAR_VER in "${VKD3D_STABLE_VER}" "${VKD3D_GIT_VER}" ; do - if [ ! -d "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}" ] ; then + if [[ ! -d "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}" ]] ; then print_info "Download and install VKD3D-PROTON v.${VKD3D_VAR_VER}" if try_download "https://github.com/Castro-Fidel/vulkan/releases/download/vkd3d-proton-${VKD3D_VAR_VER}/vkd3d-proton-${VKD3D_VAR_VER}.tar.xz" \ "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}.tar.xz" ; then @@ -1235,7 +1246,7 @@ pw_check_and_download_dxvk_and_vkd3d () { done # Download DGVOODOO2 - if [ ! -f "${PW_VULKAN_DIR}/dgvoodoo2-${DGV2_VER}/dgVoodoo.conf" ] ; then + if [[ ! -f "${PW_VULKAN_DIR}/dgvoodoo2-${DGV2_VER}/dgVoodoo.conf" ]] ; then print_info "Download and install DGVOODOO2 v.${DGV2_VER}" if try_download "https://github.com/Castro-Fidel/vulkan/releases/download/dgvoodoo2-${DGV2_VER}/dgvoodoo2-${DGV2_VER}.tar.xz" \ "${PW_VULKAN_DIR}/dgvoodoo2-${DGV2_VER}.tar.xz" @@ -1326,12 +1337,12 @@ check_dirs_and_files_in_pfx () { create_new_dir "${WINEPREFIX}/drive_c/tmp/.private/$USER/" create_new_dir "${WINEPREFIX}/drive_c/tmp/.private/steamuser/" - [ ! -d "${WINEPREFIX}/dosdevices/c:" ] && try_force_link_dir "${WINEPREFIX}/drive_c/" "${WINEPREFIX}/dosdevices/c:" - [ ! -d "${WINEPREFIX}/dosdevices/z:" ] && try_force_link_dir "/" "${WINEPREFIX}/dosdevices/z:" - [ ! -d "${WINEPREFIX}/dosdevices/h:" ] && try_force_link_dir "$HOME" "${WINEPREFIX}/dosdevices/h:" + [[ ! -d "${WINEPREFIX}/dosdevices/c:" ]] && try_force_link_dir "${WINEPREFIX}/drive_c/" "${WINEPREFIX}/dosdevices/c:" + [[ ! -d "${WINEPREFIX}/dosdevices/z:" ]] && try_force_link_dir "/" "${WINEPREFIX}/dosdevices/z:" + [[ ! -d "${WINEPREFIX}/dosdevices/h:" ]] && try_force_link_dir "$HOME" "${WINEPREFIX}/dosdevices/h:" - if [ ! -d "${WINEPREFIX}/dosdevices/s:" ] \ - && [ -d "$HOME/.local/share/Steam/steamapps/common/" ] + if [[ ! -d "${WINEPREFIX}/dosdevices/s:" ]] \ + && [[ -d "$HOME/.local/share/Steam/steamapps/common/" ]] then try_force_link_dir "$HOME/.local/share/Steam/steamapps/common/" "${WINEPREFIX}/dosdevices/s:" fi @@ -1402,7 +1413,7 @@ check_dirs_and_files_in_pfx () { } check_nvidia_rtx () { - if [[ ! -z $(echo "$LSPCI_VGA" | grep -i "nvidia") ]]; then + if [[ -n $(echo "$LSPCI_VGA" | grep -i "nvidia") ]] ; then # Turing (without nvidia 16XX) [[ "$LSPCI_VGA" == *TU[0-9]* ]] && [[ "$LSPCI_VGA" != *TU11[6-7]* ]] && return 0 # Ampere @@ -1455,7 +1466,7 @@ pw_init_db () { PORTWINE_DB_FILE="${PW_FIND_DB_FILE}" fi IFS="$orig_IFS" - + if [[ -f "${PW_FIND_DB_FILE}" ]] ; then # shellcheck source=/dev/null source "${PORTWINE_DB_FILE}" @@ -1484,7 +1495,7 @@ pw_init_db () { print_info "Use $PORTWINE_DB_FILE db file." else if [[ "${PW_DISABLED_CREATE_DB}" != 1 ]] ; then - if [[ ! -z "${PORTWINE_DB}" ]] ; then + if [[ -n "${PORTWINE_DB}" ]] ; then export PORTWINE_DB_FILE=$(grep -il "#${PORTWINE_DB}.exe" "${PORT_SCRIPTS_PATH}/portwine_db"/*) if [[ -z "${PORTWINE_DB_FILE}" ]] ; then { @@ -1495,7 +1506,7 @@ pw_init_db () { } > "${portwine_exe}".ppdb export PORTWINE_DB_FILE="${portwine_exe}".ppdb fi - if [[ ! -z $(echo "${portwine_exe}" | grep "/data/prefixes/") ]] && \ + if [[ -n $(echo "${portwine_exe}" | grep "/data/prefixes/") ]] && \ [[ -z $(echo "${portwine_exe}" | grep "/data/prefixes/DEFAULT/") ]] then PW_PREFIX_NAME=$(echo "${portwine_exe}" | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}') @@ -1507,12 +1518,12 @@ pw_init_db () { fi fi - if [[ -z "${PATH_TO_GAME}" ]] || [[ ! -d "${PATH_TO_GAME}" ]]; then + if [[ -z "${PATH_TO_GAME}" ]] || [[ ! -d "${PATH_TO_GAME}" ]] ; then PATH_TO_GAME="$( cd "$( dirname "${portwine_exe}" )" >/dev/null 2>&1 && pwd )" export PATH_TO_GAME fi - if [[ "${PW_WINE_CPU_TOPOLOGY}" == "disabled" ]] && [[ ! -z "${WINE_CPU_TOPOLOGY}" ]] ; then + if [[ "${PW_WINE_CPU_TOPOLOGY}" == "disabled" ]] && [[ -n "${WINE_CPU_TOPOLOGY}" ]] ; then export PW_WINE_CPU_TOPOLOGY="${WINE_CPU_TOPOLOGY}" fi if ls "${PATH_TO_GAME}"/*_Data/Resources/ 2>/dev/null | grep "unity" &>/dev/null \ @@ -1549,7 +1560,7 @@ pw_port_update () { ;; esac - if [ ! -f "${PORT_WINE_TMP_PATH}/scripts_ver" ] ; then + if [[ ! -f "${PORT_WINE_TMP_PATH}/scripts_ver" ]] ; then echo "2024" > "${PORT_WINE_TMP_PATH}/scripts_ver" fi scripts_install_ver=$(head -n 1 "${PORT_WINE_TMP_PATH}/scripts_ver") @@ -1575,7 +1586,7 @@ pw_port_update () { scripts_current_ver=$(grep "$BRANCH_VERSION_UPDATE" "${PORT_WINE_TMP_PATH}/curent_var_ver" | awk -F "=" '{print $2}') print_info "Scripts version in git = ${scripts_current_ver}" print_info "Scripts version local = ${scripts_install_ver}" - if [[ ! -z "${scripts_current_ver}" ]] && [[ "${scripts_current_ver}" -gt "${scripts_install_ver}" ]] ; then + if [[ -n "${scripts_current_ver}" ]] && [[ "${scripts_current_ver}" -gt "${scripts_install_ver}" ]] ; then if [[ -f "${PW_GUI_THEMES_PATH}/gui/yad_gui_pp" ]] then export pw_yad="${PW_GUI_THEMES_PATH}/gui/yad_gui_pp" elif command -v yad &>/dev/null @@ -1623,10 +1634,9 @@ pw_port_update () { try_remove_file "${PORT_WINE_TMP_PATH}/PortWINE-${BRANCH}.tar.gz" try_remove_dir "${PORT_WINE_TMP_PATH}/PortWINE-${BRANCH}/" echo "${scripts_current_ver}" > "${PORT_WINE_TMP_PATH}/scripts_ver" - echo "Restarting PP after update..." unset SKIP_CHECK_UPDATES - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + echo "Restarting PP after update..." + restart_pp fi else yad_error_download && pw_port_update || exit 1 @@ -1649,8 +1659,8 @@ update_winetricks () { print_info "Version winetricks on server: ${W_TRX_EXT_VER}" W_TRX_INT_VER="$(grep -i 'WINETRICKS_VERSION=' "${PORT_WINE_TMP_PATH}/winetricks" | sed 's/WINETRICKS_VERSION=//')" print_info "Version winetricks in port: ${W_TRX_INT_VER}" - if [[ ! -f "${PORT_WINE_TMP_PATH}/winetricks" && ! -z "$W_TRX_EXT_VER" ]] \ - || [[ "$W_TRX_INT_VER" != "$W_TRX_EXT_VER" && ! -z "$W_TRX_EXT_VER" ]] + if [[ ! -f "${PORT_WINE_TMP_PATH}/winetricks" && -n "$W_TRX_EXT_VER" ]] \ + || [[ "$W_TRX_INT_VER" != "$W_TRX_EXT_VER" && -n "$W_TRX_EXT_VER" ]] then try_remove_file "${PORT_WINE_TMP_PATH}/winetricks" if try_download "${W_TRX_URL}" "${PORT_WINE_TMP_PATH}/winetricks" no_mirror ; then @@ -1659,7 +1669,7 @@ update_winetricks () { chmod u+x "${PORT_WINE_TMP_PATH}/winetricks" fi fi - if [ -f "${PORT_WINE_TMP_PATH}/winetricks" ] ; then + if [[ -f "${PORT_WINE_TMP_PATH}/winetricks" ]] ; then sed -i 's/w_metadata vcrun2015 dlls \\/w_metadata !dont_use_2015! dlls \\/' "${PORT_WINE_TMP_PATH}/winetricks" sed -i 's/w_metadata vcrun2017 dlls \\/w_metadata !dont_use_2017! dlls \\/' "${PORT_WINE_TMP_PATH}/winetricks" sed -i 's/w_metadata vcrun2019 dlls \\/w_metadata !dont_use_2019! dlls \\/' "${PORT_WINE_TMP_PATH}/winetricks" @@ -1674,7 +1684,7 @@ edit_db_from_gui () { return 0 fi print_info "edit_db_from_gui PORTWINE_DB_FILE=$PORTWINE_DB_FILE" - if [[ ! -z "$PORTWINE_DB_FILE" ]] \ + if [[ -n "$PORTWINE_DB_FILE" ]] \ && [[ -f "$PORTWINE_DB_FILE" ]] then for mod_db in $@ ; do @@ -1728,13 +1738,13 @@ pw_create_gui_png () { if [[ -z "$PORTPROTON_NAME" ]] \ || [[ "$PW_NO_RESTART_PPDB" == "1" ]] then - if [[ ! -z "${PORTWINE_CREATE_SHORTCUT_NAME}" ]] ; then + if [[ -n "${PORTWINE_CREATE_SHORTCUT_NAME}" ]] ; then PORTPROTON_NAME="${PORTWINE_CREATE_SHORTCUT_NAME}" else if command -v exiftool &>/dev/null ; then if ! PW_PRODUCTNAME=$(timeout 3 exiftool -ProductName "${portwine_exe}" 2>/dev/null | sed -n 's/^Product Name\s*:\s*//p') ; then print_error "exiftool - broken!" - if [[ ! -z $PW_DEBUG ]] ; then + if [[ -n "$PW_DEBUG" ]] ; then debug_timer --start timeout 5 exiftool -ProductName "${portwine_exe}" debug_timer --end "exiftool" @@ -1751,7 +1761,7 @@ pw_create_gui_png () { PW_PRODUCTNAME="$(echo "$PW_PRODUCTNAME" | sed 's/Launcher\|RU//g')" fi - if [[ ! -z "$PW_PRODUCTNAME" ]] \ + if [[ -n "$PW_PRODUCTNAME" ]] \ && [[ "$PW_PRODUCTNAME" != Bootstrap* ]] then PORTPROTON_NAME="$PW_PRODUCTNAME" @@ -1769,7 +1779,7 @@ pw_create_gui_png () { PORTPROTON_NAME_PNG="${PORTPROTON_NAME// /_}" if [[ -z "${PW_ICON_FOR_YAD}" ]] ; then - if [[ ! -z "$(file "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME_PNG}.png" | grep "${PW_RESIZE_TO} x ${PW_RESIZE_TO}")" ]] ; then + if [[ -n "$(file "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME_PNG}.png" | grep "${PW_RESIZE_TO} x ${PW_RESIZE_TO}")" ]] ; then export PW_ICON_FOR_YAD="${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME_PNG}.png" else export PW_ICON_FOR_YAD="${PW_GUI_ICON_PATH}/port_proton.png" @@ -1806,20 +1816,17 @@ pw_find_exe () { YAD_STATUS="$?" if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then if [[ -z "${PW_SET_FIND_EXE}" ]] ; then - export SKIP_CHECK_UPDATES="1" - /usr/bin/env bash -c ${pw_full_command_line[*]} & print_info "Restarting..." + restart_pp fi exit 0 fi IFS="$orig_IFS" - if [[ ! -z "${PW_SET_FIND_EXE}" ]] ; then + if [[ -n "${PW_SET_FIND_EXE}" ]] ; then portwine_exe="${PW_PATH_FOR_FIND}$(echo "${PW_SET_FIND_EXE}" | awk -F'|' '{print $1}')" portwine_create_shortcut silent - export SKIP_CHECK_UPDATES="1" - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + restart_pp fi } @@ -1828,11 +1835,11 @@ pw_create_unique_exe () { if [[ -d "$BASEDIR_GAME" ]] ; then pushd "$BASEDIR_GAME" || fatal BASENAME_GAME_EXE="$(basename "$portwine_exe")" - if [[ ! -z "$1" ]] ; then + if [[ -n "$1" ]] ; then BASENAME_GAME="$(basename "$1" .exe).exe" ln -sf "$BASENAME_GAME_EXE" "$BASENAME_GAME" export portwine_exe="$BASEDIR_GAME/$BASENAME_GAME" - elif [[ ! -z "$PORTWINE_CREATE_SHORTCUT_NAME" ]] ; then + elif [[ -n "$PORTWINE_CREATE_SHORTCUT_NAME" ]] ; then ln -sf "$BASENAME_GAME_EXE" "$PORTWINE_CREATE_SHORTCUT_NAME.exe" export portwine_exe="$BASEDIR_GAME/$PORTWINE_CREATE_SHORTCUT_NAME.exe" else @@ -1843,7 +1850,7 @@ pw_create_unique_exe () { } start_portwine () { - if [[ "${PW_LOCALE_SELECT}" != "disabled" ]] && [[ ! -z "${PW_LOCALE_SELECT}" ]] ; then + if [[ "${PW_LOCALE_SELECT}" != "disabled" ]] && [[ -n "${PW_LOCALE_SELECT}" ]] ; then export LC_ALL="${PW_LOCALE_SELECT}" if [[ "${PW_USE_RUNTIME}" == "1" ]] && [[ "${HOST_LC_ALL}" != "${LC_ALL}" ]] ; then export HOST_LC_ALL="${LC_ALL}" @@ -1935,7 +1942,7 @@ start_portwine () { check_variables VKBASALT_LOG_LEVEL none check_variables DXVK_NVAPI_LOG_LEVEL none if [[ "${PW_LOG}" == 1 ]] \ - || [[ ! -z "$$PW_DEBUG" ]] + || [[ -n "$PW_DEBUG" ]] then export WINEDEBUG="fixme-all,err+loaddll,err+dll,err+file,err+reg" export WINE_MONO_TRACE="E:System.NotImplementedException" @@ -2043,7 +2050,7 @@ start_portwine () { fi if [[ "${PW_VULKAN_NO_ASYNC}" == 1 ]] ; then - export RADV_DEBUG="llvm" + export RADV_DEBUG+="llvm " var_vkd3d_config_update single_queue fi @@ -2109,7 +2116,7 @@ start_portwine () { DXVK_ENABLE_NVAPI="1" try_remove_file "${WINEPREFIX}/drive_c/windows/system32/nvngx.ini" FIND_NVNGX="$(dirname $(find /usr/* -type f -name "nvngx.dll" 2>/dev/null | head -n 1 | awk '{print $1}'))" - if [[ ! -z "$FIND_NVNGX" ]] ; then + if [[ -n "$FIND_NVNGX" ]] ; then try_copy_file_with_checksums "${FIND_NVNGX}/nvngx.dll" "${WINEPREFIX}/drive_c/windows/system32/nvngx.dll" try_copy_file_with_checksums "${FIND_NVNGX}/_nvngx.dll" "${WINEPREFIX}/drive_c/windows/system32/_nvngx.dll" else @@ -2186,7 +2193,7 @@ start_portwine () { if check_gamescope_session ; then export PW_GAMEMODERUN_SLR="" elif [[ "$PW_USE_GAMEMODE" = "1" ]] \ - && [[ ! -z "$DBUS_SESSION_BUS_ADDRESS" ]] + && [[ -n "$DBUS_SESSION_BUS_ADDRESS" ]] then if command -v gamemoded &>/dev/null ; then export GAMEMODERUN=1 @@ -2201,7 +2208,7 @@ start_portwine () { export GAMEMODERUN=1 if ! pidof gamemoded &>/dev/null ; then GAMEMODEAUTO_NAME="libgamemodeauto.so.0" - if [[ ! -z "${PW_LD_PRELOAD}" ]] + if [[ -n "${PW_LD_PRELOAD}" ]] then export PW_LD_PRELOAD="${PW_LD_PRELOAD}:${GAMEMODEAUTO_NAME}" else export PW_LD_PRELOAD="${GAMEMODEAUTO_NAME}" fi @@ -2333,15 +2340,6 @@ start_portwine () { export PW_VKBASALT="0" export PW_MANGOHUD="0" export PW_WINE_FULLSCREEN_FSR="0" - if echo "$LSPCI_VGA" | grep -i "AMD" &>/dev/null \ - && ! check_wayland_session - then - if check_gamescope_session \ - || [[ "${PW_GAMESCOPE}" = "1" ]] - then - export AMD_DEBUG="nodcc" - fi - fi ;; 4) # GALLIUM ZINK @@ -2542,8 +2540,8 @@ start_portwine () { fi [[ "${PW_DGV2_FPS_LIMIT}" != "disabled" ]] && sed -i "s/FPSLimit = 0/FPSLimit = ${PW_DGV2_FPS_LIMIT}/" "$DGV2CONF" - [[ "${PW_DGV2_BIT_DEPTH}" != "disabled" ]] && sed -i "s/DesktopBitDepth =/DesktopBitDepth = ${PW_DGV2_BIT_DEPTH}/" "$DGV2CONF" - [[ "${PW_DGV2_CURSOR_SCALE}" != "0" ]] && sed -i "s/CursorScaleFactor = 0/CursorScaleFactor = ${PW_DGV2_CURSOR_SCALE}/" "$DGV2CONF" + [[ "${PW_DGV2_BIT_DEPTH}" != "disabled" ]] && sed -i "s/DesktopBitDepth =/DesktopBitDepth = ${PW_DGV2_BIT_DEPTH}/" "$DGV2CONF" + [[ "${PW_DGV2_CURSOR_SCALE}" != "0" ]] && sed -i "s/CursorScaleFactor = 0/CursorScaleFactor = ${PW_DGV2_CURSOR_SCALE}/" "$DGV2CONF" if [[ "${PW_DGV2_RESAMPLING}" != "disabled" ]] ; then [[ "${PW_DGV2_RESAMPLING}" == "Point sampled" ]] && sed -i "s/Resampling = bilinear/Resampling = pointsampled/" "$DGV2CONF" @@ -2613,7 +2611,7 @@ start_portwine () { try_force_link_file "${WINEDIR}/lib/wine/i386-windows/${copy_wine_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${copy_wine_dll}.dll" done - if [[ ! -z "$CP_DXVK_FILES" ]] ; then + if [[ -n "$CP_DXVK_FILES" ]] ; then print_info "Try create symlink DXVK files..." for wine_dxvk_dll in $CP_DXVK_FILES ; do if [[ -f "${PATH_TO_DXVK_FILES}/x64/${wine_dxvk_dll}.dll" ]] ; then @@ -2633,7 +2631,7 @@ start_portwine () { try_force_link_file "${PATH_TO_DXVK_FILES}/x64/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvapi64.dll" fi - if [[ ! -z "$CP_VKD3D_FILES" ]] ; then + if [[ -n "$CP_VKD3D_FILES" ]] ; then print_info "Try create symlink VKD3D files..." for wine_vkd3d_dll in $CP_VKD3D_FILES ; do if [[ -f "${PATH_TO_VKD3D_FILES}/x64/${wine_vkd3d_dll}.dll" ]] ; then @@ -2654,10 +2652,10 @@ start_portwine () { unset FIND_D3D_MODULE D3D_MODULE_PATH if ! check_flatpak ; then FIND_D3D_MODULE=$(dirname $(find /usr/ -maxdepth 4 -type f -name "d3dadapter9.so.*") 2>/dev/null) - if [[ ! -z "$FIND_D3D_MODULE" ]] ; then + if [[ -n "$FIND_D3D_MODULE" ]] ; then IFS=$'\n' for D3D_MP in $FIND_D3D_MODULE ; do - if [[ ! -z "$D3D_MODULE_PATH" ]] + if [[ -n "$D3D_MODULE_PATH" ]] then export D3D_MODULE_PATH="$D3D_MODULE_PATH:/run/host${D3D_MP}" else export D3D_MODULE_PATH="/run/host${D3D_MP}" fi @@ -2718,14 +2716,14 @@ start_portwine () { fi #run_winetricks_from_db - if [[ ! -z "${PW_MUST_HAVE_DLL}" ]] + if [[ -n "${PW_MUST_HAVE_DLL}" ]] then export PW_DLL_INSTALL="$(echo "${PW_MUST_HAVE_DLL} ${PW_DLL_INSTALL}" | awk '{ for(i=1;i<=NF;i++){a[$i]++} }END{ for(i in a){printf("%s ",i)} }' )" fi - if [[ ! -z "${PW_DLL_INSTALL}" ]] ; then + if [[ -n "${PW_DLL_INSTALL}" ]] ; then export PW_DLL_NEED_INSTALL="" export USE_WT_FROM_DB=0 - if [ ! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" ] ; then + if [[ ! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" ]] ; then touch "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" fi for need_install_dll_to_pfx in ${PW_DLL_INSTALL} ; do @@ -2761,7 +2759,7 @@ start_portwine () { if [[ -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg" ]] \ && [[ -z $(grep "Windows $PW_WINDOWS_VER" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg") ]] then - if [[ ! -z "${PW_WINDOWS_VER}" ]] \ + if [[ -n "${PW_WINDOWS_VER}" ]] \ && [[ $(echo "$PW_WINDOWS_VER" | sed 's/.*/\L&/') == "xp" ]] then export PW_WINDOWS_VER="xp64" @@ -2895,8 +2893,23 @@ start_portwine () { fi # GAMESCOPE enable: - if [[ "${PW_GAMESCOPE}" == 1 ]] \ - && [[ "${GAMESCOPE_INSTALLED}" == 1 ]] \ + if [[ "${PW_GAMESCOPE}" == "1" && "${GAMESCOPE_INSTALLED}" == "1" ]] \ + || check_gamescope_session + then + export vk_xwayland_wait_ready="false" + if [[ -d /sys/bus/pci/drivers/amdgpu ]] ; then + export RADV_DEBUG+="nodcc " + export AMD_DEBUG="nodcc" + if [[ ! "$(cat "${PW_TMPFS_PATH}/vulkaninfo.tmp" | grep -i VK_EXT_image_drm_format_modifier)" ]] ; then + export R600_DEBUG="nodcc" + grep -e '--backend' "${PW_TMPFS_PATH}/gamescope.tmp" &>/dev/null && PW_GS_BACKEND_SDL="1" + fi + fi + if [[ -d /sys/bus/pci/drivers/i915 ]] ; then + export INTEL_DEBUG="norbc" + fi + fi + if [[ "${PW_GAMESCOPE}" == "1" && "${GAMESCOPE_INSTALLED}" == "1" ]] \ && ! check_gamescope_session then if [[ "${PW_GPU_USE}" != "disabled" ]] ; then @@ -2906,11 +2919,9 @@ start_portwine () { else PW_ID_VIDEO="" fi - if ! check_wayland_session ; then - export vk_xwayland_wait_ready="false" - fi + #checkbox - local PW_GAMESCOPE_ARGS_NEW="" + unset PW_GAMESCOPE_ARGS_NEW [[ "${PW_GS_FULLSCREEN}" == "1" ]] && PW_GAMESCOPE_ARGS_NEW+=" -f" [[ "${PW_GS_FORCE_FULLSCREEN}" == "1" ]] && PW_GAMESCOPE_ARGS_NEW+=" --force-windows-fullscreen" [[ "${PW_GS_BORDERLESS_WINDOW}" == "1" ]] && PW_GAMESCOPE_ARGS_NEW+=" -b" @@ -2933,12 +2944,6 @@ start_portwine () { [[ "${PW_GS_EXPOSE_WAYLAND}" == "1" ]] && PW_GAMESCOPE_ARGS_NEW+=" --expose-wayland" [[ "${PW_GS_REALTIME_SCHEDULING}" == "1" ]] && PW_GAMESCOPE_ARGS_NEW+=" --rt" - if [[ "${PW_GS_FIX_AMD_AND_INTEL}" == "1" ]] ; then - export RADV_DEBUG="nodcc" - export R600_DEBUG="nodcc" - export INTEL_DEBUG="norbc" - fi - if [[ "${PW_GS_MANGOAPP}" == "1" ]] ; then PW_GAMESCOPE_ARGS_NEW+=" --mangoapp" export PW_MANGOHUD="0" @@ -3002,7 +3007,7 @@ start_portwine () { pw_run () { unset GDK_BACKEND - if [[ ! -z "${PATH_TO_GAME}" ]] \ + if [[ -n "${PATH_TO_GAME}" ]] \ && [[ -d "${PATH_TO_GAME}" ]] then cd "${PATH_TO_GAME}" || fatal @@ -3109,7 +3114,7 @@ pw_run () { export -f pw_run pw_yad_set_form () { - if [[ $(<"${PW_TMPFS_PATH}/tmp_yad_form") != "" ]]; then + if [[ $(<"${PW_TMPFS_PATH}/tmp_yad_form") != "" ]] ; then PW_YAD_SET=$(head -n 1 "${PW_TMPFS_PATH}/tmp_yad_form" | awk '{print $1}') export PW_YAD_SET fi @@ -3117,7 +3122,7 @@ pw_yad_set_form () { pw_yad_form_vulkan () { if [[ "$(<"${PW_TMPFS_PATH}/tmp_yad_form_vulkan")" != "" ]] ; then - if [[ ! -z "${KEY_START}" ]] ; then + if [[ -n "${KEY_START}" ]] ; then YAD_FORM_VULKAN=$(sed 's/$/\;/' "${PW_TMPFS_PATH}/tmp_yad_form_vulkan") VULKAN_MOD=$(echo "${YAD_FORM_VULKAN}" | grep \;\; | awk -F";" '{print $1}') PW_WINE_VER=$(echo "${YAD_FORM_VULKAN}" | grep \;\; | awk -F";" '{print $2}') @@ -3129,7 +3134,7 @@ pw_yad_form_vulkan () { PW_WINE_VER=$(echo "${YAD_FORM_VULKAN}" | grep \;\; | awk -F";" '{print $3}') fi if [[ -z "${PW_PREFIX_NAME}" ]] \ - || [[ ! -z "$(echo "${PW_PREFIX_NAME}" | grep -E '^_.*' )" ]] + || [[ -n "$(echo "${PW_PREFIX_NAME}" | grep -E '^_.*' )" ]] then PW_PREFIX_NAME="DEFAULT" else @@ -3212,7 +3217,7 @@ yad_info () { command -v "${pw_yad}" &>/dev/null || fatal "yad not found" fi "${pw_yad}" --no-wrap --text "$@" --width=400 --height=150 --borders=15 --title "INFO" \ - --gui-type-layout=${YAD_INFO_GUI_TYPE_LAYOUT} \ + --gui-type-layout="${YAD_INFO_GUI_TYPE_LAYOUT}" \ --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --image="$PW_GUI_ICON_PATH/info.svg" \ --text-align=center --fixed \ --button="$(gettext "OK")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png" 2>/dev/null @@ -3227,7 +3232,7 @@ yad_error () { command -v "${pw_yad}" &>/dev/null || fatal "yad not found" fi "${pw_yad}" --no-wrap --text "$@" --width=400 --height=150 --borders=15 --title "ERROR" \ - --gui-type-layout=${YAD_INFO_GUI_TYPE_LAYOUT} \ + --gui-type-layout="${YAD_INFO_GUI_TYPE_LAYOUT}" \ --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --image="$PW_GUI_ICON_PATH/error.svg" \ --text-align=center --fixed \ --button="$(gettext "EXIT")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png" 2>/dev/null @@ -3241,7 +3246,7 @@ yad_error_download () { fi "${pw_yad}" --text "$(gettext "You will need to check internet connection,and\npress Repeat for repeat download")" \ --width=400 --borders=15 --title "$(gettext "Error")" \ - --gui-type-layout=${YAD_INFO_GUI_TYPE_LAYOUT} \ + --gui-type-layout="${YAD_INFO_GUI_TYPE_LAYOUT}" \ --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --image="$PW_GUI_ICON_PATH/download.svg" \ --no-wrap --text-align=center \ --button="$(gettext "SKIP")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1 \ @@ -3257,7 +3262,7 @@ yad_question () { fi "${pw_yad}" --text "${1}" --width=400 --height=150 --borders=15 --title "$(gettext "Choices")" \ --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --image="$PW_GUI_ICON_PATH/question.svg" \ - --gui-type-layout=${YAD_INFO_GUI_TYPE_LAYOUT} \ + --gui-type-layout="${YAD_INFO_GUI_TYPE_LAYOUT}" \ --no-wrap --text-align=center --fixed \ --button="$(gettext "CANCEL")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1 \ --button="$(gettext "OK")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 2>/dev/null @@ -3311,9 +3316,9 @@ pw_update_pfx_cover_gui () { PW_GIF_SIZE_Y=$(file "${PW_GIF_FILE}" | awk '{print $9 + 65}') echo "UPDATE PREFIX..." > "${PW_TMPFS_PATH}/update_pfx_log" export PW_TIMER=0 - while read -r line || [[ ! -z $(pgrep -a yad | grep "yad_gui_pp --notebook --key=$PW_KEY_PROGRESS_BAR_UP" | awk '{print $1}') ]] ; do + while read -r line || [[ -n $(pgrep -a yad | grep "yad_gui_pp --notebook --key=$PW_KEY_PROGRESS_BAR_UP" | awk '{print $1}') ]] ; do sleep 0.005 - if [[ ! -z "${line}" ]] && [[ -z "$(echo "${line}" | grep -i "gstreamer")" ]] \ + if [[ -n "${line}" ]] && [[ -z "$(echo "${line}" | grep -i "gstreamer")" ]] \ && [[ -z "$(echo "${line}" | grep -i "kerberos")" ]] \ && [[ -z "$(echo "${line}" | grep -i "ntlm")" ]] then @@ -3407,16 +3412,10 @@ open_changelog () { --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \ --filename="${PORT_WINE_PATH}/data/${PW_CHANGELOG_FILE}" &>/dev/null YAD_STATUS="$?" + if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] && [[ -z "$WINEPREFIX" ]] ; then - export SKIP_CHECK_UPDATES="1" - if [[ -z "${PW_ALL_DF}" ]] ; then - export TAB_MAIN_MENU="4" - else - export TAB_MAIN_MENU="5" - fi - /usr/bin/env bash -c ${pw_full_command_line[*]} & print_info "Restarting..." - exit 0 + restart_pp else exit 0 fi @@ -3425,11 +3424,11 @@ export -f open_changelog pw_tray_icon () { if [[ "$XDG_SESSION_TYPE" == "tty" ]] ; then - if [ ! -z "$(pgrep -a yad_gui_pp | grep "\--notification" | awk '{print $1}')" ] ; then + if [[ -n "$(pgrep -a yad_gui_pp | grep "\--notification" | awk '{print $1}')" ]] ; then kill -s SIGUSR1 "$(pgrep -a yad_gui_pp | grep "\--notification" | awk '{print $1}')" fi else - if [[ ! -z "$(pgrep -a tray_gui_pp)" ]] ; then + if [[ -n "$(pgrep -a tray_gui_pp)" ]] ; then kill -s SIGUSR1 $(pgrep -a tray_gui_pp) 2>/dev/null fi fi @@ -3463,7 +3462,7 @@ pw_tray_icon () { $(gettext "WINEFILE")!bash -c pw_tray_winefile!"$PW_GUI_ICON_PATH/wine_file.svg"|| \ $(gettext "TASKMGR")!bash -c pw_tray_taskmgr!"$PW_GUI_ICON_PATH/wine_system.svg"|| \ $(gettext "CHANGELOG")!bash -c open_changelog!"$PW_GUI_ICON_PATH/history.svg"|| \ - $(gettext "FORCE EXIT") !bash -c tray_icon_click_exit!"$PW_GUI_ICON_PATH/close.svg"||" 2>/dev/null & + $(gettext "FORCE EXIT")!bash -c tray_icon_click_exit!"$PW_GUI_ICON_PATH/close.svg"||" 2>/dev/null & else PW_GUI_TRAY_PATH="${PW_GUI_THEMES_PATH}/tray" env LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" "${PW_GUI_TRAY_PATH}/tray_gui_pp" & @@ -3486,7 +3485,7 @@ gui_proton_downloader () { then PW_WINE_USE="${PW_PROTON_LG_VER}" elif [[ "$PW_WINE_USE" == WINE_*_LG ]] || [[ "$PW_WINE_USE" == WINE_LG ]] then PW_WINE_USE="${PW_WINE_LG_VER}" - elif [[ "$1" == "silent" ]] && [[ ! -z "$2" ]] + elif [[ "$1" == "silent" ]] && [[ -n "$2" ]] then PW_WINE_USE="$2" fi export PW_WINE_USE @@ -3500,7 +3499,7 @@ gui_proton_downloader () { # PROTON_GE export PROTON_GE_GIT=($(curl -s "https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases" | grep "browser_download_url.*\.tar\.gz" | cut -d \" -f 4)) - if [[ ! -z "${PROTON_GE_GIT}" ]] ; then + if [[ -n "${PROTON_GE_GIT}" ]] ; then for PGEGIT in ${PROTON_GE_GIT[@]} ; do echo ${PGEGIT} | awk -F/ '{print $NF}' | sed 's/.tar.gz//' >> "${PW_TMPFS_PATH}/tmp_proton_ge_git" done @@ -3511,7 +3510,7 @@ gui_proton_downloader () { # WINE_KRON4EK export WINE_KRON4EK=($(curl -s "https://api.github.com/repos/Kron4ek/Wine-Builds/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4)) - if [[ ! -z "${WINE_KRON4EK}" ]] ; then + if [[ -n "${WINE_KRON4EK}" ]] ; then for PGEGIT in ${WINE_KRON4EK[@]} ; do echo ${PGEGIT} | awk -F/ '{print $NF}' | sed 's/.tar.xz//' >> "${PW_TMPFS_PATH}/tmp_wine_kron4ek_git" done @@ -3522,7 +3521,7 @@ gui_proton_downloader () { # WINE_GE_CUSTOM export WINE_GE_CUSTOM=($(curl -s "https://api.github.com/repos/GloriousEggroll/wine-ge-custom/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4)) - if [[ ! -z "${WINE_GE_CUSTOM}" ]] ; then + if [[ -n "${WINE_GE_CUSTOM}" ]] ; then for PGEGIT in ${WINE_GE_CUSTOM[@]} ; do echo ${PGEGIT} | awk -F/ '{print $NF}' | sed 's/.tar.xz//' >> "${PW_TMPFS_PATH}/tmp_wine_ge_custom_git" done @@ -3532,7 +3531,7 @@ gui_proton_downloader () { # PROTON_LG export PROTON_PW_GIT=($(curl -s "https://api.github.com/repos/Castro-Fidel/wine_builds/releases" | grep "browser_download_url.*\.tar\.xz" | cut -d \" -f 4 | sort -r)) - if [[ ! -z "${PROTON_PW_GIT}" ]] ; then + if [[ -n "${PROTON_PW_GIT}" ]] ; then for PPWGIT in ${PROTON_PW_GIT[@]} ; do echo ${PPWGIT} | awk -F/ '{print $NF}' | sed 's/.tar.xz//' >> "${PW_TMPFS_PATH}/tmp_proton_pw_git" done @@ -3544,9 +3543,7 @@ gui_proton_downloader () { if [[ -z "${PROTON_PW_GIT}" ]] ; then yad_error "$(gettext "Error: check wine.")" - export SKIP_CHECK_UPDATES="1" - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + restart_pp fi pushd "${PORT_WINE_PATH}/data/dist/" || fatal @@ -3571,7 +3568,7 @@ gui_proton_downloader () { export KEY_WINE=$RANDOM "${pw_yad}" --plug=$KEY_WINE --tabnum=1 --list --checklist --separator="" \ - --gui-type-layout=${WINE_DOWNLOAD_GUI_TYPE_LAYOUT} --gui-type-text=${WINE_DOWNLOAD_GUI_TYPE_TEXT} \ + --gui-type-layout="${NOTEBOOK_GUI_TYPE_LAYOUT}" --gui-type-text="${NOTEBOOK_GUI_TYPE_TEXT}" \ --column "$(gettext "Set")" \ --column "$(gettext "Select WINE for download:")" \ $TMP_PROTON_PW_GIT \ @@ -3579,7 +3576,7 @@ gui_proton_downloader () { 2>/dev/null & "${pw_yad}" --plug=$KEY_WINE --tabnum=2 --list --checklist --separator="" \ - --gui-type-layout=${WINE_DOWNLOAD_GUI_TYPE_LAYOUT} --gui-type-text=${WINE_DOWNLOAD_GUI_TYPE_TEXT} \ + --gui-type-layout="${NOTEBOOK_GUI_TYPE_LAYOUT}" --gui-type-text="${NOTEBOOK_GUI_TYPE_TEXT}" \ --column "$(gettext "Set")" \ --column "$(gettext "Select WINE for download:")" \ $TMP_PROTON_KR_GIT \ @@ -3587,7 +3584,7 @@ gui_proton_downloader () { 2>/dev/null & "${pw_yad}" --plug=$KEY_WINE --tabnum=3 --list --checklist --separator="" \ - --gui-type-layout=${WINE_DOWNLOAD_GUI_TYPE_LAYOUT} --gui-type-text=${WINE_DOWNLOAD_GUI_TYPE_TEXT} \ + --gui-type-layout="${NOTEBOOK_GUI_TYPE_LAYOUT}" --gui-type-text="${NOTEBOOK_GUI_TYPE_TEXT}" \ --column "$(gettext "Set")" \ --column "$(gettext "Select WINE for download:")" \ $TMP_PROTON_GE_GIT \ @@ -3595,7 +3592,7 @@ gui_proton_downloader () { 2>/dev/null & "${pw_yad}" --plug=$KEY_WINE --tabnum=4 --list --checklist --separator="" \ - --gui-type-layout=${WINE_DOWNLOAD_GUI_TYPE_LAYOUT} --gui-type-text=${WINE_DOWNLOAD_GUI_TYPE_TEXT} \ + --gui-type-layout="${NOTEBOOK_GUI_TYPE_LAYOUT}" --gui-type-text="${NOTEBOOK_GUI_TYPE_TEXT}" \ --column "$(gettext "Set")" \ --column "$(gettext "Select WINE for download:")" \ $TMP_PROTON_CU_GIT \ @@ -3603,7 +3600,7 @@ gui_proton_downloader () { 2>/dev/null & "${pw_yad}" --plug=$KEY_WINE --tabnum=5 --list --checklist --separator="" \ - --gui-type-layout=${WINE_DOWNLOAD_GUI_TYPE_LAYOUT} --gui-type-text=${WINE_DOWNLOAD_GUI_TYPE_TEXT} \ + --gui-type-layout="${NOTEBOOK_GUI_TYPE_LAYOUT}" --gui-type-text="${NOTEBOOK_GUI_TYPE_TEXT}" \ --column "$(gettext "Set")" \ --column "$(gettext "Select installed WINE for delete:")" \ $TMP_INSTALLED_WINE \ @@ -3623,14 +3620,12 @@ gui_proton_downloader () { --button="$(gettext "OK")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":0 2>/dev/null YAD_WINE_STATUS="$?" if [[ "$YAD_WINE_STATUS" == "1" || "$YAD_WINE_STATUS" == "252" ]] ; then - export SKIP_CHECK_UPDATES="1" - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + restart_pp fi - if [[ ! -z $(<"${PW_TMPFS_PATH}/tmp_set_wine") ]] ; then + if [[ -n $(<"${PW_TMPFS_PATH}/tmp_set_wine") ]] ; then VERSION_WINE_GIT="$(sed 's/TRUE//' "${PW_TMPFS_PATH}/tmp_set_wine")" fi - if [[ ! -z $(<"${PW_TMPFS_PATH}/tmp_installed_wine_set") ]] ; then + if [[ -n $(<"${PW_TMPFS_PATH}/tmp_installed_wine_set") ]] ; then VERSION_INSTALLED_WINE="$(sed 's/TRUE//' "${PW_TMPFS_PATH}/tmp_installed_wine_set")" fi @@ -3638,12 +3633,10 @@ gui_proton_downloader () { && [[ -z "${VERSION_INSTALLED_WINE}" ]] then print_info "Nothing to do." - export SKIP_CHECK_UPDATES="1" - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + restart_pp fi - elif [[ "$1" == "silent" ]] && [[ ! -z "$2" ]] ; then + elif [[ "$1" == "silent" ]] && [[ -n "$2" ]] ; then VERSION_WINE_GIT="$2" fi @@ -3653,7 +3646,7 @@ gui_proton_downloader () { if try_download "${URL_VERSION_PROTON_GIT}" "${PORT_WINE_PATH}/data/tmp/$FILENAME" ; then if unpack "${PORT_WINE_PATH}/data/tmp/${FILENAME}" "${PORT_WINE_PATH}/data/dist/" ; then try_remove_file "${PORT_WINE_PATH}/data/tmp/${FILENAME}" - if [ ! -z "${portwine_exe}" ]; then + if [[ -n "${portwine_exe}" ]] ; then PW_WINE_USE="$(echo "${VERSION_WINE_GIT}" | tr [[:lower:]] [[:upper:]])" edit_db_from_gui PW_WINE_USE fi @@ -3677,14 +3670,12 @@ gui_proton_downloader () { fi } - if [[ ! -z "${VERSION_INSTALLED_WINE}" ]] ; then + if [[ -n "${VERSION_INSTALLED_WINE}" ]] ; then for REMOVE_WINE in ${VERSION_INSTALLED_WINE} ; do try_remove_dir "${PORT_WINE_PATH}/data/dist/${REMOVE_WINE}" done if [[ -z "${VERSION_WINE_GIT}" ]] ; then - export SKIP_CHECK_UPDATES="1" - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + restart_pp fi fi @@ -3692,21 +3683,19 @@ gui_proton_downloader () { if [[ "$1" != "silent" ]] ; then for GIVE_ALL_WINE in ${VERSION_WINE_GIT} ; do for GIVE_WINE_URL in ${WINE_GE_CUSTOM[@]} ${PROTON_GE_GIT[@]} ${WINE_KRON4EK[@]} ${PROTON_PW_GIT[@]} ; do - if [ ! -z $(echo ${GIVE_WINE_URL} | grep -i "${GIVE_ALL_WINE}") ] ; then + if [[ -n $(echo ${GIVE_WINE_URL} | grep -i "${GIVE_ALL_WINE}") ]] ; then export URL_VERSION_PROTON_GIT="${GIVE_WINE_URL}" fi done pw_download_get_wine done - export SKIP_CHECK_UPDATES="1" edit_db_from_gui - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + restart_pp else # init_wine_ver print_error "$PW_WINE_USE" for GIVE_WINE_URL in ${WINE_GE_CUSTOM[@]} ${PROTON_GE_GIT[@]} ${WINE_KRON4EK[@]} ${PROTON_PW_GIT[@]} ; do - if [ ! -z $(echo ${GIVE_WINE_URL} | grep -i "${PW_WINE_USE}") ] ; then + if [[ -n $(echo ${GIVE_WINE_URL} | grep -i "${PW_WINE_USE}") ]] ; then export URL_VERSION_PROTON_GIT="${GIVE_WINE_URL}" fi done @@ -3739,7 +3728,7 @@ gui_edit_db () { # PW_FORCE_USE_VSYNC PW_HEAP_DELAY_FREE -if [[ "${SKIP_EDIT_DB_TEXT_INFO}" != 1 ]] ; then +if [[ "${SKIP_EDIT_DB_TEXT_INFO}" != "1" ]] ; then export PW_DGVOODOO2_INFO=$(gettext 'Enable dgVoodoo2. Forced use all dgVoodoo2 libs (Glide 2.11-3.1, DirectDraw 1-7, Direct3D 2-9) on all 3D API. For WineD3D OpenGL need use WineLG (For Gallium Nine and Zink use too)') export PW_DINPUT_PROTOCOL_INFO=$(gettext 'Force use DirectInput protocol instead of XInput') export PW_USE_NATIVE_WAYLAND_INFO=$(gettext 'Enable experemental native Wayland support (need special wine build to work)') @@ -3788,7 +3777,7 @@ if [[ "${SKIP_EDIT_DB_TEXT_INFO}" != 1 ]] ; then Super + G : Toggle keyboard grab Super + C : Update clipboard') - export SKIP_EDIT_DB_TEXT_INFO=1 + export SKIP_EDIT_DB_TEXT_INFO="1" fi case "${PW_VULKAN_USE}" in @@ -3819,7 +3808,7 @@ fi unset ADD_CHK_BOX_EDIT_DB for int_to_boole in ${PW_EDIT_DB_LIST} ; do - if [ "${!int_to_boole}" == "1" ] + if [[ "${!int_to_boole}" == "1" ]] then export ${int_to_boole}="TRUE" else export ${int_to_boole}="FALSE" fi @@ -3844,22 +3833,6 @@ fi *) ADD_WINVER_EDIT_DB="11!10!7!XP" ;; esac - if [[ ! -z "${PW_SOUND_DRIVER_USE}" ]] \ - && [[ "${PW_SOUND_DRIVER_USE}" != "disabled" ]] - then - SOUND_DRIVER_VAR="${PW_SOUND_DRIVER_USE}" - else - SOUND_DRIVER_VAR="disabled" - fi - - if [[ ! -z "${PW_GPU_USE}" ]] \ - && [[ "${PW_GPU_USE}" != "disabled" ]] - then - GPU_VAR="${PW_GPU_USE}" - else - GPU_VAR="disabled" - fi - if [[ "${PW_WINE_CPU_TOPOLOGY}" == *[0-9]:* ]] \ && [[ "${PW_WINE_CPU_TOPOLOGY}" != "disabled" ]] then @@ -3885,18 +3858,16 @@ A brief instruction: --field="$(gettext "ADD ARGUMENTS FOR .EXE FILE")!$(gettext "Adding an argument after the .exe file, just like you would add an argument in a shortcut on a WINDOWS system") :CBE" "$(combobox_fix --empty "\\${LAUNCH_PARAMETERS[@]}" "-dx11 -skipintro 1")" \ --field=":LBLH" "" \ --field="$(gettext "Limit the use of processor cores")!$(gettext "Limiting the number of CPU cores is useful for Unity games (It is recommended to set the value equal to 8)") :CB" "$(combobox_fix --disabled "${CPU_LIMIT_VAR}" "${GET_LOGICAL_CORE}")" \ - --field="$(gettext "Choose a graphics card to run the game (in user.conf)")!$(gettext "Select which video card will be used to run the game (used for all running games and programs in PortProton)") :CB" "$(combobox_fix --disabled "${GPU_VAR}" "${GET_GPU_NAMES}")" \ --field="$(gettext "Forcibly select the OpenGL version for the game")!$(gettext "You can select the required OpenGL version, some games require a forced Compatibility Profile (COMPAT). (Examples are in the drop-down list)") :CB" "$(combobox_fix --disabled "${PW_MESA_GL_VERSION_OVERRIDE}" "4.6COMPAT!4.6!4.5COMPAT!4.5!3.3COMPAT!3.3")" \ --field="$(gettext "Forcibly select the VKD3D feature level")!$(gettext "You can set a forced feature level VKD3D for games on DirectX12") :${VKD3D_CB}" "$(combobox_fix --disabled "${PW_VKD3D_FEATURE_LEVEL}" "12_2!12_1!12_0!11_1!11_0")" \ --field="$(gettext "Force certain locale for an app:")!$(gettext "Fixes encoding issues in legacy software") :CB" "$(combobox_fix --disabled "${PW_LOCALE_SELECT}" "$LOCALE_LIST")" \ - --field="$(gettext "Choice wine audio driver")!$(gettext "Fixes sound popling if choice alsa") :CB" "$(combobox_fix --disabled "${SOUND_DRIVER_VAR}" "alsa!oss!pulse")" \ 1> "${PW_TMPFS_PATH}/tmp_output_yad_fps_limit" 2>/dev/null & "${pw_yad}" --notebook --key="$KEY_EDIT_DB_GUI" --title "$(gettext "EDIT DB")" --text-align=center \ --text "$(gettext "Change settings in database file for") ${PORTWINE_DB}\n $(gettext "NOTE: To display help for each item, simply hover your mouse over the text")" \ --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --separator=" " --expand \ --gui-type="settings-base" \ - --gui-type-text=${SETTINGS_BASE_GUI_TYPE_TEXT} --gui-type-layout=${SETTINGS_BASE_GUI_TYPE_LAYOUT} \ + --gui-type-text="${NOTEBOOK_GUI_TYPE_TEXT}" --gui-type-layout="${NOTEBOOK_GUI_TYPE_LAYOUT}" \ --tab="$(gettext "MAIN")"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" \ --tab="$(gettext "ADVANCED")"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" \ --button="$(gettext "CANCEL THE CHANGES")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Cancel the current changes and return to the previous menu")":1 \ @@ -3904,25 +3875,25 @@ A brief instruction: --button="$(gettext "OPEN THE SETTINGS FILE")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Open the .ppdb settings file in a system text editor to view and change variables manually")":150 \ --button="$(gettext "SAVE CHANGES")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Save the current changes, and go to the previous menu")":0 2>/dev/null YAD_STATUS="$?" - export SKIP_CHECK_UPDATES="1" case "$YAD_STATUS" in 1|252) - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 - ;; - 2) - try_remove_file "$portwine_exe".ppdb - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 - ;; + restart_pp + ;; + 2) + try_remove_file "$portwine_exe".ppdb + restart_pp + ;; + 150) + gui_edit_db_file + ;; esac output_yad_edit_db=($(<"${PW_TMPFS_PATH}/tmp_output_yad_edit_db")) bool_from_yad=0 for boole_to_int in ${PW_EDIT_DB_LIST} ; do export ${boole_to_int}=${output_yad_edit_db[$bool_from_yad]} - if [ "${!boole_to_int}" == "TRUE" ] + if [[ "${!boole_to_int}" == "TRUE" ]] then export ${boole_to_int}="1" else export ${boole_to_int}="0" fi @@ -3936,11 +3907,9 @@ A brief instruction: WINEDLLOVERRIDES="$(echo ${PW_ADD_SETTINGS} | awk -F"%" '{print $3}')" LAUNCH_PARAMETERS="$(echo ${PW_ADD_SETTINGS} | awk -F"%" '{print $5}')" CPU_LIMIT="$(echo ${PW_ADD_SETTINGS} | awk -F"%" '{print $7}')" - PW_GPU_USE="$(echo ${PW_ADD_SETTINGS} | awk -F"%" '{print $8}')" - PW_MESA_GL_VERSION_OVERRIDE="$(echo ${PW_ADD_SETTINGS} | awk -F"%" '{print $9}')" - PW_VKD3D_FEATURE_LEVEL="$(echo ${PW_ADD_SETTINGS} | awk -F"%" '{print $10}')" - PW_LOCALE_SELECT="$(echo ${PW_ADD_SETTINGS} | awk -F"%" '{print $11}')" - PW_SOUND_DRIVER_USE="$(echo ${PW_ADD_SETTINGS} | awk -F"%" '{print $12}')" + PW_MESA_GL_VERSION_OVERRIDE="$(echo ${PW_ADD_SETTINGS} | awk -F"%" '{print $8}')" + PW_VKD3D_FEATURE_LEVEL="$(echo ${PW_ADD_SETTINGS} | awk -F"%" '{print $9}')" + PW_LOCALE_SELECT="$(echo ${PW_ADD_SETTINGS} | awk -F"%" '{print $10}')" if [[ "${CPU_LIMIT}" != "disabled" ]] ; then export PW_WINE_CPU_TOPOLOGY="${CPU_LIMIT}:$(seq -s, 0 $((${CPU_LIMIT} - 1)))" @@ -3955,26 +3924,18 @@ A brief instruction: MONITOR_HEIGHT="$(echo "$PW_SCREEN_RESOLUTION" | awk -F'x' '{print $2}')" MH_FONT_SIZE="font_size=$(( MONITOR_HEIGHT / 45 ))" - if [[ ! -z "$MH_FONT_SIZE" ]] + if [[ -n "$MH_FONT_SIZE" ]] then MANGOHUD_CONFIG="$DEFAULT_MANGOHUD_CONFIG,$MH_FONT_SIZE" else MANGOHUD_CONFIG="$DEFAULT_MANGOHUD_CONFIG" fi edit_db_from_gui MANGOHUD_CONFIG fi - edit_user_conf_from_gui PW_GPU_USE PW_SOUND_DRIVER_USE - case "$YAD_STATUS" in - 0) - print_info "Restarting PP after update ppdb file..." - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 - ;; - 150) - print_info "Restarting PP after update ppdb file..." - gui_edit_db_file - ;; - esac + if [[ "$YAD_STATUS" == "0" ]] ; then + print_info "Restarting PP after update ppdb file..." + restart_pp + fi } # GUI VKBASALT @@ -3984,7 +3945,7 @@ gui_vkbasalt () { LIST_FX=($(grep -E '.fx$|.fxh$' "${FILE_VKBASALT_CONF}" | awk '{print $1}')) GET_FX_IN_FILE=($(echo ${PW_VKBASALT_EFFECTS} | sed s/"cas:"// | sed s/":"/" "/g)) -if [[ "${SKIP_VKBASALT_TEXT_INFO}" != 1 ]] ; then +if [[ "${SKIP_VKBASALT_TEXT_INFO}" != "1" ]] ; then export PW_3DFX_INFO=$(gettext 'Simulation of an old 3dfx graphics accelerator (adds horizontal stripes)') export PW_AdaptiveSharpen_INFO=$(gettext 'Sharpness increase, can be used with CAS') export PW_Bloom_INFO=$(gettext 'Adds glow from bright light sources in the game') @@ -4041,7 +4002,7 @@ if [[ "${SKIP_VKBASALT_TEXT_INFO}" != 1 ]] ; then export PW_StageDepth_INFO=$(gettext 'Allows you to add new elements to the 3d space inside the game and apply custom textures') export PW_PPFX_Bloom_INFO=$(gettext 'Adds a Bloom effect') - export SKIP_VKBASALT_TEXT_INFO=1 + export SKIP_VKBASALT_TEXT_INFO="1" fi unset ADD_GUI_FX GUI_FX_RESULT @@ -4053,7 +4014,7 @@ fi ADD_GUI_FX+="--field=${CHKBOX_SPACE}${add_list_fx}!${!PW_VKBASALT_GUI_HELP}:${THEME_CHKBOX}%FALSE%" fi done - if [[ ! -z "${PW_VKBASALT_FFX_CAS}" ]] ; then + if [[ -n "${PW_VKBASALT_FFX_CAS}" ]] ; then if [[ "$PW_VKBASALT_FFX_CAS" == "0" ]] \ || [[ "$PW_VKBASALT_FFX_CAS" == "-1" ]] then export VKBASALT_FFX_CAS_GUI="0" @@ -4069,12 +4030,12 @@ fi IFS="%" "${pw_yad}" --plug=$KEY_FX_GUI --tabnum="1" --form --columns=4 --separator=" " \ --text-align=center --text="$(gettext "VkBasalt settings for adding effects to games running under Vulkan. (The HOME key disables vkbasalt)\nNOTE: To display help for each item, simply hover over the text")" \ - --gui-type-text=${VKBASALT_GUI_TYPE_TEXT_UP} --gui-type-layout=${VKBASALT_GUI_TYPE_LAYOUT_UP} \ + --gui-type-text="${PANED_GUI_TYPE_TEXT_UP}" --gui-type-layout="${PANED_GUI_TYPE_LAYOUT_UP}" \ ${ADD_GUI_FX} 1> "${PW_TMPFS_PATH}/tmp_yad_basalt_set" 2>/dev/null & IFS="$orig_IFS" "${pw_yad}" --plug=$KEY_FX_GUI --tabnum="2" --separator=" " --form \ - --gui-type-layout=${VKBASALT_GUI_TYPE_LAYOUT_DOWN} \ + --gui-type-layout="${PANED_GUI_TYPE_LAYOUT_DOWN}" \ --field="AMD FidelityFX - Contrast Adaptive Sharpening"!"$(gettext "AMD FidelityFX - CAS is designed to dramatically improve texture sharpness without additional modification settings for games, with minimal loss of performance. (For older games it is recommended to set value = 100)")":SCL "${VKBASALT_FFX_CAS_GUI}" \ 1> "${PW_TMPFS_PATH}/tmp_yad_cas_set" 2>/dev/null & @@ -4082,18 +4043,25 @@ fi --gui-type="settings-paned" \ --separator=" " --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \ --button="$(gettext "CANCEL THE CHANGES")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Cancel the current changes and return to the previous menu")":1 \ + --button="$(gettext "RESET") VKBASALT"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Restore default settings for") vkBasalt":178 \ --button="$(gettext "DISABLE") VKBASALT"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Disable vkBasalt and go to the previous menu")":180 \ --button="$(gettext "SAVE CHANGES")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Save the current changes, and go to the previous menu")":182 2>/dev/null YAD_VKBASALT_STATUS="$?" + case "${YAD_VKBASALT_STATUS}" in 1|252) - export SKIP_CHECK_UPDATES="1" - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 ;; + restart_pp + ;; + 178) + sed -i '/VKBASALT/d' "$portwine_exe".ppdb + restart_pp + ;; 180) - export PW_VKBASALT=0 ;; + export PW_VKBASALT="0" + ;; 182) - export PW_VKBASALT=1 ;; + export PW_VKBASALT="1" + ;; esac YAD_BASALT_SET=$(<"${PW_TMPFS_PATH}/tmp_yad_basalt_set") YAD_CAS_SET=$(cat "${PW_TMPFS_PATH}/tmp_yad_cas_set" | sed s/" "//g) @@ -4116,10 +4084,9 @@ fi then export PW_VKBASALT_FFX_CAS="0.0$YAD_CAS_SET" else export PW_VKBASALT_FFX_CAS="0.$YAD_CAS_SET" fi + edit_db_from_gui PW_VKBASALT_EFFECTS PW_VKBASALT_FFX_CAS PW_VKBASALT - export SKIP_CHECK_UPDATES="1" - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + restart_pp } # GUI MANGOHUD @@ -4137,7 +4104,7 @@ gui_mangohud () { time version vkbasalt vram vulkan_driver wine ) -if [[ "${SKIP_MANGOHUD_TEXT_INFO}" != 1 ]] ; then +if [[ "${SKIP_MANGOHUD_TEXT_INFO}" != "1" ]] ; then export PW_MH_arch_INFO=$(gettext 'Show if the application is 32- or 64-bit') export PW_MH_battery_INFO=$(gettext 'Display current battery percent and energy consumption') export PW_MH_battery_icon_INFO=$(gettext 'Display battery icon instead of percent') @@ -4193,7 +4160,7 @@ if [[ "${SKIP_MANGOHUD_TEXT_INFO}" != 1 ]] ; then export PW_MH_frametime_INFO=$(gettext 'Display frametime next to FPS text') export PW_MH_wine_INFO=$(gettext 'Show current Wine or Proton version in use') - export SKIP_MANGOHUD_TEXT_INFO=1 + export SKIP_MANGOHUD_TEXT_INFO="1" fi unset ADD_GUI_MH GUI_MH_RESULT ADD_GUI_MH_FPS GUI_MH_FPS_RESULT PW_FPS_LIMIT_VAR PW_MANGOHUD_CONFIG @@ -4202,13 +4169,13 @@ fi GET_REFRESH_RATE=(30 40 45 48 60 75 90 120 144 165 175 240) - if [ ! -z "$MANGOHUD_CONFIG" ]; then + if [[ -n "$MANGOHUD_CONFIG" ]] ; then PW_MANGOHUD_CONFIG=($(echo "$MANGOHUD_CONFIG" | tr ',' '\n' | grep -v '=')) else PW_MANGOHUD_CONFIG=($(echo "$DEFAULT_MANGOHUD_CONFIG" | tr ',' '\n' | grep -v '=')) fi - if [ ! -z "$FPS_LIMIT" ] ; then + if [[ -n "$FPS_LIMIT" ]] ; then PW_FPS_LIMIT_VAR=($(echo "$FPS_LIMIT" | tr '' '\n' | grep -v '=')) fi @@ -4232,11 +4199,11 @@ fi IFS="%" "${pw_yad}" --plug=$KEY_MH_GUI --tabnum="1" --form --columns=5 --separator=" " --text-align=center \ --text="$(gettext "MangoHud settings (Keys R_SHIFT + F12 disable MangoHud)\nnote: To display help for each item, just hover the mouse cursor over the text.")" \ - --gui-type-text=${MANGOHUD_GUI_TYPE_TEXT_UP} --gui-type-layout=${MANGOHUD_GUI_TYPE_LAYOUT_UP} \ + --gui-type-text="${PANED_GUI_TYPE_TEXT_UP}" --gui-type-layout="${PANED_GUI_TYPE_LAYOUT_UP}" \ ${ADD_GUI_MH} 1> "${PW_TMPFS_PATH}/tmp_yad_mh_set" 2>/dev/null & "${pw_yad}" --plug=$KEY_MH_GUI --tabnum="2" --form --columns=10 --separator=" " --text-align=center \ --text="$(gettext "Enabling fps limitation with MANGOHUD tools built into PortProton (Keys L_SHIFT + F1 Toggles fps limitation)")" \ - --gui-type-text=${MANGOHUD_GUI_TYPE_TEXT_DOWN} --gui-type-layout=${MANGOHUD_GUI_TYPE_LAYOUT_DOWN} \ + --gui-type-text="${PANED_GUI_TYPE_TEXT_DOWN}" --gui-type-layout="${PANED_GUI_TYPE_LAYOUT_DOWN}" \ ${ADD_GUI_MH_FPS} 1> "${PW_TMPFS_PATH}/tmp_yad_mh_fps_limit" 2>/dev/null & IFS="$orig_IFS" @@ -4244,26 +4211,26 @@ fi --separator=" " --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --sensitive \ --gui-type="settings-paned" \ --button="$(gettext "CANCEL THE CHANGES")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Cancel the current changes and return to the previous menu")":1 \ - --button="$(gettext "DISABLE") MANGOHUD"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Disable MangoHud and go to the previous menu")":182 \ + --button="$(gettext "RESET") MANGOHUD"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Restore default settings for") MangoHud":180 \ --button="$(gettext "PREVIEW CHANGES")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Start vkcube for preview changes")":184 \ + --button="$(gettext "DISABLE") MANGOHUD"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Disable MangoHud and go to the previous menu")":182 \ --button="$(gettext "SAVE CHANGES")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Save the current changes, and go to the previous menu")":186 2>/dev/null - YAD_MANGOHUD_STATUS="$?" + case "${YAD_MANGOHUD_STATUS}" in 1|252) - export SKIP_CHECK_UPDATES="1" - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + restart_pp + ;; + 180) + sed -i '/FPS_LIMIT/d' "$portwine_exe".ppdb + sed -i '/MANGOHUD/d' "$portwine_exe".ppdb + restart_pp ;; 182) - export PW_MANGOHUD=0 - edit_db_from_gui PW_MANGOHUD FPS_LIMIT - export SKIP_CHECK_UPDATES="1" - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + export PW_MANGOHUD="0" ;; 186) - export PW_MANGOHUD=1 + export PW_MANGOHUD="1" ;; esac @@ -4271,7 +4238,7 @@ fi YAD_MH_FPS_LIMIT=$(<"${PW_TMPFS_PATH}/tmp_yad_mh_fps_limit") MONITOR_HEIGHT="$(echo $PW_SCREEN_RESOLUTION | awk -F'x' '{print $2}')" - if [[ ! -z "$MONITOR_HEIGHT" ]] + if [[ -n "$MONITOR_HEIGHT" ]] then MH_FONT_SIZE="font_size=$(( MONITOR_HEIGHT / 45 ))" fi @@ -4292,7 +4259,7 @@ fi done GUI_MH_FPS_RESULT="${GUI_MH_FPS_RESULT}" - if [ "$(echo "${GUI_MH_FPS_RESULT}" | awk -F'+' '{print $2}')" ] ; then + if [[ "$(echo "${GUI_MH_FPS_RESULT}" | awk -F'+' '{print $2}')" ]] ; then export FPS_LIMIT="${GUI_MH_FPS_RESULT%+}" if [[ ! "${GUI_MH_RESULT}" =~ "show_fps_limit" ]] ; then GUI_MH_RESULT="${GUI_MH_RESULT}show_fps_limit," @@ -4301,12 +4268,12 @@ fi export FPS_LIMIT="${GUI_MH_FPS_RESULT%+}" fi - if [[ ! -z "$MH_FONT_SIZE" ]] + if [[ -n "$MH_FONT_SIZE" ]] then GUI_MH_RESULT="${GUI_MH_RESULT}${MH_FONT_SIZE}" else GUI_MH_RESULT="${GUI_MH_RESULT%,}" fi - if [[ ! -z "$FPS_LIMIT" ]] ; then + if [[ -n "$FPS_LIMIT" ]] ; then GUI_MH_RESULT="${GUI_MH_RESULT},fps_limit=$FPS_LIMIT" elif [[ "$FPS_LIMIT" == "disabled" ]] ; then GUI_MH_RESULT="${GUI_MH_RESULT},fps_limit=0" @@ -4322,6 +4289,7 @@ fi edit_db_from_gui MANGOHUD_CONFIG PW_MANGOHUD FPS_LIMIT if [[ "${YAD_MANGOHUD_STATUS}" == "184" ]] ; then + PW_MANGOHUD="1" pw_init_runtime pw_mangohud_check ${pw_runtime} \ @@ -4332,9 +4300,7 @@ fi gui_mangohud fi - export SKIP_CHECK_UPDATES="1" - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + restart_pp } # GUI DGVOODOO2 @@ -4346,7 +4312,7 @@ gui_dgvoodoo2 () { PW_DGV2_INACTIVE_APP_STATE " -if [[ "${SKIP_DGVOODOO2_TEXT_INFO}" != 1 ]] ; then +if [[ "${SKIP_DGVOODOO2_TEXT_INFO}" != "1" ]] ; then export PW_DGV2_USE_DX12_INFO=$(gettext 'Use DirectX12 for dgVoodoo2. Doesnt always work better. (Working only on newest and stable dxvk/vkd3d) (Direct3D and Glide settings)') export PW_DGV2_FORCE_VSYNC_INFO=$(gettext 'Force the vertical sync to avoid tearing or prevent the GPU from rendering at crazy high speed. Keep in mind that some application need unforced vSync because of synchronization reasons. (Direct3D settings)') export PW_DGV2_DGVOODOO_WATERMARK_INFO=$(gettext 'Shows the dgVoodoo watermark in-game when enabled. (Direct3D settings)') @@ -4367,7 +4333,7 @@ if [[ "${SKIP_DGVOODOO2_TEXT_INFO}" != 1 ]] ; then export PW_DGV2_3DFX_SPLASH_SCREEN_INFO=$(gettext 'The 3Dfx splash screen is seen when an application starts, disabling this option prevents this animation from playing. (Glide settings)') export PW_DGV2_INACTIVE_APP_STATE_INFO=$(gettext 'Enabling inactive state prevents the application from detecting losing the application focus. Most of the Glide applications close or deactivate themself when losing focus, so this can be used to let the application run in the background. (Glide settings)') - export SKIP_DGVOODOO2_TEXT_INFO=1 + export SKIP_DGVOODOO2_TEXT_INFO="1" fi # fix @@ -4383,7 +4349,7 @@ fi unset ADD_CHK_BOX_DGV2 for int_to_boole in ${PW_DGV2_LIST} ; do - if [ "${!int_to_boole}" == "1" ] + if [[ "${!int_to_boole}" == "1" ]] then export ${int_to_boole}="TRUE" else export ${int_to_boole}="FALSE" fi @@ -4399,7 +4365,7 @@ fi IFS="%" "${pw_yad}" --plug=$KEY_DGV2_GUI --tabnum="1" --form --separator=" " --columns=4 ${ADD_CHK_BOX_DGV2} --text-align=center \ --text="$(gettext "dgVoodoo2 settings\nNOTE: To display help for each item, simply hover over the text")" \ - --gui-type-text=${DGVOODOO2_GUI_TYPE_TEXT_UP} --gui-type-layout=${DGVOODOO2_GUI_TYPE_LAYOUT_UP} \ + --gui-type-text="${PANED_GUI_TYPE_TEXT_UP}" --gui-type-layout="${PANED_GUI_TYPE_LAYOUT_UP}" \ 1> "${PW_TMPFS_PATH}/tmp_yad_dgv2_set" 2>/dev/null & IFS="$orig_IFS" @@ -4415,7 +4381,7 @@ fi DGVOODOO2_VIDEOCARD="dgVoodoo2 SVGA 3D!dgVoodoo2 Virtual 3D!Geforce 4 Ti 4800!ATI Radeon 8500!Matrox Parhelia-512!GeForce FX 5700 Ultra!GeForce 9800 GT!Voodoo Graphics!Voodoo Rush!Voodoo 2!Voodoo Banshee" "${pw_yad}" --plug=$KEY_DGV2_GUI --tabnum="2" --form --columns=3 --separator="%" \ - --gui-type-layout=${DGVOODOO2_GUI_TYPE_LAYOUT_DOWN} \ + --gui-type-layout="${PANED_GUI_TYPE_LAYOUT_DOWN}" \ --field="${CHKBOX_SPACE}RESOLUTION!$(gettext "Set the resolution used. (Direct3D and Glide settings)") :CBE" "$(combobox_fix --disabled "${PW_DGV2_RESOLUTION}" "4x app resolution!3x app resolution!2x app resolution!${DGVOODOO2_XRANDR_NEW::-1}")" \ --field="${CHKBOX_SPACE}FPS LIMIT!$(gettext "You can configure fps limit. (Direct3D and Glide settings)") :CBE" "$(combobox_fix --disabled "${PW_DGV2_FPS_LIMIT}" "30!40!45!48!60!75!90!120!144!165!175!240")" \ --field="${CHKBOX_SPACE}FILTERING!$(gettext "You can select from various texture filtering modes here. Forcing other than the app default can result in glitches or break some rendering effects. (Glide have max filtering bilinear) (Direct3D and Glide settings)") :CB" "$(combobox_fix --disabled "${PW_DGV2_FILTERING}" "${DGVOODOO2_FILTERING}")" \ @@ -4451,31 +4417,22 @@ fi --button="$(gettext "DISABLE") DGVOODOO2"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Disable dgVoodoo2 and go to the previous menu")":164 \ --button="$(gettext "SAVE CHANGES")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Save the current changes, and go to the previous menu")":166 \ 2>/dev/null - YAD_DGV2_STATUS="$?" + case "${YAD_DGV2_STATUS}" in 1|252) - export SKIP_CHECK_UPDATES="1" - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + restart_pp ;; 162) sed -i '/PW_DGV2/d' "$portwine_exe".ppdb - export PW_DGVOODOO2=0 - edit_db_from_gui PW_DGVOODOO2 - export SKIP_CHECK_UPDATES="1" - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + sed -i '/DGVOODOO2/d' "$portwine_exe".ppdb + restart_pp ;; 164) - export PW_DGVOODOO2=0 - edit_db_from_gui PW_DGVOODOO2 - export SKIP_CHECK_UPDATES="1" - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + export PW_DGVOODOO2="0" ;; 166) - export PW_DGVOODOO2=1 + export PW_DGVOODOO2="1" ;; esac @@ -4483,7 +4440,7 @@ fi bool_from_yad=0 for boole_to_int in ${PW_DGV2_LIST} ; do export ${boole_to_int}=${output_yad_dgv2[$bool_from_yad]} - if [ "${!boole_to_int}" == "TRUE" ] + if [[ "${!boole_to_int}" == "TRUE" ]] then export ${boole_to_int}="1" else export ${boole_to_int}="0" fi @@ -4510,9 +4467,7 @@ fi PW_DGV2_FPS_LIMIT PW_DGV2_BIT_DEPTH PW_DGV2_BRIGHTNESS PW_DGV2_COLOR PW_DGV2_CONTRAST PW_DGV2_VIDEOCARD PW_DGV2_DISPLAY_ROI \ PW_DGV2_CURSOR_SCALE PW_DGV2_RESAMPLING - export SKIP_CHECK_UPDATES="1" - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + restart_pp } # GUI GAMESCOPE @@ -4521,18 +4476,12 @@ gui_gamescope () { PW_GS_LIST="PW_GS_FULLSCREEN PW_GS_FORCE_FULLSCREEN PW_GS_BORDERLESS_WINDOW PW_GS_FORCE_GRAB_CURSOR PW_GS_FORCE_GRAB_KEYBOARD PW_GS_HDR_ENABLE PW_GS_ENABLE_GAMESCOPE_WSI PW_GS_HDR_ITM_ENABLE PW_GS_SDR_GAMMUT_WIDENESS PW_GS_FORCE_COMPOSITION PW_GS_HDR_FORCE_SUPPORT PW_GS_HDR_FORCE_OUTPUT PW_GS_HDR_FORCE_HEATMAP - PW_GS_EXPOSE_WAYLAND PW_GS_REALTIME_SCHEDULING PW_GS_FIX_AMD_AND_INTEL + PW_GS_EXPOSE_WAYLAND PW_GS_REALTIME_SCHEDULING " grep -e '--mangoapp' "${PW_TMPFS_PATH}/gamescope.tmp" &>/dev/null && add_to_var PW_GS_LIST "PW_GS_MANGOAPP" - - if check_wayland_session ; then - grep -e '--backend' "${PW_TMPFS_PATH}/gamescope.tmp" &>/dev/null \ - && add_to_var PW_GS_LIST "PW_GS_BACKEND_SDL" && add_to_var PW_GS_LIST "PW_GS_SDL_VIDEODRIVER_X11" - else - export PW_GS_BACKEND_SDL="0" - export PW_GS_SDL_VIDEODRIVER_X11="0" - fi + grep -e '--backend' "${PW_TMPFS_PATH}/gamescope.tmp" &>/dev/null \ + && add_to_var PW_GS_LIST "PW_GS_BACKEND_SDL" && add_to_var PW_GS_LIST "PW_GS_SDL_VIDEODRIVER_X11" GS_FILTER_CB="linear!nearest!fsr!nis!pixel" #debian bookworm fix @@ -4547,7 +4496,7 @@ gui_gamescope () { rm_from_var PW_GS_LIST "PW_GS_FORCE_GRAB_KEYBOARD" fi -if [[ "${SKIP_GAMESCOPE_TEXT_INFO}" != 1 ]] ; then +if [[ "${SKIP_GAMESCOPE_TEXT_INFO}" != "1" ]] ; then export PW_GS_FULLSCREEN_INFO=$(gettext 'Make the window fullscreen') export PW_GS_FORCE_FULLSCREEN_INFO=$(gettext 'Force windows inside of gamescope to be the size of the nested display (fullscreen)') export PW_GS_BORDERLESS_WINDOW_INFO=$(gettext 'Make the window borderless. Working only with backend sdl or X11 session.') @@ -4566,9 +4515,8 @@ if [[ "${SKIP_GAMESCOPE_TEXT_INFO}" != 1 ]] ; then export PW_GS_MANGOAPP_INFO=$(gettext 'Launch with the mangoapp (mangohud) performance overlay enabled. You should use this instead of using mangohud on the game or gamescope.') export PW_GS_BACKEND_SDL_INFO=$(gettext 'Use sdl backend. (by default wayland backend is used).') export PW_GS_SDL_VIDEODRIVER_X11_INFO=$(gettext 'Force use sdl videodriver x11, works with BACKEND SDL. (Default is wayland)') - export PW_GS_FIX_AMD_AND_INTEL_INFO=$(gettext 'Fixes artifacts on AMD and Intel video cards. (Use only when necessary).') - export SKIP_GAMESCOPE_TEXT_INFO=1 + export SKIP_GAMESCOPE_TEXT_INFO="1" fi unset ADD_CHK_BOX_GS @@ -4576,7 +4524,7 @@ fi GAMESCOPE_NEED_INSTALL="$(gettext "Change settings gamescope for") ${PORTWINE_DB}\n $(gettext "NOTE: To display help for each item, simply hover your mouse over the text")" GS_CB="CB" && GS_CBE="CBE" && GS_NUM="NUM" && GS_NUMN="NUMN" for int_to_boole in ${PW_GS_LIST} ; do - if [ "${!int_to_boole}" == "1" ] + if [[ "${!int_to_boole}" == "1" ]] then export ${int_to_boole}="TRUE" else export ${int_to_boole}="FALSE" fi @@ -4586,7 +4534,9 @@ fi done else if check_flatpak ; then - GAMESCOPE_NEED_INSTALL="$(gettext "Gamescope is not detected on the system, to install it, run the command in the terminal:\n flatpak install -y runtime/org.freedesktop.Platform.VulkanLayer.gamescope/x86_64/23.08\n (Can be selected and copied)")" + GAMESCOPE_VERSION="$(cat /etc/os-release | grep 'VERSION_ID=')" + GAMESCOPE_VERSION="${GAMESCOPE_VERSION//VERSION_ID=/}" + GAMESCOPE_NEED_INSTALL="$(eval_gettext "Gamescope is not detected on the system, to install it, run the command in the terminal:\n flatpak install -y runtime/org.freedesktop.Platform.VulkanLayer.gamescope/x86_64/\${GAMESCOPE_VERSION}\n (Can be selected and copied)")" YAD_TEXT_SELECTION="--selectable-labels" else GAMESCOPE_NEED_INSTALL="$(gettext "Gamescope is not detected on the system, please contact the manufacturer of your distribution\n or search the Internet for information on how to install gamescope on your system.")" @@ -4605,7 +4555,7 @@ fi PW_GS_ITM_SDR_NITS="0" PW_GS_ITM_TARGET_NITS="0" for int_to_boole in ${PW_GS_LIST} ; do - if [ "${!int_to_boole}" == "1" ] + if [[ "${!int_to_boole}" == "1" ]] then export ${int_to_boole}="TRUE" else export ${int_to_boole}="FALSE" fi @@ -4617,7 +4567,7 @@ fi IFS="%" "${pw_yad}" --plug=$KEY_GS_GUI --tabnum="1" --form --columns=4 --separator=" " --text-align=center --text "$GAMESCOPE_NEED_INSTALL" \ - --gui-type-text=${GAMESCOPE_GUI_TYPE_TEXT_UP} --gui-type-layout=${GAMESCOPE_GUI_TYPE_LAYOUT_UP} $YAD_TEXT_SELECTION \ + --gui-type-text="${PANED_GUI_TYPE_TEXT_UP}" --gui-type-layout="${PANED_GUI_TYPE_LAYOUT_UP}" $YAD_TEXT_SELECTION \ ${ADD_CHK_BOX_GS} \ 1> "${PW_TMPFS_PATH}/tmp_yad_gs_set" 2>/dev/null & IFS="$orig_IFS" @@ -4630,7 +4580,7 @@ fi done "${pw_yad}" --plug=$KEY_GS_GUI --tabnum="2" --form --columns=2 --separator="%" --homogeneous-row \ - --gui-type-text=${GAMESCOPE_GUI_TYPE_TEXT_DOWN} --gui-type-layout=${GAMESCOPE_GUI_TYPE_LAYOUT_DOWN} \ + --gui-type-text="${PANED_GUI_TYPE_TEXT_DOWN}" --gui-type-layout="${PANED_GUI_TYPE_LAYOUT_DOWN}" \ --field="${CHKBOX_SPACE}$(gettext "Show resolution")!$(gettext "Set the resolution used by gamescope. Resizing the gamescope window will update these settings. Defaults to 1280x720.") :${GS_CBE}" "$(combobox_fix --disabled "${PW_GS_SHOW_RESOLUTION}" "${GAMESCOPE_XRANDR_NEW::-1}")" \ --field="${CHKBOX_SPACE}$(gettext "Internal resolution")!$(gettext "Scale internal resolution (0.0 is unused)") :${GS_NUMN}" "${PW_GS_INTERNAL_RESOLUTION}:!0..2" \ --field="${CHKBOX_SPACE}$(gettext "Frame limit")!$(gettext "Set a framerate limit. Specified in frames per second") :${GS_CBE}" "$(combobox_fix --disabled "${PW_GS_FRAME_LIMIT}" "30!40!45!48!60!75!90!120!144!165!175!240")" \ @@ -4657,31 +4607,22 @@ relaxed - Same as fifo but allows tearing when below the monitors refresh rate." --button="$(gettext "DISABLE") GAMESCOPE"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Disable GameScope and go to the previous menu")":164 \ --button="$(gettext "SAVE CHANGES")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Save the current changes, and go to the previous menu")":166 \ 2>/dev/null - YAD_GAMESCOPE_STATUS="$?" + case "${YAD_GAMESCOPE_STATUS}" in 1|252) - export SKIP_CHECK_UPDATES="1" - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + restart_pp ;; 162) sed -i '/PW_GS/d' "$portwine_exe".ppdb - export PW_GAMESCOPE=0 - edit_db_from_gui PW_GAMESCOPE - export SKIP_CHECK_UPDATES="1" - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + sed -i '/GAMESCOPE/d' "$portwine_exe".ppdb + restart_pp ;; 164) - export PW_GAMESCOPE=0 - edit_db_from_gui PW_GAMESCOPE - export SKIP_CHECK_UPDATES="1" - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + export PW_GAMESCOPE="0" ;; 166) - export PW_GAMESCOPE=1 + export PW_GAMESCOPE="1" ;; esac @@ -4689,7 +4630,7 @@ relaxed - Same as fifo but allows tearing when below the monitors refresh rate." bool_from_yad=0 for boole_to_int in ${PW_GS_LIST} ; do export ${boole_to_int}=${output_yad_gs[$bool_from_yad]} - if [ "${!boole_to_int}" == "TRUE" ] + if [[ "${!boole_to_int}" == "TRUE" ]] then export ${boole_to_int}="1" else export ${boole_to_int}="0" fi @@ -4716,9 +4657,112 @@ relaxed - Same as fifo but allows tearing when below the monitors refresh rate." PW_GS_UPSCALE_SHARPNESS PW_GS_MAX_SCALE_FACTOR PW_GS_MOUSE_SENSITIVITY \ PW_GS_SDR_CONTENT_NITS PW_GS_ITM_SDR_NITS PW_GS_ITM_TARGET_NITS - export SKIP_CHECK_UPDATES="1" - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + restart_pp +} + +# GUI USERCONF +gui_userconf () { + if [[ -f "${portwine_exe}" ]] ; then + export PW_YAD_FORM_TAB="1" + export TAB_START="2" + fi + + if [[ "$MIRROR" == "CLOUD" ]] + then NEW_MIRROR="GITHUB" + else NEW_MIRROR="CLOUD" + fi + + if [[ "$BRANCH" == "master" ]] + then NEW_BRANCH="DEVEL" + else NEW_BRANCH="STABLE" + fi + + if [[ "$DOWNLOAD_STEAM_GRID" == "1" ]] + then NEW_STEAM_BEHAVIOR="$(gettext "Disable")" + else NEW_STEAM_BEHAVIOR="$(gettext "Enable")" + fi + + if [[ "$PW_GUI_START" == "NOTEBOOK" ]] + then NEW_START_GUI="PANED" + else NEW_START_GUI="NOTEBOOK" + fi + + KEY_USERCONF_GUI=$RANDOM + + "${pw_yad}" --plug=$KEY_USERCONF_GUI --tabnum="1" --form --columns=2 --separator=" " --text-align=center \ + --text "$(gettext "Change settings for") user.conf\n $(gettext "NOTE: To display help for each item, simply hover your mouse over the text")" \ + --align-buttons --homogeneous-column --gui-type-text="${PANED_GUI_TYPE_TEXT_UP}" --gui-type-layout="${PANED_GUI_TYPE_LAYOUT_UP}" \ + --field=" $(gettext "Change mirror to") $NEW_MIRROR"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"$(gettext "Depending on which mirror is selected, updates will be downloaded from there.")":"FBTN" '@bash -c "button_click --userconf change_mirror"' \ + --field=" $(gettext "Change branch to") $NEW_BRANCH"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"$(gettext "Depending on the version of the scripts, PortProton will receive the latest changes first (the DEVEL branch), the STABLE branch is updated later and is stable.")":"FBTN" '@bash -c "button_click --userconf change_branch"' \ + --field=" $(gettext "Change start gui to") $NEW_START_GUI"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"$(gettext "When using PANED in the game start menu, additional buttons are located on one large page; if NOTEBOOK, then they are divided into several.")":"FBTN" '@bash -c "button_click --userconf change_gui_start"' \ + --field=" $NEW_STEAM_BEHAVIOR $(gettext "steam covers download")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"$(gettext "If downloading steam covers is enabled, they will be downloaded and created. (Disablement is provided in cases where their downloading is unavailable for some reason)")":"FBTN" '@bash -c "button_click --userconf change_download_grid"' \ + 2>/dev/null & + + if [[ -n "${PW_SOUND_DRIVER_USE}" ]] \ + && [[ "${PW_SOUND_DRIVER_USE}" != "disabled" ]] + then + SOUND_DRIVER_VAR="${PW_SOUND_DRIVER_USE}" + else + SOUND_DRIVER_VAR="disabled" + fi + + if [[ -n "${PW_GPU_USE}" ]] \ + && [[ "${PW_GPU_USE}" != "disabled" ]] + then + GPU_VAR="${PW_GPU_USE}" + else + GPU_VAR="disabled" + fi + + "${pw_yad}" --plug=$KEY_USERCONF_GUI --tabnum="2" --form --columns=1 --separator="%" --homogeneous-row \ + --gui-type-text="${PANED_GUI_TYPE_TEXT_DOWN}" --gui-type-layout="${PANED_GUI_TYPE_LAYOUT_DOWN}" \ + --field="$(gettext "Choose a graphics card to run the game")!$(gettext "Select which video card will be used to run the game (used for all running games and programs in PortProton)") :CB" "$(combobox_fix --disabled "${GPU_VAR}" "${GET_GPU_NAMES}")" \ + --field="$(gettext "Choice wine audio driver")!$(gettext "Fixes sound popling if choice alsa") :CB" "$(combobox_fix --disabled "${SOUND_DRIVER_VAR}" "alsa!oss!pulse")" \ + --field="$(gettext "Choice gui themes")!$(gettext "Allows you to select a theme for PortProton") :CB" "$(combobox_fix "${GUI_THEME}" "default!compact!classic")" \ + 1> "${PW_TMPFS_PATH}/tmp_yad_userconf_set_cb" 2>/dev/null & + + "${pw_yad}" --key=$KEY_USERCONF_GUI --paned \ + --title="$(gettext "SETTINGS USER.CONF")" \ + --separator=" " --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \ + --gui-type="settings-paned" \ + --button="$(gettext "CANCEL THE CHANGES")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Cancel the current changes and return to the previous menu")":1 \ + --button="$(gettext "OPEN THE SETTINGS FILE")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Open the user.conf settings file in a system text editor to view and change variables manually")":164 \ + --button="$(gettext "SAVE CHANGES")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Save the current changes, and go to the previous menu")":166 \ + 2>/dev/null + YAD_USERCONF_STATUS="$?" + + case "$YAD_USERCONF_STATUS" in + 1|252) + restart_pp + ;; + 164) + gui_open_user_conf + ;; + 166) + PW_ADD_SETTINGS_UC=$(head -n 1 "${PW_TMPFS_PATH}/tmp_yad_userconf_set_cb") + PW_GPU_USE="$(echo ${PW_ADD_SETTINGS_UC} | awk -F"%" '{print $1}')" + PW_SOUND_DRIVER_USE="$(echo ${PW_ADD_SETTINGS_UC} | awk -F"%" '{print $2}')" + GUI_THEME="$(echo ${PW_ADD_SETTINGS_UC} | awk -F"%" '{print $3}')" + edit_user_conf_from_gui PW_GPU_USE PW_SOUND_DRIVER_USE GUI_THEME + restart_pp + ;; + esac + + pw_yad_set_form + case "$PW_YAD_SET" in + change_mirror) + change_mirror + ;; + change_branch) + change_branch + ;; + change_gui_start) + change_gui_start + ;; + change_download_grid) + change_download_grid + ;; + esac } # RESIZE PNG FILE @@ -4743,7 +4787,7 @@ resize_png () { && [[ "$ALPINE_FP" != "1" ]] then print_error "exe-thumbnailer - broken!" - if [[ ! -z $PW_DEBUG ]] ; then + if [[ -n "$PW_DEBUG" ]] ; then debug_timer --start timeout 5 exe-thumbnailer --force-resize -s "$RESIZE_TO" "$(readlink -f "${RESIZE_FILE}")" "${PORT_WINE_PATH}/data/img/${RESIZE_NAME_PNG}.png" debug_timer --end "exe-thumbnailer" @@ -4782,8 +4826,8 @@ portwine_create_shortcut () { if [[ "$1" == "block_name" ]] ; then OUTPUT=$("${pw_yad}" --title="$(gettext "Choices")" --form \ --gui-type="settings-shortcut" \ - --gui-type-box=${SETTINGS_SHORTCUT_GUI_TYPE_BOX} --gui-type-layout=${SETTINGS_SHORTCUT_GUI_TYPE_LAYOUT} \ - --gui-type-text=${SETTINGS_SHORTCUT_GUI_TYPE_TEXT} --gui-type-images=${SETTINGS_SHORTCUT_GUI_TYPE_IMAGE} \ + --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 "$(gettext "The shortcut will be created in the PortProton directory.")" \ @@ -4797,8 +4841,8 @@ portwine_create_shortcut () { else OUTPUT=$("${pw_yad}" --title="$(gettext "Choices")" --form \ --gui-type="settings-shortcut" \ - --gui-type-box=${SETTINGS_SHORTCUT_GUI_TYPE_BOX} --gui-type-layout=${SETTINGS_SHORTCUT_GUI_TYPE_LAYOUT} \ - --gui-type-text=${SETTINGS_SHORTCUT_GUI_TYPE_TEXT} --gui-type-images=${SETTINGS_SHORTCUT_GUI_TYPE_IMAGE} \ + --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 "$(gettext "The shortcut will be created in the PortProton directory.")" \ @@ -4892,11 +4936,17 @@ portwine_create_shortcut () { if [[ "$PW_NO_RESTART_PPDB" != "1" ]] ; then print_info "Restarting PP..." - unset PW_YAD_FORM_TAB - export SKIP_CHECK_UPDATES="1" - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + if [[ "${PW_GUI_START}" == "NOTEBOOK" ]] ; then + unset PW_YAD_FORM_TAB + fi + restart_pp fi + elif [[ "$PW_YAD_OUT" == "2" ]] ; then + print_info "Restarting PP..." + if [[ "${PW_GUI_START}" == "NOTEBOOK" ]] ; then + unset PW_YAD_FORM_TAB + fi + restart_pp fi } @@ -4938,7 +4988,7 @@ pw_auto_create_shortcut () { link_cmd=$(sed -n 's/^Command Line Arguments\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp") else print_error "exiftool - broken!" - if [[ ! -z $PW_DEBUG ]] ; then + if [[ -n "$PW_DEBUG" ]] ; then debug_timer --start timeout 5 exiftool "$link_file" debug_timer --end "exiftool" @@ -5008,7 +5058,7 @@ portwine_missing_shortcut () { --text "\n$(gettext "Could not find the file:")\n${portwine_exe}\n\n$(gettext "ATTENTION:\nIf you forgot to mount the disk with the running application, click CANCEL!")\n" \ --button="$(gettext "DELETE SHORTCUT")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 \ --button="$(gettext "CANCEL")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1 - if [ $? -eq "0" ] ; then + if [[ $? -eq "0" ]] ; then portwine_delete_shortcut fi exit 0 @@ -5018,7 +5068,7 @@ portwine_missing_shortcut () { pw_prefix_manager () { update_winetricks start_portwine - if [ ! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" ] ; then + if [[ ! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" ]] ; then touch "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" fi @@ -5064,19 +5114,19 @@ pw_prefix_manager () { KEY_EDIT_MANAGER_GUI=$RANDOM "${pw_yad}" --plug=$KEY_EDIT_MANAGER_GUI --tabnum=1 --list --checklist \ - --gui-type-layout=${WINETRICKS_GUI_TYPE_LAYOUT} --gui-type-text=${WINETRICKS_GUI_TYPE_TEXT} \ + --gui-type-layout="${NOTEBOOK_GUI_TYPE_LAYOUT}" --gui-type-text="${NOTEBOOK_GUI_TYPE_TEXT}" \ --text="$(gettext 'Select components to install in prefix:') \"${PW_PREFIX_NAME}\", $(gettext 'using wine:') \"${PW_WINE_USE}\"" \ --column="$(gettext "Set")" --column="$(gettext "Libraries")" \ --column="$(gettext "Information")" < "${PW_TMPFS_PATH}/dll_list_tmp" 1>> "${PW_TMPFS_PATH}/to_winetricks" 2>/dev/null & "${pw_yad}" --plug=$KEY_EDIT_MANAGER_GUI --tabnum=2 --list --checklist \ - --gui-type-layout=${WINETRICKS_GUI_TYPE_LAYOUT} --gui-type-text=${WINETRICKS_GUI_TYPE_TEXT} \ + --gui-type-layout="${NOTEBOOK_GUI_TYPE_LAYOUT}" --gui-type-text="${NOTEBOOK_GUI_TYPE_TEXT}" \ --text="$(gettext 'Select fonts to install in prefix:') \"${PW_PREFIX_NAME}\", $(gettext 'using wine:') \"${PW_WINE_USE}\"" \ --column="$(gettext "Set")" --column="$(gettext "Libraries")" \ --column="$(gettext "Information")" < "${PW_TMPFS_PATH}/fonts_list_tmp" 1>> "${PW_TMPFS_PATH}/to_winetricks" 2>/dev/null & "${pw_yad}" --plug=$KEY_EDIT_MANAGER_GUI --tabnum=3 --list --checklist \ - --gui-type-layout=${WINETRICKS_GUI_TYPE_LAYOUT} --gui-type-text=${WINETRICKS_GUI_TYPE_TEXT} \ + --gui-type-layout="${NOTEBOOK_GUI_TYPE_LAYOUT}" --gui-type-text="${NOTEBOOK_GUI_TYPE_TEXT}" \ --text="$(gettext 'Change config for prefix:') \"${PW_PREFIX_NAME}\"" \ --column="$(gettext "Set")" --column="$(gettext "Libraries")" \ --column="$(gettext "Information")" < "${PW_TMPFS_PATH}/settings_list_tmp" 1>> "${PW_TMPFS_PATH}/to_winetricks" 2>/dev/null & @@ -5102,8 +5152,7 @@ pw_prefix_manager () { 1|252) print_info "Nothing to do. Restarting PortProton..." stop_portwine & - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + restart_pp ;; 0) WT_FORCE="" @@ -5115,14 +5164,14 @@ pw_prefix_manager () { for STPFXMNG in $(<"${PW_TMPFS_PATH}/to_winetricks") ; do grep $(echo ${STPFXMNG} | awk -F'|' '{print $2}') "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" &>/dev/null - if [ "$?" == "1" ] ; then - [[ ! -z "${STPFXMNG}" ]] && SET_FROM_PFX_MANAGER+="$(echo "${STPFXMNG}" | awk -F'|' '{print $2}') " + if [[ "$?" == "1" ]] ; then + [[ -n "${STPFXMNG}" ]] && SET_FROM_PFX_MANAGER+="$(echo "${STPFXMNG}" | awk -F'|' '{print $2}') " fi done IFS="$orig_IFS" try_remove_file "${PW_TMPFS_PATH}/to_winetricks" - if [[ ! -z ${SET_FROM_PFX_MANAGER} ]] ; then + if [[ -n ${SET_FROM_PFX_MANAGER} ]] ; then pw_update_pfx_cover_gui "winetricks" echo "START WINETRICKS..." >> "${PW_TMPFS_PATH}/update_pfx_log" echo "Try to install DLL in prefix: ${SET_FROM_PFX_MANAGER}" >> "${PW_TMPFS_PATH}/update_pfx_log" @@ -5136,8 +5185,7 @@ pw_prefix_manager () { else print_info "Nothing to do. Restarting PortProton..." stop_portwine & - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + restart_pp fi } gui_prefix_manager @@ -5163,13 +5211,13 @@ portwine_start_debug () { echo "-----------------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log" if check_flatpak ; then echo "FLATPAK in used" >> "${PORT_WINE_PATH}/PortProton.log" - elif [ "${PW_USE_RUNTIME}" = 0 ] ; then + elif [[ "${PW_USE_RUNTIME}" = 0 ]] ; then echo "RUNTIME is disabled" >> "${PORT_WINE_PATH}/PortProton.log" else echo "RUNTIME is enabled" >> "${PORT_WINE_PATH}/PortProton.log" fi echo "----------------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log" - if [ ! -z "${portwine_exe}" ] ; then + if [[ -n "${portwine_exe}" ]] ; then echo "Debug for programm:" >> "${PORT_WINE_PATH}/PortProton.log" echo "${portwine_exe}" >> "${PORT_WINE_PATH}/PortProton.log" echo "---------------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log" @@ -5192,7 +5240,7 @@ portwine_start_debug () { echo "$PW_WINE_USE" >> "${PORT_WINE_PATH}/PortProton.log" echo "-------------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log" echo "Program bit depth:" >> "${PORT_WINE_PATH}/PortProton.log" - if [[ $(file "$portwine_exe") =~ x86-64 ]]; then + if [[ $(file "$portwine_exe") =~ x86-64 ]] ; then echo "64 bit" >> "${PORT_WINE_PATH}/PortProton.log" echo "-----------------------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log" else @@ -5258,7 +5306,7 @@ portwine_start_debug () { echo "Vulkan info device name:" >> "${PORT_WINE_PATH}/PortProton.log" grep -E '^GPU|deviceName|driverName' "${PW_TMPFS_PATH}/vulkaninfo.tmp" >> "${PORT_WINE_PATH}/PortProton.log" "${PW_PLUGINS_PATH}/portable/bin/vkcube" --c 50 - if [ $? -eq 0 ]; then + if [[ $? -eq 0 ]] ; then echo "Vulkan cube test passed successfully" >> "${PORT_WINE_PATH}/PortProton.log" else echo "Vulkan cube test completed with error" >> "${PORT_WINE_PATH}/PortProton.log" @@ -5278,7 +5326,7 @@ portwine_start_debug () { echo "winetricks.log:" >> "${PORT_WINE_PATH}/PortProton.log" cat "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" | sed -e /"^d3dcomp*"/d -e /"^d3dx*"/d >> "${PORT_WINE_PATH}/PortProton.log" echo "-----------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log" - if [ ! -z "${PORTWINE_DB_FILE}" ]; then + if [[ -n "${PORTWINE_DB_FILE}" ]] ; then echo "Use ${PORTWINE_DB_FILE} db file:" >> "${PORT_WINE_PATH}/PortProton.log" cat "${PORTWINE_DB_FILE}" | sed '/##/d' >> "${PORT_WINE_PATH}/PortProton.log" else @@ -5286,7 +5334,7 @@ portwine_start_debug () { cat "${PORT_SCRIPTS_PATH}/portwine_db/default" | sed '/##/d' >> "${PORT_WINE_PATH}/PortProton.log" fi echo "----------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log" - if [ -f "${USER_CONF}" ]; then + if [[ -f "${USER_CONF}" ]] ; then cat "${USER_CONF}" | sed '/bash/d' >> "${PORT_WINE_PATH}/PortProton.log" fi echo "---------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log" @@ -5297,9 +5345,9 @@ portwine_start_debug () { sleep 3 pw_stop_progress_bar_cover unset PW_TIMER - while read -r line || [[ ! -z $(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 - if [[ ! -z "${line}" ]] && [[ -z "$(echo "${line}" | grep -i "kerberos")" ]] \ + if [[ -n "${line}" ]] && [[ -z "$(echo "${line}" | grep -i "kerberos")" ]] \ && [[ -z "$(echo "${line}" | grep -i "ntlm")" ]] then echo "# ${line}" @@ -5333,8 +5381,11 @@ pw_create_prefix_backup () { --button="$(gettext "CANCEL")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1 \ --button="$(gettext "OK")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 2>/dev/null) YAD_STATUS="$?" - if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; fi - if [[ ! -z "$(grep "/${PW_PREFIX_NAME}/" "${PORT_WINE_PATH}"/*.desktop )" ]] ; then + + if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then + restart_pp + fi + if [[ -n "$(grep "/${PW_PREFIX_NAME}/" "${PORT_WINE_PATH}"/*.desktop )" ]] ; then try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut" grep "/${PW_PREFIX_NAME}/" "${PORT_WINE_PATH}"/*.desktop | awk -F"/${PW_PREFIX_NAME}/" '{print $2}' \ | awk -F\" '{print $1}' > "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut" @@ -5365,7 +5416,7 @@ EOF else yad_error "$(gettext "An error occurred while backing up the prefix:") $PW_PREFIX_NAME" fi - return 0 + restart_pp } pw_autoinstall_from_db () { @@ -5388,26 +5439,28 @@ pw_autoinstall_from_db () { } button_click () { - [[ ! -z "$1" ]] && echo "$1" > "${PW_TMPFS_PATH}/tmp_yad_form" - if [[ ! -z $(pidof -s yad) ]] || [[ ! -z $(pidof -s yad_gui_pp) ]] ; then - kill -s SIGUSR1 $(pgrep -a yad | grep "\--key=${KEY} \--notebook" | awk '{print $1}') > /dev/null 2>&1 + if [[ -n $(pidof -s yad) ]] || [[ -n $(pidof -s yad_gui_pp) ]] ; then + [[ -n "$1" ]] && case "$1" in + --normal) + kill -s SIGUSR1 $(pgrep -a yad | grep "\--key=${KEY} \--notebook" | awk '{print $1}') > /dev/null 2>&1 + ;; + --start) + kill -s SIGUSR1 $(pgrep -a yad | grep "\--key=${KEY_START} \--notebook" | awk '{print $1}') > /dev/null 2>&1 \ + || kill -s SIGUSR1 $(pgrep -a yad | grep "\--key=${KEY_START} \--paned" | awk '{print $1}') > /dev/null 2>&1 + ;; + --userconf) + kill -s SIGUSR1 $(pgrep -a yad | grep "\--key=${KEY_USERCONF_GUI}" | awk '{print $1}') > /dev/null 2>&1 + ;; + esac + [[ -n "$2" ]] && echo "$2" > "${PW_TMPFS_PATH}/tmp_yad_form" fi } export -f button_click -button_click_start () { - [[ ! -z "$1" ]] && echo "$1" > "${PW_TMPFS_PATH}/tmp_yad_form" - if [[ ! -z $(pidof -s yad) ]] || [[ ! -z $(pidof -s yad_gui_pp) ]] ; then - kill -s SIGUSR1 $(pgrep -a yad | grep "\--key=${KEY_START} \--notebook" | awk '{print $1}') > /dev/null 2>&1 \ - || kill -s SIGUSR1 $(pgrep -a yad | grep "\--key=${KEY_START} \--paned" | awk '{print $1}') > /dev/null 2>&1 - fi -} -export -f button_click_start - run_desktop_b_click () { - [[ ! -z "$1" ]] && echo "$1" > "${PW_TMPFS_PATH}/tmp_yad_form" + [[ -n "$1" ]] && echo "$1" > "${PW_TMPFS_PATH}/tmp_yad_form" - if [[ ! -z $(pidof -s yad) ]] || [[ ! -z $(pidof -s yad_gui_pp) ]] ; then + if [[ -n $(pidof -s yad) ]] || [[ -n $(pidof -s yad_gui_pp) ]] ; then kill -s SIGUSR1 $(pgrep -a yad | grep "\--key=${KEY} \--notebook" | awk '{print $1}') > /dev/null 2>&1 fi if check_flatpak @@ -5417,7 +5470,6 @@ run_desktop_b_click () { print_info "Restarting PP after choose desktop file..." # stop_portwine - export SKIP_CHECK_UPDATES="1" /usr/bin/env bash -c "${PW_EXEC_FROM_DESKTOP}" & exit 0 } @@ -5427,9 +5479,7 @@ gui_clear_pfx () { if yad_question "$(gettext "Do you want to clear prefix in PortProton?")" ; then pw_clear_pfx print_info "Restarting PP after clearing prefix..." - export SKIP_CHECK_UPDATES="1" - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + restart_pp fi } export -f gui_clear_pfx @@ -5449,18 +5499,15 @@ export -f gui_rm_portproton gui_pw_update () { try_remove_file "${PORT_WINE_TMP_PATH}/scripts_update_notifier" print_info "Restarting PP for check update..." - export SKIP_CHECK_UPDATES="0" - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + unset SKIP_CHECK_UPDATES + restart_pp } export -f gui_pw_update change_loc () { try_remove_file "${PORT_WINE_TMP_PATH}/PortProton_loc" print_info "Restarting PP for change language..." - export SKIP_CHECK_UPDATES="1" - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + restart_pp } export -f change_loc @@ -5475,31 +5522,31 @@ change_mirror () { "$(gettext "Mirror changed to:")" "https://cloud.linux-gaming.ru" fi print_info "Restarting PP for change mirror..." - export SKIP_CHECK_UPDATES="1" - if [[ -z "${PW_ALL_DF}" ]] ; then - export TAB_MAIN_MENU="4" - else - export TAB_MAIN_MENU="5" - fi - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + restart_pp --userconf } export -f change_mirror change_branch () { if [[ "$BRANCH" == "master" ]] ; then - sed -i 's/="master"/="devel"/g' "$USER_CONF" - export MIRROR="GITHUB" - yad_info "$(gettext "Branch changed to:") DEVEL" + if yad_question "$(gettext "Do you actually want to change the scripts version to:") DEVEL?" ; then + sed -i 's/="master"/="devel"/g' "$USER_CONF" + export MIRROR="GITHUB" + pw_notify_send -i info \ + "$(gettext "Branch changed to:")" "DEVEL" + unset SKIP_CHECK_UPDATES + fi else - sed -i 's/="devel"/="master"/g' "$USER_CONF" - echo "2024" > "${PORT_WINE_TMP_PATH}/scripts_ver" - export PW_CHANGE_BRANCH="1" - yad_info "$(gettext "Branch changed to:") STABLE" + if yad_question "$(gettext "Do you actually want to change the scripts version to:") STABLE?" ; then + sed -i 's/="devel"/="master"/g' "$USER_CONF" + echo "2024" > "${PORT_WINE_TMP_PATH}/scripts_ver" + export PW_CHANGE_BRANCH="1" + pw_notify_send -i info \ + "$(gettext "Branch changed to:")" "STABLE" + unset SKIP_CHECK_UPDATES + fi fi print_info "Restarting PP for change branch..." - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + restart_pp --userconf } export -f change_branch @@ -5514,17 +5561,17 @@ change_download_grid () { "$(gettext "Cover downloads are enabled")" fi print_info "Restarting PP for change cover download behavior..." - export SKIP_CHECK_UPDATES="1" - if [[ -z "${PW_ALL_DF}" ]] ; then - export TAB_MAIN_MENU="4" - else - export TAB_MAIN_MENU="5" - fi - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + restart_pp --userconf } export -f change_download_grid +open_game_folder () { + xdg-open "${PATH_TO_GAME}" + print_info "Restarting PP after open game folder..." + restart_pp +} +export -f open_game_folder + change_gui_start () { if [[ "$PW_GUI_START" == "NOTEBOOK" ]] ; then sed -i 's/="NOTEBOOK"/="PANED"/g' "$USER_CONF" @@ -5536,14 +5583,7 @@ change_gui_start () { "$(gettext "Gui start changed to:")" "NOTEBOOK" fi print_info "Restarting PP for change gui start..." - export SKIP_CHECK_UPDATES="1" - if [[ -z "${PW_ALL_DF}" ]] ; then - export TAB_MAIN_MENU="4" - else - export TAB_MAIN_MENU="5" - fi - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + restart_pp --userconf } export -f change_gui_start @@ -5557,34 +5597,20 @@ gui_open_user_conf () { PW_USERCONF_GUI="$("${pw_yad}" --title="$(gettext "EDIT USER CONFIG")" \ --text-info --editable --width=800 --height=600 \ --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \ - --button="$(gettext "MAIN MENU")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":1 \ + --button="$(gettext "BACK")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":1 \ --button="$(gettext "SAVE")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":2 \ --filename="${PORT_WINE_PATH}/data/user.conf" 2>/dev/null)" YAD_STATUS="$?" case "${YAD_STATUS}" in 1|252) - export SKIP_CHECK_UPDATES="1" - if [[ -z "${PW_ALL_DF}" ]] ; then - export TAB_MAIN_MENU="4" - else - export TAB_MAIN_MENU="5" - fi - /usr/bin/env bash -c ${pw_full_command_line[*]} & print_info "Restarting..." - exit 0 + restart_pp --userconf ;; 2) echo "${PW_USERCONF_GUI}" > "${PORT_WINE_PATH}/data/user.conf" - export SKIP_CHECK_UPDATES="1" - if [[ -z "${PW_ALL_DF}" ]] ; then - export TAB_MAIN_MENU="4" - else - export TAB_MAIN_MENU="5" - fi - /usr/bin/env bash -c ${pw_full_command_line[*]} & print_info "Restarting..." - exit 0 + restart_pp --userconf ;; esac } @@ -5594,20 +5620,18 @@ gui_edit_db_file () { GUI_EDIT_DB_FILE="$("${pw_yad}" --title="$(gettext "EDIT DB")" \ --text-info --editable --width=800 --height=600 \ --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \ - --button="$(gettext "SETTINGS")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":1 \ + --button="$(gettext "BACK")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":1 \ --button="$(gettext "SAVE")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":2 \ --filename="${PORTWINE_DB_FILE}" 2>/dev/null)" YAD_STATUS="$?" case "$YAD_STATUS" in 1|252) - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + restart_pp --edit_db ;; 2) echo "${GUI_EDIT_DB_FILE}" > "${PORTWINE_DB_FILE}" - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + restart_pp --edit_db ;; esac } @@ -5617,13 +5641,14 @@ gui_open_scripts_from_backup () { PW_SCRIPT_FROM_BACKUP=$("${pw_yad}" --file --width=650 --height=500 \ --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --title "SCRIPTS FROM BACKUP" --file-filter="backup_scripts|scripts_v*.tar.gz" 2>/dev/null ) YAD_STATUS="$?" - if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; fi + + if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then + restart_pp + fi unpack "$PW_SCRIPT_FROM_BACKUP" "${PORT_WINE_PATH}/data/" echo "0" > "${PORT_WINE_TMP_PATH}/scripts_update_notifier" print_info "Restarting PP after backup..." - export SKIP_CHECK_UPDATES="1" - /usr/bin/env bash -c ${pw_full_command_line[*]} & - exit 0 + restart_pp } export -f gui_open_scripts_from_backup @@ -5715,13 +5740,6 @@ DGVOODOO2: https://dege.fw.hu/" --tab="$(gettext "ABOUT PORTPROTON")" --tab="$(gettext "AUTORS")" --tab="$(gettext "LICENSE")" \ --tab="$(gettext "SPONSORS")" --tab="$(gettext "JOIN")" --tab="$(gettext "THIRD PARTY LIBRARIES")" - if [[ -z "${PW_ALL_DF}" ]] ; then - export TAB_MAIN_MENU="4" - else - export TAB_MAIN_MENU="5" - fi - echo "Exit from credits" - /usr/bin/env bash -c "${pw_full_command_line[*]}" & - exit 0 + restart_pp } diff --git a/data_from_portwine/scripts/portwine_db/Anno4.ppdb b/data_from_portwine/scripts/portwine_db/Anno4.ppdb index 28ab10bf..e7276406 100644 --- a/data_from_portwine/scripts/portwine_db/Anno4.ppdb +++ b/data_from_portwine/scripts/portwine_db/Anno4.ppdb @@ -12,7 +12,7 @@ fi export PW_VULKAN_USE=1 add_in_start_portwine () { - if [ -d "${WINEPREFIX}/drive_c/users/steamuser/AppData/Roaming/Ubisoft/Anno1404/Config/" ] ; then + if [[ -d "${WINEPREFIX}/drive_c/users/steamuser/AppData/Roaming/Ubisoft/Anno1404/Config/" ]] ; then sed -i 's/0<\/DirectXVersion>/9<\/DirectXVersion>/' "${WINEPREFIX}/drive_c/users/steamuser/AppData/Roaming/Ubisoft/Anno1404/Config/Engine.ini" fi } diff --git a/data_from_portwine/scripts/portwine_db/Frozen Throne.ppdb b/data_from_portwine/scripts/portwine_db/Frozen Throne.ppdb index c5caad93..77843c8d 100644 --- a/data_from_portwine/scripts/portwine_db/Frozen Throne.ppdb +++ b/data_from_portwine/scripts/portwine_db/Frozen Throne.ppdb @@ -5,6 +5,6 @@ ################################################ export PW_VULKAN_USE=0 export LAUNCH_PARAMETERS="" -if [ -d "${PATH_TO_GAME}"/Movies ] ; then +if [[ -d "${PATH_TO_GAME}"/Movies ]] ; then mv "${PATH_TO_GAME}"/Movies "${PATH_TO_GAME}"/Movies_bak fi diff --git a/data_from_portwine/scripts/portwine_db/GalaxyClient.ppdb b/data_from_portwine/scripts/portwine_db/GalaxyClient.ppdb index 9c337356..d99e65d0 100644 --- a/data_from_portwine/scripts/portwine_db/GalaxyClient.ppdb +++ b/data_from_portwine/scripts/portwine_db/GalaxyClient.ppdb @@ -13,7 +13,7 @@ export PW_WINE_USE="WINE_LG" add_in_start_portwine () { -if [ -e "${WINEPREFIX}/drive_c/users/${USER}/Local Settings/Application Data/GOG.com/Galaxy/Configuration/config.json" ] ; then +if [[ -e "${WINEPREFIX}/drive_c/users/${USER}/Local Settings/Application Data/GOG.com/Galaxy/Configuration/config.json" ]] ; then sed -i 's/"featureOverlay" : true,/"featureOverlay" : false,/' "${WINEPREFIX}/drive_c/${USER}/Local Settings/Application Data/GOG.com/Galaxy/Configuration/config.json" fi } diff --git a/data_from_portwine/scripts/portwine_db/WorldOfTanksEnCoreLauncher.ppdb b/data_from_portwine/scripts/portwine_db/WorldOfTanksEnCoreLauncher.ppdb index 17d79a3a..31043be6 100644 --- a/data_from_portwine/scripts/portwine_db/WorldOfTanksEnCoreLauncher.ppdb +++ b/data_from_portwine/scripts/portwine_db/WorldOfTanksEnCoreLauncher.ppdb @@ -11,13 +11,13 @@ export PW_USE_D3D_EXTRAS=0 ## export DXVK_HUD=fps,devinfo #####################examples########################### -while [ `pidof -s dotNetFx40_Full_x86_x64.exe` ] ; do - if [ $? -eq 0 ] ; then +while [[ $(pidof -s dotNetFx40_Full_x86_x64.exe) ]] ; do + if [[ $? -eq 0 ]] ; then sleep 1 else - export dotnet_pids=`ps -ax | grep mscorsvw.exe | awk '{print $1}' | uniq` - [ ! -z $dotnet_pids ] - kill -n 9 $dotnet_pids + dotnet_pids=$(ps -ax | grep mscorsvw.exe | awk '{print $1}' | uniq) + export dotnet_pids + [[ -n "$dotnet_pids" ]] && kill -n 9 "$dotnet_pids" sleep 1 fi done diff --git a/data_from_portwine/scripts/portwine_db/gfclient.ppdb b/data_from_portwine/scripts/portwine_db/gfclient.ppdb index b99c6b43..2ffa821a 100644 --- a/data_from_portwine/scripts/portwine_db/gfclient.ppdb +++ b/data_from_portwine/scripts/portwine_db/gfclient.ppdb @@ -10,10 +10,10 @@ export WINEDLLOVERRIDES="gfclient0_msvc140=n;ucrtbase=b" #add_in_start_portwine () { # #while true; do -# if [ -z "`pgrep GameforgeClient`" ]; then +# if [[ -z "`pgrep GameforgeClient`" ]] ; then # sleep 1 # else -# while [ ! -z "`pgrep GameforgeClient`" ] ; do +# while [[ -n "`pgrep GameforgeClient`" ]] ; do # killall -s KILL gfservice.exe # done # sleep 1 diff --git a/data_from_portwine/scripts/portwine_db/medal-of-honor-allied-assault-war-chest.ppdb b/data_from_portwine/scripts/portwine_db/medal-of-honor-allied-assault-war-chest.ppdb index 047cbc2f..2fb9f0c9 100644 --- a/data_from_portwine/scripts/portwine_db/medal-of-honor-allied-assault-war-chest.ppdb +++ b/data_from_portwine/scripts/portwine_db/medal-of-honor-allied-assault-war-chest.ppdb @@ -12,7 +12,7 @@ export MESA_EXTENSION_MAX_YEAR=2002 export __GL_ExtensionStringVersion=17700 add_in_start_portwine () { -if [ ! -e "$PATH_TO_GAME/0_Proton_PW_MoHAA" ] ; then +if [[ ! -e "$PATH_TO_GAME/0_Proton_PW_MoHAA" ]] ; then touch "$PATH_TO_GAME/0_Proton_PW_MoHAA" && mv "$PATH_TO_GAME/main/newconfig.cfg" "$PATH_TO_GAME/main/newconfig.cfg.bak" && mv "$PATH_TO_GAME/main/configs/unnamedsoldier.cfg" "$PATH_TO_GAME/main/configs/unnamedsoldier.cfg.bak" && mv "$PATH_TO_GAME/mainta/newconfig.cfg" "$PATH_TO_GAME/mainta/newconfig.cfg.bak" && mv "$PATH_TO_GAME/mainta/configs/unnamedsoldier.cfg" "$PATH_TO_GAME/mainta/configs/unnamedsoldier.cfg.bak" && mv "$PATH_TO_GAME/maintt/newconfig.cfg" "$PATH_TO_GAME/maintt/newconfig.cfg.bak" && mv "$PATH_TO_GAME/maintt/configs/unnamedsoldier.cfg" "$PATH_TO_GAME/maintt/configs/unnamedsoldier.cfg.bak" && echo '// // Video Card Family: NVidia GeForce diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_GAMEFORGE b/data_from_portwine/scripts/pw_autoinstall/PW_GAMEFORGE index fe9edbe1..02d4b1c8 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_GAMEFORGE +++ b/data_from_portwine/scripts/pw_autoinstall/PW_GAMEFORGE @@ -2,12 +2,12 @@ # Author: chal55rus (Sergey P.), cefeiko, Castro-Fidel (linux-gaming.ru) ########################################################################## pw_shutdown_please () { - if [ "$PW_USE_RUNTIME" != 1 ] + if [[ "$PW_USE_RUNTIME" != 1 ]] then echo "PW_USE_RUNTIME: `echo $PW_USE_RUNTIME`" else sleep 10 while true ; do - if [ -z "`ps aux | grep -v grep | grep -wm 1 "$1" | awk '{print $2}'`" ] && [ ! -z "`pgrep wrap | head -n 1`" ]; then + if [[ -z "`ps aux | grep -v grep | grep -wm 1 "$1" | awk '{print $2}'`" ]] && [[ -n "`pgrep wrap | head -n 1`" ]] ; then echo -e "PID "$1" not found" sleep 1 else diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_OSU b/data_from_portwine/scripts/pw_autoinstall/PW_OSU index e8880bc0..19a928ab 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_OSU +++ b/data_from_portwine/scripts/pw_autoinstall/PW_OSU @@ -12,7 +12,7 @@ export PW_AUTOINSTALL_EXE="${WINEPREFIX}/drive_c/Program Files (x86)/OSU/osu!.ex if try_download "https://m1.ppy.sh/r/osu!install.exe" "${PW_AUTOINSTALL_EXE}" no_mirror then pw_start_progress_bar_install_game "OSU!." - if [ -f "${PORT_WINE_PATH}/data/pfx_dotnet/drive_c/Program Files (x86)/OSU/osu!install.exe" ]; then + if [[ -f "${PORT_WINE_PATH}/data/pfx_dotnet/drive_c/Program Files (x86)/OSU/osu!install.exe" ]] ; then mv -f "${PORT_WINE_PATH}/data/pfx_dotnet/drive_c/Program Files (x86)/OSU/osu!install.exe" "${PORT_WINE_PATH}/data/pfx_dotnet/drive_c/Program Files (x86)/OSU/osu!.exe" fi export portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/OSU/osu!.exe" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_STEAM b/data_from_portwine/scripts/pw_autoinstall/PW_STEAM index d5092390..f2fa116e 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_STEAM +++ b/data_from_portwine/scripts/pw_autoinstall/PW_STEAM @@ -9,7 +9,7 @@ then pw_start_progress_bar_install_game "Steam." pw_kill_autostart steam.exe & pw_run "${PW_AUTOINSTALL_EXE}" - if [ -f "$WINEPREFIX/drive_c/Program Files (x86)/Steam/Steam.exe" ] + if [[ -f "$WINEPREFIX/drive_c/Program Files (x86)/Steam/Steam.exe" ]] then mv -f "$WINEPREFIX/drive_c/Program Files (x86)/Steam/Steam.exe" "$WINEPREFIX/drive_c/Program Files (x86)/Steam/steam.exe" fi portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Steam/steam.exe" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_WOSB b/data_from_portwine/scripts/pw_autoinstall/PW_WOSB index 0fe8c661..86fd0e3e 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_WOSB +++ b/data_from_portwine/scripts/pw_autoinstall/PW_WOSB @@ -7,7 +7,7 @@ export PW_VULKAN_USE=1 export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/wos_client.exe" WOSB_VERSION="$(curl -s --list-only --connect-timeout 3 https://www.worldofseabattle.com/download2 2>/dev/null | grep 'installer.exe' | awk -F'xsolla-launcher-update/' '{print $2}' | awk -F'/' '{print $1}')" -[[ ! -z "$WOSB_VERSION" ]] && print_info "Found version: $WOSB_VERSION" || yad_error "Error while get version of WOSB INSTALLER." +[[ -n "$WOSB_VERSION" ]] && print_info "Found version: $WOSB_VERSION" || yad_error "Error while get version of WOSB INSTALLER." start_portwine if try_download "https://installer.launcher.xsolla.com/xlauncher-builds/xsolla-launcher-update/${WOSB_VERSION}/bin/installer.exe" "${PW_AUTOINSTALL_EXE}" no_mirror diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index aa796220..ac8bc7a2 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -98,7 +98,7 @@ unset CHK_SYMLINK_FILE PW_MESA_GL_VERSION_OVERRIDE PW_VKD3D_FEATURE_LEVEL PATH_T unset PW_PREFIX_NAME WINEPREFIX VULKAN_MOD PW_WINE_VER PW_ADD_TO_ARGS_IN_RUNTIME PW_GAMEMODERUN_SLR AMD_VULKAN_ICD PW_WINE_CPU_TOPOLOGY unset PW_NAME_D_NAME PW_NAME_D_ICON PW_NAME_D_EXEC PW_EXEC_FROM_DESKTOP PW_ALL_DF PW_GENERATE_BUTTONS PW_NAME_D_ICON PW_NAME_D_ICON_48 unset MANGOHUD_CONFIG FPS_LIMIT PW_WINE_USE WINEDLLPATH WINE WINEDIR WINELOADER WINESERVER PW_USE_RUNTIME PORTWINE_CREATE_SHORTCUT_NAME MIRROR -unset PW_LOCALE_SELECT PW_SETTINGS_INDICATION PW_GUI_START PW_AUTOINSTALL_EXE NOSTSTDIR +unset PW_LOCALE_SELECT PW_SETTINGS_INDICATION PW_GUI_START PW_AUTOINSTALL_EXE NOSTSTDIR RADV_DEBUG PW_COMMENT_DB export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp" rm -f "$PORT_WINE_TMP_PATH"/*{exe,msi,tar}* @@ -177,7 +177,7 @@ try_remove_file "${PW_TMPFS_PATH}/update_pfx_log" source "${USER_CONF}" # check PortProton theme -if [[ ! -z "$GUI_THEME" ]] \ +if [[ -n "$GUI_THEME" ]] \ && [[ -f "$PW_GUI_THEMES_PATH/$GUI_THEME.pptheme" ]] then # shellcheck source=/dev/null @@ -247,7 +247,7 @@ if [[ "${SKIP_CHECK_UPDATES}" != 1 ]] ; then export GAMESCOPE_INSTALLED="1" else print_error "gamescope - broken!" - if [[ -n $PW_DEBUG ]] ; then + if [[ -n "$PW_DEBUG" ]] ; then debug_timer --start timeout 5 gamescope --help debug_timer --end "gamescope" @@ -258,13 +258,13 @@ if [[ "${SKIP_CHECK_UPDATES}" != 1 ]] ; then fi if command -v vulkaninfo &>/dev/null ; then - if timeout 3 vulkaninfo --summary &> "${PW_TMPFS_PATH}/vulkaninfo.tmp" ; then + if timeout 3 vulkaninfo &> "${PW_TMPFS_PATH}/vulkaninfo.tmp" ; then VULKAN_DRIVER_NAME="$(grep -e 'driverName' "${PW_TMPFS_PATH}/vulkaninfo.tmp" | awk '{print$3}' | head -1)" GET_GPU_NAMES=$(awk -F '=' '/deviceName/{print $2}' "${PW_TMPFS_PATH}/vulkaninfo.tmp" | sed '/llvm/d'| sort -u | sed 's/^ //' | paste -sd '!') export VULKAN_DRIVER_NAME GET_GPU_NAMES else print_error "vulkaninfo - broken!" - if [[ -n $PW_DEBUG ]] ; then + if [[ -n "$PW_DEBUG" ]] ; then debug_timer --start timeout 5 vulkaninfo debug_timer --end "vulkaninfo" @@ -284,7 +284,7 @@ if [[ "${SKIP_CHECK_UPDATES}" != 1 ]] ; then export LSPCI_VGA else print_error "lspci - broken!" - if [[ -n $PW_DEBUG ]] ; then + if [[ -n "$PW_DEBUG" ]] ; then debug_timer --start timeout 5 lspci -vv debug_timer --end "lspci" @@ -303,7 +303,7 @@ if [[ "${SKIP_CHECK_UPDATES}" != 1 ]] ; then print_var PW_SCREEN_RESOLUTION PW_SCREEN_PRIMARY else print_error "xrandr - broken!" - if [[ -n $PW_DEBUG ]] ; then + if [[ -n "$PW_DEBUG" ]] ; then debug_timer --start timeout 5 xrandr --verbose debug_timer --end "xrandr" @@ -327,7 +327,7 @@ if [[ "${SKIP_CHECK_UPDATES}" != 1 ]] ; then unset LOCALE_LIST for LOCALE in $GET_LOCALE_LIST ; do if grep -e "$LOCALE" "${PW_TMPFS_PATH}/locale.tmp" &>/dev/null ; then - if [[ ! -z "$LOCALE_LIST" ]] + if [[ -n "$LOCALE_LIST" ]] then LOCALE_LIST+="!$(grep -e "$LOCALE" "${PW_TMPFS_PATH}/locale.tmp")" else LOCALE_LIST="$(grep -e "$LOCALE" "${PW_TMPFS_PATH}/locale.tmp")" fi @@ -336,7 +336,7 @@ if [[ "${SKIP_CHECK_UPDATES}" != 1 ]] ; then export LOCALE_LIST else print_error "locale - broken!" - if [[ -n $PW_DEBUG ]] ; then + if [[ -n "$PW_DEBUG" ]] ; then debug_timer --start timeout 5 locale -a debug_timer --end "locale" @@ -403,9 +403,11 @@ if [[ "${SKIP_CHECK_UPDATES}" != 1 ]] ; then fi fi +export SKIP_CHECK_UPDATES="1" + [[ "$MISSING_DESKTOP_FILE" == 1 ]] && portwine_missing_shortcut -if [[ ! -z $(basename "${portwine_exe}" | grep .ppack) ]] ; then +if [[ -n $(basename "${portwine_exe}" | grep .ppack) ]] ; then unset PW_SANDBOX_HOME_PATH pw_init_runtime if check_flatpak @@ -538,11 +540,12 @@ case "${PW_VULKAN_USE}" in *) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY!$SORT_G_ZINK!$SORT_G_NINE!$SORT_OPENGL!$SORT_VULKAN" ;; esac -if [[ ! -z "${PW_COMMENT_DB}" ]] ; then : -elif [[ ! -z "${PORTPROTON_NAME}" ]] ; then - PW_COMMENT_DB="$(gettext "Launching") ${PORTPROTON_NAME}" -else - PW_COMMENT_DB="$(gettext "Launching") ${PORTWINE_DB}" +if [[ -z "${PW_COMMENT_DB}" ]] ; then + if [[ -n "${PORTPROTON_NAME}" ]] ; then + PW_COMMENT_DB="$(gettext "Launching") ${PORTPROTON_NAME}" + else + PW_COMMENT_DB="$(gettext "Launching") ${PORTWINE_DB}" + fi fi if [[ $PW_WINE_USE == PROTON_LG ]] ; then @@ -562,10 +565,17 @@ if [[ -z "${PORTWINE_DB_FILE}" ]] ; then fi if [[ -f "${portwine_exe}" ]] ; then + unset TAB_MAIN_MENU + if [[ "$RESTART_PP_USED" == "edit_db" ]] ; then + unset RESTART_PP_USED + gui_edit_db + elif [[ "$RESTART_PP_USED" == "userconf" ]] ; then + unset RESTART_PP_USED + gui_userconf + fi if [[ "${PW_GUI_DISABLED_CS}" != 1 ]] ; then pw_create_gui_png - grep -il "${portwine_exe}" "${HOME}/.local/share/applications"/*.desktop - if [[ "$?" != "0" ]] ; then + if ! grep -il "${portwine_exe}" "${HOME}/.local/share/applications"/*.desktop ; then PW_SHORTCUT="$(gettext "CREATE SHORTCUT")!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!$(gettext "Create shortcut for select file..."):100" else PW_SHORTCUT="$(gettext "DELETE SHORTCUT")!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!$(gettext "Delete shortcut for select file..."):98" @@ -584,15 +594,17 @@ if [[ -f "${portwine_exe}" ]] ; then "${pw_yad}" --plug=$KEY_START --tabnum=2 --form --columns="${START_GUI_NOTEBOOK_COLUMNS}" --align-buttons --homogeneous-column \ --gui-type-layout="${START_GUI_TYPE_LAYOUT_NOTEBOOK}" \ - --field=" $(gettext "Base settings")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Edit database file for") ${PORTWINE_DB}":"FBTN" '@bash -c "button_click_start 118"' \ - --field=" vkBasalt"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Enable vkBasalt by default to improve graphics in games running on Vulkan. (The HOME hotkey disables vkbasalt)")":"FBTN" '@bash -c "button_click_start 120"' \ - --field=" MangoHud"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Enable Mangohud by default (R_SHIFT + F12 keyboard shortcuts disable Mangohud)")":"FBTN" '@bash -c "button_click_start 122"' \ - --field=" dgVoodoo2"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Enable dgVoodoo2 by default (This wrapper fixes many compatibility and rendering issues when running old games)")":"FBTN" '@bash -c "button_click_start 124"' \ - --field=" GameScope"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Enable GameScope by default (Wayland micro compositor)")":"FBTN" '@bash -c "button_click_start 126"' \ + --field=" $(gettext "Base settings")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Edit database file for") ${PORTWINE_DB}":"FBTN" '@bash -c "button_click --start 118"' \ + --field=" $(gettext "Settings user.conf")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Settings for user.conf")":"FBTN" '@bash -c "button_click --start 128"' \ + --field=" $(gettext "Open directory")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Open directory with .ppdb file")":"FBTN" '@bash -c "button_click --start open_game_folder"' \ + --field=" vkBasalt"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Enable vkBasalt by default to improve graphics in games running on Vulkan. (The HOME hotkey disables vkbasalt)")":"FBTN" '@bash -c "button_click --start 120"' \ + --field=" MangoHud"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Enable Mangohud by default (R_SHIFT + F12 keyboard shortcuts disable Mangohud)")":"FBTN" '@bash -c "button_click --start 122"' \ + --field=" dgVoodoo2"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Enable dgVoodoo2 by default (This wrapper fixes many compatibility and rendering issues when running old games)")":"FBTN" '@bash -c "button_click --start 124"' \ + --field=" GameScope"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Enable GameScope by default (Wayland micro compositor)")":"FBTN" '@bash -c "button_click --start 126"' \ 2>/dev/null & if [[ "${PW_YAD_FORM_TAB}" == "1" ]] \ - && [[ ! -z "${TAB_START}" ]] + && [[ -n "${TAB_START}" ]] then export TAB_START="2" unset PW_YAD_FORM_TAB @@ -627,11 +639,13 @@ if [[ -f "${portwine_exe}" ]] ; then "${pw_yad}" --plug=$KEY_START --tabnum=2 --form --columns="${START_GUI_PANED_COLUMNS}" \ --gui-type-layout="${START_GUI_TYPE_LAYOUT_PANED}" \ --align-buttons --homogeneous-row --homogeneous-column \ - --field=" $(gettext "Base settings")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Edit database file for") ${PORTWINE_DB}":"FBTN" '@bash -c "button_click_start 118"' \ - --field=" vkBasalt"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Enable vkBasalt by default to improve graphics in games running on Vulkan. (The HOME hotkey disables vkbasalt)")":"FBTN" '@bash -c "button_click_start 120"' \ - --field=" MangoHud"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Enable Mangohud by default (R_SHIFT + F12 keyboard shortcuts disable Mangohud)")":"FBTN" '@bash -c "button_click_start 122"' \ - --field=" dgVoodoo2"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Enable dgVoodoo2 by default (This wrapper fixes many compatibility and rendering issues when running old games)")":"FBTN" '@bash -c "button_click_start 124"' \ - --field=" GameScope"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Enable GameScope by default (Wayland micro compositor)")":"FBTN" '@bash -c "button_click_start 126"' \ + --field=" $(gettext "Base settings")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Edit database file for") ${PORTWINE_DB}":"FBTN" '@bash -c "button_click --start 118"' \ + --field=" $(gettext "Settings user.conf")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Settings for user.conf")":"FBTN" '@bash -c "button_click --start 128"' \ + --field=" $(gettext "Open directory")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Open directory with .ppdb file")":"FBTN" '@bash -c "button_click --start open_game_folder"' \ + --field=" vkBasalt"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Enable vkBasalt by default to improve graphics in games running on Vulkan. (The HOME hotkey disables vkbasalt)")":"FBTN" '@bash -c "button_click --start 120"' \ + --field=" MangoHud"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Enable Mangohud by default (R_SHIFT + F12 keyboard shortcuts disable Mangohud)")":"FBTN" '@bash -c "button_click --start 122"' \ + --field=" dgVoodoo2"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Enable dgVoodoo2 by default (This wrapper fixes many compatibility and rendering issues when running old games)")":"FBTN" '@bash -c "button_click --start 124"' \ + --field=" GameScope"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Enable GameScope by default (Wayland micro compositor)")":"FBTN" '@bash -c "button_click --start 126"' \ 2>/dev/null & "${pw_yad}" --key=$KEY_START --paned \ @@ -645,16 +659,14 @@ if [[ -f "${portwine_exe}" ]] ; then --button="$(gettext "LAUNCH")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Run file ...")":106 2>/dev/null PW_YAD_SET="$?" fi - [[ ! -z "$PW_YAD_SET" ]] && case "$PW_YAD_SET" in + [[ -n "$PW_YAD_SET" ]] && case "$PW_YAD_SET" in 128) if [[ "${PW_GUI_START}" == "NOTEBOOK" ]] ; then unset PW_YAD_FORM_TAB fi unset PW_NO_RESTART_PPDB PW_DISABLED_CREATE_DB KEY_START portwine_exe - export SKIP_CHECK_UPDATES=1 - /usr/bin/env bash -c ${pw_full_command_line[*]} & print_info "Restarting..." - exit 0 + restart_pp ;; 1|252) exit 0 @@ -666,31 +678,20 @@ if [[ -f "${portwine_exe}" ]] ; then portwine_launch fi else - export KEY="$RANDOM" - - if [[ "$MIRROR" == "CLOUD" ]] - then NEW_MIRROR="GITHUB" - else NEW_MIRROR="CLOUD" - fi - - if [[ "$BRANCH" == "master" ]] - then NEW_BRANCH="DEVEL" - else NEW_BRANCH="STABLE" - fi - - if [[ "$DOWNLOAD_STEAM_GRID" == "1" ]] - then NEW_STEAM_BEHAVIOR="$(gettext "Disable")" - else NEW_STEAM_BEHAVIOR="$(gettext "Enable")" - fi - - IFS=$'\n' PW_ALL_DF="$(ls "${PORT_WINE_PATH}"/ | grep .desktop | grep -vE '(PortProton|readme)')" if [[ -z "${PW_ALL_DF}" ]] - then PW_GUI_SORT_TABS=(1 2 3 4 5) - else PW_GUI_SORT_TABS=(2 3 4 5 1) + then export PW_GUI_SORT_TABS=(1 2 3 4 5) + else export PW_GUI_SORT_TABS=(2 3 4 5 1) + fi + if [[ "$RESTART_PP_USED" == "userconf" ]] ; then + unset RESTART_PP_USED + gui_userconf fi - PW_GENERATE_BUTTONS="--field= $(gettext "Create shortcut...")!${PW_GUI_ICON_PATH}/find_48.svg!:FBTN%@bash -c \"button_click pw_find_exe\"%" + export KEY="$RANDOM" + + IFS=$'\n' + PW_GENERATE_BUTTONS="--field= $(gettext "Create shortcut...")!${PW_GUI_ICON_PATH}/find_48.svg!:FBTN%@bash -c \"button_click --normal pw_find_exe\"%" for PW_DESKTOP_FILES in ${PW_ALL_DF} ; do if check_flatpak ; then PW_NAME_D_ICON="$(grep Exec "${PORT_WINE_PATH}/${PW_DESKTOP_FILES}" | awk -F'=' '{print $2}' | @@ -712,25 +713,21 @@ else IFS="%" "${pw_yad}" --plug=$KEY --tabnum="${PW_GUI_SORT_TABS[4]}" --form --columns="$MAIN_GUI_COLUMNS" --homogeneous-column \ - --gui-type-layout=${MAIN_MENU_GUI_TYPE_LAYOUT} \ + --gui-type-layout="${MAIN_MENU_GUI_TYPE_LAYOUT}" \ --align-buttons --scroll --separator=" " ${PW_GENERATE_BUTTONS} 2>/dev/null & IFS="$orig_IFS" "${pw_yad}" --plug=$KEY --tabnum="${PW_GUI_SORT_TABS[3]}" --form --columns=3 --align-buttons --separator=";" --homogeneous-column \ - --gui-type-layout=${MAIN_MENU_GUI_TYPE_LAYOUT} \ - --field=" $(gettext "Reinstall PortProton")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click gui_pw_reinstall_pp"' \ - --field=" $(gettext "Remove PortProton")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click gui_rm_portproton"' \ - --field=" $(gettext "Update PortProton")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click gui_pw_update"' \ - --field=" $(gettext "Changelog")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click open_changelog"' \ - --field=" $(gettext "Change language")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click change_loc"' \ - --field=" $(gettext "Edit user.conf")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click gui_open_user_conf"' \ - --field=" $(gettext "Scripts from backup")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click gui_open_scripts_from_backup"' \ - --field=" Xterm"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click pw_start_cont_xterm"' \ - --field=" $(gettext "Credits")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click gui_credits"' \ - --field=" $(gettext "Change mirror to") $NEW_MIRROR"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click change_mirror"' \ - --field=" $(gettext "Change branch to") $NEW_BRANCH"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click change_branch"' \ - --field=" $(gettext "Change start gui")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click change_gui_start"' \ - --field=" $NEW_STEAM_BEHAVIOR $(gettext "steam covers download")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click change_download_grid"' \ + --gui-type-layout="${MAIN_MENU_GUI_TYPE_LAYOUT}" \ + --field=" $(gettext "Reinstall PortProton")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click --normal gui_pw_reinstall_pp"' \ + --field=" $(gettext "Remove PortProton")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click --normal gui_rm_portproton"' \ + --field=" $(gettext "Update PortProton")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click --normal gui_pw_update"' \ + --field=" $(gettext "Changelog")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click --normal open_changelog"' \ + --field=" $(gettext "Change language")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click --normal change_loc"' \ + --field=" $(gettext "Settings user.conf")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click --normal 128"' \ + --field=" $(gettext "Scripts from backup")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click --normal gui_open_scripts_from_backup"' \ + --field=" Xterm"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click --normal pw_start_cont_xterm"' \ + --field=" $(gettext "Credits")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"FBTN" '@bash -c "button_click --normal gui_credits"' \ 2>/dev/null & "${pw_yad}" --plug=$KEY --tabnum="${PW_GUI_SORT_TABS[2]}" --form --columns=3 --align-buttons --separator=";" \ @@ -738,77 +735,77 @@ else --field=" 3D API : :CB" "${PW_DEFAULT_VULKAN_USE}" \ --field=" PREFIX : :CBE" "${PW_ADD_PREFIXES_TO_GUI}" \ --field=" WINE : :CB" "$(combobox_fix "${PW_WINE_USE}" "${PW_DEFAULT_WINE_USE}")" \ - --field="$(gettext "Create prefix backup")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"CFBTN" '@bash -c "button_click pw_create_prefix_backup"' \ - --field=" Winetricks"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"$(gettext "Run winetricks to install additional libraries to the selected prefix")":"FBTN" '@bash -c "button_click WINETRICKS"' \ - --field=" $(gettext "Clear prefix")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"$(gettext "Clear the prefix to fix problems")":"FBTN" '@bash -c "button_click gui_clear_pfx"' \ - --field=" $(gettext "Get other Wine")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"$(gettext "Open the menu to download other versions of WINE or PROTON")":"FBTN" '@bash -c "button_click gui_proton_downloader"' \ - --field=" $(gettext "Uninstaller")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"$(gettext "Run the program uninstaller built into wine")":"FBTN" '@bash -c "button_click gui_wine_uninstaller"' \ - --field=" $(gettext "Prefix Manager") "!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"$(gettext "Run winecfg to edit the settings of the selected prefix")":"FBTN" '@bash -c "button_click WINECFG"' \ - --field=" $(gettext "File Manager")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"$(gettext "Run wine file manager")":"FBTN" '@bash -c "button_click WINEFILE"' \ - --field=" $(gettext "Command line")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"$(gettext "Run wine cmd")":"FBTN" '@bash -c "button_click WINECMD"' \ - --field=" $(gettext "Regedit")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"$(gettext "Run wine regedit")":"FBTN" '@bash -c "button_click WINEREG"' 1> "${PW_TMPFS_PATH}/tmp_yad_form_vulkan" 2>/dev/null & + --field="$(gettext "Create prefix backup")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"":"CFBTN" '@bash -c "button_click --normal pw_create_prefix_backup"' \ + --field=" Winetricks"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"$(gettext "Run winetricks to install additional libraries to the selected prefix")":"FBTN" '@bash -c "button_click --normal WINETRICKS"' \ + --field=" $(gettext "Clear prefix")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"$(gettext "Clear the prefix to fix problems")":"FBTN" '@bash -c "button_click --normal gui_clear_pfx"' \ + --field=" $(gettext "Get other Wine")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"$(gettext "Open the menu to download other versions of WINE or PROTON")":"FBTN" '@bash -c "button_click --normal gui_proton_downloader"' \ + --field=" $(gettext "Uninstaller")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"$(gettext "Run the program uninstaller built into wine")":"FBTN" '@bash -c "button_click --normal gui_wine_uninstaller"' \ + --field=" $(gettext "Prefix Manager") "!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"$(gettext "Run winecfg to edit the settings of the selected prefix")":"FBTN" '@bash -c "button_click --normal WINECFG"' \ + --field=" $(gettext "File Manager")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"$(gettext "Run wine file manager")":"FBTN" '@bash -c "button_click --normal WINEFILE"' \ + --field=" $(gettext "Command line")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"$(gettext "Run wine cmd")":"FBTN" '@bash -c "button_click --normal WINECMD"' \ + --field=" $(gettext "Regedit")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"$(gettext "Run wine regedit")":"FBTN" '@bash -c "button_click --normal WINEREG"' 1> "${PW_TMPFS_PATH}/tmp_yad_form_vulkan" 2>/dev/null & "${pw_yad}" --plug=$KEY --tabnum="${PW_GUI_SORT_TABS[1]}" --form --columns="$MAIN_GUI_COLUMNS" --align-buttons --scroll --homogeneous-column \ --gui-type-layout="${MAIN_MENU_GUI_TYPE_LAYOUT}" \ - --field=" Dolphin 5.0"!"$PW_GUI_ICON_PATH/dolphin.png"!"$(gettext "Emulator for Nintendo game consoles with high compatibility")":"FBTN" '@bash -c "button_click PW_DOLPHIN"' \ - --field=" MAME"!"$PW_GUI_ICON_PATH/mame.png"!"$(gettext "Multi-arcade emulator that allows you to play old arcade games")":"FBTN" '@bash -c "button_click PW_MAME"' \ - --field=" RetroArch"!"$PW_GUI_ICON_PATH/retroarch.png"!"$(gettext "Multi-platform frontend for emulators with extensive settings")":"FBTN" '@bash -c "button_click PW_RETROARCH"' \ - --field=" PPSSPP Windows"!"$PW_GUI_ICON_PATH/ppsspp.png"!"$(gettext "Emulator for the PlayStation Portable (PSP) game console")":"FBTN" '@bash -c "button_click PW_PPSSPP"' \ - --field=" Citra"!"$PW_GUI_ICON_PATH/citra.png"!"$(gettext "Emulator for the Nintendo 3DS game console")":"FBTN" '@bash -c "button_click PW_CITRA"' \ - --field=" Cemu"!"$PW_GUI_ICON_PATH/cemu.png"!"$(gettext "Emulator for the Wii U game console")":"FBTN" '@bash -c "button_click PW_CEMU"' \ - --field=" ePSXe"!"$PW_GUI_ICON_PATH/epsxe.png"!"$(gettext "Emulator for the PlayStation 1 game console with high compatibility")":"FBTN" '@bash -c "button_click PW_EPSXE"' \ - --field=" Project64"!"$PW_GUI_ICON_PATH/project64.png"!"$(gettext "Emulator for the Nintendo 64 game console")":"FBTN" '@bash -c "button_click PW_PROJECT64"' \ - --field=" VBA-M"!"$PW_GUI_ICON_PATH/vba-m.png"!"$(gettext "Emulator for the Game Boy Advance game console")":"FBTN" '@bash -c "button_click PW_VBA-M"' \ - --field=" Yabause"!"$PW_GUI_ICON_PATH/yabause.png"!"$(gettext "Emulator for the Sega Saturn game console")":"FBTN" '@bash -c "button_click PW_YABAUSE"' \ - --field=" Xenia"!"$PW_GUI_ICON_PATH/xenia.png"!"$(gettext "Emulator for the Xbox 360 game console")":"FBTN" '@bash -c "button_click PW_XENIA"' \ - --field=" FCEUX"!"$PW_GUI_ICON_PATH/fceux.png"!"$(gettext "Emulator for the Nintendo Entertainment System (NES or Dendy) game console")":"FBTN" '@bash -c "button_click PW_FCEUX"' \ - --field=" xemu"!"$PW_GUI_ICON_PATH/xemu.png"!"$(gettext "Emulator for the Xbox game console")":"FBTN" '@bash -c "button_click PW_XEMU"' \ - --field=" Demul"!"$PW_GUI_ICON_PATH/demul.png"!"$(gettext "Emulator for the Sega Dreamcast game console")":"FBTN" '@bash -c "button_click PW_DEMUL"' 2>/dev/null & + --field=" Dolphin 5.0"!"$PW_GUI_ICON_PATH/dolphin.png"!"$(gettext "Emulator for Nintendo game consoles with high compatibility")":"FBTN" '@bash -c "button_click --normal PW_DOLPHIN"' \ + --field=" MAME"!"$PW_GUI_ICON_PATH/mame.png"!"$(gettext "Multi-arcade emulator that allows you to play old arcade games")":"FBTN" '@bash -c "button_click --normal PW_MAME"' \ + --field=" RetroArch"!"$PW_GUI_ICON_PATH/retroarch.png"!"$(gettext "Multi-platform frontend for emulators with extensive settings")":"FBTN" '@bash -c "button_click --normal PW_RETROARCH"' \ + --field=" PPSSPP Windows"!"$PW_GUI_ICON_PATH/ppsspp.png"!"$(gettext "Emulator for the PlayStation Portable (PSP) game console")":"FBTN" '@bash -c "button_click --normal PW_PPSSPP"' \ + --field=" Citra"!"$PW_GUI_ICON_PATH/citra.png"!"$(gettext "Emulator for the Nintendo 3DS game console")":"FBTN" '@bash -c "button_click --normal PW_CITRA"' \ + --field=" Cemu"!"$PW_GUI_ICON_PATH/cemu.png"!"$(gettext "Emulator for the Wii U game console")":"FBTN" '@bash -c "button_click --normal PW_CEMU"' \ + --field=" ePSXe"!"$PW_GUI_ICON_PATH/epsxe.png"!"$(gettext "Emulator for the PlayStation 1 game console with high compatibility")":"FBTN" '@bash -c "button_click --normal PW_EPSXE"' \ + --field=" Project64"!"$PW_GUI_ICON_PATH/project64.png"!"$(gettext "Emulator for the Nintendo 64 game console")":"FBTN" '@bash -c "button_click --normal PW_PROJECT64"' \ + --field=" VBA-M"!"$PW_GUI_ICON_PATH/vba-m.png"!"$(gettext "Emulator for the Game Boy Advance game console")":"FBTN" '@bash -c "button_click --normal PW_VBA-M"' \ + --field=" Yabause"!"$PW_GUI_ICON_PATH/yabause.png"!"$(gettext "Emulator for the Sega Saturn game console")":"FBTN" '@bash -c "button_click --normal PW_YABAUSE"' \ + --field=" Xenia"!"$PW_GUI_ICON_PATH/xenia.png"!"$(gettext "Emulator for the Xbox 360 game console")":"FBTN" '@bash -c "button_click --normal PW_XENIA"' \ + --field=" FCEUX"!"$PW_GUI_ICON_PATH/fceux.png"!"$(gettext "Emulator for the Nintendo Entertainment System (NES or Dendy) game console")":"FBTN" '@bash -c "button_click --normal PW_FCEUX"' \ + --field=" xemu"!"$PW_GUI_ICON_PATH/xemu.png"!"$(gettext "Emulator for the Xbox game console")":"FBTN" '@bash -c "button_click --normal PW_XEMU"' \ + --field=" Demul"!"$PW_GUI_ICON_PATH/demul.png"!"$(gettext "Emulator for the Sega Dreamcast game console")":"FBTN" '@bash -c "button_click --normal PW_DEMUL"' 2>/dev/null & "${pw_yad}" --plug=$KEY --tabnum="${PW_GUI_SORT_TABS[0]}" --form --columns="$MAIN_GUI_COLUMNS" --align-buttons --scroll --homogeneous-column \ --gui-type-layout="${MAIN_MENU_GUI_TYPE_LAYOUT}" \ - --field=" Lesta Game Center"!"$PW_GUI_ICON_PATH/lgc.png"!"":"FBTN" '@bash -c "button_click PW_LGC"' \ - --field=" vkPlay Games Center"!"$PW_GUI_ICON_PATH/mygames.png"!"":"FBTN" '@bash -c "button_click PW_VKPLAY"' \ - --field=" Battle.net Launcher"!"$PW_GUI_ICON_PATH/battle_net.png"!"":"FBTN" '@bash -c "button_click PW_BATTLE_NET"' \ - --field=" Epic Games Launcher"!"$PW_GUI_ICON_PATH/epicgames.png"!"":"FBTN" '@bash -c "button_click PW_EPIC"' \ - --field=" GoG Galaxy Launcher"!"$PW_GUI_ICON_PATH/gog.png"!"":"FBTN" '@bash -c "button_click PW_GOG"' \ - --field=" Ubisoft Game Launcher"!"$PW_GUI_ICON_PATH/ubc.png"!"":"FBTN" '@bash -c "button_click PW_UBC"' \ - --field=" EVE Online Launcher"!"$PW_GUI_ICON_PATH/eve.png"!"":"FBTN" '@bash -c "button_click PW_EVE"' \ - --field=" Rockstar Games Launcher"!"$PW_GUI_ICON_PATH/Rockstar.png"!"":"FBTN" '@bash -c "button_click PW_ROCKSTAR"' \ - --field=" Gameforge Client"!"$PW_GUI_ICON_PATH/gameforge.png"!"":"FBTN" '@bash -c "button_click PW_GAMEFORGE"' \ - --field=" World of Sea Battle (x64)"!"$PW_GUI_ICON_PATH/wosb.png"!"":"FBTN" '@bash -c "button_click PW_WOSB"' \ - --field=" CALIBER"!"$PW_GUI_ICON_PATH/caliber.png"!"":"FBTN" '@bash -c "button_click PW_CALIBER"' \ - --field=" Crossout"!"$PW_GUI_ICON_PATH/crossout.png"!"":"FBTN" '@bash -c "button_click PW_CROSSOUT"' \ - --field=" Warframe"!"$PW_GUI_ICON_PATH/warframe.png"!"":"FBTN" '@bash -c "button_click PW_WARFRAME"' \ - --field=" Panzar"!"$PW_GUI_ICON_PATH/panzar.png"!"":"FBTN" '@bash -c "button_click PW_PANZAR"' \ - --field=" STALCRAFT"!"$PW_GUI_ICON_PATH/stalcraft.png"!"":"FBTN" '@bash -c "button_click PW_STALCRAFT"' \ - --field=" CONTRACT WARS"!"$PW_GUI_ICON_PATH/cwc.png"!"":"FBTN" '@bash -c "button_click PW_CWC"' \ - --field=" Stalker Online"!"$PW_GUI_ICON_PATH/so.png"!"":"FBTN" '@bash -c "button_click PW_SO"' \ - --field=" Modern Warships"!"$PW_GUI_ICON_PATH/mw.png"!"":"FBTN" '@bash -c "button_click PW_MW"' \ - --field=" Metal War Online"!"$PW_GUI_ICON_PATH/mwo.png"!"":"FBTN" '@bash -c "button_click PW_MWO"' \ - --field=" Ankama Launcher"!"$PW_GUI_ICON_PATH/ankama.png"!"":"FBTN" '@bash -c "button_click PW_ANKAMA"' \ - --field=" Indiegala Client"!"$PW_GUI_ICON_PATH/igclient.png"!"":"FBTN" '@bash -c "button_click PW_IGCLIENT"' \ - --field=" Plarium Play"!"$PW_GUI_ICON_PATH/plariumplay.png"!"":"FBTN" '@bash -c "button_click PW_PLARIUM_PLAY"' \ - --field=" Wargaming Game Center"!"$PW_GUI_ICON_PATH/wgc.png"!"":"FBTN" '@bash -c "button_click PW_WGC"' \ - --field=" OSU"!"$PW_GUI_ICON_PATH/osu.png"!"":"FBTN" '@bash -c "button_click PW_OSU"' \ - --field=" ITCH.IO"!"$PW_GUI_ICON_PATH/itch.png"!"":"FBTN" '@bash -c "button_click PW_ITCH"' \ - --field=" Steam (unstable)"!"$PW_GUI_ICON_PATH/steam.png"!"":"FBTN" '@bash -c "button_click PW_STEAM"' \ - --field=" Path of Exile"!"$PW_GUI_ICON_PATH/poe.png"!"":"FBTN" '@bash -c "button_click PW_POE"' \ - --field=" Guild Wars 2"!"$PW_GUI_ICON_PATH/gw2.png"!"":"FBTN" '@bash -c "button_click PW_GUILD_WARS_2"' \ - --field=" HoYoPlay"!"$PW_GUI_ICON_PATH/hoyoplay.png"!"":"FBTN" '@bash -c "button_click PW_HO_YO_PLAY"' \ - --field=" EA App (TEST)"!"$PW_GUI_ICON_PATH/eaapp.png"!"":"FBTN" '@bash -c "button_click PW_EAAPP"' \ - --field=" Battle Of Space Raiders"!"$PW_GUI_ICON_PATH/bsr.png"!"":"FBTN" '@bash -c "button_click PW_BSR"' \ - --field=" Black Desert Online (RU)"!"$PW_GUI_ICON_PATH/bdo.png"!"":"FBTN" '@bash -c "button_click PW_BDO"' \ - --field=" Pulse Online"!"$PW_GUI_ICON_PATH/pulseonline.png"!"":"FBTN" '@bash -c "button_click PW_PULSE_ONLINE"' \ - --field=" CatsLauncher (Front Edge)"!"$PW_GUI_ICON_PATH/catslauncher.png"!"":"FBTN" '@bash -c "button_click PW_CATSLAUNCHER"' \ - --field=" Russian Fishing 4"!"$PW_GUI_ICON_PATH/rf4launcher.png"!"":"FBTN" '@bash -c "button_click PW_RUSSIAN_FISHING"' \ - --field=" W3D Hub Launcher"!"$PW_GUI_ICON_PATH/w3dhub.png"!"":"FBTN" '@bash -c "button_click PW_W3D_HUB"' \ - --field=" Anomaly Zone"!"$PW_GUI_ICON_PATH/anomalyzone.png"!"":"FBTN" '@bash -c "button_click PW_ANOMALY_ZONE"' \ + --field=" Lesta Game Center"!"$PW_GUI_ICON_PATH/lgc.png"!"":"FBTN" '@bash -c "button_click --normal PW_LGC"' \ + --field=" vkPlay Games Center"!"$PW_GUI_ICON_PATH/mygames.png"!"":"FBTN" '@bash -c "button_click --normal PW_VKPLAY"' \ + --field=" Battle.net Launcher"!"$PW_GUI_ICON_PATH/battle_net.png"!"":"FBTN" '@bash -c "button_click --normal PW_BATTLE_NET"' \ + --field=" Epic Games Launcher"!"$PW_GUI_ICON_PATH/epicgames.png"!"":"FBTN" '@bash -c "button_click --normal PW_EPIC"' \ + --field=" GoG Galaxy Launcher"!"$PW_GUI_ICON_PATH/gog.png"!"":"FBTN" '@bash -c "button_click --normal PW_GOG"' \ + --field=" Ubisoft Game Launcher"!"$PW_GUI_ICON_PATH/ubc.png"!"":"FBTN" '@bash -c "button_click --normal PW_UBC"' \ + --field=" EVE Online Launcher"!"$PW_GUI_ICON_PATH/eve.png"!"":"FBTN" '@bash -c "button_click --normal PW_EVE"' \ + --field=" Rockstar Games Launcher"!"$PW_GUI_ICON_PATH/Rockstar.png"!"":"FBTN" '@bash -c "button_click --normal PW_ROCKSTAR"' \ + --field=" Gameforge Client"!"$PW_GUI_ICON_PATH/gameforge.png"!"":"FBTN" '@bash -c "button_click --normal PW_GAMEFORGE"' \ + --field=" World of Sea Battle (x64)"!"$PW_GUI_ICON_PATH/wosb.png"!"":"FBTN" '@bash -c "button_click --normal PW_WOSB"' \ + --field=" CALIBER"!"$PW_GUI_ICON_PATH/caliber.png"!"":"FBTN" '@bash -c "button_click --normal PW_CALIBER"' \ + --field=" Crossout"!"$PW_GUI_ICON_PATH/crossout.png"!"":"FBTN" '@bash -c "button_click --normal PW_CROSSOUT"' \ + --field=" Warframe"!"$PW_GUI_ICON_PATH/warframe.png"!"":"FBTN" '@bash -c "button_click --normal PW_WARFRAME"' \ + --field=" Panzar"!"$PW_GUI_ICON_PATH/panzar.png"!"":"FBTN" '@bash -c "button_click --normal PW_PANZAR"' \ + --field=" STALCRAFT"!"$PW_GUI_ICON_PATH/stalcraft.png"!"":"FBTN" '@bash -c "button_click --normal PW_STALCRAFT"' \ + --field=" CONTRACT WARS"!"$PW_GUI_ICON_PATH/cwc.png"!"":"FBTN" '@bash -c "button_click --normal PW_CWC"' \ + --field=" Stalker Online"!"$PW_GUI_ICON_PATH/so.png"!"":"FBTN" '@bash -c "button_click --normal PW_SO"' \ + --field=" Modern Warships"!"$PW_GUI_ICON_PATH/mw.png"!"":"FBTN" '@bash -c "button_click --normal PW_MW"' \ + --field=" Metal War Online"!"$PW_GUI_ICON_PATH/mwo.png"!"":"FBTN" '@bash -c "button_click --normal PW_MWO"' \ + --field=" Ankama Launcher"!"$PW_GUI_ICON_PATH/ankama.png"!"":"FBTN" '@bash -c "button_click --normal PW_ANKAMA"' \ + --field=" Indiegala Client"!"$PW_GUI_ICON_PATH/igclient.png"!"":"FBTN" '@bash -c "button_click --normal PW_IGCLIENT"' \ + --field=" Plarium Play"!"$PW_GUI_ICON_PATH/plariumplay.png"!"":"FBTN" '@bash -c "button_click --normal PW_PLARIUM_PLAY"' \ + --field=" Wargaming Game Center"!"$PW_GUI_ICON_PATH/wgc.png"!"":"FBTN" '@bash -c "button_click --normal PW_WGC"' \ + --field=" OSU"!"$PW_GUI_ICON_PATH/osu.png"!"":"FBTN" '@bash -c "button_click --normal PW_OSU"' \ + --field=" ITCH.IO"!"$PW_GUI_ICON_PATH/itch.png"!"":"FBTN" '@bash -c "button_click --normal PW_ITCH"' \ + --field=" Steam (unstable)"!"$PW_GUI_ICON_PATH/steam.png"!"":"FBTN" '@bash -c "button_click --normal PW_STEAM"' \ + --field=" Path of Exile"!"$PW_GUI_ICON_PATH/poe.png"!"":"FBTN" '@bash -c "button_click --normal PW_POE"' \ + --field=" Guild Wars 2"!"$PW_GUI_ICON_PATH/gw2.png"!"":"FBTN" '@bash -c "button_click --normal PW_GUILD_WARS_2"' \ + --field=" HoYoPlay"!"$PW_GUI_ICON_PATH/hoyoplay.png"!"":"FBTN" '@bash -c "button_click --normal PW_HO_YO_PLAY"' \ + --field=" EA App (TEST)"!"$PW_GUI_ICON_PATH/eaapp.png"!"":"FBTN" '@bash -c "button_click --normal PW_EAAPP"' \ + --field=" Battle Of Space Raiders"!"$PW_GUI_ICON_PATH/bsr.png"!"":"FBTN" '@bash -c "button_click --normal PW_BSR"' \ + --field=" Black Desert Online (RU)"!"$PW_GUI_ICON_PATH/bdo.png"!"":"FBTN" '@bash -c "button_click --normal PW_BDO"' \ + --field=" Pulse Online"!"$PW_GUI_ICON_PATH/pulseonline.png"!"":"FBTN" '@bash -c "button_click --normal PW_PULSE_ONLINE"' \ + --field=" CatsLauncher (Front Edge)"!"$PW_GUI_ICON_PATH/catslauncher.png"!"":"FBTN" '@bash -c "button_click --normal PW_CATSLAUNCHER"' \ + --field=" Russian Fishing 4"!"$PW_GUI_ICON_PATH/rf4launcher.png"!"":"FBTN" '@bash -c "button_click --normal PW_RUSSIAN_FISHING"' \ + --field=" W3D Hub Launcher"!"$PW_GUI_ICON_PATH/w3dhub.png"!"":"FBTN" '@bash -c "button_click --normal PW_W3D_HUB"' \ + --field=" Anomaly Zone"!"$PW_GUI_ICON_PATH/anomalyzone.png"!"":"FBTN" '@bash -c "button_click --normal PW_ANOMALY_ZONE"' \ 2>/dev/null & - # --field=" Secret World Legends (ENG)"!"$PW_GUI_ICON_PATH/swl.png"!"":"FBTN" '@bash -c "button_click PW_SWL"' - # --field=" Bethesda.net Launcher"!"$PW_GUI_ICON_PATH/bethesda.png"!"":"FBTN" '@bash -c "button_click PW_BETHESDA"' - # --field=" League of Legends"!"$PW_GUI_ICON_PATH/lol.png"!"":"FBTN" '@bash -c "button_click PW_LOL"' + # --field=" Secret World Legends (ENG)"!"$PW_GUI_ICON_PATH/swl.png"!"":"FBTN" '@bash -c "button_click --normal PW_SWL"' + # --field=" Bethesda.net Launcher"!"$PW_GUI_ICON_PATH/bethesda.png"!"":"FBTN" '@bash -c "button_click --normal PW_BETHESDA"' + # --field=" League of Legends"!"$PW_GUI_ICON_PATH/lol.png"!"":"FBTN" '@bash -c "button_click --normal PW_LOL"' export START_FROM_PP_GUI="1" if [[ -z ${TAB_MAIN_MENU} ]] ; then @@ -842,7 +839,6 @@ else --tab="$(gettext "PORTPROTON SETTINGS")"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" 2>/dev/null YAD_STATUS="$?" fi - unset TAB_MAIN_MENU if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; fi pw_yad_set_form @@ -865,7 +861,28 @@ if [[ -f "${PORTWINE_DB_FILE}" ]] ; then edit_db_from_gui PW_VULKAN_USE PW_WINE_USE PW_PREFIX_NAME fi -[[ ! -z "$PW_YAD_SET" ]] && case "$PW_YAD_SET" in +[[ -n "$PW_YAD_SET" ]] && case "$PW_YAD_SET" in + gui_pw_reinstall_pp|open_changelog|\ + 128|gui_pw_update|\ + change_loc|gui_open_scripts_from_backup|\ + gui_credits) + if [[ -z "${PW_ALL_DF}" ]] ; then + export TAB_MAIN_MENU="4" + else + export TAB_MAIN_MENU="5" + fi + ;; + gui_proton_downloader|WINETRICKS|\ + 116|pw_create_prefix_backup|\ + gui_clear_pfx) + if [[ -z "${PW_ALL_DF}" ]] ; then + export TAB_MAIN_MENU="3" + else + export TAB_MAIN_MENU="4" + fi +esac + +[[ -n "$PW_YAD_SET" ]] && case "$PW_YAD_SET" in 98) portwine_delete_shortcut ;; 100) portwine_create_shortcut ;; DEBUG|102) portwine_start_debug ;; @@ -889,11 +906,13 @@ fi change_branch) change_branch ;; change_gui_start) change_gui_start ;; change_download_grid) change_download_grid ;; + open_game_folder) open_game_folder ;; 118) gui_edit_db ;; 120) gui_vkbasalt ;; 122) gui_mangohud ;; 124) gui_dgvoodoo2 ;; 126) gui_gamescope ;; + 128) gui_userconf ;; pw_create_prefix_backup) pw_create_prefix_backup ;; gui_credits) gui_credits ;; pw_start_cont_xterm) pw_start_cont_xterm ;; diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index dc2490ad..8880c96e 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -125,7 +125,6 @@ export PW_GS_HDR_FORCE_OUTPUT="0" export PW_GS_HDR_FORCE_HEATMAP="0" export PW_GS_EXPOSE_WAYLAND="0" export PW_GS_REALTIME_SCHEDULING="0" -export PW_GS_FIX_AMD_AND_INTEL="0" export PW_GS_BACKEND_SDL="0" export PW_GS_SDL_VIDEODRIVER_X11="0" export PW_GS_MANGOAPP="0" diff --git a/data_from_portwine/themes/classic.pptheme b/data_from_portwine/themes/classic.pptheme index 23caed23..f518d39f 100755 --- a/data_from_portwine/themes/classic.pptheme +++ b/data_from_portwine/themes/classic.pptheme @@ -43,40 +43,17 @@ export START_GUI_TYPE_TEXT=0 export START_GUI_TYPE_IMAGE=0 export MAIN_MENU_GUI_TYPE_LAYOUT=0 - -export VKBASALT_GUI_TYPE_LAYOUT_UP=5 -export VKBASALT_GUI_TYPE_LAYOUT_DOWN=5 -export VKBASALT_GUI_TYPE_TEXT_UP=0 - -export MANGOHUD_GUI_TYPE_LAYOUT_UP=5 -export MANGOHUD_GUI_TYPE_LAYOUT_DOWN=5 -export MANGOHUD_GUI_TYPE_TEXT_UP=0 -export MANGOHUD_GUI_TYPE_TEXT_DOWN=0 - -export DGVOODOO2_GUI_TYPE_LAYOUT_UP=5 -export DGVOODOO2_GUI_TYPE_LAYOUT_DOWN=5 -export DGVOODOO2_GUI_TYPE_TEXT_UP=0 - -export GAMESCOPE_GUI_TYPE_LAYOUT_UP=5 -export GAMESCOPE_GUI_TYPE_LAYOUT_DOWN=5 -export GAMESCOPE_GUI_TYPE_TEXT_UP=0 -export GAMESCOPE_GUI_TYPE_TEXT_DOWN=0 - -export SETTINGS_BASE_GUI_TYPE_LAYOUT=0 -export SETTINGS_BASE_GUI_TYPE_TEXT=0 - -export WINETRICKS_GUI_TYPE_LAYOUT=5 -export WINETRICKS_GUI_TYPE_TEXT=0 - -export WINE_DOWNLOAD_GUI_TYPE_LAYOUT=5 -export WINE_DOWNLOAD_GUI_TYPE_TEXT=0 - -export SETTINGS_SHORTCUT_GUI_TYPE_BOX=5 -export SETTINGS_SHORTCUT_GUI_TYPE_LAYOUT=5 -export SETTINGS_SHORTCUT_GUI_TYPE_TEXT=0 -export SETTINGS_SHORTCUT_GUI_TYPE_IMAGE=0 - export YAD_INFO_GUI_TYPE_LAYOUT=5 +export PANED_GUI_TYPE_LAYOUT_UP=5 +export PANED_GUI_TYPE_LAYOUT_DOWN=5 +export PANED_GUI_TYPE_TEXT_UP=0 +export PANED_GUI_TYPE_TEXT_DOWN=0 + +export NOTEBOOK_GUI_TYPE_BOX=5 +export NOTEBOOK_GUI_TYPE_LAYOUT=5 +export NOTEBOOK_GUI_TYPE_TEXT=0 +export NOTEBOOK_GUI_TYPE_IMAGE=0 + export PROGRESS_BAR_BORDERS_SIZE=20 export PROGRESS_BAR_WIDTH_SIZE=500 diff --git a/data_from_portwine/themes/compact.pptheme b/data_from_portwine/themes/compact.pptheme index af9f33ee..30a1a606 100755 --- a/data_from_portwine/themes/compact.pptheme +++ b/data_from_portwine/themes/compact.pptheme @@ -46,40 +46,17 @@ export START_GUI_TYPE_TEXT=2 export START_GUI_TYPE_IMAGE=2 export MAIN_MENU_GUI_TYPE_LAYOUT=0 - -export VKBASALT_GUI_TYPE_LAYOUT_UP=10 -export VKBASALT_GUI_TYPE_LAYOUT_DOWN=5 -export VKBASALT_GUI_TYPE_TEXT_UP=5 - -export MANGOHUD_GUI_TYPE_LAYOUT_UP=10 -export MANGOHUD_GUI_TYPE_LAYOUT_DOWN=10 -export MANGOHUD_GUI_TYPE_TEXT_UP=5 -export MANGOHUD_GUI_TYPE_TEXT_DOWN=5 - -export DGVOODOO2_GUI_TYPE_LAYOUT_UP=10 -export DGVOODOO2_GUI_TYPE_LAYOUT_DOWN=10 -export DGVOODOO2_GUI_TYPE_TEXT_UP=5 - -export GAMESCOPE_GUI_TYPE_LAYOUT_UP=10 -export GAMESCOPE_GUI_TYPE_LAYOUT_DOWN=10 -export GAMESCOPE_GUI_TYPE_TEXT_UP=5 -export GAMESCOPE_GUI_TYPE_TEXT_DOWN=5 - -export SETTINGS_BASE_GUI_TYPE_LAYOUT=5 -export SETTINGS_BASE_GUI_TYPE_TEXT=2 - -export WINETRICKS_GUI_TYPE_LAYOUT=5 -export WINETRICKS_GUI_TYPE_TEXT=2 - -export WINE_DOWNLOAD_GUI_TYPE_LAYOUT=5 -export WINE_DOWNLOAD_GUI_TYPE_TEXT=2 - -export SETTINGS_SHORTCUT_GUI_TYPE_BOX=2 -export SETTINGS_SHORTCUT_GUI_TYPE_LAYOUT=5 -export SETTINGS_SHORTCUT_GUI_TYPE_TEXT=2 -export SETTINGS_SHORTCUT_GUI_TYPE_IMAGE=5 - export YAD_INFO_GUI_TYPE_LAYOUT=2 +export PANED_GUI_TYPE_LAYOUT_UP=10 +export PANED_GUI_TYPE_LAYOUT_DOWN=10 +export PANED_GUI_TYPE_TEXT_UP=5 +export PANED_GUI_TYPE_TEXT_DOWN=5 + +export NOTEBOOK_GUI_TYPE_BOX=2 +export NOTEBOOK_GUI_TYPE_LAYOUT=5 +export NOTEBOOK_GUI_TYPE_TEXT=2 +export NOTEBOOK_GUI_TYPE_IMAGE=5 + export PROGRESS_BAR_BORDERS_SIZE=20 export PROGRESS_BAR_WIDTH_SIZE=500 diff --git a/data_from_portwine/themes/default.pptheme b/data_from_portwine/themes/default.pptheme index d256584d..d22ca3b9 100755 --- a/data_from_portwine/themes/default.pptheme +++ b/data_from_portwine/themes/default.pptheme @@ -60,50 +60,21 @@ export START_GUI_TYPE_IMAGE=2 # значение для images # для основного меню export MAIN_MENU_GUI_TYPE_LAYOUT=0 - -# для vkbasalt -export VKBASALT_GUI_TYPE_LAYOUT_UP=20 -export VKBASALT_GUI_TYPE_LAYOUT_DOWN=10 -export VKBASALT_GUI_TYPE_TEXT_UP=10 - -# для mangohud -export MANGOHUD_GUI_TYPE_LAYOUT_UP=20 -export MANGOHUD_GUI_TYPE_LAYOUT_DOWN=20 -export MANGOHUD_GUI_TYPE_TEXT_UP=10 -export MANGOHUD_GUI_TYPE_TEXT_DOWN=10 - -# для dgvoodoo2 -export DGVOODOO2_GUI_TYPE_LAYOUT_UP=20 -export DGVOODOO2_GUI_TYPE_LAYOUT_DOWN=20 -export DGVOODOO2_GUI_TYPE_TEXT_UP=10 - -# для gamescope -export GAMESCOPE_GUI_TYPE_LAYOUT_UP=20 -export GAMESCOPE_GUI_TYPE_LAYOUT_DOWN=20 -export GAMESCOPE_GUI_TYPE_TEXT_UP=10 -export GAMESCOPE_GUI_TYPE_TEXT_DOWN=10 - -# для основных настроек -export SETTINGS_BASE_GUI_TYPE_LAYOUT=5 -export SETTINGS_BASE_GUI_TYPE_TEXT=2 - -# для окна winetricks -export WINETRICKS_GUI_TYPE_LAYOUT=5 -export WINETRICKS_GUI_TYPE_TEXT=2 - -# для окна скачивания версий wine -export WINE_DOWNLOAD_GUI_TYPE_LAYOUT=5 -export WINE_DOWNLOAD_GUI_TYPE_TEXT=2 - -# для создания ярлыков -export SETTINGS_SHORTCUT_GUI_TYPE_BOX=2 -export SETTINGS_SHORTCUT_GUI_TYPE_LAYOUT=5 -export SETTINGS_SHORTCUT_GUI_TYPE_TEXT=2 -export SETTINGS_SHORTCUT_GUI_TYPE_IMAGE=5 - # для всплывающих окон по типу error, info, question export YAD_INFO_GUI_TYPE_LAYOUT=2 +# для vkbasalt, mangohud, dgvoodoo2, gamescope, userconf +export PANED_GUI_TYPE_LAYOUT_UP=20 +export PANED_GUI_TYPE_LAYOUT_DOWN=20 +export PANED_GUI_TYPE_TEXT_UP=10 +export PANED_GUI_TYPE_TEXT_DOWN=10 + +# для основных настроек, winetricks, для скачивания версий wine, для создания ярлыков +export NOTEBOOK_GUI_TYPE_BOX=2 +export NOTEBOOK_GUI_TYPE_LAYOUT=5 +export NOTEBOOK_GUI_TYPE_TEXT=2 +export NOTEBOOK_GUI_TYPE_IMAGE=5 + # настройки индикатора прогресса export PROGRESS_BAR_BORDERS_SIZE=20 export PROGRESS_BAR_WIDTH_SIZE=500