Unverified Commit f285117e authored by Boria138's avatar Boria138 Committed by GitHub

Merge branch 'master' into update-unpack

parents 4344bd56 d9232155
......@@ -2,6 +2,37 @@ You can help us in the development of the project on the website: https://linux-
----------------------------------------
Changelog:
###Scripts version 2282### Date: 19.04.2024 / Download update size: 15 megabytes
* fixed downloading required versions of WINE from SteamDeck gaming mode
* improved functions related to the work of flatpak (thanks to Boria138)
* fixed the creation and unpacking of prefixes
* added the MESA_GL_VERSION_OVERRIDE version selection to the startup settings .exe files (thanks Htylol)
###Scripts version 2281### Date: 18.04.2024 / Download update size: 15 megabytes
* the PortProton script update window has been updated
* icons for the interface have been translated from png to svg (thanks to Dervart)
* fixed the native version of PortProton on SteamDeck (We strongly recommend switching to the flatpak version for SteamDeck!)
###Scripts version 2280### Date: 16.04.2024 / Download update size: 15 megabytes
* minor fixes for SteamDeck + flatpak
###Scripts version 2279### Date: 16.04.2024 / Download update size: 15 megabytes
* improvements to the flatpak version of PortProton:
- fixed running games on SteamDeck in gaming mode
- disabled downloading of the steam runtime container (reduces the size of the installed PortProton)
- improved the function of detecting GALLIUM_NINE libraries
* ATTENTION: Do not use flatpak and the native version of PortProton on the same system!
###Scripts version 2278### Date: 15.04.2024 / Download update size: 15 megabytes
* changed function for prefix update
###Scripts version 2277### Date: 15.04.2024 / Download update size: 15 megabytes
* HOTFIX for AUTOINSTALL
* HOTFIX - remember choose version of WINE
###Scripts version 2276### Date: 14.04.2024 / Download update size: 15 megabytes
* HOTFIX for SteamDeck
###Scripts version 2275### Date: 14.04.2024 / Download update size: 175 megabytes
* all archives of wine libraries and versions have been moved to CDN (download speed correction)
* the libs_v48 library package has been updated
......@@ -450,946 +481,3 @@ Changelog:
* improved readability of the output when running portproton from the terminal
* fixed the launch of the game World of Sea Battle
* added the selection of the settings file before launching setup.exe
###Scripts version 2200### Date: 06.06.2023 / Update download size: 9 megabytes.
* updated WINE for League of Legends
###Scripts version 2199### Date: 05.06.2023 / Update download size: 9 megabytes.
* minor fixes
* function removed: check_nvidia_vk_icd_file
###Scripts version 2198### Date: 02.06.2023 / Update download size: 9 megabytes.
* HOTFIX №2 for DLSS
* HOTFIX - language change
###Scripts version 2197### Date: 02.06.2023 / Update download size: 9 megabytes.
* HOTFIX for DLSS
###Scripts version 2196### Date: 01.06.2023 / Update download size: 9 megabytes.
* fixed language switching in PortProton
* successfully tested native versions of DLSS and DXR in Alt Linux on video cards from NVIDIA RTX series
* added settings file for new game: SystemShockRemake
* updated STEAM settings file with online fix (thanks to Boria | Arch | GNOME) To apply the changes, you need to run the STEAM auto-installation again
* minor interface improvements
* added variable for laptops with hybrid graphics to PortProton/data/user.conf: "export optirun_on= #nvidia-prime-run or prime-run"
* added condition: if "optirun_on" variable is not empty, then PRIME_RENDER_OFFLOAD and nvidia_vk_icd_file check are automatically enabled
###Scripts version 2195###
* FIX - install Rockstar Games Launcher
* DELETE - ROBLOX (need use: https://github.com/roblox-linux-wrapper/roblox-linux-wrapper)
* updated DXR и DLSS functions
###Scripts version 2194###
* HOTFIX - removed nvml verification in the plugins directory
###Scripts version 2193###
* a small change in the settings of 3D api, DXR, DXS.
* updated dxvk-nvapi to version 0.6.3
* updated FAKE_DLS 230506 (FidelityFx Super Resolution 2.2-3001-0-9-1683395145)
###Scripts version 2192###
* fixed interface window when changing its size
* HOTFIX - transition on the way to .exe file
###Scripts version 2191###
Date: 29.05.2023 / The size of the downloaded update: 450 megabytes.
* the libs_v43 library package has been updated
pressure-vessel 0.20230418.0
sniper 0.20230424.48416
YAD 12.3
* fixed vkPlay Cloud Cloud gaming (it is necessary to reinstall vkPlay from the AUTOINSTALL tab after updating the scripts)
* the installation and launch of Plarium Play has been restored
* PortProton has been transferred to a new version of the pseudographic interface: YAD 12.3
###Scripts version 2190###
* added auto-detection of the path to the file to be launched after selecting automatic installation ITCH.IO
* the FULCRUM GAMES launcher has been completely removed from PortProton due to the transition of all their PC games to the STEAM launcher
###Scripts version 2189###
* accelerated the launch of Metal War Online when the game is restarted. (ALT bug 46275) To apply the fix, you need to run the MWO auto-installation again
* fixed the display of Panzar game icons (ALT bug 46273)
* fixed the display of World of Sea Battle game icons (ALT bug 46274)
* fixed the installation and launch of Ankama Launcher (ALT bug 46276)
###Scripts version 2188###
* Indiegala Client installation is installed in a separate IGCLIENT prefix
* temporarily removed installers that require improvements:
Genshin Impact (the developers, for their part, again banned the launch under wine)
Plarium Play (requires dotnet 6, which does not work adequately at the moment)
Electronic Arts App (after switching from Origin to EA App launcher works, but the games do not start)
* added the ability to download a new version of wine: PROTON_STEAM_8.0-2D (using DOWNLOAD OTHER WINE)
* fixed incorrect display of the game icon when launching exe files similar in name: Setup, setup, Launcher, launcher (ALT bug 46269)
###Scripts version 2187###
* Added: (Thanks chal55rus Sergey P.)
CONTRACT WARS
Stalker Online
Metal War Online
Xenia
FCEUX
xemu
Demul
Rpcs3
###Scripts version 2186###
* added Genshin Impact
###Scripts version 2185###
* updated versions:
DXVK_GIT_VER="2.2-7"
VKD3D_GIT_VER="1.1-3424"
###Scripts version 2184###
* FIX for EveLauncher
###Scripts version 2183###
* minor fixes
* updated versions:
DXVK_GIT_VER="2.2-1"
VKD3D_GIT_VER="1.1-3414"
###Scripts version 2182###
* updated versions:
PROTON_GE="8-3"
DXVK_GIT_VER="2.1-85"
VKD3D_GIT_VER="1.1-3413"
###Scripts version 2181###
* updated versions:
PROTON_GE="8-2"
DXVK_GIT_VER="2.1-79"
VKD3D_GIT_VER="1.1-3410"
###Scripts version 2180###
* updated versions: WINE_LOL_GE_7.0-8 (for League of Legend)
###Scripts version 2179###
* compiled and added to GitHub a new version of WINE from our project: WINE_8.5_LG (Atomic Heart videos work)
* fixed videos in the Atomic Heart game (it is necessary to reinstall vkPlay from the AUTOINSTALL tab after updating the scripts)
###Scripts version 2178###
* updated versions:
PROTON_LG="7-54"
PROTON_GE="7-54"
DXVK_GIT_VER="2.1-51"
VKD3D_GIT_VER="1.1-3339"
###Scripts version 2177###
* Updated libs_v42 library package:
fixed installation of League of Legends
fixed problems with primary authorization in different launchers when using PROTON_LG
finally fixed the problem of launching RDR2 purchased from the Epic Games Launcher
* Added instructions for installing PortProton for OS "Alt Linux (Sisyphus)" in README.md and on the site linux-gaming.ru:
su -
epm full-upgrade
epm ei
epm play portproton
###Scripts version 2176###
* The libc_v41 library package has been updated
PROTON_LG="7-53"
PROTON_GE="7-53"
DXVK_GIT_VER="2.1-48"
VKD3D_GIT_VER="1.1-3325"
* updated the vkBasalt version to work with the latest versions of DXVK and VKD3D (thanks to Vuursteen for compiling)
###Scripts version 2175###
* Updated the list of thanks to paid subscribers on https://boosty.to/portwine-linux.ru
* Thank you so much:
anisan_sg
Максим Хмара-Миронов
svo
Seeropoonya
Alexsei Cherniavskiy
wrager
Zloy Ivan
Bat1stuff
LeGi0neR
ivboss
vlad petrov
Ростислав Кузнецов
Maksami Cordyceps
Александр Аброськин
Константин
Ottakvot
VAtiB
sship
Homyakin
Dima Manshin
gg_harper
DIO
Ivory_drive
Jeta
PLAFON
Coin Hunt
Александр Кладов
Антон Фамилианов
Cruze
Gekko
Melord
Taras Zagibalov
dupster mailbox
funti2f
Артём М.
Владимир Бильдюкевич
Олег Скакунов
A B
onix
BELIJJAaL
Apofis Smab
Aule Mahal
Андрей Гусаков
Влад Кладиев
Дмитрий Маньшин
Vikthor Prieto
Александр Абдулов
Александр Мерзликин
Алексей Чугунов
Дмитрий Круглов
Егор Кречун
Евгений Храмов
Ярослав Москвин
Виктор Щетинин
CanBoo
Алексей Галаш
Алексей Самойлов
Another games
Maktub
MrBatonio
Алексей Ивушкин
Тимофей Ковалев
Юрий С.
Alex Sh
AlxChkln
Ivan Vlasov
Rojok56
vano_364
xpamych
Андрей Нешта
Виталий Росляков
Евгений Долгополов
Евгений Хирвонен
Иван Чевычелов
Марат Рахимов
Сергей Александрович К.
Windchester
Неизвестый Дмитрий
Денис Олефиренко
Soma
Никита Булавин
Сергей Sid
haravara
Энвер
Серёга Сапрыкин
AdamArclight666
Vosarat
fight fox
Дед Мазай
Леонид
tima
Andrei K
Tykva
Григорий Кожуханцев
Стас Толкачёв
Haschwalth
Looter-bit
Optimus
zntzj
Маленькая сосна
Ethan Winters
Семён Клишин
Daniil Go
GaiverX
Happy Husky
Pependos
Zorit
chal55rusSergey P.
d.kostroma
penguin4ek
Алексей Войтенко
Влад Блинов
Данил Павлов
Жан-Люк Пикар
Коляныч Королёв
Марат
Равич Ревес
Роман Паженский
Aleks
Dencher12
Rustam
Евгений Бебин
Константин Абадонна
Никита Иванов
Семён Сорокин
Сергей Шипарев
V1ktr
Алексей Ultralin
Evgen Buiko
Allegra_g
Eliot
amikha1lov
paulscathedral
Удалить Аккаунт
Alexey RasskazovskyQ
Bunny Sword
Евгений Горенков
Geomant17
Oleg55Rus
The End
WK217
devmorro
typedef
Георгий Гурский
Никита Попков
Рамиль
Рома Б.
Семён
Dnevnnoy
Jackie
PlagueEvgeny
Slir3x
Zillah Giovanni
ksandr4370
Владимир Дарвин
Денис Мальцев
Тима Суеубаев
Drakorgaur
EvilDevolver
Nuclearsun
Sergey Zotov
Виндэтарог
Виталий Богаченко
Павел Пашенцев
Виталий Нуров
July April
didi_side
Валерий Толмачёв
Azartiny Mor
Dezert1r
Dmitriy Tokarev
Kitsune_Yagiza
Lonely Lonely
MICROFARAT
Monti Roquefort
Nesterik
Ruslan Vlasov
Sudo Connect
VUMtut
Xpamych
apolon
fusiok
mrquokka
sanelasan
shecspir
sugoyako
Антон Рудковский
Артём К.
Дмитрий Сергеев
Павел Иванов
Igor14936
VanBugel
Кирилл Т
BRXC
D M_y
MLogaut
Nikola P.
Yasiok
Вячеслав Шустров
Дмитрий Мазанка
Тимур Сафонов
1 1
El Mago
dunkanMcLoud
Akai
Dallasss
Linux Vumtut
Nurik
Subscript
Yurec
sendependa_dio
ua3dko
Алексей Зубрийчук
Антоний Дамикан
Виктор Шварц
Вячеслав Шитюков
Денис Матій
Дмитрий Сидоров
Роман Игнатьев
Саша
Юрий Константинов
benya
Женя Рябушкин
Хоттабыч
DSergeev
Dadenard
Lexa XLS
Saireg
sashman
Александр Лобанов
Андрей Карпенцов
Иван Белекеев
Михаил Полозов
николай гинтов
###Scripts version 2174###
* updated versions:
PROTON_LG="7-51"
PROTON_GE="7-51"
* minor improvements and optimization of scripts
###Scripts version 2173###
* added saving the size of the PortProton main menu window
###Scripts version 2172###
* minor improvements searching the .exe files
###Scripts version 2171###
* all shortcuts created in the PortProton directory are automatically added to the "INSTALLED" tab item with which you can launch installed games and applications from PortProton itself
* the menu tab "INSTALLED" is automatically transferred as the main (first) tab in PortProton, if you already have shortcuts to installed games or programs
* minor improvements and optimization of scripts
###Scripts version 2170###
* added .ppdb file for Hogwarts Legacy
###Scripts version 2169###
* HOTFIX for ROBLOX (updated)
###Scripts version 2168###
* added installation of the ROBLOX
###Scripts version 2166###
* added a shortcut creation assistant after installing the game/program using setup.exe
* the "INSTALLED" tab has been added to the main interface of PortProton, in which you can search for all exe files in all PortProton prefixes
###Scripts version 2165###
* HOTFIX - runing Atomic Heart from VK Play
###Scripts version 2164###
* added support for the --autoinstall argument [script_id_pw_autoinstall] - to be able to install the game\program without running the main PortProton interface
* updated the output of the --help argument from the terminal
* added a forced shutdown of the virtual desktop for vkPlay (to apply, just re-install vkPlay)
* added a fix for displaying text on some systems when using steam (to apply, just re-install steam)
* Updated the libs_v40 library package
* Updated plugins_v10 library package
- updated Proton EAC to the current state
* increased buttons in the PortProton interface
###Scripts version 2163###
* Steam is working again and starts in Steam Deck mode by default
* added automatic reset of the .ppdb file settings when reinstalling the launchers from the PortProton menu
* added creation of a shortcut to the desktop
###Scripts version 2162###
* The libc_v39 library package has been updated
- Uplay is working again
- many minor fixes
* added automatic prefix update after library update
* added installation of the STALCRAFT game
###Scripts version 2161###
* updated versions:
PROTON_GE="7-49"
###Scripts version 2160###
* updated versions:
PROTON_GE="7-48" (by default)
DXVK_GIT_VER="2.1"
VKD3D_GIT_VER="1.1-3132"
export WINE_FULLSCREEN_FSR="1" (by default)
###Scripts version 2159###
* Updated libs_v38 (HOTFIX)
###Scripts version 2158###
* Updated libs_v37:
fix: kernel32.dll
###Scripts version 2157###
* Updated libs_v36:
depot 0.20230111.68
pressure-vessel 0.20221215.0 scout
scripts 0.20221215.0
sniper 0.20230109.1
###Scripts version 2156###
* the variable "PW_MANGOHUD_x32" has been added to EDIT_BD, which enables MANGOHUD for 32-bit games (temporary need to bypass the error of MANGOHUD in 64-bit games in some systems)
###Scripts version 2155###
* updated versions:
PROTON_LG="7-47"
PROTON_GE="7-47"
DXVK_GIT_VER="2.0-116"
VKD3D_GIT_VER="1.1-3115"
###Scripts version 2154###
* updated PROTON_LG 7-43
###Scripts version 2153###
* updated versions:
PROTON_GE="7-43"
DXVK_GIT_VER="2.0-36"
VKD3D_GIT_VER="1.1-3094"
* fixed crashes of the Witcher 3 game (next gen. DX12) It is necessary to use the PROTON_GE_7-43 version
###Scripts version 2152###
* added installation of the game Path of Exile
* updated versions of GIT DXVK and VKD3D:
DXVK_GIT_VER="2.0-34"
VKD3D_GIT_VER="1.1-3088"
* added vkbasalt unexpected shutdown when building GIT versions of DXVK and VKD3D (temporarily)
* libs_v34 (updated container and created a prefix template transfer plugin from a directory in the libs directory)
pressure vessel 0.20221130.0
sniper 0.20221130.0
* updated FAKE_DLSS version to 091122
###Scripts version 2151###
* added Panzar
###Scripts version 2150###
* added Warframe
###Scripts version 2149###
* added STEAM (version for Windows)
* added Indiegala Client
###Scripts version 2148###
* added Crossout
###Scripts version 2147###
* created a repository https://github.com/Castro-Fidel/vulkan/releases with DXVK and VKD3D versions compiled specifically to work under the container, which reduces problems and increases the number of games launched
* default versions:
export DXVK_STABLE_VER="1.10.3-28"
export DXVK_GIT_VER="2.0-26"
export VKD3D_STABLE_VER="1.1-2602"
export VKD3D_GIT_VER="1.1-2967"
* you can still set the standard versions of DXVK and VKD3D for individual games and they will be downloaded from off. GitHub repositories
* solved problem with League of Legends game on some systems (eg Rosa Linux)
###Scripts version 2146###
* added interface language switching in the "PORTPROTON SETTINGS" section
* added the ability to download the new version of PROTON STEAM 7.0-5
* minor fixes and script improvements
###Scripts version 2145###
* added the ability to change SVN and VKD3D versions in the game settings file .pdb and globally in user.conf using variables (values are given for example):
export DXVK_STABLE_VER="1.10.3"
export SVN_GIT_VER="2.0"
export VKD3D_STABLE_VER="2.6"
export VKD3D_GIT_VER="2.7"
* for League of Legends, the default version is DXVK 1.10.2 - as more stable for this game
###Scripts version 2144###
* updated WINE for League of Legends
###Scripts version 2143###
* due to EA Launcher issues, the Origin installer has been temporarily reverted
###Scripts version 2142###
* added alternative FTP server for PP component updates if download failed from main GITHUB server
* added display of current versions of DXVK and VKD3D when they are selected in the PortProton interface
* Changed the WINE_WIN_START="start /i /b /wait /high /unix" variable to increase the priority of the application being started (test) and more detailed output of information when creating a Log.
* for lovers of MMORPGs and weak hardware, an automatic installer Fulqrum Games has been added to launch Royal Quest - a massively multiplayer online game developed by 1C and Katauri Interactive. Thanks chal55rus (Sergey P.)
* Added PlariumPlay automatic installer to launch Raid: Shadow Legends
###Scripts version 2141###
* HOTFIX - added EA icon
###Scripts version 2140###
* added the USE_WINE_DXGI variable to EDIT_DB
* added the function of modular updating of DXVK and VKD3D-PROTON from GitHub servers
* added selection of DXVK and VKD3D-PROTON versions when launching games/launchers
* changed the automatic installation of ORIGIN on EA Launcher (beta test)
###Scripts version 2139###
* added the function of reinstalling PortProton from the menu of PortProton itself and using the "--reinstall" argument in the terminal
* updated version of PROTON_LG 7.34 based on PROTON GE 7.39 (Updated support for running game: "Overwatch 2")
###Scripts version 2138###
* added "Calibre" in AUTOINSTALL (thanks chal55rus)
###Scripts version 2137###
* updated version of PROTON_LG 7.32 based on PROTON GE 7.38 (Added support for running game: "Uncharted: Legacy of Thieves")
* minor script optimizations for running PortProton
###Scripts version 2136###
* added "Lesta Game Center" in AUTOINSTALL
###Scripts version 2135###
* updated PROTON_GE_7-37 (updated dxvk and vkd3d)
###Scripts version 2134###
* added the WINE-GE-CUSTOM tab in GET_OTHER_WINE to download versions of wine LUTRIS
* updated the PROTON_LG 7.31 version (together with dxvk and vkd3d)
* changed the MY.GAMES auto-installer to vkPlay (with the creation of a separate VK_PLAY prefix)
###Scripts version 2133###
* update libs_v33 (steam runtime sniper container 09/29/2022, version MANGOHUD 0.6.8)
* update plugins_v8 (updated version of FAKE DLSS - FSR 2.1.1)
* removed variables from the EDIT_DB menu that are no longer necessary
* made a small optimization of scripts to speed up the launch of games
* ORIGIN is working again (if you already have ORIGIN installed, enable USE_TERMINAL in EDIT_DB)
###Scripts version 2132###
* ATTENTION! The site portwine-linux.ru which is working again - FAKE! What kind of person did this and with what motives is unknown. So be vigilant! The site of our project: LINUX-GAMING.RU - and once again I will ask all the authors of their sites and Youtube channels to change their links. Thank you.
###Scripts version 2131###
* HOTFIX and change url
###Scripts version 2130###
* by default, the WINE version of PROTON_LG is used (based on wine-ge-custom with the addition of patches required for PortProton) You can still use the PROTON_GE version by selecting it in the startup menu.exe file.
* due to the rebranding and the transition to the new WINE-PROTON branch, the scripts have been significantly updated
* ATTENTION: The prefix of variables in "EDIT_DB" and "user.conf" has changed from "PW_" to "PW_". At the first launch after the update, your settings files will also be updated.
###Scripts version 2129###
* scipts optimization for dxvk and vkd3d
###Scripts version 2128###
* updated "plugins_v7" (updated libraries for FAKE DLSS - FSR 2.1 operation)
* updated PROTON_GE_7-33 (updated dxvk and vkd3d)
###Scripts version 2127###
* updated "plugins_v6" (added libraries for FAKE DLS)
* added the ability to enable support for USE_FAKE_DLSS in the EDIT_DB menu (Works on ANY video card with Vulkan support)
###Scripts version 2126###
* updated PROTON_GE_7-30 (dxvk and vkd3d from PROTON_STEAM_7.0-4)
###Scripts version 2125###
* HOTFIX - start.sh
###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###
* HOTFIX - GALLIUM NINE mode
###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
* 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)
* for GALLIUM_NINE to work, PROTON_GE is used by default
* in GALLIUM_NINE mode, the operation of launchers (such as Epic Games) has been fixed
* for Wargaming Game Center, the startup argument "--disable-gpu" is disabled automatically when using VULKAN mode.
* when using the DOTNET prefix, the black screen display in some applications has been fixed
* added a choice of downloading and automatic installation of WINE versions from Kron4ek
###Scripts version 2121###
* updated "PROTON_GE" to version 7-26
* fixed creation of shortcuts for WGC (to automatically fix existing shortcuts, just run the WGC installer from PortProton)
* Added automatic activation of MANGOHUD when using FPS limit
###Scripts version 2120###
* updated "PROTON_GE" to version 7-21
* updated "libs_v32" (Steam Runtime Snipers)
* updated installation of ORIGIN
###Scripts version 2119###
* HOTFIX - for PW_USE_D3D_EXTRAS
* updated information about the project, developers and paid subscribers on boosty
* added optimization of games and applications when using a Wayland session (using direct launch, not using XWayland)
###Scripts version 2118###
* PW_USE_D3D_EXTRAS is back on by default (except WGC)
* updated "PROTON_STEAM" to version 7.0-3
* added information about the project and developers (test mode)
###Scripts version 2117###
* HOTFIX - World of Sea Battles
* HOTFIX - AUTOINSTALL
###Scripts version 2116###
* HOTFIX - Epic Games Store
* HOTFIX - League of Legends
###Scripts version 2115###
* optimized launch PortProton in Rosa Linux
###Scripts version 2111 - 2114###
* debug
###Scripts version 2110###
* updated "PROTON_GE" to version 7-20
* fixed the work of the game World of Warplanes
* variable PW_D3D_EXTRAS_DISABLE renamed to PW_USE_D3D_EXTRAS and disabled by default
###Scripts version 2109###
* update "libs_v31"
* updated "PROTON_GE" to version 7-19
###Scripts version 2108###
* HOTFIX for Rosa Linux
###Scripts version 2107###
* accelerated container launch
* optimization of start.sh script
* updated "libs_v30" (restored work of vkBasalt on previous versions of OS Linux)
* updated "PROTON_GE" to version 7-18
###Scripts version 2106###
* updated libs_v29 (steam runtime sniper 20220509, mangohud 0.6.7, vkBasalt 0.3.2.5)
* added "WINE_FULLSCREEN_FSR" variable to "EDIT_DB" to enable "AMD FidelityFX Super Resolution"
* improved image quality when using FSR (Works while using any version of ProtonGE in full screen mode at a resolution below the standard screen)
* vkBasalt performance improved
* performance improvements in games when using the VULKAN API (DXVK and VKD3D)
###Scripts version 2105###
* updated "PROTON_STEAM" to version 7.0-2
* updated "PROTON_GE" to version 7-16
* updated "WINE_LOL_GE" to version 7.0-2 + installation and startup scripts (game client launch is accelerated)
* removed "Bethesda.net Launcher" from AUTOINSTALL (because it moved to STEAM)
* improved prefix image creation and unpacking functions
###Scripts version 2104###
* HOTFIX - download and update winetricks
* when creating a log, all d3dx* and d3dcomp* were removed for readability
###Scripts version 2103###
* updated container launch mode
* temporary variable PW_USE_AMDVLK_DRIVER does not work
###Scripts version 2102###
* fixed work of GALLIUM_NINE on integrated video cards from Intel
* fixed switching AMDVLK - RADV
* FPS increase in games up to 20% (for all launch modes)
###Scripts version 2101###
* fix work WINETRICKS (new prefix manager) in the absence of winetricks.log
* updated "libs_v28" (MANGOHUD update to version 0.6.6-1)
###Scripts version 2100###
* updated "libs_v27" (unification of library directories for different Linux OS)
* MANGOHUD works again in OPENGL mode
* added launcher World of Sea Battle (TEST)
###Scripts version 2099###
* updated "PROTON_GE" to version 7-14
* updated "libs_v26" (Steam Runtime Sniper container update)
* updated "plugins_v5"
* added check for the presence of the d3dadapter9 library in the system (required for GALLIUM_NINE to work on a larger number of Linux OS)
* faster creation of a new prefix
* default theme for wine is light (after creating a new one, or clearing the current prefix)
* added variable PW_USE_SHADER_CACHE to EDIT_DB to control shader caching (disable only if there are microfreezes in the game)
* removed STEAM_PP from AUTOINSTALL (because there is a native STEAM for Linux with its own wine-proton)
###Scripts version 2098###
* due to possible problems with some games, MANGOHUD is disabled by default (enabled in EDIT_DB -> MANGOHUD, or globally by adding export PW_MANGOHUD=1 to user.conf)
###Scripts version 2097###
* accelerated launch of all applications in PortProton up to 200% depending on the system
* updated additional libraries "plugins_v4" (added support for GALLIUM_NINE)
* added "GALLIUM_NINE" mode selection (support for native DirectX9 on video card with MESA driver)
* new interface for WINETRICKS added settings tab
* added variable PW_USE_AMDVLK_DRIVER to EDIT_DB (use AMDVLK driver instead of RADV on AMD video cards)
* added label archiving when creating a prefix image
* added restoration of shortcuts after unpacking the prefix image (the path to the .exe file is corrected automatically)
* improved virtual desktop performance
* explorer changed to winefile (free disk space detection fixed)
* disabled loading of mono and gecko for League of Legends (speeds up the first launch)
* to force the use of AMD graphics cards instead of NVIDIA, you can add "export DRI_PRIME=1" to user.conf
###Scripts version 2096###
* added check for LANG variable for PortProton to work on STEAM-DECK
* added new interface for WINETRICKS
* updated "libs_v25" (updated steam runtime sniper, added support for "MANGOHUD" and "vkBasalt" for systems: "RED OS" and "OpenSUSE")
* added variable PW_FIX_VIDEO_IN_GAME to EDIT_DB (required for video playback in some games so that it is not distorted, colored pink)
###Scripts version 2095###
* updated "libs_v24" (hotfix)
###Scripts version 2094###
* rollback "PROTON_GE" to version 7-9
###Scripts version 2093###
* updated "PROTON_STEAM" to version 7.0-1B
* updated "PROTON_GE" to version 7-10
* implemented prefix backups (WINE SETTINGS -> CREATE PFX BACKUP)
* temporarily restore copies using RMB to *.ppack (backup image) and open with... PortProton
* implemented full support for Rosa Linux (the installer is in the repositories)
###Scripts version 2092###
* added separation of WINE and PORTPROTON settings in the main interface
* added quick creation of backup copies of assembly scripts before updating them (SCRIPTS FROM BACKUP in the PORTPROTON SETTINGS tab)
* other minor scripting improvements included in PortProton v1.0 release
###Scripts version 2091###
* RELEASE PORTPROTON v.1.0
###Scripts version 2086 - 2090###
* HOTFIX - fixed creation of symbolic links
###Scripts version 2086 - 2089###
* updated "PROTON_STEAM" to version 7.0-1
* updated "libs_v22.2" (Steam Runtime Sniper container update)
* updated additional libraries "plugins_v3" (added "EasyAntiCheat_Runtime" and updated "BattlEye_Runtime")
* added ability to create custom prefixes
* fixed "AUTOINSTALL" operation after "Arch Linux" update
* "League of Legends" is put in a separate prefix, which speeds up its launch (no need to update the prefix on each launch)
* by default there is an empty "DOTNET" prefix, when it starts it is automatically filled with libraries: "physx mfc42 vcrun2019 dotnet20sp2 dotnet48"
* added saving priority user settings (db files) inside the directory with the launched .exe file
* redesigned the main interface of PortProton (AUTOINSTALL opens by default on the first tab, in the SETTINGS tab added prefix selection and creation of a new prefix)
* added check to which prefix the Launcher is set from AUTOINSTALL
* added change history display before PortProton update
###Scripts version 2085###
* added argument editor for ".exe" file to "EDIT_DB" interface
* added "WINDOWS" version selection to "EDIT_DB" interface
* added "WINEDLLOVERRIDES" variable editor to "EDIT_DB" interface
* added "AUTOINSTALL WITH WINETRICKS" to "EDIT_DB" interface for installing "WINDOWS" libraries
###Scripts version 2084###
* improved function of displaying the icon of the file being launched in the PortProton GUI
* fixed function of changing "CREATE_SHORTCUT" button in PortProton interface
###Scripts version 2083###
* added displaying the icon of the file being launched in the PortProton GUI
* fixed creation of multiple .png files in .exe directory during shortcut creation
* in the PortProton interface, the "CREATE_SHORTCUT" button changes to "DELETE_SHORTCUT" when the shortcut is enabled in the menu -> games
###Scripts version 2082###
* HOTFIX - AUTOINSTALL for EGS
###Scripts version 2081###
* fixed installing GOG Galaxy
* update WINE PROTON_GE to 7.1-2
###Scripts version 2080###
* added progress display of winetricks and library downloads during prefix update
* added display of the startup process with log output on the fly when using the DEBUG mode
* removed from DEBUG information output that does not affect the operation of PortProton (gstreamer, ntlm, kerberos)
###Scripts version 2079###
* fixed DLSS work on some systems
* reduced boot logo by 30%
###Scripts version 2078###
* added work Red Dead Redemption 2 purchased and launched in the Epic Games Launcher
###Scripts version 2077###
* fixed empty VULKAN/OPENGL selection window with some db files
* the main GUI functions on yad are moved to a separate file
###Scripts version 2076###
* HOTFIX - create symlink
###Scripts version 2075###
* HOTFIX - fixed OpenGL mode
###Scripts version 2072-2074###
* HOTFIX - fixed launch of League of Legends
###Scripts version 2071###
* added the ability to download other versions of WINE when opening an exe file (in the WINE selection drop-down list)
* updated launch mode gamemode (bug fixed libgamemode.so)
* added FSYNC optimization when getting kernel 5.16+ (increases FPS)
* added new launch mode: "VULKAN (WINE DXGI)" required for some new games using DX12
###Scripts version 2070###
* added PW_D3D_EXTRAS_DISABLE variable to EDIT_DB for DirectX external library
* rollback MANGOHUD to stable version from libs_v19.2
* fixed internet download interruption
* updated WINE_LOL_GE 7.0
###Scripts version 2069###
* added support for OpenSUSE (vkBasalt and MANGOHUD)
* fixed GOG installation (for OpenSUSE and Fedora)
* update plugins v.2.0:
- BattlEye_Runtime (10 January 2022)
- d3d_extras v.2.0
- nvapi v.0.5.1
- nvml v.0.1.1
###Scripts version 2068###
* HOTFIX - WINE download fixed
* NV_PRIME_RENDER_OFFLOAD is disabled by default (can be enabled using EDIT_DB)
###Scripts version 2067###
* updated libs to v20 (uses new Steam Runtime Sniper container + updated: MANGOHUD, vkBasalt and additional packages required for PortProton)
* fixed GOG installation
* fixed black screen in Epic Games (NVIDIA + driver v.495)
* fixed canceling file downloads while using AUTOINSTALL
* many small fixes
###Scripts version 2066###
* updated WINE PROTON_GE_7.0RC6-1 (with dxvk and vkd3d)
* the wine version from PROTON_GE is used by default (can be replaced with PROTON STEAM by adding to user.conf: export PW_WINE_USE=PROTON_STEAM)
* added check for number of db files for one .exe
* fixed disabling of the League of Legends boot logo
* updated db files
###Scripts version 2065###
* HOTFIX - correcting the termination of the yad and yad_v13_0 processes
###Scripts version 2064###
* added notification to the user about possible problems when starting in a Wayland session (once and only under Wayland)
* added display of the current session type in debug
* added changelog in English
* after clearing the prefix (CLEAR PREFIX from SETTINGS) PortProton restart added
-----------------------------------------
<<< TRANSLATED WITH GOOGLE >>>
###Scripts version 2063###
* checking the relevance of scripts was transferred from wget to curl (significantly speeds up the launch of PortProton)
* fixed bug with restarting PortProton (quick restart)
* fixed symlink creation errors when starting from PortProton.desktop
* changed completion of PortProton scripts
* to optimize the first launch of games / launchers after using the AUTOINSTALL function, when filling the prefix with winetricks, the WINE version is used, which is indicated in the db file.
###Scripts version 2062### (Experimental version not included in the main branch)
* PROTON EXPEREMENTAL test from 01/14/22 (together with dxvk and vkd3d)
* test PROTON_GE 7.0 RC6 (shared with dxvk and vkd3d)
###Scripts version 2061###
* continue to prepare the installation of PortProton from the repositories
###Scripts version 2060###
* prepared the ability to install PortProton from the repositories
###Scripts version 2059###
* updated GOG auto-installation
###Scripts version 2058###
* by default selected PW_WINE_USE=PROTON_STEAM for EGS
###Scripts version 2057###
* updated db files for EGS, UPLAY, STEAM
* added port update button "UPDATE PORTPROTON" to the "SETTINGS" tab
###Scripts version 2056###
* removed xtrem from dependencies (added use of native terminal emulator with yad)
* fixed installation of dotnet 4.5+ with winetricks
* HOTFIX - downloading libraries and wine on some systems (TEST)
* updated WINE_LOL_GE_6.16-5 with embedded mono 6.3.0 + gecko 2.47.2
* duckstation epsxe project64 vba-m yabause emulators added (thanks chal55rus)
* updated PROTON_STEAM to version 6.3-8C_PW2 (updated dxvk and vkd3d)
###Scripts version 2055-1###
* updated db AnomalyLauncher
###Scripts version 2055###
* updated PROTON_STEAM to version 6.3-8 (again =)
* copying fonts has been replaced by creating symbolic links
* Added Cemu to emulator installers
###Scripts version 2054###
* added a new item to the PortProton menu to install emulators (thanks chal55rus)
###Scripts version 2053###
* HOTFIX - fixed symlink creation errors for some libraries from plugins_v1
###Scripts version 2052-5###
* correct layout display loading League of Legends
###Scripts version 2052###
* rebranding of the logo (the source of the logo is in Discord - I'm waiting for your options for icons in png format)
* added cover art when loading the League of Legends client
* added animation when loading PortProton
* added animation when updating the prefix and running winetricks (with the ability to switch to the terminal output inside the GUI)
* copying d3d_extras changed to creating symlinks (still slightly increases port startup speed)
###Scripts version 2051###
* added checking and downloading the latest version of WINE for League of Legends before launching the game
###Scripts version 2050###
* HOTFIX - display WINE versions when creating a db file
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="28"
version="1.1"
height="28"
viewBox="0 0 28 28"
id="svg1"
sodipodi:docname="close.svg"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
xml:space="preserve"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="11.313709"
inkscape:cx="10.650796"
inkscape:cy="14.849242"
inkscape:window-width="2991"
inkscape:window-height="1194"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg1" /><defs
id="defs5455"><linearGradient
id="linearGradient4256"><stop
style="stop-color:#8cbdf8"
id="stop4258" /><stop
offset="1"
style="stop-color:#d5e8ff"
id="stop4260" /></linearGradient><linearGradient
id="linearGradient4232"><stop
style="stop-color:#3889e9"
id="stop4234-0" /><stop
offset="1"
style="stop-color:#5ea5fb"
id="stop4236" /></linearGradient><linearGradient
id="a"
x1="300"
x2="300"
y1="44"
y2="556"
gradientUnits="userSpaceOnUse"><stop
offset="0"
stop-color="#46bac6"
id="stop1" /><stop
offset="1"
stop-color="#1497a5"
id="stop2" /></linearGradient><linearGradient
id="linearGradient4194"><stop
style="stop-color:#b5006a"
id="stop4196" /><stop
offset="1"
style="stop-color:#c70073"
id="stop4198" /></linearGradient><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient848"
id="linearGradient854"
gradientUnits="userSpaceOnUse"
x1="203.3689"
y1="55.640129"
x2="244.86897"
y2="55.640129" /><linearGradient
inkscape:collect="always"
id="linearGradient848"><stop
style="stop-color:#4b8bd4;stop-opacity:1"
offset="0"
id="stop844" /><stop
style="stop-color:#3b6ca7;stop-opacity:1"
offset="1"
id="stop846" /></linearGradient><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient848"
id="linearGradient1004"
gradientUnits="userSpaceOnUse"
x1="387.57144"
y1="505.798"
x2="445.57141"
y2="505.798"
gradientTransform="matrix(1.3888828,0,0,1,-172.49732,0)" /><linearGradient
id="linearGradient4301"><stop
style="stop-color:#f10000;stop-opacity:1"
offset="0"
id="stop4303" /><stop
style="stop-color:#b20000;stop-opacity:1"
offset="1"
id="stop4305" /></linearGradient><linearGradient
id="linearGradient4305"><stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop4307" /><stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop4309" /></linearGradient><linearGradient
id="linearGradient4428"
y1="4.7160001"
x1="17.483"
y2="39.833"
x2="37.757999"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-0.99376,-0.00423,0.00423,0.98887,47.823,2.34)"><stop
stop-color="#3fc380"
id="stop4430"
style="stop-color:#3cc6ae;stop-opacity:1" /><stop
offset="1"
stop-color="#3f8ed3"
id="stop4432"
style="stop-color:#3f7ad3;stop-opacity:1" /></linearGradient><linearGradient
id="a-2"
y1="543.79999"
y2="503.79999"
x2="0"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-384.57,-499.8)"><stop
stop-color="#2a2c2f"
id="stop7" /><stop
offset="1"
stop-color="#424649"
id="stop9" /></linearGradient><linearGradient
id="b"
y1="532.79999"
y2="506.79999"
x2="0"
gradientUnits="userSpaceOnUse"><stop
stop-color="#989a9b"
id="stop12" /><stop
offset="1"
stop-color="#f6f6f7"
id="stop14" /></linearGradient><linearGradient
id="c"
y1="522.79999"
x1="403.57001"
y2="534.79999"
x2="413.26001"
gradientUnits="userSpaceOnUse"><stop
stop-color="#020303"
id="stop17" /><stop
offset="1"
stop-color="#424649"
stop-opacity="0"
id="stop19" /></linearGradient><linearGradient
xlink:href="#c"
id="d"
y1="521.79999"
x1="400.76999"
y2="533.59998"
gradientUnits="userSpaceOnUse"
x2="412.57001" /><path
fill-rule="evenodd"
id="e"
d="m 426.57,529.8 -16,11 -8,-8 -2,-9 17,-5 z" /><linearGradient
gradientUnits="userSpaceOnUse"
x2="0"
y2="503.79999"
y1="543.79999"
id="a-3"><stop
id="stop4268"
stop-color="#2a2c2f" /><stop
id="stop4270"
stop-color="#424649"
offset="1" /></linearGradient><linearGradient
gradientUnits="userSpaceOnUse"
x2="0"
y2="506.79999"
y1="532.79999"
id="b-6"><stop
id="stop4273"
stop-color="#989a9b" /><stop
id="stop4275"
stop-color="#f6f6f7"
offset="1" /></linearGradient><path
d="m 426.57,529.8 -16,11 -8,-8 -2,-9 17,-5 z"
id="e-5"
fill-rule="evenodd" /><linearGradient
gradientTransform="matrix(-0.99376,-0.00423,0.00423,0.98887,47.823,2.34)"
gradientUnits="userSpaceOnUse"
x2="37.757999"
y2="39.833"
x1="17.483"
y1="4.7160001"
id="a-35"><stop
id="stop4339"
stop-color="#3fc380" /><stop
id="stop4341"
stop-color="#3f8ed3"
offset="1" /></linearGradient><linearGradient
gradientTransform="matrix(-0.99376,-0.00423,0.00423,0.98887,97.823,31.34)"
gradientUnits="userSpaceOnUse"
x2="37.757999"
y2="39.833"
x1="17.483"
y1="4.7160001"
id="b-62"
xlink:href="#a-35" /><linearGradient
gradientTransform="matrix(-0.99376,-0.00423,0.00423,0.98887,97.823,16.34)"
gradientUnits="userSpaceOnUse"
x2="37.757999"
y2="39.833"
x1="17.483"
y1="4.7160001"
id="c-9"
xlink:href="#a-35" /><linearGradient
gradientTransform="matrix(-0.99376,-0.0067,0.00423,1.56572,47.823,12.372)"
gradientUnits="userSpaceOnUse"
x2="37.757999"
y2="39.833"
x1="17.483"
y1="4.7160001"
id="d-1"><stop
id="stop4346"
stop-color="#148e76" /><stop
id="stop4348"
stop-color="#218059"
offset="1" /></linearGradient><linearGradient
gradientTransform="translate(0,-2)"
gradientUnits="userSpaceOnUse"
x2="43"
y2="31"
x1="4"
y1="18"
id="e-2"><stop
id="stop4351"
stop-color="#292c2f"
style="stop-color:#000000;stop-opacity:1" /><stop
id="stop4353"
stop-opacity="0"
offset="1"
style="stop-color:#000000;stop-opacity:0.32644629" /></linearGradient><linearGradient
gradientTransform="translate(0,14)"
gradientUnits="userSpaceOnUse"
x2="44"
y2="28"
x1="30.625"
y1="14"
id="f"
xlink:href="#e-2" /><linearGradient
gradientTransform="matrix(0.99376,0.0067,-0.00423,-1.56572,50.177,5.628)"
gradientUnits="userSpaceOnUse"
x2="37.757999"
y2="39.833"
x1="17.483"
y1="4.7160001"
id="g"
xlink:href="#d-1" /><linearGradient
x1="428.81601"
gradientTransform="translate(-384.57,-499.8)"
gradientUnits="userSpaceOnUse"
x2="388.86499"
y2="499.67899"
y1="547.63397"
id="a-9"><stop
id="stop7-3"
stop-color="#2a2c2f" /><stop
id="stop9-6"
stop-color="#536161"
offset="1" /></linearGradient><linearGradient
x1="36"
gradientUnits="userSpaceOnUse"
x2="14"
y2="12"
y1="44"
id="b-0"><stop
style="stop-color:#bfc9c9;stop-opacity:1"
id="stop12-6"
stop-color="#536161" /><stop
style="stop-color:#fbfbfb;stop-opacity:1"
id="stop14-2"
stop-color="#f4f5f5"
offset="1" /></linearGradient><linearGradient
gradientTransform="translate(-384.57,-499.8)"
gradientUnits="userSpaceOnUse"
x2="419.974"
y2="539.82501"
x1="418.57001"
y1="529.79999"
id="c-61"><stop
id="stop17-8"
stop-color="#292c2f" /><stop
id="stop19-7"
stop-opacity="0"
offset="1" /></linearGradient><style
type="text/css"
id="current-color-scheme">.ColorScheme-Text { color: #fcfcfc; } </style><linearGradient
gradientTransform="translate(-404.99,-523.8)"
gradientUnits="userSpaceOnUse"
x2="419.974"
y2="539.82501"
x1="406.50101"
y1="527.01398"
id="c-6"><stop
id="stop17-7"
stop-color="#292c2f" /><stop
id="stop19-5"
stop-opacity="0"
offset="1" /></linearGradient><linearGradient
xlink:href="#linearGradient4428"
id="linearGradient4408-1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-0.99376,-0.00423,0.00423,0.98887,43.823,-1.66)"
x1="9.875"
y1="-2.3239999"
x2="44.278"
y2="42.318001" /><linearGradient
id="a-8"><stop
id="stop4631"
stop-opacity=".742"
stop-color="#dcedfe" /><stop
id="stop4633"
stop-opacity="0"
stop-color="#dcedfe"
offset="1" /></linearGradient><linearGradient
gradientTransform="translate(15.653,1.018)"
x2="40.709"
gradientUnits="userSpaceOnUse"
y2="30.416"
x1="10.972"
y1="-0.017999999"
id="b-4"><stop
id="stop4636" /><stop
id="stop4638"
stop-opacity="0"
offset="1" /></linearGradient><linearGradient
gradientTransform="translate(23.03,5.02)"
x2="29.129999"
gradientUnits="userSpaceOnUse"
y2="22.129999"
x1="11"
y1="4"
id="c-5"
xlink:href="#b-4" /><linearGradient
gradientTransform="translate(-99.4835,-40.4835)"
x2="30.347"
gradientUnits="userSpaceOnUse"
y2="45.981998"
x1="7.3470001"
y1="6.9819999"
id="d-0"><stop
id="stop4642"
stop-color="#eeeeee" /><stop
id="stop4644"
stop-color="#cccccc"
offset="1" /></linearGradient><linearGradient
gradientTransform="matrix(1,0,0,1.0091,-110.9855,-40.7775)"
x2="0"
gradientUnits="userSpaceOnUse"
y2="32"
y1="36"
id="e-3"><stop
id="stop4647"
stop-color="#c58c00" /><stop
id="stop4649"
stop-color="#ffc318"
offset="1" /></linearGradient><linearGradient
gradientTransform="matrix(1,0,0,1.25,-111.4835,-50.4855)"
x2="19"
gradientUnits="userSpaceOnUse"
y2="33"
x1="23.219999"
y1="42.986"
id="f-6"><stop
id="stop4652"
stop-color="#70431c" /><stop
id="stop4654"
stop-color="#be8c5a"
offset="1" /></linearGradient><linearGradient
gradientTransform="translate(-106.4835,-44.4855)"
x2="21"
gradientUnits="userSpaceOnUse"
y2="46"
x1="13.98"
y1="38.957001"
id="g-1"
xlink:href="#b-4" /><linearGradient
gradientUnits="userSpaceOnUse"
x2="0"
y2="2.987"
y1="43.922001"
id="h"
gradientTransform="translate(-122.5135,-45.5035)"><stop
id="stop4658"
stop-color="#22a7f0" /><stop
id="stop4660"
stop-color="#19b5fe"
offset="1" /></linearGradient><linearGradient
gradientUnits="userSpaceOnUse"
x2="0"
y2="34.040001"
y1="43.922001"
id="i"><stop
id="stop4663"
stop-color="#c8e3fe" /><stop
id="stop4665"
stop-color="#e4f1fe"
offset="1" /></linearGradient><linearGradient
gradientUnits="userSpaceOnUse"
x2="27"
x1="19"
y2="44"
y1="33.998001"
id="j"><stop
id="stop4668"
stop-color="#383e51" /><stop
id="stop4670"
stop-opacity="0"
stop-color="#655c6f"
offset="1" /></linearGradient><radialGradient
gradientTransform="matrix(0.59169,-0.93256,2.10028,1.33257,-80.07,8.555)"
gradientUnits="userSpaceOnUse"
r="16"
id="k"
xlink:href="#a-8"
cy="48.672001"
cx="31.01" /><radialGradient
gradientTransform="matrix(0.53188,-0.49081,0.78529,0.851,-19.809,-0.579)"
gradientUnits="userSpaceOnUse"
r="16"
id="l"
xlink:href="#a-8"
cy="38.130001"
cx="30.299999" /><linearGradient
gradientUnits="userSpaceOnUse"
x2="0"
y2="503.79999"
y1="543.79999"
id="a-0"><stop
id="stop4858"
stop-color="#2a2c2f" /><stop
id="stop4860"
stop-color="#424649"
offset="1" /></linearGradient><linearGradient
gradientUnits="userSpaceOnUse"
x2="0"
y2="506.79999"
y1="532.79999"
id="b-63"><stop
id="stop4863"
stop-color="#989a9b" /><stop
id="stop4865"
stop-color="#f6f6f7"
offset="1" /></linearGradient><path
d="m 426.57,529.8 -16,11 -8,-8 -2,-9 17,-5 z"
id="e-0"
fill-rule="evenodd" /><linearGradient
xlink:href="#linearGradient4305"
id="linearGradient4311"
x1="16.75"
y1="-4.5"
x2="36"
y2="32"
gradientUnits="userSpaceOnUse" /><radialGradient
xlink:href="#linearGradient4301"
id="radialGradient4309"
cx="20.853001"
cy="17.349001"
fx="20.853001"
fy="17.349001"
r="8.1289997"
gradientTransform="matrix(-0.01162882,1.1950891,-1.274916,-0.0124056,46.239569,-9.6229889)"
gradientUnits="userSpaceOnUse" /><linearGradient
gradientTransform="translate(-384.57,-499.8)"
gradientUnits="userSpaceOnUse"
x2="0"
y2="503.79999"
y1="543.79999"
id="a-09"><stop
id="stop7-36"
stop-color="#2a2c2f" /><stop
id="stop9-0"
stop-color="#424649"
offset="1" /></linearGradient><linearGradient
gradientUnits="userSpaceOnUse"
x2="0"
y2="506.79999"
y1="532.79999"
id="b-626"><stop
id="stop12-1"
stop-color="#989a9b" /><stop
id="stop14-8"
stop-color="#f6f6f7"
offset="1" /></linearGradient><path
d="m 426.57,529.8 -16,11 -8,-8 -2,-9 17,-5 z"
id="e-02"
fill-rule="evenodd" /><linearGradient
id="a-3-3"
y1="543.79999"
y2="503.79999"
x2="0"
gradientUnits="userSpaceOnUse"><stop
stop-color="#2a2c2f"
id="stop4268-7" /><stop
offset="1"
stop-color="#424649"
id="stop4270-5" /></linearGradient><linearGradient
id="b-6-9"
y1="532.79999"
y2="506.79999"
x2="0"
gradientUnits="userSpaceOnUse"><stop
stop-color="#989a9b"
id="stop4273-2" /><stop
offset="1"
stop-color="#f6f6f7"
id="stop4275-2" /></linearGradient><path
fill-rule="evenodd"
id="e-5-8"
d="m 426.57,529.8 -16,11 -8,-8 -2,-9 17,-5 z" /><style
id="current-color-scheme-8"
type="text/css">
.ColorScheme-Text { color:#4d4d4d; }
</style><linearGradient
id="e-3-3"
y1="36"
y2="32"
gradientUnits="userSpaceOnUse"
x2="0"
gradientTransform="matrix(1,0,0,1.0091,-110.9855,-40.7775)"><stop
stop-color="#c58c00"
id="stop4647-2" /><stop
offset="1"
stop-color="#ffc318"
id="stop4649-0" /></linearGradient><linearGradient
gradientTransform="translate(-122.5135,-45.5035)"
id="h-5"
y1="43.922001"
y2="2.987"
x2="0"
gradientUnits="userSpaceOnUse"><stop
stop-color="#22a7f0"
id="stop4658-5" /><stop
offset="1"
stop-color="#19b5fe"
id="stop4660-4" /></linearGradient><linearGradient
id="i-7"
y1="43.922001"
y2="34.040001"
x2="0"
gradientUnits="userSpaceOnUse"><stop
stop-color="#c8e3fe"
id="stop4663-6" /><stop
offset="1"
stop-color="#e4f1fe"
id="stop4665-5" /></linearGradient><radialGradient
cx="31.01"
cy="48.672001"
xlink:href="#a-8"
id="k-3"
r="16"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.59169,-0.93256,2.10028,1.33257,-80.07,8.555)" /><radialGradient
cx="30.299999"
cy="38.130001"
xlink:href="#a-8"
id="l-7"
r="16"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.53188,-0.49081,0.78529,0.851,-19.809,-0.579)" /><linearGradient
id="a-0-4"
y1="543.79999"
y2="503.79999"
x2="0"
gradientUnits="userSpaceOnUse"><stop
stop-color="#2a2c2f"
id="stop4858-5" /><stop
offset="1"
stop-color="#424649"
id="stop4860-2" /></linearGradient><linearGradient
id="b-63-5"
y1="532.79999"
y2="506.79999"
x2="0"
gradientUnits="userSpaceOnUse"><stop
stop-color="#989a9b"
id="stop4863-4" /><stop
offset="1"
stop-color="#f6f6f7"
id="stop4865-7" /></linearGradient><path
fill-rule="evenodd"
id="e-0-4"
d="m 426.57,529.8 -16,11 -8,-8 -2,-9 17,-5 z" /><style
id="style1">.cls-1{fill-rule:evenodd;}</style></defs><metadata
id="metadata5458" /><path
id="rect3"
style="fill:#09bec8;fill-opacity:1;fill-rule:evenodd;stroke:#46bac6;stroke-width:0"
d="M 23.954837,4.0444373 C 23.205439,3.2950404 21.90615,3.3880391 21.041435,4.2527553 L 14.000289,11.2939 6.9591449,4.2527553 C 6.0944288,3.3880399 4.7941227,3.2960572 4.0447266,4.0454535 3.2953296,4.7948496 3.3883291,6.0941396 4.2530445,6.9588556 L 11.294189,14 4.2530437,21.041146 c -0.8647153,0.864715 -0.9577149,2.164005 -0.2083171,2.913403 0.7493968,0.749395 2.0486861,0.656396 2.9134015,-0.208319 l 7.0411449,-7.041146 7.042162,7.042162 c 0.864715,0.864715 2.164004,0.957713 2.913401,0.208318 0.749396,-0.749397 0.657415,-2.049704 -0.207301,-2.914418 l -7.042162,-7.042162 7.041146,-7.0411445 c 0.864715,-0.864716 0.957714,-2.164006 0.208318,-2.9134022 z" /></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="64"
height="64"
viewBox="0 0 64 64"
version="1.1"
id="svg1"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
sodipodi:docname="download.svg"
inkscape:export-filename="download.png"
inkscape:export-xdpi="24"
inkscape:export-ydpi="24"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
inkscape:zoom="8.7031251"
inkscape:cx="48.54578"
inkscape:cy="43.317773"
inkscape:window-width="2991"
inkscape:window-height="1194"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg1" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="matrix(0.13454107,0,0,0.13454107,-2.8135283,-2.3188431)">
<circle
style="fill:#46bac6;fill-opacity:1"
id="path1"
cx="258.75763"
cy="255.0808"
r="237.8456" />
<g
id="g2"
style="fill:#ffffff"
transform="matrix(0.49271292,0,0,0.49271292,129.86574,129.86549)">
<path
class="st0"
d="m 230.546,324.601 c 6.688,6.703 15.969,10.547 25.454,10.547 9.469,0 18.75,-3.844 25.453,-10.547 L 398.422,207.64 c 14.062,-14.054 14.062,-36.851 0,-50.906 -14.062,-14.062 -36.859,-14.062 -50.906,0 v -0.007 L 292,212.242 V 38.188 c 0,-19.883 -16.125,-36 -36,-36 -19.89,0 -36,16.117 -36,36 v 174.046 l -55.5,-55.5 c -14.062,-14.062 -36.859,-14.062 -50.906,-0.007 -14.062,14.062 -14.062,36.859 0,50.914 z"
id="path1-2"
style="fill:#ffffff" />
<path
class="st0"
d="M 473.453,383.148 H 333.406 c -13.36,29.469 -42.954,50 -77.406,50 -34.454,0 -64.047,-20.531 -77.39,-50 H 38.562 C 17.266,383.148 0,400.406 0,421.696 v 49.562 c 0,21.297 17.266,38.554 38.562,38.554 h 434.89 c 21.297,0 38.547,-17.258 38.547,-38.554 V 421.696 C 512,400.406 494.75,383.148 473.453,383.148 Z"
id="path2"
style="fill:#ffffff" />
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="64"
height="64"
viewBox="0 0 64 64"
version="1.1"
id="svg1"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
sodipodi:docname="error.svg"
inkscape:export-filename="download.png"
inkscape:export-xdpi="24"
inkscape:export-ydpi="24"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
inkscape:zoom="6.1540388"
inkscape:cx="42.49242"
inkscape:cy="9.424705"
inkscape:window-width="2991"
inkscape:window-height="1194"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg1" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="matrix(0.13454107,0,0,0.13454107,-2.8135283,-2.3188431)">
<circle
style="fill:#46bac6;fill-opacity:1"
id="path1"
cx="258.75763"
cy="255.0808"
r="237.8456" />
</g>
<path
id="rect3"
style="fill:#ffffff;fill-rule:evenodd;stroke:#46bac6;stroke-width:0"
d="m 45.529335,18.469678 c -1.018484,-1.018484 -2.784312,-0.892092 -3.959522,0.283119 l -9.56942,9.569419 -9.569419,-9.569419 c -1.175211,-1.17521 -2.94242,-1.300221 -3.960903,-0.281738 -1.018484,1.018483 -0.892091,2.784311 0.283119,3.959522 L 28.322609,32 l -9.56942,9.56942 c -1.17521,1.175211 -1.301603,2.941039 -0.283118,3.959523 1.018484,1.018482 2.784311,0.892091 3.959521,-0.28312 l 9.56942,-9.56942 9.570801,9.570801 c 1.17521,1.17521 2.941038,1.301602 3.959521,0.283119 1.018484,-1.018483 0.893473,-2.785693 -0.281737,-3.960903 l -9.570801,-9.570801 9.56942,-9.569419 c 1.17521,-1.175211 1.301603,-2.941039 0.283119,-3.959522 z" />
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="48"
version="1.1"
height="48"
viewBox="0 0 48 48"
id="svg1"
sodipodi:docname="find_48.svg"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
xml:space="preserve"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="11.313709"
inkscape:cx="33.543378"
inkscape:cy="23.776465"
inkscape:window-width="2991"
inkscape:window-height="1194"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" /><defs
id="defs5455"><linearGradient
id="linearGradient4256"><stop
style="stop-color:#8cbdf8"
id="stop4258" /><stop
offset="1"
style="stop-color:#d5e8ff"
id="stop4260" /></linearGradient><linearGradient
id="linearGradient4232"><stop
style="stop-color:#3889e9"
id="stop4234-0" /><stop
offset="1"
style="stop-color:#5ea5fb"
id="stop4236" /></linearGradient><linearGradient
id="a"
x1="300"
x2="300"
y1="44"
y2="556"
gradientUnits="userSpaceOnUse"><stop
offset="0"
stop-color="#46bac6"
id="stop1" /><stop
offset="1"
stop-color="#1497a5"
id="stop2" /></linearGradient><linearGradient
id="linearGradient4194"><stop
style="stop-color:#b5006a"
id="stop4196" /><stop
offset="1"
style="stop-color:#c70073"
id="stop4198" /></linearGradient><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient848"
id="linearGradient854"
gradientUnits="userSpaceOnUse"
x1="203.3689"
y1="55.640129"
x2="244.86897"
y2="55.640129" /><linearGradient
inkscape:collect="always"
id="linearGradient848"><stop
style="stop-color:#4b8bd4;stop-opacity:1"
offset="0"
id="stop844" /><stop
style="stop-color:#3b6ca7;stop-opacity:1"
offset="1"
id="stop846" /></linearGradient><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient848"
id="linearGradient1004"
gradientUnits="userSpaceOnUse"
x1="387.57144"
y1="505.798"
x2="445.57141"
y2="505.798"
gradientTransform="matrix(1.3888828,0,0,1,-172.49732,0)" /><linearGradient
id="linearGradient4301"><stop
style="stop-color:#f10000;stop-opacity:1"
offset="0"
id="stop4303" /><stop
style="stop-color:#b20000;stop-opacity:1"
offset="1"
id="stop4305" /></linearGradient><linearGradient
id="linearGradient4305"><stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop4307" /><stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop4309" /></linearGradient><linearGradient
id="linearGradient4428"
y1="4.7160001"
x1="17.483"
y2="39.833"
x2="37.757999"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-0.99376,-0.00423,0.00423,0.98887,47.823,2.34)"><stop
stop-color="#3fc380"
id="stop4430"
style="stop-color:#3cc6ae;stop-opacity:1" /><stop
offset="1"
stop-color="#3f8ed3"
id="stop4432"
style="stop-color:#3f7ad3;stop-opacity:1" /></linearGradient><linearGradient
id="a-2"
y1="543.79999"
y2="503.79999"
x2="0"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-384.57,-499.8)"><stop
stop-color="#2a2c2f"
id="stop7" /><stop
offset="1"
stop-color="#424649"
id="stop9" /></linearGradient><linearGradient
id="b"
y1="532.79999"
y2="506.79999"
x2="0"
gradientUnits="userSpaceOnUse"><stop
stop-color="#989a9b"
id="stop12" /><stop
offset="1"
stop-color="#f6f6f7"
id="stop14" /></linearGradient><linearGradient
id="c"
y1="522.79999"
x1="403.57001"
y2="534.79999"
x2="413.26001"
gradientUnits="userSpaceOnUse"><stop
stop-color="#020303"
id="stop17" /><stop
offset="1"
stop-color="#424649"
stop-opacity="0"
id="stop19" /></linearGradient><linearGradient
xlink:href="#c"
id="d"
y1="521.79999"
x1="400.76999"
y2="533.59998"
gradientUnits="userSpaceOnUse"
x2="412.57001" /><path
fill-rule="evenodd"
id="e"
d="m 426.57,529.8 -16,11 -8,-8 -2,-9 17,-5 z" /><linearGradient
gradientUnits="userSpaceOnUse"
x2="0"
y2="503.79999"
y1="543.79999"
id="a-3"><stop
id="stop4268"
stop-color="#2a2c2f" /><stop
id="stop4270"
stop-color="#424649"
offset="1" /></linearGradient><linearGradient
gradientUnits="userSpaceOnUse"
x2="0"
y2="506.79999"
y1="532.79999"
id="b-6"><stop
id="stop4273"
stop-color="#989a9b" /><stop
id="stop4275"
stop-color="#f6f6f7"
offset="1" /></linearGradient><path
d="m 426.57,529.8 -16,11 -8,-8 -2,-9 17,-5 z"
id="e-5"
fill-rule="evenodd" /><linearGradient
gradientTransform="matrix(-0.99376,-0.00423,0.00423,0.98887,47.823,2.34)"
gradientUnits="userSpaceOnUse"
x2="37.757999"
y2="39.833"
x1="17.483"
y1="4.7160001"
id="a-35"><stop
id="stop4339"
stop-color="#3fc380" /><stop
id="stop4341"
stop-color="#3f8ed3"
offset="1" /></linearGradient><linearGradient
gradientTransform="matrix(-0.99376,-0.00423,0.00423,0.98887,97.823,31.34)"
gradientUnits="userSpaceOnUse"
x2="37.757999"
y2="39.833"
x1="17.483"
y1="4.7160001"
id="b-62"
xlink:href="#a-35" /><linearGradient
gradientTransform="matrix(-0.99376,-0.00423,0.00423,0.98887,97.823,16.34)"
gradientUnits="userSpaceOnUse"
x2="37.757999"
y2="39.833"
x1="17.483"
y1="4.7160001"
id="c-9"
xlink:href="#a-35" /><linearGradient
gradientTransform="matrix(-0.99376,-0.0067,0.00423,1.56572,47.823,12.372)"
gradientUnits="userSpaceOnUse"
x2="37.757999"
y2="39.833"
x1="17.483"
y1="4.7160001"
id="d-1"><stop
id="stop4346"
stop-color="#148e76" /><stop
id="stop4348"
stop-color="#218059"
offset="1" /></linearGradient><linearGradient
gradientTransform="translate(0,-2)"
gradientUnits="userSpaceOnUse"
x2="43"
y2="31"
x1="4"
y1="18"
id="e-2"><stop
id="stop4351"
stop-color="#292c2f"
style="stop-color:#000000;stop-opacity:1" /><stop
id="stop4353"
stop-opacity="0"
offset="1"
style="stop-color:#000000;stop-opacity:0.32644629" /></linearGradient><linearGradient
gradientTransform="translate(0,14)"
gradientUnits="userSpaceOnUse"
x2="44"
y2="28"
x1="30.625"
y1="14"
id="f"
xlink:href="#e-2" /><linearGradient
gradientTransform="matrix(0.99376,0.0067,-0.00423,-1.56572,50.177,5.628)"
gradientUnits="userSpaceOnUse"
x2="37.757999"
y2="39.833"
x1="17.483"
y1="4.7160001"
id="g"
xlink:href="#d-1" /><linearGradient
x1="428.81601"
gradientTransform="translate(-384.57,-499.8)"
gradientUnits="userSpaceOnUse"
x2="388.86499"
y2="499.67899"
y1="547.63397"
id="a-9"><stop
id="stop7-3"
stop-color="#2a2c2f" /><stop
id="stop9-6"
stop-color="#536161"
offset="1" /></linearGradient><linearGradient
x1="36"
gradientUnits="userSpaceOnUse"
x2="14"
y2="12"
y1="44"
id="b-0"><stop
style="stop-color:#bfc9c9;stop-opacity:1"
id="stop12-6"
stop-color="#536161" /><stop
style="stop-color:#fbfbfb;stop-opacity:1"
id="stop14-2"
stop-color="#f4f5f5"
offset="1" /></linearGradient><linearGradient
gradientTransform="translate(-384.57,-499.8)"
gradientUnits="userSpaceOnUse"
x2="419.974"
y2="539.82501"
x1="418.57001"
y1="529.79999"
id="c-61"><stop
id="stop17-8"
stop-color="#292c2f" /><stop
id="stop19-7"
stop-opacity="0"
offset="1" /></linearGradient><style
type="text/css"
id="current-color-scheme">.ColorScheme-Text { color: #fcfcfc; } </style><linearGradient
gradientTransform="translate(-404.99,-523.8)"
gradientUnits="userSpaceOnUse"
x2="419.974"
y2="539.82501"
x1="406.50101"
y1="527.01398"
id="c-6"><stop
id="stop17-7"
stop-color="#292c2f" /><stop
id="stop19-5"
stop-opacity="0"
offset="1" /></linearGradient><linearGradient
xlink:href="#linearGradient4428"
id="linearGradient4408-1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-0.99376,-0.00423,0.00423,0.98887,43.823,-1.66)"
x1="9.875"
y1="-2.3239999"
x2="44.278"
y2="42.318001" /><linearGradient
id="a-8"><stop
id="stop4631"
stop-opacity=".742"
stop-color="#dcedfe" /><stop
id="stop4633"
stop-opacity="0"
stop-color="#dcedfe"
offset="1" /></linearGradient><linearGradient
gradientTransform="translate(15.653,1.018)"
x2="40.709"
gradientUnits="userSpaceOnUse"
y2="30.416"
x1="10.972"
y1="-0.017999999"
id="b-4"><stop
id="stop4636" /><stop
id="stop4638"
stop-opacity="0"
offset="1" /></linearGradient><linearGradient
gradientTransform="translate(23.03,5.02)"
x2="29.129999"
gradientUnits="userSpaceOnUse"
y2="22.129999"
x1="11"
y1="4"
id="c-5"
xlink:href="#b-4" /><linearGradient
gradientTransform="translate(-99.4835,-40.4835)"
x2="30.347"
gradientUnits="userSpaceOnUse"
y2="45.981998"
x1="7.3470001"
y1="6.9819999"
id="d-0"><stop
id="stop4642"
stop-color="#eeeeee" /><stop
id="stop4644"
stop-color="#cccccc"
offset="1" /></linearGradient><linearGradient
gradientTransform="matrix(1,0,0,1.0091,-110.9855,-40.7775)"
x2="0"
gradientUnits="userSpaceOnUse"
y2="32"
y1="36"
id="e-3"><stop
id="stop4647"
stop-color="#c58c00" /><stop
id="stop4649"
stop-color="#ffc318"
offset="1" /></linearGradient><linearGradient
gradientTransform="matrix(1,0,0,1.25,-111.4835,-50.4855)"
x2="19"
gradientUnits="userSpaceOnUse"
y2="33"
x1="23.219999"
y1="42.986"
id="f-6"><stop
id="stop4652"
stop-color="#70431c" /><stop
id="stop4654"
stop-color="#be8c5a"
offset="1" /></linearGradient><linearGradient
gradientTransform="translate(-106.4835,-44.4855)"
x2="21"
gradientUnits="userSpaceOnUse"
y2="46"
x1="13.98"
y1="38.957001"
id="g-1"
xlink:href="#b-4" /><linearGradient
gradientUnits="userSpaceOnUse"
x2="0"
y2="2.987"
y1="43.922001"
id="h"
gradientTransform="translate(-122.5135,-45.5035)"><stop
id="stop4658"
stop-color="#22a7f0" /><stop
id="stop4660"
stop-color="#19b5fe"
offset="1" /></linearGradient><linearGradient
gradientUnits="userSpaceOnUse"
x2="0"
y2="34.040001"
y1="43.922001"
id="i"><stop
id="stop4663"
stop-color="#c8e3fe" /><stop
id="stop4665"
stop-color="#e4f1fe"
offset="1" /></linearGradient><linearGradient
gradientUnits="userSpaceOnUse"
x2="27"
x1="19"
y2="44"
y1="33.998001"
id="j"><stop
id="stop4668"
stop-color="#383e51" /><stop
id="stop4670"
stop-opacity="0"
stop-color="#655c6f"
offset="1" /></linearGradient><radialGradient
gradientTransform="matrix(0.59169,-0.93256,2.10028,1.33257,-80.07,8.555)"
gradientUnits="userSpaceOnUse"
r="16"
id="k"
xlink:href="#a-8"
cy="48.672001"
cx="31.01" /><radialGradient
gradientTransform="matrix(0.53188,-0.49081,0.78529,0.851,-19.809,-0.579)"
gradientUnits="userSpaceOnUse"
r="16"
id="l"
xlink:href="#a-8"
cy="38.130001"
cx="30.299999" /><linearGradient
gradientUnits="userSpaceOnUse"
x2="0"
y2="503.79999"
y1="543.79999"
id="a-0"><stop
id="stop4858"
stop-color="#2a2c2f" /><stop
id="stop4860"
stop-color="#424649"
offset="1" /></linearGradient><linearGradient
gradientUnits="userSpaceOnUse"
x2="0"
y2="506.79999"
y1="532.79999"
id="b-63"><stop
id="stop4863"
stop-color="#989a9b" /><stop
id="stop4865"
stop-color="#f6f6f7"
offset="1" /></linearGradient><path
d="m 426.57,529.8 -16,11 -8,-8 -2,-9 17,-5 z"
id="e-0"
fill-rule="evenodd" /><linearGradient
xlink:href="#linearGradient4305"
id="linearGradient4311"
x1="16.75"
y1="-4.5"
x2="36"
y2="32"
gradientUnits="userSpaceOnUse" /><radialGradient
xlink:href="#linearGradient4301"
id="radialGradient4309"
cx="20.853001"
cy="17.349001"
fx="20.853001"
fy="17.349001"
r="8.1289997"
gradientTransform="matrix(-0.01162882,1.1950891,-1.274916,-0.0124056,46.239569,-9.6229889)"
gradientUnits="userSpaceOnUse" /><linearGradient
gradientTransform="translate(-384.57,-499.8)"
gradientUnits="userSpaceOnUse"
x2="0"
y2="503.79999"
y1="543.79999"
id="a-09"><stop
id="stop7-36"
stop-color="#2a2c2f" /><stop
id="stop9-0"
stop-color="#424649"
offset="1" /></linearGradient><linearGradient
gradientUnits="userSpaceOnUse"
x2="0"
y2="506.79999"
y1="532.79999"
id="b-626"><stop
id="stop12-1"
stop-color="#989a9b" /><stop
id="stop14-8"
stop-color="#f6f6f7"
offset="1" /></linearGradient><path
d="m 426.57,529.8 -16,11 -8,-8 -2,-9 17,-5 z"
id="e-02"
fill-rule="evenodd" /><linearGradient
id="a-3-3"
y1="543.79999"
y2="503.79999"
x2="0"
gradientUnits="userSpaceOnUse"><stop
stop-color="#2a2c2f"
id="stop4268-7" /><stop
offset="1"
stop-color="#424649"
id="stop4270-5" /></linearGradient><linearGradient
id="b-6-9"
y1="532.79999"
y2="506.79999"
x2="0"
gradientUnits="userSpaceOnUse"><stop
stop-color="#989a9b"
id="stop4273-2" /><stop
offset="1"
stop-color="#f6f6f7"
id="stop4275-2" /></linearGradient><path
fill-rule="evenodd"
id="e-5-8"
d="m 426.57,529.8 -16,11 -8,-8 -2,-9 17,-5 z" /><style
id="current-color-scheme-8"
type="text/css">
.ColorScheme-Text { color:#4d4d4d; }
</style><linearGradient
id="e-3-3"
y1="36"
y2="32"
gradientUnits="userSpaceOnUse"
x2="0"
gradientTransform="matrix(1,0,0,1.0091,-110.9855,-40.7775)"><stop
stop-color="#c58c00"
id="stop4647-2" /><stop
offset="1"
stop-color="#ffc318"
id="stop4649-0" /></linearGradient><linearGradient
gradientTransform="translate(-122.5135,-45.5035)"
id="h-5"
y1="43.922001"
y2="2.987"
x2="0"
gradientUnits="userSpaceOnUse"><stop
stop-color="#22a7f0"
id="stop4658-5" /><stop
offset="1"
stop-color="#19b5fe"
id="stop4660-4" /></linearGradient><linearGradient
id="i-7"
y1="43.922001"
y2="34.040001"
x2="0"
gradientUnits="userSpaceOnUse"><stop
stop-color="#c8e3fe"
id="stop4663-6" /><stop
offset="1"
stop-color="#e4f1fe"
id="stop4665-5" /></linearGradient><radialGradient
cx="31.01"
cy="48.672001"
xlink:href="#a-8"
id="k-3"
r="16"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.59169,-0.93256,2.10028,1.33257,-80.07,8.555)" /><radialGradient
cx="30.299999"
cy="38.130001"
xlink:href="#a-8"
id="l-7"
r="16"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.53188,-0.49081,0.78529,0.851,-19.809,-0.579)" /><linearGradient
id="a-0-4"
y1="543.79999"
y2="503.79999"
x2="0"
gradientUnits="userSpaceOnUse"><stop
stop-color="#2a2c2f"
id="stop4858-5" /><stop
offset="1"
stop-color="#424649"
id="stop4860-2" /></linearGradient><linearGradient
id="b-63-5"
y1="532.79999"
y2="506.79999"
x2="0"
gradientUnits="userSpaceOnUse"><stop
stop-color="#989a9b"
id="stop4863-4" /><stop
offset="1"
stop-color="#f6f6f7"
id="stop4865-7" /></linearGradient><path
fill-rule="evenodd"
id="e-0-4"
d="m 426.57,529.8 -16,11 -8,-8 -2,-9 17,-5 z" /></defs><metadata
id="metadata5458" /><g
inkscape:label="Capa 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-384.57143,-515.798)"><path
id="rect11"
style="fill:#09bec8;fill-opacity:1;stroke:none;stroke-width:0.827924"
d="m 389.79457,521.05476 c -2.89014,0 -5.21987,2.50297 -5.21987,5.61828 v 8.66179 c 0,-3.42773 2.08992,-4.85823 5.21987,-4.85823 h 8.34707 c 11.47659,-1.1423 9.48749,-5.63503 16.79123,-5.63503 h 12.28791 c 2.88987,0 5.35043,1.21388 5.35043,4.37946 v -2.54799 c 0,-3.11531 -2.32639,-5.61828 -5.21651,-5.61828 z m 25.13494,5.28346 c -7.30369,0 -5.31454,4.49606 -16.79123,5.63837 h -8.35042 c -3.12993,0 -5.2165,1.42716 -5.2165,4.85491 v 15.9977 c 0,3.16557 2.32654,5.71204 5.2165,5.71204 h 37.56016 c 2.88995,0 5.21648,-2.54733 5.21648,-5.71204 v -1.29575 c 7.4e-4,-0.0386 0.007,-0.0751 0.007,-0.11383 v -0.0871 c 0,0.0389 -0.007,0.0751 -0.007,0.11383 v -20.73208 c 0,-3.16557 -2.46042,-4.37609 -5.35042,-4.37609 z m 1.48661,7.77118 c 4.38041,0 7.95534,3.57492 7.95534,7.95534 0,1.80186 -0.60349,3.46814 -1.62054,4.80466 l 6.01338,6.01003 c 0.33576,0.33578 0.33578,0.87627 0,1.21205 l -0.51898,0.51898 c -0.33577,0.33577 -0.87627,0.33577 -1.21205,0 l -6.0435,-6.04353 c -1.29531,0.91461 -2.87406,1.45313 -4.57365,1.45313 -4.3804,0 -7.95534,-3.57492 -7.95532,-7.95532 0,-4.38042 3.57492,-7.95534 7.95532,-7.95534 z m 0,2.22656 c -3.17708,0 -5.72876,2.5517 -5.72876,5.72878 0,3.17709 2.55168,5.72878 5.72876,5.72876 3.17711,2e-5 5.72878,-2.55167 5.72878,-5.72876 0,-3.17708 -2.55167,-5.72878 -5.72878,-5.72878 z" /></g></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="28"
version="1.1"
height="28"
viewBox="0 0 28 28"
id="svg1"
sodipodi:docname="history.svg"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
xml:space="preserve"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="22.627417"
inkscape:cx="6.8279999"
inkscape:cy="14.584077"
inkscape:window-width="2991"
inkscape:window-height="1194"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg1" /><defs
id="defs5455"><linearGradient
id="linearGradient4256"><stop
style="stop-color:#8cbdf8"
id="stop4258" /><stop
offset="1"
style="stop-color:#d5e8ff"
id="stop4260" /></linearGradient><linearGradient
id="linearGradient4232"><stop
style="stop-color:#3889e9"
id="stop4234-0" /><stop
offset="1"
style="stop-color:#5ea5fb"
id="stop4236" /></linearGradient><linearGradient
id="a"
x1="300"
x2="300"
y1="44"
y2="556"
gradientUnits="userSpaceOnUse"><stop
offset="0"
stop-color="#46bac6"
id="stop1" /><stop
offset="1"
stop-color="#1497a5"
id="stop2" /></linearGradient><linearGradient
id="linearGradient4194"><stop
style="stop-color:#b5006a"
id="stop4196" /><stop
offset="1"
style="stop-color:#c70073"
id="stop4198" /></linearGradient><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient848"
id="linearGradient854"
gradientUnits="userSpaceOnUse"
x1="203.3689"
y1="55.640129"
x2="244.86897"
y2="55.640129" /><linearGradient
inkscape:collect="always"
id="linearGradient848"><stop
style="stop-color:#4b8bd4;stop-opacity:1"
offset="0"
id="stop844" /><stop
style="stop-color:#3b6ca7;stop-opacity:1"
offset="1"
id="stop846" /></linearGradient><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient848"
id="linearGradient1004"
gradientUnits="userSpaceOnUse"
x1="387.57144"
y1="505.798"
x2="445.57141"
y2="505.798"
gradientTransform="matrix(1.3888828,0,0,1,-172.49732,0)" /><linearGradient
id="linearGradient4301"><stop
style="stop-color:#f10000;stop-opacity:1"
offset="0"
id="stop4303" /><stop
style="stop-color:#b20000;stop-opacity:1"
offset="1"
id="stop4305" /></linearGradient><linearGradient
id="linearGradient4305"><stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop4307" /><stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop4309" /></linearGradient><linearGradient
id="linearGradient4428"
y1="4.7160001"
x1="17.483"
y2="39.833"
x2="37.757999"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-0.99376,-0.00423,0.00423,0.98887,47.823,2.34)"><stop
stop-color="#3fc380"
id="stop4430"
style="stop-color:#3cc6ae;stop-opacity:1" /><stop
offset="1"
stop-color="#3f8ed3"
id="stop4432"
style="stop-color:#3f7ad3;stop-opacity:1" /></linearGradient><linearGradient
id="a-2"
y1="543.79999"
y2="503.79999"
x2="0"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-384.57,-499.8)"><stop
stop-color="#2a2c2f"
id="stop7" /><stop
offset="1"
stop-color="#424649"
id="stop9" /></linearGradient><linearGradient
id="b"
y1="532.79999"
y2="506.79999"
x2="0"
gradientUnits="userSpaceOnUse"><stop
stop-color="#989a9b"
id="stop12" /><stop
offset="1"
stop-color="#f6f6f7"
id="stop14" /></linearGradient><linearGradient
id="c"
y1="522.79999"
x1="403.57001"
y2="534.79999"
x2="413.26001"
gradientUnits="userSpaceOnUse"><stop
stop-color="#020303"
id="stop17" /><stop
offset="1"
stop-color="#424649"
stop-opacity="0"
id="stop19" /></linearGradient><linearGradient
xlink:href="#c"
id="d"
y1="521.79999"
x1="400.76999"
y2="533.59998"
gradientUnits="userSpaceOnUse"
x2="412.57001" /><path
fill-rule="evenodd"
id="e"
d="m 426.57,529.8 -16,11 -8,-8 -2,-9 17,-5 z" /><linearGradient
gradientUnits="userSpaceOnUse"
x2="0"
y2="503.79999"
y1="543.79999"
id="a-3"><stop
id="stop4268"
stop-color="#2a2c2f" /><stop
id="stop4270"
stop-color="#424649"
offset="1" /></linearGradient><linearGradient
gradientUnits="userSpaceOnUse"
x2="0"
y2="506.79999"
y1="532.79999"
id="b-6"><stop
id="stop4273"
stop-color="#989a9b" /><stop
id="stop4275"
stop-color="#f6f6f7"
offset="1" /></linearGradient><path
d="m 426.57,529.8 -16,11 -8,-8 -2,-9 17,-5 z"
id="e-5"
fill-rule="evenodd" /><linearGradient
gradientTransform="matrix(-0.99376,-0.00423,0.00423,0.98887,47.823,2.34)"
gradientUnits="userSpaceOnUse"
x2="37.757999"
y2="39.833"
x1="17.483"
y1="4.7160001"
id="a-35"><stop
id="stop4339"
stop-color="#3fc380" /><stop
id="stop4341"
stop-color="#3f8ed3"
offset="1" /></linearGradient><linearGradient
gradientTransform="matrix(-0.99376,-0.00423,0.00423,0.98887,97.823,31.34)"
gradientUnits="userSpaceOnUse"
x2="37.757999"
y2="39.833"
x1="17.483"
y1="4.7160001"
id="b-62"
xlink:href="#a-35" /><linearGradient
gradientTransform="matrix(-0.99376,-0.00423,0.00423,0.98887,97.823,16.34)"
gradientUnits="userSpaceOnUse"
x2="37.757999"
y2="39.833"
x1="17.483"
y1="4.7160001"
id="c-9"
xlink:href="#a-35" /><linearGradient
gradientTransform="matrix(-0.99376,-0.0067,0.00423,1.56572,47.823,12.372)"
gradientUnits="userSpaceOnUse"
x2="37.757999"
y2="39.833"
x1="17.483"
y1="4.7160001"
id="d-1"><stop
id="stop4346"
stop-color="#148e76" /><stop
id="stop4348"
stop-color="#218059"
offset="1" /></linearGradient><linearGradient
gradientTransform="translate(0,-2)"
gradientUnits="userSpaceOnUse"
x2="43"
y2="31"
x1="4"
y1="18"
id="e-2"><stop
id="stop4351"
stop-color="#292c2f"
style="stop-color:#000000;stop-opacity:1" /><stop
id="stop4353"
stop-opacity="0"
offset="1"
style="stop-color:#000000;stop-opacity:0.32644629" /></linearGradient><linearGradient
gradientTransform="translate(0,14)"
gradientUnits="userSpaceOnUse"
x2="44"
y2="28"
x1="30.625"
y1="14"
id="f"
xlink:href="#e-2" /><linearGradient
gradientTransform="matrix(0.99376,0.0067,-0.00423,-1.56572,50.177,5.628)"
gradientUnits="userSpaceOnUse"
x2="37.757999"
y2="39.833"
x1="17.483"
y1="4.7160001"
id="g"
xlink:href="#d-1" /><linearGradient
x1="428.81601"
gradientTransform="translate(-384.57,-499.8)"
gradientUnits="userSpaceOnUse"
x2="388.86499"
y2="499.67899"
y1="547.63397"
id="a-9"><stop
id="stop7-3"
stop-color="#2a2c2f" /><stop
id="stop9-6"
stop-color="#536161"
offset="1" /></linearGradient><linearGradient
x1="36"
gradientUnits="userSpaceOnUse"
x2="14"
y2="12"
y1="44"
id="b-0"><stop
style="stop-color:#bfc9c9;stop-opacity:1"
id="stop12-6"
stop-color="#536161" /><stop
style="stop-color:#fbfbfb;stop-opacity:1"
id="stop14-2"
stop-color="#f4f5f5"
offset="1" /></linearGradient><linearGradient
gradientTransform="translate(-384.57,-499.8)"
gradientUnits="userSpaceOnUse"
x2="419.974"
y2="539.82501"
x1="418.57001"
y1="529.79999"
id="c-61"><stop
id="stop17-8"
stop-color="#292c2f" /><stop
id="stop19-7"
stop-opacity="0"
offset="1" /></linearGradient><style
type="text/css"
id="current-color-scheme">.ColorScheme-Text { color: #fcfcfc; } </style><linearGradient
gradientTransform="translate(-404.99,-523.8)"
gradientUnits="userSpaceOnUse"
x2="419.974"
y2="539.82501"
x1="406.50101"
y1="527.01398"
id="c-6"><stop
id="stop17-7"
stop-color="#292c2f" /><stop
id="stop19-5"
stop-opacity="0"
offset="1" /></linearGradient><linearGradient
xlink:href="#linearGradient4428"
id="linearGradient4408-1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-0.99376,-0.00423,0.00423,0.98887,43.823,-1.66)"
x1="9.875"
y1="-2.3239999"
x2="44.278"
y2="42.318001" /><linearGradient
id="a-8"><stop
id="stop4631"
stop-opacity=".742"
stop-color="#dcedfe" /><stop
id="stop4633"
stop-opacity="0"
stop-color="#dcedfe"
offset="1" /></linearGradient><linearGradient
gradientTransform="translate(15.653,1.018)"
x2="40.709"
gradientUnits="userSpaceOnUse"
y2="30.416"
x1="10.972"
y1="-0.017999999"
id="b-4"><stop
id="stop4636" /><stop
id="stop4638"
stop-opacity="0"
offset="1" /></linearGradient><linearGradient
gradientTransform="translate(23.03,5.02)"
x2="29.129999"
gradientUnits="userSpaceOnUse"
y2="22.129999"
x1="11"
y1="4"
id="c-5"
xlink:href="#b-4" /><linearGradient
gradientTransform="translate(-99.4835,-40.4835)"
x2="30.347"
gradientUnits="userSpaceOnUse"
y2="45.981998"
x1="7.3470001"
y1="6.9819999"
id="d-0"><stop
id="stop4642"
stop-color="#eeeeee" /><stop
id="stop4644"
stop-color="#cccccc"
offset="1" /></linearGradient><linearGradient
gradientTransform="matrix(1,0,0,1.0091,-110.9855,-40.7775)"
x2="0"
gradientUnits="userSpaceOnUse"
y2="32"
y1="36"
id="e-3"><stop
id="stop4647"
stop-color="#c58c00" /><stop
id="stop4649"
stop-color="#ffc318"
offset="1" /></linearGradient><linearGradient
gradientTransform="matrix(1,0,0,1.25,-111.4835,-50.4855)"
x2="19"
gradientUnits="userSpaceOnUse"
y2="33"
x1="23.219999"
y1="42.986"
id="f-6"><stop
id="stop4652"
stop-color="#70431c" /><stop
id="stop4654"
stop-color="#be8c5a"
offset="1" /></linearGradient><linearGradient
gradientTransform="translate(-106.4835,-44.4855)"
x2="21"
gradientUnits="userSpaceOnUse"
y2="46"
x1="13.98"
y1="38.957001"
id="g-1"
xlink:href="#b-4" /><linearGradient
gradientUnits="userSpaceOnUse"
x2="0"
y2="2.987"
y1="43.922001"
id="h"
gradientTransform="translate(-122.5135,-45.5035)"><stop
id="stop4658"
stop-color="#22a7f0" /><stop
id="stop4660"
stop-color="#19b5fe"
offset="1" /></linearGradient><linearGradient
gradientUnits="userSpaceOnUse"
x2="0"
y2="34.040001"
y1="43.922001"
id="i"><stop
id="stop4663"
stop-color="#c8e3fe" /><stop
id="stop4665"
stop-color="#e4f1fe"
offset="1" /></linearGradient><linearGradient
gradientUnits="userSpaceOnUse"
x2="27"
x1="19"
y2="44"
y1="33.998001"
id="j"><stop
id="stop4668"
stop-color="#383e51" /><stop
id="stop4670"
stop-opacity="0"
stop-color="#655c6f"
offset="1" /></linearGradient><radialGradient
gradientTransform="matrix(0.59169,-0.93256,2.10028,1.33257,-80.07,8.555)"
gradientUnits="userSpaceOnUse"
r="16"
id="k"
xlink:href="#a-8"
cy="48.672001"
cx="31.01" /><radialGradient
gradientTransform="matrix(0.53188,-0.49081,0.78529,0.851,-19.809,-0.579)"
gradientUnits="userSpaceOnUse"
r="16"
id="l"
xlink:href="#a-8"
cy="38.130001"
cx="30.299999" /><linearGradient
gradientUnits="userSpaceOnUse"
x2="0"
y2="503.79999"
y1="543.79999"
id="a-0"><stop
id="stop4858"
stop-color="#2a2c2f" /><stop
id="stop4860"
stop-color="#424649"
offset="1" /></linearGradient><linearGradient
gradientUnits="userSpaceOnUse"
x2="0"
y2="506.79999"
y1="532.79999"
id="b-63"><stop
id="stop4863"
stop-color="#989a9b" /><stop
id="stop4865"
stop-color="#f6f6f7"
offset="1" /></linearGradient><path
d="m 426.57,529.8 -16,11 -8,-8 -2,-9 17,-5 z"
id="e-0"
fill-rule="evenodd" /><linearGradient
xlink:href="#linearGradient4305"
id="linearGradient4311"
x1="16.75"
y1="-4.5"
x2="36"
y2="32"
gradientUnits="userSpaceOnUse" /><radialGradient
xlink:href="#linearGradient4301"
id="radialGradient4309"
cx="20.853001"
cy="17.349001"
fx="20.853001"
fy="17.349001"
r="8.1289997"
gradientTransform="matrix(-0.01162882,1.1950891,-1.274916,-0.0124056,46.239569,-9.6229889)"
gradientUnits="userSpaceOnUse" /><linearGradient
gradientTransform="translate(-384.57,-499.8)"
gradientUnits="userSpaceOnUse"
x2="0"
y2="503.79999"
y1="543.79999"
id="a-09"><stop
id="stop7-36"
stop-color="#2a2c2f" /><stop
id="stop9-0"
stop-color="#424649"
offset="1" /></linearGradient><linearGradient
gradientUnits="userSpaceOnUse"
x2="0"
y2="506.79999"
y1="532.79999"
id="b-626"><stop
id="stop12-1"
stop-color="#989a9b" /><stop
id="stop14-8"
stop-color="#f6f6f7"
offset="1" /></linearGradient><path
d="m 426.57,529.8 -16,11 -8,-8 -2,-9 17,-5 z"
id="e-02"
fill-rule="evenodd" /><linearGradient
id="a-3-3"
y1="543.79999"
y2="503.79999"
x2="0"
gradientUnits="userSpaceOnUse"><stop
stop-color="#2a2c2f"
id="stop4268-7" /><stop
offset="1"
stop-color="#424649"
id="stop4270-5" /></linearGradient><linearGradient
id="b-6-9"
y1="532.79999"
y2="506.79999"
x2="0"
gradientUnits="userSpaceOnUse"><stop
stop-color="#989a9b"
id="stop4273-2" /><stop
offset="1"
stop-color="#f6f6f7"
id="stop4275-2" /></linearGradient><path
fill-rule="evenodd"
id="e-5-8"
d="m 426.57,529.8 -16,11 -8,-8 -2,-9 17,-5 z" /><style
id="current-color-scheme-8"
type="text/css">
.ColorScheme-Text { color:#4d4d4d; }
</style><linearGradient
id="e-3-3"
y1="36"
y2="32"
gradientUnits="userSpaceOnUse"
x2="0"
gradientTransform="matrix(1,0,0,1.0091,-110.9855,-40.7775)"><stop
stop-color="#c58c00"
id="stop4647-2" /><stop
offset="1"
stop-color="#ffc318"
id="stop4649-0" /></linearGradient><linearGradient
gradientTransform="translate(-122.5135,-45.5035)"
id="h-5"
y1="43.922001"
y2="2.987"
x2="0"
gradientUnits="userSpaceOnUse"><stop
stop-color="#22a7f0"
id="stop4658-5" /><stop
offset="1"
stop-color="#19b5fe"
id="stop4660-4" /></linearGradient><linearGradient
id="i-7"
y1="43.922001"
y2="34.040001"
x2="0"
gradientUnits="userSpaceOnUse"><stop
stop-color="#c8e3fe"
id="stop4663-6" /><stop
offset="1"
stop-color="#e4f1fe"
id="stop4665-5" /></linearGradient><radialGradient
cx="31.01"
cy="48.672001"
xlink:href="#a-8"
id="k-3"
r="16"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.59169,-0.93256,2.10028,1.33257,-80.07,8.555)" /><radialGradient
cx="30.299999"
cy="38.130001"
xlink:href="#a-8"
id="l-7"
r="16"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.53188,-0.49081,0.78529,0.851,-19.809,-0.579)" /><linearGradient
id="a-0-4"
y1="543.79999"
y2="503.79999"
x2="0"
gradientUnits="userSpaceOnUse"><stop
stop-color="#2a2c2f"
id="stop4858-5" /><stop
offset="1"
stop-color="#424649"
id="stop4860-2" /></linearGradient><linearGradient
id="b-63-5"
y1="532.79999"
y2="506.79999"
x2="0"
gradientUnits="userSpaceOnUse"><stop
stop-color="#989a9b"
id="stop4863-4" /><stop
offset="1"
stop-color="#f6f6f7"
id="stop4865-7" /></linearGradient><path
fill-rule="evenodd"
id="e-0-4"
d="m 426.57,529.8 -16,11 -8,-8 -2,-9 17,-5 z" /><style
id="style1">.cls-1{fill-rule:evenodd;}</style></defs><metadata
id="metadata5458" /><path
class="cls-1"
d="m 388.28983,541.22792 a 2.5732,2.5732 0 0 0 2.56978,2.57008 h 15.42364 a 2.5728889,2.5728889 0 0 0 2.56978,-2.57008 v -17.62103 a 0.65333333,0.65333333 0 0 0 -0.19351,-0.46386 l -7.14933,-7.15307 A 0.66111111,0.66111111 0 0 0 401.0457,515.798 h -10.18609 a 2.5735111,2.5735111 0 0 0 -2.56978,2.57072 z m 18.32102,-18.27809 h -3.514 a 1.5966222,1.5966222 0 0 1 -1.59444,-1.59538 v -3.51431 z m -14.42746,2.65937 a 0.65644444,0.65644444 0 0 1 -0.65552,-0.65644 v -5.05307 a 0.65644444,0.65644444 0 0 1 0.65552,-0.65613 h 5.05431 a 0.65613333,0.65613333 0 0 1 0.6552,0.65613 v 5.05307 a 0.65644444,0.65644444 0 0 1 -0.6552,0.65644 z m 0.65768,-5.05337 h 3.73925 v 3.7408 h -3.73925 z m -1.75186,8.66257 a 0.65706667,0.65706667 0 0 1 0.658,-0.65644 h 13.64844 a 0.656445,0.656445 0 1 1 0,1.31289 h -13.64844 a 0.65706667,0.65706667 0 0 1 -0.658,-0.65645 z m 0,3.54356 a 0.65675556,0.65675556 0 0 1 0.658,-0.65613 h 13.64844 a 0.65644444,0.65644444 0 1 1 0,1.31257 h -13.64844 a 0.65675556,0.65675556 0 0 1 -0.658,-0.65644 z m 0,3.54387 a 0.65675556,0.65675556 0 0 1 0.658,-0.65614 h 13.64844 a 0.65644444,0.65644444 0 1 1 0,1.31258 h -13.64844 a 0.65675556,0.65675556 0 0 1 -0.658,-0.65644 z m 0,3.54386 a 0.65675556,0.65675556 0 0 1 0.658,-0.65644 h 13.64844 a 0.65644444,0.65644444 0 1 1 0,1.31258 h -13.64844 a 0.65675556,0.65675556 0 0 1 -0.658,-0.65614 z"
id="path1"
style="fill:#09bec8;fill-opacity:1;stroke-width:0.311111"
transform="translate(-384.57143,-515.798)" /></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="64"
height="64"
viewBox="0 0 64 64"
version="1.1"
id="svg1"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
sodipodi:docname="info.svg"
inkscape:export-filename="download.png"
inkscape:export-xdpi="24"
inkscape:export-ydpi="24"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
inkscape:zoom="12.308078"
inkscape:cx="59.919999"
inkscape:cy="30.224054"
inkscape:window-width="2991"
inkscape:window-height="1194"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg1" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="matrix(0.13454107,0,0,0.13454107,-2.8135283,-2.3188431)">
<circle
style="fill:#46bac6;fill-opacity:1"
id="path1"
cx="258.75763"
cy="255.0808"
r="237.8456" />
</g>
<path
style="font-size:54.913px;line-height:0px;font-family:Circe;-inkscape-font-specification:Circe;text-align:center;text-anchor:middle;fill:#ffffff;fill-rule:evenodd;stroke:#46bac6;stroke-width:0"
d="m 29.226894,15.420605 c 0,-0.768782 0.274565,-1.391129 0.823695,-1.867042 0.54913,-0.512521 1.22639,-0.768782 2.031781,-0.768782 0.768782,0 1.409434,0.256261 1.921955,0.768782 0.512521,0.475913 0.768782,1.09826 0.768782,1.867042 0,0.841999 -0.256261,1.537564 -0.768782,2.086694 -0.512521,0.512521 -1.153173,0.768782 -1.921955,0.768782 -0.805391,0 -1.482651,-0.256261 -2.031781,-0.768782 -0.54913,-0.54913 -0.823695,-1.244695 -0.823695,-2.086694 z"
id="path2" />
<rect
style="fill:#ffffff;fill-rule:evenodd;stroke:#46bac6;stroke-width:0"
id="rect2"
width="4.5960503"
height="28.840216"
x="29.701975"
y="21"
rx="2"
ry="2" />
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="64"
height="64"
viewBox="0 0 64 64"
version="1.1"
id="svg1"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
sodipodi:docname="question.svg"
inkscape:export-filename="download.png"
inkscape:export-xdpi="24"
inkscape:export-ydpi="24"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
inkscape:zoom="12.308078"
inkscape:cx="35.545762"
inkscape:cy="25.511701"
inkscape:window-width="2991"
inkscape:window-height="1194"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg1" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="matrix(0.13454107,0,0,0.13454107,-2.8135283,-2.3188431)">
<circle
style="fill:#46bac6;fill-opacity:1"
id="path1"
cx="258.75763"
cy="255.0808"
r="237.8456" />
</g>
<path
style="font-size:54.913px;line-height:0px;font-family:Circe;-inkscape-font-specification:Circe;text-align:center;text-anchor:middle;fill:#ffffff;fill-rule:evenodd;stroke:#46bac6;stroke-width:0"
d="m 38.41412,22.856986 c 0,-1.683999 -0.640651,-3.111737 -1.921954,-4.283214 -1.244695,-1.171477 -2.837172,-1.757216 -4.777431,-1.757216 -3.148345,0 -5.710952,1.354521 -7.68782,4.063562 -1.490304,1.033702 -4.342975,-0.248439 -2.635824,-2.910389 1.025043,-1.683999 2.489389,-3.020215 4.39304,-4.008649 1.903651,-1.025043 3.97204,-1.537564 6.205169,-1.537564 3.404606,0 6.113647,0.915217 8.127123,2.74565 2.013477,1.793825 3.020215,4.045258 3.020215,6.754299 0,1.720607 -0.292869,3.239867 -0.878608,4.557779 -0.146435,0.366087 -0.311174,0.713869 -0.494217,1.043347 -0.183043,0.329478 -0.402695,0.658956 -0.658956,0.988434 -0.256261,0.292869 -0.475913,0.54913 -0.658956,0.768782 -0.146435,0.183043 -0.402695,0.439304 -0.768782,0.768781 -0.366087,0.292869 -0.622347,0.512521 -0.768782,0.658956 -0.109826,0.109826 -0.384391,0.347782 -0.823694,0.713869 -0.439304,0.329478 -0.713869,0.530826 -0.823695,0.604043 -0.219652,0.183043 -0.530826,0.439304 -0.933521,0.768782 -0.366087,0.292869 -0.658956,0.530826 -0.878608,0.713869 -0.183043,0.183043 -0.439304,0.421 -0.768782,0.713869 -0.329478,0.292869 -0.585739,0.54913 -0.768782,0.768782 -0.183043,0.219652 -0.384391,0.494217 -0.604043,0.823695 -0.219652,0.329478 -0.384391,0.640652 -0.494217,0.933521 -0.07322,0.292869 -0.164739,0.622347 -0.274565,0.988434 -0.07322,0.366087 -0.109826,0.768782 -0.109826,1.208086 0.03661,0.402695 0.09152,0.841999 0.164739,1.317912 -0.401705,1.990093 -3.482544,1.777267 -3.953736,0.05491 -0.658956,-3.477823 0.201348,-6.205169 2.580911,-8.182037 0.366087,-0.292869 0.97013,-0.750478 1.812129,-1.372825 0.878608,-0.658955 1.555868,-1.189781 2.031781,-1.592476 0.475913,-0.439304 1.006738,-0.988434 1.592477,-1.64739 0.622347,-0.658956 1.061651,-1.372825 1.317912,-2.141607 0.292869,-0.768782 0.439303,-1.610781 0.439303,-2.525998 z M 27.541347,48.446443 c 0,-0.805391 0.292869,-1.482651 0.878608,-2.031781 0.585739,-0.585739 1.354521,-0.878608 2.306346,-0.878608 0.768782,0 1.446042,0.292869 2.031781,0.878608 0.585739,0.585739 0.878608,1.262999 0.878608,2.031781 0,0.878608 -0.274565,1.629086 -0.823695,2.251433 -0.54913,0.585739 -1.244695,0.878608 -2.086694,0.878608 -0.951825,0 -1.720607,-0.292869 -2.306346,-0.878608 -0.585739,-0.622347 -0.878608,-1.372825 -0.878608,-2.251433 z"
id="text1"
aria-label="?"
sodipodi:nodetypes="scscccscscscccsccccsssccccccccccssscssscscs" />
</svg>
......@@ -23,9 +23,9 @@
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="22.627417"
inkscape:cx="15.512155"
inkscape:cy="13.390835"
inkscape:zoom="16"
inkscape:cx="-9.09375"
inkscape:cy="7.25"
inkscape:window-width="2991"
inkscape:window-height="1194"
inkscape:window-x="0"
......@@ -591,12 +591,7 @@
inkscape:label="Capa 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-384.57143,-515.798)"><circle
style="opacity:1;fill:#09bec8;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0"
id="path1"
cx="398.57144"
cy="529.79797"
r="14" /><path
transform="translate(-384.57143,-515.798)"><path
id="rect11"
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.337561"
d="m 390.91518,522.15542 c -1.17836,0 -2.12695,1.02085 -2.12695,2.29102 v 3.53125 c 0,-1.39758 0.85081,-1.98047 2.12695,-1.98047 h 3.4043 c 4.67925,-0.46574 3.86782,-2.29688 6.8457,-2.29688 h 5.00977 c 1.17828,0 2.18164,0.49449 2.18164,1.78516 v -1.03906 c 0,-1.27017 -0.9486,-2.29102 -2.12696,-2.29102 z m 10.24805,2.1543 c -2.97788,0 -2.16643,1.83309 -6.84571,2.29883 h -3.40429 c -1.27614,0 -2.12696,0.5829 -2.12696,1.98046 v 6.52149 c 0,1.29066 0.94866,2.33008 2.12696,2.33008 h 15.31445 c 1.1783,0 2.12695,-1.03977 2.12695,-2.33008 v -0.52735 c 2.9e-4,-0.0157 0.002,-0.0311 0.002,-0.0469 v -0.0352 c 0,0.0159 -0.002,0.0311 -0.002,0.0469 v -8.45313 c 0,-1.29067 -1.00334,-1.78515 -2.18164,-1.78515 z m -6.08008,2.87304 h 0.69726 5.58204 0.002 0.69531 v 2.44336 c 0,1.80869 -1.3761,3.2955 -3.13867,3.47071 v 2.45898 h 1.74414 c 0.38651,0 0.69727,0.31076 0.69727,0.69727 h -5.58204 c 0,-0.38651 0.31076,-0.69727 0.69727,-0.69727 h 1.74414 v -2.45898 c -1.76257,-0.17521 -3.13867,-1.66202 -3.13867,-3.47071 z m 0.69726,2.47461 c 0.002,0.17292 0.0214,0.34158 0.0527,0.50586 l 0.54101,-0.043 0.0371,-0.46289 z m 0.7129,0 0.0371,0.46289 0.96485,0.0781 -0.96485,0.0801 -0.0781,0.96289 -0.0781,-0.96289 -0.52734,-0.043 c 0.27399,1.25618 1.37505,2.20312 2.71289,2.20312 1.54008,0 2.79116,-1.2439 2.80274,-2.78125 z m 0.58984,0.72657 0.041,0.55078 0.55079,0.041 -0.55079,0.043 -0.041,0.55078 -0.041,-0.55078 -0.55078,-0.043 0.55078,-0.041 z" /></g></svg>
style="fill:#09bec8;fill-opacity:1;stroke:none;stroke-width:0.482957"
d="m 387.61736,518.86358 c -1.68592,0 -3.04309,1.46055 -3.04309,3.27782 v 5.05224 c 0,-1.99954 1.21728,-2.83351 3.04309,-2.83351 h 4.87061 c 6.69472,-0.66634 5.53378,-3.2862 9.79431,-3.2862 h 7.16761 c 1.68578,0 3.12131,0.70749 3.12131,2.55408 v -1.48662 c 0,-1.81727 -1.35718,-3.27782 -3.04309,-3.27782 z m 14.66213,3.08221 c -4.26052,0 -3.09956,2.62265 -9.79432,3.289 h -4.87061 c -1.8258,0 -3.04309,0.83396 -3.04309,2.83348 v 9.33046 c 0,1.84658 1.35727,3.3337 3.04309,3.3337 h 21.91076 c 1.68583,0 3.04307,-1.48762 3.04307,-3.3337 v -0.75449 c 4.3e-4,-0.0225 0.003,-0.0445 0.003,-0.0671 v -0.0504 c 0,0.0227 -0.003,0.0445 -0.003,0.0671 v -12.0941 c 0,-1.84659 -1.43549,-2.55406 -3.12133,-2.55406 z m -8.69892,4.11053 h 0.99759 7.98636 0.003 0.99479 v 3.49577 c 0,2.58774 -1.96882,4.71496 -4.49057,4.96564 v 3.51811 h 2.49538 c 0.553,0 0.9976,0.44462 0.9976,0.9976 h -7.98636 c 0,-0.55298 0.44462,-0.9976 0.9976,-0.9976 h 2.49539 v -3.51811 c -2.52175,-0.25068 -4.49058,-2.3779 -4.49058,-4.96564 z m 0.99759,3.54049 c 0.003,0.24739 0.0306,0.4887 0.0754,0.72374 l 0.77403,-0.0616 0.0531,-0.66227 z m 1.01996,0 0.0531,0.66226 1.38044,0.11174 -1.38044,0.1146 -0.11174,1.37764 -0.11174,-1.37764 -0.75447,-0.0615 c 0.392,1.79724 1.96732,3.15205 3.8814,3.15205 2.20342,0 3.99337,-1.77967 4.00994,-3.9792 z m 0.8439,1.03952 0.0587,0.78801 0.78802,0.0587 -0.78802,0.0616 -0.0587,0.78802 -0.0587,-0.78802 -0.78801,-0.0616 0.78801,-0.0587 z" /></g></svg>
......@@ -23,15 +23,15 @@
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="16"
inkscape:cx="7.5"
inkscape:cy="8.5"
inkscape:zoom="22.627417"
inkscape:cx="20.351417"
inkscape:cy="8.7504464"
inkscape:window-width="2991"
inkscape:window-height="1194"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" /><defs
inkscape:current-layer="g4" /><defs
id="defs5455"><linearGradient
id="linearGradient4256"><stop
style="stop-color:#8cbdf8"
......@@ -850,17 +850,13 @@
inkscape:label="Capa 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-384.57143,-515.798)"><circle
style="opacity:1;fill:#09bec8;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0"
id="path1"
cx="398.57144"
cy="529.79797"
r="14" /><g
transform="translate(-384.57143,-515.798)"><g
id="g4"
transform="translate(-0.1974492,1.22754)"><path
transform="matrix(1.5570763,0,0,1.5570763,-223.35362,-293.22654)"
style="fill:#09bec8;fill-opacity:1"><path
id="rect4364"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.07519;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 392.60073,522.03433 v 4.18359 c 0,3.09604 2.35596,5.6415 5.37304,5.94141 v 4.20898 h -2.98632 c -0.66161,0 -1.19336,0.53175 -1.19336,1.19336 h 9.55468 c 0,-0.66161 -0.53175,-1.19336 -1.19336,-1.19336 h -2.98632 v -4.20898 c 2.65921,-0.26434 4.80387,-2.2746 5.27539,-4.86719 -0.019,0.006 -0.0376,0.012 -0.0566,0.0176 -0.0884,0.0258 -0.18291,0.008 -0.25391,-0.0508 l -0.40039,-0.33008 c -0.14585,0.0187 -0.29271,0.0277 -0.43945,0.0273 -0.34833,2.30652 -2.33891,4.07618 -4.74219,4.07618 -2.29007,0 -4.17552,-1.6212 -4.64453,-3.77149 l 0.90234,0.0723 0.13477,1.64843 0.13281,-1.64843 1.65234,-0.13672 -1.65234,-0.13281 -0.0625,-0.79297 h 5.92969 l 0.004,-0.26758 c -0.2074,-0.201 -0.38726,-0.42891 -0.53711,-0.67578 l -0.50781,-0.10742 c -0.0901,-0.0189 -0.16422,-0.0809 -0.19922,-0.16602 -0.1643,-0.39935 -0.26191,-0.82286 -0.28711,-1.25391 -0.005,-0.0919 0.0346,-0.18014 0.10743,-0.23632 l 0.4121,-0.31641 c 0.0279,-0.2876 0.0917,-0.57073 0.19141,-0.8418 l -0.18555,-0.37109 h -6.14843 z m 1.19336,4.23633 h 1.08007 l -0.0645,0.79297 -0.92578,0.0723 c -0.0537,-0.28121 -0.0865,-0.56922 -0.0898,-0.86523 z m 2.23047,1.24414 -0.0703,0.94336 -0.94336,0.0703 0.94336,0.0723 0.0703,0.94336 0.0703,-0.94336 0.9414,-0.0723 -0.9414,-0.0703 z" /><path
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#09bec8;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.07519;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 393.49661,522.03433 v 4.18359 c 0,3.09604 2.35596,5.6415 5.37304,5.94141 v 4.20898 h -2.98632 c -0.66161,0 -1.19336,0.53175 -1.19336,1.19336 h 9.55468 c 0,-0.66161 -0.53175,-1.19336 -1.19336,-1.19336 h -2.98632 v -4.20898 c 2.65921,-0.26434 4.80387,-2.2746 5.27539,-4.86719 -0.019,0.006 -0.0376,0.012 -0.0566,0.0176 -0.0884,0.0258 -0.18291,0.008 -0.25391,-0.0508 l -0.40039,-0.33008 c -0.14585,0.0187 -0.29271,0.0277 -0.43945,0.0273 -0.34833,2.30652 -2.33891,4.07618 -4.74219,4.07618 -2.29007,0 -4.17552,-1.6212 -4.64453,-3.77149 l 0.90234,0.0723 0.13477,1.64843 0.13281,-1.64843 1.65234,-0.13672 -1.65234,-0.13281 -0.0625,-0.79297 h 5.92969 l 0.004,-0.26758 c -0.2074,-0.201 -0.38726,-0.42891 -0.53711,-0.67578 l -0.50781,-0.10742 c -0.0901,-0.0189 -0.16422,-0.0809 -0.19922,-0.16602 -0.1643,-0.39935 -0.26191,-0.82286 -0.28711,-1.25391 -0.005,-0.0919 0.0346,-0.18014 0.10743,-0.23632 l 0.4121,-0.31641 c 0.0279,-0.2876 0.0917,-0.57073 0.19141,-0.8418 l -0.18555,-0.37109 h -6.14843 z m 1.19336,4.23633 h 1.08007 l -0.0645,0.79297 -0.92578,0.0723 c -0.0537,-0.28121 -0.0865,-0.56922 -0.0898,-0.86523 z m 2.23047,1.24414 -0.0703,0.94336 -0.94336,0.0703 0.94336,0.0723 0.0703,0.94336 0.0703,-0.94336 0.9414,-0.0723 -0.9414,-0.0703 z" /><path
id="path1-9-6"
style="fill:#ffffff;stroke-width:0.139005"
d="m 403.61335,519.57925 c -0.21517,0 -0.43035,0.0178 -0.6433,0.0535 -0.0908,0.0153 -0.16807,0.0744 -0.20657,0.15792 l -0.21698,0.4708 c -0.27413,0.091 -0.53546,0.21699 -0.77761,0.37448 1.5e-4,0 -0.50335,-0.124 -0.50335,-0.124 -0.0894,-0.022 -0.18373,0.002 -0.25227,0.0631 -0.32124,0.28844 -0.59244,0.62843 -0.8022,1.00596 -0.0446,0.0804 -0.0467,0.17764 -0.005,0.25994 l 0.23281,0.46316 c -0.0997,0.27107 -0.16413,0.55381 -0.19207,0.84141 l -0.41078,0.31625 c -0.0728,0.0562 -0.11329,0.1447 -0.10787,0.23659 0.0252,0.43105 0.12192,0.85499 0.28622,1.25434 0.035,0.0851 0.1098,0.14738 0.19988,0.16628 l 0.50737,0.10675 c 0.14985,0.24687 0.33071,0.47373 0.53811,0.67473 l -0.009,0.51833 c -0.001,0.092 0.0426,0.17877 0.1176,0.23187 0.3528,0.2491 0.74468,0.43775 1.15933,0.55826 0.0884,0.0257 0.18362,0.006 0.25465,-0.0525 l 0.39979,-0.3301 c 0.28634,0.0368 0.57643,0.0368 0.86292,0 l 0.39979,0.3301 c 0.071,0.0585 0.16624,0.0783 0.25465,0.0525 0.41465,-0.12051 0.8065,-0.30916 1.15929,-0.55826 0.0751,-0.0531 0.11916,-0.13985 0.11763,-0.23187 l -0.009,-0.51833 c 0.20739,-0.201 0.38825,-0.42772 0.5381,-0.67473 l 0.50737,-0.10675 c 0.0901,-0.0189 0.16485,-0.0812 0.19988,-0.16628 0.1643,-0.39935 0.26105,-0.82329 0.28621,-1.25434 0.006,-0.0919 -0.035,-0.18043 -0.10786,-0.23659 l -0.41078,-0.31625 c -0.0278,-0.28746 -0.0924,-0.57034 -0.19211,-0.84141 l 0.23285,-0.46316 c 0.0414,-0.0823 0.0394,-0.17959 -0.005,-0.25994 -0.20976,-0.37753 -0.48096,-0.71752 -0.8022,-1.00596 -0.0685,-0.0614 -0.16289,-0.0851 -0.25227,-0.0631 l -0.50349,0.124 c -0.242,-0.15749 -0.50334,-0.2833 -0.77745,-0.37448 l -0.217,-0.4708 c -0.0385,-0.0835 -0.11579,-0.14263 -0.20655,-0.15792 -0.21296,-0.0357 -0.42813,-0.0535 -0.64332,-0.0535 z m 0,2.25755 a 1.5628182,1.5628182 0 0 1 1.56283,1.56283 1.5628182,1.5628182 0 0 1 -1.56283,1.56282 1.5628182,1.5628182 0 0 1 -1.56282,-1.56282 1.5628182,1.5628182 0 0 1 1.56282,-1.56283 z" /></g></g></svg>
style="fill:#09bec8;fill-opacity:1;stroke-width:0.121745"
d="m 404.27342,520.20973 c -0.18845,0 -0.37691,0.0156 -0.56342,0.0469 -0.0795,0.0134 -0.1472,0.0652 -0.18092,0.13831 l -0.19004,0.41234 c -0.24009,0.0797 -0.46897,0.19005 -0.68106,0.32798 1.4e-4,0 -0.44085,-0.1086 -0.44085,-0.1086 -0.0783,-0.0193 -0.16091,0.002 -0.22094,0.0553 -0.28135,0.25263 -0.51888,0.5504 -0.70259,0.88106 -0.0391,0.0704 -0.0409,0.15558 -0.004,0.22766 l 0.2039,0.40565 c -0.0873,0.23741 -0.14375,0.48504 -0.16822,0.73693 l -0.35978,0.27699 c -0.0638,0.0492 -0.0992,0.12673 -0.0945,0.20721 0.0221,0.37753 0.10678,0.74883 0.25068,1.09859 0.0307,0.0745 0.0962,0.12908 0.17506,0.14563 l 0.44437,0.0935 c 0.13124,0.21621 0.28965,0.41491 0.47129,0.59095 l -0.008,0.45397 c -8.7e-4,0.0806 0.0373,0.15657 0.103,0.20308 0.30899,0.21817 0.65221,0.38339 1.01538,0.48894 0.0774,0.0225 0.16082,0.005 0.22303,-0.046 l 0.35015,-0.28911 c 0.25078,0.0322 0.50485,0.0322 0.75577,0 l 0.35015,0.28911 c 0.0622,0.0512 0.1456,0.0686 0.22303,0.046 0.36316,-0.10555 0.70636,-0.27077 1.01534,-0.48894 0.0658,-0.0465 0.10437,-0.12249 0.10303,-0.20308 l -0.008,-0.45397 c 0.18163,-0.17604 0.34004,-0.37461 0.47128,-0.59095 l 0.44437,-0.0935 c 0.0789,-0.0165 0.14438,-0.0711 0.17506,-0.14563 0.1439,-0.34976 0.22864,-0.72106 0.25067,-1.09859 0.005,-0.0805 -0.0306,-0.15803 -0.0945,-0.20721 l -0.35978,-0.27699 c -0.0243,-0.25176 -0.0809,-0.49952 -0.16825,-0.73693 l 0.20393,-0.40565 c 0.0363,-0.0721 0.0345,-0.15729 -0.004,-0.22766 -0.18372,-0.33066 -0.42125,-0.62843 -0.7026,-0.88106 -0.06,-0.0538 -0.14266,-0.0745 -0.22094,-0.0553 l -0.44098,0.1086 c -0.21195,-0.13793 -0.44084,-0.24812 -0.68091,-0.32798 l -0.19006,-0.41234 c -0.0337,-0.0731 -0.10141,-0.12492 -0.1809,-0.13831 -0.18652,-0.0313 -0.37497,-0.0469 -0.56344,-0.0469 z m 0,1.97723 a 1.3687662,1.3687662 0 0 1 1.36878,1.36878 1.3687662,1.3687662 0 0 1 -1.36878,1.36877 1.3687662,1.3687662 0 0 1 -1.36877,-1.36877 1.3687662,1.3687662 0 0 1 1.36877,-1.36878 z" /></g></g></svg>
#!/usr/bin/env bash
# Author: Castro-Fidel (linux-gaming.ru)
########################################################################
pw_ping_test () {
ping -w3 -c1 github.com &> /dev/null
ping_test () {
ping -w3 -c1 $@ &> /dev/null
[ "$?" == "0" ] && return 0 || return 1
}
......@@ -87,10 +87,10 @@ try_force_link_file () {
export -f try_force_link_file
check_symlink () {
CHK_SYMLINK_FILE="`file "$1"`"
if [[ ! -z "`echo "$CHK_SYMLINK_FILE" | grep -v "broken" | grep "symbolic link to" | awk '{print $1}'`" ]] ; then
CHK_SYMLINK_FILE="$(file "$1")"
if [[ ! -z "$(echo "$CHK_SYMLINK_FILE" | grep -v "broken" | grep "symbolic link to" | awk '{print $1}')" ]] ; then
return 0
elif [[ ! -z "`echo "$CHK_SYMLINK_FILE" | grep "broken symbolic link to" | awk '{print $1}'`" ]] ; then
elif [[ ! -z "$(echo "$CHK_SYMLINK_FILE" | grep "broken symbolic link to" | awk '{print $1}')" ]] ; then
print_error "remove broken symlink: $CHK_SYMLINK_FILE"
rm -fr "$CHK_SYMLINK_FILE"
return 1
......@@ -112,7 +112,7 @@ try_force_link_dir () {
export -f try_force_link_dir
check_process () {
[ ! -n "`ps cax | grep "$1" | awk '{print $1}'`" ] && return 0 || return 1
[ ! -n "$(ps cax | grep "$1" | awk '{print $1}')" ] && return 0 || return 1
}
export -f check_process
......@@ -124,7 +124,7 @@ try_download () {
local silent="false"
local no_mirror="false"
case "$3" in
silent)
silent)
silent=true ;;
no_mirror)
no_mirror=true
......@@ -203,7 +203,7 @@ var_radv_perftest_config_update () {
return 0
}
var_vk_istance_layers_config_update () {
var_pw_vk_istance_layers_config_update () {
if [ ! -z "$PW_VK_INSTANCE_LAYERS" ]
then export PW_VK_INSTANCE_LAYERS="$1:$PW_VK_INSTANCE_LAYERS"
else export PW_VK_INSTANCE_LAYERS="$1"
......@@ -212,7 +212,9 @@ var_vk_istance_layers_config_update () {
}
var_ld_library_path_update () {
if [ ! -z "$LD_LIBRARY_PATH" ]
if echo "$LD_LIBRARY_PATH" | grep "$1"
then return 0
elif [[ ! -z "$LD_LIBRARY_PATH" ]]
then export LD_LIBRARY_PATH="$1:$LD_LIBRARY_PATH"
else export LD_LIBRARY_PATH="$1"
fi
......@@ -240,10 +242,6 @@ check_gamescope_session () {
then [[ "$GAMESCOPE_IN_USE" == 1 ]] && return 0 || return 1
fi
if echo "${DESKTOP_SESSION}" | grep -i "gamescope" &>/dev/null ; then
if command -v konsole &>/dev/null
then export PW_TERM="konsole --hide-menubar --fullscreen -e"
else export PW_TERM="xdg-terminal"
fi
export GAMESCOPE_IN_USE=1
return 0
else
......@@ -264,6 +262,7 @@ check_flatpak () {
return 1
fi
}
export -f check_flatpak
unpack () {
case $1 in
......@@ -380,19 +379,11 @@ init_wine_ver () {
if [[ "${PW_WINE_USE}" == "USE_SYSTEM_WINE" ]] \
&& command -v wine &>/dev/null ; then
if ! check_flatpak ; then
export WINEDIR="$RT_PREFIX/usr"
export WINE="$RT_PREFIX$(command -v wine)"
export WINELOADER="$WINE"
export WINESERVER="$RT_PREFIX$(command -v wineserver)"
export PW_NO_FSYNC=1
else
export WINEDIR="$RT_PREFIX/app"
export WINE="$RT_PREFIX/app/bin/wine"
export WINELOADER="$WINE"
export WINESERVER="$RT_PREFIX/app/bin/wineserver"
export PW_NO_FSYNC=1
fi
export WINEDIR="$RT_PREFIX/usr"
export WINE="$RT_PREFIX$(command -v wine)"
export WINELOADER="$WINE"
export WINESERVER="$RT_PREFIX$(command -v wineserver)"
export PW_NO_FSYNC=1
unset WINEDLLPATH
else
if [[ -d "${PORT_WINE_PATH}/data/dist" ]] ; then
......@@ -406,7 +397,7 @@ init_wine_ver () {
done
IFS="$orig_IFS"
fi
if ls "${PORT_WINE_PATH}/data/dist/" | grep "${PW_WINE_USE}" ; then
if [[ -z $(ls "${PORT_WINE_PATH}/data/dist/" | grep "${PW_WINE_USE}") ]] ; then
if [[ "$PW_WINE_USE" =~ PROTON_LG* ]]
then export PW_WINE_USE=PROTON_LG
else export PW_WINE_USE=WINE_LG
......@@ -486,9 +477,12 @@ init_wine_ver () {
fi
fi
export WINE_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib"
if [[ "${PW_USE_GSTREAMER}" == 1 ]] ; then
if [[ -d "${WINEDIR}/lib64/gstreamer-1.0" ]] ; then
if [[ "${PW_USE_GSTREAMER}" == "1" ]] ; then
if [[ -d "${WINEDIR}/lib64/gstreamer-1.0" ]] \
&& ! check_flatpak
then
export GST_PLUGIN_SYSTEM_PATH_1_0="${WINEDIR}/lib64/gstreamer-1.0:${WINEDIR}/lib/gstreamer-1.0"
fi
create_new_dir "${PORT_WINE_TMP_PATH}"/gstreamer_tmp/
......@@ -498,17 +492,37 @@ init_wine_ver () {
export MEDIACONV_VIDEO_DUMP_FILE="${PORT_WINE_TMP_PATH}"/gstreamer_tmp/video.foz
export MEDIACONV_VIDEO_TRANSCODED_FILE="${PORT_WINE_TMP_PATH}"/gstreamer_tmp/transcoded_video.foz
else
# var_winedlloverride_update "winegstreamer="
echo
var_winedlloverride_update "winegstreamer="
fi
return 0
}
pw_init_runtime () {
if [[ "$PW_USE_RUNTIME" != 1 ]] \
if [ ! -z ${PATH_TMP} ]
then export PATH="${PATH_TMP}"
else export PATH_TMP="${PATH}"
fi
if [ ! -z "${PATH}" ]
then export PATH="${PATH}:${PW_PLUGINS_PATH}/portable/bin"
else export PATH="${PW_PLUGINS_PATH}/portable/bin"
fi
check_flatpak && export PW_USE_RUNTIME="0"
if [[ "$PW_USE_RUNTIME" != "1" ]] \
|| [[ "$PW_WINE_USE" == "USE_SYSTEM_WINE" ]]
then
export PW_LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${PW_PLUGINS_PATH}/portable/lib/lib64:${PW_PLUGINS_PATH}/portable/lib/lib32"
export PW_VK_LAYER_PATH="${PW_PLUGINS_PATH}/portable/share/vulkan/implicit_layer.d"
if check_flatpak \
&& check_gamescope_session
then PW_TERM="xterm -fullscreen -bg black -fg white -e"
elif check_flatpak
then PW_TERM="xterm -bg black -fg white -e"
else PW_TERM="env LD_LIBRARY_PATH=\"${PW_LD_LIBRARY_PATH}\" ${PW_PLUGINS_PATH}/portable/bin/xterm -bg black -fg white -e"
fi
export PW_TERM
export pw_runtime=""
return 0
fi
......@@ -522,7 +536,6 @@ pw_init_runtime () {
PW_PV_OVERRIDES="/usr/lib/pressure-vessel/overrides/lib"
export PW_LD_LIBRARY_PATH="\
${WINEDIR}/lib64:${WINEDIR}/lib:\
${PW_PLUGINS_PATH}/portable/lib/lib64:\
${PW_PLUGINS_PATH}/portable/lib/lib32:\
${PW_PV_OVERRIDES}/x86_64-linux-gnu/aliases:\
......@@ -530,15 +543,6 @@ ${PW_PV_OVERRIDES}/i386-linux-gnu/aliases:\
/overrides/lib/x86_64-linux-gnu:\
/overrides/lib/i386-linux-gnu"
if [ ! -z ${PATH_TMP} ]
then export PATH="${PATH_TMP}"
else export PATH_TMP="${PATH}"
fi
if [ ! -z "${PATH}" ]
then export PATH="${WINEDIR}/bin:${PATH}:${PW_PLUGINS_PATH}/portable/bin"
else export PATH="${WINEDIR}/bin:${PW_PLUGINS_PATH}/portable/bin"
fi
if [[ ! -z "${PW_SANDBOX_HOME_PATH}" && -d "${PW_SANDBOX_HOME_PATH}" ]] ; then
export pw_runtime="${PW_WINELIB}/pressure-vessel/bin/pressure-vessel-unruntime \
--unshare-home \
......@@ -587,6 +591,8 @@ ${PW_PV_OVERRIDES}/i386-linux-gnu/aliases:\
fi
done
export PW_TERM="env LD_LIBRARY_PATH=\"${PW_LD_LIBRARY_PATH}\" ${PW_PLUGINS_PATH}/portable/bin/xterm -bg black -fg white -e"
print_info "RUNTIME is enabled"
}
......@@ -603,7 +609,7 @@ pw_mangohud_check () {
then export PW_LD_PRELOAD="${PW_LD_PRELOAD}:${MANGOHUD_LIB_NAME}"
else export PW_LD_PRELOAD="${MANGOHUD_LIB_NAME}"
fi
var_vk_istance_layers_config_update "VK_LAYER_MANGOHUD_overlay64:VK_LAYER_MANGOHUD_overlay32"
var_pw_vk_istance_layers_config_update "VK_LAYER_MANGOHUD_overlay64:VK_LAYER_MANGOHUD_overlay32"
print_info "Portable MANGOHUD is enabled"
else
export PW_MANGOHUD_SLR=""
......@@ -622,7 +628,7 @@ pw_vkbasalt_check () {
sed -ri "s/effects = .*/effects = ${PW_VKBASALT_EFFECTS}/g" "${VKBASALT_CONFIG_FILE}"
sed -ri "s/casSharpness .*/casSharpness = ${PW_VKBASALT_FFX_CAS}/g" "${VKBASALT_CONFIG_FILE}"
fi
var_vk_istance_layers_config_update "VK_LAYER_VKBASALT_post_processing64:VK_LAYER_VKBASALT_post_processing32"
var_pw_vk_istance_layers_config_update "VK_LAYER_VKBASALT_post_processing64:VK_LAYER_VKBASALT_post_processing32"
print_info "vkBasalt is enabled"
else
export DISABLE_VKBASALT=1
......@@ -632,9 +638,9 @@ pw_vkbasalt_check () {
}
regdlloverrides () {
PW_DLL_EXE=`echo $@ | awk -F: '{print $1}'`
PW_DLL_LIB=`echo $@ | awk -F: '{print $2}' | awk -F= '{print $1}'`
PW_DLL_SET=`echo $@ | awk -F= '{print $NF}'`
PW_DLL_EXE=$(echo $@ | awk -F: '{print $1}')
PW_DLL_LIB=$(echo $@ | awk -F: '{print $2}' | awk -F= '{print $1}')
PW_DLL_SET=$(echo $@ | awk -F= '{print $NF}')
case "${PW_DLL_SET}" in
"n,b") PW_DLL_IN_REG="native,builtin" ;;
"b,n") PW_DLL_IN_REG="builtin,native" ;;
......@@ -654,7 +660,7 @@ regdlloverrides () {
}
wait_wineserver () {
while [ ! -z "$(ls -l /proc/*/exe 2>/dev/null | grep -ie ${portname} | grep -E 'wine(64)?-preloader|wineserver' | awk -F/ '{print $3}')" ] ; do
while [ ! -z "$(ls -l /proc/*/exe 2>/dev/null | grep -ie PortProton | grep -E 'wine(64)?-preloader|wineserver' | awk -F/ '{print $3}')" ] ; do
sleep 1
done
"$WINESERVER" -w
......@@ -664,21 +670,21 @@ export -f wait_wineserver
kill_portwine () {
if [[ "${PW_WINE_USE}" != "USE_SYSTEM_WINE" ]] ; then
wine_pids="`ls -l /proc/*/exe 2>/dev/null | grep -ie ${portname} | grep -E 'wine(64)?-preloader|wineserver' | awk -F/ '{print $3}'`"
wine_pids="$(ls -l /proc/*/exe 2>/dev/null | grep -ie PortProton | grep -E 'wine(64)?-preloader|wineserver' | awk -F/ '{print $3}')"
for pw_kill_pids in ${wine_pids} ; do
if ps cax | grep ${pw_kill_pids} ; then
kill -n 9 ${pw_kill_pids} &>/dev/null
fi
done
bwrap_pids="`pgrep -a wrap | grep ${portname} | head -n 1 | awk '{print $1}'`"
bwrap_pids="$(pgrep -a wrap | grep PortProton | head -n 1 | awk '{print $1}')"
for pw_kill_pids in ${bwrap_pids} ; do
if ps cax | grep ${pw_kill_pids} ; then
kill -n 9 ${pw_kill_pids} &>/dev/null
fi
done
else
wine_pids="`ls -l /proc/*/exe 2>/dev/null | grep -E 'wine(64)?-preloader|wineserver' | awk -F/ '{print $3}'`"
wine_pids="$(ls -l /proc/*/exe 2>/dev/null | grep -E 'wine(64)?-preloader|wineserver' | awk -F/ '{print $3}')"
for pw_kill_pids in ${wine_pids} ; do
if ps cax | grep ${pw_kill_pids} ; then
kill -n 9 ${pw_kill_pids} &>/dev/null
......@@ -696,22 +702,22 @@ pw_kill_autostart () {
fi
sleep 5
while true ; do
if [[ -z "`ps aux | grep -m 1 -i "$1" | grep -v grep | awk '{print $2}'`" ]] \
&& [[ ! -z "`ps aux | grep wrap | grep -v grep | grep -i ${portname} | head -n 1`" ]]
if [[ -z "$(ps aux | grep -m 1 -i "$1" | grep -v grep | awk '{print $2}')" ]] \
&& [[ ! -z "$(ps aux | grep wrap | grep -v grep | grep -i "PortProton" | head -n 1)" ]]
then
echo -e "PID "$1" not found"
sleep "${SWAIT}"
else
sleep "${SWAIT}"
if [[ "$3" == please ]]
then kill -s SIGTERM `ps aux | grep -m 1 -i "$1" | grep -v grep | awk '{print $2}'`
then kill -s SIGTERM $(ps aux | grep -m 1 -i "$1" | grep -v grep | awk '{print $2}')
else kill_portwine
fi
break
fi
done
if [[ ! -z "`ls "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/drive_c/ | grep -m 1 ".tmp"`" ]] ; then
if [[ ! -z "$(ls "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/drive_c/ | grep -m 1 ".tmp")" ]] ; then
rm -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/drive_c/*.tmp
fi
......@@ -758,10 +764,10 @@ stop_portwine () {
try_remove_dir "${PW_WINELIB}/var"
find "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/" -maxdepth 1 -type f -name "*.tmp" -delete
if [[ ! -z "$(pgrep -a yad_v13_0 | grep "\--notification" | awk '{print $1}')" ]] ; then
kill -s SIGUSR1 "`pgrep -a yad_v13_0 | grep "\--notification" | awk '{print $1}'`" 2>/dev/null
kill -s SIGUSR1 "$(pgrep -a yad_v13_0 | grep "\--notification" | awk '{print $1}')" 2>/dev/null
fi
add_in_stop_portwine #&>/dev/null
kill -n 9 `pgrep -a start.sh | grep -i '/PortProton/' | awk '{print $1}'` > /dev/null 2>&1
kill -n 9 $(pgrep -a start.sh | grep -i '/PortProton/' | awk '{print $1}') &>/dev/null
killall yad_v13_0 &>/dev/null
exit 0
}
......@@ -776,8 +782,8 @@ pw_download_libs () {
"${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}.tar.xz" ; then
if unpack "${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}.tar.xz" "${PORT_WINE_TMP_PATH}/" ; then
try_remove_file "${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}.tar.xz"
if [ ! -z "`ls ${PORT_WINE_TMP_PATH} | grep libs_v | grep -v libs${PW_LIBS_VER}`" ] ; then
for RM_LIBS in `ls ${PORT_WINE_TMP_PATH} | grep libs_v | grep -v libs${PW_LIBS_VER}`
if [ ! -z "$(ls ${PORT_WINE_TMP_PATH} | grep libs_v | grep -v libs${PW_LIBS_VER})" ] ; then
for RM_LIBS in $(ls ${PORT_WINE_TMP_PATH} | grep libs_v | grep -v libs${PW_LIBS_VER})
do try_remove_dir "${PORT_WINE_TMP_PATH}/${RM_LIBS}"
done
fi
......@@ -805,7 +811,7 @@ pw_download_libs () {
}
pw_check_and_download_wine () {
[ ! -d "${PORT_WINE_PATH}/data/dist/" ] && create_new_dir "${PORT_WINE_PATH}/data/dist"
[[ ! -d "${PORT_WINE_PATH}/data/dist/" ]] && create_new_dir "${PORT_WINE_PATH}/data/dist"
if [[ "${PW_WINE_USE}" == "GET-OTHER-WINE" ]] ; then
gui_proton_downloader
fi
......@@ -928,8 +934,8 @@ pw_check_and_download_plugins () {
try_remove_file "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz"
# TODO: drop clear prefix, and add update prefix from new plugins
pw_clear_pfx
if [ ! -z "`ls ${PORT_WINE_TMP_PATH} | grep plugins_v | grep -v plugins${PW_PLUGINS_VER}`" ] ; then
for RM_PLUGINS in `ls ${PORT_WINE_TMP_PATH} | grep plugins_v | grep -v plugins${PW_PLUGINS_VER}`
if [ ! -z "$(ls ${PORT_WINE_TMP_PATH} | grep plugins_v | grep -v plugins${PW_PLUGINS_VER})" ] ; then
for RM_PLUGINS in $(ls ${PORT_WINE_TMP_PATH} | grep plugins_v | grep -v plugins${PW_PLUGINS_VER})
do try_remove_dir "${PORT_WINE_TMP_PATH}/${RM_PLUGINS}"
done
fi
......@@ -954,14 +960,14 @@ pw_check_and_download_plugins () {
else
PW_NOTIFY_TEXT="Please wait for update PortProton"
pw_notify_send -u normal
if try_download "github.com/Castro-Fidel/wine_builds/releases/download/plugins${PW_PLUGINS_VER}/plugins${PW_PLUGINS_VER}.tar.xz" silent \
"${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz" ; then
if try_download "github.com/Castro-Fidel/wine_builds/releases/download/plugins${PW_PLUGINS_VER}/plugins${PW_PLUGINS_VER}.tar.xz" \
"${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz" silent ; then
if unpack "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz" "${PORT_WINE_TMP_PATH}" ; then
try_remove_file "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz"
# TODO: drop clear prefix, and add update prefix from new plugins
pw_clear_pfx
if [ ! -z "`ls ${PORT_WINE_TMP_PATH} | grep plugins_v | grep -v plugins${PW_PLUGINS_VER}`" ] ; then
for RM_PLUGINS in `ls ${PORT_WINE_TMP_PATH} | grep plugins_v | grep -v plugins${PW_PLUGINS_VER}`
if [ ! -z "$(ls ${PORT_WINE_TMP_PATH} | grep plugins_v | grep -v plugins${PW_PLUGINS_VER})" ] ; then
for RM_PLUGINS in $(ls ${PORT_WINE_TMP_PATH} | grep plugins_v | grep -v plugins${PW_PLUGINS_VER})
do try_remove_dir "${PORT_WINE_TMP_PATH}/${RM_PLUGINS}"
done
fi
......@@ -1062,40 +1068,40 @@ pw_init_db () {
if [[ -f "${portwine_exe}".ppdb ]] && [[ "${PORTWINE_DB}" != "RiotClientServices" ]] ; then
export PORTWINE_DB_FILE="${portwine_exe}".ppdb
. "${PORTWINE_DB_FILE}"
if [[ -z "`ls -p "${PORT_WINE_PATH}/prefixes/" | grep -e "^${PW_PREFIX_NAME}/"`" ]] ; then
export PW_PREFIX_NAME=`echo "${portwine_exe}" | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}'`
if [[ -z "$(ls -p "${PORT_WINE_PATH}/prefixes/" | grep -e "^${PW_PREFIX_NAME}/")" ]] ; then
export PW_PREFIX_NAME=$(echo "${portwine_exe}" | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}')
edit_db_from_gui PW_PREFIX_NAME
fi
else
orig_IFS="$IFS"
IFS=$'\n'
PW_FIND_DB_FILE=`grep -ilw "#${PORTWINE_DB}.exe" "${PORT_SCRIPTS_PATH}/portwine_db"/* | sed s/".exe"/""/gi`
if [[ `echo "$PW_FIND_DB_FILE" | wc -l` -gt 1 ]] ; then
PW_FIND_DB_FILE=$(grep -ilw "#${PORTWINE_DB}.exe" "${PORT_SCRIPTS_PATH}/portwine_db"/* | sed s/".exe"/""/gi)
if [[ $(echo "$PW_FIND_DB_FILE" | wc -l) -gt 1 ]] ; then
unset ADD_CB_DBFILE
for PW_CHECK_DB_FILE in $PW_FIND_DB_FILE ; do
if [[ -z "${ADD_CB_DBFILE}" ]] ; then
export ADD_CB_DBFILE="`echo ${PW_CHECK_DB_FILE} | awk -F'/' '{print $NF}'`"
export ADD_CB_DBFILE="$(echo ${PW_CHECK_DB_FILE} | awk -F'/' '{print $NF}')"
else
export ADD_CB_DBFILE="`echo ${PW_CHECK_DB_FILE} | awk -F'/' '{print $NF}'`!${ADD_CB_DBFILE}"
export ADD_CB_DBFILE="$(echo ${PW_CHECK_DB_FILE} | awk -F'/' '{print $NF}')!${ADD_CB_DBFILE}"
fi
done
PORTWINE_DB_FILE="${PORT_SCRIPTS_PATH}/portwine_db"/`"${pw_yad_v13_0}" --text-align=center \
PORTWINE_DB_FILE="${PORT_SCRIPTS_PATH}/portwine_db"/$("${pw_yad_v13_0}" --text-align=center \
--text "${PW_SELECTION_DB_LOC}" --borders="${YAD_BORDERS}" --form \
--title "Database file selection..." --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --form --separator="" \
--field="DB FILE: :CB" "${ADD_CB_DBFILE}" 2>/dev/null`
--field="DB FILE: :CB" "${ADD_CB_DBFILE}" 2>/dev/null)
if [[ "$?" == "1" || "$?" == "252" ]] ; then exit 0 ; fi
elif [[ `echo "$PW_FIND_DB_FILE" | wc -l` -eq 1 ]] ; then
elif [[ $(echo "$PW_FIND_DB_FILE" | wc -l) -eq 1 ]] ; then
PORTWINE_DB_FILE="${PW_FIND_DB_FILE}"
fi
IFS="$orig_IFS"
if [[ -f "${PW_FIND_DB_FILE}" ]] && [[ -z `grep "^export PW_DISABLED_CREATE_DB=1" "${PW_FIND_DB_FILE}"` ]] ; then
if [[ -f "${PW_FIND_DB_FILE}" ]] && [[ -z $(grep "^export PW_DISABLED_CREATE_DB=1" "${PW_FIND_DB_FILE}") ]] ; then
try_copy_file "${PW_FIND_DB_FILE}" "${portwine_exe}".ppdb
export PORTWINE_DB_FILE="${portwine_exe}".ppdb
fi
if [[ ! -z `echo "${portwine_exe}" | grep "/data/prefixes/"` ]] && \
[[ -z `echo "${portwine_exe}" | grep "/data/prefixes/DEFAULT/"` ]]
if [[ ! -z $(echo "${portwine_exe}" | grep "/data/prefixes/") ]] && \
[[ -z $(echo "${portwine_exe}" | grep "/data/prefixes/DEFAULT/") ]]
then
export PW_PREFIX_NAME=`echo "${portwine_exe}" | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}'`
export PW_PREFIX_NAME=$(echo "${portwine_exe}" | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}')
fi
fi
if [[ -f "${PORTWINE_DB_FILE}" ]] ; then
......@@ -1124,7 +1130,7 @@ pw_init_db () {
check_variables PW_USE_RAY_TRACING "1"
fi
if grep "RUS" "${PORT_WINE_TMP_PATH}/${portname}_loc" &>/dev/null ; then
if grep "RUS" "${PORT_WINE_TMP_PATH}/PortProton_loc" &>/dev/null ; then
for chk_lang_and_uname in "steam_emu.ini" "steam_api.ini" "steam_api64.ini" ; do
if [[ -f "${PATH_TO_GAME}/${chk_lang_and_uname}" ]] ; then
sed -i "s/Language=english/Language=russian/" "${PATH_TO_GAME}/${chk_lang_and_uname}"
......@@ -1142,7 +1148,7 @@ pw_init_db () {
pw_port_update () {
###SCRIPTS UPDATE###
if [ ! -f "${PORT_WINE_TMP_PATH}/scripts_ver" ] ; then
echo "2022" > "${PORT_WINE_TMP_PATH}/scripts_ver"
echo "2024" > "${PORT_WINE_TMP_PATH}/scripts_ver"
fi
export scripts_install_ver=$(cat "${PORT_WINE_TMP_PATH}/scripts_ver" | head -n 1)
print_info "Check update..."
......@@ -1165,7 +1171,7 @@ pw_port_update () {
[[ ! -f "${PORT_WINE_TMP_PATH}/scripts_update_notifier" ]] && echo "1" > "${PORT_WINE_TMP_PATH}/scripts_update_notifier"
read "scripts_update_not" < "${PORT_WINE_TMP_PATH}/scripts_update_notifier"
if [[ "${scripts_update_not}" == "1" ]] ; then
export scripts_current_ver=`cat "${PORT_WINE_TMP_PATH}/curent_var_ver" | grep SCRIPTS_NEXT_VERSION | awk -F "=" '{print $2}'`
export scripts_current_ver=$(cat "${PORT_WINE_TMP_PATH}/curent_var_ver" | grep SCRIPTS_NEXT_VERSION | awk -F "=" '{print $2}')
print_info "Scripts version in github = ${scripts_current_ver}"
print_info "Scripts version local = ${scripts_install_ver}"
if [[ ! -z "${scripts_current_ver}" ]] && [[ "${scripts_current_ver}" -gt "${scripts_install_ver}" ]] ; then
......@@ -1179,14 +1185,21 @@ pw_port_update () {
xcsd="${scripts_upd4}"
else
curl -s --list-only "${URL_FOR_CHANGELOG}/${PW_CHANGELOG_FILE}" | tee "${PORT_WINE_TMP_PATH}/curent_var_ver"
CHANGLOG_NEWS=`cat "${PORT_WINE_TMP_PATH}/curent_var_ver" | sed "/Scripts version ${scripts_install_ver}/,$ d" | sed '1,/---/ d' `
xcsd=`"${pw_yad_v13_0}" --title "${scripts_upd2} v.${scripts_current_ver}" --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
CHANGLOG_NEWS=$(cat "${PORT_WINE_TMP_PATH}/curent_var_ver" | sed "/Scripts version ${scripts_install_ver}/,$ d" | sed '1,/---/ d' )
xcsd=$("${pw_yad_v13_0}" --title "${scripts_upd2} v.${scripts_current_ver}" --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
--form --separator='%%%' --width=1200 --height=600 \
--field=":TXT" "${CHANGLOG_NEWS}" \
--field=" ${scripts_upd3} :CB" "${scripts_upd4}!${scripts_upd5}!${scripts_upd6}" 2>/dev/null`
--button="${scripts_upd3}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":252 \
--button="${scripts_upd6}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":16 \
--button="${scripts_upd5}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":18 \
--button="${scripts_upd4}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":20 2>/dev/null)
YAD_STATUS="$?"
if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; fi
xcsd=`echo "${xcsd}" | awk -F'%%%' '{print $2}'`
case "${YAD_STATUS}" in
1|252) exit 0 ;;
16) xcsd="${scripts_upd6}" ;;
18) xcsd="${scripts_upd5}" ;;
20) xcsd="${scripts_upd4}" ;;
esac
fi
case $xcsd in
"${scripts_upd4}")
......@@ -1325,14 +1338,14 @@ pw_create_gui_png () {
fi
cp -f "${PORT_WINE_TMP_PATH}/tmp_img/${PORTPROTON_NAME}.png" "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png"
fi
if [[ -z "`file "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" | grep "${PW_RESIZE_TO} x ${PW_RESIZE_TO}"`" ]] \
if [[ -z "$(file "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" | grep "${PW_RESIZE_TO} x ${PW_RESIZE_TO}")" ]] \
&& command -v convert &>/dev/null \
&& [[ -f "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" ]]
then
convert "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" -resize ${PW_RESIZE_TO}x${PW_RESIZE_TO} "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png"
fi
if [[ -z "${PW_ICON_FOR_YAD}" ]] ; then
if [[ ! -z "`file "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" | grep "${PW_RESIZE_TO} x ${PW_RESIZE_TO}"`" ]] ; then
if [[ ! -z "$(file "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" | grep "${PW_RESIZE_TO} x ${PW_RESIZE_TO}")" ]] ; then
export PW_ICON_FOR_YAD="${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png"
else
export PW_ICON_FOR_YAD="${PW_GUI_ICON_PATH}/port_proton.png"
......@@ -1456,16 +1469,14 @@ start_portwine () {
fi
pw_wineboot () {
LIST_RM_WIN_DLL="winevulkan amd_ags_x64 ir50_32 atl100 ntdll \
libvkd3d-1 libvkd3d-shader-1 dxvk_config nvapi nvapi64 d3d12core d3d12 \
d3d11 d3d10 d3d10core d3d10_1 d3d9 d3d8 dxgi wined3d vulkan-1 shell32"
for rm_win_dll in $LIST_RM_WIN_DLL ; do
try_remove_file "${WINEPREFIX}/drive_c/windows/system32/${rm_win_dll}.dll"
try_remove_file "${WINEPREFIX}/drive_c/windows/syswow64/${rm_win_dll}.dll"
LIST_NATIVE_WINE_DLL="winevulkan ir50_32 atl100 ntdll wined3d vulkan-1 shell32 dxgi d3d8 d3d9 d3d10core d3d11 d3d12 d3d12core"
for change_wine_dll in $LIST_NATIVE_WINE_DLL ; do
try_copy_file "${WINEDIR}/lib64/wine/x86_64-windows/${change_wine_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
try_copy_file "${WINEDIR}/lib/wine/i386-windows/${change_wine_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
done
print_info "Used wineboot $@ for prefix: ${PW_PREFIX_NAME}"
${pw_runtime} env GST_PLUGIN_SYSTEM_PATH_1_0="" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
${pw_runtime} env GST_PLUGIN_SYSTEM_PATH_1_0="" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}" \
WINEDEBUG="fixme-all,err+loaddll,err+dll,err+file,err+reg" \
"${WINELOADER}" wineboot $@ &>>"${PORT_WINE_TMP_PATH}/update_pfx_log"
wait_wineserver
......@@ -1479,7 +1490,7 @@ d3d11 d3d10 d3d10core d3d10_1 d3d9 d3d8 dxgi wined3d vulkan-1 shell32"
then
pw_clear_pfx
check_dirs_and_files_in_pfx
if [[ "${PW_PREFIX_NAME}" == DEFAULT ]] ; then
if [[ "${PW_PREFIX_NAME}" == "DEFAULT" ]] ; then
pw_update_pfx_cover_gui
unpack "${PW_PLUGINS_PATH}/default_pfx.tar.xz" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/" silent
pw_wineboot -r
......@@ -1503,6 +1514,7 @@ d3d11 d3d10 d3d10core d3d10_1 d3d9 d3d8 dxgi wined3d vulkan-1 shell32"
else
check_dirs_and_files_in_pfx
if [[ ! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.wine_ver" ]] \
|| [[ ! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/shell32.dll" ]] \
|| ! grep "${PW_WINE_USE}" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.wine_ver" &>/dev/null
then
pw_update_pfx_cover_gui
......@@ -1792,7 +1804,7 @@ d3d11 d3d10 d3d10core d3d10_1 d3d9 d3d8 dxgi wined3d vulkan-1 shell32"
d3dx9_31 d3dx9_32 d3dx9_33 d3dx9_34 d3dx9_35 d3dx9_36 d3dx9_37 d3dx9_38 d3dx9_39 d3dx9_40 d3dx9_41 d3dx9_42 d3dx9_43"
if [[ "${PW_USE_D3D_EXTRAS}" == 1 ]] ; then
if [[ ! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" ]] \
|| [[ -z "`grep d3dx9 "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log"`" ]]
|| [[ -z "$(grep d3dx9 "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log")" ]]
then
echo "d3dx9" >> "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log"
fi
......@@ -1802,7 +1814,7 @@ d3d11 d3d10 d3d10core d3d10_1 d3d9 d3d8 dxgi wined3d vulkan-1 shell32"
try_force_link_file "${PATH_TO_D3DEXTRAS}/x64/${d3d_extras_from_plugins}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
try_force_link_file "${PATH_TO_D3DEXTRAS}/x32/${d3d_extras_from_plugins}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
var_winedlloverride_update "${d3d_extras_from_plugins}=n"
if [[ -z "`grep "${d3d_extras_from_plugins}" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log"`" ]] ; then
if [[ -z "$(grep "${d3d_extras_from_plugins}" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log")" ]] ; then
echo "${d3d_extras_from_plugins}" >> "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log"
fi
done
......@@ -1849,10 +1861,9 @@ d3d11 d3d10 d3d10core d3d10_1 d3d9 d3d8 dxgi wined3d vulkan-1 shell32"
try_force_link_file "${PW_GALLIUM_NINE_PATH}/lib64/d3d9-nine.dll.so" "${WINEPREFIX}/drive_c/windows/system32/d3d9.dll"
var_winedlloverride_update "d3d9=n;wined3d=b;dxvk_config,vulkan-1,winevulkan="
unset FIND_D3D_MODULE D3D_MODULE_PATH
FIND_D3D_MODULE=`dirname $(find /usr/ -maxdepth 4 -type f -name "d3dadapter9.so.*") 2>/dev/null`
FLATPAK_D3D_MODULES_PATH="/app/lib/i386-linux-gnu/GL/default/lib/d3d
/usr/lib/x86_64-linux-gnu/GL/default/lib/d3d"
if ! check_flatpak ; then
FIND_D3D_MODULE=$(dirname $(find /usr/ -maxdepth 4 -type f -name "d3dadapter9.so.*") 2>/dev/null)
if [[ ! -z "$FIND_D3D_MODULE" ]] ; then
old_IFS=$IFS
IFS=$'\n'
......@@ -1870,12 +1881,7 @@ d3d11 d3d10 d3d10core d3d10_1 d3d9 d3d8 dxgi wined3d vulkan-1 shell32"
stop_portwine
fi
else
for D3D_MP in $FLATPAK_D3D_MODULES_PATH ; do
if [[ ! -z "$D3D_MODULE_PATH" ]]
then export D3D_MODULE_PATH="$D3D_MODULE_PATH:/run/parent${D3D_MP}"
else export D3D_MODULE_PATH="/run/parent${D3D_MP}"
fi
done
export D3D_MODULE_PATH="/app/lib/i386-linux-gnu/GL/default/lib/d3d:/usr/lib/x86_64-linux-gnu/GL/default/lib/d3d"
print_info "D3D_MODULE_PATH=${D3D_MODULE_PATH}"
fi
export mesa_glthread=true
......@@ -1887,6 +1893,7 @@ d3d11 d3d10 d3d10core d3d10_1 d3d9 d3d8 dxgi wined3d vulkan-1 shell32"
export WINE_D3D_CONFIG='renderer=vulkan'
else
print_info "Use VKD3D-PROTON, DXVK and D8VK (DirectX 8-12 to vulkan)"
check_variables DXVK_HDR 0
if [[ "${PW_USE_WINE_DXGI}" == 1 ]] ; then
export CP_DXVK_FILES="d3d11 d3d10core d3d9 dxvk_config" # openvr_api_dxvk
export CP_WINE_FILES="d3d10_1 d3d10 dxgi"
......@@ -1896,7 +1903,7 @@ d3d11 d3d10 d3d10core d3d10_1 d3d9 d3d8 dxgi wined3d vulkan-1 shell32"
export CP_DXVK_FILES="d3d11 d3d10core d3d9 dxgi dxvk_config" # openvr_api_dxvk
export CP_WINE_FILES="d3d10_1 d3d10"
fi
check_variables VKD3D_FEATURE_LEVEL "12_0"
check_variables VKD3D_FEATURE_LEVEL "12_1"
if [[ "${PW_VULKAN_USE}" == "1" ]] ; then
export PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_STABLE_VER}"
export PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_STABLE_VER}"
......@@ -1983,9 +1990,13 @@ d3d11 d3d10 d3d10core d3d10_1 d3d9 d3d8 dxgi wined3d vulkan-1 shell32"
export WINE_CPU_TOPOLOGY="${PW_WINE_CPU_TOPOLOGY}"
fi
if [[ "${PW_MESA_GL_VERSION_OVERRIDE}" != "disabled" ]] ; then
export MESA_GL_VERSION_OVERRIDE="${PW_MESA_GL_VERSION_OVERRIDE}"
fi
#run_winetricks_from_db
if [[ ! -z "${PW_MUST_HAVE_DLL}" ]]
then export PW_DLL_INSTALL="`echo "${PW_MUST_HAVE_DLL} ${PW_DLL_INSTALL}" | awk '{ for(i=1;i<=NF;i++){a[$i]++} }END{ for(i in a){printf("%s ",i)} }' `"
then export PW_DLL_INSTALL="$(echo "${PW_MUST_HAVE_DLL} ${PW_DLL_INSTALL}" | awk '{ for(i=1;i<=NF;i++){a[$i]++} }END{ for(i in a){printf("%s ",i)} }' )"
fi
if [[ ! -z "${PW_DLL_INSTALL}" ]] ; then
......@@ -2025,13 +2036,13 @@ d3d11 d3d10 d3d10core d3d10_1 d3d9 d3d8 dxgi wined3d vulkan-1 shell32"
fi
if [[ -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg" ]] \
&& [[ -z `grep "Windows $PW_WINDOWS_VER" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg"` ]]
&& [[ -z $(grep "Windows $PW_WINDOWS_VER" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg") ]]
then
if [[ ! -z "${PW_WINDOWS_VER}" && `echo "$PW_WINDOWS_VER" | sed 's/.*/\L&/'` == "xp" ]] ; then
if [[ ! -z "${PW_WINDOWS_VER}" && $(echo "$PW_WINDOWS_VER" | sed 's/.*/\L&/') == "xp" ]] ; then
export PW_WINDOWS_VER="xp64"
fi
${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" GST_PLUGIN_SYSTEM_PATH_1_0="" \
"${WINELOADER}" winecfg -v `echo "win${PW_WINDOWS_VER}" | sed 's/.*/\L&/'`
${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}" GST_PLUGIN_SYSTEM_PATH_1_0="" \
"${WINELOADER}" winecfg -v $(echo "win${PW_WINDOWS_VER}" | sed 's/.*/\L&/')
wait_wineserver
kill_portwine
echo "Set to win${PW_WINDOWS_VER}"
......@@ -2077,7 +2088,8 @@ d3d11 d3d10 d3d10core d3d10_1 d3d9 d3d8 dxgi wined3d vulkan-1 shell32"
pw_run () {
unset GDK_BACKEND
if [[ ! -z "${PATH_TO_GAME}" ]] && [[ -d "${PATH_TO_GAME}" ]] ; then
if [[ ! -z "${PATH_TO_GAME}" ]] \
&& [[ -d "${PATH_TO_GAME}" ]] ; then
cd "${PATH_TO_GAME}"
elif [[ -f "$portwine_exe" ]] ; then
export PATH_TO_GAME="$( cd "$( dirname "${portwine_exe}" )" >/dev/null 2>&1 && pwd )"
......@@ -2085,22 +2097,16 @@ pw_run () {
else
cd "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c"
fi
PW_LOG_TO_FILE="${PORT_WINE_PATH}/${portname}.log"
PW_LOG_TO_FILE="${PORT_WINE_PATH}/PortProton.log"
PW_LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}:${WINE_LIBRARY_PATH}"
print_var "WINEDIR" "WINEPREFIX" "WINEDLLOVERRIDES" "PATH_TO_GAME" "PW_WINE_USE" "PW_VULKAN_USE" "VULKAN_DRIVER_NAME"
print_var "VULKAN_API_DRIVER_VERSION" "VKD3D_CONFIG" "PW_LD_LIBRARY_PATH" "PATH" "WINEESYNC" "WINEFSYNC" "WINEFSYNC_FUTEX2"
print_var "VKD3D_CONFIG" "PW_LD_LIBRARY_PATH" "PATH" "WINEESYNC" "WINEFSYNC" "WINEFSYNC_FUTEX2"
print_var "WINEDLLPATH" "WINE_CPU_TOPOLOGY" "PW_RUN_GAMESCOPE" "LD_LIBRARY_PATH"
kill -s SIGUSR1 "$PW_YAD_PID_PFX_COVER_UI" &>/dev/null
if [[ "$PW_USE_RUNTIME" == 1 ]] \
&& [[ "$PW_WINE_USE" != "USE_SYSTEM_WINE" ]]
then
if [[ "${PW_LOG}" == 1 ]] ; then
if check_start_from_steam ; then
for VAR_LOGGER in PW_WINE_USE WINEDIR WINEDLLPATH WINEPREFIX PATH_TO_GAME PW_VULKAN_USE PW_LD_LIBRARY_PATH LD_LIBRARY_PATH PATH \
VKD3D_CONFIG WINEESYNC WINEFSYNC WINEFSYNC_FUTEX2 WINE_CPU_TOPOLOGY DESKTOP_SESSION
do
echo "${VAR_LOGGER}=${!VAR_LOGGER}" >> "${PW_LOG_TO_FILE}"
done
fi
echo "WINEDLLOVERRIDES=${WINEDLLOVERRIDES}" >> "${PW_LOG_TO_FILE}"
echo "------------------------------------" >> "${PW_LOG_TO_FILE}"
[[ -f "${PORT_WINE_TMP_PATH}/update_pfx_log" ]] && cat "${PORT_WINE_TMP_PATH}/update_pfx_log" >> "${PW_LOG_TO_FILE}"
......@@ -2146,13 +2152,6 @@ pw_run () {
fi
else
if [[ "${PW_LOG}" == 1 ]] ; then
if check_start_from_steam ; then
for VAR_LOGGER in PW_WINE_USE WINEDIR WINEDLLPATH WINEPREFIX PATH_TO_GAME PW_VULKAN_USE PW_LD_LIBRARY_PATH LD_LIBRARY_PATH PATH \
VKD3D_CONFIG WINEESYNC WINEFSYNC WINEFSYNC_FUTEX2 WINE_CPU_TOPOLOGY DESKTOP_SESSION
do
echo "${VAR_LOGGER}=${!VAR_LOGGER}" >> "${PW_LOG_TO_FILE}"
done
fi
echo "WINEDLLOVERRIDES=${WINEDLLOVERRIDES}" >> "${PW_LOG_TO_FILE}"
echo "------------------------------------" >> "${PW_LOG_TO_FILE}"
[[ -f "${PORT_WINE_TMP_PATH}/update_pfx_log" ]] && cat "${PORT_WINE_TMP_PATH}/update_pfx_log" >> "${PW_LOG_TO_FILE}"
......@@ -2161,6 +2160,10 @@ pw_run () {
echo ""
print_info "Log WINE:"
env FAKE_VAR= \
LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
LD_PRELOAD="${PW_LD_PRELOAD}" \
VK_LAYER_PATH="${PW_VK_LAYER_PATH}" \
VK_INSTANCE_LAYERS="${PW_VK_INSTANCE_LAYERS}" \
${PW_RUN_GAMESCOPE} \
${PW_GAMEMODERUN_SLR} \
${PW_MANGOHUD_SLR} \
......@@ -2173,6 +2176,10 @@ pw_run () {
echo "Log WINE:" > "${PW_LOG_TO_FILE}"
print_info "Log WINE:"
env FAKE_VAR= \
LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
LD_PRELOAD="${PW_LD_PRELOAD}" \
VK_LAYER_PATH="${PW_VK_LAYER_PATH}" \
VK_INSTANCE_LAYERS="${PW_VK_INSTANCE_LAYERS}" \
${PW_RUN_GAMESCOPE} \
${PW_GAMEMODERUN_SLR} \
${PW_MANGOHUD_SLR} \
......@@ -2214,7 +2221,7 @@ 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}" "${PW_PLUGINS_PATH}/portable/bin/xterm" -e "${WINELOADER}" cmd
${pw_runtime} ${PW_TERM} "${WINELOADER}" cmd
stop_portwine
}
......@@ -2230,18 +2237,14 @@ pw_start_cont_xterm () {
pw_init_runtime
${pw_runtime} \
env PATH="${PATH}" \
LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
LD_PRELOAD="${PW_LD_PRELOAD}" \
VK_LAYER_PATH="${PW_VK_LAYER_PATH}" \
VK_INSTANCE_LAYERS="${PW_VK_INSTANCE_LAYERS}" \
${PW_GAMEMODERUN_SLR} \
${PW_MANGOHUD_SLR} \
"${PW_PLUGINS_PATH}/portable/bin/xterm"
${PW_TERM} bash
}
#!/usr/bin/env bash
# Author: Castro-Fidel (linux-gaming.ru)
########################################################################
yad_info () {
print_info "$@"
if [[ ! -f "${pw_yad_v13_0}" ]] ; then
......@@ -2249,7 +2252,7 @@ yad_info () {
command -v "${pw_yad_v13_0}" &>/dev/null || fatal "yad not found"
fi
"${pw_yad_v13_0}" --no-wrap --text "$@" --width=400 --height=50 --borders=15 --title "INFO" \
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" --image="$PW_GUI_ICON_PATH/info.png" \
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" --image="$PW_GUI_ICON_PATH/info.svg" \
--center --text-align=center \
--button="OK"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png" 2>/dev/null
}
......@@ -2262,7 +2265,7 @@ yad_error () {
command -v "${pw_yad_v13_0}" &>/dev/null || fatal "yad not found"
fi
"${pw_yad_v13_0}" --no-wrap --text "$@" --width=400 --borders=15 --title "ERROR" \
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" --image="$PW_GUI_ICON_PATH/error.png" \
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" --image="$PW_GUI_ICON_PATH/error.svg" \
--center --text-align=center \
--button="EXIT"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png" 2>/dev/null
}
......@@ -2274,10 +2277,10 @@ yad_error_download () {
command -v "${pw_yad_v13_0}" &>/dev/null || fatal "yad not found"
fi
"${pw_yad_v13_0}" --text "$loc_gui_error_download" --width=400 --borders=15 --title "$loc_gui_error" \
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" --image="$PW_GUI_ICON_PATH/download.png" \
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" --image="$PW_GUI_ICON_PATH/download.svg" \
--no-wrap --center --text-align=center \
--button="SKIP"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1 \
--button="REPEAT"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 2>/dev/null
--button="$loc_skip"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1 \
--button="$loc_repeat"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 2>/dev/null
[[ "$?" != 0 ]] && return 1 || return 0
}
......@@ -2287,7 +2290,7 @@ yad_question () {
command -v "${pw_yad_v13_0}" &>/dev/null || fatal "yad not found"
fi
"${pw_yad_v13_0}" --text "${1}" --width=400 --borders=15 --title "${inst_set}." \
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" --image="$PW_GUI_ICON_PATH/question.png" \
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" --image="$PW_GUI_ICON_PATH/question.svg" \
--no-wrap --center --text-align=center \
--button="$loc_cancel"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1 \
--button="OK"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 2>/dev/null
......@@ -2297,8 +2300,8 @@ yad_question () {
pw_start_progress_bar_cover () {
if ! check_start_from_steam ; then
PW_GIF_FILE="$1"
PW_GIF_SIZE_X=`file "${PW_GIF_FILE}" | awk '{print $7 + 8}'`
PW_GIF_SIZE_Y=`file "${PW_GIF_FILE}" | awk '{print $9 + 15}'`
PW_GIF_SIZE_X=$(file "${PW_GIF_FILE}" | awk '{print $7 + 8}')
PW_GIF_SIZE_Y=$(file "${PW_GIF_FILE}" | awk '{print $9 + 15}')
"${pw_yad_v13_0}" --picture --filename="${PW_GIF_FILE}" --close-on-unfocus --no-buttons --undecorated --center \
--skip-taskbar --width=$PW_GIF_SIZE_X --height=$PW_GIF_SIZE_Y --window-icon="$PW_GUI_ICON_PATH/portproton.svg" > /dev/null 2>&1 &
export PW_YAD_PID_PROGRESS_BAR_COVER="$!"
......@@ -2310,8 +2313,8 @@ pw_start_progress_bar_cover_block () {
if ! check_start_from_steam ; then
[[ ! -f "${pw_yad_v13_0}" ]] && local pw_yad_v13_0="yad"
PW_GIF_FILE="$1"
PW_GIF_SIZE_X=`file "${PW_GIF_FILE}" | awk '{print $7 + 8}'`
PW_GIF_SIZE_Y=`file "${PW_GIF_FILE}" | awk '{print $9 + 15}'`
PW_GIF_SIZE_X=$(file "${PW_GIF_FILE}" | awk '{print $7 + 8}')
PW_GIF_SIZE_Y=$(file "${PW_GIF_FILE}" | awk '{print $9 + 15}')
"${pw_yad_v13_0}" --picture --filename="${PW_GIF_FILE}" --close-on-unfocus --no-buttons --undecorated --center \
--skip-taskbar --width=$PW_GIF_SIZE_X --height=$PW_GIF_SIZE_Y --window-icon="$PW_GUI_ICON_PATH/portproton.svg" > /dev/null 2>&1 &
export PW_YAD_PID_PROGRESS_BAR_COVER_BLOCK="$!"
......@@ -2335,15 +2338,15 @@ pw_update_pfx_cover_gui () {
if ! check_start_from_steam && ! pgrep -a yad | grep "yad_v13_0 --notebook --key=$PW_KEY_PROGRESS_BAR_UP" &>/dev/null ; then
PW_KEY_PROGRESS_BAR_UP=$RANDOM
PW_GIF_FILE="${COVERS_PATH}/update_prefix_${update_loc}.gif"
PW_GIF_SIZE_X=`file "${PW_GIF_FILE}" | awk '{print $7 + 20}'`
PW_GIF_SIZE_Y=`file "${PW_GIF_FILE}" | awk '{print $9 + 60}'`
PW_GIF_SIZE_X=$(file "${PW_GIF_FILE}" | awk '{print $7 + 20}')
PW_GIF_SIZE_Y=$(file "${PW_GIF_FILE}" | awk '{print $9 + 60}')
echo "UPDATE PREFIX..." > "${PORT_WINE_TMP_PATH}/update_pfx_log"
export PW_TIMER=0
while read -r line || [[ ! -z `pgrep -a yad | grep "yad_v13_0 --notebook --key=$PW_KEY_PROGRESS_BAR_UP" | awk '{print $1}'` ]] ; do
while read -r line || [[ ! -z $(pgrep -a yad | grep "yad_v13_0 --notebook --key=$PW_KEY_PROGRESS_BAR_UP" | awk '{print $1}') ]] ; do
sleep 0.005
if [[ ! -z "${line}" ]] && [[ -z "`echo "${line}" | grep -i "gstreamer"`" ]] \
&& [[ -z "`echo "${line}" | grep -i "kerberos"`" ]] \
&& [[ -z "`echo "${line}" | grep -i "ntlm"`" ]]
if [[ ! -z "${line}" ]] && [[ -z "$(echo "${line}" | grep -i "gstreamer")" ]] \
&& [[ -z "$(echo "${line}" | grep -i "kerberos")" ]] \
&& [[ -z "$(echo "${line}" | grep -i "ntlm")" ]]
then
echo "# ${line}"
fi
......@@ -2419,8 +2422,8 @@ open_changelog () {
export -f open_changelog
pw_tray_icon () {
if [ ! -z "`pgrep -a yad_v13_0 | grep "\--notification" | awk '{print $1}'`" ] ; then
kill -s SIGUSR1 "`pgrep -a yad_v13_0 | grep "\--notification" | awk '{print $1}'`"
if [ ! -z "$(pgrep -a yad_v13_0 | grep "\--notification" | awk '{print $1}')" ] ; then
kill -s SIGUSR1 "$(pgrep -a yad_v13_0 | grep "\--notification" | awk '{print $1}')"
fi
tray_icon_click () {
......@@ -2455,10 +2458,10 @@ pw_tray_icon () {
--command="bash -c tray_icon_click" \
--tooltip="PortProton" \
--icon-size=32 --menu="| \
${loc_tray_winefile}!bash -c pw_tray_winefile!"$PW_GUI_ICON_PATH/wine_file.png"|| \
${loc_tray_tascmng}!bash -c pw_tray_taskmgr!"$PW_GUI_ICON_PATH/wine_system.png"|| \
${loc_tray_cangelog}!bash -c open_changelog!"$PW_GUI_ICON_PATH/history.png"|| \
${loc_tray_force_exit} !bash -c tray_icon_click_exit!"$PW_GUI_ICON_PATH/close.png"||" 2>/dev/null &
${loc_tray_winefile}!bash -c pw_tray_winefile!"$PW_GUI_ICON_PATH/wine_file.svg"|| \
${loc_tray_tascmng}!bash -c pw_tray_taskmgr!"$PW_GUI_ICON_PATH/wine_system.svg"|| \
${loc_tray_cangelog}!bash -c open_changelog!"$PW_GUI_ICON_PATH/history.svg"|| \
${loc_tray_force_exit} !bash -c tray_icon_click_exit!"$PW_GUI_ICON_PATH/close.svg"||" 2>/dev/null &
return 0
}
......@@ -2466,7 +2469,7 @@ pw_tray_icon () {
pw_gui_for_edit_db () {
KEY_EDIT_DB_GUI=$RANDOM
if [[ "${PW_WINE_CPU_TOPOLOGY}" == *[0-9]:* ]] && [[ "${PW_WINE_CPU_TOPOLOGY}" != "disabled" ]] ; then
CPU_LIMIT_VAR="`echo ${PW_WINE_CPU_TOPOLOGY%%:*}`"
CPU_LIMIT_VAR="$(echo ${PW_WINE_CPU_TOPOLOGY%%:*})"
else
CPU_LIMIT_VAR="disabled"
fi
......@@ -2499,7 +2502,7 @@ pw_gui_for_edit_db () {
else export ${int_to_boole}="FALSE"
fi
TMP_HELP_FOR_GUI="${int_to_boole}_INFO"
int_to_boole_non_pw="`echo ${int_to_boole} | sed 's/^PW_//' | sed 's/_/ /g' `"
int_to_boole_non_pw="$(echo ${int_to_boole} | sed 's/^PW_//' | sed 's/_/ /g' )"
ADD_CHK_BOX_EDIT_DB+="--field=${CHKBOX_SPACE}${int_to_boole_non_pw}!${!TMP_HELP_FOR_GUI}:${THEME_CHKBOX}%${!int_to_boole}%"
done
}
......@@ -2525,9 +2528,11 @@ pw_gui_for_edit_db () {
--field=":LBL" "" \
--field="${loc_gui_cpu_limit}!${loc_gui_cpu_limit_help} :CB" "${CPU_LIMIT_VAR}!disabled!${GET_LOGICAL_CORE}" \
--field="${loc_gui_gpu_select}!${loc_gui_gpu_select_help} :CB" "${GPU_VAR}!disabled!${GET_GPU_NAMES}" \
--field="${loc_gui_arg_gamescope}!${loc_gui_arg_gamescope_help} :CBE" "\\${GAMESCOPE_ARGS}!-r 60 -F fsr!" 2>/dev/null 1> "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" 2>/dev/null &
--field="${loc_gui_arg_gamescope}!${loc_gui_arg_gamescope_help} :CBE" "\\${GAMESCOPE_ARGS}!-r 60 -F fsr!" \
--field="${loc_gui_opengl_version}!${loc_gui_opengl_version_help} :CB" "${PW_MESA_GL_VERSION_OVERRIDE}!disabled!4.6COMPAT!4.6!4.5COMPAT!4.5!3.3COMPAT!3.3" \
2>/dev/null 1> "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" 2>/dev/null &
"${pw_yad_v13_0}" --paned --key="$KEY_EDIT_DB_GUI" --title "EDIT_DB" --text-align=center --height="700" \
"${pw_yad_v13_0}" --paned --key="$KEY_EDIT_DB_GUI" --title "EDIT_DB" --text-align=center --height="750" \
--text "${loc_gui_edit_db} <b>${PORTWINE_DB}</b>\n ${loc_gui_edit_db_help}" --separator=" " \
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
--button="${loc_gui_cancel}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${loc_gui_cancel_help}":1 \
......@@ -2550,7 +2555,7 @@ pw_gui_for_edit_db () {
exit 0
;;
esac
output_yad_edit_db=(`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_edit_db"`)
output_yad_edit_db=($(cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_edit_db"))
bool_from_yad=0
edit_db_field_read () {
for boole_to_int in $@ ; do
......@@ -2570,6 +2575,7 @@ pw_gui_for_edit_db () {
CPU_LIMIT="$(cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $7}')"
PW_GPU_USE="$(cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $8}')"
GAMESCOPE_ARGS="$(cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $9}')"
PW_MESA_GL_VERSION_OVERRIDE="$(cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $10}')"
# PW_AMD_VULKAN_USE="`cat "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" | awk -F"%" '{print $10}'`"
if [[ "${CPU_LIMIT}" != "disabled" ]] ; then
......@@ -2578,7 +2584,7 @@ pw_gui_for_edit_db () {
export PW_WINE_CPU_TOPOLOGY="disabled"
fi
echo "pw_gui_for_edit_db PORTWINE_DB_FILE=$PORTWINE_DB_FILE"
edit_db_from_gui $@ LAUNCH_PARAMETERS PW_WINDOWS_VER PW_DLL_INSTALL WINEDLLOVERRIDES PW_WINE_CPU_TOPOLOGY GAMESCOPE_ARGS
edit_db_from_gui $@ LAUNCH_PARAMETERS PW_WINDOWS_VER PW_DLL_INSTALL WINEDLLOVERRIDES PW_WINE_CPU_TOPOLOGY GAMESCOPE_ARGS PW_MESA_GL_VERSION_OVERRIDE
if [[ -z "$MANGOHUD_CONFIG" ]] ; then
MONITOR_HEIGHT="$(echo $PW_SCREEN_RESOLUTION | awk -F'x' '{print $2}')"
MH_FONT_SIZE="font_size=$(( MONITOR_HEIGHT / 45 ))"
......@@ -2666,13 +2672,20 @@ gui_proton_downloader () {
exit 0
fi
for INSTALLING_VERSION_IN_DIST in $(ls "${PORT_WINE_PATH}/data/dist/") ; do
sed -i "/${INSTALLING_VERSION_IN_DIST}$/Id" "${PORT_WINE_TMP_PATH}/tmp_proton_ge_git"
sed -i "/${INSTALLING_VERSION_IN_DIST}$/Id" "${PORT_WINE_TMP_PATH}/tmp_proton_pw_git"
sed -i "/${INSTALLING_VERSION_IN_DIST}$/Id" "${PORT_WINE_TMP_PATH}/tmp_proton_ge_git"
sed -i "/${INSTALLING_VERSION_IN_DIST}$/Id" "${PORT_WINE_TMP_PATH}/tmp_wine_kron4ek_git"
sed -i "/${INSTALLING_VERSION_IN_DIST}$/Id" "${PORT_WINE_TMP_PATH}/tmp_wine_ge_custom_git"
[[ -z "$(cat "${PORT_WINE_TMP_PATH}/tmp_wine_ge_custom_git")" ]] && echo "nothing" > "${PORT_WINE_TMP_PATH}/tmp_wine_ge_custom_git"
done
[[ -z "$(cat "${PORT_WINE_TMP_PATH}/tmp_proton_pw_git")" ]] && echo "nothing" >"${PORT_WINE_TMP_PATH}/tmp_proton_pw_git"
[[ -z "$(cat "${PORT_WINE_TMP_PATH}/tmp_proton_ge_git")" ]] && echo "nothing" >"${PORT_WINE_TMP_PATH}/tmp_proton_ge_git"
[[ -z "$(cat "${PORT_WINE_TMP_PATH}/tmp_wine_kron4ek_git")" ]] && echo "nothing" >"${PORT_WINE_TMP_PATH}/tmp_wine_kron4ek_git"
[[ -z "$(cat "${PORT_WINE_TMP_PATH}/tmp_wine_ge_custom_git")" ]] && echo "nothing" >"${PORT_WINE_TMP_PATH}/tmp_wine_ge_custom_git"
# Installed wine
ls -l ${PORT_WINE_PATH}/data/dist | awk '{print $9}' | sed '/^$/d' > ${PORT_WINE_TMP_PATH}/tmp_installed_wine
ls -l ${PORT_WINE_PATH}/data/dist | awk '{print $9}' | sed '/^$/d' 1> ${PORT_WINE_TMP_PATH}/tmp_installed_wine
if [[ "$1" != "silent" ]] ; then
# GUI
export KEY_WINE=$RANDOM
......@@ -2709,16 +2722,16 @@ gui_proton_downloader () {
exit 0
fi
if [ ! -z `cat "${PORT_WINE_TMP_PATH}/tmp_proton_set" | awk '{print $1}'` ] ; then
export VERSION_WINE_GIT="`cat "${PORT_WINE_TMP_PATH}/tmp_proton_set"`"
elif [ ! -z `cat "${PORT_WINE_TMP_PATH}/tmp_proton_pw_set" | awk '{print $1}'` ] ; then
export VERSION_WINE_GIT="`cat "${PORT_WINE_TMP_PATH}/tmp_proton_pw_set"`"
elif [ ! -z `cat "${PORT_WINE_TMP_PATH}/tmp_kron4ek_set" | awk '{print $1}'` ] ; then
export VERSION_WINE_GIT="`cat "${PORT_WINE_TMP_PATH}/tmp_kron4ek_set"`"
elif [ ! -z `cat "${PORT_WINE_TMP_PATH}/tmp_ge_custom_set" | awk '{print $1}'` ] ; then
export VERSION_WINE_GIT="`cat "${PORT_WINE_TMP_PATH}/tmp_ge_custom_set"`"
elif [ ! -z `cat "${PORT_WINE_TMP_PATH}/tmp_installed_wine_set" | awk '{print $1}'` ] ; then
export VERSION_INSTALLED_WINE="`cat "${PORT_WINE_TMP_PATH}/tmp_installed_wine_set"`"
if [[ ! -z $(awk '{print $1}' "${PORT_WINE_TMP_PATH}/tmp_proton_set") ]] ; then
VERSION_WINE_GIT="$(cat "${PORT_WINE_TMP_PATH}/tmp_proton_set")"
elif [[ ! -z $(awk '{print $1}' "${PORT_WINE_TMP_PATH}/tmp_proton_pw_set") ]] ; then
VERSION_WINE_GIT="$(cat "${PORT_WINE_TMP_PATH}/tmp_proton_pw_set")"
elif [[ ! -z $(awk '{print $1}' "${PORT_WINE_TMP_PATH}/tmp_kron4ek_set") ]] ; then
VERSION_WINE_GIT="$(cat "${PORT_WINE_TMP_PATH}/tmp_kron4ek_set")"
elif [[ ! -z $(awk '{print $1}' "${PORT_WINE_TMP_PATH}/tmp_ge_custom_set") ]] ; then
VERSION_WINE_GIT="$(cat "${PORT_WINE_TMP_PATH}/tmp_ge_custom_set")"
elif [[ ! -z $(awk '{print $1}' "${PORT_WINE_TMP_PATH}/tmp_installed_wine_set") ]] ; then
VERSION_INSTALLED_WINE="$(cat "${PORT_WINE_TMP_PATH}/tmp_installed_wine_set")"
else
print_info "Nothing to do."
export SKIP_CHECK_UPDATES=1
......@@ -2726,6 +2739,13 @@ gui_proton_downloader () {
exit 0
fi
if [[ "${VERSION_WINE_GIT}" == "nothing" ]] ; then
print_info "Nothing to do."
export SKIP_CHECK_UPDATES=1
/usr/bin/env bash -c ${pw_full_command_line[*]} &
exit 0
fi
try_remove_file "${PORT_WINE_TMP_PATH}/tmp_proton_pw_git"
try_remove_file "${PORT_WINE_TMP_PATH}/tmp_wine_kron4ek_git"
try_remove_file "${PORT_WINE_TMP_PATH}/tmp_proton_ge_git"
......@@ -2737,7 +2757,7 @@ gui_proton_downloader () {
fi
for GIVE_WINE_URL in ${PROTON_GE_GIT[@]} ${PROTON_PW_GIT[@]} ${WINE_KRON4EK[@]} ${WINE_GE_CUSTOM[@]} ; do
if [ ! -z `echo ${GIVE_WINE_URL} | grep -i "${VERSION_WINE_GIT}"` ] ; then
if [ ! -z $(echo ${GIVE_WINE_URL} | grep -i "${VERSION_WINE_GIT}") ] ; then
export URL_VERSION_PROTON_GIT="${GIVE_WINE_URL}"
break
fi
......@@ -2752,7 +2772,7 @@ gui_proton_downloader () {
fi
print_info "Download and install ${VERSION_WINE_GIT}..."
PW_WINE_ARCHIVE="$(echo ${URL_VERSION_PROTON_GIT} | awk -F'/' '{print $NF}' | awk -F'.tar' '{print $1}')"
PW_WINE_ARCHIVE="$(echo "${URL_VERSION_PROTON_GIT}" | awk -F'/' '{print $NF}' | awk -F'.tar' '{print $1}')"
FILENAME="$(basename "${URL_VERSION_PROTON_GIT}")"
if try_download "${URL_VERSION_PROTON_GIT}" "${PORT_WINE_PATH}/data/tmp/$FILENAME" ; then
for archive_type in "gz" "xz" ; do
......@@ -2760,18 +2780,28 @@ gui_proton_downloader () {
if unpack "${PORT_WINE_PATH}/data/tmp/${PW_WINE_ARCHIVE}.tar.${archive_type}" "${PORT_WINE_PATH}/data/dist/" ; then
try_remove_file "${PORT_WINE_PATH}/data/tmp/${PW_WINE_ARCHIVE}.tar.${archive_type}"
if [ ! -z "${portwine_exe}" ]; then
PW_WINE_USE="$(echo ${VERSION_WINE_GIT} | tr [[:lower:]] [[:upper:]])"
PW_WINE_USE="$(echo "${VERSION_WINE_GIT}" | tr [[:lower:]] [[:upper:]])"
edit_db_from_gui PW_WINE_USE
fi
else
try_remove_file "${PORT_WINE_PATH}/data/tmp/${PW_WINE_ARCHIVE}.tar.${archive_type}"
try_remove_dir "${PORT_WINE_PATH}/data/dist/${PW_WINE_ARCHIVE}"
yad_error_download && gui_proton_downloader || exit 1
if yad_error_download
then gui_proton_downloader $@
else
export PW_WINE_VER="$PW_WINE_USE"
init_wine_ver
fi
fi
fi
done
else
yad_error_download && gui_proton_downloader || exit 1
if yad_error_download
then gui_proton_downloader $@
else
export PW_WINE_VER="$PW_WINE_USE"
init_wine_ver
fi
fi
if [[ "$1" != "silent" ]] ; then
......@@ -2788,7 +2818,7 @@ export -f gui_proton_downloader
gui_vkBasalt () {
KEY_FX_GUI=$RANDOM
FILE_VKBASALT_CONF="${PORT_WINE_PATH}/data/vkBasalt.conf"
LIST_FX=(`grep -E '.fx$|.fxh$' "${FILE_VKBASALT_CONF}" | awk '{print $1}'`)
LIST_FX=($(grep -E '.fx$|.fxh$' "${FILE_VKBASALT_CONF}" | awk '{print $1}'))
GET_FX_IN_FILE=(`echo ${PW_VKBASALT_EFFECTS} | sed s/"cas:"// | sed s/":"/" "/g`)
unset ADD_GUI_FX GUI_FX_RESULT
for add_list_fx in ${LIST_FX[@]} ; do
......@@ -2984,8 +3014,9 @@ gui_MangoHud () {
}
portwine_create_shortcut () {
pw_create_gui_png
pw_stop_progress_bar
[[ ! -e ${portwine_exe} ]] && return 1
pw_create_gui_png
if [[ "$1" == "block_name" ]] ; then
export name_desktop="${PORTPROTON_NAME}"
......@@ -3109,7 +3140,7 @@ portwine_delete_shortcut () {
portwine_missing_shortcut () {
"${pw_yad}" --title="${loc_gui_error}." --form \
--window-icon "$PW_GUI_ICON_PATH/portproton.svg" \
--image "$PW_GUI_ICON_PATH/error_file.png" \
--image "$PW_GUI_ICON_PATH/error.svg" \
--text "$loc_gui_missing_shortcut" \
--button="$loc_gui_delete_shortcut"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 \
--button="$loc_cancel"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1
......@@ -3236,135 +3267,135 @@ portwine_start_debug () {
if [[ -z "$VULKAN_DRIVER_NAME" ]] || [[ "$VULKAN_DRIVER_NAME" == "llvmpipe" ]] ; then
yad_info "Attention working version of vulkan not detected!\nIt is recommended to run games in OpenGL (low performance possible)!"
fi
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"
echo "${port_deb1}" > "${PORT_WINE_PATH}/PortProton.log"
echo "${port_deb2}" >> "${PORT_WINE_PATH}/PortProton.log"
echo "-------------------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
echo "PortWINE version:" >> "${PORT_WINE_PATH}/PortProton.log"
read install_ver < "${PORT_WINE_TMP_PATH}/PortProton_ver"
echo "PortProton-${install_ver}" >> "${PORT_WINE_PATH}/PortProton.log"
echo "------------------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
echo "Scripts version:" >> "${PORT_WINE_PATH}/PortProton.log"
cat "${PORT_WINE_TMP_PATH}/scripts_ver" >> "${PORT_WINE_PATH}/PortProton.log"
echo "-----------------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
if [ "${PW_USE_RUNTIME}" = 0 ] ; then
echo "RUNTIME is disabled" >> "${PORT_WINE_PATH}/${portname}.log"
echo "RUNTIME is disabled" >> "${PORT_WINE_PATH}/PortProton.log"
else
echo "RUNTIME is enabled" >> "${PORT_WINE_PATH}/${portname}.log"
echo "RUNTIME is enabled" >> "${PORT_WINE_PATH}/PortProton.log"
fi
echo "----------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
echo "----------------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
if [ ! -z "${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"
echo "Debug for programm:" >> "${PORT_WINE_PATH}/PortProton.log"
echo "${portwine_exe}" >> "${PORT_WINE_PATH}/PortProton.log"
echo "---------------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.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"
echo "GLIBC version:" >> "${PORT_WINE_PATH}/PortProton.log"
echo $(ldd --version | grep -m1 ldd | awk '{print $NF}') >> "${PORT_WINE_PATH}/PortProton.log"
echo "--------------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
if [[ "${PW_VULKAN_USE}" = "0" ]] ; then
echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DX9-11 to ${loc_gui_open_gl}" >> "${PORT_WINE_PATH}/${portname}.log"
echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DX9-11 to ${loc_gui_open_gl}" >> "${PORT_WINE_PATH}/PortProton.log"
elif [[ "${PW_VULKAN_USE}" = "1" ]] ; then
echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_STABLE_VER} and VKD3D-PROTON v.${VKD3D_STABLE_VER}" >> "${PORT_WINE_PATH}/${portname}.log"
echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_STABLE_VER} and VKD3D-PROTON v.${VKD3D_STABLE_VER}" >> "${PORT_WINE_PATH}/PortProton.log"
elif [[ "${PW_VULKAN_USE}" = "2" ]] ; then
echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_GIT_VER} and VKD3D-PROTON v.${VKD3D_GIT_VER}" >> "${PORT_WINE_PATH}/${portname}.log"
echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_GIT_VER} and VKD3D-PROTON v.${VKD3D_GIT_VER}" >> "${PORT_WINE_PATH}/PortProton.log"
elif [[ "${PW_VULKAN_USE}" = "3" ]] ; then
echo "PW_VULKAN_USE=${PW_VULKAN_USE} - native DX9 on MESA drivers" >> "${PORT_WINE_PATH}/${portname}.log"
echo "PW_VULKAN_USE=${PW_VULKAN_USE} - native DX9 on MESA drivers" >> "${PORT_WINE_PATH}/PortProton.log"
elif [[ "${PW_VULKAN_USE}" = "4" ]] ; then
echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DirectX to wined3d vulkan" >> "${PORT_WINE_PATH}/${portname}.log"
echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DirectX to wined3d vulkan" >> "${PORT_WINE_PATH}/PortProton.log"
else
echo "PW_VULKAN_USE=${PW_VULKAN_USE}" >> "${PORT_WINE_PATH}/${portname}.log"
echo "PW_VULKAN_USE=${PW_VULKAN_USE}" >> "${PORT_WINE_PATH}/PortProton.log"
fi
echo "--------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
echo "Version WINE in use:" >> "${PORT_WINE_PATH}/${portname}.log"
echo "$PW_WINE_USE" >> "${PORT_WINE_PATH}/${portname}.log"
echo "-------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
echo "Program bit depth:" >> "${PORT_WINE_PATH}/${portname}.log"
echo "--------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
echo "Version WINE in use:" >> "${PORT_WINE_PATH}/PortProton.log"
echo "$PW_WINE_USE" >> "${PORT_WINE_PATH}/PortProton.log"
echo "-------------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
echo "Program bit depth:" >> "${PORT_WINE_PATH}/PortProton.log"
if [[ $(file "$portwine_exe") =~ x86-64 ]]; then
echo "64 bit" >> "${PORT_WINE_PATH}/${portname}.log"
echo "-----------------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
echo "64 bit" >> "${PORT_WINE_PATH}/PortProton.log"
echo "-----------------------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
else
echo "32 bit" >> "${PORT_WINE_PATH}/${portname}.log"
fi
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"
cat /etc/os-release | grep -oP 'PRETTY_NAME="\K[^"]+' >> "${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"
echo "CPU physical cores:$(cat /proc/cpuinfo | grep 'cpu cores' | sort -u | cut -d':' -f2)" >> "${PORT_WINE_PATH}/${portname}.log"
echo "CPU logical cores: $(cat /proc/cpuinfo | grep 'processor' | wc -l)" >> "${PORT_WINE_PATH}/${portname}.log"
echo "CPU model name:$(cat /proc/cpuinfo | grep 'model name' | sort -u | cut -d':' -f2)" >> "${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"
echo "----" >> "${PORT_WINE_PATH}/${portname}.log"
[[ `command -v glxinfo` ]] && glxinfo -B >> "${PORT_WINE_PATH}/${portname}.log"
echo "-----" >> "${PORT_WINE_PATH}/${portname}.log"
echo "inxi -G:" >> "${PORT_WINE_PATH}/${portname}.log"
echo "32 bit" >> "${PORT_WINE_PATH}/PortProton.log"
fi
echo "--------------------------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
echo "Date and time of start debug for PortProton:" >> "${PORT_WINE_PATH}/PortProton.log"
date >> "${PORT_WINE_PATH}/PortProton.log"
echo "-----------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
echo "The installation path of the PortProton:" >> "${PORT_WINE_PATH}/PortProton.log"
echo "$PORT_WINE_PATH" >> "${PORT_WINE_PATH}/PortProton.log"
echo "------------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
echo "Operating system:" >> "${PORT_WINE_PATH}/PortProton.log"
cat /etc/os-release | grep -oP 'PRETTY_NAME="\K[^"]+' >> "${PORT_WINE_PATH}/PortProton.log"
echo "--------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
echo "Desktop environment:" >> "${PORT_WINE_PATH}/PortProton.log"
echo "Desktop session: ${DESKTOP_SESSION}" >> "${PORT_WINE_PATH}/PortProton.log"
echo "Current desktop: ${XDG_CURRENT_DESKTOP}" >> "${PORT_WINE_PATH}/PortProton.log"
echo "Session type: ${XDG_SESSION_TYPE}" >> "${PORT_WINE_PATH}/PortProton.log"
echo "---------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
echo "Kernel:" >> "${PORT_WINE_PATH}/PortProton.log"
uname -r >> "${PORT_WINE_PATH}/PortProton.log"
echo "-------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
echo "CPU:" >> "${PORT_WINE_PATH}/PortProton.log"
echo "CPU physical cores:$(cat /proc/cpuinfo | grep 'cpu cores' | sort -u | cut -d':' -f2)" >> "${PORT_WINE_PATH}/PortProton.log"
echo "CPU logical cores: $(cat /proc/cpuinfo | grep 'processor' | wc -l)" >> "${PORT_WINE_PATH}/PortProton.log"
echo "CPU model name:$(cat /proc/cpuinfo | grep 'model name' | sort -u | cut -d':' -f2)" >> "${PORT_WINE_PATH}/PortProton.log"
echo "------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
echo "RAM:" >> "${PORT_WINE_PATH}/PortProton.log"
free -m >> "${PORT_WINE_PATH}/PortProton.log"
echo "-----------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
echo "Graphic cards and drivers:" >> "${PORT_WINE_PATH}/PortProton.log"
echo 'lspci -k | grep -EA3 VGA|3D|Display :' >> "${PORT_WINE_PATH}/PortProton.log"
echo "$(lspci -k | grep -EA3 'VGA|3D|Display')" >> "${PORT_WINE_PATH}/PortProton.log"
echo "----" >> "${PORT_WINE_PATH}/PortProton.log"
[[ `command -v glxinfo` ]] && glxinfo -B >> "${PORT_WINE_PATH}/PortProton.log"
echo "-----" >> "${PORT_WINE_PATH}/PortProton.log"
echo "inxi -G:" >> "${PORT_WINE_PATH}/PortProton.log"
if ! check_flatpak
then "${PW_PLUGINS_PATH}/portable/bin/inxi" -Gc0 >> "${PORT_WINE_PATH}/${portname}.log"
then "${PW_PLUGINS_PATH}/portable/bin/inxi" -Gc0 >> "${PORT_WINE_PATH}/PortProton.log"
fi
if echo "$LSPCI_VGA" | grep -i nvidia &>/dev/null ; then
if command -v ldconfig &>/dev/null ; then
echo "------" >> "${PORT_WINE_PATH}/${portname}.log"
echo "ldconfig -p | grep libGLX_nvidia" >> "${PORT_WINE_PATH}/${portname}.log"
ldconfig -p | grep libGLX_nvidia >> "${PORT_WINE_PATH}/${portname}.log"
echo "------" >> "${PORT_WINE_PATH}/PortProton.log"
echo "ldconfig -p | grep libGLX_nvidia" >> "${PORT_WINE_PATH}/PortProton.log"
ldconfig -p | grep libGLX_nvidia >> "${PORT_WINE_PATH}/PortProton.log"
fi
fi
echo "PW_SCREEN_RESOLUTION=$PW_SCREEN_RESOLUTION" >> "${PORT_WINE_PATH}/${portname}.log"
echo "PW_SCREEN_PRIMARY=$PW_SCREEN_PRIMARY" >> "${PORT_WINE_PATH}/${portname}.log"
echo "----------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
echo "Vulkan info device name:" >> "${PORT_WINE_PATH}/${portname}.log"
"$PW_VULKANINFO_PORTABLE" 2>/dev/null | grep -E '^GPU|deviceName|driverName' >> "${PORT_WINE_PATH}/${portname}.log"
echo "PW_SCREEN_RESOLUTION=$PW_SCREEN_RESOLUTION" >> "${PORT_WINE_PATH}/PortProton.log"
echo "PW_SCREEN_PRIMARY=$PW_SCREEN_PRIMARY" >> "${PORT_WINE_PATH}/PortProton.log"
echo "----------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
echo "Vulkan info device name:" >> "${PORT_WINE_PATH}/PortProton.log"
"$PW_VULKANINFO_PORTABLE" 2>/dev/null | grep -E '^GPU|deviceName|driverName' >> "${PORT_WINE_PATH}/PortProton.log"
"${PW_PLUGINS_PATH}/portable/bin/vkcube" --c 50
if [ $? -eq 0 ]; then
echo "Vulkan cube test passed successfully" >> "${PORT_WINE_PATH}/${portname}.log"
echo "Vulkan cube test passed successfully" >> "${PORT_WINE_PATH}/PortProton.log"
else
echo "Vulkan cube test completed with error" >> "${PORT_WINE_PATH}/${portname}.log"
fi
echo "----------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
echo 'locale:' >> "${PORT_WINE_PATH}/${portname}.log"
locale >> "${PORT_WINE_PATH}/${portname}.log"
echo "---" >> "${PORT_WINE_PATH}/${portname}.log"
echo 'locale -a | grep -i "$(locale | grep -e '^LANG=' | sed 's/LANG=//' | sed 's/\-8//')" :' >> "${PORT_WINE_PATH}/${portname}.log"
locale -a | grep -i "$(locale | grep -e '^LANG=' | sed 's/LANG=//' | sed 's/\-8//')" >> "${PORT_WINE_PATH}/${portname}.log"
echo "-------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
echo "Vulkan cube test completed with error" >> "${PORT_WINE_PATH}/PortProton.log"
fi
echo "----------------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
echo 'locale:' >> "${PORT_WINE_PATH}/PortProton.log"
locale >> "${PORT_WINE_PATH}/PortProton.log"
echo "---" >> "${PORT_WINE_PATH}/PortProton.log"
echo 'locale -a | grep -i "$(locale | grep -e '^LANG=' | sed 's/LANG=//' | sed 's/\-8//')" :' >> "${PORT_WINE_PATH}/PortProton.log"
locale -a | grep -i "$(locale | grep -e '^LANG=' | sed 's/LANG=//' | sed 's/\-8//')" >> "${PORT_WINE_PATH}/PortProton.log"
echo "-------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.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"
then echo "D3D_EXTRAS - disabled" >> "${PORT_WINE_PATH}/PortProton.log"
else echo "D3D_EXTRAS - enabled" >> "${PORT_WINE_PATH}/PortProton.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"
echo "------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
echo "winetricks.log:" >> "${PORT_WINE_PATH}/PortProton.log"
cat "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" | sed -e /"^d3dcomp*"/d -e /"^d3dx*"/d >> "${PORT_WINE_PATH}/PortProton.log"
echo "-----------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
if [ ! -z "${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"
echo "Use ${PORTWINE_DB_FILE} db file:" >> "${PORT_WINE_PATH}/PortProton.log"
cat "${PORTWINE_DB_FILE}" | sed '/##/d' >> "${PORT_WINE_PATH}/PortProton.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"
echo "Use ${PORT_SCRIPTS_PATH}/portwine_db/default db file:" >> "${PORT_WINE_PATH}/PortProton.log"
cat "${PORT_SCRIPTS_PATH}/portwine_db/default" | sed '/##/d' >> "${PORT_WINE_PATH}/PortProton.log"
fi
echo "----------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
echo "----------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
if [ -f "${USER_CONF}" ]; then
cat "${USER_CONF}" | sed '/bash/d' >> "${PORT_WINE_PATH}/${portname}.log"
cat "${USER_CONF}" | sed '/bash/d' >> "${PORT_WINE_PATH}/PortProton.log"
fi
echo "---------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
echo "---------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
export DXVK_HUD="full"
......@@ -3383,21 +3414,21 @@ portwine_start_debug () {
sleep 3
PW_TIMER=1
fi
done < "${PORT_WINE_PATH}/${portname}.log" | "${pw_yad_v13_0}" --text-info --tail --button="STOP"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 --title="DEBUG" \
done < "${PORT_WINE_PATH}/PortProton.log" | "${pw_yad_v13_0}" --text-info --tail --button="STOP"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 --title="DEBUG" \
--skip-taskbar --width=800 --height=400 --text "${port_debug}" --window-icon="$PW_GUI_ICON_PATH/portproton.svg" 2>/dev/null &&
kill_portwine
sed -i '/.fx$/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"
sed -i '/wine: RLIMIT_NICE is <= 20/d' "${PORT_WINE_PATH}/${portname}.log"
sed -i '/ALT_2.24/d' "${PORT_WINE_PATH}/${portname}.log"
sed -i '/UDEV monitor/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" --no-buttons --text-align=center \
sed -i '/.fx$/d' "${PORT_WINE_PATH}/PortProton.log"
sed -i '/HACK_does_openvr_work/d' "${PORT_WINE_PATH}/PortProton.log"
sed -i '/Uploading is disabled/d' "${PORT_WINE_PATH}/PortProton.log"
sed -i '/wine: RLIMIT_NICE is <= 20/d' "${PORT_WINE_PATH}/PortProton.log"
sed -i '/ALT_2.24/d' "${PORT_WINE_PATH}/PortProton.log"
sed -i '/UDEV monitor/d' "${PORT_WINE_PATH}/PortProton.log"
deb_text=$(cat "${PORT_WINE_PATH}/PortProton.log" | awk '! a[$0]++')
echo "$deb_text" > "${PORT_WINE_PATH}/PortProton.log"
"$pw_yad" --title="PortProton.log" --no-buttons --text-align=center \
--text-info --show-uri --wrap --width=1200 --height=550 --uri-color=red \
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
--filename="${PORT_WINE_PATH}/${portname}.log"
--filename="${PORT_WINE_PATH}/PortProton.log"
stop_portwine
}
......@@ -3413,23 +3444,21 @@ pw_create_prefix_backup () {
| 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
if check_flatpak
then TMP_ALL_PATH=""
else TMP_ALL_PATH="env PATH=\"${PATH}\" LD_LIBRARY_PATH=\"${PW_LD_LIBRARY_PATH}\""
fi
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 [[ ! -z $(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
cat << EOF > "${PORT_WINE_TMP_PATH}"/pp_pfx_backup.sh
#!/usr/bin/env bash
${TMP_ALL_PATH} mksquashfs "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}" \
"${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack.part" -comp zstd \
|| rm -f "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack.part"
EOF
chmod u+x "${PORT_WINE_TMP_PATH}"/pp_pfx_backup.sh
${pw_runtime} ${PW_TERM} "${PORT_WINE_TMP_PATH}"/pp_pfx_backup.sh
try_remove_file "${PORT_WINE_TMP_PATH}"/pp_pfx_backup.sh
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"
yad_info "$PW_PFX_BACKUP_SUCCESS $PW_PREFIX_NAME"
......@@ -3440,7 +3469,6 @@ pw_create_prefix_backup () {
else
yad_error "$PW_PFX_BACKUP_ERROR $PW_PREFIX_NAME"
fi
return 0
}
......@@ -3540,13 +3568,13 @@ export -f gui_rm_portproton
gui_pw_update () {
try_remove_file "${PORT_WINE_TMP_PATH}/scripts_update_notifier"
print_info "Restarting PP for check update..."
export SKIP_CHECK_UPDATES=1
export SKIP_CHECK_UPDATES=0
/usr/bin/env bash -c ${pw_full_command_line[*]} &
exit 0
}
change_loc () {
try_remove_file "${PORT_WINE_TMP_PATH}/${portname}_loc"
try_remove_file "${PORT_WINE_TMP_PATH}/PortProton_loc"
print_info "Restarting PP for change language..."
export SKIP_CHECK_UPDATES=1
/usr/bin/env bash -c ${pw_full_command_line[*]} &
......
......@@ -3,33 +3,37 @@
# Helped in translation: ConTI1NuEsZZZ and Boria138
unset update_loc
if [[ -f "${PORT_WINE_TMP_PATH}/${portname}_loc" ]] ; then
read "update_loc" < "${PORT_WINE_TMP_PATH}/${portname}_loc"
export update_loc=${update_loc}
if [[ -f "${PORT_WINE_TMP_PATH}/PortProton_loc" ]] ; then
update_loc=$(cat "${PORT_WINE_TMP_PATH}/PortProton_loc")
fi
if [[ "${FORCE_ENG_LANG}" == "1" ]] ; then
export update_loc="ENG"
if [[ -z "${LANG}" ]] ; then
export LANG=C
update_loc="ENG"
else
if [[ "${update_loc}" == "RUS" || "${update_loc}" == "ENG" ]] && [[ -f "${PORT_WINE_TMP_PATH}/${portname}_loc" ]] ; then
if [[ "${update_loc}" == "RUS" || "${update_loc}" == "ENG" ]] \
&& [[ -f "${PORT_WINE_TMP_PATH}/PortProton_loc" ]] ; then
echo ""
else
[[ ! -f "${pw_yad_v13_0}" ]] && pw_yad_v13_0="yad"
SET_LANG=$("${pw_yad_v13_0}" --title "LAUNGUAGE" --text "Select the language:" --list --radiolist \
--column="Set:" --column "Choose language:" TRUE "RUS" FALSE "ENG" \
--window-icon "$PW_GUI_ICON_PATH/portproton.svg" --width=300 --height=150)
SET_LANG="$(echo $SET_LANG | awk -F'|' '{print $2}')"
echo "${SET_LANG}" > "${PORT_WINE_TMP_PATH}/${portname}_loc"
SET_LANG="$(echo "${SET_LANG}" | awk -F'|' '{print $2}')"
echo "${SET_LANG}" > "${PORT_WINE_TMP_PATH}/PortProton_loc"
if [[ ! -z "${SET_LANG}" ]]
then export update_loc=${SET_LANG}
then update_loc=${SET_LANG}
else exit 1
fi
fi
fi
export update_loc
if [[ "${update_loc}" == "RUS" ]] ; then
export loc_gui_pw_reinstall_pp="Переустановить ${portname}"
export loc_gui_rm_pp="Удалить ${portname}"
# check_flatpak && export LANG=ru_RU.UTF-8
export loc_gui_pw_reinstall_pp="Переустановить PortProton"
export loc_gui_rm_pp="Удалить PortProton"
export loc_gui_upd_pp="Проверить обновления"
export loc_gui_changelog="История изменений"
export loc_gui_change_loc="Сменить язык интерфейса"
......@@ -52,7 +56,7 @@ if [[ "${update_loc}" == "RUS" ]] ; then
export loc_tray_winefile="Файловый менеджер WINE"
export loc_tray_tascmng="Диспетчер задач WINE"
export loc_tray_cangelog="История изменений"
export loc_tray_force_exit="Завершить работу ${portname}"
export loc_tray_force_exit="Завершить работу PortProton"
export loc_mg_autoinstall="АВТОУСТАНОВКА"
export loc_mg_emulators="ЭМУЛЯТОРЫ"
......@@ -64,8 +68,8 @@ if [[ "${update_loc}" == "RUS" ]] ; then
export PW_SELECTION_DB_LOC="Найдено более одного DB файла для запускаемого приложения.\nВыберите необходимый, или перед следующим запуском удалите лишний DB файл.\n"
export inst_set="Выбор"
export inst_set_top="Установка ${portname}"
export sc_info="Ярлык будет создан в каталоге ${portname}."
export inst_set_top="Установка PortProton"
export sc_info="Ярлык будет создан в каталоге PortProton."
export sc_name="Название"
export sc_menu_desktop="Добавить ярлык в МЕНЮ -> Игры"
export sc_desktop_desktop="Добавить ярлык на Рабочий стол"
......@@ -74,32 +78,32 @@ if [[ "${update_loc}" == "RUS" ]] ; then
export inst_succ="Установка завершена успешно!"
export port_upd1="Обновление ${portname}"
export port_upd2="На сайте linux-gaming.ru вышло обновление для ${portname}\n"
export port_upd1="Обновление PortProton"
export port_upd2="На сайте linux-gaming.ru вышло обновление для PortProton\n"
export port_upd3="Действие:"
export port_upd4="Перейти на сайт"
export port_upd5="Напомнить позже"
export port_upd6="Больше не напоминать"
export scripts_upd1="Обновление скриптов"
export scripts_upd2="Доступно обновление скриптов для ${portname}"
export scripts_upd3="Действие :"
export scripts_upd4=бновить сейчас"
export scripts_upd5=апомнить позже"
export scripts_upd6="Больше не напоминать"
export scripts_upd2="Доступно обновление скриптов для PortProton"
export scripts_upd3="ВЫХОД"
export scripts_upd4=БНОВИТЬ СЕЙЧАС"
export scripts_upd5=АПОМНИТЬ ПОЗЖЕ"
export scripts_upd6="НЕ НАПОМИНАТЬ"
export port_clear_pfx="Вы действительно хотите очистить префикс ${portname}?"
export port_clear_pfx="Вы действительно хотите очистить префикс PortProton?"
export port_del1="Удаление $portname"
export port_del2="Вы действительно хотите полностью удалить ${portname}?"
export port_del1="Удаление PortProton"
export port_del2="Вы действительно хотите полностью удалить PortProton?"
export port_reinstall="Вы действительно хотите переустановить ${portname}?\nДля этого будет необходимо интернет соединение."
export port_reinstall="Вы действительно хотите переустановить PortProton?\nДля этого будет необходимо интернет соединение."
export port_deb1="PortWINE был запущен в режиме создания ${portname}.log и он успешно сохранен в корне каталога порта"
export port_deb1="PortWINE был запущен в режиме создания PortProton.log и он успешно сохранен в корне каталога порта"
export port_deb2="Для диагностики проблемы, скопируйте ВЕСЬ лог в соответствующий канал у нас на сервере дискорда: https://discord.gg/FTaheP99wE"
export port_start1="Запуск ${portname}"
export port_start2="В каком режиме вы хотите запустить ${portname}?"
export port_start1="Запуск PortProton"
export port_start2="В каком режиме вы хотите запустить PortProton?"
export port_start3="Режим:"
export port_start4="Обычный"
export port_start5="Отдельной X-сессии"
......@@ -107,12 +111,12 @@ if [[ "${update_loc}" == "RUS" ]] ; then
export port_start7="Запустить winetricks"
export port_start8="DXVK"
export port_debug="Не торопитесь! После окончания работы ${portname}, нажмите STOP."
export port_debug="Не торопитесь! После окончания работы PortProton, нажмите STOP."
export loc_create_shortcut_from_gui="Создать ярлык..."
export loc_create_shortcut="Создать ярлык для запускаемого файла."
export loc_delete_shortcut="Удалить ярлык для запускаемого файла."
export loc_debug="Запуск c созданием .log файла в корне ${portname}"
export loc_debug="Запуск c созданием .log файла в корне PortProton"
export loc_launch="Запустить файл..."
export loc_winecfg="Запустить winecfg для редактирования настроек выбранного префикса"
export loc_winefile="Запустить файловый менеждер встроенный в wine"
......@@ -291,7 +295,7 @@ if [[ "${update_loc}" == "RUS" ]] ; then
export loc_gui_error='Ошибка.'
export loc_gui_error_download="Проверьте интернет соединение и\nнажмите Repeat для повторной попытки скачивания"
export loc_gui_settings="Пожалуйста подождите."
export loc_gui_sett_info="Обновление конфигурации <b>${portname}</b>..."
export loc_gui_sett_info="Обновление конфигурации <b>PortProton</b>..."
export loc_gui_edit_db="Изменение файла настроек для:"
export loc_gui_edit_db_help="<b>ПРИМЕЧАНИЕ:</b> Для вывода справки по каждому пункту, просто наведите курсор мыши на текст."
......@@ -303,6 +307,8 @@ if [[ "${update_loc}" == "RUS" ]] ; then
export loc_gui_reset_db_help="Востановить все настройки по умолчанию."
export loc_disabled="Отключено"
export loc_skip="ПРОПУСТИТЬ"
export loc_repeat="ПОВТОРИТЬ"
export loc_gui_open_db="ОТКРЫТЬ ФАЙЛ НАСТРОЕК"
export loc_gui_open_db_help="Открыть файл настроек <b>.ppdb</b> в системном текстовом редакторе для просмотра и изменений переменных вручную."
......@@ -332,7 +338,7 @@ if [[ "${update_loc}" == "RUS" ]] ; then
export loc_gui_arg_exe_help="Добавление аргумента после <b>.exe</b> файла, так же как если бы вы добавили аргумент в ярлыке в системе <b>WINDOWS </b>"
export loc_gui_mango_fps="Ограничить FPS"
export loc_gui_mango_fps_help="Включение ограничения количества кадров в секунду средстами MANGOHUD встроенного в ${portname}"
export loc_gui_mango_fps_help="Включение ограничения количества кадров в секунду средстами MANGOHUD встроенного в PortProton"
export loc_gui_arg_gamescope="Добавить аргументы для GAMESCOPE:"
export loc_gui_arg_gamescope_help="Аргументы:
......@@ -347,6 +353,9 @@ if [[ "${update_loc}" == "RUS" ]] ; then
<b>-b:</b> создайте окно без полей.
<b>-f:</b> создайте полноэкранное окно."
export loc_gui_opengl_version="Принудительно выбрать версию OpenGL для игры"
export loc_gui_opengl_version_help="Можно выбрать необходимую версию OpenGL, некоторым играм необходим принудительный Compatibility Profile (COMPAT). (Примеры есть в выпадающем списке)"
export PW_USE_GAMESCOPE_INFO="Включение использования gamescope для запуска приложения.
Горячие клавиши:
......@@ -367,7 +376,7 @@ if [[ "${update_loc}" == "RUS" ]] ; then
export loc_gui_amd_vulkan_select_help="Выбор какая реализация vulkan будет использоваться для запуска игры"
export loc_gui_gpu_select="Выбрать видеокарту для запуска игры (в user.conf)"
export loc_gui_gpu_select_help="Выбор какая видеокарта будет использоваться для запуска игры (используется для всех запускаемых игр и программ в ${portname}.)"
export loc_gui_gpu_select_help="Выбор какая видеокарта будет использоваться для запуска игры (используется для всех запускаемых игр и программ в PortProton.)"
export loc_gui_check_new_wine="Проверяем новые версии WINE"
export loc_gui_check_new_wine_error="Не удается проверить новые версии WINE."
......@@ -396,7 +405,7 @@ if [[ "${update_loc}" == "RUS" ]] ; then
export loc_gui_vkbasalt_start="VKBASALT"
export loc_gui_mh_start="MANGOHUD"
export loc_gui_db_comments="Найден файл настроек ${portname} для"
export loc_gui_db_comments="Найден файл настроек PortProton для"
export loc_gui_vulkan_stable="Стабильные DXVK ${DXVK_STABLE_VER} и VKD3D ${VKD3D_STABLE_VER}"
export loc_gui_vulkan_git="Новейшие DXVK ${DXVK_GIT_VER} и VKD3D ${VKD3D_GIT_VER}"
......@@ -442,9 +451,9 @@ if [[ "${update_loc}" == "RUS" ]] ; then
elif [[ "${update_loc}" == "ENG" ]] ; then
export loc_gui_pw_reinstall_pp="REINSTALL ${portname}"
export loc_gui_rm_pp="REMOVE ${portname}"
export loc_gui_upd_pp="UPDATE ${portname}"
export loc_gui_pw_reinstall_pp="REINSTALL PortProton"
export loc_gui_rm_pp="REMOVE PortProton"
export loc_gui_upd_pp="UPDATE PortProton"
export loc_gui_changelog="CHANGELOG"
export loc_gui_change_loc="CHANGE LANGUAGE"
export loc_gui_edit_usc="EDIT USER.CONF"
......@@ -478,8 +487,8 @@ elif [[ "${update_loc}" == "ENG" ]] ; then
export PW_SELECTION_DB_LOC="More than one DB file found for the application being launched.\nSelect the required one, or delete the extra DB file before the next run.\n"
export inst_set="Choices"
export inst_set_top="Instaling ${portname}"
export sc_info="The shortcut will be created in the ${portname} directory."
export inst_set_top="Instaling PortProton"
export sc_info="The shortcut will be created in the PortProton directory."
export sc_name="Name"
export sc_menu_desktop="Add shortcut to MENU -> GAMES"
export sc_desktop_desktop="Add shortcut to Desktop"
......@@ -488,32 +497,32 @@ elif [[ "${update_loc}" == "ENG" ]] ; then
export inst_succ="The installation was successful."
export port_upd1="New update for ${portname}"
export port_upd2="On linux-gaming.ru site published an update for ${portname}\n"
export port_upd1="New update for PortProton"
export port_upd2="On linux-gaming.ru site published an update for PortProton\n"
export port_upd3="Action:"
export port_upd4="Go to the website"
export port_upd5="Remind me later"
export port_upd6="Do not remind me"
export scripts_upd1="New update for scripts"
export scripts_upd2="Scripts update avialable for ${portname}"
export scripts_upd3="Action:"
export scripts_upd4="Updating now"
export scripts_upd5="Remind me later"
export scripts_upd6="Do not remind me"
export scripts_upd2="Scripts update avialable for PortProton"
export scripts_upd3="EXIT"
export scripts_upd4="UPDATING NOW"
export scripts_upd5="REMIND ME LATER"
export scripts_upd6="DO NOT REMIND ME"
export port_clear_pfx="Do you want to clear prefix in ${portname}?"
export port_clear_pfx="Do you want to clear prefix in PortProton?"
export port_del1="Remove $portname"
export port_del2="Do you really want to remove $portname?"
export port_del1="Remove PortProton"
export port_del2="Do you really want to remove PortProton?"
export port_reinstall="Do you really want to reinstall ${portname}?\nFor this, an internet connection will be required."
export port_reinstall="Do you really want to reinstall PortProton?\nFor this, an internet connection will be required."
export port_deb1="${portname} was launched in creation mode ${portname}.log and it is successfully stored in the root directory of the port"
export port_deb1="PortProton was launched in creation mode PortProton.log and it is successfully stored in the root directory of the port"
export port_deb2="To diagnose the problem, copy ALL of the log to discord server: https://discord.gg/FTaheP99wE"
export port_start1="Starting the ${portname}"
export port_start2="In what mode you want to start the ${portname}?"
export port_start1="Starting the PortProton"
export port_start2="In what mode you want to start the PortProton?"
export port_start3="Mode:"
export port_start4="Normal"
export port_start5="Individual X-Session"
......@@ -521,12 +530,12 @@ elif [[ "${update_loc}" == "ENG" ]] ; then
export port_start7="Run winetricks"
export port_start8="DXVK"
export port_debug="Please wait! After finishing the ${portname}, click STOP."
export port_debug="Please wait! After finishing the PortProton, click STOP."
export loc_create_shortcut_from_gui="Create shortcut..."
export loc_create_shortcut="Create shortcut for select file..."
export loc_delete_shortcut="Delete shortcut for select file..."
export loc_debug="Launch with the creation of a .log file at the root ${portname}"
export loc_debug="Launch with the creation of a .log file at the root PortProton"
export loc_launch="Run file ..."
export loc_winecfg="Run winecfg to edit the settings of the selected prefix"
export loc_winefile="Run wine file manager"
......@@ -705,7 +714,7 @@ elif [[ "${update_loc}" == "ENG" ]] ; then
export loc_gui_error='Error.'
export loc_gui_error_download="You will need to check internet connection,and\npress Repeat for repeat download"
export loc_gui_settings="Please wait."
export loc_gui_sett_info="Updating configuration for <b>${portname}</b>..."
export loc_gui_sett_info="Updating configuration for <b>PortProton</b>..."
export loc_gui_edit_db="Change settings in database file for"
export loc_gui_edit_db_help="<b>NOTE:</b> To display help for each item, simply hover your mouse over the text"
......@@ -718,6 +727,8 @@ elif [[ "${update_loc}" == "ENG" ]] ; then
export loc_gui_reset_db_help="Restore default settings."
export loc_disabled="Disabled"
export loc_skip="SKIP"
export loc_repeat="REPEAT"
export loc_gui_open_db="OPEN THE SETTINGS FILE"
export loc_gui_open_db_help="Open the <b>.ppdb</b> settings file in a system text editor to view and change variables manually."
......@@ -748,7 +759,7 @@ A brief instruction:
export loc_gui_arg_exe_help="Adding an argument after the <b>.exe</b> file, just like you would add an argument in a shortcut on a <b>WINDOWS </b> system"
export loc_gui_mango_fps="MANGOHUD FPS LIMIT"
export loc_gui_mango_fps_help="Enabling FPS limits using MANGOHUD built into ${portname}"
export loc_gui_mango_fps_help="Enabling FPS limits using MANGOHUD built into PortProton"
export loc_gui_arg_gamescope="Add arguments for GAMESCOPE:"
export loc_gui_arg_gamescope_help="
......@@ -763,6 +774,9 @@ A brief instruction:
<b>-b:</b> create a border-less window.
<b>-f:</b> create a full-screen window."
export loc_gui_opengl_version="Forcibly select the OpenGL version for the game"
export loc_gui_opengl_version_help="You can select the required OpenGL version, some games require a forced Compatibility Profile (COMPAT). (Examples are in the drop-down list)"
export PW_USE_GAMESCOPE_INFO="
<b>Super + F :</b> Toggle fullscreen
<b>Super + N :</b> Toggle nearest neighbour filtering
......@@ -781,7 +795,7 @@ A brief instruction:
export loc_gui_amd_vulkan_select_help="Choosing which implementation of vulkan will be used to run the game"
export loc_gui_gpu_select="Choose a graphics card to run the game (in user.conf)"
export loc_gui_gpu_select_help="Select which video card will be used to run the game (used for all running games and programs in ${portname})"
export loc_gui_gpu_select_help="Select which video card will be used to run the game (used for all running games and programs in PortProton)"
export loc_gui_check_new_wine="Check new version WINE"
export loc_gui_check_new_wine_error="Error: check wine."
......@@ -811,7 +825,7 @@ A brief instruction:
export loc_gui_vkbasalt_top="vkBasalt settings for adding effects to games running under Vulkan. (The <b>HOME</b> key disables vkbasalt)\n<b>NOTE:</b> To display help for each item, simply hover over the text\n"
export loc_gui_db_comments="${portname} database file was found for"
export loc_gui_db_comments="PortProton database file was found for"
export loc_gui_vulkan_stable="Stable DXVK ${DXVK_STABLE_VER} и VKD3D ${VKD3D_STABLE_VER}"
export loc_gui_vulkan_git="Newest DXVK ${DXVK_GIT_VER} и VKD3D ${VKD3D_GIT_VER}"
......@@ -854,5 +868,4 @@ A brief instruction:
export loc_gui_terminal="TERMINAL"
export loc_gui_logo="LOGO"
fi
......@@ -4,6 +4,6 @@
#Rating=1-5
#####################examples###########################
export PW_VULKAN_USE="2"
export PW_WINE_USE="WINE_LG"
export PW_WINE_USE="PROTON_LG"
export PW_PREFIX_NAME="CALIBER"
export DISABLE_CP_DEFPFX=1
#!/usr/bin/env bash
#Author: Dezert1r
#GalaxyClient.exe
#GalaxyClient.exe
#GOG_Galaxy_2.0.exe
#Rating=1-5
################################################
......
......@@ -4,7 +4,7 @@
export LAUNCH_PARAMETERS=("/S")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Ankama-Setup.exe"
start_portwine
if try_download_no_mirror "https://download.ankama.com/launcher/full/win/" "${PW_AUTOINSTALL_EXE}"
if try_download "https://download.ankama.com/launcher/full/win/" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} Ankama Launcher. ${loc_gui_please_wait} "
pw_run "${PW_AUTOINSTALL_EXE}"
......
......@@ -6,7 +6,7 @@ export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Battle.net-Setup-${BN_LOC}.exe"
export PW_WINE_USE="WINE_LG"
start_portwine
if try_download_no_mirror "https://battle.net/download/getInstallerForGame?os=win&version=LIVE&gameProgram=BATTLENET_APP" "${PW_AUTOINSTALL_EXE}"
if try_download "https://battle.net/download/getInstallerForGame?os=win&version=LIVE&gameProgram=BATTLENET_APP" "${PW_AUTOINSTALL_EXE}" no_mirror
then
try_remove_dir "$WINEPREFIX/drive_c/ProgramData/Battle.net"
pw_kill_autostart Battle.net.exe &
......
......@@ -14,7 +14,7 @@ pw_clear_pfx
start_portwine
wait_wineserver
if try_download_no_mirror "https://nez-o-dn.playblackdesert.com/UploadData/installer/BlackDesert_Installer_RU.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://nez-o-dn.playblackdesert.com/UploadData/installer/BlackDesert_Installer_RU.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} Black Desert Online. ${loc_gui_please_wait} "
pw_run "${PW_AUTOINSTALL_EXE}"
......
......@@ -4,7 +4,7 @@
export LAUNCH_PARAMETERS=("/VERYSILENT" )
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/BethesdaNetLauncher_Setup.exe"
start_portwine
if try_download_no_mirror "https://download.cdp.bethesda.net/BethesdaNetLauncher_Setup.exe" "${PW_AUTOINSTALL_EXE}"
if try_download"https://download.cdp.bethesda.net/BethesdaNetLauncher_Setup.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} BethesdaNetLauncher. ${loc_gui_please_wait} "
pw_kill_autostart BethesdaNetLauncher.exe &
......
......@@ -4,7 +4,7 @@
export LAUNCH_PARAMETERS=("/VERYSILENT /SUPPRESSMSGBOXES")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/bsr_setup.exe"
start_portwine
if try_download_no_mirror "https://battleofspaceraiders.com/install/bsr_setup.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://battleofspaceraiders.com/install/bsr_setup.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} Battle Of Space Raiders. ${loc_gui_please_wait} "
pw_run "${PW_AUTOINSTALL_EXE}"
......
......@@ -4,14 +4,14 @@
export PW_PREFIX_NAME="CALIBER"
export LAUNCH_PARAMETERS=("/VERYSILENT")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/CaliberSetup.exe"
export PW_WINE_USE=WINE_LG
export PW_WINE_USE=PROTON_LG
export DISABLE_CP_DEFPFX=1
export PORTWINE_CREATE_SHORTCUT_NAME="CALIBER"
gui_proton_downloader silent "${PW_WINE_USE}"
start_portwine
if try_download_no_mirror "https://caliber-files.gcdn.co/caliber-s3/p1/a88c3b70f76a0e56b1e08b62c9895cfe/launcher/setup/CaliberSetup.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://caliber-files.gcdn.co/caliber-s3/p1/a88c3b70f76a0e56b1e08b62c9895cfe/launcher/setup/CaliberSetup.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} CALIBER. ${loc_gui_please_wait} "
pw_kill_autostart VC_redist.x64.exe 3 &
......
......@@ -8,7 +8,7 @@ export PW_USE_D3D_EXTRAS=1
export PORTWINE_CREATE_SHORTCUT_NAME="CatsLauncher"
start_portwine
if try_download_no_mirror "https://catswhoplay.com/downloads/CatsLauncher_0.1.10.msi" "${PW_AUTOINSTALL_EXE}"
if try_download "https://catswhoplay.com/downloads/CatsLauncher_0.1.10.msi" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} CatsLauncher. ${loc_gui_please_wait} "
pw_run msiexec /i "${PW_AUTOINSTALL_EXE}"
......
......@@ -4,7 +4,7 @@
export PW_URL_CEMU=($(curl -s "https://cemu.info" | grep "zip" | cut -d \" -f 2))
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/`echo ${PW_URL_CEMU} | awk -F/ '{print $5}'`"
start_portwine
if try_download_no_mirror "${PW_URL_CEMU}" "${PW_AUTOINSTALL_EXE}"
if try_download "${PW_URL_CEMU}" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} Cemu. ${loc_gui_please_wait} "
"$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)"
......
......@@ -7,7 +7,7 @@ export PORTWINE_CREATE_SHORTCUT_NAME="Citra"
start_portwine
if try_download_no_mirror "github.com/citra-emu/citra-web/releases/download/1.0/citra-setup-windows.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "github.com/citra-emu/citra-web/releases/download/1.0/citra-setup-windows.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} Citra. ${loc_gui_please_wait} "
pw_run "${PW_AUTOINSTALL_EXE}"
......
......@@ -7,7 +7,7 @@ export PORTWINE_CREATE_SHORTCUT_NAME="Crossout"
# export PW_PREFIX_NAME=DOTNET
start_portwine
if try_download_no_mirror "https://yupmaster.gaijinent.com/launcher/current.php?id=CrossoutLauncher" "${PW_AUTOINSTALL_EXE}"
if try_download "https://yupmaster.gaijinent.com/launcher/current.php?id=CrossoutLauncher" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} Crossout. ${loc_gui_please_wait} "
pw_kill_autostart launcher.exe 3 &
......
......@@ -4,7 +4,7 @@
export LAUNCH_PARAMETERS=("/VERYSILENT")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/CWClient_Install.exe"
start_portwine
if try_download_no_mirror "https://cdn-01.contractwarsgame.com/standalone/CWClient_Install.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://cdn-01.contractwarsgame.com/standalone/CWClient_Install.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} CONTRACT WARS Client. ${loc_gui_please_wait} "
pw_run "${PW_AUTOINSTALL_EXE}"
......
......@@ -3,7 +3,7 @@
########################################################################
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/demul07_280418.7z"
start_portwine
if try_download_no_mirror "http://demul.emulation64.com/files/demul07_280418.7z" "${PW_AUTOINSTALL_EXE}"
if try_download "http://demul.emulation64.com/files/demul07_280418.7z" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} Demul. ${loc_gui_please_wait} "
"$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)/Demul"
......
......@@ -4,7 +4,7 @@
export LAUNCH_PARAMETERS=("/S")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/dolphin-x64-5.0.exe"
start_portwine
if try_download_no_mirror "https://dl-mirror.dolphin-emu.org/5.0/dolphin-x64-5.0.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://dl-mirror.dolphin-emu.org/5.0/dolphin-x64-5.0.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} Dolphin 5.0. ${loc_gui_please_wait} "
pw_run "${PW_AUTOINSTALL_EXE}"
......
......@@ -10,7 +10,7 @@ export PW_PREFIX_NAME="EAAPP"
export PW_USE_EAC_AND_BE="1"
start_portwine
if try_download_no_mirror "https://origin-a.akamaihd.net/EA-Desktop-Client-Download/installer-releases/EAappInstaller.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://origin-a.akamaihd.net/EA-Desktop-Client-Download/installer-releases/EAappInstaller.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} EA Launcher. ${loc_gui_please_wait} "
pw_kill_autostart EABackgroundSer 5 please &
......@@ -23,4 +23,4 @@ then
kill_portwine
portwine_create_shortcut
fi
stop_portwine
stop_portwine
......@@ -9,7 +9,7 @@ export PORTWINE_CREATE_SHORTCUT_NAME="Epic Games Launcher"
try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.wine_ver"
start_portwine
if try_download_no_mirror "https://launcher-public-service-prod06.ol.epicgames.com/launcher/api/installer/download/EpicGamesLauncherInstaller.msi" "${PW_AUTOINSTALL_EXE}"
if try_download "https://launcher-public-service-prod06.ol.epicgames.com/launcher/api/installer/download/EpicGamesLauncherInstaller.msi" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} Epic Games Launcher. ${loc_gui_please_wait} "
# try_remove_dir "${WINEPREFIX}/drive_c/Program Files (x86)/Epic Games/Epic Online Services/"
......
......@@ -3,7 +3,7 @@
########################################################################
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/ePSXe205.zip"
start_portwine
if try_download_no_mirror "https://www.epsxe.com/files/ePSXe205.zip" "${PW_AUTOINSTALL_EXE}"
if try_download "https://www.epsxe.com/files/ePSXe205.zip" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} VBA-M. ${loc_gui_please_wait} "
"$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)/EPSXe"
......
......@@ -19,7 +19,8 @@ export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/eve-online-latest+Setup.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="EVE Online Launcher"
start_portwine
if try_download_no_mirror "https://launcher.ccpgames.com/eve-online/release/win32/x64/eve-online-latest+Setup.exe" "${PW_AUTOINSTALL_EXE}" ; then
if try_download "https://launcher.ccpgames.com/eve-online/release/win32/x64/eve-online-latest+Setup.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} EVE Online Launcher. ${loc_gui_please_wait} "
EVE_LAUNCHER_DIR="${WINEPREFIX}/drive_c/users/steamuser/AppData/Local/eve-online"
......
......@@ -3,7 +3,7 @@
########################################################################
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/fceux-2.6.5-win64.zip"
start_portwine
if try_download_no_mirror "https://github.com/TASEmulators/fceux/releases/download/v2.6.6/fceux-2.6.6-win64.zip" "${PW_AUTOINSTALL_EXE}"
if try_download "https://github.com/TASEmulators/fceux/releases/download/v2.6.6/fceux-2.6.6-win64.zip" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} FCEUX. ${loc_gui_please_wait} "
"$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)/FCEUX"
......
......@@ -22,7 +22,7 @@ pw_shutdown_please () {
export LAUNCH_PARAMETERS=("")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/GameforgeInstaller.exe"
start_portwine
if try_download_no_mirror "https://raw.githubusercontent.com/WarfaceZ/lutris-clients/master/GameforgeInstaller.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://raw.githubusercontent.com/WarfaceZ/lutris-clients/master/GameforgeInstaller.exe" "${PW_AUTOINSTALL_EXE}"
then
pw_start_progress_bar_block "Gameforge-Client. ${loc_gui_please_wait} "
pw_shutdown_please SparkWebHelper.exe &
......
......@@ -8,7 +8,7 @@ export PORTWINE_CREATE_SHORTCUT_NAME="Genshin Impact"
start_portwine
if try_download_no_mirror "https://ys-api-os.mihoyo.com/event/download_porter/link/ys_global/genshinimpactpc/default" "${PW_AUTOINSTALL_EXE}"
if try_download "https://ys-api-os.mihoyo.com/event/download_porter/link/ys_global/genshinimpactpc/default" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "Installing Genshin Impact Launcher. ${loc_gui_please_wait} "
pw_kill_autostart launcher.exe &
......
......@@ -4,7 +4,7 @@
export LAUNCH_PARAMETERS=("/S" )
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/GlyphInstall.exe"
start_portwine
if try_download_no_mirror "https://glyph.dyn.triongames.com/glyph/live/GlyphInstall.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://glyph.dyn.triongames.com/glyph/live/GlyphInstall.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} GlyphClient. ${loc_gui_please_wait} "
pw_kill_autostart GlyphClient.exe &
......
......@@ -13,7 +13,7 @@ export PW_WINE_USE=PROTON_STEAM_8.0-4
start_portwine
if try_download_no_mirror "https://content-system.gog.com/open_link/download?path=/open/galaxy/client/${GOG_VER}/setup_galaxy_${GOG_VER}.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://content-system.gog.com/open_link/download?path=/open/galaxy/client/${GOG_VER}/setup_galaxy_${GOG_VER}.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} GOG Galaxy. ${loc_gui_please_wait} "
pw_run "${PW_AUTOINSTALL_EXE}"
......
......@@ -10,7 +10,7 @@ start_portwine
mkdir -p "${WINEPREFIX}/drive_c/Program Files/Guild Wars 2/"
export PW_AUTOINSTALL_EXE="${WINEPREFIX}/drive_c/Program Files/Guild Wars 2/Gw2Setup-64.exe"
if try_download_no_mirror "https://s3.amazonaws.com/gw2cdn/client/branches/Gw2Setup-64.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://s3.amazonaws.com/gw2cdn/client/branches/Gw2Setup-64.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} Guild Wars 2. ${loc_gui_please_wait} "
pw_kill_autostart Gw2.exe 3 &
......
......@@ -6,7 +6,7 @@ export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/igclient_setup.exe"
export PW_DLL_INSTALL="vcrun2019"
start_portwine
if try_download_no_mirror "https://content.indiegalacdn.com/common/IGClientSetup.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://content.indiegalacdn.com/common/IGClientSetup.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} Indiegala Client. ${loc_gui_please_wait} "
pw_kill_autostart IGClient.exe 3 &
......
......@@ -4,7 +4,7 @@
export LAUNCH_PARAMETERS=("--silent")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/itch-setup.exe"
start_portwine
if try_download_no_mirror "https://itch.io/app/download?platform=windows" "${PW_AUTOINSTALL_EXE}"
if try_download "https://itch.io/app/download?platform=windows" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} ITCH.IO. ${loc_gui_please_wait} "
pw_kill_autostart itch.exe &
......
......@@ -7,7 +7,7 @@ export PW_PREFIX_NAME="LGC"
start_portwine
if try_download_no_mirror "https://redirect.lesta.ru/LGC/Lesta_Game_Center_Install_RU.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://redirect.lesta.ru/LGC/Lesta_Game_Center_Install_RU.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "Starting LGC installation..."
pw_kill_autostart lgc.exe &
......
......@@ -16,7 +16,7 @@ gui_proton_downloader silent "${PW_WINE_USE}"
pw_clear_pfx
start_portwine
wait_wineserver
if try_download_no_mirror "https://lol.secure.dyn.riotcdn.net/channels/public/x/installer/current/live.na.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://lol.secure.dyn.riotcdn.net/channels/public/x/installer/current/live.na.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "Installing League of Legends. ${loc_gui_please_wait} "
if [ "${update_loc}" = "RUS" ] ; then
......
......@@ -3,7 +3,7 @@
########################################################################
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/mame0259b_64bit.exe"
start_portwine
if try_download_no_mirror "https://github.com/mamedev/mame/releases/download/mame0259/mame0259b_64bit.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://github.com/mamedev/mame/releases/download/mame0259/mame0259b_64bit.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} MAME. ${loc_gui_please_wait} "
"$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)/Mame"
......
......@@ -8,7 +8,7 @@ export PORTWINE_CREATE_SHORTCUT_NAME="Modern Warships"
start_portwine
if try_download_no_mirror "https://gdn.gaijin.net/launcher/current.php?id=ModernWarshipsLauncher" "${PW_AUTOINSTALL_EXE}"
if try_download "https://gdn.gaijin.net/launcher/current.php?id=ModernWarshipsLauncher" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} Modern Warships. ${loc_gui_please_wait} "
pw_kill_autostart launcher.exe &
......
......@@ -4,7 +4,7 @@
export LAUNCH_PARAMETERS=("/s" "/nr" "/l=Russian")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/MWO_Launcher_Setup.exe"
start_portwine
if try_download_no_mirror "http://mwogame.com/download.php" "${PW_AUTOINSTALL_EXE}"
if try_download "http://mwogame.com/download.php" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} Metal War Online. ${loc_gui_please_wait} "
pw_run "${PW_AUTOINSTALL_EXE}"
......
......@@ -4,7 +4,7 @@
export LAUNCH_PARAMETERS=("/silent" "/NoLaunch" )
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/OriginSetup.exe"
start_portwine
if try_download_no_mirror "https://origin-a.akamaihd.net/Origin-Client-Download/origin/live/OriginThinSetup.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://origin-a.akamaihd.net/Origin-Client-Download/origin/live/OriginThinSetup.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} Origin. ${loc_gui_please_wait}"
# pw_kill_autostart Origin.exe &
......@@ -16,4 +16,4 @@ then
kill_portwine
portwine_create_shortcut
fi
stop_portwine
stop_portwine
......@@ -9,7 +9,7 @@ start_portwine
mkdir -p "${WINEPREFIX}/drive_c/Program Files (x86)/OSU/"
export PW_AUTOINSTALL_EXE="${WINEPREFIX}/drive_c/Program Files (x86)/OSU/osu!.exe"
if try_download_no_mirror "https://m1.ppy.sh/r/osu!install.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://m1.ppy.sh/r/osu!install.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} OSU!. ${loc_gui_please_wait} "
if [ -f "${PORT_WINE_PATH}/data/pfx_dotnet/drive_c/Program Files (x86)/OSU/osu!install.exe" ]; then
......
......@@ -8,7 +8,7 @@ export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Panzar.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Panzar"
start_portwine
if try_download_no_mirror "https://www.panzar.ru/ru/download/installer/" "${PW_AUTOINSTALL_EXE}"
if try_download "https://www.panzar.ru/ru/download/installer/" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} Panzar. ${loc_gui_please_wait} "
pw_kill_autostart start.exe 3 &
......
......@@ -9,12 +9,12 @@ export PW_PREFIX_NAME="DOTNET"
start_portwine
if try_download_no_mirror "https://plarium.com/services/api/downloads/desktop?lid=1&arc=64&os=windows" "${PW_AUTOINSTALL_EXE}"
if try_download "https://plarium.com/services/api/downloads/desktop?lid=1&arc=64&os=windows" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} Plarium Play. ${loc_gui_please_wait}"
pw_kill_autostart PlariumPlay.exe &
pw_run "${PW_AUTOINSTALL_EXE}"
portwine_exe="$WINEPREFIX/drive_c/users/steamuser/AppData/Local/PlariumPlay/PlariumPlay.exe"
portwine_exe="$WINEPREFIX/drive_c/users/steamuser/AppData/Local/PlariumPlay/PlariumPlay.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
try_remove_file "${portwine_exe}.ppdb"
kill_portwine
......
......@@ -5,7 +5,7 @@ export LAUNCH_PARAMETERS=("/S")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/PathOfExileInstaller.exe"
start_portwine
if try_download_no_mirror "https://web.poecdn.com/protected/downloads/PathOfExileInstaller.exe?key=lpKVe-ZJOqVrur8612s8gg" "${PW_AUTOINSTALL_EXE}"
if try_download "https://web.poecdn.com/protected/downloads/PathOfExileInstaller.exe?key=lpKVe-ZJOqVrur8612s8gg" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} Path of Exile. ${loc_gui_please_wait}"
pw_run "${PW_AUTOINSTALL_EXE}"
......
#!/usr/bin/env bash
# Author: chal55rus (Sergey P.)
##########################################################################
##########################################################################
export LAUNCH_PARAMETERS=("/VERYSILENT")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/PPSSPPSetup.exe"
start_portwine
if try_download_no_mirror "https://ppsspp.org/files/1_16_5/PPSSPPSetup.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://ppsspp.org/files/1_16_5/PPSSPPSetup.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} PPSSPPS. ${loc_gui_please_wait} "
pw_run "${PW_AUTOINSTALL_EXE}"
......
......@@ -11,11 +11,11 @@ export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Project64${PR64_VER}setup.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Project64"
start_portwine
if try_download_no_mirror "https://www.pj64-emu.com/download/project64${PR64_VER}installer" "${PW_AUTOINSTALL_EXE}"
if try_download "https://www.pj64-emu.com/download/project64${PR64_VER}installer" "${PW_AUTOINSTALL_EXE}" no_mirror
then
GET_URL_POSTFIX="$(cat "${PW_AUTOINSTALL_EXE}" | grep "Did your download not start?" | awk -F"$PR64_VER" '{print $2}' | awk -F'/' '{print $1}')"
try_remove_file "${PW_AUTOINSTALL_EXE}"
try_download_no_mirror "https://www.pj64-emu.com/file/setup-project64${PR64_VER}${GET_URL_POSTFIX}/" "${PW_AUTOINSTALL_EXE}"
try_download "https://www.pj64-emu.com/file/setup-project64${PR64_VER}${GET_URL_POSTFIX}/" "${PW_AUTOINSTALL_EXE}" no_mirror
pw_start_progress_bar_block "${loc_gui_installing_the} Project64. ${loc_gui_please_wait} "
pw_run "${PW_AUTOINSTALL_EXE}"
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Project64 3.0/Project64.exe"
......
......@@ -9,7 +9,7 @@ start_portwine
mkdir -p "${WINEPREFIX}/drive_c/games/PulseOnline/"
export PW_AUTOINSTALL_EXE="${WINEPREFIX}/drive_c/games/PulseOnline/PulseOnlineLauncher.exe"
if try_download_no_mirror "https://pulseonline.ru/game_download/PulseOnlineLauncher.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://pulseonline.ru/game_download/PulseOnlineLauncher.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
export portwine_exe="$PW_AUTOINSTALL_EXE"
try_remove_file "${portwine_exe}.ppdb"
......
......@@ -3,7 +3,7 @@
########################################################################
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/RetroArch.7z"
start_portwine
if try_download_no_mirror "https://buildbot.libretro.com/stable/1.16.0/windows/x86_64/RetroArch.7z" "${PW_AUTOINSTALL_EXE}"
if try_download "https://buildbot.libretro.com/stable/1.16.0/windows/x86_64/RetroArch.7z" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} RetroArch. ${loc_gui_please_wait} "
"$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)"
......
......@@ -6,7 +6,7 @@ export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Rockstar-Games-Launcher.exe"
export PORTWINE_CREATE_SHORTCUT_NAME="Rockstar"
start_portwine
if try_download_no_mirror "https://gamedownloads.rockstargames.com/public/installer/Rockstar-Games-Launcher.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://gamedownloads.rockstargames.com/public/installer/Rockstar-Games-Launcher.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "Rockstar-Games-Launcher. ${loc_gui_please_wait} "
try_remove_dir "$WINEPREFIX/drive_c/Program Files/Rockstar Games/Launcher"
......
......@@ -4,7 +4,7 @@
export LAUNCH_PARAMETERS=("/S")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/SO_installer.exe"
start_portwine
if try_download_no_mirror "https://update-nl-release.stalker.so/launcher/SO_installer.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://update-nl-release.stalker.so/launcher/SO_installer.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} Stalker Online. ${loc_gui_please_wait} "
pw_run "${PW_AUTOINSTALL_EXE}"
......
......@@ -7,7 +7,7 @@ export PW_PREFIX_NAME=DOTNET
start_portwine
if try_download_no_mirror "https://exbo2.b-cdn.net/EXBO_Setup_ru.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://exbo2.b-cdn.net/EXBO_Setup_ru.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "Installing STALCRAFT Launcher. ${loc_gui_please_wait} "
pw_kill_autostart ExboLauncher &
......
......@@ -7,7 +7,7 @@ export PW_USE_D3D_EXTRAS=1
start_portwine
if try_download_no_mirror "https://sg-public-api.hoyoverse.com/event/download_porter/link/hkrpg_global/oswebpc/default" "${PW_AUTOINSTALL_EXE}"
if try_download "https://sg-public-api.hoyoverse.com/event/download_porter/link/hkrpg_global/oswebpc/default" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "Installing Honkai Star Rail Launcher. ${loc_gui_please_wait} "
pw_kill_autostart launcher.exe &
......
......@@ -4,7 +4,7 @@
export LAUNCH_PARAMETERS=("/S" "/D=c:\Program Files (x86)\Steam")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/SteamSetup.exe"
start_portwine
if try_download_no_mirror "https://cdn.cloudflare.steamstatic.com/client/installer/SteamSetup.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://cdn.cloudflare.steamstatic.com/client/installer/SteamSetup.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_cs "${loc_gui_installing_the} Steam. ${loc_gui_please_wait} "
pw_kill_autostart steam.exe &
......
......@@ -6,7 +6,7 @@ export LAUNCH_PARAMETERS=("/VERYSILENT")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/SecretWorldLegendsMin.exe"
start_portwine
if try_download_no_mirror "https://web-cdn.funcom.com/downloads/swl/SecretWorldLegendsMin.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://web-cdn.funcom.com/downloads/swl/SecretWorldLegendsMin.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} Secret World Legends. ${loc_gui_please_wait} "
pw_kill_autostart ClientPatcher.exe &
......
......@@ -4,7 +4,7 @@
export LAUNCH_PARAMETERS=("/S" "/D=c:\Program Files (x86)\Ubisoft Game Launcher")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/UbisoftConnectInstaller.exe"
start_portwine
if try_download_no_mirror "https://ubistatic3-a.akamaihd.net/orbit/launcher_installer/UbisoftConnectInstaller.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://ubistatic3-a.akamaihd.net/orbit/launcher_installer/UbisoftConnectInstaller.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_cs "${loc_gui_installing_the} Ubisoft Connect. ${loc_gui_please_wait} "
pw_kill_autostart UbisoftConnect.exe &
......
......@@ -3,7 +3,7 @@
########################################################################
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/visualboyadvance-m-Win-x86_64.zip"
start_portwine
if try_download_no_mirror "https://github.com/visualboyadvance-m/visualboyadvance-m/releases/latest/download/visualboyadvance-m-Win-x86_64.zip" "${PW_AUTOINSTALL_EXE}"
if try_download "https://github.com/visualboyadvance-m/visualboyadvance-m/releases/latest/download/visualboyadvance-m-Win-x86_64.zip" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} VBA-M. ${loc_gui_please_wait} "
"$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)/Visualboyadvance-m"
......
......@@ -8,7 +8,7 @@ export WINEDLLOVERRIDES="mscoree,mshtml="
export PW_MUST_HAVE_DLL=""
start_portwine
if try_download_no_mirror "https://static.gc.my.games/VKPlayLoader.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://static.gc.my.games/VKPlayLoader.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
portwine_exe="$WINEPREFIX/drive_c/users/steamuser/AppData/Local/VKPlayLoader.exe"
try_remove_file "${portwine_exe}.ppdb"
......
......@@ -6,7 +6,7 @@ export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Warframe.msi"
export PORTWINE_CREATE_SHORTCUT_NAME="Warframe"
start_portwine
if try_download_no_mirror "http://content.warframe.com/dl/Warframe.msi" "${PW_AUTOINSTALL_EXE}"
if try_download "http://content.warframe.com/dl/Warframe.msi" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} Warframe. ${loc_gui_please_wait} "
pw_kill_autostart Launcher.exe 3 &
......
......@@ -8,7 +8,7 @@ export PW_PREFIX_NAME="WGC"
start_portwine
if try_download_no_mirror "https://redirect.wargaming.net/WGC/Wargaming_Game_Center_Install_WoT_${WGC_LOC}.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://redirect.wargaming.net/WGC/Wargaming_Game_Center_Install_WoT_${WGC_LOC}.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "Starting WGC installation..."
pw_kill_autostart wgc.exe &
......
......@@ -11,7 +11,7 @@ WOSB_VERSION="$(curl -s --list-only --connect-timeout 3 https://www.worldofseaba
[[ ! -z "$WOSB_VERSION" ]] && print_info "Found version: $WOSB_VERSION" || yad_error "Error while get version of WOSB INSTALLER."
start_portwine
if try_download_no_mirror "https://installer.launcher.xsolla.com/xlauncher-builds/xsolla-launcher-update/${WOSB_VERSION}/bin/installer.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://installer.launcher.xsolla.com/xlauncher-builds/xsolla-launcher-update/${WOSB_VERSION}/bin/installer.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "Installing World of Sea Battle. ${loc_gui_please_wait} "
pw_run "${PW_AUTOINSTALL_EXE}"
......
......@@ -3,7 +3,7 @@
########################################################################
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/xemu-win-release.zip"
start_portwine
if try_download_no_mirror "https://github.com/xemu-project/xemu/releases/latest/download/xemu-win-release.zip" "${PW_AUTOINSTALL_EXE}"
if try_download "https://github.com/xemu-project/xemu/releases/latest/download/xemu-win-release.zip" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} xemu. ${loc_gui_please_wait} "
"$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)/xemu"
......
......@@ -3,7 +3,7 @@
########################################################################
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/xenia_master.zip"
start_portwine
if try_download_no_mirror "https://github.com/xenia-project/release-builds-windows/releases/latest/download/xenia_master.zip" "${PW_AUTOINSTALL_EXE}"
if try_download "https://github.com/xenia-project/release-builds-windows/releases/latest/download/xenia_master.zip" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} Xenia. ${loc_gui_please_wait} "
"$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)/xenia"
......
......@@ -4,7 +4,7 @@
export LAUNCH_PARAMETERS=("/S")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/yabause-0.9.15-win64.exe"
start_portwine
if try_download_no_mirror "https://download.tuxfamily.org/yabause/releases/0.9.15/yabause-0.9.15-win64.exe" "${PW_AUTOINSTALL_EXE}"
if try_download "https://download.tuxfamily.org/yabause/releases/0.9.15/yabause-0.9.15-win64.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_block "${loc_gui_installing_the} Yabause. ${loc_gui_please_wait} "
pw_run "${PW_AUTOINSTALL_EXE}"
......
......@@ -41,16 +41,9 @@ then
MISSING_DESKTOP_FILE=0
fi
. "$(dirname $(readlink -f "$0"))/functions_helper"
# if [[ -z "${LANG}" ]] ; then
# export LANG=C
# export FORCE_ENG_LANG=1
# elif [[ "${START_FROM_STEAM}" == 1 ]] ; then
# export FORCE_ENG_LANG=1
# else
# unset FORCE_ENG_LANG
# fi
cd "$(dirname "$(readlink -f "$0")")" && export PORT_SCRIPTS_PATH="$(pwd)"
cd "${PORT_SCRIPTS_PATH}/../../" && export PORT_WINE_PATH="$(pwd)"
. "${PORT_SCRIPTS_PATH}/functions_helper"
create_new_dir "${HOME}/.local/share/applications"
if [[ "${PW_SILENT_RESTART}" == 1 ]] || [[ "${START_FROM_STEAM}" == 1 ]] ; then
......@@ -59,19 +52,15 @@ if [[ "${PW_SILENT_RESTART}" == 1 ]] || [[ "${START_FROM_STEAM}" == 1 ]] ; then
else
unset PW_GUI_DISABLED_CS
fi
unset MANGOHUD MANGOHUD_DLSYM PW_NO_ESYNC PW_NO_FSYNC PW_VULKAN_USE WINEDLLOVERRIDES PW_NO_WRITE_WATCH PW_YAD_SET PW_ICON_FOR_YAD
unset PW_CHECK_AUTOINSTAL PW_VKBASALT_EFFECTS PW_VKBASALT_FFX_CAS PORTWINE_DB PORTWINE_DB_FILE PW_DISABLED_CREATE_DB RADV_PERFTEST
unset CHK_SYMLINK_FILE MESA_GL_VERSION_OVERRIDE PATH_TO_GAME PW_START_DEBUG PORTPROTON_NAME PORTWINE_CREATE_SHORTCUT_NAME FLATPAK_IN_USE
unset CHK_SYMLINK_FILE PW_MESA_GL_VERSION_OVERRIDE MESA_GL_VERSION_OVERRIDE PATH_TO_GAME PW_START_DEBUG PORTPROTON_NAME FLATPAK_IN_USE
unset PW_PREFIX_NAME WINEPREFIX VULKAN_MOD PW_WINE_VER PW_ADD_TO_ARGS_IN_RUNTIME PW_GAMEMODERUN_SLR AMD_VULKAN_ICD PW_WINE_CPU_TOPOLOGY
unset PW_NAME_D_NAME PW_NAME_D_ICON PW_NAME_D_EXEC PW_EXEC_FROM_DESKTOP PW_ALL_DF PW_GENERATE_BUTTONS PW_NAME_D_ICON PW_NAME_D_ICON_48
unset MANGOHUD_CONFIG PW_WINE_USE WINEDLLPATH WINE WINEDIR WINELOADER WINESERVER PW_USE_RUNTIME
export portname=PortProton
unset MANGOHUD_CONFIG PW_WINE_USE WINEDLLPATH WINE WINEDIR WINELOADER WINESERVER PW_USE_RUNTIME PORTWINE_CREATE_SHORTCUT_NAME
cd "$(dirname "`readlink -f "$0"`")" && export PORT_SCRIPTS_PATH="$(pwd)"
cd "${PORT_SCRIPTS_PATH}/../../" && export PORT_WINE_PATH="$(pwd)"
export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp"
rm -f $PORT_WINE_TMP_PATH/*{exe,msi,tar}*
echo "" > "${PORT_WINE_TMP_PATH}/tmp_yad_form"
......@@ -142,7 +131,7 @@ export urlg="https://linux-gaming.ru/portproton/"
export url_cdn="https://cdn.linux-gaming.ru"
export PW_WINELIB="${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}"
try_remove_dir "${PW_WINELIB}/var"
export install_ver=$(cat "${PORT_WINE_TMP_PATH}/${portname}_ver" | head -n 1)
export install_ver=$(cat "${PORT_WINE_TMP_PATH}/PortProton_ver" | head -n 1)
export WINETRICKS_DOWNLOADER="curl"
export USER_CONF="${PORT_WINE_PATH}/data/user.conf"
check_user_conf
......@@ -184,6 +173,8 @@ fi
unset SKIP_CHECK_UPDATES
pw_check_and_download_plugins
export PW_VULKANINFO_PORTABLE="$PW_PLUGINS_PATH/portable/bin/x86_64-linux-gnu-vulkaninfo"
export VULKAN_DRIVER_NAME="$("$PW_VULKANINFO_PORTABLE" 2>/dev/null | grep driverName | awk '{print$3}' | head -1)"
if [[ -f "/tmp/portproton.lock" ]] ; then
print_warning "Found lock file: /tmp/portproton.lock"
......@@ -196,10 +187,11 @@ rm_lock_file () {
}
trap "rm_lock_file" EXIT
pw_download_libs
export PW_VULKANINFO_PORTABLE="$PW_PLUGINS_PATH/portable/bin/x86_64-linux-gnu-vulkaninfo"
export VULKAN_API_DRIVER_VERSION="$("$PW_VULKANINFO_PORTABLE" 2>/dev/null | grep "api" | head -n 1 | awk '{print $3}')"
export VULKAN_DRIVER_NAME="$("$PW_VULKANINFO_PORTABLE" 2>/dev/null | grep driverName | awk '{print$3}' | head -1)"
if check_flatpak
then try_remove_dir "${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}"
else pw_download_libs
fi
pw_init_db
. "${PORT_SCRIPTS_PATH}"/lang
pw_check_and_download_dxvk_and_vkd3d
......@@ -207,7 +199,7 @@ pw_check_and_download_dxvk_and_vkd3d
kill_portwine
killall -15 yad_v13_0 2>/dev/null
kill -TERM `pgrep -a yad | grep ${portname} | head -n 1 | awk '{print $1}'` 2>/dev/null
kill -TERM $(pgrep -a yad | grep PortProton | head -n 1 | awk '{print $1}') 2>/dev/null
if [[ -f "/usr/bin/portproton" ]] \
&& [[ -f "${HOME}/.local/share/applications/PortProton.desktop" ]]
......@@ -225,34 +217,40 @@ fi
[[ "$MISSING_DESKTOP_FILE" == 1 ]] && portwine_missing_shortcut
if [[ ! -z $(basename "${portwine_exe}" | grep .ppack) ]] ; then
export PW_ADD_TO_ARGS_IN_RUNTIME="--xterm"
unset PW_SANDBOX_HOME_PATH
pw_init_runtime
if check_flatpak
then TMP_ALL_PATH=""
else TMP_ALL_PATH="env PATH=\"${PATH}\" LD_LIBRARY_PATH=\"${PW_LD_LIBRARY_PATH}\""
fi
export PW_PREFIX_NAME=$(basename "$1" | awk -F'.' '{print $1}')
${pw_runtime} "${PW_PLUGINS_PATH}/portable/bin/xterm" -e 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 [[ ! -z $(pgrep -a xterm | grep ".ppack" | head -n 1 | awk '{print $1}') ]] ; then
sleep 0.5
cat << EOF > "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack.sh
#!/usr/bin/env bash
${TMP_ALL_PATH} unsquashfs -f -d "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}" "$1" \
|| echo "ERROR" > "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack_error
EOF
chmod u+x "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack.sh
${pw_runtime} ${PW_TERM} "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack.sh
if grep "ERROR" "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack_error &>/dev/null ; then
try_remove_file "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack_error
try_remove_file "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack.sh
yad_error "Unpack has FAILED for prefix: <b>\"${PW_PREFIX_NAME}\"</b>."
exit 1
else
try_remove_file "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack.sh
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"
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
yad_info "Unpack is DONE for prefix: <b>\"${PW_PREFIX_NAME}\"</b>."
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"
exit 0
fi
exit 0
fi
### CLI ###
......@@ -296,8 +294,7 @@ 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_WINE_LG_VER}$//g" | sed -e s/"${PW_PROTON_LG_VER}$//g")
if command -v wine &>/dev/null \
&& ! check_flatpak
if command -v wine &>/dev/null
then DIST_ADD_TO_GUI="!USE_SYSTEM_WINE"
else unset DIST_ADD_TO_GUI
fi
......@@ -358,7 +355,7 @@ if [[ -f "${portwine_exe}" ]] ; then
PW_SHORTCUT="${loc_gui_delete_shortcut}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${loc_delete_shortcut}:98"
fi
OUTPUT_START=$("${pw_yad}" --text-align=center --text "$PW_COMMENT_DB" --form \
--title "${portname}-${install_ver} (${scripts_install_ver})" \
--title "PortProton-${install_ver} (${scripts_install_ver})" \
--image "${PW_ICON_FOR_YAD}" --separator=";" \
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
--field="3D API : :CB" "${PW_DEFAULT_VULKAN_USE}" \
......@@ -393,7 +390,7 @@ else
then PW_GUI_SORT_TABS=(1 2 3 4 5)
else PW_GUI_SORT_TABS=(2 3 4 5 1)
fi
PW_GENERATE_BUTTONS="--field= $loc_create_shortcut_from_gui!${PW_GUI_ICON_PATH}/find_48.png!:FBTN%@bash -c \"button_click pw_find_exe\"%"
PW_GENERATE_BUTTONS="--field= $loc_create_shortcut_from_gui!${PW_GUI_ICON_PATH}/find_48.svg!:FBTN%@bash -c \"button_click pw_find_exe\"%"
for PW_DESKTOP_FILES in ${PW_ALL_DF} ; do
PW_NAME_D_ICON="$(cat "${PORT_WINE_PATH}/${PW_DESKTOP_FILES}" | grep Icon | awk -F= '{print $2}')"
PW_NAME_D_ICON_48="${PW_NAME_D_ICON//".png"/"_48.png"}"
......@@ -496,7 +493,7 @@ else
"${pw_yad_v13_0}" --key=$KEY --notebook --expand \
--width="${PW_MAIN_SIZE_W}" --height="${PW_MAIN_SIZE_H}" --no-buttons \
--auto-close --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
--title "${portname}-${install_ver} (${scripts_install_ver})" \
--title "PortProton-${install_ver} (${scripts_install_ver})" \
--tab-pos=bottom \
--tab="$loc_mg_autoinstall"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" \
--tab="$loc_mg_emulators"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" \
......@@ -508,7 +505,7 @@ else
"${pw_yad_v13_0}" --key=$KEY --notebook --expand \
--width="${PW_MAIN_SIZE_W}" --height="${PW_MAIN_SIZE_H}" --no-buttons \
--auto-close --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
--title "${portname}-${install_ver} (${scripts_install_ver})" \
--title "PortProton-${install_ver} (${scripts_install_ver})" \
--tab-pos=bottom \
--tab="$loc_mg_installed"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" \
--tab="$loc_mg_autoinstall"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" \
......
#!/usr/bin/env bash
#Author: Castro-Fidel (linux-gaming.ru)
#SCRIPTS_NEXT_VERSION=2275
#SCRIPTS_NEXT_VERSION=2282
########################################################################
export PW_MANGOHUD="0"
export DEFAULT_MANGOHUD_CONFIG="arch,cpu_mhz,cpu_temp,engine_version,gamemode,gpu_core_clock,gpu_mem_clock,gpu_name,gpu_temp,ram,resolution,vkbasalt,vram,vulkan_driver,wine"
......@@ -27,6 +27,7 @@ export WINE_ALLOW_XIM="0"
export PW_USE_SHADER_CACHE="1"
export PW_WINE_CPU_TOPOLOGY="disabled"
export STAGING_SHARED_MEMORY="1"
export PW_MESA_GL_VERSION_OVERRIDE="disabled"
export PW_FORCE_LARGE_ADDRESS_AWARE="1"
export PW_USE_EAC_AND_BE="1"
export PW_USE_US_LAYOUT="0"
......
......@@ -8,7 +8,7 @@ export port_ver=1.5
########################################################################
cd "$(dirname "$(readlink -f "$0")")"
script_path="$(pwd)"
def_path="${HOME}/${portname}"
def_path="${HOME}/PortProton"
########################################################################
fatal () {
echo -e "\n${1}\n"
......@@ -16,12 +16,12 @@ fatal () {
}
########################################################################
if [ "$(id -u)" == "0" ] ; then
$yad_gui --error --text "\nDo not run ${portname} from the superuser!" 2>/dev/null
$yad_gui --error --text "\nDo not run PortProton from the superuser!" 2>/dev/null
fatal "Do not run the script from the superuser!"
fi
########################################################################
[ -z "${XDG_DATA_HOME}" ] && export XDG_DATA_HOME="$HOME/.local/share"
PP_CONFIG_FILE="${HOME}/.config/${portname}.conf"
PP_CONFIG_FILE="${HOME}/.config/PortProton.conf"
if [ -f "${XDG_DATA_HOME}/PortWINE/PortProton/data/scripts/start.sh" ] ; then
echo "${XDG_DATA_HOME}/PortWINE/PortProton" > "${PP_CONFIG_FILE}"
elif [ -f "${HOME}/PortWINE/PortProton/data/scripts/start.sh" ] ; then
......@@ -31,7 +31,7 @@ fi
if [ "$script_path" == "/usr/bin" ] && [ -f "${PP_CONFIG_FILE}" ] ; then
export PORT_WINE_PATH="$(cat "${PP_CONFIG_FILE}" | head -n 1)"
if [ -f "${PORT_WINE_PATH}/data/scripts/start.sh" ] ; then
echo "${port_ver}" > "${PORT_WINE_PATH}/data/tmp/${portname}_ver"
echo "${port_ver}" > "${PORT_WINE_PATH}/data/tmp/PortProton_ver"
/usr/bin/env bash "${PORT_WINE_PATH}/data/scripts/start.sh" "$@"
exit 0
else
......@@ -78,7 +78,7 @@ export INSTALLING_PORT=1
if [[ "${PW_USE_NS}" != "1" ]] ; then
case $PW_SET_LANG in
"Russian")
inst1=$($yad_gui --title "Install ${portname}" --text "Выберите путь для установки (обновления) ${portname},\nили оставьте его по умолчанию.\n\nВнимание:\nУстанавливать необходимо на файловую систему Linux (ext4, btrfs и прочие)." --list --radiolist --width=600 --height=200 \
inst1=$($yad_gui --title "Install PortProton" --text "Выберите путь для установки (обновления) PortProton,\nили оставьте его по умолчанию.\n\nВнимание:\nУстанавливать необходимо на файловую систему Linux (ext4, btrfs и прочие)." --list --radiolist --width=600 --height=200 \
--column="Выбор" --column "Путь:" \
TRUE "${def_path}" \
FALSE "Другой путь...")
......@@ -91,7 +91,7 @@ if [[ "${PW_USE_NS}" != "1" ]] ; then
D_PATH="$($yad_gui --file --directory --title="Выберите путь..." --width=800 --height=800)" ;;
esac ;;
"English")
inst1=$($yad_gui --title "Install ${portname}" --text "Select the installation path (update) port,\nor leave it in default." --list --radiolist --width=600 --height=200 \
inst1=$($yad_gui --title "Install PortProton" --text "Select the installation path (update) port,\nor leave it in default." --list --radiolist --width=600 --height=200 \
--column="Set..." --column "Path:" \
TRUE "${def_path}" \
FALSE "Other path...")
......@@ -105,16 +105,16 @@ if [[ "${PW_USE_NS}" != "1" ]] ; then
esac ;;
esac
[[ -z "${D_PATH}" ]] && fatal
echo "${D_PATH}" | grep -i "${portname}" 2>/dev/null || D_PATH="${D_PATH}/${portname}"
echo "${D_PATH}" | grep -i "PortProton" 2>/dev/null || D_PATH="${D_PATH}/PortProton"
case $PW_SET_LANG in
"Russian")
progress_bar() {
$yad_gui --progress --title="Установка..." --text="Настройка ${portname}" --pulsate --auto-close --auto-kill --width=500
$yad_gui --progress --title="Установка..." --text="Настройка PortProton" --pulsate --auto-close --auto-kill --width=500
} ;;
"English")
progress_bar() {
$yad_gui --progress --title="Install..." --text="Install ${portname}" --pulsate --auto-close --auto-kill --width=500
$yad_gui --progress --title="Install..." --text="Install PortProton" --pulsate --auto-close --auto-kill --width=500
} ;;
esac
else
......@@ -133,10 +133,10 @@ else
fi
########################################################################
mkdir -p "${PORT_WINE_PATH}/data/tmp"
echo "${port_ver}" > "${PORT_WINE_PATH}/data/tmp/${portname}_ver"
echo "${port_ver}" > "${PORT_WINE_PATH}/data/tmp/PortProton_ver"
case "${PW_SET_LANG}" in
"Russian") echo "RUS" > "${PORT_WINE_PATH}/data/tmp/${portname}_loc" ;;
"English") echo "ENG" > "${PORT_WINE_PATH}/data/tmp/${portname}_loc" ;;
"Russian") echo "RUS" > "${PORT_WINE_PATH}/data/tmp/PortProton_loc" ;;
"English") echo "ENG" > "${PORT_WINE_PATH}/data/tmp/PortProton_loc" ;;
esac
########################################################################
if [[ "${PW_USE_NS}" != "1" ]] ; then
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment