Scripts version 2123

This commit is contained in:
Castro_Fidel 2022-07-30 15:20:35 +03:00
parent 8b442cf9ef
commit a2b5385071
5 changed files with 633 additions and 287 deletions

@ -2,6 +2,9 @@ You can help us in the development of the project on the website: boosty.to/port
----------------------------------------- -----------------------------------------
Changelog: Changelog:
###Scripts version 2123###
* HOTFIX - GALLIUM NINE mode
###Scripts version 2122### ###Scripts version 2122###
* added the pp-games-lib plugin to the new PortProton/data/plugins/ details directory on github (plugin author: comrade zorn) https://github.com/zorn-v/PortProton-games-library * added the pp-games-lib plugin to the new PortProton/data/plugins/ details directory on github (plugin author: comrade zorn) https://github.com/zorn-v/PortProton-games-library
* updated scripts for installing and launching League of Legends (updated WINE_LOL_GE_7.0-4 - from now on there is no need to enter the root password to launch League of Legends) * updated scripts for installing and launching League of Legends (updated WINE_LOL_GE_7.0-4 - from now on there is no need to enter the root password to launch League of Legends)

@ -2,6 +2,11 @@
----------------------------------------- -----------------------------------------
История изменений: История изменений:
###Scripts version 2123###
* HOTFIX - скачивание PROTON GE при использовании режжима GALLIUM NINE
* добавлена русификация CREDITS (Авторы и спасибы) - спасибо chal55rus
* добавлена русификация плагина pp-games-lib - спасибо zorn
###Scripts version 2122### ###Scripts version 2122###
* добавлен плагин pp-games-lib в новый каталог PortProton/data/plugins/ подробности на github (автор плагина: товарищ zorn) https://github.com/zorn-v/PortProton-games-library * добавлен плагин pp-games-lib в новый каталог PortProton/data/plugins/ подробности на github (автор плагина: товарищ zorn) https://github.com/zorn-v/PortProton-games-library
* обновлены срипты установки и запуска League of Legends (обновлен WINE_LOL_GE_7.0-4 - отныне нет необходимости вводить пароль рут для запуска League of Legends) * обновлены срипты установки и запуска League of Legends (обновлен WINE_LOL_GE_7.0-4 - отныне нет необходимости вводить пароль рут для запуска League of Legends)

