Scripts version 2123
This commit is contained in:
parent
8b442cf9ef
commit
a2b5385071
@ -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"
|
||||||
#################################################################
|
#################################################################
|
||||||
|
Loading…
Reference in New Issue
Block a user