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,286 +1,580 @@
#!/usr/bin/env bash #!/usr/bin/env bash
KEY_CREDITS=$RANDOM if [ "${update_loc}" = "RUS" ]
then
KEY_CREDITS=$RANDOM
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=1 --show-uri \ "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=1 --show-uri \
--text-align=center --scroll --text="PortProton v.${install_ver} --image-path="$PW_GUI_ICON_PATH" --image="port_proton" \
scripts v. ${scripts_install_ver} --text-align=center --scroll --text="PortProton v. ${install_ver}
scripts v. ${scripts_install_ver}
https://portwine-linux.ru https://portwine-linux.ru
Copyright © 2022 Castro-Fidel (PortWINE-Linux.ru) Авторские права © 2022 Castro-Fidel (PortWINE-Linux.ru)
This program comes with absolutely no warranty. Эта программа поставляется без каких-либо гарантий.
See the License for details." & Подробнее см. в Лицензия." &
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=2 \ "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=2 \
--text-align=center --scroll --text="Author: Casro-Fidel (Mikhail Tergoev) --text-align=center --scroll --text="Автор: Casro-Fidel (Михаил Тергоев)
Developer assistants and testers: Помощники разработчика и тестировщики:
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)
Copyright (©) 2022 Castro-Fidel (PortWINE-Linux.ru) Авторские права (©) 2022 Castro-Fidel (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 \ "${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=4 \
--text-info --show-uri --scroll <<< 'https://boosty.to/portwine-linux.ru: --text-info --fontname="Serif bold italic 12" --show-uri --scroll \
<<< ' Проект поддержали:
https://boosty.to/portwine-linux.ru
1 1 1 1
A B A B
AdamArclight666 AdamArclight666
Akai Akai
Aleks Aleks
Alex Sh Alexsei Cherniavskiy
Alexsei Cherniavskiy Alex Sh
Allegra_g Allegra_g
AlxChkln AlxChkln
Andrei K amikha1lov
Another games Andrei K
Apofis Smab anisan_sg
Aule Mahal Another games
Azartiny Mor Apofis Smab
BELIJJAaL apolon
CanBoo Aule Mahal
Coin Hunt Azartiny Mor
Cruze BELIJJAaL
DIO benya
Dadenard CanBoo
Dallasss chal55rus
Daniil Go Coin Hunt
Dencher12 Cruze
Denis Dadenard
Dezert1r Dallasss
Dima Manshin Daniil Go
Dmitriy Tokarev Dencher12
Drakorgaur Denis
El Mago Dezert1r
Eliot Dima Manshin
Ethan Winters DIO
Evgen Buiko d.kostroma
EvilDevolver Dmitriy Tokarev
GaiverX Drakorgaur
Gekko dunkanMcLoud
Geomant17 dupster mailbox
Happy Husky Eliot
Homyakin El Mago
Ivan Vlasov Ethan Winters
LeGi0neR Evgen Buiko
Lexa XLS EvilDevolver
Linux Vumtut fight fox
Lonely Lonely funti2f
MICROFARAT fusiok
MLogaut GaiverX
Maksami Cordyceps Gekko
Maktub Geomant17
Melord gg_harper
Monti Roquefort Happy Husky
MrBatonio haravara
Nesterik Homyakin
Nikola P. Ivan Vlasov
Nuclearsun ivboss
Nurik ksandr4370
Oleg55Rus LeGi0neR
Optimus Lexa XLS
Ottakvot Linux Vumtut
PLAFON Lonely Lonely
Pependos Maksami Cordyceps
PlagueEvgeny Maktub
Rojok56 Melord
Ruslan Vlasov MICROFARAT
Rustam MLogaut
Saireg Monti Roquefort
Seeropoonya MrBatonio
Soma Nesterik
StGdG Nikola P.
Subscript Nuclearsun
Sudo Connect Nurik
Taras Zagibalov Oleg55Rus
The End onix
Tykva Optimus
V1ktr Ottakvot
VAtiB paulscathedral
VUMtut penguin4ek
VanBugel Pependos
Vikthor Prieto PLAFON
Vosarat PlagueEvgeny
Windchester Rojok56
Xpamych Ruslan Vlasov
Yurec Rustam
Yuri Emelyanov Saireg
Zillah Giovanni sanelasan
Zloy Ivan sashman
Zorit Seeropoonya
amikha1lov sendependa_dio
anisan_sg shecspir
apolon Soma
benya sship
chal55rus(Sergey P.) StGdG
d.kostroma Subscript
dunkanMcLoud Sudo Connect
dupster mailbox sugoyako
fight fox Taras Zagibalov
funti2f The End
fusiok tima
gg_harper Tykva
haravara ua3dko
ivboss V1ktr
ksandr4370 VanBugel
onix VAtiB
paulscathedral Vikthor Prieto
penguin4ek vlad petrov
sanelasan Vosarat
sashman VUMtut
sendependa_dio Windchester
shecspir wrager
sship Xpamych
sugoyako Yurec
tima Yuri Emelyanov
ua3dko Zillah Giovanni
vlad petrov Zloy Ivan
wrager Zorit
xpamych zorn
zorn Александр
Александр Александр Абдулов
Александр Абдулов Александр Кладов
Александр Кладов Александр Лобанов
Александр Лобанов Алексей Ultralin
Алексей Ultralin Алексей Войтенко
Алексей Войтенко Алексей Галаш
Алексей Галаш Алексей Зубрийчук
Алексей Зубрийчук Алексей Ивушкин
Алексей Ивушкин Алексей Кравчук
Алексей Кравчук Алексей Чугунов
Алексей Чугунов Андрей Гусаков
Андрей Гусаков Андрей Карпенцов
Андрей Карпенцов Антоний Дамикан
Антон Рудковский Антон Рудковский
Антон Фамилианов Антон Фамилианов
Антоний Дамикан Артём К.
Артём К. Валерий Толмачёв
Валерий Толмачёв Виктор Шварц
Виктор Шварц Виктор Щетинин
Виктор Щетинин Виндэта(рог)
Виндэта(рог) Виталий Нуров
Виталий Нуров Влад Блинов
Влад Блинов Владимир Бильдюкевич
Влад Кладиев Владимир Дарвин
Владимир Бильдюкевич Влад Кладиев
Владимир Дарвин Вячеслав Шитюков
Вячеслав Шитюков Вячеслав Шустров
Вячеслав Шустров Георгий Гурский
Георгий Гурский Данил Павлов
Данил Павлов Дед Мазай
Дед Мазай Денис Мальцев
Денис Мальцев Денис Матій
Денис Матій Денис Олефиренко
Денис Олефиренко Дмитрий Круглов
Дмитрий Круглов Дмитрий Мазанка
Дмитрий Мазанка Дмитрий Сидоров
Дмитрий Сидоров Евгений Бебин
Евгений Бебин Евгений Долгополов
Евгений Долгополов Евгений Хирвонен
Евгений Хирвонен Евгений Храмов
Евгений Храмов Егор Кречун
Егор Кречун Женя Рябушкин
Женя Рябушкин Иван Белекеев
Иван Белекеев Коляныч Королёв
Коляныч Королёв Константин __
Константин __ Константин Абадонна
Константин Абадонна Леонид
Леонид Максим Хмара-Миронов
Максим Хмара-Миронов Маленькая сосна
Маленькая сосна Марат
Марат Марат Рахимов
Марат Рахимов Неизвестый Дмитрий
Неизвестый Дмитрий Никита Булавин
Никита Булавин Николай Гинтов
Павел Иванов Павел Иванов
Павел Пашенцев Павел Пашенцев
Равич Ревес Равич Ревес
Рамиль Рамиль
Рома Б. Рома Б.
Роман Игнатьев Роман Игнатьев
Роман Паженский Роман Паженский
Саша Саша
Семён Клишин Семён Клишин
Семён Ярополов Семён Ярополов
Сергей Казёнкин Сергей Казёнкин
Сергей Круглов Сергей Круглов
Серёга Сапрыкин Серёга Сапрыкин
Стас Толкачёв Стас Толкачёв
Тима Суеубаев Тима Суеубаев
Тимофей Ковалев Тимофей Ковалев
Тимур Сафонов Тимур Сафонов
Удалить Аккаунт Удалить Аккаунт
Хоттабыч Хоттабыч
Николай Гинтов
Список будет дополняться...' & Список будет дополняться...' &
"${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" \
--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/
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" \ "${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="ABOUT PORTPROTON" --tab="AUTORS" --tab="LICENSE" --tab="SPONSORS" --tab="JOIN" \ --tab="О PORTPROTON" --tab="АВТОРЫ" --tab="ЛИЦЕНЗИЯ" --tab="СПОНСОРЫ" --tab="ПРИСОЕДИНИТЬСЯ" \
--tab="THIRD PARTY LIBRARIES" --tab="БИБЛИОТЕКИ"
/usr/bin/env bash -c ${pw_full_command_line[*]} /usr/bin/env bash -c ${pw_full_command_line[*]}
else
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
Copyright © 2022 Castro-Fidel (PortWINE-Linux.ru)
This program comes with absolutely no warranty.
See the License for details." &
"${pw_yad_new}" --plug="${KEY_CREDITS}" --tabnum=2 \
--text-align=center --scroll --text="Author: Casro-Fidel (Mikhail Tergoev)
Developer assistants and testers:
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
Copyright (©) 2022 Castro-Fidel (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 --show-uri --scroll <<< 'https://boosty.to/portwine-linux.ru:
1 1
A B
AdamArclight666
Akai
Aleks
Alex Sh
Alexsei Cherniavskiy
Allegra_g
AlxChkln
Andrei K
Another games
Apofis Smab
Aule Mahal
Azartiny Mor
BELIJJAaL
CanBoo
Coin Hunt
Cruze
DIO
Dadenard
Dallasss
Daniil Go
Dencher12
Denis
Dezert1r
Dima Manshin
Dmitriy Tokarev
Drakorgaur
El Mago
Eliot
Ethan Winters
Evgen Buiko
EvilDevolver
GaiverX
Gekko
Geomant17
Happy Husky
Homyakin
Ivan Vlasov
LeGi0neR
Lexa XLS
Linux Vumtut
Lonely Lonely
MICROFARAT
MLogaut
Maksami Cordyceps
Maktub
Melord
Monti Roquefort
MrBatonio
Nesterik
Nikola P.
Nuclearsun
Nurik
Oleg55Rus
Optimus
Ottakvot
PLAFON
Pependos
PlagueEvgeny
Rojok56
Ruslan Vlasov
Rustam
Saireg
Seeropoonya
Soma
StGdG
Subscript
Sudo Connect
Taras Zagibalov
The End
Tykva
V1ktr
VAtiB
VUMtut
VanBugel
Vikthor Prieto
Vosarat
Windchester
Xpamych
Yurec
Yuri Emelyanov
Zillah Giovanni
Zloy Ivan
Zorit
amikha1lov
anisan_sg
apolon
benya
chal55rus(Sergey P.)
d.kostroma
dunkanMcLoud
dupster mailbox
fight fox
funti2f
fusiok
gg_harper
haravara
ivboss
ksandr4370
onix
paulscathedral
penguin4ek
sanelasan
sashman
sendependa_dio
shecspir
sship
sugoyako
tima
ua3dko
vlad petrov
wrager
xpamych
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" \
--text-info <<< "Сторонние библиотеки, которые используются в PortProton
PortProton собран на основе следующих бесплатных библиотек программного обеспечения:
WINE-PROTON: https://github.com/ValveSoftware/Proton
WINE-PROTON-GE: https://github.com/GloriousEggroll/proton-ge-custom/
YAD: https://github.com/v1cont/"${pw_yad_new}"
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 \
--tab="ABOUT PORTPROTON" --tab="AUTORS" --tab="LICENSE" --tab="SPONSORS" --tab="JOIN" \
--tab="THIRD PARTY LIBRARIES"
/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"
################################################################# #################################################################