@ -18,7 +18,7 @@ except ModuleNotFoundError:
from PyQt5.QtWidgets import * from PyQt5.QtWidgets import *
settings = QSettings('PPGL', 'PortProtonGamesLib') settings = QSettings('PPGL', 'PortProtonGamesLib')
g = SimpleNamespace() g = SimpleNamespace(locale = '')
class MainWindow(QMainWindow): class MainWindow(QMainWindow):
def __init__(self): def __init__(self):
@ -46,6 +46,10 @@ class MainWindow(QMainWindow):
g.shortcuts_dir = g.base_dir + '/shortcuts' g.shortcuts_dir = g.base_dir + '/shortcuts'
g.games_dir = g.base_dir + '/games' g.games_dir = g.base_dir + '/games'
loc_path = Path(g.base_dir + '/data/tmp/PortProton_loc')
if loc_path.exists():
g.locale = loc_path.read_text().strip()
Path(g.shortcuts_dir).mkdir(parents=True, exist_ok=True) Path(g.shortcuts_dir).mkdir(parents=True, exist_ok=True)
Path(g.games_dir).mkdir(parents=True, exist_ok=True) Path(g.games_dir).mkdir(parents=True, exist_ok=True)
@ -67,16 +71,16 @@ class MainWindow(QMainWindow):
self.toolbar.setIconSize(QSize(32, 32)) self.toolbar.setIconSize(QSize(32, 32))
self.toolbar.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextBesideIcon) self.toolbar.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextBesideIcon)
self.toolbar.setMovable(False) self.toolbar.setMovable(False)
action = QAction(self.style().standardIcon(QStyle.StandardPixmap.SP_FileDialogNewFolder), 'Install new game', self) action = QAction(self.style().standardIcon(QStyle.StandardPixmap.SP_FileDialogNewFolder), _tr('Install new game'), self)
action.triggered.connect(self.install_game) action.triggered.connect(self.install_game)
self.toolbar.addAction(action) self.toolbar.addAction(action)
action = QAction(self.style().standardIcon(QStyle.StandardPixmap.SP_FileLinkIcon), 'Add game entry', self) action = QAction(self.style().standardIcon(QStyle.StandardPixmap.SP_FileLinkIcon), _tr('Add game entry'), self)
action.triggered.connect(self.add_game) action.triggered.connect(self.add_game)
self.toolbar.addAction(action) self.toolbar.addAction(action)
action = QAction(self.style().standardIcon(QStyle.StandardPixmap.SP_BrowserReload), 'Reload list', self) action = QAction(self.style().standardIcon(QStyle.StandardPixmap.SP_BrowserReload), _tr('Reload list'), self)
action.triggered.connect(self.reload_list) action.triggered.connect(self.reload_list)
self.toolbar.addAction(action) self.toolbar.addAction(action)
action = QAction(self.style().standardIcon(QStyle.StandardPixmap.SP_TrashIcon), 'Drop install prefix', self) action = QAction(self.style().standardIcon(QStyle.StandardPixmap.SP_TrashIcon), _tr('Drop install prefix'), self)
action.triggered.connect(self.drop_prefix) action.triggered.connect(self.drop_prefix)
self.toolbar.addAction(action) self.toolbar.addAction(action)
spacer = QWidget(self) spacer = QWidget(self)
@ -96,7 +100,7 @@ class MainWindow(QMainWindow):
self.game_list.reload() self.game_list.reload()
def drop_prefix(self): def drop_prefix(self):
res = QMessageBox.question(self, 'Are you shure ?', 'Do you really want to remove<br/><b>' + g.install_pfx + '</b> ?') res = QMessageBox.question(self, _tr('Are you shure ?'), _tr('Do you really want to remove<br/><b>{0}</b> ?', g.install_pfx))
if res == QMessageBox.StandardButton.Yes: if res == QMessageBox.StandardButton.Yes:
shutil.rmtree(g.install_pfx, True) shutil.rmtree(g.install_pfx, True)
@ -147,13 +151,13 @@ class InstallGame(QDialog):
if self._installing: if self._installing:
setup_btn = QPushButton(self) setup_btn = QPushButton(self)
setup_btn.setIcon(self.style().standardIcon(QStyle.StandardPixmap.SP_FileDialogStart)) setup_btn.setIcon(self.style().standardIcon(QStyle.StandardPixmap.SP_FileDialogStart))
setup_btn.setText('Run another setup') setup_btn.setText(_tr('Run another setup'))
setup_btn.clicked.connect(self._runSetup) setup_btn.clicked.connect(self._runSetup)
layout.addWidget(setup_btn) layout.addWidget(setup_btn)
self.setLayout(layout) self.setLayout(layout)
self.resize(400, 300) self.resize(400, 300)
self.setModal(True) self.setModal(True)
self.setWindowTitle('Select game exe file') self.setWindowTitle(_tr('Select game exe file'))
geometry = settings.value('geometry_install') geometry = settings.value('geometry_install')
if geometry: if geometry:
self.restoreGeometry(geometry) self.restoreGeometry(geometry)
@ -189,7 +193,7 @@ class InstallGame(QDialog):
def _runSetup(self): def _runSetup(self):
downloads_dir = QStandardPaths.writableLocation(QStandardPaths.StandardLocation.DownloadLocation) downloads_dir = QStandardPaths.writableLocation(QStandardPaths.StandardLocation.DownloadLocation)
exe_file, _ = QFileDialog.getOpenFileName(self, caption='Choose setup file', filter='Exe files (*.exe)', directory=downloads_dir) exe_file, _ = QFileDialog.getOpenFileName(self, caption=_tr('Choose setup file'), filter='Exe files (*.exe)', directory=downloads_dir)
if not exe_file: if not exe_file:
return return
ppdb = shlex.quote(exe_file + '.ppdb') ppdb = shlex.quote(exe_file + '.ppdb')
@ -212,8 +216,8 @@ class InstallGame(QDialog):
def _handleDoubleClick(self, item): def _handleDoubleClick(self, item):
game_dir = item.text().split('/')[0] game_dir = item.text().split('/')[0]
dlg = QInputDialog(self) dlg = QInputDialog(self)
dlg.setWindowTitle('Please enter game entry name') dlg.setWindowTitle(_tr('Please enter game entry name'))
dlg.setLabelText('New game entry') dlg.setLabelText(_tr('New game entry'))
dlg.setTextValue(game_dir) dlg.setTextValue(game_dir)
dlg.resize(300, 0) dlg.resize(300, 0)
ok = dlg.exec() ok = dlg.exec()
@ -223,7 +227,7 @@ class InstallGame(QDialog):
file_name = re.sub(r'[<>:/\\|?*]', '_', shortcut_name) file_name = re.sub(r'[<>:/\\|?*]', '_', shortcut_name)
shortcut = f"{g.shortcuts_dir}/{file_name}.desktop" shortcut = f"{g.shortcuts_dir}/{file_name}.desktop"
if Path(shortcut).exists(): if Path(shortcut).exists():
res = QMessageBox.question(self, 'Shortcut already exuists', 'Shortcut <b>' + file_name + '</b> already exists. Overwrite ?') res = QMessageBox.question(self, _tr('Shortcut already exists'), _tr('Shortcut <b>{0}</b> already exists. Overwrite ?', file_name))
if res != QMessageBox.StandardButton.Yes: if res != QMessageBox.StandardButton.Yes:
return return
src_dir = self.install_dir + '/' + game_dir src_dir = self.install_dir + '/' + game_dir
@ -232,7 +236,7 @@ class InstallGame(QDialog):
ppdb = shlex.quote(g.games_dir + '/' + item.text()) + '.ppdb' ppdb = shlex.quote(g.games_dir + '/' + item.text()) + '.ppdb'
self.setDisabled(True) self.setDisabled(True)
if self._installing and Path(dst_dir).exists(): if self._installing and Path(dst_dir).exists():
res = QMessageBox.question(self, 'Dir already exuists', 'Dir <b>' + game_dir + '</b> already exists. Overwrite ?') res = QMessageBox.question(self, _tr('Dir already exists'), _tr('Dir <b>{0}</b> already exists. Overwrite ?', game_dir))
if res != QMessageBox.StandardButton.Yes: if res != QMessageBox.StandardButton.Yes:
return return
if self._installing: if self._installing:
@ -284,8 +288,18 @@ 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'))
for shortcut in shortcuts: for shortcut in shortcuts:
if validate(shortcut):
item = GameItem(self, shortcut) item = GameItem(self, shortcut)
self.addItem(item) self.addItem(item)
self.sortItems() self.sortItems()
@ -306,17 +320,17 @@ class GameList(QListWidget):
return return
selected = selected[0] selected = selected[0]
menu = QMenu(self) menu = QMenu(self)
desktop = menu.addAction(self.style().standardIcon(QStyle.StandardPixmap.SP_DesktopIcon), 'Add to desktop') desktop = menu.addAction(self.style().standardIcon(QStyle.StandardPixmap.SP_DesktopIcon), _tr('Add to desktop'))
restore_gui = menu.addAction(self.style().standardIcon(QStyle.StandardPixmap.SP_DialogResetButton), 'Restore PP GUI') restore_gui = menu.addAction(self.style().standardIcon(QStyle.StandardPixmap.SP_DialogResetButton), _tr('Restore PortProton GUI'))
remove = menu.addAction(self.style().standardIcon(QStyle.StandardPixmap.SP_TrashIcon), 'Remove game entry') remove = menu.addAction(self.style().standardIcon(QStyle.StandardPixmap.SP_TrashIcon), _tr('Remove game entry'))
uninstall = menu.addAction(self.style().standardIcon(QStyle.StandardPixmap.SP_DialogCloseButton), 'Uninstall game') uninstall = menu.addAction(self.style().standardIcon(QStyle.StandardPixmap.SP_DialogCloseButton), _tr('Uninstall game'))
if not selected.game_dir.startswith(g.games_dir): if not selected.game_dir.startswith(g.games_dir):
uninstall.setVisible(False) uninstall.setVisible(False)
action = menu.exec(self.mapToGlobal(event.pos())) action = menu.exec(self.mapToGlobal(event.pos()))
desktop_shortcut = QStandardPaths.writableLocation(QStandardPaths.StandardLocation.DesktopLocation) + '/' + Path(selected.desktop_file).name desktop_shortcut = QStandardPaths.writableLocation(QStandardPaths.StandardLocation.DesktopLocation) + '/' + Path(selected.desktop_file).name
if action == desktop: if action == desktop:
if Path(desktop_shortcut).exists(): if Path(desktop_shortcut).exists():
res = QMessageBox.question(self, 'Shortcut already exuists', 'Desktop shortcut <b>' + desktop_shortcut + '</b> already exists. Overwrite ?') res = QMessageBox.question(self, _tr('Shortcut already exists'), _tr('Shortcut <b>{0}</b> already exists. Overwrite ?', desktop_shortcut))
if res != QMessageBox.StandardButton.Yes: if res != QMessageBox.StandardButton.Yes:
return return
shutil.copy(selected.desktop_file, desktop_shortcut) shutil.copy(selected.desktop_file, desktop_shortcut)
@ -337,8 +351,8 @@ class GameList(QListWidget):
self.reload() self.reload()
if action == uninstall: if action == uninstall:
res = QMessageBox.question(self, res = QMessageBox.question(self,
'Are you shure ?', _tr('Are you shure ?'),
'Do you really want to uninstall <b>' + selected.get('Name') + '</b><br/>located in "<b>'+selected.game_dir+'</b>" ?' _tr('Do you really want to uninstall <b>{0}</b><br/>located in "<b>{1}</b>" ?', selected.get('Name'), selected.game_dir)
) )
if res != QMessageBox.StandardButton.Yes: if res != QMessageBox.StandardButton.Yes:
return return
@ -403,6 +417,36 @@ class GameItem(QListWidgetItem):
import signal import signal
signal.signal(signal.SIGINT, signal.SIG_DFL) signal.signal(signal.SIGINT, signal.SIG_DFL)
lang = {
'RUS': {
'Install new game': 'Установить игру',
'Add game entry': 'Добавить в список',
'Reload list': 'Обновить список',
'Drop install prefix': 'Удалить установочный префикс',
'Are you shure ?': 'Вы уверены ?',
'Do you really want to remove<br/><b>{0}</b> ?': 'Вы действительно хотите удалить<br/><b>{0}</b> ?',
'Run another setup': 'Запустить установку',
'Select game exe file': 'Выберите exe файл игры',
'Choose setup file': 'Выберите установочный файл',
'Please enter game entry name': 'Введите название игры',
'New game entry': 'Название игры',
'Shortcut already exists': 'Ярлык уже существует',
'Shortcut <b>{0}</b> already exists. Overwrite ?': 'Ярлык <b>{0}</b> уже существует. Перезаписать ?',
'Dir already exists': 'Директория уже существует',
'Dir <b>{0}</b> already exists. Overwrite ?': 'Директория <b>{0}</b> уже существует. Перезаписать ?',
'Add to desktop': 'Добавить на рабочий стол',
'Restore PortProton GUI': 'Восстановить PortProton GUI',
'Remove game entry': 'Убрать из списка',
'Uninstall game': 'Удалить игру',
'Do you really want to uninstall <b>{0}</b><br/>located in "<b>{1}</b>" ?': 'Вы действительно хотите удалить <b>{0}</b><br/>расположеную в "<b>{1}</b>" ?'
}
}
def _tr(text, *fmt):
res = lang.get(g.locale, {}).get(text, text)
if fmt:
res = res.format(*fmt)
return res
app = QApplication([]) app = QApplication([])
win = MainWindow() win = MainWindow()
win.show() win.show()

