diff --git a/data_from_portwine/locales/PortProton.pot b/data_from_portwine/locales/PortProton.pot index 95af4327..3fbb167d 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-24 13:23+0300\n" + "POT-Creation-Date: 2024-10-08 10:20+0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -47,9 +47,6 @@ msgstr "" msgid "Gallium Zink (OpenGL to Vulkan)" msgstr "" -msgid "Launching" -msgstr "" - msgid "CREATE SHORTCUT" msgstr "" @@ -62,6 +59,9 @@ msgstr "" msgid "Delete shortcut for select file..." msgstr "" +msgid "Launching" +msgstr "" + msgid "Base settings" msgstr "" @@ -194,49 +194,6 @@ msgstr "" msgid "Run wine regedit" msgstr "" -msgid "Emulator for Nintendo game consoles with high compatibility" -msgstr "" - -msgid "Multi-arcade emulator that allows you to play old arcade games" -msgstr "" - -msgid "Multi-platform frontend for emulators with extensive settings" -msgstr "" - -msgid "Emulator for the PlayStation Portable (PSP) game console" -msgstr "" - -msgid "Emulator for the Nintendo 3DS game console" -msgstr "" - -msgid "Emulator for the Wii U game console" -msgstr "" - -msgid "Emulator for the PlayStation 1 game console with high compatibility" -msgstr "" - -msgid "Emulator for the Nintendo 64 game console" -msgstr "" - -msgid "Emulator for the Game Boy Advance game console" -msgstr "" - -msgid "Emulator for the Sega Saturn game console" -msgstr "" - -msgid "Emulator for the Xbox 360 game console" -msgstr "" - -msgid "Emulator for the Nintendo Entertainment System (NES or Dendy) game " - "console" -msgstr "" - -msgid "Emulator for the Xbox game console" -msgstr "" - -msgid "Emulator for the Sega Dreamcast game console" -msgstr "" - msgid "AUTOINSTALLS" msgstr "" @@ -267,6 +224,33 @@ msgstr "" msgid "Downloading" msgstr "" +msgid "day" +msgstr "" + +msgid "days" +msgstr "" + +msgid "hour" +msgstr "" + +msgid "and" +msgstr "" + +msgid "hours" +msgstr "" + +msgid "less than a minute" +msgstr "" + +msgid "minute" +msgstr "" + +msgid "minutes" +msgstr "" + +msgid "Time spent" +msgstr "" + msgid "Do you really want to reinstall PortProton?\\nFor this, an internet " "connection will be required." msgstr "" @@ -282,9 +266,6 @@ msgid "More than one DB file found for the application being launched." "next run.\\n" msgstr "" -msgid "UPDATING NOW" -msgstr "" - msgid "Update scripts:" msgstr "" @@ -294,6 +275,9 @@ msgstr "" msgid "REMIND ME LATER" msgstr "" +msgid "UPDATING NOW" +msgstr "" + msgid "EXIT" msgstr "" @@ -881,6 +865,9 @@ msgstr "" msgid "Display frame count" msgstr "" +msgid "Display frametime next to FPS text" +msgstr "" + msgid "Enable most of the toggleable parameters (currently excludes " "histogram)" msgstr "" @@ -985,9 +972,6 @@ msgstr "" msgid "Display used Vulkan driver (radv/amdgpu-pro/amdvlk)" msgstr "" -msgid "Display frametime next to FPS text" -msgstr "" - msgid "Show current Wine or Proton version in use" msgstr "" @@ -1407,6 +1391,19 @@ msgstr "" msgid "Allows you to select a theme for PortProton" msgstr "" +msgid "Time display" +msgstr "" + +msgid "Displays time spent in an application or game" +msgstr "" + +msgid "Sort shortcuts by time" +msgstr "" + +msgid "This setting sorts the shortcuts in the main menu depending on the " + "time spent in the application or game" +msgstr "" + msgid "GLOBAL SETTINGS (USER.CONF)" msgstr "" @@ -1573,8 +1570,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.po b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po index 75fce4f2..bf9f7384 100644 --- a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-24 13:23+0300\n" +"POT-Creation-Date: 2024-10-08 10:15+0500\n" "PO-Revision-Date: 2024-09-19 23:35+0500\n" "Last-Translator: \n" "Language-Team: \n" @@ -52,9 +52,6 @@ msgstr "Gallium Nine (DirectX 9 para MESA)" msgid "Gallium Zink (OpenGL to Vulkan)" msgstr "Gallium Zink (OpenGL a Vulkan)" -msgid "Launching" -msgstr "Lanzamiento" - msgid "CREATE SHORTCUT" msgstr "CREAR ACCESO DIRECTO" @@ -67,6 +64,9 @@ msgstr "ELIMINAR ACCESO DIRECTO" msgid "Delete shortcut for select file..." msgstr "Eliminar el acceso directo del archivo seleccionado..." +msgid "Launching" +msgstr "Lanzamiento" + msgid "Base settings" msgstr "Configuración básica" @@ -212,55 +212,6 @@ msgstr "Editor del Registro" msgid "Run wine regedit" msgstr "Ejecutar wine regedit" -msgid "Emulator for Nintendo game consoles with high compatibility" -msgstr "" -"Un emulador para consolas de juegos de Nintendo con alta compatibilidad" - -msgid "Multi-arcade emulator that allows you to play old arcade games" -msgstr "" -"Un emulador de múltiples arcade que te permite jugar juegos antiguos de " -"arcade" - -msgid "Multi-platform frontend for emulators with extensive settings" -msgstr "Un frontend multiplataforma para emuladores con ajustes extensos" - -msgid "Emulator for the PlayStation Portable (PSP) game console" -msgstr "Un emulador para la consola de juegos PlayStation Portable (PSP)" - -msgid "Emulator for the Nintendo 3DS game console" -msgstr "Un emulador para la consola de juegos Nintendo 3DS" - -msgid "Emulator for the Wii U game console" -msgstr "Un emulador para la consola de juegos Wii U" - -msgid "Emulator for the PlayStation 1 game console with high compatibility" -msgstr "" -"Un emulador para la consola de juegos PlayStation 1 con alta compatibilidad" - -msgid "Emulator for the Nintendo 64 game console" -msgstr "Un emulador para la consola de juegos Nintendo 64" - -msgid "Emulator for the Game Boy Advance game console" -msgstr "Un emulador para la consola de juegos Game Boy Advance" - -msgid "Emulator for the Sega Saturn game console" -msgstr "Un emulador para la consola de juegos Sega Saturn" - -msgid "Emulator for the Xbox 360 game console" -msgstr "Un emulador para la consola de juegos Xbox 360" - -msgid "" -"Emulator for the Nintendo Entertainment System (NES or Dendy) game console" -msgstr "" -"Un emulador para la consola de juegos Nintendo Entertainment System (NES o " -"Dendy)" - -msgid "Emulator for the Xbox game console" -msgstr "Un emulador para la consola de juegos Xbox" - -msgid "Emulator for the Sega Dreamcast game console" -msgstr "Un emulador para la consola de juegos Sega Dreamcast" - msgid "AUTOINSTALLS" msgstr "INSTALACIONES AUTOMÁTICAS" @@ -296,6 +247,33 @@ msgstr "" msgid "Downloading" msgstr "Descargando" +msgid "day" +msgstr "" + +msgid "days" +msgstr "" + +msgid "hour" +msgstr "" + +msgid "and" +msgstr "" + +msgid "hours" +msgstr "" + +msgid "less than a minute" +msgstr "" + +msgid "minute" +msgstr "" + +msgid "minutes" +msgstr "" + +msgid "Time spent" +msgstr "" + msgid "" "Do you really want to reinstall PortProton?\\nFor this, an internet " "connection will be required." @@ -317,9 +295,6 @@ msgstr "" "está iniciando. Selecciona el que se requiera, o elimina el archivo de base " "de datos adicional antes del próximo inicio" -msgid "UPDATING NOW" -msgstr "ACTUALIZANDO AHORA" - msgid "Update scripts:" msgstr "Actualizar scripts:" @@ -329,6 +304,9 @@ msgstr "NO SOCIO" msgid "REMIND ME LATER" msgstr "VUELVA MÁS TARDE" +msgid "UPDATING NOW" +msgstr "ACTUALIZANDO AHORA" + msgid "EXIT" msgstr "SALIR" @@ -1085,6 +1063,9 @@ msgstr "" msgid "Display frame count" msgstr "Mostrar recuento de cuadros" +msgid "Display frametime next to FPS text" +msgstr "Mostrar tiempo de cuadro junto al texto de FPS" + msgid "Enable most of the toggleable parameters (currently excludes histogram)" msgstr "" "Activar la mayoría de los parámetros conmutables (actualmente excluye el " @@ -1204,9 +1185,6 @@ msgstr "Mostrar el uso de VRAM del sistema" msgid "Display used Vulkan driver (radv/amdgpu-pro/amdvlk)" msgstr "Mostrar el controlador Vulkan utilizado (radv/amdgpu-pro/amdvlk)" -msgid "Display frametime next to FPS text" -msgstr "Mostrar tiempo de cuadro junto al texto de FPS" - msgid "Show current Wine or Proton version in use" msgstr "Mostrar la versión actual de Wine o Proton en uso" @@ -1847,6 +1825,20 @@ 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 "Time display" +msgstr "" + +msgid "Displays time spent in an application or game" +msgstr "" + +msgid "Sort shortcuts by time" +msgstr "" + +msgid "" +"This setting sorts the shortcuts in the main menu depending on the time " +"spent in the application or game" +msgstr "" + #, fuzzy msgid "GLOBAL SETTINGS (USER.CONF)" msgstr "AJUSTES USUARIO.CONF" @@ -2119,6 +2111,56 @@ msgstr "" msgid "THIRD PARTY LIBRARIES" msgstr "" +#~ msgid "Emulator for Nintendo game consoles with high compatibility" +#~ msgstr "" +#~ "Un emulador para consolas de juegos de Nintendo con alta compatibilidad" + +#~ msgid "Multi-arcade emulator that allows you to play old arcade games" +#~ msgstr "" +#~ "Un emulador de múltiples arcade que te permite jugar juegos antiguos de " +#~ "arcade" + +#~ msgid "Multi-platform frontend for emulators with extensive settings" +#~ msgstr "Un frontend multiplataforma para emuladores con ajustes extensos" + +#~ msgid "Emulator for the PlayStation Portable (PSP) game console" +#~ msgstr "Un emulador para la consola de juegos PlayStation Portable (PSP)" + +#~ msgid "Emulator for the Nintendo 3DS game console" +#~ msgstr "Un emulador para la consola de juegos Nintendo 3DS" + +#~ msgid "Emulator for the Wii U game console" +#~ msgstr "Un emulador para la consola de juegos Wii U" + +#~ msgid "Emulator for the PlayStation 1 game console with high compatibility" +#~ msgstr "" +#~ "Un emulador para la consola de juegos PlayStation 1 con alta " +#~ "compatibilidad" + +#~ msgid "Emulator for the Nintendo 64 game console" +#~ msgstr "Un emulador para la consola de juegos Nintendo 64" + +#~ msgid "Emulator for the Game Boy Advance game console" +#~ msgstr "Un emulador para la consola de juegos Game Boy Advance" + +#~ msgid "Emulator for the Sega Saturn game console" +#~ msgstr "Un emulador para la consola de juegos Sega Saturn" + +#~ msgid "Emulator for the Xbox 360 game console" +#~ msgstr "Un emulador para la consola de juegos Xbox 360" + +#~ msgid "" +#~ "Emulator for the Nintendo Entertainment System (NES or Dendy) game console" +#~ msgstr "" +#~ "Un emulador para la consola de juegos Nintendo Entertainment System (NES " +#~ "o Dendy)" + +#~ msgid "Emulator for the Xbox game console" +#~ msgstr "Un emulador para la consola de juegos Xbox" + +#~ msgid "Emulator for the Sega Dreamcast game console" +#~ msgstr "Un emulador para la consola de juegos Sega Dreamcast" + #, fuzzy #~ msgid "scripts" #~ msgstr "Actualizar scripts:" diff --git a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po index 3f0d9288..2a24f6e8 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-24 13:23+0300\n" -"PO-Revision-Date: 2024-09-19 23:32+0500\n" +"POT-Creation-Date: 2024-10-08 10:15+0500\n" +"PO-Revision-Date: 2024-10-08 10:15+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 "" @@ -52,9 +52,6 @@ msgstr "Gallium Nine (поддержка DirectX 9 для MESA)" msgid "Gallium Zink (OpenGL to Vulkan)" msgstr "Gallium Zink (трансляция OpenGL в Vulkan)" -msgid "Launching" -msgstr "Запуск" - msgid "CREATE SHORTCUT" msgstr "СОЗДАТЬ ЯРЛЫК" @@ -67,13 +64,15 @@ msgstr "УДАЛИТЬ ЯРЛЫК" msgid "Delete shortcut for select file..." msgstr "Удалить ярлык для выбранного файла..." +msgid "Launching" +msgstr "Запуск" + msgid "Base settings" msgstr "Основные настройки" msgid "Edit database file for" msgstr "Редактировать файл настроек для" -#, fuzzy msgid "Global settings" msgstr "Глобальные настройки" @@ -152,7 +151,6 @@ msgstr "История изменений" msgid "Change language" msgstr "Сменить язык" -#, fuzzy msgid "Global settings (user.conf)" msgstr "Глобальные настройки (user.conf)" @@ -214,49 +212,6 @@ msgstr "Редактор реестра" msgid "Run wine regedit" msgstr "Запустить редактор реестра Wine" -msgid "Emulator for Nintendo game consoles with high compatibility" -msgstr "Эмулятор игровых консолей Nintendo с высокой совместимостью" - -msgid "Multi-arcade emulator that allows you to play old arcade games" -msgstr "Мультиаркадный эмулятор, позволяющий играть в старые аркадные игры" - -msgid "Multi-platform frontend for emulators with extensive settings" -msgstr "Мультиплатформенный интерфейс для эмуляторов с обширными настройками" - -msgid "Emulator for the PlayStation Portable (PSP) game console" -msgstr "Эмулятор игровой консоли PlayStation Portable (PSP)" - -msgid "Emulator for the Nintendo 3DS game console" -msgstr "Эмулятор игровой консоли Nintendo 3DS" - -msgid "Emulator for the Wii U game console" -msgstr "Эмулятор игровой консоли Wii U" - -msgid "Emulator for the PlayStation 1 game console with high compatibility" -msgstr "Эмулятор игровой консоли PlayStation 1 с высокой совместимостью" - -msgid "Emulator for the Nintendo 64 game console" -msgstr "Эмулятор игровой консоли Nintendo 64" - -msgid "Emulator for the Game Boy Advance game console" -msgstr "Эмулятор игровой консоли Game Boy Advance" - -msgid "Emulator for the Sega Saturn game console" -msgstr "Эмулятор игровой консоли Sega Saturn" - -msgid "Emulator for the Xbox 360 game console" -msgstr "Эмулятор игровой консоли Xbox 360" - -msgid "" -"Emulator for the Nintendo Entertainment System (NES or Dendy) game console" -msgstr "Эмулятор игровой консоли Nintendo Entertainment System (NES или Dendy)" - -msgid "Emulator for the Xbox game console" -msgstr "Эмулятор игровой консоли Xbox" - -msgid "Emulator for the Sega Dreamcast game console" -msgstr "Эмулятор игровой консоли Sega Dreamcast" - msgid "AUTOINSTALLS" msgstr "АВТОУСТАНОВКА" @@ -291,6 +246,33 @@ msgstr "" msgid "Downloading" msgstr "Загружается" +msgid "day" +msgstr "день" + +msgid "days" +msgstr "дней" + +msgid "hour" +msgstr "час" + +msgid "and" +msgstr "и" + +msgid "hours" +msgstr "часов" + +msgid "less than a minute" +msgstr "меньше минуты" + +msgid "minute" +msgstr "минута" + +msgid "minutes" +msgstr "минут" + +msgid "Time spent" +msgstr "Проведено времени" + msgid "" "Do you really want to reinstall PortProton?\\nFor this, an internet " "connection will be required." @@ -312,10 +294,6 @@ msgstr "" "ppdb.\\nВыберите нужный или удалите лишний файл .ppdb перед следующим " "запуском\\n" -# изменить -msgid "UPDATING NOW" -msgstr "ОБНОВИТЬ СЕЙЧАС" - msgid "Update scripts:" msgstr "Обновление скриптов:" @@ -325,6 +303,10 @@ msgstr "НЕ НАПОМИНАТЬ" msgid "REMIND ME LATER" msgstr "НАПОМНИТЬ ПОЗЖЕ" +# изменить +msgid "UPDATING NOW" +msgstr "ОБНОВИТЬ СЕЙЧАС" + msgid "EXIT" msgstr "ВЫХОД" @@ -1090,6 +1072,9 @@ msgstr "" msgid "Display frame count" msgstr "Отображение количества кадров" +msgid "Display frametime next to FPS text" +msgstr "Отображение времени кадра рядом с FPS" + msgid "Enable most of the toggleable parameters (currently excludes histogram)" msgstr "" "Включить большинство переключаемых параметров (в настоящее время исключает " @@ -1213,9 +1198,6 @@ msgstr "Показать использование VRAM" msgid "Display used Vulkan driver (radv/amdgpu-pro/amdvlk)" msgstr "Показать используемый драйвер Vulkan (radv/amdgpu-pro/amdvlk)" -msgid "Display frametime next to FPS text" -msgstr "Отображение времени кадра рядом с FPS" - msgid "Show current Wine or Proton version in use" msgstr "Показать текущую используемую версию Wine или Proton" @@ -1746,7 +1728,6 @@ msgstr "Выключить" msgid "Enable" msgstr "Включить" -#, fuzzy msgid "Change global settings" msgstr "Изменить глобальные настройки" @@ -1815,7 +1796,22 @@ msgstr "Выбор графической темы" msgid "Allows you to select a theme for PortProton" msgstr "Позволяет выбрать тему для PortProton" -#, fuzzy +msgid "Time display" +msgstr "Отображение времени" + +msgid "Displays time spent in an application or game" +msgstr "Отображает общее время проведённое в приложении или игре" + +msgid "Sort shortcuts by time" +msgstr "Сортировка ярлыков по времени" + +msgid "" +"This setting sorts the shortcuts in the main menu depending on the time " +"spent in the application or game" +msgstr "" +"Эта настройка сортирует ярлыки в главном меню в зависимости от времени, " +"проведенного в приложении или игре" + msgid "GLOBAL SETTINGS (USER.CONF)" msgstr "ГЛОБАЛЬНЫЕ НАСТРОЙКИ (USER.CONF)" @@ -2146,6 +2142,54 @@ msgstr "ПРИСОЕДЕНИТЬСЯ" msgid "THIRD PARTY LIBRARIES" msgstr "БИБЛИОТЕКИ" +#~ msgid "not known yet" +#~ msgstr "пока неизвестно" + +#~ msgid "Emulator for Nintendo game consoles with high compatibility" +#~ msgstr "Эмулятор игровых консолей Nintendo с высокой совместимостью" + +#~ msgid "Multi-arcade emulator that allows you to play old arcade games" +#~ msgstr "Мультиаркадный эмулятор, позволяющий играть в старые аркадные игры" + +#~ msgid "Multi-platform frontend for emulators with extensive settings" +#~ msgstr "" +#~ "Мультиплатформенный интерфейс для эмуляторов с обширными настройками" + +#~ msgid "Emulator for the PlayStation Portable (PSP) game console" +#~ msgstr "Эмулятор игровой консоли PlayStation Portable (PSP)" + +#~ msgid "Emulator for the Nintendo 3DS game console" +#~ msgstr "Эмулятор игровой консоли Nintendo 3DS" + +#~ msgid "Emulator for the Wii U game console" +#~ msgstr "Эмулятор игровой консоли Wii U" + +#~ msgid "Emulator for the PlayStation 1 game console with high compatibility" +#~ msgstr "Эмулятор игровой консоли PlayStation 1 с высокой совместимостью" + +#~ msgid "Emulator for the Nintendo 64 game console" +#~ msgstr "Эмулятор игровой консоли Nintendo 64" + +#~ msgid "Emulator for the Game Boy Advance game console" +#~ msgstr "Эмулятор игровой консоли Game Boy Advance" + +#~ msgid "Emulator for the Sega Saturn game console" +#~ msgstr "Эмулятор игровой консоли Sega Saturn" + +#~ msgid "Emulator for the Xbox 360 game console" +#~ msgstr "Эмулятор игровой консоли Xbox 360" + +#~ msgid "" +#~ "Emulator for the Nintendo Entertainment System (NES or Dendy) game console" +#~ msgstr "" +#~ "Эмулятор игровой консоли Nintendo Entertainment System (NES или Dendy)" + +#~ msgid "Emulator for the Xbox game console" +#~ msgstr "Эмулятор игровой консоли Xbox" + +#~ msgid "Emulator for the Sega Dreamcast game console" +#~ msgstr "Эмулятор игровой консоли Sega Dreamcast" + #~ msgid "scripts" #~ msgstr "версия" diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 08ec756d..10f81810 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -186,6 +186,7 @@ eval_translations () { } create_translations () { + local po_file msgid msgstr if [[ ! -d "${PW_CACHE_LANG_PATH}" ]] ; then create_new_dir "${PW_CACHE_LANG_PATH}" fi @@ -456,12 +457,13 @@ try_download () { no_mirror=true esac + local filename if [[ -n "${PW_AUTOINSTALL_EXE}" ]] \ && [[ "$no_mirror" == "true" ]] then - local filename="$(basename "${PW_AUTOINSTALL_EXE}")" + filename="$(basename "${PW_AUTOINSTALL_EXE}")" else - local filename="$(basename "$1")" + filename="$(basename "$1")" fi if [[ "${MIRROR}" == CLOUD ]] \ @@ -742,18 +744,170 @@ unpack () { debug_timer () { if [[ "$1" == "--start" ]] ; then START=$(date +%s%N) + if [[ "$2" == "-s" ]] ; then + case $3 in + PW_TIME_IN_GAME) + START_PW_TIME_IN_GAME=$START ;; + UPDATE_ETERFUND) + START_UPDATE_ETERFUND=$START ;; + UPDATE_GITHUB) + START_UPDATE_GITHUB=$START ;; + esac + fi elif [[ "$1" == "--end" ]] ; then END=$(date +%s%N) - DIFF=$((( END - START )/1000000)) if [[ -n "$2" ]] ; then - if [[ "$2" != "-s" ]] ; then + if [[ "$2" == "-s" ]] ; then + case $3 in + PW_TIME_IN_GAME) + START=$START_PW_TIME_IN_GAME ;; + UPDATE_ETERFUND) + START=$START_UPDATE_ETERFUND ;; + UPDATE_GITHUB) + START=$START_UPDATE_GITHUB ;; + esac + export "$3"="$((( END - START )/1000000 ))" + else + DIFF=$((( END - START )/1000000 )) print_warning "It took $DIFF milliseconds for $2" fi else + DIFF=$((( END - START )/1000000 )) print_warning "It took $DIFF milliseconds" fi fi - return 0 +} + +# Поиск нужного .desktop файла по $portwine_exe +search_desktop_file () { + local count desktop_file desktop_file_new EXEC_DESKTOP EXEC_DESKTOP_NEW TIME_TOTAL i j df + unset TIME_CURRENT_ARRAY DESKTOP_FILES_ARRAY + count=0 + for desktop_file in "$PORT_WINE_PATH"/* ; do + desktop_file_new="${desktop_file//"$PORT_WINE_PATH/"/}" + if [[ $desktop_file_new =~ .desktop$ ]] ; then + if [[ ! $desktop_file_new =~ (PortProton|readme) ]] ; then + while IFS= read -r line ; do + if [[ $line =~ ^Exec= ]] ; then + if check_flatpak ; then + EXEC_DESKTOP=${line//Exec=flatpak run ru.linux_gaming.PortProton /} + else + EXEC_DESKTOP=${line//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /} + fi + EXEC_DESKTOP_NEW=${EXEC_DESKTOP//\"/} + fi + if [[ $line =~ ^#Time= ]] && [[ $portwine_exe == "$EXEC_DESKTOP_NEW" ]] ; then + TIME_CURRENT=${line//#Time=/} + fi + done < "$desktop_file" + if [[ $portwine_exe == "$EXEC_DESKTOP_NEW" ]] ; then + # Когда новый .desktop файл + if [[ $TIME_CURRENT == "" ]] ; then + echo "#NEW_DESKTOP" >> "$desktop_file" + TIME_CURRENT="0" + # Для битых #Time= + elif [[ ! $TIME_CURRENT == "" ]] && [[ ! $TIME_CURRENT =~ [0-9]+ ]] ; then + TIME_CURRENT="0" + fi + TIME_CURRENT_ARRAY+=($TIME_CURRENT) + unset TIME_CURRENT + DESKTOP_FILES_ARRAY["$count"]="$desktop_file" + (( count++ )) + fi + fi + fi + done + IFS="$orig_IFS" + + # Если существуют .desktop файлы на один и тот же .exe файл, то среди них выбирается + # текущее время берётся из того .desktop файла, в котором проведено больше времени + # и запись этого большего времени будет потом записываться во все .desktop файлы + # у которых общий .exe файл, это нужно для того, чтобы в главном меню .desktop файлы + # упорядочивались нормально. + for i in "${!TIME_CURRENT_ARRAY[@]}" ; do + for j in "${!TIME_CURRENT_ARRAY[@]}" ; do + if (( ${TIME_CURRENT_ARRAY[$i]} > ${TIME_CURRENT_ARRAY[$j]} )) ; then + tmp=${TIME_CURRENT_ARRAY[$i]} + TIME_CURRENT_ARRAY[i]=${TIME_CURRENT_ARRAY[$j]} + TIME_CURRENT_ARRAY[j]=$tmp + fi + done + done + + TIME_CURRENT="${TIME_CURRENT_ARRAY[0]}" + if [[ -n $PW_TIME_IN_GAME ]] ; then + TIME_TOTAL=$(( TIME_CURRENT + PW_TIME_IN_GAME )) + for df in "${DESKTOP_FILES_ARRAY[@]}" ; do + sed -i '/^#Time=/d' "$df" + echo "#Time=$TIME_TOTAL" >> "$df" + done + else + for df in "${DESKTOP_FILES_ARRAY[@]}" ; do + sed -i '/^#Time=/d' "$df" + echo "#Time=$TIME_CURRENT" >> "$df" + done + fi +} + +# Конвертация секунд в дни, часы, минуты +seconds_to_time () { + [[ -z $1 ]] && return 0 + local seconds days hours minutes + seconds=$1 + + days=$((seconds / (60 * 60 * 24))) + seconds=$((seconds % (60 * 60 * 24))) + + hours=$((seconds / (60 * 60))) + seconds=$((seconds % (60 * 60))) + + minutes=$((seconds / 60)) + seconds=$((seconds % 60)) + + if [[ $days =~ ^0$ ]] ; then + days= + elif [[ $days =~ ^1$ ]] ; then + days="$days ${translations[day]}, " + elif [[ $days =~ ^([2-9]1|[1-9][0-9]+1)$ ]] && [[ $LANGUAGE == ru ]] ; then + days="$days ${translations[day]}, " + elif [[ $days =~ ^([2-4]|[2-9][2-4]|[1-9][0-9]+[2-4])$ ]] && [[ $LANGUAGE == ru ]] ; then + days="$days дня, " + else + days="$days ${translations[days]}, " + fi + + if [[ $hours =~ ^0$ ]] ; then + hours= + elif [[ $hours =~ ^1$ ]] ; then + hours="$hours ${translations[hour]} ${translations[and]} " + elif [[ $hours =~ ^([2-4]|2[2-4])$ ]] && [[ $LANGUAGE == ru ]] ; then + hours="$hours часа ${translations[and]} " + elif [[ $hours =~ ^21$ ]] && [[ $LANGUAGE == ru ]] ; then + hours="$hours ${translations[hour]} ${translations[and]} " + else + hours="$hours ${translations[hours]} ${translations[and]} " + fi + + if [[ $minutes =~ ^0$ ]] ; then + hours=${hours//" ${translations[and]} "/} + minutes= + if [[ $days == "" ]] || [[ $hours == "" ]] ; then + days=${days//","/} + fi + if [[ $days == "" ]] && [[ $hours == "" ]] ; then + minutes="${translations[less than a minute]}" + fi + elif [[ $minutes =~ ^1$ ]] ; then + minutes="$minutes ${translations[minute]}" + elif [[ $minutes =~ ^[2-5]1$ ]] && [[ $LANGUAGE == ru ]] ; then + minutes="$minutes ${translations[minute]}" + elif [[ $minutes =~ ^([2-4]|[2-5][2-4])$ ]] && [[ $LANGUAGE == ru ]] ; then + minutes="$minutes минуты" + else + minutes="$minutes ${translations[minutes]}" + fi + + echo -e "\n${translations[Time spent]}: $days$hours$minutes" } combobox_fix () { @@ -761,6 +915,7 @@ combobox_fix () { print_error "no argument specified for combobox_fix" return 1 else + local name1 name2 if [[ "$1" == "--disabled" ]] ; then if [[ -z "$3" ]] ; then echo "disabled" @@ -783,6 +938,7 @@ combobox_fix () { fi name2="$2" fi + local name3 name4 name3="${name2//\!${name1}\!/\!}" name3="!${name3//${name1}\!/\!}" name3="${name3//\!\!/\!}" @@ -1258,7 +1414,7 @@ pw_exit_tray () { export -f pw_exit_tray stop_portwine () { - [[ "$int_xneur" == "1" ]] && xneur & + [[ "$int_xneur" == "1" ]] && xneur & if [[ "$PW_USE_US_LAYOUT" == "1" ]] \ && ! check_wayland_session \ @@ -1292,12 +1448,17 @@ stop_portwine () { pw_stop_progress_bar try_remove_file "${PORT_SCRIPTS_PATH}/0" try_remove_file "${PORT_SCRIPTS_PATH}/1" - kill_portwine && + kill_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 pw_exit_tray pw_auto_create_shortcut add_in_stop_portwine + + debug_timer --end -s "PW_TIME_IN_GAME" + PW_TIME_IN_GAME=$(( PW_TIME_IN_GAME / 1000 )) # в секундах + search_desktop_file + case "$1" in --restart) restart_pp ;; @@ -1755,23 +1916,21 @@ pw_port_update () { URL_GITHUB="https://raw.githubusercontent.com/Castro-Fidel/PortWINE/${BRANCH}/data_from_portwine/scripts/var" pw_check_update () { - debug_timer --start + debug_timer --start -s "UPDATE_ETERFUND" if ! timeout 2 curl -f -s --list-only "$URL_ETERFUND" > "${PORT_WINE_TMP_PATH}/curent_var_ver" then print_warning "https://gitlab.eterfund.ru/ broken. Skip it..." UPDATE_SKIP_ETERFUND="1" fi - debug_timer --end -s - UPDATE_ETERFUND="$DIFF" + debug_timer --end -s "UPDATE_ETERFUND" - debug_timer --start + debug_timer --start -s "UPDATE_GITHUB" if ! timeout 2 curl -f -s --list-only "$URL_GITHUB" > "${PORT_WINE_TMP_PATH}/curent_var_ver" then print_warning "https://raw.githubusercontent.com/ broken. Skip it..." UPDATE_SKIP_GITHUB="1" fi - debug_timer --end -s - UPDATE_GITHUB="$DIFF" + debug_timer --end -s "UPDATE_GITHUB" if [[ "$UPDATE_SKIP_ETERFUND" == "1" ]] \ && [[ "$UPDATE_SKIP_GITHUB" == "1" ]] ; then @@ -2191,14 +2350,12 @@ pw_find_exe () { --button="${translations[CANCEL]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1 \ --button="${translations[OK]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 2>/dev/null)" YAD_STATUS="$?" - if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then - if [[ -z "${PW_SET_FIND_EXE}" ]] ; then - print_info "Restarting..." - restart_pp - fi - exit 0 - fi + IFS="$orig_IFS" + if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then + print_info "Restarting..." + restart_pp + fi if [[ -n "${PW_SET_FIND_EXE}" ]] ; then portwine_exe="${PW_PATH_FOR_FIND}$(echo "${PW_SET_FIND_EXE}" | awk -F'|' '{print $1}')" @@ -2571,7 +2728,7 @@ start_portwine () { if check_gamescope_session ; then export PW_GAMEMODERUN_SLR="" elif [[ "$PW_USE_GAMEMODE" = "1" ]] \ - && [[ -n "$DBUS_SESSION_BUS_ADDRESS" ]] + && [[ -n "$DBUS_SESSION_BUS_ADDRESS" ]] then if command -v gamemoded &>/dev/null ; then export GAMEMODERUN=1 @@ -2992,7 +3149,7 @@ start_portwine () { 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 + if [[ -f "${PATH_TO_DXVK_FILES}/x64/${wine_dxvk_dll}.dll" ]] ; then try_force_link_file "${PATH_TO_DXVK_FILES}/x32/${wine_dxvk_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_dxvk_dll}.dll" try_force_link_file "${PATH_TO_DXVK_FILES}/x64/${wine_dxvk_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_dxvk_dll}.dll" var_winedlloverride_update "${wine_dxvk_dll}=n" @@ -3531,6 +3688,7 @@ portwine_launch () { PW_VD_TMP=(explorer "/desktop=PortProton,${PW_SCREEN_RESOLUTION}") fi + debug_timer --start -s "PW_TIME_IN_GAME" case "$portwine_exe" in *.[Ee][Xx][Ee]) pw_run ${PW_VD_TMP[@]} ${WINE_WIN_START} "$portwine_exe" @@ -4674,7 +4832,7 @@ gui_mangohud () { export PW_MANGOHUD FPS_LIMIT edit_db_from_gui MANGOHUD_CONFIG PW_MANGOHUD FPS_LIMIT - if [[ "${YAD_MANGOHUD_STATUS}" == "184" ]] ; then + if [[ "${YAD_MANGOHUD_STATUS}" == "184" ]] ; then PW_MANGOHUD="1" pw_init_runtime pw_mangohud_check @@ -5093,11 +5251,29 @@ gui_userconf () { GPU_VAR="disabled" fi + if [[ -n "${DESKTOP_WITH_TIME}" ]] \ + && [[ "${DESKTOP_WITH_TIME}" != "disabled" ]] + then + DESKTOP_WITH_TIME="enabled" + else + DESKTOP_WITH_TIME="disabled" + fi + + if [[ -n "${SORT_WITH_TIME}" ]] \ + && [[ "${SORT_WITH_TIME}" == "disabled" ]] + then + SORT_WITH_TIME="disabled" + else + SORT_WITH_TIME="enabled" + 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="${translations[Choose a graphics card to run the game]}!${translations[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="${translations[Choice wine audio driver]}!${translations[Fixes sound popling if choice alsa]} :CB" "$(combobox_fix --disabled "${SOUND_DRIVER_VAR}" "alsa!oss!pulse")" \ - --field="${translations[Choice gui themes]}!${translations[Allows you to select a theme for PortProton]} :CB" "$(combobox_fix "${GUI_THEME}" "default!compact!classic")" \ + --gui-type-text="$PANED_GUI_TYPE_TEXT_DOWN" --gui-type-layout="$PANED_GUI_TYPE_LAYOUT_DOWN" \ + --field="${translations[Choose a graphics card to run the game]}!${translations[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="${translations[Choice wine audio driver]}!${translations[Fixes sound popling if choice alsa]} :CB" "$(combobox_fix --disabled "$SOUND_DRIVER_VAR" "alsa!oss!pulse")" \ + --field="${translations[Choice gui themes]}!${translations[Allows you to select a theme for PortProton]} :CB" "$(combobox_fix "$GUI_THEME" "default!compact!classic")" \ + --field="${translations[Time display]}!${translations[Displays time spent in an application or game]} :CB" "$(combobox_fix "$DESKTOP_WITH_TIME" "enabled!disabled")" \ + --field="${translations[Sort shortcuts by time]}!${translations[This setting sorts the shortcuts in the main menu depending on the time spent in the application or game]} :CB" "$(combobox_fix "$SORT_WITH_TIME" "enabled!disabled")" \ 1> "${PW_TMPFS_PATH}/tmp_yad_userconf_set_cb" 2>/dev/null & "${pw_yad}" --key=$KEY_USERCONF_GUI --paned --sensitive \ @@ -5133,7 +5309,9 @@ gui_userconf () { PW_GPU_USE="${PW_ADD_SETTINGS_UC[0]}" PW_SOUND_DRIVER_USE="${PW_ADD_SETTINGS_UC[1]}" GUI_THEME="${PW_ADD_SETTINGS_UC[2]}" - edit_user_conf_from_gui PW_GPU_USE PW_SOUND_DRIVER_USE GUI_THEME + DESKTOP_WITH_TIME="${PW_ADD_SETTINGS_UC[3]}" + SORT_WITH_TIME="${PW_ADD_SETTINGS_UC[4]}" + edit_user_conf_from_gui PW_GPU_USE PW_SOUND_DRIVER_USE GUI_THEME DESKTOP_WITH_TIME SORT_WITH_TIME restart_pp ;; esac @@ -5207,10 +5385,11 @@ portwine_create_shortcut () { [[ -z "${PW_SHORTCUT_STEAM}" ]] && PW_SHORTCUT_STEAM="FALSE" if [[ -z "${PORTPROTON_NAME}" ]] ; then - export name_desktop="$(basename "$portwine_exe")" + name_desktop="$(basename "$portwine_exe")" else - export name_desktop="${PORTPROTON_NAME}" + name_desktop="${PORTPROTON_NAME}" fi + export name_desktop [[ -z "${name_desktop_png}" ]] && name_desktop_png="${PORTPROTON_NAME// /_}" @@ -5327,17 +5506,14 @@ portwine_create_shortcut () { if [[ "$PW_NO_RESTART_PPDB" != "1" ]] ; then print_info "Restarting PP..." - if [[ "${PW_GUI_START}" == "NOTEBOOK" ]] ; then - unset PW_YAD_FORM_TAB - fi + [[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB 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 + [[ -n $KEY_MENU ]] && unset portwine_exe + [[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB + [[ -z $LINKS ]] && restart_pp fi } @@ -5354,15 +5530,12 @@ pw_auto_create_shortcut () { unset LINKS for link_file in "${PORT_WINE_PATH}"/data/prefixes/*/drive_c/users/*/Desktop/*.lnk do - if ! echo "$link_file" | grep "\*.lnk" &>/dev/null ; then - link_file=$(readlink -f "${link_file}") - LINKS+=("${link_file// /@_@}") - else - continue - fi + link_file=$(readlink -f "${link_file}") + LINKS+=(${link_file// /@_@}) done - [[ -z "$LINKS" ]] && return 0 - SORTED_LINKS=($(echo ${LINKS[@]} | tr ' ' '\n' | sort -u)) + + [[ -z "${LINKS[0]}" ]] && return 0 + read -r -a SORTED_LINKS < <(echo ${LINKS[@]} | tr ' ' '\n' | sort -u | tr '\n' ' ') for link_file in "${SORTED_LINKS[@]//@_@/ }" ; do if command -v exiftool &>/dev/null ; then @@ -5402,10 +5575,8 @@ pw_auto_create_shortcut () { link_cmd=$(sed -n 's/^Command Line Arguments\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp") fi - try_remove_file "$link_file" - if ! exe_path="$(realpath "${link_path}" 2>/dev/null)" ; then - print_warning "Removed broken link for: $link_name" + print_warning "Link broken for: $link_name" else print_info "Created link for: $link_name" PORTPROTON_NAME="$link_name" @@ -5851,21 +6022,12 @@ button_click () { --desktop) kill -s SIGUSR1 $(pgrep -a yad | grep "\--key=${KEY_MENU}" | awk '{print $1}') > /dev/null 2>&1 PW_YAD_SET="${PORT_WINE_PATH}/${PW_YAD_SET//#@_@#/ }" - if [[ $PW_DESKTOP_FILES_REGEX == "1" ]] ; then - PW_YAD_SET="${PW_YAD_SET//#+_1#/\(}" - PW_YAD_SET="${PW_YAD_SET//#+_2#/\)}" - PW_YAD_SET="${PW_YAD_SET//#+_3#/\!}" - PW_YAD_SET="${PW_YAD_SET//#+_4#/\$}" - PW_YAD_SET="${PW_YAD_SET//#+_5#/\%}" - PW_YAD_SET="${PW_YAD_SET//#+_6#/\&}" - PW_YAD_SET="${PW_YAD_SET//#+_7#/\`}" - PW_YAD_SET="${PW_YAD_SET//#+_8#/\'}" - PW_YAD_SET="${PW_YAD_SET//#+_9#/\"}" - PW_YAD_SET="${PW_YAD_SET//#+_10#/\>}" - PW_YAD_SET="${PW_YAD_SET//#+_11#/\<}" - PW_YAD_SET="${PW_YAD_SET//#+_12#/\\}" - PW_YAD_SET="${PW_YAD_SET//#+_13#/\|}" - PW_YAD_SET="${PW_YAD_SET//#+_14#/\;}" + if [[ -n $PW_DESKTOP_FILES_REGEX ]] ; then + local count=1 + for y in "${PW_DESKTOP_FILES_REGEX[@]}" ; do + PW_YAD_SET="${PW_YAD_SET//#+_$count#/$y}" + (( count++ )) + done fi if check_flatpak then PW_EXEC_FROM_DESKTOP="$(grep Exec "$PW_YAD_SET" | head -n 1 | sed 's|flatpak run ru.linux_gaming.PortProton|\"${PORT_SCRIPTS_PATH}/start.sh\"|' | awk -F'=' '{print $2}')" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_004_BATTLE_NET b/data_from_portwine/scripts/pw_autoinstall/PW_BATTLE_NET similarity index 100% rename from data_from_portwine/scripts/pw_autoinstall/PW_004_BATTLE_NET rename to data_from_portwine/scripts/pw_autoinstall/PW_BATTLE_NET diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_003_EPIC b/data_from_portwine/scripts/pw_autoinstall/PW_EPIC similarity index 100% rename from data_from_portwine/scripts/pw_autoinstall/PW_003_EPIC rename to data_from_portwine/scripts/pw_autoinstall/PW_EPIC diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_001_LGC b/data_from_portwine/scripts/pw_autoinstall/PW_LGC similarity index 100% rename from data_from_portwine/scripts/pw_autoinstall/PW_001_LGC rename to data_from_portwine/scripts/pw_autoinstall/PW_LGC diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_RETROARCH b/data_from_portwine/scripts/pw_autoinstall/PW_RETROARCH index 6d7bea28..cbac43a0 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_RETROARCH +++ b/data_from_portwine/scripts/pw_autoinstall/PW_RETROARCH @@ -1,6 +1,6 @@ #!/usr/bin/env bash # Author: chal55rus (Sergey P.) -# type: games +# type: emulators # name: RetroArch # image: retroarch # info_en: diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_STALCRAFT b/data_from_portwine/scripts/pw_autoinstall/PW_STALCRAFT index 155b3682..50426ed3 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_STALCRAFT +++ b/data_from_portwine/scripts/pw_autoinstall/PW_STALCRAFT @@ -1,8 +1,8 @@ #!/usr/bin/env bash # Author: Castro-Fidel (linux-gaming.ru) # type: games -# name: Star Conflict -# image: starconflict +# name: STALCRAFT +# image: stalcraft # info_en: # info_ru: ######################################################################## diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_002_VKPLAY b/data_from_portwine/scripts/pw_autoinstall/PW_VKPLAY similarity index 100% rename from data_from_portwine/scripts/pw_autoinstall/PW_002_VKPLAY rename to data_from_portwine/scripts/pw_autoinstall/PW_VKPLAY diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 4a067ed1..7e5bef12 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -25,7 +25,8 @@ if PORT_SCRIPTS_PATH=$(readlink -f "${0%/*}") ; then export PORT_SCRIPTS_PATH export PORT_WINE_PATH=${PORT_SCRIPTS_PATH%/*/*} else - fatal + echo "The PORT_SCRIPTS_PATH directory was not found!" + exit 1 fi # shellcheck source=/dev/null @@ -90,10 +91,11 @@ unset MANGOHUD MANGOHUD_DLSYM PW_NO_ESYNC PW_NO_FSYNC PW_VULKAN_USE WINEDLLOVERR unset PW_CHECK_AUTOINSTALL PW_VKBASALT_EFFECTS PW_VKBASALT_FFX_CAS PORTWINE_DB PORTWINE_DB_FILE RADV_PERFTEST unset CHK_SYMLINK_FILE PW_MESA_GL_VERSION_OVERRIDE PW_VKD3D_FEATURE_LEVEL PATH_TO_GAME PW_START_DEBUG PORTPROTON_NAME PW_PATH unset PW_PREFIX_NAME WINEPREFIX VULKAN_MOD PW_WINE_VER PW_ADD_TO_ARGS_IN_RUNTIME PW_GAMEMODERUN_SLR AMD_VULKAN_ICD PW_WINE_CPU_TOPOLOGY -unset PW_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 RADV_DEBUG PW_NO_AUTO_CREATE_SHORTCUT -unset PW_DESKTOP_FILES_REGEX PW_TERM +unset PW_NAME_D_ICON PW_ICON_PATH PW_GAME_TIME PW_ALL_DF PW_AMOUNT_NEW_DESKTOP PW_AMOUNT_OLD_DESKTOP PW_DESKTOP_FILES +unset AI_TYPE AI_NAME AI_IMAGE AI_INFO AI_FILE_ARRAY AI_TRUE_FILE AI_FILE_UNSORTED AI_FILE_SORTED PW_GENERATE_BUTTONS +unset PW_DESKTOP_FILES_REGEX PW_TERM PW_EXEC_FROM_DESKTOP export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp" rm -f "$PORT_WINE_TMP_PATH"/*{exe,msi,tar}* @@ -324,7 +326,7 @@ export SKIP_CHECK_UPDATES="1" [[ "$MISSING_DESKTOP_FILE" == "1" ]] && portwine_missing_shortcut -if [[ -n $(basename "${portwine_exe}" | grep .ppack) ]] ; then +if [[ $(basename "${portwine_exe}") =~ .[Pp][Pp][Aa][Cc][Kk]$ ]] ; then unset PW_SANDBOX_HOME_PATH pw_init_runtime if check_flatpak @@ -464,14 +466,6 @@ 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 - if [[ -n "${PORTPROTON_NAME}" ]] ; then - PW_COMMENT_DB="${translations[Launching]} $(print_wrapped "${PORTPROTON_NAME}" "50")" - else - PW_COMMENT_DB="${translations[Launching]} $(print_wrapped "${PORTWINE_DB}" "50")" - fi -fi - if [[ $PW_WINE_USE == PROTON_LG ]] ; then PW_WINE_USE="${PW_PROTON_LG_VER}" PW_DEFAULT_WINE_USE="${PW_WINE_LG_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE" @@ -505,6 +499,17 @@ if [[ -f "${portwine_exe}" ]] ; then PW_SHORTCUT="${translations[DELETE SHORTCUT]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Delete shortcut for select file...]}:98" fi + [[ $DESKTOP_WITH_TIME == enabled ]] && search_desktop_file + if [[ -z "${PW_COMMENT_DB}" ]] ; then + if [[ -n "${PORTPROTON_NAME}" ]] ; then + PW_COMMENT_DB="${translations[Launching]} $(print_wrapped "${PORTPROTON_NAME}" "50")$(seconds_to_time "$TIME_CURRENT")" + else + PW_COMMENT_DB="${translations[Launching]} $(print_wrapped "${PORTWINE_DB}" "50")$(seconds_to_time "$TIME_CURRENT")" + fi + else + PW_COMMENT_DB="$PW_COMMENT_DB$(seconds_to_time "$TIME_CURRENT")" + fi + export KEY_START="$RANDOM" if [[ "${PW_GUI_START}" == "NOTEBOOK" ]] ; then "${pw_yad}" --plug=$KEY_START --tabnum=1 --form --separator=";" ${START_GUI_TYPE} \ @@ -583,84 +588,132 @@ if [[ -f "${portwine_exe}" ]] ; then --button="${translations[LAUNCH]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Run file ...]}":106 2>/dev/null PW_YAD_SET="$?" fi - [[ -n "$PW_YAD_SET" ]] && case "$PW_YAD_SET" in + case "$PW_YAD_SET" in 128) - if [[ "${PW_GUI_START}" == "NOTEBOOK" ]] ; then - unset PW_YAD_FORM_TAB - fi - unset portwine_exe KEY_START $(sed -n '/export/p' "${PORTWINE_DB_FILE}" | sed 's/\(export\|=.*\| \)//g') - print_info "Restarting..." - restart_pp - ;; + [[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB + PORTWINE_DB_FOR_UNSET=$(sed -n '/export/p' "${PORTWINE_DB_FILE}" | sed 's/\(export\|=.*\| \)//g') + for db_unset in $PORTWINE_DB_FOR_UNSET ; do + unset "$db_unset" + done + unset portwine_exe KEY_START + print_info "Restarting..." + restart_pp + ;; 1|252) - exit 0 - ;; + exit 0 + ;; esac pw_yad_set_form pw_yad_form_vulkan - elif [[ -f "${PORTWINE_DB_FILE}" ]] ; then + elif [[ -f "$PORTWINE_DB_FILE" ]] ; then portwine_launch fi else - PW_ALL_DF="$(ls "${PORT_WINE_PATH}"/ | grep .desktop | grep -vE '(PortProton|readme)')" - if [[ -z "${PW_ALL_DF}" ]] - 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 - export KEY_MENU="$RANDOM" + # Поиск .desktop файлов + AMOUNT_GENERATE_BUTTONS="0" + for desktop_file in "$PORT_WINE_PATH"/* ; do + desktop_file_new="${desktop_file//"$PORT_WINE_PATH/"/}" + if [[ $desktop_file_new =~ .desktop$ ]] ; then + if [[ ! $desktop_file_new =~ (PortProton|readme) ]] ; then + while IFS= read -r line ; do + if [[ $line =~ ^Exec= ]] ; then + if check_flatpak ; then + PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${line//Exec=flatpak run ru.linux_gaming.PortProton /} + else + PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${line//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /} + fi + fi + [[ $line =~ ^Icon= ]] && PW_ICON_PATH["$AMOUNT_GENERATE_BUTTONS"]="${line//Icon=/}" + [[ $line =~ ^#Time= ]] && PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]="${line//#Time=/}" + [[ $line =~ ^#NEW_DESKTOP ]] && NEW_DESKTOP=1 + done < "$desktop_file" + PW_ALL_DF["$AMOUNT_GENERATE_BUTTONS"]="$desktop_file_new" + if [[ $NEW_DESKTOP == 1 ]] && [[ $SORT_WITH_TIME == enabled ]] ; then + unset NEW_DESKTOP + sed -i '/^#NEW_DESKTOP/d' "$desktop_file" + PW_AMOUNT_NEW_DESKTOP+=($AMOUNT_GENERATE_BUTTONS) + else + PW_AMOUNT_OLD_DESKTOP+=($AMOUNT_GENERATE_BUTTONS) + fi + # Для фикса битых #Time= + if [[ ! ${PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]} =~ [0-9]+ ]] ; then + portwine_exe=${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]//\"/} + search_desktop_file + unset portwine_exe + PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]=${TIME_CURRENT_ARRAY[0]} + fi + (( AMOUNT_GENERATE_BUTTONS++ )) + fi + fi + done + # Переопределение элементов в массивах в зависимости от PW_GAME_TIME, от большего значения к меньшему. + # 10 миллисекунд на 40 .desktop файлов, работает быстро + if [[ $SORT_WITH_TIME == enabled ]] ; then + for i in "${!PW_GAME_TIME[@]}" ; do + for j in "${!PW_GAME_TIME[@]}" ; do + if (( ${PW_GAME_TIME[$i]} > ${PW_GAME_TIME[$j]} )) ; then + tmp_0=${PW_GAME_TIME[$i]} + tmp_1=${PW_ALL_DF[$i]} + tmp_2=${PW_NAME_D_ICON[$i]} + tmp_4=${PW_ICON_PATH[$i]} + + PW_GAME_TIME[i]=${PW_GAME_TIME[$j]} + PW_ALL_DF[i]=${PW_ALL_DF[$j]} + PW_NAME_D_ICON[i]=${PW_NAME_D_ICON[$j]} + PW_ICON_PATH[i]=${PW_ICON_PATH[$j]} + + PW_GAME_TIME[j]=$tmp_0 + PW_ALL_DF[j]=$tmp_1 + PW_NAME_D_ICON[j]=$tmp_2 + PW_ICON_PATH[j]=$tmp_4 + fi + done + done + fi + + # Генерация .desktop баттанов для главного меню IFS=$'\n' - AMOUNT_GENERATE_BUTTONS="1" PW_GENERATE_BUTTONS="--field= ${translations[Create shortcut...]}!${PW_GUI_ICON_PATH}/find_48.svg!:FBTNR%@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}' | - sed -e 's|flatpak run ru.linux_gaming.PortProton||' -e 's|"||g' -e 's|^[ \t]*||')" - else - PW_NAME_D_ICON="$(grep Exec "${PORT_WINE_PATH}/${PW_DESKTOP_FILES}" | awk -F"=env " '{print $2}' | - sed -e "s|${PORT_SCRIPTS_PATH}/start.sh||" -e 's|"||g' -e 's|^[ \t]*||')" - fi - PW_ICON_PATH="$(grep Icon "${PORT_WINE_PATH}/${PW_DESKTOP_FILES}" | awk -F= '{print $2}')" - PW_NAME_D_ICON_48="${PW_ICON_PATH%.png}_48" - PW_NAME_D_ICON_128="${PW_ICON_PATH%.png}" - if [[ -f "${PW_NAME_D_ICON}" ]] ; then - resize_png "${PW_NAME_D_ICON}" "${PW_NAME_D_ICON_48//"${PORT_WINE_PATH}/data/img/"/}" "48" - resize_png "${PW_NAME_D_ICON}" "${PW_NAME_D_ICON_128//"${PORT_WINE_PATH}/data/img/"/}" "128" - fi - if [[ $PW_DESKTOP_FILES =~ [\(\)\!\$\%\&\`\'\"\>\<\\\|\;] ]] ; then - export PW_DESKTOP_FILES_REGEX="1" - PW_DESKTOP_FILES_SHOW="${PW_DESKTOP_FILES//\!/}" - PW_DESKTOP_FILES_SHOW="${PW_DESKTOP_FILES_SHOW//\%/}" - PW_DESKTOP_FILES_SHOW="${PW_DESKTOP_FILES_SHOW//\$/}" - PW_DESKTOP_FILES_SHOW="${PW_DESKTOP_FILES_SHOW//\&/}" - PW_DESKTOP_FILES_SHOW="${PW_DESKTOP_FILES_SHOW//\/#+_10#}" - PW_DESKTOP_FILES="${PW_DESKTOP_FILES//\\<\\\|\;] ]] ; then + PW_DESKTOP_FILES_SHOW_REGEX=(\! % \$ \& \<) + PW_DESKTOP_FILES_REGEX=(\( \) \! \$ % \& \` \' \" \> \< \\ \| \;) + + for i in "${PW_DESKTOP_FILES_SHOW_REGEX[@]}" ; do + PW_DESKTOP_FILES_SHOW="${PW_DESKTOP_FILES_SHOW//$i/}" + done + + count=1 + for j in "${PW_DESKTOP_FILES_REGEX[@]}" ; do + PW_DESKTOP_FILES="${PW_DESKTOP_FILES//$j/#+_$count#}" + (( count++ )) + done fi PW_GENERATE_BUTTONS+="--field= $(print_wrapped "${PW_DESKTOP_FILES_SHOW//".desktop"/""}" "25" "...")!${PW_NAME_D_ICON_48}.png!:FBTNR%@bash -c \"button_click --desktop "${PW_DESKTOP_FILES// /#@_@#}"\"%" - (( AMOUNT_GENERATE_BUTTONS++ )) done - MAIN_GUI_ROWS="$(( AMOUNT_GENERATE_BUTTONS / MAIN_GUI_COLUMNS + 1 ))" + + MAIN_GUI_ROWS="$(( ( AMOUNT_GENERATE_BUTTONS + 1 ) / MAIN_GUI_COLUMNS + 1 ))" + + if [[ -z $PW_DESKTOP_FILES ]] + then export PW_GUI_SORT_TABS=(1 2 3 4 5) + else export PW_GUI_SORT_TABS=(2 3 4 5 1) + fi + + KEY_MENU="$RANDOM" IFS="%" "${pw_yad}" --plug=$KEY_MENU --tabnum="${PW_GUI_SORT_TABS[4]}" --form --columns="$MAIN_GUI_ROWS" --homogeneous-column \ @@ -697,48 +750,67 @@ else --field=" ${translations[Command line]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"${translations[Run wine cmd]}":"FBTN" '@bash -c "button_click --normal WINECMD"' \ --field=" ${translations[Regedit]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"${translations[Run wine regedit]}":"FBTN" '@bash -c "button_click --normal WINEREG"' 1> "${PW_TMPFS_PATH}/tmp_yad_form_vulkan" 2>/dev/null & - AI_AMOUNT_GAMES="0" - AI_AMOUNT_EMULS="0" - for ai_file in "$PORT_SCRIPTS_PATH"/pw_autoinstall/* ; do - AI_FILE="${ai_file//"$PORT_SCRIPTS_PATH/pw_autoinstall/"/}" - while IFS= read -r line ; do - [[ $line =~ "##########" ]] && break - [[ $line =~ "# type: " ]] && AI_TYPE="${line//# type: /}" - [[ $line =~ "# name: " ]] && AI_NAME="${line//# name: /}" - [[ $line =~ "# image: " ]] && AI_IMAGE="${line//# image: /}" - if [[ "$LANGUAGE" == ru ]] ; then - [[ $line =~ "# info_ru: " ]] && AI_INFO="${line//# info_ru: /}" + if [[ $AI_SKIP != 1 ]] ; then + # AI_TOP_GAMES используется для сортировки автоинсталлов (работает на эмуляторы тоже) + AI_TOP_GAMES="PW_LGC PW_VKPLAY PW_EPIC PW_BATTLE_NET" + AI_AMOUNT_GAMES="0" && AI_AMOUNT_EMULS="0" && AI_AMOUNT_ARRAY="0" + for ai_file in "$PORT_SCRIPTS_PATH"/pw_autoinstall/* ; do + while IFS= read -r line ; do + [[ $line =~ "##########" ]] && break + [[ $line =~ "# type: " ]] && AI_TYPE["$AI_AMOUNT_ARRAY"]="${line//# type: /}" + [[ $line =~ "# name: " ]] && AI_NAME["$AI_AMOUNT_ARRAY"]="${line//# name: /}" + [[ $line =~ "# image: " ]] && AI_IMAGE["$AI_AMOUNT_ARRAY"]="${line//# image: /}" + if [[ "$LANGUAGE" == ru ]] ; then + [[ $line =~ "# info_ru: " ]] && AI_INFO["$AI_AMOUNT_ARRAY"]="${line//# info_ru: /}" + else + [[ $line =~ "# info_en: " ]] && AI_INFO["$AI_AMOUNT_ARRAY"]="${line//# info_en: /}" + fi + done < "$ai_file" + AI_FILE="${ai_file//"$PORT_SCRIPTS_PATH/pw_autoinstall/"/}" + AI_FILE_CHECK="$AI_FILE=$AI_AMOUNT_ARRAY" + AI_FILE_ARRAY+=($AI_FILE) + if [[ $AI_TOP_GAMES =~ ${AI_FILE_CHECK//=*/} ]] ; then + AI_TRUE_FILE+=($AI_FILE_CHECK) else - [[ $line =~ "# info_en: " ]] && AI_INFO="${line//# info_en: /}" + AI_FILE_UNSORTED+=($AI_AMOUNT_ARRAY) fi - done < "$ai_file" + (( AI_AMOUNT_ARRAY++ )) + done + + for ai_sort in $AI_TOP_GAMES ; do + if [[ ${AI_TRUE_FILE[*]} =~ $ai_sort ]] ; then + AI_TRUE_FILE_NEW=(${AI_TRUE_FILE[@]//$ai_sort=/}) + AI_FILE_SORTED+=(${AI_TRUE_FILE_NEW[@]//*=*/}) + fi + done IFS=$'\n' - [[ -z "$AI_NAME" ]] && yad_error "Line: \"name\" not found in file $AI_FILE." - case $AI_TYPE in - games) - PW_GENERATE_BUTTONS_GAMES+="--field= $AI_NAME!$PW_GUI_ICON_PATH/$AI_IMAGE.png!$AI_INFO:FBTNR%@bash -c \"button_click --normal $AI_FILE\"%" - (( AI_AMOUNT_GAMES++ )) - ;; - emulators) - PW_GENERATE_BUTTONS_EMULS+="--field= $AI_NAME!$PW_GUI_ICON_PATH/$AI_IMAGE.png!$AI_INFO:FBTNR%@bash -c \"button_click --normal $AI_FILE\"%" - (( AI_AMOUNT_EMULS++ )) - ;; - *) - yad_error "Line: \"type\" not found in file $AI_FILE or misspelled." - ;; - esac - [[ -z $PW_DEBUG ]] && unset AI_FILE AI_TYPE AI_NAME AI_IMAGE AI_INFO - done - MAIN_GUI_ROWS_GAMES="$(( AI_AMOUNT_GAMES / MAIN_GUI_COLUMNS + 1 ))" - MAIN_GUI_ROWS_EMULS="$(( AI_AMOUNT_EMULS / MAIN_GUI_COLUMNS + 1 ))" + for ai in "${AI_FILE_SORTED[@]}" "${AI_FILE_UNSORTED[@]}" ; do + case ${AI_TYPE[$ai]} in + games) + export PW_GENERATE_BUTTONS_GAMES+="--field= ${AI_NAME[$ai]}!$PW_GUI_ICON_PATH/${AI_IMAGE[$ai]}.png!${AI_INFO[$ai]}:FBTNR%@bash -c \"button_click --normal ${AI_FILE_ARRAY[$ai]}\"%" + (( AI_AMOUNT_GAMES++ )) + ;; + emulators) + export PW_GENERATE_BUTTONS_EMULS+="--field= ${AI_NAME[$ai]}!$PW_GUI_ICON_PATH/${AI_IMAGE[$ai]}.png!${AI_INFO[$ai]}:FBTNR%@bash -c \"button_click --normal ${AI_FILE_ARRAY[$ai]}\"%" + (( AI_AMOUNT_EMULS++ )) + ;; + *) + yad_error "Line: \"type\" not found in file ${AI_FILE_ARRAY[$ai]} or misspelled." + ;; + esac + done + export MAIN_GUI_ROWS_GAMES="$(( AI_AMOUNT_GAMES / MAIN_GUI_COLUMNS + 1 ))" + export MAIN_GUI_ROWS_EMULS="$(( AI_AMOUNT_EMULS / MAIN_GUI_COLUMNS + 1 ))" + + export AI_SKIP="1" + fi IFS="%" "${pw_yad}" --plug=$KEY_MENU --tabnum="${PW_GUI_SORT_TABS[1]}" --form --columns="$MAIN_GUI_ROWS_EMULS" --align-buttons --scroll --homogeneous-column \ --gui-type-layout="${MAIN_MENU_GUI_TYPE_LAYOUT}" --separator=" " ${PW_GENERATE_BUTTONS_EMULS} 2>/dev/null & "${pw_yad}" --plug=$KEY_MENU --tabnum="${PW_GUI_SORT_TABS[0]}" --form --columns="$MAIN_GUI_ROWS_GAMES" --align-buttons --scroll --homogeneous-column \ --gui-type-layout="${MAIN_MENU_GUI_TYPE_LAYOUT}" --separator=" " ${PW_GENERATE_BUTTONS_GAMES} 2>/dev/null & - unset PW_GENERATE_BUTTONS_GAMES PW_GENERATE_BUTTONS_EMULS IFS="$orig_IFS" export START_FROM_PP_GUI="1" @@ -746,7 +818,7 @@ else export TAB_MAIN_MENU="1" fi - if [[ -z "${PW_ALL_DF}" ]] ; then + if [[ -z $PW_DESKTOP_FILES ]] ; then "${pw_yad}" --key=$KEY_MENU --notebook --expand \ --gui-type="settings-notebook" --active-tab="${TAB_MAIN_MENU}" \ --width="${PW_MAIN_SIZE_W}" --height="${PW_MAIN_SIZE_H}" --no-buttons \ @@ -795,12 +867,12 @@ if [[ -f "${PORTWINE_DB_FILE}" ]] ; then edit_db_from_gui PW_VULKAN_USE PW_WINE_USE PW_PREFIX_NAME fi -[[ -n "$PW_YAD_SET" ]] && case "$PW_YAD_SET" in +case "$PW_YAD_SET" in gui_pw_reinstall_pp|open_changelog|\ 128|gui_pw_update|gui_rm_portproton|\ change_loc|gui_open_scripts_from_backup|\ gui_credits|pw_start_cont_xterm) - if [[ -z "${PW_ALL_DF}" ]] ; then + if [[ -z $PW_DESKTOP_FILES ]] ; then export TAB_MAIN_MENU="4" else export TAB_MAIN_MENU="5" @@ -810,14 +882,14 @@ fi 116|pw_create_prefix_backup|\ gui_clear_pfx|WINEREG|WINECMD|\ WINEFILE|WINECFG|gui_wine_uninstaller) - if [[ -z "${PW_ALL_DF}" ]] ; then + if [[ -z $PW_DESKTOP_FILES ]] ; then export TAB_MAIN_MENU="3" else export TAB_MAIN_MENU="4" fi ;; pw_find_exe) - if [[ -z "${PW_ALL_DF}" ]] ; then + if [[ -z $PW_DESKTOP_FILES ]] ; then export TAB_MAIN_MENU="5" else export TAB_MAIN_MENU="1" @@ -825,7 +897,7 @@ fi ;; esac -[[ -n "$PW_YAD_SET" ]] && case "$PW_YAD_SET" in +case "$PW_YAD_SET" in 98) portwine_delete_shortcut ;; 100) portwine_create_shortcut ;; DEBUG|102) portwine_start_debug ;; diff --git a/data_from_portwine/themes/compact.pptheme b/data_from_portwine/themes/compact.pptheme index 30a1a606..a6996c41 100755 --- a/data_from_portwine/themes/compact.pptheme +++ b/data_from_portwine/themes/compact.pptheme @@ -23,7 +23,7 @@ export BUTTON_SIZE=32 # 24, 28, 32, 36, 40 export TAB_SIZE=32 # 24, 28, 32, 36, 40 -export PW_MAIN_SIZE_W=500 +export PW_MAIN_SIZE_W=1000 export PW_MAIN_SIZE_H=350 export PW_START_SIZE_W=500 diff --git a/data_from_portwine/themes/default.pptheme b/data_from_portwine/themes/default.pptheme index d22ca3b9..07964bbb 100755 --- a/data_from_portwine/themes/default.pptheme +++ b/data_from_portwine/themes/default.pptheme @@ -31,7 +31,7 @@ export BUTTON_SIZE=28 # 24, 28, 32, 36, 40 export TAB_SIZE=32 # 24, 28, 32, 36, 40 # размер главного меню -export PW_MAIN_SIZE_W=500 +export PW_MAIN_SIZE_W=1000 export PW_MAIN_SIZE_H=330 # размер меню запуска и положения табов diff --git a/data_from_portwine/themes/tray/tray_gui_pp b/data_from_portwine/themes/tray/tray_gui_pp index 904af9d9..4a1525fe 100755 Binary files a/data_from_portwine/themes/tray/tray_gui_pp and b/data_from_portwine/themes/tray/tray_gui_pp differ