forked from CastroFidel/PortWINE
		
	Scripts version 2124
This commit is contained in:
		| @@ -2,6 +2,11 @@ You can help us in the development of the project on the website: boosty.to/port | |||||||
| ----------------------------------------- | ----------------------------------------- | ||||||
| Changelog: | Changelog: | ||||||
|  |  | ||||||
|  | ###Scripts version 2124### | ||||||
|  | * updated "PROTON_GE" to version 7-29 | ||||||
|  | * updated "PROTON_STEAM" to version 7.0-4 | ||||||
|  | * updated pp-games-lib plugin | ||||||
|  |  | ||||||
| ###Scripts version 2123### | ###Scripts version 2123### | ||||||
| * HOTFIX - GALLIUM NINE mode | * HOTFIX - GALLIUM NINE mode | ||||||
|  |  | ||||||
|   | |||||||
| @@ -2,6 +2,11 @@ | |||||||
| ----------------------------------------- | ----------------------------------------- | ||||||
| История изменений: | История изменений: | ||||||
|  |  | ||||||
|  | ###Scripts version 2124### | ||||||
|  | * обновлен "PROTON_GE" до версии 7-29 | ||||||
|  | * обновлен "PROTON_STEAM" до версии 7.0-4 | ||||||
|  | * обновлен плагин pp-games-lib | ||||||
|  |  | ||||||
| ###Scripts version 2123### | ###Scripts version 2123### | ||||||
| * HOTFIX - скачивание PROTON GE при использовании режжима GALLIUM NINE | * HOTFIX - скачивание PROTON GE при использовании режжима GALLIUM NINE | ||||||
| * добавлена русификация CREDITS (Авторы и спасибы) - спасибо chal55rus | * добавлена русификация CREDITS (Авторы и спасибы) - спасибо chal55rus | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ import os | |||||||
| import re | import re | ||||||
| import shlex | import shlex | ||||||
| import shutil | import shutil | ||||||
| from configparser import ConfigParser | from configparser import RawConfigParser | ||||||
| from pathlib import Path | from pathlib import Path | ||||||
| from subprocess import run | from subprocess import run | ||||||
| from types import SimpleNamespace | from types import SimpleNamespace | ||||||
| @@ -13,9 +13,9 @@ try: | |||||||
|     from PyQt6.QtGui import * # type: ignore |     from PyQt6.QtGui import * # type: ignore | ||||||
|     from PyQt6.QtWidgets import * # type: ignore |     from PyQt6.QtWidgets import * # type: ignore | ||||||
| except ModuleNotFoundError: | except ModuleNotFoundError: | ||||||
|     from PyQt5.QtCore import * |     from PyQt5.QtCore import * # type: ignore | ||||||
|     from PyQt5.QtGui import * |     from PyQt5.QtGui import * # type: ignore | ||||||
|     from PyQt5.QtWidgets import * |     from PyQt5.QtWidgets import * # type: ignore | ||||||
|  |  | ||||||
| settings = QSettings('PPGL', 'PortProtonGamesLib') | settings = QSettings('PPGL', 'PortProtonGamesLib') | ||||||
| g = SimpleNamespace(locale = '') | g = SimpleNamespace(locale = '') | ||||||
| @@ -29,7 +29,7 @@ class MainWindow(QMainWindow): | |||||||
|         if geometry: |         if geometry: | ||||||
|             self.restoreGeometry(geometry) |             self.restoreGeometry(geometry) | ||||||
|  |  | ||||||
|         shortcut = ConfigParser() |         shortcut = RawConfigParser() | ||||||
|         shortcut.read(os.getenv('HOME') + '/.local/share/applications/PortProton.desktop') |         shortcut.read(os.getenv('HOME') + '/.local/share/applications/PortProton.desktop') | ||||||
|         scripts_dir = shortcut.get('Desktop Entry', 'Path', fallback=os.getenv('HOME') + '/.local/share/PortWINE/PortProton/data/scripts') |         scripts_dir = shortcut.get('Desktop Entry', 'Path', fallback=os.getenv('HOME') + '/.local/share/PortWINE/PortProton/data/scripts') | ||||||
|         if not scripts_dir or not Path(scripts_dir).is_dir(): |         if not scripts_dir or not Path(scripts_dir).is_dir(): | ||||||
| @@ -288,20 +288,14 @@ class GameList(QListWidget): | |||||||
|  |  | ||||||
|     def reload(self): |     def reload(self): | ||||||
|         self.clear() |         self.clear() | ||||||
|         def validate(shortcut): |  | ||||||
|             config = ConfigParser() |  | ||||||
|             config.read(shortcut) |  | ||||||
|             try: |  | ||||||
|                 if config.get('Desktop Entry', 'Exec'): |  | ||||||
|                     return True |  | ||||||
|             except Exception: |  | ||||||
|                 return False |  | ||||||
|         shortcuts = list(Path(g.shortcuts_dir).glob('*.desktop')) |         shortcuts = list(Path(g.shortcuts_dir).glob('*.desktop')) | ||||||
|         shortcuts += list(Path(g.base_dir).glob('*.desktop')) |         shortcuts += list(Path(g.base_dir).glob('*.desktop')) | ||||||
|         for shortcut in shortcuts: |         for shortcut in shortcuts: | ||||||
|             if validate(shortcut): |             try: | ||||||
|                 item = GameItem(self, shortcut) |                 item = GameItem(self, shortcut) | ||||||
|                 self.addItem(item) |                 self.addItem(item) | ||||||
|  |             except Exception: | ||||||
|  |                 pass | ||||||
|         self.sortItems() |         self.sortItems() | ||||||
|         self.setCurrentIndex(QModelIndex()) |         self.setCurrentIndex(QModelIndex()) | ||||||
|  |  | ||||||
| @@ -375,11 +369,21 @@ def human_size(num): | |||||||
|  |  | ||||||
| class GameItem(QListWidgetItem): | class GameItem(QListWidgetItem): | ||||||
|     def __init__(self, parent, desktop_file): |     def __init__(self, parent, desktop_file): | ||||||
|         super().__init__(parent) |  | ||||||
|         self.desktop_file = desktop_file |         self.desktop_file = desktop_file | ||||||
|         self.config = ConfigParser() |         self.config = RawConfigParser() | ||||||
|         self.config.read(desktop_file) |         self.config.read(desktop_file) | ||||||
|         text = self.get('Name', Path(desktop_file).stem) |         text = self.get('Name', Path(desktop_file).stem) | ||||||
|  |         if not self.get('Exec') or text == 'PortProton': | ||||||
|  |             raise Exception('Validation fail') | ||||||
|  |         self.game_dir = shlex.split(self.get('Exec'))[-1] | ||||||
|  |         if self.game_dir.startswith(g.games_dir): | ||||||
|  |             self.game_dir = g.games_dir + '/' + self.game_dir[len(g.games_dir)+1:].split('/')[0] | ||||||
|  |         else: | ||||||
|  |             self.game_dir = str(Path(self.game_dir).parent) | ||||||
|  |         if self.game_dir == '.': | ||||||
|  |             raise Exception('Can not determine game dir') | ||||||
|  |         super().__init__(parent) | ||||||
|  |  | ||||||
|         self.setToolTip(text) |         self.setToolTip(text) | ||||||
|         self.setText(text) |         self.setText(text) | ||||||
|         icon_path = self.get('Icon') if Path(self.get('Icon')).exists() else g.pp_icon |         icon_path = self.get('Icon') if Path(self.get('Icon')).exists() else g.pp_icon | ||||||
| @@ -387,11 +391,7 @@ class GameItem(QListWidgetItem): | |||||||
|         self.setIcon(qicon) |         self.setIcon(qicon) | ||||||
|         self.setTextAlignment(Qt.AlignmentFlag.AlignHCenter | Qt.AlignmentFlag.AlignTop) |         self.setTextAlignment(Qt.AlignmentFlag.AlignHCenter | Qt.AlignmentFlag.AlignTop) | ||||||
|         self.setSizeHint(QSize(100, 105)) |         self.setSizeHint(QSize(100, 105)) | ||||||
|         self.game_dir = shlex.split(self.get('Exec'))[-1] |  | ||||||
|         if self.game_dir.startswith(g.games_dir): |  | ||||||
|             self.game_dir = g.games_dir + '/' + self.game_dir[len(g.games_dir)+1:].split('/')[0] |  | ||||||
|         else: |  | ||||||
|             self.game_dir = str(Path(self.game_dir).parent) |  | ||||||
|         self._set_dir_size(None) |         self._set_dir_size(None) | ||||||
|         dir_size_cache = self.game_dir + '/.size' |         dir_size_cache = self.game_dir + '/.size' | ||||||
|         if Path(dir_size_cache).exists(): |         if Path(dir_size_cache).exists(): | ||||||
| @@ -400,7 +400,7 @@ class GameItem(QListWidgetItem): | |||||||
|             def calc_dir_size(): |             def calc_dir_size(): | ||||||
|                 if not Path(self.game_dir).exists(): |                 if not Path(self.game_dir).exists(): | ||||||
|                     return |                     return | ||||||
|                 dir_size = sum(p.stat().st_size for p in Path(self.game_dir).rglob('*')) |                 dir_size = sum(p.stat(follow_symlinks=False).st_size for p in Path(self.game_dir).rglob('*')) | ||||||
|                 self._set_dir_size(dir_size) |                 self._set_dir_size(dir_size) | ||||||
|                 Path(dir_size_cache).write_text(str(dir_size)) |                 Path(dir_size_cache).write_text(str(dir_size)) | ||||||
|             thread = QThread(parent) |             thread = QThread(parent) | ||||||
|   | |||||||
							
								
								
									
										450
									
								
								data_from_portwine/scripts/credits
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										450
									
								
								data_from_portwine/scripts/credits
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							| @@ -1,68 +1,69 @@ | |||||||
| #!/usr/bin/env bash | #!/usr/bin/env bash | ||||||
|  | # Author: chal55rus, Castro-Fidel (PortWINE-Linux.ru) | ||||||
|  | ######################################################################## | ||||||
| if [ "${update_loc}" = "RUS" ] | if [ "${update_loc}" = "RUS" ] | ||||||
| then | then | ||||||
|     KEY_CREDITS=$RANDOM |     KEY_CREDITS=$RANDOM | ||||||
|  |  | ||||||
|     "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=1 --show-uri \ | "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=1 --show-uri \ | ||||||
|     --image-path="$PW_GUI_ICON_PATH" --image="port_proton" \ | --image-path="$PW_GUI_ICON_PATH" --image="port_proton" \ | ||||||
|     --text-align=center --scroll --text="PortProton v. ${install_ver} | --text-align=center --scroll --text="PortProton v. ${install_ver} | ||||||
|     scripts v. ${scripts_install_ver} | scripts v. ${scripts_install_ver} | ||||||
|  |  | ||||||
|     https://portwine-linux.ru | https://portwine-linux.ru | ||||||
|  |  | ||||||
|     Авторские права © 2022 Castro-Fidel (PortWINE-Linux.ru) | Авторские права © 2022 Castro-Fidel (PortWINE-Linux.ru) | ||||||
|  |  | ||||||
|     Эта программа поставляется без каких-либо гарантий. | Эта программа поставляется без каких-либо гарантий. | ||||||
|     Подробнее см. в Лицензия." & | Подробнее см. в Лицензия." & | ||||||
|  |  | ||||||
|  |  | ||||||
|     "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=2 \ | "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=2 \ | ||||||
|     --text-align=center --scroll --text="Автор:   Casro-Fidel (Михаил Тергоев) | --text-align=center --scroll --text="Автор:   Casro-Fidel (Михаил Тергоев) | ||||||
|  |  | ||||||
|     Помощники разработчика и тестировщики: | Помощники разработчика и тестировщики: | ||||||
|     Cefeiko | Cefeiko | ||||||
|     Dezert1r | Dezert1r | ||||||
|     Taz_mania | Taz_mania | ||||||
|     Anton_Famillianov | Anton_Famillianov | ||||||
|     RidBowt | RidBowt | ||||||
|     chal55rus | chal55rus | ||||||
|     UserDiscord | UserDiscord | ||||||
|     Survolog | Survolog | ||||||
|     gavr | gavr | ||||||
|     RusNor | RusNor | ||||||
|     aldiserg | aldiserg | ||||||
|     an9949an | an9949an | ||||||
|     andrey4korop | andrey4korop | ||||||
|     zorn | zorn | ||||||
|     " & | " & | ||||||
|  |  | ||||||
|     "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=3 --text-info --scroll <<< "Лицензия Массачусетского технологического института (MIT License) | "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=3 --text-info --scroll <<< "          Лицензия Массачусетского технологического института (MIT License) | ||||||
|  |  | ||||||
|               Авторские права (©) 2022 Castro-Fidel (PortWINE-Linux.ru) |               Авторские права (©) 2022 Castro-Fidel (PortWINE-Linux.ru) | ||||||
|  |  | ||||||
|     Настоящим предоставляется бесплатное разрешение любому лицу, получившему копию данного | Настоящим предоставляется бесплатное разрешение любому лицу, получившему копию данного | ||||||
|     программного обеспечения и связанных с ним файлов документации (Программное | программного обеспечения и связанных с ним файлов документации (Программное | ||||||
|     обеспечение), для в Программном обеспечении без ограничений, включая, помимо прочего, | обеспечение), для в Программном обеспечении без ограничений, включая, помимо прочего, | ||||||
|     права использовать, копировать, изменять, объединять, публиковать, распространять, | права использовать, копировать, изменять, объединять, публиковать, распространять, | ||||||
|     сублицензировать и/или продавать копий Программного обеспечения, а также разрешить | сублицензировать и/или продавать копий Программного обеспечения, а также разрешить | ||||||
|     лицам, которым Программное обеспечение предоставляется для этого при соблюдении | лицам, которым Программное обеспечение предоставляется для этого при соблюдении | ||||||
|     следующих условий: | следующих условий: | ||||||
|  |  | ||||||
|     Вышеприведенное уведомление об авторских правах и это уведомление о разрешении должны | Вышеприведенное уведомление об авторских правах и это уведомление о разрешении должны | ||||||
|     быть включены во все копии или существенные части Программного обеспечения. | быть включены во все копии или существенные части Программного обеспечения. | ||||||
|  |  | ||||||
|     ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ (КАК ЕСТЬ), БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ | ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ (КАК ЕСТЬ), БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ | ||||||
|     ПОДРАЗУМЕВАЕТСЯ, ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ, | ПОДРАЗУМЕВАЕТСЯ, ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ, | ||||||
|     ПРИГОДНОСТЬ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ И НЕНАРУШЕНИЕ ПРАВ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ | ПРИГОДНОСТЬ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ И НЕНАРУШЕНИЕ ПРАВ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ | ||||||
|     АВТОРЫ ИЛИ ВЛАДЕЛЕЦ АВТОРСКИХ ПРАВ НЕСУТ ОТВЕТСТВЕННОСТЬ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УЩЕРБ ИЛИ | АВТОРЫ ИЛИ ВЛАДЕЛЕЦ АВТОРСКИХ ПРАВ НЕСУТ ОТВЕТСТВЕННОСТЬ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УЩЕРБ ИЛИ | ||||||
|     ДРУГОЕ. ОТВЕТСТВЕННОСТЬ, БУДУЩАЯ ПО ДОГОВОРУ, ДЕЛИКТУ ИЛИ ИНЫМ ОБРАЗОМ, ВОЗНИКАЮЩАЯ ИЗ | ДРУГОЕ. ОТВЕТСТВЕННОСТЬ, БУДУЩАЯ ПО ДОГОВОРУ, ДЕЛИКТУ ИЛИ ИНЫМ ОБРАЗОМ, ВОЗНИКАЮЩАЯ ИЗ | ||||||
|     ВНЕ ИЛИ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ СДЕЛКАМИ В | ВНЕ ИЛИ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ СДЕЛКАМИ В | ||||||
|     ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ." & | ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ." & | ||||||
|  |  | ||||||
|     "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=4 \ | "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=4 \ | ||||||
|     --text-info --fontname="Serif bold italic 12" --show-uri --scroll \ | --text-info --fontname="Serif bold italic 12" --show-uri --scroll \ | ||||||
|     <<< '                                         Проект поддержали: | <<< '                                            Проект поддержали: | ||||||
|                                     https://boosty.to/portwine-linux.ru |                                     https://boosty.to/portwine-linux.ru | ||||||
|  |  | ||||||
|     1 1 |     1 1 | ||||||
| @@ -257,37 +258,37 @@ then | |||||||
|  |  | ||||||
|                                     Список будет дополняться...' & |                                     Список будет дополняться...' & | ||||||
|  |  | ||||||
|     "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=5 --text="Хотите присоединится и помочь в развитии проекта:" \ | "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=5 --text="Хотите присоединится и помочь в развитии проекта:" \ | ||||||
|     --title=JOIN --window-icon=group  --image=system-config-users --uri-color=red --show-uri \ | --title=JOIN --window-icon=group  --image=system-config-users --uri-color=red --show-uri \ | ||||||
|     --text-info --scroll <<< \ | --text-info --scroll <<< \ | ||||||
|     "Website:  http://portwine-linux.ru | "Website:  http://portwine-linux.ru | ||||||
|     Discord:  http://discord.gg/yJSEFjF | Discord:  http://discord.gg/yJSEFjF | ||||||
|     VK:       https://vk.com/portwinelinux | VK:       https://vk.com/portwinelinux | ||||||
|     ------------------------------------------- | ------------------------------------------- | ||||||
|     Стать платным подписчиком: | Стать платным подписчиком: | ||||||
|     boosty: https://boosty.to/portwine-linux.ru | boosty: https://boosty.to/portwine-linux.ru | ||||||
|     patreon: https://www.patreon.com/portproton | patreon: https://www.patreon.com/portproton | ||||||
|     Кошельки WebMoney:   WMZ-Z135951244401   WME-E325631629973 | Кошельки WebMoney:   WMZ-Z135951244401   WME-E325631629973 | ||||||
|     Yandex кошельк:   410012267513818 | Yandex кошелек:   410012267513818 | ||||||
|     ------------------------------------------- | ------------------------------------------- | ||||||
|     Задонатить на стрим: | Задонатить на стрим: | ||||||
|     https://www.donationalerts.com/r/portwine_linux" & | https://www.donationalerts.com/r/portwine_linux" & | ||||||
|  |  | ||||||
|     "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=6 --show-uri --title="THIRD PARTY LIBRARIES" \ | "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=6 --show-uri --title="THIRD PARTY LIBRARIES" \ | ||||||
|     --fontname="Serif bold italic 10" --text-info <<< "                Сторонние библиотеки, которые используются в PortProton | --fontname="Serif bold italic 10" --text-info <<< "                   Сторонние библиотеки, которые используются в PortProton | ||||||
|  |  | ||||||
|     PortProton собран на основе бесплатных библиотек программного обеспечения: |     PortProton собран на основе бесплатных библиотек программного обеспечения: | ||||||
|  |  | ||||||
|     WINE-PROTON: https://github.com/ValveSoftware/Proton | WINE-PROTON: https://github.com/ValveSoftware/Proton | ||||||
|     WINE-PROTON-GE: https://github.com/GloriousEggroll/proton-ge-custom/ | WINE-PROTON-GE: https://github.com/GloriousEggroll/proton-ge-custom/ | ||||||
|     Kron4ek/Wine: https://github.com/Kron4ek/Wine-Builds | Kron4ek/Wine: https://github.com/Kron4ek/Wine-Builds | ||||||
|     YAD: https://github.com/v1cont/yad | YAD: https://github.com/v1cont/yad | ||||||
|     ZENITY: https://github.com/GNOME/zenity" & | ZENITY: https://github.com/GNOME/zenity" & | ||||||
|          |          | ||||||
|     "${pw_yad_new}" --title "О НАС" --key="${KEY_CREDITS}" --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \ | "${pw_yad_new}" --title "О НАС" --key="${KEY_CREDITS}" --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \ | ||||||
|     --center --notebook --no-buttons  --tab-pos=bottom \ | --center --notebook --no-buttons  --tab-pos=bottom \ | ||||||
|     --tab="О PORTPROTON" --tab="АВТОРЫ" --tab="ЛИЦЕНЗИЯ" --tab="СПОНСОРЫ" --tab="ПРИСОЕДИНИТЬСЯ" \ | --tab="О PORTPROTON" --tab="АВТОРЫ" --tab="ЛИЦЕНЗИЯ" --tab="СПОНСОРЫ" --tab="ПРИСОЕДИНИТЬСЯ" \ | ||||||
|     --tab="БИБЛИОТЕКИ" | --tab="БИБЛИОТЕКИ" | ||||||
|  |  | ||||||
|     /usr/bin/env bash -c ${pw_full_command_line[*]}  |     /usr/bin/env bash -c ${pw_full_command_line[*]}  | ||||||
|  |  | ||||||
| @@ -295,62 +296,67 @@ else | |||||||
|  |  | ||||||
|     KEY_CREDITS=$RANDOM |     KEY_CREDITS=$RANDOM | ||||||
|  |  | ||||||
|     "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=1 --show-uri \ |  | ||||||
|     --text-align=center --scroll --text="PortProton v.${install_ver} |  | ||||||
|     scripts v. ${scripts_install_ver} |  | ||||||
|  |  | ||||||
|     https://portwine-linux.ru | "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=1 --show-uri \ | ||||||
|  | --image-path="$PW_GUI_ICON_PATH" --image="port_proton" \ | ||||||
|     Copyright © 2022 Castro-Fidel (PortWINE-Linux.ru) | --text-align=center --scroll --text="PortProton v. ${install_ver} | ||||||
|  | scripts v. ${scripts_install_ver} | ||||||
|     This program comes with absolutely no warranty. |  | ||||||
|     See the License for details." & |  | ||||||
|  |  | ||||||
|  |  | ||||||
|     "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=2 \ | https://portwine-linux.ru | ||||||
|     --text-align=center --scroll --text="Author:   Casro-Fidel (Mikhail Tergoev) |  | ||||||
|  |  | ||||||
|     Developer assistants and testers: | Copyright © 2022 Castro-Fidel (PortWINE-Linux.ru) | ||||||
|     Cefeiko |  | ||||||
|     Dezert1r |  | ||||||
|     Taz_mania |  | ||||||
|     Anton_Famillianov |  | ||||||
|     RidBowt |  | ||||||
|     chal55rus |  | ||||||
|     UserDiscord |  | ||||||
|     survolog |  | ||||||
|     gavr |  | ||||||
|     RusNor |  | ||||||
|     aldiserg |  | ||||||
|     an9949an |  | ||||||
|     andrey4korop |  | ||||||
|     zorn |  | ||||||
|     " & |  | ||||||
|  |  | ||||||
|     "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=3 --text-info --scroll <<< "MIT License | This program comes with absolutely no warranty. | ||||||
|  | See the License for details." & | ||||||
|  |  | ||||||
|     Copyright (©) 2022 Castro-Fidel (PortWINE-Linux.ru) |  | ||||||
|  |  | ||||||
|     Permission is hereby granted, free of charge, to any person obtaining a copy | "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=2 \ | ||||||
|     of this software and associated documentation files (the "Software"), to deal | --text-align=center --scroll --text="Author:   Casro-Fidel (Mikhail Tergoev) | ||||||
|     in the Software without restriction, including without limitation the rights |  | ||||||
|     to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |  | ||||||
|     copies of the Software, and to permit persons to whom the Software is |  | ||||||
|     furnished to do so, subject to the following conditions: |  | ||||||
|  |  | ||||||
|     The above copyright notice and this permission notice shall be included in all | Developer assistants and testers: | ||||||
|     copies or substantial portions of the Software. | Cefeiko | ||||||
|  | Dezert1r | ||||||
|  | Taz_mania | ||||||
|  | Anton_Famillianov | ||||||
|  | RidBowt | ||||||
|  | chal55rus | ||||||
|  | UserDiscord | ||||||
|  | survolog | ||||||
|  | gavr | ||||||
|  | RusNor | ||||||
|  | aldiserg | ||||||
|  | an9949an | ||||||
|  | andrey4korop | ||||||
|  | zorn | ||||||
|  | " & | ||||||
|  |  | ||||||
|     THE SOFTWARE IS PROVIDED (AS IS), WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=3 --text-info --scroll <<< "MIT License | ||||||
|     IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |  | ||||||
|     FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |  | ||||||
|     AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |  | ||||||
|     LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |  | ||||||
|     OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |  | ||||||
|     SOFTWARE." & |  | ||||||
|  |  | ||||||
|     "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=4 \ | Copyright (©) 2022 Castro-Fidel (PortWINE-Linux.ru) | ||||||
|     --text-info --show-uri  --scroll <<< 'https://boosty.to/portwine-linux.ru: |  | ||||||
|  | Permission is hereby granted, free of charge, to any person obtaining a copy | ||||||
|  | of this software and associated documentation files (the "Software"), to deal | ||||||
|  | in the Software without restriction, including without limitation the rights | ||||||
|  | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||||
|  | copies of the Software, and to permit persons to whom the Software is | ||||||
|  | furnished to do so, subject to the following conditions: | ||||||
|  |  | ||||||
|  | The above copyright notice and this permission notice shall be included in all | ||||||
|  | copies or substantial portions of the Software. | ||||||
|  |  | ||||||
|  | THE SOFTWARE IS PROVIDED (AS IS), WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||||
|  | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||||
|  | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||||
|  | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||||
|  | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||||
|  | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||||
|  | SOFTWARE." & | ||||||
|  |  | ||||||
|  | "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=4 \ | ||||||
|  | --text-info --fontname="Serif bold italic 12" --show-uri --scroll \ | ||||||
|  | <<< '                                    The project was supported: | ||||||
|  |                               https://boosty.to/portwine-linux.ru: | ||||||
|  |  | ||||||
|     1 1 |     1 1 | ||||||
|     A B |     A B | ||||||
| @@ -441,7 +447,7 @@ else | |||||||
|     anisan_sg |     anisan_sg | ||||||
|     apolon |     apolon | ||||||
|     benya |     benya | ||||||
|     chal55rus(Sergey P.) |     chal55rus | ||||||
|     d.kostroma |     d.kostroma | ||||||
|     dunkanMcLoud |     dunkanMcLoud | ||||||
|     dupster mailbox |     dupster mailbox | ||||||
| @@ -467,114 +473,116 @@ else | |||||||
|     wrager |     wrager | ||||||
|     xpamych |     xpamych | ||||||
|     zorn |     zorn | ||||||
|     Александр |     Alexander | ||||||
|     Александр Абдулов |     Alexander Abdulov | ||||||
|     Александр Кладов |     Alexander Kladov | ||||||
|     Александр Лобанов |     Alexander Lobanov | ||||||
|     Алексей Ultralin |     Alexey Ultralin | ||||||
|     Алексей Войтенко |     Alexey Voitenko | ||||||
|     Алексей Галаш |     Alexey Galash | ||||||
|     Алексей Зубрийчук |     Alexey Zubriychuk | ||||||
|     Алексей Ивушкин |     Alexey Ivushkin | ||||||
|     Алексей Кравчук |     Alexey Kravchuk | ||||||
|     Алексей Чугунов |     Alexey Chugunov | ||||||
|     Андрей Гусаков |     Andrey Gusakov | ||||||
|     Андрей Карпенцов |     Andrey Karpentsov | ||||||
|     Антон Рудковский |     Anton Rudkovsky | ||||||
|     Антон Фамилианов |     Anton Surnames | ||||||
|     Антоний Дамикан |     Antony Damikan | ||||||
|     Артём К. |     Artyom K. | ||||||
|     Валерий Толмачёв |     Valery Tolmachev | ||||||
|     Виктор Шварц |     Victor Schwartz | ||||||
|     Виктор Щетинин |     Victor Shchetinin | ||||||
|     Виндэта(рог) |     Vindeta (horn) | ||||||
|     Виталий Нуров |     Vitaly Nurov | ||||||
|     Влад Блинов |     Vlad Blinov | ||||||
|     Влад Кладиев |     Vlad Kladiev | ||||||
|     Владимир Бильдюкевич |     Vladimir Bildyukevich | ||||||
|     Владимир Дарвин |     Vladimir Darwin | ||||||
|     Вячеслав Шитюков |     Vyacheslav Shityukov | ||||||
|     Вячеслав Шустров |     Vyacheslav Shustrov | ||||||
|     Георгий Гурский |     George Gursky | ||||||
|     Данил Павлов |     Danil Pavlov | ||||||
|     Дед Мазай |     Grandfather Mazai | ||||||
|     Денис Мальцев |     Denis Maltsev | ||||||
|     Денис Матій |     Denis Matiy | ||||||
|     Денис Олефиренко |     Denis Olefirenko | ||||||
|     Дмитрий Круглов |     Dmitry Kruglov | ||||||
|     Дмитрий Мазанка |     Dmitry Mazanka | ||||||
|     Дмитрий Сидоров |     Dmitry Sidorov | ||||||
|     Евгений Бебин |     Evgeny Bebin | ||||||
|     Евгений Долгополов |     Evgeny Dolgopolov | ||||||
|     Евгений Хирвонен |     Evgeny Hirvonen | ||||||
|     Евгений Храмов |     Evgeny Khramov | ||||||
|     Егор Кречун |     Egor Krechun | ||||||
|     Женя Рябушкин |     Zhenya Ryabushkin | ||||||
|     Иван Белекеев |     Ivan Belekeyev | ||||||
|     Коляныч Королёв |     Kolyanich Korolev | ||||||
|     Константин __ |     Konstantin __ | ||||||
|     Константин Абадонна |     Konstantin Abadonna | ||||||
|     Леонид |     Leonid | ||||||
|     Максим Хмара-Миронов |     Maxim Khmara-Mironov | ||||||
|     Маленькая сосна |     Little Pine | ||||||
|     Марат |     Marat | ||||||
|     Марат Рахимов |     Marat Rakhimov | ||||||
|     Неизвестый Дмитрий |     Unknown Dmitry | ||||||
|     Никита Булавин |     Nikita Bulavin | ||||||
|     Павел Иванов |     Pavel Ivanov | ||||||
|     Павел Пашенцев |     Pavel Pashentsev | ||||||
|     Равич Ревес |     Ravich Reves | ||||||
|     Рамиль |     Ramil | ||||||
|     Рома Б. |     Roma B. | ||||||
|     Роман Игнатьев |     Roman Ignatiev | ||||||
|     Роман Паженский |     Roman Pazhensky | ||||||
|     Саша  |     Sasha | ||||||
|     Семён Клишин |     Semyon Klishin | ||||||
|     Семён Ярополов |     Semyon Yaropolov | ||||||
|     Сергей Казёнкин |     Sergey Kazenkin | ||||||
|     Сергей Круглов |     Sergey Kruglov | ||||||
|     Серёга Сапрыкин |     Serega Saprykin | ||||||
|     Стас Толкачёв |     Stas Tolkachev | ||||||
|     Тима Суеубаев |     Tima Sueubaev | ||||||
|     Тимофей Ковалев |     Timofey Kovalev | ||||||
|     Тимур Сафонов |     Timur Safonov | ||||||
|     Удалить Аккаунт |     Delete Account | ||||||
|     Хоттабыч |     Hottabych | ||||||
|     Николай Гинтов |     Nikolai Gintov | ||||||
|  |  | ||||||
|  |  | ||||||
|     Список будет дополняться...' & |                                       The list will be updated...' & | ||||||
|  |  | ||||||
|     "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=5 --text="Хотите присоединится и помочь в развитии проекта:" \ | "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=5 --text="Do you want to join and help in the development of the project:" \ | ||||||
|     --title=JOIN --window-icon=group  --image=system-config-users --uri-color=red --show-uri \ | --title=JOIN --window-icon=group  --image=system-config-users --uri-color=red --show-uri \ | ||||||
|     --text-info --scroll <<< \ | --text-info --scroll <<< \ | ||||||
|     "Website:  http://portwine-linux.ru | "Website:  http://portwine-linux.ru | ||||||
|     Discord:  http://discord.gg/yJSEFjF | Discord:  http://discord.gg/yJSEFjF | ||||||
|     VK:       https://vk.com/portwinelinux | VK:       https://vk.com/portwinelinux | ||||||
|     ------------------------------------------- | ------------------------------------------- | ||||||
|     Стать платным подписчиком: | Become a paid subscriber: | ||||||
|     boosty: https://boosty.to/portwine-linux.ru | boosty:  https://boosty.to/portwine-linux.ru | ||||||
|     patreon: https://www.patreon.com/portproton | patreon: https://www.patreon.com/portproton | ||||||
|     Кошельки WebMoney:   WMZ-Z135951244401   WME-E325631629973 | WebMoney wallets:   WMZ-Z135951244401   WME-E325631629973 | ||||||
|     Yandex кошельк:   410012267513818 | Yandex wallet:   410012267513818 | ||||||
|     ------------------------------------------- | ------------------------------------------- | ||||||
|     Задонатить на стрим: | Donat on stream: | ||||||
|     https://www.donationalerts.com/r/portwine_linux" & | https://www.donationalerts.com/r/portwine_linux" & | ||||||
|  |  | ||||||
|     "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=6 --show-uri --title="THIRD PARTY LIBRARIES" \ | "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=6 --show-uri --title="THIRD PARTY LIBRARIES" \ | ||||||
|     --text-info <<< "Сторонние библиотеки, которые используются в PortProton | --fontname="Serif bold italic 10" --text-info <<< "                               Third-party libraries that are used in PortProton | ||||||
|  |  | ||||||
|     PortProton собран на основе следующих бесплатных библиотек программного обеспечения: |               PortProton is built on the basis of the following free software libraries: | ||||||
|  |  | ||||||
|     WINE-PROTON: https://github.com/ValveSoftware/Proton | WINE-PROTON: https://github.com/ValveSoftware/Proton | ||||||
|     WINE-PROTON-GE: https://github.com/GloriousEggroll/proton-ge-custom/ | WINE-PROTON-GE: https://github.com/GloriousEggroll/proton-ge-custom/ | ||||||
|     YAD: https://github.com/v1cont/"${pw_yad_new}" | Kron4ek/Wine: https://github.com/Kron4ek/Wine-Builds | ||||||
|     ZENITY: https://github.com/GNOME/zenity" & | YAD: https://github.com/v1cont/yad | ||||||
|  | ZENITY: https://github.com/GNOME/zenity" & | ||||||
|  |  | ||||||
|     "${pw_yad_new}" --title "ABOUT US" --key="${KEY_CREDITS}" --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \ |  | ||||||
|     --center --notebook --no-buttons  --tab-pos=bottom \ | "${pw_yad_new}" --title "ABOUT US" --key="${KEY_CREDITS}" --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \ | ||||||
|     --tab="ABOUT PORTPROTON" --tab="AUTORS" --tab="LICENSE" --tab="SPONSORS" --tab="JOIN" \ | --center --notebook --no-buttons  --tab-pos=bottom \ | ||||||
|     --tab="THIRD PARTY LIBRARIES" | --tab="ABOUT PORTPROTON" --tab="AUTORS" --tab="LICENSE" --tab="SPONSORS" --tab="JOIN" \ | ||||||
|  | --tab="THIRD PARTY LIBRARIES" | ||||||
|  |  | ||||||
|     /usr/bin/env bash -c ${pw_full_command_line[*]}  |     /usr/bin/env bash -c ${pw_full_command_line[*]}  | ||||||
| fi | fi | ||||||
|   | |||||||
| @@ -28,6 +28,6 @@ export PW_WINEDBG_DISABLE=1 | |||||||
| export PW_USE_GAMEMODE=0             # Force disabele gamemod | export PW_USE_GAMEMODE=0             # Force disabele gamemod | ||||||
| #export PW_FORCE_LARGE_ADDRESS_AWARE=0          # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default. | #export PW_FORCE_LARGE_ADDRESS_AWARE=0          # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default. | ||||||
| #export PULSE_LATENCY_MSEC=60 | #export PULSE_LATENCY_MSEC=60 | ||||||
| export PW_DLL_INSTALL="mfc42 vcrun2012 mfc120 vcrun2013" | export PW_DLL_INSTALL="mfc42 vcrun6sp6 vcrun2012 mfc120 mfc140 vcrun2013" | ||||||
| #export LAUNCH_PARAMETERS="-d3d9" | #export LAUNCH_PARAMETERS="-d3d9" | ||||||
| #export PW_WINDOWS_VER=XP                      # Set windows version 10, 7 or XP | #export PW_WINDOWS_VER=XP                      # Set windows version 10, 7 or XP | ||||||
|   | |||||||
| @@ -469,7 +469,6 @@ start_portwine () { | |||||||
|         export WINE_FULLSCREEN_FSR=1 |         export WINE_FULLSCREEN_FSR=1 | ||||||
|         export WINE_FULLSCREEN_FSR_STRENGTH=0 |         export WINE_FULLSCREEN_FSR_STRENGTH=0 | ||||||
|         export WINE_FULLSCREEN_INTEGER_SCALING=0 |         export WINE_FULLSCREEN_INTEGER_SCALING=0 | ||||||
|         # export WINE_FULLSCREEN_FAKE_CURRENT_RES=1920x1080 |  | ||||||
|     else |     else | ||||||
|         export WINE_FULLSCREEN_FSR=0 |         export WINE_FULLSCREEN_FSR=0 | ||||||
|         unset WINE_FULLSCREEN_FAKE_CURRENT_RES WINE_FULLSCREEN_FSR_STRENGTH WINE_FULLSCREEN_INTEGER_SCALING |         unset WINE_FULLSCREEN_FAKE_CURRENT_RES WINE_FULLSCREEN_FSR_STRENGTH WINE_FULLSCREEN_INTEGER_SCALING | ||||||
|   | |||||||
| @@ -1,730 +0,0 @@ | |||||||
| #!/usr/bin/env bash |  | ||||||
| # Author: PortWINE-Linux.ru |  | ||||||
| export NO_AT_BRIDGE=1 |  | ||||||
| export pw_full_command_line=("$0" $*) |  | ||||||
| if [ -f "$1" ]; then |  | ||||||
|     export portwine_exe="$(readlink -f "$1")" |  | ||||||
| fi |  | ||||||
| . "$(dirname $(readlink -f "$0"))/runlib" |  | ||||||
| kill_portwine |  | ||||||
| pw_stop_progress_bar |  | ||||||
|  |  | ||||||
| if [[ -f "/usr/bin/portproton" ]] && [[ -f "${HOME}/.local/share/applications/PortProton.desktop" ]] ; then |  | ||||||
|     /usr/bin/env bash "/usr/bin/portproton" "$@" &  |  | ||||||
|     exit 0 |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| if [[ "${XDG_SESSION_TYPE}" = "wayland" ]] && [[ ! -f "${PORT_WINE_TMP_PATH}/check_wayland" ]]; then |  | ||||||
|     zenity_info "$PW_WAYLAND_INFO" |  | ||||||
|     echo "1" > "${PORT_WINE_TMP_PATH}/check_wayland" |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| if [[ -n $(basename "${portwine_exe}" | grep .ppack) ]] ; then |  | ||||||
|     export PW_ADD_TO_ARGS_IN_RUNTIME="--xterm" |  | ||||||
|     unset PW_SANDBOX_HOME_PATH |  | ||||||
|     pw_init_runtime |  | ||||||
|     export PW_PREFIX_NAME=$(basename "$1" | awk -F'.' '{print $1}') |  | ||||||
|     ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" unsquashfs -f -d "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}" "$1" & |  | ||||||
|     sleep 10 |  | ||||||
|     while true ; do |  | ||||||
|         if [[ -n $(pgrep -a xterm | grep ".ppack" | head -n 1 | awk '{print $1}') ]] ; then |  | ||||||
|             sleep 0.5 |  | ||||||
|         else |  | ||||||
|             kill -TERM $(pgrep -a unsquashfs | grep ".ppack" | head -n 1 | awk '{print $1}') |  | ||||||
|             sleep 0.3 |  | ||||||
|             if [[ -z "$(pgrep -a unsquashfs | grep ".ppack" | head -n 1 | awk '{print $1}')" ]] |  | ||||||
|             then break |  | ||||||
|             else sleep 0.3 |  | ||||||
|             fi |  | ||||||
|         fi |  | ||||||
|     done |  | ||||||
|     if [[ -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut" ]] ; then |  | ||||||
|         orig_IFS="$IFS" |  | ||||||
|         IFS=$'\n' |  | ||||||
|         for crfb in $(cat "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut") ; do |  | ||||||
|             export portwine_exe="${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/${crfb}" |  | ||||||
|             portwine_create_shortcut "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/${crfb}" |  | ||||||
|         done |  | ||||||
|         IFS="$orig_IFS" |  | ||||||
|     fi |  | ||||||
|     exit 0 |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| portwine_launch () { |  | ||||||
|     start_portwine |  | ||||||
|     PORTWINE_MSI=$(basename "${portwine_exe}" | grep .msi) |  | ||||||
|     PORTWINE_BAT=$(basename "${portwine_exe}" | grep .bat) |  | ||||||
|     if [[ -n "${PW_VIRTUAL_DESKTOP}" && "${PW_VIRTUAL_DESKTOP}" == "1" ]] ; then |  | ||||||
|         pw_screen_resolution=$(xrandr --current | grep "*" | awk '{print $1;}' | head -1) |  | ||||||
|         pw_run explorer "/desktop=portwine,${pw_screen_resolution}" ${WINE_WIN_START} "$portwine_exe" |  | ||||||
|     elif [ -n "${PORTWINE_MSI}" ]; then |  | ||||||
|         pw_run msiexec /i "$portwine_exe" |  | ||||||
|     elif [[ -n "${PORTWINE_BAT}" || -n "${portwine_exe}" ]] ; then |  | ||||||
|         pw_run ${WINE_WIN_START} "$portwine_exe" |  | ||||||
|     else |  | ||||||
|         pw_run winefile |  | ||||||
|     fi |  | ||||||
| } |  | ||||||
|  |  | ||||||
| portwine_start_debug () { |  | ||||||
|     kill_portwine |  | ||||||
|     export PW_LOG=1 |  | ||||||
|     export PW_WINEDBG_DISABLE=0 |  | ||||||
|     echo "${port_deb1}" > "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "${port_deb2}" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "-------------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "PortWINE version:" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     read install_ver < "${PORT_WINE_TMP_PATH}/${portname}_ver" |  | ||||||
|     echo "${portname}-${install_ver}" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "------------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "Scripts version:" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     cat "${PORT_WINE_TMP_PATH}/scripts_ver" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "-----------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     if [ "${PW_USE_RUNTIME}" = 0 ] ; then |  | ||||||
|         echo "RUNTIME is disabled" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     else |  | ||||||
|         echo "RUNTIME is enabled" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     fi |  | ||||||
|     echo "----------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     if [ -n "${portwine_exe}" ] ; then |  | ||||||
|         echo "Debug for programm:" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|         echo "${portwine_exe}" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|         echo "---------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     fi |  | ||||||
|     echo "GLIBC version:" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo $(ldd --version | grep -m1 ldd | awk '{print $NF}') >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "--------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     if [[ "${PW_VULKAN_USE}" = "0" ]] ; then  |  | ||||||
|         echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DX9-11 to OpenGL" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     elif [[ "${PW_VULKAN_USE}" = "3" ]] ; then  |  | ||||||
|         echo "PW_VULKAN_USE=${PW_VULKAN_USE} - native DX9 on MESA drivers" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     else  |  | ||||||
|         echo "PW_VULKAN_USE=${PW_VULKAN_USE}" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     fi |  | ||||||
|     echo "--------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "Version WINE in the Port:" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     print_var PW_WINE_USE >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     [ -f "${WINEDIR}/version" ] && cat "${WINEDIR}/version" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "Date and time of start debug for ${portname}:" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     date >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "-----------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "The installation path of the ${portname}:" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "$PORT_WINE_PATH" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "----------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "Operating system" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     lsb_release -d | sed s/Description/ОС/g >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "--------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "Desktop environment:" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "Desktop session: ${DESKTOP_SESSION}" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "Current desktop: ${XDG_CURRENT_DESKTOP}" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "Session type: ${XDG_SESSION_TYPE}" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "--------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "Kernel" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     uname -r >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "-------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "CPU" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     cat /proc/cpuinfo | grep "model name" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "RAM" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     free -m >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "-----------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "Graphic cards and drivers:" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo 'lspci -k | grep -EA3 VGA|3D|Display:' >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo $(lspci -k | grep -EA3 'VGA|3D|Display') >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     [[ `which glxinfo` ]] && glxinfo -B >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo " " >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "inxi -G:" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     "${PW_WINELIB}/portable/bin/inxi" -G >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "----------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "Vulkan info device name:" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     [[ `which vulkaninfo` ]] && vulkaninfo | grep deviceName >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     "${PW_WINELIB}/portable/bin/vkcube" --c 50 |  | ||||||
|     if [ $? -eq 0 ]; then |  | ||||||
|         echo "Vulkan cube test passed successfully" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     else |  | ||||||
|         echo "Vkcube test completed with error" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     fi |  | ||||||
|     if [ ! -x "$(which gamemoderun 2>/dev/null)" ] |  | ||||||
|     then |  | ||||||
|         echo "---------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|         echo "!!!gamemod not found!!!"  >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     fi |  | ||||||
|     echo "-------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     if [[ "${PW_USE_D3D_EXTRAS}" != 1 ]] |  | ||||||
|     then echo "D3D_EXTRAS - disabled" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     else echo "D3D_EXTRAS - enabled" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     fi |  | ||||||
|     echo "------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "winetricks.log:" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     cat "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" | sed -e /"^d3dcomp*"/d -e /"^d3dx*"/d >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     echo "-----------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     if [ -n "${PORTWINE_DB_FILE}" ]; then |  | ||||||
|         echo "Use ${PORTWINE_DB_FILE} db file:" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|         cat "${PORTWINE_DB_FILE}" | sed '/##/d' >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     else |  | ||||||
|         echo "Use ${PORT_SCRIPTS_PATH}/portwine_db/default db file:" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|         cat "${PORT_SCRIPTS_PATH}/portwine_db/default" | sed '/##/d' >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     fi |  | ||||||
|     echo "----------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     if [ -f "${USER_CONF}" ]; then |  | ||||||
|         cat "${USER_CONF}" | sed '/bash/d' >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     fi |  | ||||||
|     echo "---------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|  |  | ||||||
|     export DXVK_HUD="full" |  | ||||||
|  |  | ||||||
|     portwine_launch & |  | ||||||
|     sleep 3 |  | ||||||
|     pw_stop_progress_bar_cover |  | ||||||
|     unset PW_TIMER |  | ||||||
|     while read -r line || [[ -n $(pgrep -a yad | grep "yad_new --text-info --tail --button="STOP":0 --title="DEBUG"" | awk '{print $1}') ]] ; do |  | ||||||
|             sleep 0.005 |  | ||||||
|             if [[ -n "${line}" ]] && [[ -z "$(echo "${line}" | grep -i "gstreamer")" ]] \ |  | ||||||
|                                     && [[ -z "$(echo "${line}" | grep -i "kerberos")" ]] \ |  | ||||||
|                                     && [[ -z "$(echo "${line}" | grep -i "ntlm")" ]] |  | ||||||
|             then |  | ||||||
|                 echo "# ${line}" |  | ||||||
|             fi |  | ||||||
|             if [[ "${PW_TIMER}" != 1 ]] ; then |  | ||||||
|                 sleep 3 |  | ||||||
|                 PW_TIMER=1 |  | ||||||
|             fi |  | ||||||
|     done < "${PORT_WINE_PATH}/${portname}.log" | "${pw_yad_new}" --text-info --tail --button="STOP":0 --title="DEBUG" \ |  | ||||||
|     --skip-taskbar --center --width=800 --height=400 --text "${port_debug}" && |  | ||||||
|     kill_portwine |  | ||||||
| #    sleep 1 && zenity --info --title "DEBUG" --text "${port_debug}" --no-wrap &> /dev/null && kill_portwine |  | ||||||
|     sed -i '/.fx$/d' "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     sed -i '/GStreamer/d' "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     sed -i '/kerberos/d' "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     sed -i '/ntlm/d' "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     sed -i '/HACK_does_openvr_work/d' "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     sed -i '/Uploading is disabled/d' "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     deb_text=$(cat "${PORT_WINE_PATH}/${portname}.log"  | awk '! a[$0]++')  |  | ||||||
|     echo "$deb_text" > "${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     "$pw_yad" --title="${portname}.log" --borders=7 --no-buttons --text-align=center \ |  | ||||||
|     --text-info --show-uri --wrap --center --width=1200 --height=550  --uri-color=red \ |  | ||||||
|     --filename="${PORT_WINE_PATH}/${portname}.log" |  | ||||||
|     stop_portwine |  | ||||||
| } |  | ||||||
|  |  | ||||||
| pw_winecfg () { |  | ||||||
|     start_portwine |  | ||||||
|     pw_run winecfg |  | ||||||
| } |  | ||||||
|  |  | ||||||
| pw_winefile () { |  | ||||||
|     start_portwine |  | ||||||
|     pw_run winefile |  | ||||||
| } |  | ||||||
|  |  | ||||||
| pw_winecmd () { |  | ||||||
|     export PW_USE_TERMINAL=1 |  | ||||||
|     start_portwine |  | ||||||
|     cd "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c" |  | ||||||
|     ${pw_runtime} env LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" xterm -e "${WINELOADER}" cmd |  | ||||||
|     stop_portwine |  | ||||||
| } |  | ||||||
|  |  | ||||||
| pw_winereg () { |  | ||||||
|     start_portwine |  | ||||||
|     pw_run regedit |  | ||||||
| } |  | ||||||
|  |  | ||||||
| pw_prefix_manager () { |  | ||||||
|     update_winetricks |  | ||||||
|     start_portwine |  | ||||||
|     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 |  | ||||||
|  |  | ||||||
|     pw_start_progress_bar_block "Starting prefix manager..." |  | ||||||
|     "${PORT_WINE_TMP_PATH}/winetricks" dlls list | awk -F'(' '{print $1}' 1> "${PORT_WINE_TMP_PATH}/dll_list" |  | ||||||
|     "${PORT_WINE_TMP_PATH}/winetricks" fonts list | awk -F'(' '{print $1}' 1> "${PORT_WINE_TMP_PATH}/fonts_list" |  | ||||||
|     "${PORT_WINE_TMP_PATH}/winetricks" settings list | awk -F'(' '{print $1}' 1> "${PORT_WINE_TMP_PATH}/settings_list" |  | ||||||
|     pw_stop_progress_bar |  | ||||||
|  |  | ||||||
|     gui_prefix_manager () { |  | ||||||
|         pw_start_progress_bar_block "Starting prefix manager..." |  | ||||||
|         unset SET_FROM_PFX_MANAGER_TMP SET_FROM_PFX_MANAGER |  | ||||||
|         old_IFS=$IFS |  | ||||||
|         IFS=$'\n' |  | ||||||
|         try_remove_file  "${PORT_WINE_TMP_PATH}/dll_list_tmp" |  | ||||||
|         while read PW_BOOL_IN_DLL_LIST ; do |  | ||||||
|             if [[ -z $(echo "${PW_BOOL_IN_DLL_LIST}" | grep -E 'd3d|directx9|dont_use|dxvk|vkd3d|galliumnine|faudio1') ]] ; then |  | ||||||
|                 if grep "^$(echo ${PW_BOOL_IN_DLL_LIST} | awk '{print $1}')$" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" ; then |  | ||||||
|                     echo -e "true\n$(echo ${PW_BOOL_IN_DLL_LIST} | awk '{print $1}')\n`echo ${PW_BOOL_IN_DLL_LIST} | awk '{ $1 = ""; print substr($0, 2) }'`" >> "${PORT_WINE_TMP_PATH}/dll_list_tmp" |  | ||||||
|                 else |  | ||||||
|                     echo -e "false\n`echo "${PW_BOOL_IN_DLL_LIST}" | awk '{print $1}'`\n`echo ${PW_BOOL_IN_DLL_LIST} | awk '{ $1 = ""; print substr($0, 2) }'`" >> "${PORT_WINE_TMP_PATH}/dll_list_tmp" |  | ||||||
|                 fi |  | ||||||
|             fi |  | ||||||
|         done < "${PORT_WINE_TMP_PATH}/dll_list" |  | ||||||
|         try_remove_file  "${PORT_WINE_TMP_PATH}/fonts_list_tmp" |  | ||||||
|         while read PW_BOOL_IN_FONTS_LIST ; do |  | ||||||
|             if [[ -z $(echo "${PW_BOOL_IN_FONTS_LIST}" | grep -E 'dont_use') ]] ; then |  | ||||||
|                 if grep "^$(echo "${PW_BOOL_IN_FONTS_LIST}" | awk '{print $1}')$" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" ; then |  | ||||||
|                     echo -e "true\n$(echo "${PW_BOOL_IN_FONTS_LIST}" | awk '{print $1}')\n$(echo "${PW_BOOL_IN_FONTS_LIST}" | awk '{ $1 = ""; print substr($0, 2) }')" >> "${PORT_WINE_TMP_PATH}/fonts_list_tmp" |  | ||||||
|                 else |  | ||||||
|                     echo -e "false\n$(echo "${PW_BOOL_IN_FONTS_LIST}" | awk '{print $1}')\n$(echo "${PW_BOOL_IN_FONTS_LIST}" | awk '{ $1 = ""; print substr($0, 2) }')" >> "${PORT_WINE_TMP_PATH}/fonts_list_tmp" |  | ||||||
|                 fi |  | ||||||
|             fi |  | ||||||
|         done < "${PORT_WINE_TMP_PATH}/fonts_list" |  | ||||||
|         try_remove_file  "${PORT_WINE_TMP_PATH}/settings_list_tmp" |  | ||||||
|         while read PW_BOOL_IN_FONTS_LIST ; do |  | ||||||
|             if [[ -z $(echo "${PW_BOOL_IN_FONTS_LIST}" | grep -E 'vista|alldlls|autostart_|bad|good|win|videomemory|vd=|isolate_home') ]] ; then |  | ||||||
|                 if grep "^$(echo "${PW_BOOL_IN_FONTS_LIST}" | awk '{print $1}')$" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" ; then |  | ||||||
|                     echo -e "true\n$(echo "${PW_BOOL_IN_FONTS_LIST}" | awk '{print $1}')\n$(echo "${PW_BOOL_IN_FONTS_LIST}" | awk '{ $1 = ""; print substr($0, 2) }')" >> "${PORT_WINE_TMP_PATH}/settings_list_tmp" |  | ||||||
|                 else |  | ||||||
|                     echo -e "false\n$(echo "${PW_BOOL_IN_FONTS_LIST}" | awk '{print $1}')\n$(echo "${PW_BOOL_IN_FONTS_LIST}" | awk '{ $1 = ""; print substr($0, 2) }')" >> "${PORT_WINE_TMP_PATH}/settings_list_tmp" |  | ||||||
|                 fi |  | ||||||
|             fi |  | ||||||
|         done < "${PORT_WINE_TMP_PATH}/settings_list" |  | ||||||
|         pw_stop_progress_bar |  | ||||||
|  |  | ||||||
|         KEY_EDIT_MANAGER_GUI=$RANDOM |  | ||||||
|         "${pw_yad_new}" --plug=$KEY_EDIT_MANAGER_GUI --tabnum=1 --list --checklist \ |  | ||||||
|         --text="Select components to install in prefix: <b>\"${PW_PREFIX_NAME}\"</b>, using wine: <b>\"${PW_WINE_USE}\"</b>" \ |  | ||||||
|         --column=set --column=dll --column=info < "${PORT_WINE_TMP_PATH}/dll_list_tmp" 1>> "${PORT_WINE_TMP_PATH}/to_winetricks" & |  | ||||||
|  |  | ||||||
|         "${pw_yad_new}" --plug=$KEY_EDIT_MANAGER_GUI --tabnum=2 --list --checklist \ |  | ||||||
|         --text="Select fonts to install in prefix: <b>\"${PW_PREFIX_NAME}\"</b>, using wine: <b>\"${PW_WINE_USE}\"</b>" \ |  | ||||||
|         --column=set --column=dll --column=info < "${PORT_WINE_TMP_PATH}/fonts_list_tmp" 1>> "${PORT_WINE_TMP_PATH}/to_winetricks" & |  | ||||||
|  |  | ||||||
|         "${pw_yad_new}" --plug=$KEY_EDIT_MANAGER_GUI --tabnum=3 --list --checklist \ |  | ||||||
|         --text="Change config for prefix: <b>\"${PW_PREFIX_NAME}\"</b>" \ |  | ||||||
|         --column=set --column=dll --column=info < "${PORT_WINE_TMP_PATH}/settings_list_tmp" 1>> "${PORT_WINE_TMP_PATH}/to_winetricks" & |  | ||||||
|  |  | ||||||
|         "${pw_yad_new}" --key=$KEY_EDIT_MANAGER_GUI --notebook --borders=5 --width=700 --height=600 --center \ |  | ||||||
|         --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "PREFIX MANAGER..." --tab-pos=bottom --tab="DLL" --tab="FONTS" --tab="SETTINGS" |  | ||||||
|         YAD_STATUS="$?" |  | ||||||
|         if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then |  | ||||||
|             stop_portwine |  | ||||||
|             exit 0 |  | ||||||
|         fi  |  | ||||||
|         try_remove_file  "${PORT_WINE_TMP_PATH}/dll_list_tmp" |  | ||||||
|         try_remove_file  "${PORT_WINE_TMP_PATH}/fonts_list_tmp" |  | ||||||
|         try_remove_file  "${PORT_WINE_TMP_PATH}/settings_list_tmp" |  | ||||||
|  |  | ||||||
|         for STPFXMNG in $(cat "${PORT_WINE_TMP_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 |  | ||||||
|                 [[ -n "${STPFXMNG}" ]] && SET_FROM_PFX_MANAGER+="$(echo "${STPFXMNG}" | awk -F'|' '{print $2}') " |  | ||||||
|             fi |  | ||||||
|         done |  | ||||||
|         IFS=${old_IFS} |  | ||||||
|         try_remove_file  "${PORT_WINE_TMP_PATH}/to_winetricks" |  | ||||||
|  |  | ||||||
|         if [[ -n ${SET_FROM_PFX_MANAGER} ]] ; then |  | ||||||
|             export PW_ADD_TO_ARGS_IN_RUNTIME="--xterm" |  | ||||||
|             pw_init_runtime |  | ||||||
|             ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" "${PORT_WINE_TMP_PATH}/winetricks" -q -r -f ${SET_FROM_PFX_MANAGER} |  | ||||||
|             gui_prefix_manager |  | ||||||
|         else |  | ||||||
|             print_info "Nothing to do. Restarting PortProton..." |  | ||||||
|             stop_portwine & |  | ||||||
|             /usr/bin/env bash -c ${pw_full_command_line[*]}  |  | ||||||
|         fi |  | ||||||
|     } |  | ||||||
|     gui_prefix_manager |  | ||||||
| } |  | ||||||
|  |  | ||||||
| pw_winetricks () { |  | ||||||
|     update_winetricks |  | ||||||
|     export PW_USE_TERMINAL=1 |  | ||||||
|     start_portwine |  | ||||||
|     pw_stop_progress_bar |  | ||||||
|     echo "WINETRICKS..." > "${PORT_WINE_TMP_PATH}/update_pfx_log" |  | ||||||
|     unset PW_TIMER |  | ||||||
|     while read -r line || [[ -n $(pgrep -a yad | grep "yad_new --text-info --tail --no-buttons --title="WINETRICKS"" | awk '{print $1}') ]] ; do |  | ||||||
|             sleep 0.005 |  | ||||||
|             if [[ -n "${line}" ]] && [[ -z "$(echo "${line}" | grep -i "gstreamer")" ]] \ |  | ||||||
|                                     && [[ -z "$(echo "${line}" | grep -i "kerberos")" ]] \ |  | ||||||
|                                     && [[ -z "$(echo "${line}" | grep -i "ntlm")" ]] |  | ||||||
|             then |  | ||||||
|                 echo "# ${line}" |  | ||||||
|             fi |  | ||||||
|             if [[ "${PW_TIMER}" != 1 ]] ; then |  | ||||||
|                 sleep 3 |  | ||||||
|                 PW_TIMER=1 |  | ||||||
|             fi |  | ||||||
|     done < "${PORT_WINE_TMP_PATH}/update_pfx_log" | "${pw_yad_new}" --text-info --tail --no-buttons --title="WINETRICKS" \ |  | ||||||
|     --auto-close --skip-taskbar --width=$PW_GIF_SIZE_X --height=$PW_GIF_SIZE_Y & |  | ||||||
|     "${PORT_WINE_TMP_PATH}/winetricks" -q -r -f &>>"${PORT_WINE_TMP_PATH}/update_pfx_log" |  | ||||||
|     try_remove_file "${PORT_WINE_TMP_PATH}/update_pfx_log" |  | ||||||
|     kill -s SIGTERM "$(pgrep -a yad_new | grep "title=WINETRICKS" | awk '{print $1}')" > /dev/null 2>&1     |  | ||||||
|     stop_portwine |  | ||||||
| } |  | ||||||
|  |  | ||||||
| pw_create_prefix_backup () { |  | ||||||
|     cd "$HOME" |  | ||||||
|     PW_PREFIX_TO_BACKUP=$("${pw_yad_new}" --file --directory --borders=5 --width=650 --height=500 --auto-close --center \ |  | ||||||
|     --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "BACKUP PREFIX TO...") |  | ||||||
|     YAD_STATUS="$?" |  | ||||||
|     if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; 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" |  | ||||||
|     fi |  | ||||||
|     unset PW_SANDBOX_HOME_PATH |  | ||||||
|     export PW_ADD_TO_ARGS_IN_RUNTIME="--xterm" |  | ||||||
|     pw_init_runtime |  | ||||||
|     chmod -R u+w "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}" |  | ||||||
|     ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" mksquashfs "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}" "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack.part" -comp zstd & |  | ||||||
|     sleep 10 |  | ||||||
|     while true ; do |  | ||||||
|         if [[ -n $(pgrep -a xterm | grep ".ppack.part" | head -n 1 | awk '{print $1}') ]] ; then |  | ||||||
|             sleep 0.5 |  | ||||||
|         else |  | ||||||
|             kill -TERM $(pgrep -a mksquashfs | grep ".ppack.part" | head -n 1 | awk '{print $1}') |  | ||||||
|             sleep 0.3 |  | ||||||
|             if [[ -z "$(pgrep -a mksquashfs | grep ".ppack.part" | head -n 1 | awk '{print $1}')" ]] |  | ||||||
|             then break |  | ||||||
|             else sleep 0.3 |  | ||||||
|             fi |  | ||||||
|         fi |  | ||||||
|     done |  | ||||||
|     if [[ -f "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack.part" ]] ; then |  | ||||||
|         mv -f "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack.part" "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack" |  | ||||||
|         zenity_info "Backup for prefix \"${PW_PREFIX_NAME}\" successfully created." |  | ||||||
|     else  |  | ||||||
|         zenity_error "An error occurred while creating a backup for prefix: \"${PW_PREFIX_NAME}\" !" |  | ||||||
|     fi |  | ||||||
|     return 0 |  | ||||||
| } |  | ||||||
|  |  | ||||||
| pw_edit_db () { |  | ||||||
|     pw_gui_for_edit_db \ |  | ||||||
|     PW_MANGOHUD PW_MANGOHUD_USER_CONF ENABLE_VKBASALT PW_NO_ESYNC PW_NO_FSYNC PW_USE_DXR10 PW_USE_DXR11 \ |  | ||||||
|     PW_USE_NVAPI_AND_DLSS PW_WINE_FULLSCREEN_FSR PW_OLD_GL_STRING PW_HIDE_NVIDIA_GPU PW_FORCE_USE_VSYNC PW_VIRTUAL_DESKTOP \ |  | ||||||
|     PW_WINEDBG_DISABLE PW_USE_TERMINAL PW_WINE_ALLOW_XIM PW_HEAP_DELAY_FREE PW_GUI_DISABLED_CS PW_USE_GSTREAMER \ |  | ||||||
|     PW_USE_GAMEMODE PW_DX12_DISABLE PW_PRIME_RENDER_OFFLOAD PW_USE_D3D_EXTRAS PW_FIX_VIDEO_IN_GAME PW_USE_AMDVLK_DRIVER \ |  | ||||||
|     PW_FORCE_LARGE_ADDRESS_AWARE PW_USE_SHADER_CACHE |  | ||||||
|     if [ "$?" == 0 ] ; then |  | ||||||
|         /usr/bin/env bash -c ${pw_full_command_line[*]} & |  | ||||||
|         exit 0 |  | ||||||
|     fi |  | ||||||
| } |  | ||||||
|  |  | ||||||
| pw_autoinstall_from_db () { |  | ||||||
|     export PW_USER_TEMP="${PORT_WINE_TMP_PATH}" |  | ||||||
|     export PW_FORCE_LARGE_ADDRESS_AWARE=0 |  | ||||||
|     export PW_USE_GAMEMODE=0 |  | ||||||
|     export PW_CHECK_AUTOINSTAL=1 |  | ||||||
|     export PW_GUI_DISABLED_CS=1 |  | ||||||
|     export PW_WINEDBG_DISABLE=1 |  | ||||||
|     export PW_NO_WRITE_WATCH=0 |  | ||||||
|     export PW_VULKAN_USE=0 |  | ||||||
|     export PW_NO_FSYNC=1 |  | ||||||
|     export PW_NO_ESYNC=1 |  | ||||||
|     unset PORTWINE_CREATE_SHORTCUT_NAME |  | ||||||
|     export PW_DISABLED_CREATE_DB=1 |  | ||||||
|     export PW_MANGOHUD=0 |  | ||||||
|     export ENABLE_VKBASALT=0 |  | ||||||
|     export PW_USE_D3D_EXTRAS=1 |  | ||||||
|     . "${PORT_SCRIPTS_PATH}/pw_autoinstall/${PW_YAD_SET}" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| gui_credits () { |  | ||||||
|     . "${PORT_SCRIPTS_PATH}/credits" |  | ||||||
| } |  | ||||||
| export -f gui_credits |  | ||||||
|  |  | ||||||
| ###MAIN### |  | ||||||
| PW_PREFIX_NAME="$(echo "${PW_PREFIX_NAME}" | sed -e s/[[:blank:]]/_/g)" |  | ||||||
| PW_ALL_PREFIXES=$(ls "${PORT_WINE_PATH}/data/prefixes/" | sed -e s/"${PW_PREFIX_NAME}$"//g) |  | ||||||
| export PW_PREFIX_NAME PW_ALL_PREFIXES |  | ||||||
|  |  | ||||||
| # if [[ -n "${PORTWINE_DB}" ]] && [[ -z `echo "${PW_PREFIX_NAME}" | grep -i "$(echo "${PORTWINE_DB}" | sed -e s/[[:blank:]]/_/g)"` ]] ; then  |  | ||||||
| #     export PW_PREFIX_NAME="${PW_PREFIX_NAME}!`echo "${PORTWINE_DB}" | sed -e s/[[:blank:]]/_/g`" |  | ||||||
| # fi |  | ||||||
|  |  | ||||||
| unset PW_ADD_PREFIXES_TO_GUI |  | ||||||
| IFS_OLD=$IFS |  | ||||||
| IFS=$'\n' |  | ||||||
| for PAIG in ${PW_ALL_PREFIXES[*]} ; do  |  | ||||||
|     [[ "${PAIG}" != $(echo "${PORTWINE_DB^^}" | sed -e s/[[:blank:]]/_/g) ]] && \ |  | ||||||
|     export PW_ADD_PREFIXES_TO_GUI="${PW_ADD_PREFIXES_TO_GUI}!${PAIG}" |  | ||||||
| done |  | ||||||
| IFS=$IFS_OLD |  | ||||||
| export PW_ADD_PREFIXES_TO_GUI="${PW_PREFIX_NAME^^}${PW_ADD_PREFIXES_TO_GUI}" |  | ||||||
|  |  | ||||||
| PW_ALL_DIST=$(ls "${PORT_WINE_PATH}/data/dist/" | sed -e s/"${PW_PROTON_GE_VER}$//g" | sed -e s/"${PW_PROTON_STEAM_VER}$//g") |  | ||||||
| unset DIST_ADD_TO_GUI |  | ||||||
| for DAIG in ${PW_ALL_DIST} |  | ||||||
| do |  | ||||||
|     export DIST_ADD_TO_GUI="${DIST_ADD_TO_GUI}!${DAIG}" |  | ||||||
| done |  | ||||||
| if [[ -n "${PORTWINE_DB_FILE}" ]] ; then |  | ||||||
|     [[ -z "${PW_COMMENT_DB}" ]] && PW_COMMENT_DB="PortWINE database file for "\"${PORTWINE_DB}"\" was found." |  | ||||||
|     if [[ -z "${PW_VULKAN_USE}" || -z "${PW_WINE_USE}" ]] ; then |  | ||||||
|         unset PW_GUI_DISABLED_CS |  | ||||||
|         [[ -z "${PW_VULKAN_USE}" ]] && export PW_VULKAN_USE=1 |  | ||||||
|     fi |  | ||||||
|     case "${PW_VULKAN_USE}" in |  | ||||||
|             "0") export PW_DEFAULT_VULKAN_USE='OPENGL!VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!GALLIUM_NINE (native DX9 on MESA)' ;; |  | ||||||
|             "2") export PW_DEFAULT_VULKAN_USE='VULKAN (WINE DXGI)!VULKAN (DXVK and VKD3D)!OPENGL!GALLIUM_NINE (native DX9 on MESA)' ;; |  | ||||||
|             "3") export PW_DEFAULT_VULKAN_USE='GALLIUM_NINE (native DX9 on MESA)!VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL' ;; |  | ||||||
|               *) export PW_DEFAULT_VULKAN_USE='VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL!GALLIUM_NINE (native DX9 on MESA)' ;; |  | ||||||
|     esac |  | ||||||
|     if [[ -n $(echo "${PW_WINE_USE}" | grep "^PROTON_STEAM$") ]] ; then |  | ||||||
|         export PW_DEFAULT_WINE_USE="${PW_PROTON_STEAM_VER}!${PW_PROTON_GE_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE" |  | ||||||
|     elif [[ -n $(echo "${PW_WINE_USE}" | grep "^PROTON_GE$") ]] ; then |  | ||||||
|         export PW_DEFAULT_WINE_USE="${PW_PROTON_GE_VER}!${PW_PROTON_STEAM_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE" |  | ||||||
|     else |  | ||||||
|         if [[ "${PW_WINE_USE}" == "${PW_PROTON_STEAM_VER}" ]] ; then |  | ||||||
|             export PW_DEFAULT_WINE_USE="${PW_WINE_USE}!${PW_PROTON_GE_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE"  |  | ||||||
|         elif [[ "${PW_WINE_USE}" == "${PW_PROTON_GE_VER}" ]] ; then |  | ||||||
|             export PW_DEFAULT_WINE_USE="${PW_WINE_USE}!${PW_PROTON_STEAM_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE"  |  | ||||||
|         else |  | ||||||
|             export DIST_ADD_TO_GUI=$(echo "${DIST_ADD_TO_GUI}" | sed -e s/"\!${PW_WINE_USE}$//g") |  | ||||||
|             export PW_DEFAULT_WINE_USE="${PW_WINE_USE}!${PW_PROTON_GE_VER}!${PW_PROTON_STEAM_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE" |  | ||||||
|         fi |  | ||||||
|     fi |  | ||||||
| else |  | ||||||
|     export PW_DEFAULT_VULKAN_USE='VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL!GALLIUM_NINE (native DX9 on MESA)' |  | ||||||
|     if [[ -n $(echo "${PW_WINE_USE}" | grep "^PROTON_STEAM$") ]] ; then |  | ||||||
|         export PW_DEFAULT_WINE_USE="${PW_PROTON_STEAM_VER}!${PW_PROTON_GE_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE" |  | ||||||
|     elif [[ -n $(echo "${PW_WINE_USE}" | grep "^PROTON_GE$") ]] ; then |  | ||||||
|         export PW_DEFAULT_WINE_USE="${PW_PROTON_GE_VER}!${PW_PROTON_STEAM_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE" |  | ||||||
|     else |  | ||||||
|         if [[ "${PW_WINE_USE}" == "${PW_PROTON_STEAM_VER}" ]] ; then |  | ||||||
|             export PW_DEFAULT_WINE_USE="${PW_WINE_USE}!${PW_PROTON_GE_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE"  |  | ||||||
|         elif [[ "${PW_WINE_USE}" == "${PW_PROTON_GE_VER}" ]] ; then |  | ||||||
|             export PW_DEFAULT_WINE_USE="${PW_WINE_USE}!${PW_PROTON_STEAM_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE"  |  | ||||||
|         else |  | ||||||
|             export DIST_ADD_TO_GUI=$(echo "${DIST_ADD_TO_GUI}" | sed -e s/"\!${PW_WINE_USE}$//g") |  | ||||||
|             export PW_DEFAULT_WINE_USE="${PW_WINE_USE}!${PW_PROTON_GE_VER}!${PW_PROTON_STEAM_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE" |  | ||||||
|         fi      |  | ||||||
|     fi |  | ||||||
|     unset PW_GUI_DISABLED_CS |  | ||||||
| fi |  | ||||||
| if [ -n "${portwine_exe}" ]; then |  | ||||||
|     if [[ -z "${PW_GUI_DISABLED_CS}" || "${PW_GUI_DISABLED_CS}" == 0 ]] ; then   |  | ||||||
|         pw_create_gui_png |  | ||||||
|         grep -il "${portwine_exe}" "${HOME}/.local/share/applications"/*.desktop |  | ||||||
|         if [[ "$?" != "0" ]] ; then |  | ||||||
|             PW_SHORTCUT="CREATE SHORTCUT!!${loc_create_shortcut}:100" |  | ||||||
|         else |  | ||||||
|             PW_SHORTCUT="DELETE SHORTCUT!!${loc_delete_shortcut}:98" |  | ||||||
|         fi |  | ||||||
|         OUTPUT_START=$("${pw_yad}" --text-align=center --text "$PW_COMMENT_DB" --wrap-width=150 --borders=7 --form --center  \ |  | ||||||
|         --title "${portname}-${install_ver} (${scripts_install_ver})"  --image "${PW_ICON_FOR_YAD}" --separator=";" \ |  | ||||||
|         --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \ |  | ||||||
|         --field="3D API  : :CB" "${PW_DEFAULT_VULKAN_USE}" \ |  | ||||||
|         --field="  WINE  : :CB" "${PW_DEFAULT_WINE_USE}" \ |  | ||||||
|         --field="PREFIX  : :CBE" "${PW_ADD_PREFIXES_TO_GUI}" \ |  | ||||||
|         --field=":LBL" "" \ |  | ||||||
|         --button='VKBASALT'!!"${ENABLE_VKBASALT_INFO}":120 \ |  | ||||||
|         --button='EDIT  DB'!!"${loc_edit_db} ${PORTWINE_DB}":118 \ |  | ||||||
|         --button="${PW_SHORTCUT}" \ |  | ||||||
|         --button='DEBUG'!!"${loc_debug}":102 \ |  | ||||||
|         --button='LAUNCH'!!"${loc_launch}":106 ) |  | ||||||
|         export PW_YAD_SET="$?" |  | ||||||
|         if [[ "$PW_YAD_SET" == "1" || "$PW_YAD_SET" == "252" ]] ; then exit 0 ; fi |  | ||||||
|         export VULKAN_MOD=$(echo "${OUTPUT_START}" | grep \;\; | awk -F";" '{print $1}') |  | ||||||
|         export PW_WINE_VER=$(echo "${OUTPUT_START}" | grep \;\; | awk -F";" '{print $2}') |  | ||||||
|         export PW_PREFIX_NAME=$(echo "${OUTPUT_START}" | grep \;\; | awk -F";" '{print $3}' | sed -e s/[[:blank:]]/_/g) |  | ||||||
|         if [[ -z "${PW_PREFIX_NAME}" ]] || [[ -n "$(echo "${PW_PREFIX_NAME}" | grep -E '^_.*' )" ]] ; then |  | ||||||
|             export PW_PREFIX_NAME="DEFAULT" |  | ||||||
|         else |  | ||||||
|             export PW_PREFIX_NAME="${PW_PREFIX_NAME^^}" |  | ||||||
|         fi |  | ||||||
|     elif [ -n "${PORTWINE_DB_FILE}" ]; then |  | ||||||
|         portwine_launch |  | ||||||
|     fi |  | ||||||
| else |  | ||||||
|     button_click () { |  | ||||||
|         [[ -n "$1" ]] && echo "$1" > "${PORT_WINE_TMP_PATH}/tmp_yad_form" |  | ||||||
|         if [[ -n $(pidof -s yad) ]] || [[ -n $(pidof -s yad_new) ]] ; then |  | ||||||
|             kill -s SIGUSR1 $(pgrep -a yad | grep "\-\-key=${KEY} \-\-notebook" | awk '{print $1}') > /dev/null 2>&1 |  | ||||||
|         fi |  | ||||||
|     } |  | ||||||
|     export -f button_click |  | ||||||
|  |  | ||||||
|     gui_clear_pfx () { |  | ||||||
|         if gui_question "${port_clear_pfx}" ; then |  | ||||||
|             pw_clear_pfx |  | ||||||
|             /usr/bin/env bash -c ${pw_full_command_line[*]} & |  | ||||||
|             exit 0 |  | ||||||
|         fi |  | ||||||
|     } |  | ||||||
|     export -f gui_clear_pfx |  | ||||||
|  |  | ||||||
|     gui_rm_portproton () { |  | ||||||
|         if gui_question "${port_del2}" ; then |  | ||||||
|             rm -fr "${PORT_WINE_PATH}" |  | ||||||
|             rm -fr "${PORT_WINE_TMP_PATH}" |  | ||||||
|             rm -fr "${HOME}/PortWINE" |  | ||||||
|             rm -f $(grep -il PortProton "${HOME}/.local/share/applications"/*) |  | ||||||
|             update-desktop-database -q "${HOME}/.local/share/applications" |  | ||||||
|         fi |  | ||||||
|         exit 0 |  | ||||||
|     } |  | ||||||
|     export -f gui_rm_portproton |  | ||||||
|  |  | ||||||
|     gui_pw_update () { |  | ||||||
|         try_remove_file "${PORT_WINE_TMP_PATH}/scripts_update_notifier" |  | ||||||
|         /usr/bin/env bash -c ${pw_full_command_line[*]} & |  | ||||||
|         exit 0 |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     gui_wine_uninstaller () { |  | ||||||
|         start_portwine |  | ||||||
|         pw_run uninstaller |  | ||||||
|     } |  | ||||||
|     export -f gui_wine_uninstaller |  | ||||||
|  |  | ||||||
|     gui_open_user_conf () { |  | ||||||
|         xdg-open "${PORT_WINE_PATH}/data/user.conf" |  | ||||||
|     } |  | ||||||
|     export -f gui_open_user_conf |  | ||||||
|  |  | ||||||
|     gui_open_scripts_from_backup () { |  | ||||||
|         cd "${PORT_WINE_TMP_PATH}/scripts_backup/" |  | ||||||
|         PW_SCRIPT_FROM_BACKUP=$("${pw_yad_new}" --file --borders=5 --width=650 --height=500 --auto-close --center \ |  | ||||||
|         --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "SCRIPTS FROM BACKUP" --file-filter="backup_scripts|scripts_v*.tar.gz") |  | ||||||
|         YAD_STATUS="$?" |  | ||||||
|         if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; fi |  | ||||||
|         unpack_tar_gz "$PW_SCRIPT_FROM_BACKUP" "${PORT_WINE_PATH}/data/" |  | ||||||
|         echo "0" > "${PORT_WINE_TMP_PATH}/scripts_update_notifier" |  | ||||||
|         /usr/bin/env bash -c ${pw_full_command_line[*]} & |  | ||||||
|         exit 0 |  | ||||||
|     } |  | ||||||
|     export -f gui_open_scripts_from_backup |  | ||||||
|  |  | ||||||
|     export KEY=$RANDOM |  | ||||||
|     "${pw_yad_new}" --plug=${KEY} --tabnum=4 --columns=3 --align-buttons --form --separator=";" \ |  | ||||||
|     --field="   $loc_gui_rm_pp"!""!"":"FBTN" '@bash -c "button_click gui_rm_portproton"' \ |  | ||||||
|     --field="   $loc_gui_upd_pp"!""!"":"FBTN" '@bash -c "button_click gui_pw_update"' \ |  | ||||||
|     --field="   $loc_gui_changelog"!""!"":"FBTN" '@bash -c "button_click open_changelog"' \ |  | ||||||
|     --field="   $loc_gui_edit_usc"!""!"":"FBTN" '@bash -c "button_click gui_open_user_conf"' \ |  | ||||||
|     --field="   $loc_gui_scripts_fb"!""!"":"FBTN" '@bash -c "button_click gui_open_scripts_from_backup"' \ |  | ||||||
|     --field="   $loc_gui_credits"!""!"":"FBTN" '@bash -c "button_click gui_credits"' & |  | ||||||
|  |  | ||||||
|     "${pw_yad_new}" --plug=${KEY} --tabnum=3 --columns=3 --align-buttons --form --separator=";" \ |  | ||||||
|     --field="  3D API  : :CB" "VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL!GALLIUM_NINE (native DX9 on MESA)" \ |  | ||||||
|     --field="  PREFIX  : :CBE" "${PW_ADD_PREFIXES_TO_GUI}" \ |  | ||||||
|     --field="  WINE    : :CB" "${PW_DEFAULT_WINE_USE}" \ |  | ||||||
|     --field="                    DOWNLOAD OTHER WINE "!"${loc_download_other_wine}":"FBTN" '@bash -c "button_click gui_proton_downloader"' \ |  | ||||||
|     --field='   WINECFG'!""!"${loc_winecfg}":"FBTN" '@bash -c "button_click WINECFG"' \ |  | ||||||
|     --field='   WINEFILE'!""!"${loc_winefile}":"FBTN" '@bash -c "button_click WINEFILE"' \ |  | ||||||
|     --field='   WINECMD'!""!"${loc_winecmd}":"FBTN" '@bash -c "button_click WINECMD"' \ |  | ||||||
|     --field='   WINEREG'!""!"${loc_winereg}":"FBTN" '@bash -c "button_click WINEREG"' \ |  | ||||||
|     --field='   WINETRICKS'!""!"${loc_winetricks}":"FBTN" '@bash -c "button_click WINETRICKS"' \ |  | ||||||
|     --field="   WINE UNINSTALLER"!""!"":"FBTN" '@bash -c "button_click gui_wine_uninstaller"' \ |  | ||||||
|     --field="   CLEAR PREFIX"!""!"":"FBTN" '@bash -c "button_click gui_clear_pfx"' \ |  | ||||||
|     --field="   CREATE PFX BACKUP"!""!"":"FBTN" '@bash -c "button_click pw_create_prefix_backup"' &> "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" & |  | ||||||
|  |  | ||||||
|     "${pw_yad_new}" --plug=$KEY --tabnum=2 --form --columns=3 --align-buttons --keep-icon-size --scroll  \ |  | ||||||
|     --field="   Dolphin 5.0"!"$PW_GUI_ICON_PATH/dolphin.png"!"":"FBTN" '@bash -c "button_click PW_DOLPHIN"' \ |  | ||||||
|     --field="   MAME"!"$PW_GUI_ICON_PATH/mame.png"!"":"FBTN" '@bash -c "button_click PW_MAME"' \ |  | ||||||
|     --field="   ScummVM"!"$PW_GUI_ICON_PATH/scummvm.png"!"":"FBTN" '@bash -c "button_click PW_SCUMMVM"' \ |  | ||||||
|     --field="   RetroArch"!"$PW_GUI_ICON_PATH/retroarch.png"!"":"FBTN" '@bash -c "button_click PW_RETROARCH"' \ |  | ||||||
|     --field="   PPSSPP Windows"!"$PW_GUI_ICON_PATH/ppsspp.png"!"":"FBTN" '@bash -c "button_click PW_PPSSPP"' \ |  | ||||||
|     --field="   Citra"!"$PW_GUI_ICON_PATH/citra.png"!"":"FBTN" '@bash -c "button_click PW_CITRA"' \ |  | ||||||
|     --field="   Cemu"!"$PW_GUI_ICON_PATH/cemu.png"!"":"FBTN" '@bash -c "button_click PW_CEMU"' \ |  | ||||||
|     --field="   DuckStation"!"$PW_GUI_ICON_PATH/duckstation.png"!"":"FBTN" '@bash -c "button_click PW_DUCKSTATION"' \ |  | ||||||
|     --field="   ePSXe"!"$PW_GUI_ICON_PATH/epsxe.png"!"":"FBTN" '@bash -c "button_click PW_EPSXE"' \ |  | ||||||
|     --field="   Project64"!"$PW_GUI_ICON_PATH/project64.png"!"":"FBTN" '@bash -c "button_click PW_PROJECT64"' \ |  | ||||||
|     --field="   VBA-M"!"$PW_GUI_ICON_PATH/vba-m.png"!"":"FBTN" '@bash -c "button_click PW_VBA-M"' \ |  | ||||||
|     --field="   Yabause"!"$PW_GUI_ICON_PATH/yabause.png"!"":"FBTN" '@bash -c "button_click PW_YABAUSE"' & |  | ||||||
|  |  | ||||||
|     "${pw_yad_new}" --plug=$KEY --tabnum=1 --form --columns=3 --align-buttons --keep-icon-size --scroll \ |  | ||||||
|     --field="   Wargaming Game Center"!"$PW_GUI_ICON_PATH/wgc.png"!"":"FBTN" '@bash -c "button_click PW_WGC"' \ |  | ||||||
|     --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="   Origin Launcher"!"$PW_GUI_ICON_PATH/origin.png"!"":"FBTN" '@bash -c "button_click PW_ORIGIN"' \ |  | ||||||
|     --field="   Rockstar Games Launcher"!"$PW_GUI_ICON_PATH/Rockstar.png"!"":"FBTN" '@bash -c "button_click PW_ROCKSTAR"' \ |  | ||||||
|     --field="   My.Games Launcher"!"$PW_GUI_ICON_PATH/mygames.png"!"":"FBTN" '@bash -c "button_click PW_MYGAMES"' \ |  | ||||||
|     --field="   Ankama Launcher"!"$PW_GUI_ICON_PATH/ankama.png"!"":"FBTN" '@bash -c "button_click PW_ANKAMA"' \ |  | ||||||
|     --field="   OSU"!"$PW_GUI_ICON_PATH/osu.png"!"":"FBTN" '@bash -c "button_click PW_OSU"' \ |  | ||||||
|     --field="   League of Legends"!"$PW_GUI_ICON_PATH/lol.png"!"":"FBTN" '@bash -c "button_click PW_LOL"' \ |  | ||||||
|     --field="   Gameforge Client"!"$PW_GUI_ICON_PATH/gameforge.png"!"":"FBTN" '@bash -c "button_click  PW_GAMEFORGE"' \ |  | ||||||
|     --field="   World of Sea Battle (BETA)"!"$PW_GUI_ICON_PATH/wosb.png"!"":"FBTN" '@bash -c "button_click PW_WOSB"' \ |  | ||||||
|     --field="   ITCH.IO"!"$PW_GUI_ICON_PATH/itch.png"!"":"FBTN" '@bash -c "button_click PW_ITCH"' &  |  | ||||||
|  |  | ||||||
|     # --field="   Steam Client Launcher"!"$PW_GUI_ICON_PATH/steam.png"!"":"FBTN" '@bash -c "button_click PW_STEAM"' |  | ||||||
|     # --field="   Bethesda.net Launcher"!"$PW_GUI_ICON_PATH/bethesda.png"!"":"FBTN" '@bash -c "button_click PW_BETHESDA"' |  | ||||||
|  |  | ||||||
|     "${pw_yad_new}" --key=$KEY --notebook --borders=5 --width=900 --height=235 --no-buttons --auto-close --center \ |  | ||||||
|     --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "${portname}-${install_ver} (${scripts_install_ver})" \ |  | ||||||
|     --tab-pos=bottom --tab=" $loc_mg_autoinstall"!""!"" --tab=" $loc_mg_emulators"!""!"" --tab=" $loc_mg_wine_settings"!""!"" --tab=" $loc_mg_portproton_settings"!""!"" |  | ||||||
|     YAD_STATUS="$?" |  | ||||||
|     if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; fi |  | ||||||
|  |  | ||||||
|     if [[ -f "${PORT_WINE_TMP_PATH}/tmp_yad_form" ]]; then |  | ||||||
|         export PW_YAD_SET=$(cat "${PORT_WINE_TMP_PATH}/tmp_yad_form" | head -n 1 | awk '{print $1}') |  | ||||||
|         try_remove_file "${PORT_WINE_TMP_PATH}/tmp_yad_form" |  | ||||||
|     fi |  | ||||||
|     if [[ -f "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" ]] ; then |  | ||||||
|         export VULKAN_MOD=$(cat "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" | grep \;\;  | awk -F";" '{print $1}') |  | ||||||
|         export PW_PREFIX_NAME=$(cat "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" | grep \;\;  | awk -F";" '{print $2}' | sed -e "s/[[:blank:]]/_/g" ) |  | ||||||
|         export PW_WINE_VER=$(cat "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" | grep \;\; | awk -F";" '{print $3}') |  | ||||||
|         if [[ -z "${PW_PREFIX_NAME}" ]] || [[ -n "$(echo "${PW_PREFIX_NAME}" | grep -E '^_.*' )" ]] ; then |  | ||||||
|             export PW_PREFIX_NAME="DEFAULT" |  | ||||||
|         else |  | ||||||
|             export PW_PREFIX_NAME="${PW_PREFIX_NAME^^}" |  | ||||||
|         fi |  | ||||||
|         try_remove_file "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" |  | ||||||
|     fi |  | ||||||
|     export PW_DISABLED_CREATE_DB=1 |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| if [[ -n "${VULKAN_MOD}" && "${VULKAN_MOD}" = "OPENGL" ]]  |  | ||||||
| then export PW_VULKAN_USE="0" |  | ||||||
| elif [[ -n "${VULKAN_MOD}" && "${VULKAN_MOD}" = "VULKAN (DXVK and VKD3D)" ]]  |  | ||||||
| then export PW_VULKAN_USE="1" |  | ||||||
| elif [[ -n "${VULKAN_MOD}" && "${VULKAN_MOD}" = "VULKAN (WINE DXGI)" ]]  |  | ||||||
| then export PW_VULKAN_USE="2" |  | ||||||
| elif [[ -n "${VULKAN_MOD}" && "${VULKAN_MOD}" = "GALLIUM_NINE (native DX9 on MESA)" ]]  |  | ||||||
| then export PW_VULKAN_USE="3" |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| init_wine_ver |  | ||||||
|  |  | ||||||
| if [[ -z "${PW_DISABLED_CREATE_DB}" ]] ; then |  | ||||||
|     if [[ -n "${PORTWINE_DB}" ]] && [[ -z "${PORTWINE_DB_FILE}" ]] ; then |  | ||||||
|         PORTWINE_DB_FILE=$(grep -il "\#${PORTWINE_DB}.exe" "${PORT_SCRIPTS_PATH}/portwine_db"/*) |  | ||||||
|         if [[ -z "${PORTWINE_DB_FILE}" ]] ; then |  | ||||||
|             echo "#!/usr/bin/env bash"  > "${portwine_exe}".ppdb |  | ||||||
|             echo "#Author: "${USER}"" >> "${portwine_exe}".ppdb |  | ||||||
|             echo "#"${PORTWINE_DB}.exe"" >> "${portwine_exe}".ppdb |  | ||||||
|             echo "#Rating=1-5" >> "${portwine_exe}".ppdb |  | ||||||
|             cat "${PORT_SCRIPTS_PATH}/portwine_db/default" | grep "##" >> "${portwine_exe}".ppdb |  | ||||||
|             export PORTWINE_DB_FILE="${portwine_exe}".ppdb |  | ||||||
|         fi |  | ||||||
|     fi |  | ||||||
|     edit_db_from_gui PW_VULKAN_USE PW_WINE_USE PW_PREFIX_NAME  |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| case "$PW_YAD_SET" in |  | ||||||
|     1|252) exit 0 ;; |  | ||||||
|     98) portwine_delete_shortcut ;; |  | ||||||
|     100) portwine_create_shortcut ;; |  | ||||||
|     DEBUG|102) portwine_start_debug ;; |  | ||||||
|     106) portwine_launch ;; |  | ||||||
|     WINECFG|108) pw_winecfg ;; |  | ||||||
|     WINEFILE|110) pw_winefile ;; |  | ||||||
|     WINECMD|112) pw_winecmd ;; |  | ||||||
|     WINEREG|114) pw_winereg ;; |  | ||||||
|     WINETRICKS|116) pw_prefix_manager ;; |  | ||||||
|     118) pw_edit_db ;; |  | ||||||
|     gui_clear_pfx) gui_clear_pfx ;; |  | ||||||
|     gui_open_user_conf) gui_open_user_conf ;; |  | ||||||
|     gui_wine_uninstaller) gui_wine_uninstaller ;; |  | ||||||
|     gui_rm_portproton) gui_rm_portproton ;; |  | ||||||
|     gui_pw_update) gui_pw_update ;; |  | ||||||
|     gui_proton_downloader) gui_proton_downloader ;; |  | ||||||
|     gui_open_scripts_from_backup) gui_open_scripts_from_backup ;; |  | ||||||
|     open_changelog) open_changelog ;; |  | ||||||
|     120) gui_vkBasalt ;; |  | ||||||
|     pw_create_prefix_backup) pw_create_prefix_backup ;; |  | ||||||
|     gui_credits) gui_credits ;; |  | ||||||
|     PW_*) pw_autoinstall_from_db ;; |  | ||||||
| esac |  | ||||||
|  |  | ||||||
| stop_portwine |  | ||||||
| @@ -1,6 +1,6 @@ | |||||||
| #!/usr/bin/env bash | #!/usr/bin/env bash | ||||||
| #Author: Castro-Fidel (PortWINE-Linux.ru) | #Author: Castro-Fidel (PortWINE-Linux.ru) | ||||||
| #SCRIPTS_NEXT_VERSION=2123 | #SCRIPTS_NEXT_VERSION=2124 | ||||||
| ######################################################################## | ######################################################################## | ||||||
| export PW_MANGOHUD=0 | export PW_MANGOHUD=0 | ||||||
| export MANGOHUD_CONFIG=cpu_stats,cpu_temp,cpu_mhz,cpu_color=2e97cb,cpu_text=CPU,gpu_stats,gpu_temp,gpu_core_clock,gpu_mem_clock,vulkan_driver,gpu_name,gpu_color=2e9762,gpu_text=GPU,vram,vram_color=ad64c1,ram,ram_color=c26693,io_color=a491d3,frame_timing=1,frametime_color=00ff00,time,arch,wine,wine_color=eb5b5b,engine_color=eb5b5b,background_alpha=0.2,font_size=24,background_color=020202,text_color=ffffff,toggle_hud=Shift_R+F12,resolution,vkbasalt | export MANGOHUD_CONFIG=cpu_stats,cpu_temp,cpu_mhz,cpu_color=2e97cb,cpu_text=CPU,gpu_stats,gpu_temp,gpu_core_clock,gpu_mem_clock,vulkan_driver,gpu_name,gpu_color=2e9762,gpu_text=GPU,vram,vram_color=ad64c1,ram,ram_color=c26693,io_color=a491d3,frame_timing=1,frametime_color=00ff00,time,arch,wine,wine_color=eb5b5b,engine_color=eb5b5b,background_alpha=0.2,font_size=24,background_color=020202,text_color=ffffff,toggle_hud=Shift_R+F12,resolution,vkbasalt | ||||||
| @@ -35,10 +35,10 @@ export PW_FORCE_LARGE_ADDRESS_AWARE="1" | |||||||
| export PW_WINE_USE="PROTON_GE" | export PW_WINE_USE="PROTON_GE" | ||||||
| export PW_PLUGINS_VER="_v5" | export PW_PLUGINS_VER="_v5" | ||||||
| ###WINE_PROTON_STEAM### | ###WINE_PROTON_STEAM### | ||||||
| export PW_STEAM_VER="7.0-3" | export PW_STEAM_VER="7.0-4" | ||||||
| export PW_PROTON_STEAM_VER="PROTON_STEAM_${PW_STEAM_VER}" | export PW_PROTON_STEAM_VER="PROTON_STEAM_${PW_STEAM_VER}" | ||||||
| ###WINE_PROTON_GE### | ###WINE_PROTON_GE### | ||||||
| export PW_GE_VER="7-26" | export PW_GE_VER="7-29" | ||||||
| export PW_PROTON_GE_VER="PROTON_GE_${PW_GE_VER}" | export PW_PROTON_GE_VER="PROTON_GE_${PW_GE_VER}" | ||||||
| export PW_WINE_FULLSCREEN_FSR="0" | export PW_WINE_FULLSCREEN_FSR="0" | ||||||
| ###WINE_PROTON_PW_FOR_GALLIUM_NINE### | ###WINE_PROTON_PW_FOR_GALLIUM_NINE### | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user