@ -1,5 +1,298 @@
#!/usr/bin/env bash #!/usr/bin/env bash
if [ "${update_loc}" = "RUS" ]
then
KEY_CREDITS=$RANDOM
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=1 --show-uri \
--image-path="$PW_GUI_ICON_PATH" --image="port_proton" \
--text-align=center --scroll --text="PortProton v. ${install_ver}
scripts v. ${scripts_install_ver}
https://portwine-linux.ru
Авторские права © 2022 Castro-Fidel (PortWINE-Linux.ru)
Эта программа поставляется без каких-либо гарантий.
Подробнее см. в Лицензия." &
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=2 \
--text-align=center --scroll --text="Автор: Casro-Fidel (Михаил Тергоев)
Помощники разработчика и тестировщики:
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)
Авторские права (©) 2022 Castro-Fidel (PortWINE-Linux.ru)
Настоящим предоставляется бесплатное разрешение любому лицу, получившему копию данного
программного обеспечения и связанных с ним файлов документации (Программное
обеспечение), для в Программном обеспечении без ограничений, включая, помимо прочего,
права использовать, копировать, изменять, объединять, публиковать, распространять,
сублицензировать и/или продавать копий Программного обеспечения, а также разрешить
лицам, которым Программное обеспечение предоставляется для этого при соблюдении
следующих условий:
Вышеприведенное уведомление об авторских правах и это уведомление о разрешении должны
быть включены во все копии или существенные части Программного обеспечения.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ (КАК ЕСТЬ), БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ
ПОДРАЗУМЕВАЕТСЯ, ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ,
ПРИГОДНОСТЬ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ И НЕНАРУШЕНИЕ ПРАВ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ
АВТОРЫ ИЛИ ВЛАДЕЛЕЦ АВТОРСКИХ ПРАВ НЕСУТ ОТВЕТСТВЕННОСТЬ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УЩЕРБ ИЛИ
ДРУГОЕ. ОТВЕТСТВЕННОСТЬ, БУДУЩАЯ ПО ДОГОВОРУ, ДЕЛИКТУ ИЛИ ИНЫМ ОБРАЗОМ, ВОЗНИКАЮЩАЯ ИЗ
ВНЕ ИЛИ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ СДЕЛКАМИ В
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ." &
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=4 \
--text-info --fontname="Serif bold italic 12" --show-uri --scroll \
<<< ' Проект поддержали:
https://boosty.to/portwine-linux.ru
1 1
A B
AdamArclight666
Akai
Aleks
Alexsei Cherniavskiy
Alex Sh
Allegra_g
AlxChkln
amikha1lov
Andrei K
anisan_sg
Another games
Apofis Smab
apolon
Aule Mahal
Azartiny Mor
BELIJJAaL
benya
CanBoo
chal55rus
Coin Hunt
Cruze
Dadenard
Dallasss
Daniil Go
Dencher12
Denis
Dezert1r
Dima Manshin
DIO
d.kostroma
Dmitriy Tokarev
Drakorgaur
dunkanMcLoud
dupster mailbox
Eliot
El Mago
Ethan Winters
Evgen Buiko
EvilDevolver
fight fox
funti2f
fusiok
GaiverX
Gekko
Geomant17
gg_harper
Happy Husky
haravara
Homyakin
Ivan Vlasov
ivboss
ksandr4370
LeGi0neR
Lexa XLS
Linux Vumtut
Lonely Lonely
Maksami Cordyceps
Maktub
Melord
MICROFARAT
MLogaut
Monti Roquefort
MrBatonio
Nesterik
Nikola P.
Nuclearsun
Nurik
Oleg55Rus
onix
Optimus
Ottakvot
paulscathedral
penguin4ek
Pependos
PLAFON
PlagueEvgeny
Rojok56
Ruslan Vlasov
Rustam
Saireg
sanelasan
sashman
Seeropoonya
sendependa_dio
shecspir
Soma
sship
StGdG
Subscript
Sudo Connect
sugoyako
Taras Zagibalov
The End
tima
Tykva
ua3dko
V1ktr
VanBugel
VAtiB
Vikthor Prieto
vlad petrov
Vosarat
VUMtut
Windchester
wrager
Xpamych
Yurec
Yuri Emelyanov
Zillah Giovanni
Zloy Ivan
Zorit
zorn
Александр
Александр Абдулов
Александр Кладов
Александр Лобанов
Алексей Ultralin
Алексей Войтенко
Алексей Галаш
Алексей Зубрийчук
Алексей Ивушкин
Алексей Кравчук
Алексей Чугунов
Андрей Гусаков
Андрей Карпенцов
Антоний Дамикан
Антон Рудковский
Антон Фамилианов
Артём К.
Валерий Толмачёв
Виктор Шварц
Виктор Щетинин
Виндэта(рог)
Виталий Нуров
Влад Блинов
Владимир Бильдюкевич
Владимир Дарвин
Влад Кладиев
Вячеслав Шитюков
Вячеслав Шустров
Георгий Гурский
Данил Павлов
Дед Мазай
Денис Мальцев
Денис Матій
Денис Олефиренко
Дмитрий Круглов
Дмитрий Мазанка
Дмитрий Сидоров
Евгений Бебин
Евгений Долгополов
Евгений Хирвонен
Евгений Храмов
Егор Кречун
Женя Рябушкин
Иван Белекеев
Коляныч Королёв
Константин __
Константин Абадонна
Леонид
Максим Хмара-Миронов
Маленькая сосна
Марат
Марат Рахимов
Неизвестый Дмитрий
Никита Булавин
Николай Гинтов
Павел Иванов
Павел Пашенцев
Равич Ревес
Рамиль
Рома Б.
Роман Игнатьев
Роман Паженский
Саша
Семён Клишин
Семён Ярополов
Сергей Казёнкин
Сергей Круглов
Серёга Сапрыкин
Стас Толкачёв
Тима Суеубаев
Тимофей Ковалев
Тимур Сафонов
Удалить Аккаунт
Хоттабыч
Список будет дополняться...' &
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=5 --text="Хотите присоединится и помочь в развитии проекта:" \
--title=JOIN --window-icon=group --image=system-config-users --uri-color=red --show-uri \
--text-info --scroll <<< \
"Website: http://portwine-linux.ru
Discord: http://discord.gg/yJSEFjF
VK: https://vk.com/portwinelinux
-------------------------------------------
Стать платным подписчиком:
boosty: https://boosty.to/portwine-linux.ru
patreon: https://www.patreon.com/portproton
Кошельки WebMoney: WMZ-Z135951244401 WME-E325631629973
Yandex кошельк: 410012267513818
-------------------------------------------
Задонатить на стрим:
https://www.donationalerts.com/r/portwine_linux" &
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=6 --show-uri --title="THIRD PARTY LIBRARIES" \
--fontname="Serif bold italic 10" --text-info <<< " Сторонние библиотеки, которые используются в PortProton
PortProton собран на основе бесплатных библиотек программного обеспечения:
WINE-PROTON: https://github.com/ValveSoftware/Proton
WINE-PROTON-GE: https://github.com/GloriousEggroll/proton-ge-custom/
Kron4ek/Wine: https://github.com/Kron4ek/Wine-Builds
YAD: https://github.com/v1cont/yad
ZENITY: https://github.com/GNOME/zenity" &
"${pw_yad_new}" --title "О НАС" --key="${KEY_CREDITS}" --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \
--center --notebook --no-buttons --tab-pos=bottom \
--tab="О PORTPROTON" --tab="АВТОРЫ" --tab="ЛИЦЕНЗИЯ" --tab="СПОНСОРЫ" --tab="ПРИСОЕДИНИТЬСЯ" \
--tab="БИБЛИОТЕКИ"
/usr/bin/env bash -c ${pw_full_command_line[*]}
else
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 \
@ -284,3 +577,4 @@ ZENITY: https://github.com/GNOME/zenity" &
--tab="THIRD PARTY LIBRARIES" --tab="THIRD PARTY LIBRARIES"
/usr/bin/env bash -c ${pw_full_command_line[*]} /usr/bin/env bash -c ${pw_full_command_line[*]}
fi

@ -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=2122 #SCRIPTS_NEXT_VERSION=2123
######################################################################## ########################################################################
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
@ -43,7 +43,7 @@ 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###
# export PW_PW_VER="7-26" # export PW_PW_VER="7-26"
export PW_PROTON_PW_VER="${PW_GE_VER}" export PW_PROTON_PW_VER="${PW_PROTON_GE_VER}"
###WINE_KRON4EK### ###WINE_KRON4EK###
export PW_WINE_KRON4EK_VER="WINE-7.13-STAGING-TKG-AMD64" export PW_WINE_KRON4EK_VER="WINE-7.13-STAGING-TKG-AMD64"
################################################################# #################################################################