Compare commits
	
		
			116 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					1b81250f39 | ||
| 
						 | 
					44fcea77d1 | ||
| 
						 | 
					36592917ce | ||
| 
						 | 
					71cbcb7b65 | ||
| 
						 | 
					2972d02f70 | ||
| 
						 | 
					f28aa3423e | ||
| 
						 | 
					0fe873e24e | ||
| 
						 | 
					4cf9554884 | ||
| 
						 | 
					bfeb559a2f | ||
| 
						 | 
					263072994c | ||
| 
						 | 
					175a15393f | ||
| 
						 | 
					337070718e | ||
| 
						 | 
					8d04691db5 | ||
| 
						 | 
					0d879470da | ||
| 
						 | 
					1a6bb21089 | ||
| 
						 | 
					1ebf5e1f0f | ||
| 
						 | 
					3422a2da79 | ||
| 
						 | 
					8c248618f9 | ||
| 
						 | 
					467caf6a5e | ||
| 
						 | 
					500681865c | ||
| 
						 | 
					3718b4d3d5 | ||
| 
						 | 
					e44a85ac20 | ||
| 
						 | 
					f0f0099164 | ||
| 
						 | 
					d2f5b1d36f | ||
| 
						 | 
					8b50639a80 | ||
| 
						 | 
					a6aec0bb95 | ||
| 
						 | 
					42feee474b | ||
| 
						 | 
					887d64fef4 | ||
| 
						 | 
					97645fe48e | ||
| 
						 | 
					c8a35b02cc | ||
| 
						 | 
					938fa60a02 | ||
| 
						 | 
					53f3d5a13e | ||
| 
						 | 
					2d6be9b1b0 | ||
| 
						 | 
					e623b589e8 | ||
| 
						 | 
					1280cb9ac5 | ||
| 
						 | 
					cc3fdaf86a | ||
| 
						 | 
					9e043ce6c1 | ||
| 
						 | 
					8b199bfe5a | ||
| 
						 | 
					6553d4f6fb | ||
| 
						 | 
					1470641e35 | ||
| 
						 | 
					641ac18316 | ||
| 
						 | 
					b0f830f274 | ||
| 
						 | 
					cd9df5097a | ||
| 
						 | 
					9bc78beae0 | ||
| 
						 | 
					4fd30bedb6 | ||
| 
						 | 
					e020be766f | ||
| 
						 | 
					c322b56eed | ||
| 
						 | 
					9a6e1f14f9 | ||
| 
						 | 
					4e5fed3c47 | ||
| 
						 | 
					d2138ff830 | ||
| 
						 | 
					aeaf707fc8 | ||
| 
						 | 
					ac89471590 | ||
| 
						 | 
					2bb37df6a1 | ||
| 
						 | 
					02dfbc89cf | ||
| 
						 | 
					73edeb4b3c | ||
| 
						 | 
					f0e4c82ba9 | ||
| 
						 | 
					2668d0e50e | ||
| 
						 | 
					f7803d8f40 | ||
| 
						 | 
					d830c189e7 | ||
| 
						 | 
					05f78285e1 | ||
| 
						 | 
					b4f7f301c5 | ||
| 
						 | 
					c401db2e68 | ||
| 
						 | 
					88ec0d7bb0 | ||
| 
						 | 
					f3197b4b9f | ||
| 
						 | 
					1e0872b892 | ||
| 
						 | 
					c9be94cc08 | ||
| 
						 | 
					fa0e61a875 | ||
| 
						 | 
					f3b1b93c6b | ||
| 
						 | 
					b151d29bfa | ||
| 
						 | 
					6d32500a04 | ||
| 
						 | 
					53d5e6ec77 | ||
| 
						 | 
					e247502614 | ||
| 
						 | 
					087530afdb | ||
| 
						 | 
					2ca39ea1db | ||
| 
						 | 
					60dc1de95d | ||
| 
						 | 
					7fd54ed79e | ||
| 
						 | 
					47e625d370 | ||
| 
						 | 
					6aed9c3a62 | ||
| 
						 | 
					4429fb5a7e | ||
| 
						 | 
					2169763824 | ||
| 
						 | 
					1e8927cca1 | ||
| 
						 | 
					9afcd9f9b4 | ||
| 
						 | 
					fad066079a | ||
| 
						 | 
					e3f35f84ee | ||
| 
						 | 
					a94b014ac7 | ||
| 
						 | 
					480480e60f | ||
| 
						 | 
					82f6e7cf6d | ||
| 
						 | 
					cf9ec3e71a | ||
| 
						 | 
					fd2291ecd3 | ||
| 
						 | 
					f3bf1ef7cb | ||
| 
						 | 
					30ac7a6e60 | ||
| 
						 | 
					e328c64599 | ||
| 
						 | 
					8835cdd5ae | ||
| 
						 | 
					d8a463104f | ||
| 
						 | 
					e46ebfb242 | ||
| 
						 | 
					187efccd68 | ||
| 
						 | 
					a672741c69 | ||
| 
						 | 
					acc2832649 | ||
| 
						 | 
					d20fdfd087 | ||
| 
						 | 
					6569e52e89 | ||
| 
						 | 
					7dc1358a85 | ||
| 
						 | 
					791c25a850 | ||
| 
						 | 
					2fb4fd4952 | ||
| 
						 | 
					3744dbf0b5 | ||
| 
						 | 
					0126e2ff4b | ||
| 
						 | 
					55760cd8f2 | ||
| 
						 | 
					535fec969d | ||
| 
						 | 
					6682459c99 | ||
| 
						 | 
					6c08c16ff6 | ||
| 
						 | 
					4a37ea80c1 | ||
| 
						 | 
					1cb3ecdad9 | ||
| 
						 | 
					c83970539c | ||
| 
						 | 
					4efeb762f0 | ||
| 
						 | 
					3ee922f4d4 | ||
| 
						 | 
					f114439f27 | ||
| 
						 | 
					2a96c9a9a1 | 
							
								
								
									
										66
									
								
								README-RU.md
									
									
									
									
									
								
							
							
						
						@@ -1,5 +1,5 @@
 | 
			
		||||
<div align="center">
 | 
			
		||||
  <img src="https://raw.githubusercontent.com/Castro-Fidel/PortProton_PKGBUILD/main/portproton.svg" width="64">
 | 
			
		||||
  <img src="https://raw.githubusercontent.com/Castro-Fidel/PortWINE/master/data_from_portwine/img/gui/portproton.svg" width="64">
 | 
			
		||||
  <h1 align="center">PortProton</h1>
 | 
			
		||||
  <p align="center">Проект, призванный сделать запуск Windows-игр в Linux простым и удобным как для начинающих, так и для опытных пользователей.
 | 
			
		||||
Проект стремится сделать запуск игр (и другого программного обеспечения) максимально простым, но в то же время предоставляет гибкие настройки для опытных пользователей.</p>
 | 
			
		||||
@@ -55,8 +55,8 @@ epm play portproton
 | 
			
		||||
exit
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
* **Ubuntu 20.04** (Kubuntu, Xubuntu, Lubuntu, и т.д.), **Linux Mint 20.x** :
 | 
			
		||||
[portproton_1.0-2_amd64.deb](https://github.com/Castro-Fidel/PortProton_dpkg/releases/download/portproton_1.0-2_amd64/portproton_1.0-2_amd64.deb)
 | 
			
		||||
* **Ubuntu 24.04**, **Debian 12**, **Linux Mint 21.x** **Deepin** :
 | 
			
		||||
[portproton_1.4-1_amd64.deb](https://github.com/Castro-Fidel/PortProton_dpkg/releases/download/portproton_1.4-1_amd64/portproton_1.4-1_amd64.deb)
 | 
			
		||||
 | 
			
		||||
* **Arch Linux** и производные (Manjaro, Garuda, и т.д.) :
 | 
			
		||||
[AUR](https://aur.archlinux.org/packages/portproton)
 | 
			
		||||
@@ -70,7 +70,7 @@ exit
 | 
			
		||||
sudo urpmi portproton
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
* **Fedora 37+** and **Nobara**:
 | 
			
		||||
* **Fedora 38+** and **Nobara**:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
sudo dnf copr enable boria138/portproton
 | 
			
		||||
@@ -82,22 +82,8 @@ sudo dnf install portproton
 | 
			
		||||
 | 
			
		||||
**ВНИМАНИЕ** : при универсальном способе установки PortProton зависимости должны быть установлены вручную!
 | 
			
		||||
 | 
			
		||||
Нормальная установка:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
wget -c "https://github.com/Castro-Fidel/PortWINE/raw/master/portwine_install_script/PortProton_1.0" && sh PortProton_1.0
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Тихая установка (ENG):
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
wget -c "https://github.com/Castro-Fidel/PortWINE/raw/master/portwine_install_script/PortProton_1.0" && sh PortProton_1.0 -eng
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Тихая установка (RUS):
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
wget -c "https://github.com/Castro-Fidel/PortWINE/raw/master/portwine_install_script/PortProton_1.0" && sh PortProton_1.0 -rus
 | 
			
		||||
wget -c "https://github.com/Castro-Fidel/PortProton_ALT/raw/main/portproton" && sh portproton
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Зависимости
 | 
			
		||||
@@ -106,7 +92,7 @@ wget -c "https://github.com/Castro-Fidel/PortWINE/raw/master/portwine_install_sc
 | 
			
		||||
 | 
			
		||||
Если у вас видеокарта от NVIDIA и установлен проприетарный драйвер, то необходимо проверить, установлена ли lib32-nvidia-utils (без нее ни одна 32-битная игра не будет работать)
 | 
			
		||||
 | 
			
		||||
* **Ubuntu / Linux Mint / Pop!_OS**
 | 
			
		||||
* **Ubuntu / Linux Mint / Pop!_OS / Debian**
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
sudo dpkg --add-architecture i386
 | 
			
		||||
@@ -117,7 +103,7 @@ sudo apt update
 | 
			
		||||
 | 
			
		||||
sudo apt upgrade
 | 
			
		||||
 | 
			
		||||
sudo apt install curl file libc6 libnss3 policykit-1 xz-utils zenity bubblewrap curl icoutils tar libvulkan1 libvulkan1:i386 wget zenity zstd cabextract xdg-utils openssl bc libgl1-mesa-glx libgl1-mesa-glx:i386
 | 
			
		||||
sudo apt install curl file libc6 libnss3 policykit-1 xz-utils bubblewrap curl icoutils tar libvulkan1 libvulkan1:i386  zstd cabextract xdg-utils openssl libgl1 libgl1:i386
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
* **Arch Linux / Manjaro**
 | 
			
		||||
@@ -133,7 +119,7 @@ Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
sudo pacman -Syu bash icoutils wget bubblewrap zstd cabextract bc tar openssl gamemode desktop-file-utils curl dbus freetype2 gdk-pixbuf2 ttf-font zenity gzip nss xorg-xrandr vulkan-driver vulkan-icd-loader lsof lib32-freetype2 lib32-libgl lib32-gcc-libs lib32-libx11 lib32-libxss lib32-alsa-plugins lib32-libgpg-error lib32-nss lib32-vulkan-driver lib32-vulkan-icd-loader lib32-gamemode lib32-openssl
 | 
			
		||||
sudo pacman -Syu bash bubblewrap zstd cabextract tar openssl desktop-file-utils curl dbus freetype2 gdk-pixbuf2 ttf-font gzip nss xorg-xrandr vulkan-driver vulkan-icd-loader lsof lib32-freetype2 lib32-libgl lib32-gcc-libs lib32-libx11 lib32-libxss lib32-alsa-plugins lib32-libgpg-error lib32-nss lib32-vulkan-driver lib32-vulkan-icd-loader lib32-lib32-openssl
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Если у вас видеокарта от **NVIDIA**, обязательно проверьте, установлен ли пакет **lib32-nvidia-utils**.
 | 
			
		||||
@@ -142,26 +128,10 @@ sudo pacman -Syu bash icoutils wget bubblewrap zstd cabextract bc tar openssl ga
 | 
			
		||||
sudo pacman -Syu lib32-nvidia-utils
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
* **Debian/Deepin**
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
sudo apt install software-properties-common -y
 | 
			
		||||
 | 
			
		||||
sudo apt-add-repository non-free
 | 
			
		||||
 | 
			
		||||
sudo dpkg --add-architecture i386
 | 
			
		||||
 | 
			
		||||
sudo apt update
 | 
			
		||||
 | 
			
		||||
sudo apt upgrade
 | 
			
		||||
 | 
			
		||||
sudo apt install bubblewrap curl gamemode icoutils tar wget zenity zstd libvulkan1 libvulkan1:i386 steam cabextract
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
* **openSUSE**
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
sudo zypper install curl icoutils wget zenity bubblewrap zstd cabextract tar steam zenity zenity-lang gamemoded libgamemode0 libgamemodeauto0
 | 
			
		||||
sudo zypper install curl bubblewrap zstd cabextract tar steam
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
* **Fedora**
 | 
			
		||||
@@ -171,7 +141,7 @@ sudo dnf update
 | 
			
		||||
 | 
			
		||||
sudo dnf upgrade --refresh
 | 
			
		||||
 | 
			
		||||
sudo dnf install curl gamemode gamemode.i686 icoutils wget zenity bubblewrap zstd cabextract tar openssl mesa-dri-drivers.i686 mesa-vulkan-drivers mesa-vulkan-drivers.i686 vulkan-loader vulkan-loader.i686 nss.i686 alsa-lib.i686 mesa-libGL.i686 mesa-libEGL.i686 wmctrl ImageMagick
 | 
			
		||||
sudo dnf install curl bubblewrap zstd cabextract tar openssl mesa-dri-drivers.i686 mesa-vulkan-drivers mesa-vulkan-drivers.i686 vulkan-loader vulkan-loader.i686 nss.i686 alsa-lib.i686 mesa-libGL.i686 mesa-libEGL.i686 wmctrl ImageMagick
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
* **Alt Linux**
 | 
			
		||||
@@ -181,7 +151,7 @@ sudo apt-get update
 | 
			
		||||
 | 
			
		||||
sudo apt-get dist-upgrade -y
 | 
			
		||||
 | 
			
		||||
sudo apt-get install bubblewrap cabextract curl gamemode icoutils i586-libvulkan1 libvulkan1 steam vulkan-tools wget zenity zstd
 | 
			
		||||
sudo apt-get install bubblewrap cabextract curl icoutils i586-libvulkan1 libvulkan1 vulkan-tools  zstd
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
* **ROSA DESKTOP FRESH R12**
 | 
			
		||||
@@ -191,19 +161,27 @@ sudo dnf update
 | 
			
		||||
 | 
			
		||||
sudo dnf upgrade --refresh
 | 
			
		||||
 | 
			
		||||
sudo dnf install sysvinit-tools curl libcurl4 icoutils wget zenity bubblewrap zstd cabextract tar libvulkan1 lib64vulkan1 vulkan.x86_64 vulkan.i686 vkd3d.x86_64 vkd3d.i686 coreutils file libc6 libnss3 xz bubblewrap xdg-utils openssl bc libgl1 lib64freetype2 libfreetype2 lib64txc-dxtn libtxc-dxtn lib64opencl1 libopencl1 libdrm2 libdrm2.i686 mesa.i686
 | 
			
		||||
sudo dnf install sysvinit-tools curl libcurl4 bubblewrap zstd cabextract tar libvulkan1 lib64vulkan1 vulkan.x86_64 vulkan.i686 vkd3d.x86_64 vkd3d.i686 coreutils file libc6 libnss3 xz bubblewrap xdg-utils openssl libgl1 lib64freetype2 libfreetype2 lib64txc-dxtn libtxc-dxtn lib64opencl1 libopencl1 libdrm2 libdrm2.i686 mesa.i686
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
* **RED OS**
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
sudo -E dnf install curl icoutils libcurl wget zenity bubblewrap zstd cabextract tar goverlay openssl steam
 | 
			
		||||
sudo -E dnf install curl icoutils libcurl  bubblewrap zstd cabextract tar goverlay openssl steam
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
* **Solus 4.x**
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
sudo eopkg it curl file zenity bubblewrap curl icoutils tar wget zenity zstd cabextract xdg-utils openssl bc vulkan vulkan-32bit mesalib-32bit samba
 | 
			
		||||
sudo eopkg it curl file bubblewrap curl icoutils tar  zstd cabextract xdg-utils openssl vulkan vulkan-32bit mesalib-32bit samba
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
* **Void**
 | 
			
		||||
```sh
 | 
			
		||||
sudo xbps-install -Su void-repo-multilib
 | 
			
		||||
 | 
			
		||||
sudo xbps-install -S bash wget icoutils yad bubblewrap zstd cabextract gzip tar xz openssl desktop-file-utils curl dbus freetype xdg-utils
 | 
			
		||||
gdk-pixbuf noto-fonts-ttf nss xrandr lsof mesa-demos ImageMagick Vulkan-Tools libgcc alsa-plugins-32bit libX11-32bit freetype-32bit libglvnd-32bit libgpg-error-32bit nss-32bit openssl-32bit vulkan-loader vulkan-loader-32bit
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Контакты
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										64
									
								
								README.md
									
									
									
									
									
								
							
							
						
						@@ -1,5 +1,5 @@
 | 
			
		||||
<div align="center">
 | 
			
		||||
  <img src="https://raw.githubusercontent.com/Castro-Fidel/PortProton_PKGBUILD/main/portproton.svg" width="64">
 | 
			
		||||
  <img src="https://raw.githubusercontent.com/Castro-Fidel/PortWINE/master/data_from_portwine/img/gui/portproton.svg" width="64">
 | 
			
		||||
  <h1 align="center">PortProton</h1>
 | 
			
		||||
  <p align="center">Project designed to make it easy and convenient to run Windows games on Linux for both beginners and advanced users.
 | 
			
		||||
The project strives to make launching games (and other software) as simple as possible, but at the same time provides flexible settings for advanced users.</p>
 | 
			
		||||
@@ -60,8 +60,8 @@ exit
 | 
			
		||||
sudo urpmi portproton
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
* **Ubuntu 20.04** (Kubuntu, Xubuntu, Lubuntu, etc.), **Linux Mint 20.x** :
 | 
			
		||||
[portproton_1.0-2_amd64.deb](https://github.com/Castro-Fidel/PortProton_dpkg/releases/download/portproton_1.0-2_amd64/portproton_1.0-2_amd64.deb)
 | 
			
		||||
* **Ubuntu 24.04**, **Debian 12**, **Linux Mint 21.x** **Deepin** :
 | 
			
		||||
[portproton_1.4-1_amd64.deb](https://github.com/Castro-Fidel/PortProton_dpkg/releases/download/portproton_1.4-1_amd64/portproton_1.4-1_amd64.deb)
 | 
			
		||||
 | 
			
		||||
* **Arch Linux** and derivatives (Manjaro, Garuda, etc.) :
 | 
			
		||||
[AUR](https://aur.archlinux.org/packages/portproton)
 | 
			
		||||
@@ -69,7 +69,7 @@ sudo urpmi portproton
 | 
			
		||||
* **OpenSuse**:
 | 
			
		||||
[OBS](https://software.opensuse.org/download/package?package=portproton&project=home%3ABoria138%3APortProton)
 | 
			
		||||
 | 
			
		||||
* **Fedora 37+** and **Nobara**:
 | 
			
		||||
* **Fedora 38+** and **Nobara**:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
sudo dnf copr enable boria138/portproton
 | 
			
		||||
@@ -82,22 +82,8 @@ sudo dnf install portproton
 | 
			
		||||
 | 
			
		||||
**ATTENTION** : with the universal method of installing PortProton, dependencies must be installed manually!
 | 
			
		||||
 | 
			
		||||
Normal installation:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
wget -c "https://github.com/Castro-Fidel/PortWINE/raw/master/portwine_install_script/PortProton_1.0" && sh PortProton_1.0
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Silent installation (ENG):
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
wget -c "https://github.com/Castro-Fidel/PortWINE/raw/master/portwine_install_script/PortProton_1.0" && sh PortProton_1.0 -eng
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Silent installation (RUS):
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
wget -c "https://github.com/Castro-Fidel/PortWINE/raw/master/portwine_install_script/PortProton_1.0" && sh PortProton_1.0 -rus
 | 
			
		||||
wget -c "https://github.com/Castro-Fidel/PortProton_ALT/raw/main/portproton" && sh portproton
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Dependencies
 | 
			
		||||
@@ -117,7 +103,7 @@ sudo apt update
 | 
			
		||||
 | 
			
		||||
sudo apt upgrade
 | 
			
		||||
 | 
			
		||||
sudo apt install curl file libc6 libnss3 policykit-1 xz-utils zenity bubblewrap curl icoutils tar libvulkan1 libvulkan1:i386 wget zenity zstd cabextract xdg-utils openssl bc libgl1-mesa-glx libgl1-mesa-glx:i386
 | 
			
		||||
sudo apt install curl file libc6 libnss3 policykit-1 xz-utils bubblewrap curl icoutils tar libvulkan1 libvulkan1:i386  zstd cabextract xdg-utils openssl libgl libgl1:i386
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
* **Arch Linux / Manjaro**
 | 
			
		||||
@@ -133,7 +119,7 @@ Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
sudo pacman -Syu bash icoutils wget bubblewrap zstd cabextract bc tar openssl gamemode desktop-file-utils curl dbus freetype2 gdk-pixbuf2 ttf-font zenity gzip nss xorg-xrandr vulkan-driver vulkan-icd-loader lsof lib32-freetype2 lib32-libgl lib32-gcc-libs lib32-libx11 lib32-libxss lib32-alsa-plugins lib32-libgpg-error lib32-nss lib32-vulkan-driver lib32-vulkan-icd-loader lib32-gamemode lib32-openssl
 | 
			
		||||
sudo pacman -Syu bash bubblewrap zstd cabextract tar openssl desktop-file-utils curl dbus freetype2 gdk-pixbuf2 ttf-font gzip nss xorg-xrandr vulkan-driver vulkan-icd-loader lsof lib32-freetype2 lib32-libgl lib32-gcc-libs lib32-libx11 lib32-libxss lib32-alsa-plugins lib32-libgpg-error lib32-nss lib32-vulkan-driver lib32-vulkan-icd-loader lib32-openssl
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
If you have a video card from **NVIDIA** , be sure to check if the **lib32-nvidia-utils** package is installed
 | 
			
		||||
@@ -142,26 +128,10 @@ If you have a video card from **NVIDIA** , be sure to check if the **lib32-nvidi
 | 
			
		||||
sudo pacman -Syu lib32-nvidia-utils
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
* **Debian/Deepin**
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
sudo apt install software-properties-common -y
 | 
			
		||||
 | 
			
		||||
sudo apt-add-repository non-free
 | 
			
		||||
 | 
			
		||||
sudo dpkg --add-architecture i386
 | 
			
		||||
 | 
			
		||||
sudo apt update
 | 
			
		||||
 | 
			
		||||
sudo apt upgrade
 | 
			
		||||
 | 
			
		||||
sudo apt install bubblewrap curl gamemode icoutils tar wget zenity zstd libvulkan1 libvulkan1:i386 steam cabextract
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
* **openSUSE**
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
sudo zypper install curl icoutils wget zenity bubblewrap zstd cabextract tar steam zenity zenity-lang gamemoded libgamemode0 libgamemodeauto0
 | 
			
		||||
sudo zypper install curl bubblewrap zstd cabextract tar steam
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
* **Fedora**
 | 
			
		||||
@@ -171,7 +141,7 @@ sudo dnf update
 | 
			
		||||
 | 
			
		||||
sudo dnf upgrade --refresh
 | 
			
		||||
 | 
			
		||||
sudo dnf install curl gamemode gamemode.i686 icoutils wget zenity bubblewrap zstd cabextract tar openssl mesa-dri-drivers.i686 mesa-vulkan-drivers mesa-vulkan-drivers.i686 vulkan-loader vulkan-loader.i686 nss.i686 alsa-lib.i686 mesa-libGL.i686 mesa-libEGL.i686 wmctrl ImageMagick
 | 
			
		||||
sudo dnf install curl bubblewrap zstd cabextract tar openssl mesa-dri-drivers.i686 mesa-vulkan-drivers mesa-vulkan-drivers.i686 vulkan-loader vulkan-loader.i686 nss.i686 alsa-lib.i686 mesa-libGL.i686 mesa-libEGL.i686 wmctrl ImageMagick
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
* **Alt Linux**
 | 
			
		||||
@@ -181,7 +151,7 @@ su -
 | 
			
		||||
 | 
			
		||||
apt-get update && apt-get dist-upgrade -y
 | 
			
		||||
 | 
			
		||||
apt-get install bubblewrap cabextract wget zstd gawk tar xz pciutils bc coreutils file curl icoutils wmctrl zenity xdg-utils desktop-file-utils libvulkan1 vulkan-tools libd3d libGL gamemode fontconfig xrdb libcurl libgio libnm libnsl1 libnss glibc-nss glibc-pthread i586-{libvulkan1,libd3d,libGL,libgio,libnm,libnsl1,libnss,glibc-nss,glibc-pthread,libunwind,xorg-dri-swrast}
 | 
			
		||||
apt-get install bubblewrap cabextract  zstd gawk tar xz pciutils coreutils file curl icoutils wmctrl xdg-utils desktop-file-utils libvulkan1 vulkan-tools libd3d libGL fontconfig xrdb libcurl libgio libnm libnsl1 libnss glibc-nss glibc-pthread i586-{libvulkan1,libd3d,libGL,libgio,libnm,libnsl1,libnss,glibc-nss,glibc-pthread,libunwind,xorg-dri-swrast}
 | 
			
		||||
 | 
			
		||||
exit
 | 
			
		||||
```
 | 
			
		||||
@@ -193,19 +163,27 @@ sudo dnf update
 | 
			
		||||
 | 
			
		||||
sudo dnf upgrade --refresh
 | 
			
		||||
 | 
			
		||||
sudo dnf install sysvinit-tools curl libcurl4 icoutils wget zenity bubblewrap zstd cabextract tar libvulkan1 lib64vulkan1 vulkan.x86_64 vulkan.i686 vkd3d.x86_64 vkd3d.i686 coreutils file libc6 libnss3 xz bubblewrap xdg-utils openssl bc libgl1 lib64freetype2 libfreetype2 lib64txc-dxtn libtxc-dxtn lib64opencl1 libopencl1 libdrm2 libdrm2.i686 mesa.i686
 | 
			
		||||
sudo dnf install sysvinit-tools curl libcurl4 bubblewrap zstd cabextract tar libvulkan1 lib64vulkan1 vulkan.x86_64 vulkan.i686 vkd3d.x86_64 vkd3d.i686 coreutils file libc6 libnss3 xz bubblewrap xdg-utils openssl libgl1 lib64freetype2 libfreetype2 lib64txc-dxtn libtxc-dxtn lib64opencl1 libopencl1 libdrm2 libdrm2.i686 mesa.i686
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
* **RED OS**
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
sudo -E dnf install curl icoutils libcurl wget zenity bubblewrap zstd cabextract tar goverlay openssl steam
 | 
			
		||||
sudo -E dnf install curl icoutils libcurl bubblewrap zstd cabextract tar goverlay openssl steam
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
* **Solus 4.x**
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
sudo eopkg it curl file zenity bubblewrap curl icoutils tar wget zenity zstd cabextract xdg-utils openssl bc vulkan vulkan-32bit mesalib-32bit samba
 | 
			
		||||
sudo eopkg it curl file bubblewrap curl icoutils tar zstd cabextract xdg-utils openssl bc vulkan vulkan-32bit mesalib-32bit samba
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
* **Void**
 | 
			
		||||
```sh
 | 
			
		||||
sudo xbps-install -Su void-repo-multilib
 | 
			
		||||
 | 
			
		||||
sudo xbps-install -S bash wget icoutils yad bubblewrap zstd cabextract gzip tar xz openssl desktop-file-utils curl dbus freetype xdg-utils
 | 
			
		||||
gdk-pixbuf noto-fonts-ttf nss xrandr lsof mesa-demos ImageMagick Vulkan-Tools libgcc alsa-plugins-32bit libX11-32bit freetype-32bit libglvnd-32bit libgpg-error-32bit nss-32bit openssl-32bit vulkan-loader vulkan-loader-32bit
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Contacts
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,196 @@ You can help us in the development of the project on the website: https://linux-
 | 
			
		||||
----------------------------------------
 | 
			
		||||
Changelog:
 | 
			
		||||
 | 
			
		||||
###Scripts version 2274### Date: 07.04.2024 / Download update size: 15 megabytes
 | 
			
		||||
* added the previous theme for PortProton, enabled by adding "export GUI_THEME=classic" to "data/user.conf"
 | 
			
		||||
 | 
			
		||||
###Scripts version 2273### Date: 06.04.2024 / Download update size: 15 megabytes
 | 
			
		||||
* the PortProton interface has been updated
 | 
			
		||||
* improved the quality of the tray icon
 | 
			
		||||
* added the CatsLauncher (the Front Edge game) to the AUTOINSTALL
 | 
			
		||||
* added initial support .css (GTK+)
 | 
			
		||||
* updated DOTNET prefix
 | 
			
		||||
 | 
			
		||||
###Scripts version 2272### Date: 04.04.2024 / Download update size: 15 megabytes
 | 
			
		||||
* script refactoring:
 | 
			
		||||
 - yad_gui script combined with functions_helper
 | 
			
		||||
 - runlib script combined with start.sh
 | 
			
		||||
 - all functions from runlib, yad_gui and start.sh moved to functions_helper
 | 
			
		||||
* fixed winetricks update on some systems (thanks to Boria138)
 | 
			
		||||
* when cleaning the prefix, Common Files directories are not deleted from Program Files (to save vst libraries)
 | 
			
		||||
* updated the interface software (yad) to version 13.0 with Cyrillic support by default
 | 
			
		||||
 | 
			
		||||
###Scripts version 2271### Date: 03.04.2024 / Download update size: 15 megabytes
 | 
			
		||||
* improved interface of the prefix manager (xterm has been replaced with the standard PortProton interface)
 | 
			
		||||
* fixed the launch of the game "Dragon Age: Origin" from EAapp
 | 
			
		||||
* many small script improvements
 | 
			
		||||
 | 
			
		||||
###Scripts version 2270### Date: 31.03.2024 / Download update size: 15 megabytes
 | 
			
		||||
* added support for the game Horizon Forbidden West (to apply, you need to run the exe of the game and select SETTINGS -> RESET SETTINGS)
 | 
			
		||||
* fixed the operation of WINE from Kron4ek and returned the ability to download it using GET-OTHER-WINE
 | 
			
		||||
* fixed the launch of GET-OTHER-WINE (the interface for downloading third-party versions of WINE-PROTON) when launching exe files
 | 
			
		||||
 | 
			
		||||
###Scripts version 2269### Date: 29.03.2024 / Download update size: 15 megabytes
 | 
			
		||||
* added improvements when using the system WINE
 | 
			
		||||
* the preparation of PortProton scripts for working in flatpak has been completed
 | 
			
		||||
 | 
			
		||||
###Scripts version 2268### Date: 27.03.2024 / Download update size: 15 megabytes
 | 
			
		||||
* fixed the launch of some 32-bit games on the DEFAULT prefix. Examples:
 | 
			
		||||
    LEGO Marvel Super Heroes
 | 
			
		||||
    LEGO The Lord Of The Rings
 | 
			
		||||
    LEGO Star Wars - The Clone Wars
 | 
			
		||||
    Warhammer 40,000 Space Marine
 | 
			
		||||
    Star Wars The Force Unleashed
 | 
			
		||||
    Wolverine
 | 
			
		||||
 | 
			
		||||
###Scripts version 2267### Date: 27.03.2024 / Download update size: 15 megabytes
 | 
			
		||||
* implemented a twofold acceleration of prefix updates on all systems
 | 
			
		||||
* improved the functionality of settings for exe files (EDIT_DB)
 | 
			
		||||
* fixed the automatic installation of BattleNET
 | 
			
		||||
 | 
			
		||||
###Scripts version 2266### Date: 26.03.2024 / Download update size: 185 megabytes
 | 
			
		||||
* HOTFIX - download plugins from GITHUB
 | 
			
		||||
 | 
			
		||||
###Scripts version 2265### Date: 26.03.2024 / Download update size: 570 megabytes
 | 
			
		||||
* the faudio component has been added to the DEFAULT prefix (required for games running on the Creation Engine, example The Elder Scrolls)
 | 
			
		||||
* the plugins_v14 library package has been updated:
 | 
			
		||||
    transferred from the libs package: d3d_extras, reshade and default_pfx
 | 
			
		||||
    portable versions have been added: yad_v13_0, perl, exiftool (thanks to Boria138)
 | 
			
		||||
* the libs_v47 library package has been updated:
 | 
			
		||||
    pressure-vessel 0.20240306.0
 | 
			
		||||
    sniper 0.20240307.80401
 | 
			
		||||
* updated PROTON_LG to version "9-2"
 | 
			
		||||
* updated versions:
 | 
			
		||||
    DXVK_GIT "2.3.1"
 | 
			
		||||
    VKD3D_GIT "1.1-3973"
 | 
			
		||||
* added saving of settings changes to EDIT_DB when using the "OPEN SETTINGS FILE" button
 | 
			
		||||
* improved support for the PortProton test build in flatpak
 | 
			
		||||
* many small script improvements
 | 
			
		||||
 | 
			
		||||
###Scripts version 2264### Date: 15.03.2024 / Download update size: 15 megabytes
 | 
			
		||||
* added the option to end the first PortProton session when starting the second
 | 
			
		||||
* added auto-installation of the game "Pulse Online"
 | 
			
		||||
 | 
			
		||||
###Scripts version 2263### Date: 15.03.2024 / Download update size: 15 megabytes
 | 
			
		||||
* the lock file of the second session has been moved to "/tmp/portproton.lock"
 | 
			
		||||
* when starting from the terminal, it is clearly indicated that the lock file and its location have been found
 | 
			
		||||
 | 
			
		||||
###Scripts version 2262### Date: 14.03.2024 / Download update size: 230 megabytes
 | 
			
		||||
* added a warning when starting the second PortProton session
 | 
			
		||||
* added the ability to disable the container
 | 
			
		||||
* added the ability to use system WINE
 | 
			
		||||
* updated PROTON_LG to version 9-1
 | 
			
		||||
* updated versions:
 | 
			
		||||
    DXVK_GIT "2.3-90"
 | 
			
		||||
    VKD3D_GIT "1.1-3954"
 | 
			
		||||
* fixed installation of libraries from the prefix manager on openSUSE OS (thanks to Boria138)
 | 
			
		||||
* a separate version of PROTON is no longer required for Black Desert Online
 | 
			
		||||
 | 
			
		||||
###Scripts version 2261### Date: 07.03.2024 / Download update size: 15 megabytes
 | 
			
		||||
* HOTFIX - use settings from Black Desert Online launcher
 | 
			
		||||
 | 
			
		||||
###Scripts version 2260### Date: 07.03.2024 / Download update size: 15 megabytes
 | 
			
		||||
* added Black Desert Online to AUTOINSTALL
 | 
			
		||||
* fixed the prefix filling request while using the automatic installation of desktop games/launchers
 | 
			
		||||
 | 
			
		||||
###Scripts version 2259### Date: 06.03.2024 / Download update size: 15 megabytes
 | 
			
		||||
* the PortProton update feature has been fixed for Steam Deck in Gaming Mode (the current update needs to be installed from desktop mode)
 | 
			
		||||
 | 
			
		||||
###Scripts version 2258### Date: 06.03.2024 / Download update size: 15 megabytes
 | 
			
		||||
* fixed saving complex arguments for an exe file (example: "- /B/TX /lang:01 /tex:1 /spg:50 KingKongTheGame.bf")
 | 
			
		||||
* added automatic recovery shortcut to the menu for Steam Deck after SteamOS update (it is necessary to launch PP with any other shortcut of any game, or from Gaming Mode)
 | 
			
		||||
* the use of gamemode is disabled for Steam Deck in Gaming Mode (the session itself uses the pre-installed gamemode in SteamOS)
 | 
			
		||||
 | 
			
		||||
###Scripts version 2257### Date: 15.02.2024 / Download update size: 15 megabytes
 | 
			
		||||
* for all setup.exe is automatically selected by WINE_LG (corrects errors unarc.dll )
 | 
			
		||||
* added a function to disable compositing (thanks to Boria138)
 | 
			
		||||
* improved prefix update function
 | 
			
		||||
* many small script improvements
 | 
			
		||||
 | 
			
		||||
###Scripts version 2256### Date: 13.02.2024 / Download update size: 15 megabytes
 | 
			
		||||
* updated WINE_LG to version 9-2
 | 
			
		||||
* updated versions:
 | 
			
		||||
    D8VK "1.7.1-2367"
 | 
			
		||||
    DXVK_GIT "2.3-57"
 | 
			
		||||
    VKD3D_GIT "1.1-3908"
 | 
			
		||||
* fixed FAKE_DLSS in some games (CyberFSR project)
 | 
			
		||||
* improved download functions
 | 
			
		||||
* for Steam Deck, the launch of some games has been fixed only from the second time
 | 
			
		||||
 | 
			
		||||
###Scripts version 2255### Date: 12.02.2024 / Download update size: 15 megabytes
 | 
			
		||||
* the portable versions of MANGOHUD and GAMESCOPE are disabled for Steam Deck in Gaming Mode
 | 
			
		||||
* small additional script improvements
 | 
			
		||||
 | 
			
		||||
###Scripts version 2254### Date: 11.02.2024 / Download update size: 15 megabytes
 | 
			
		||||
* PortProton interface restart has been accelerated
 | 
			
		||||
* added priority for using the system gamemode if it is installed (thanks to Boria138)
 | 
			
		||||
* updated startup, update and unpacking animations (thanks to WEBMAS and Dervart)
 | 
			
		||||
* checking the PortProton update on Steam Deck occurs only in desktop mode
 | 
			
		||||
 | 
			
		||||
###Scripts version 2253### Date: 10.02.2024 / Download update size: 8 megabytes
 | 
			
		||||
* minor fixes for SteamOS
 | 
			
		||||
 | 
			
		||||
###Scripts version 2252### Date: 09.02.2024 / Download update size: 33 megabytes
 | 
			
		||||
* GUI has been completely translated from zenity to yad
 | 
			
		||||
* download from wget has been switched to curl (improved download stability with some providers)
 | 
			
		||||
* improved graphics in games are enabled by default (turned off by pressing: "HOME")
 | 
			
		||||
* Cyrillic check in paths with a warning has been added
 | 
			
		||||
* fixed the work of zink in x11 in new versions of mesa (thanks Htylol)
 | 
			
		||||
* improved the work of FAKE_DLSS (CyberFSR project)
 | 
			
		||||
* added a setting for enabling FAKE_DLSS_3 (experimental dlssg-to-fsr3 project)
 | 
			
		||||
* updated the plugins package to version v13
 | 
			
		||||
* updated GALLIUM_NINE version to 0.9
 | 
			
		||||
* updated NVAPI version to 0.6.4-20
 | 
			
		||||
 | 
			
		||||
###Scripts version 2251### Date: 02.02.2024 / Download update size: 8 megabytes
 | 
			
		||||
* HOTFIX - fixed automatic closing of EAapp after its installation
 | 
			
		||||
 | 
			
		||||
###Scripts version 2250### Date: 02.02.2024 / Download update size: 8 megabytes
 | 
			
		||||
* fixed prefix adjustment and updating when starting from steam
 | 
			
		||||
* fixed unpacking of WINE archives when starting from steam
 | 
			
		||||
* significantly improved PP integration when launching from steam (ALL launchers should work)
 | 
			
		||||
* fixed a rare League of Legends installation error
 | 
			
		||||
* vkPlay installation has been updated
 | 
			
		||||
* Electronic Arts App auto-installation has been returned
 | 
			
		||||
* minor improvements to the 3D API customization feature
 | 
			
		||||
 | 
			
		||||
###Scripts version 2249### Date: 30.01.2024 / Download update size: 8 megabytes
 | 
			
		||||
* added a unique name to launch Crossout (requires restarting the auto-installation)
 | 
			
		||||
* fixed installation of the Project64 emulator
 | 
			
		||||
* removed DuckStation, ScummVM, RPCS3 emulators (it is recommended to use native versions for Linux)
 | 
			
		||||
* improved MANGOHUD configuration functions (thanks to Boria138)
 | 
			
		||||
* minor additional localization and script improvements
 | 
			
		||||
 | 
			
		||||
###Scripts version 2248### Date: 26.01.2024 / Download update size: 8 megabytes
 | 
			
		||||
* creating a shortcut in the "MENU -> Games" is separate from creating on the "Desktop"
 | 
			
		||||
* added a condition for using fonts from WINE Proton only if there are no original fonts in the prefix
 | 
			
		||||
* fixed the choice of installing libraries in the PortProton prefix manager
 | 
			
		||||
* the creation of symlinks in PortProton has been transferred from direct paths to relative ones
 | 
			
		||||
* added the "VKBASALT_USER_CONF" setting to use vkBasalt system settings (thanks Arta48)
 | 
			
		||||
* updated the "EVE Online Launcher" installer to the current version (thanks cefeiko)
 | 
			
		||||
 | 
			
		||||
###Scripts version 2247### Date: 23.01.2024 / Download update size: 8 megabytes
 | 
			
		||||
* improved operation of the portable version of gamemode
 | 
			
		||||
* added cleaning of the data/tmp directory from broken (undocumented) archives before launching PortProton
 | 
			
		||||
 | 
			
		||||
###Scripts version 2246### Date: 20.01.2024 / Download update size: 8 megabytes
 | 
			
		||||
* HOTFIX - fixed the launch of Modern Warships after its update
 | 
			
		||||
* HOTFIX - fixed launch with gamescope
 | 
			
		||||
* the REDUCE_PULSE_LATENCY variable was returned to the settings when running on wayland
 | 
			
		||||
* by default, when creating a shortcut, the option "create a shortcut for STEAM" is deselected
 | 
			
		||||
* the PW_RESTORE_RESOLUTION setting is replaced with an automatic return to the original resolution of the main monitor after the game is completed
 | 
			
		||||
* improved automatic font size adjustment in MANGOHUD (when using more than one monitor)
 | 
			
		||||
 | 
			
		||||
###Scripts version 2245### Date: 19.01.2024 / Download update size: 350 megabytes
 | 
			
		||||
* updated WINE_LG to version 9-0 and added fonts from proton steam
 | 
			
		||||
* The libs_v46 container library package has been updated
 | 
			
		||||
* updated MANGOHUD to version 0.7.0 in the container (thanks to Boria138)
 | 
			
		||||
* fixed the display of gamemode in MANGOHUD (thanks to Boria138)
 | 
			
		||||
* improved the functionality of selecting an nvidia graphics card with hybrid graphics
 | 
			
		||||
* added auto-installation of the Modern Warships game (thanks to ValoKarDin)
 | 
			
		||||
* the auto installer has been updated and the GOG Galaxy launcher has been fixed 
 | 
			
		||||
* the auto installer has been updated and the operation of the CALIBER game has been fixed
 | 
			
		||||
 | 
			
		||||
###Scripts version 2244### Date: 14.01.2024 / Download update size: 8 megabytes
 | 
			
		||||
* updated PROTON_LG to version 8-25-2 (added fonts from proton steam)
 | 
			
		||||
* fixed the display of the script version after reinstalling PortProton from the settings of the PortProton itself
 | 
			
		||||
@@ -1117,7 +1307,7 @@ export WINE_FULLSCREEN_FSR="1" (by default)
 | 
			
		||||
* updated db files
 | 
			
		||||
 | 
			
		||||
###Scripts version 2065###
 | 
			
		||||
* HOTFIX - correcting the termination of the yad and yad_v12_3 processes
 | 
			
		||||
* 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)
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,204 @@
 | 
			
		||||
-----------------------------------------
 | 
			
		||||
История изменений:
 | 
			
		||||
 | 
			
		||||
###Scripts version 2274### Дата: 07.04.2024 / Размер скачиваемого обновления: 15 мегабайт
 | 
			
		||||
* добавлена предыдущая тема для PortProton, включается добавлением "export GUI_THEME=classic" в "data/user.conf"
 | 
			
		||||
 | 
			
		||||
###Scripts version 2273### Дата: 06.04.2024 / Размер скачиваемого обновления: 15 мегабайт
 | 
			
		||||
* обновлён интерфейс PortProton
 | 
			
		||||
* улучшено качество иконки в трее
 | 
			
		||||
* улучшена локализация
 | 
			
		||||
* добавлен лончер CatsLauncher (игра "Передний край") в "АВТОУСТАНОВКИ"
 | 
			
		||||
* добавлена начальная поддержка стилей .css (GTK+)
 | 
			
		||||
* обновлен префикс DOTNET
 | 
			
		||||
 | 
			
		||||
###Scripts version 2272### Дата: 04.04.2024 / Размер скачиваемого обновления: 15 мегабайт
 | 
			
		||||
* рефакторинг скриптов:
 | 
			
		||||
    - скрипт yad_gui объединён с functions_helper
 | 
			
		||||
    - скрипт runlib объединён с start.sh
 | 
			
		||||
    - все функции из runlib, yad_gui и start.sh перенесены в functions_helper
 | 
			
		||||
* исправлено обновление winetricks на некоторых системах (спасибо Boria138)
 | 
			
		||||
* при чистке префикса не удаляются каталоги Common Files из Program Files (для сохранения библиотек vst)
 | 
			
		||||
* обновлено ПО интерфейса (yad) до версии 13.0 с поддержкой кириллицы по умолчанию
 | 
			
		||||
* дополнительные небольшие улучшения интерфейса
 | 
			
		||||
 | 
			
		||||
###Scripts version 2271### Дата: 03.04.2024 / Размер скачиваемого обновления: 15 мегабайт
 | 
			
		||||
* улучшен интерфейс менеджера префиксов (xterm заменен на стандартный интерфейс PortProton)
 | 
			
		||||
* исправлена работа русского языка в EAapp (для применения необходимо запустить EALauncher и в PP выбрать НАСТРОЙКИ -> СБРОСИТЬ НАСТРОЙКИ)
 | 
			
		||||
* исправлен запуск игры "DragonAge: Origin" из EAapp
 | 
			
		||||
* множество небольших улучшений скриптов
 | 
			
		||||
 | 
			
		||||
###Scripts version 2270### Дата: 31.03.2024 / Размер скачиваемого обновления: 15 мегабайт
 | 
			
		||||
* добавлена поддержка игры Horizon Forbidden West (для применения необходимо запустить exe игры и выбрать НАСТРОЙКИ -> СБРОСИТЬ НАСТРОЙКИ)
 | 
			
		||||
* исправлена работа WINE от Kron4ek и возвращена возможность его скачивания с помощью GET-OTHER-WINE
 | 
			
		||||
* исправлен запуск GET-OTHER-WINE (интерфейс скачивания сторонних версий WINE-PROTON) при запуске exe файлов
 | 
			
		||||
 | 
			
		||||
###Scripts version 2269### Дата: 29.03.2024 / Размер скачиваемого обновления: 15 мегабайт
 | 
			
		||||
* добавлены улучшения при использовании cистемного WINE
 | 
			
		||||
* завершена подготовка скриптов PortProton для работы во flatpak
 | 
			
		||||
 | 
			
		||||
###Scripts version 2268### Дата: 27.03.2024 / Размер скачиваемого обновления: 15 мегабайт
 | 
			
		||||
* исправлен запуск некоторых 32-х битных игр на префиксе DEFAULT. Примеры:
 | 
			
		||||
    LEGO Marvel Super Heroes
 | 
			
		||||
    LEGO The Lord Of The Rings
 | 
			
		||||
    LEGO Star Wars - The Clone Wars
 | 
			
		||||
    Warhammer 40,000 Space Marine
 | 
			
		||||
    Star Wars The Force Unleashed
 | 
			
		||||
    Wolverine
 | 
			
		||||
 | 
			
		||||
###Scripts version 2267### Дата: 27.03.2024 / Размер скачиваемого обновления: 15 мегабайт
 | 
			
		||||
* реализовано двукратное ускорение обновления префикса на всех системах
 | 
			
		||||
* улучшен функционал настроек для exe файлов (EDIT_DB)
 | 
			
		||||
* исправлена автоустановка BattleNET
 | 
			
		||||
 | 
			
		||||
###Scripts version 2266### Дата: 26.03.2024 / Размер скачиваемого обновления: 170 мегабайт
 | 
			
		||||
* HOTFIX - исправлен баг гитхаба при доступе к plugins
 | 
			
		||||
 | 
			
		||||
###Scripts version 2265### Дата: 26.03.2024 / Размер скачиваемого обновления: 570 мегабайт
 | 
			
		||||
* в префикс DEFAULT добавлен компонент faudio (необходим для игр на движке Creation Engine, пример The Elder Scrolls)
 | 
			
		||||
* обновлен пакет библиотек plugins_v14:
 | 
			
		||||
    перенесены из пакета libs: d3d_extras, reshade и default_pfx
 | 
			
		||||
    добавлены портативные версии: yad_v13_0, perl, exiftool (спасибо Boria138)
 | 
			
		||||
* обновлен пакет библиотек libs_v47:
 | 
			
		||||
    pressure-vessel 0.20240306.0
 | 
			
		||||
    sniper 0.20240307.80401
 | 
			
		||||
* обновлен PROTON_LG до версии "9-2"
 | 
			
		||||
* обновлены версии:
 | 
			
		||||
    DXVK_GIT "2.3.1"
 | 
			
		||||
    VKD3D_GIT "1.1-3973"
 | 
			
		||||
* добавлено сохранение изменений настроек в EDIT_DB при искользовании кнопки "ОТКРЫТЬ ФАЙЛ НАСТРОЕК"
 | 
			
		||||
* улучшена поддержка тестовой сборки PortProton во flatpak
 | 
			
		||||
* множество небольших улучшений скриптов
 | 
			
		||||
 | 
			
		||||
###Scripts version 2264### Дата: 15.03.2024 / Размер скачиваемого обновления: 15 мегабайт
 | 
			
		||||
* добавлен выбор завершения первой сессии PortProton при запуске второй
 | 
			
		||||
* добавлена автоустановка игры "Pulse Online"
 | 
			
		||||
 | 
			
		||||
###Scripts version 2263### Дата: 15.03.2024 / Размер скачиваемого обновления: 15 мегабайт
 | 
			
		||||
* файл блокировки второй сессии перенесен в "/tmp/portproton.lock"
 | 
			
		||||
* при запуске с терминала, явно указано что найден файл блокировки и его месторасположение
 | 
			
		||||
 | 
			
		||||
###Scripts version 2262### Дата: 14.03.2024 / Размер скачиваемого обновления: 230 мегабайт
 | 
			
		||||
* добавлено предупреждение при запуске второй сессии PortProton
 | 
			
		||||
* добавлена возможность отключения контейнера
 | 
			
		||||
* добавлена возможность использования системного WINE
 | 
			
		||||
* обновлен PROTON_LG до версии 9-1
 | 
			
		||||
* обновлены версии:
 | 
			
		||||
    DXVK_GIT "2.3-90"
 | 
			
		||||
    VKD3D_GIT "1.1-3954"
 | 
			
		||||
* исправлена установка библиотек из префикс менеджера на ОС "OpenSUSE" (спасибо Boria138)
 | 
			
		||||
* для Black Desert Online более не требуется отдельной версии PROTON
 | 
			
		||||
 | 
			
		||||
###Scripts version 2261### Дата: 07.03.2024 / Размер скачиваемого обновления: 15 мегабайт
 | 
			
		||||
* HOTFIX - изменения настроек игры из лаунчера Black Desert Online
 | 
			
		||||
 | 
			
		||||
###Scripts version 2260### Дата: 07.03.2024 / Размер скачиваемого обновления: 15 мегабайт
 | 
			
		||||
* добавлена автоустановка игры Black Desert Online
 | 
			
		||||
* исправлен запрос наполнения префикса во время исползования автоустановки игр/лаунчеров
 | 
			
		||||
 | 
			
		||||
###Scripts version 2259### Дата: 06.03.2024 / Размер скачиваемого обновления: 15 мегабайт
 | 
			
		||||
* для Steam Deck в режиме Gaming Mode исправлена возможность обновления PortProton (текущее обновление требуется устнановить из режима рабочего стола)
 | 
			
		||||
 | 
			
		||||
###Scripts version 2258### Дата: 06.03.2024 / Размер скачиваемого обновления: 15 мегабайт
 | 
			
		||||
* исправлено сохранение сложных аргументов для exe файла (пример: "- /B /TX /lang:01 /tex:1 /spg:50 KingKongTheGame.bf")
 | 
			
		||||
* добавлено автовостановление ярлыка в меню для Steam Deck после обновления SteamOS (необходим запуск PP любым другим ярлыком любой игры, или из режима Gaming Mode)
 | 
			
		||||
* для Steam Deck в режиме Gaming Mode отключено использование gamemode (сама сессия использует предустановленный gamemode в SteamOS)
 | 
			
		||||
 | 
			
		||||
###Scripts version 2257### Дата: 15.02.2024 / Размер скачиваемого обновления: 15 мегабайт
 | 
			
		||||
* для всех setup.exe автоматически выбирается WINE_LG (исправляет ошибки unarc.dll)
 | 
			
		||||
* добавлена функция отключения композитинга (спасибо Boria138)
 | 
			
		||||
* для префиксов созданных вручную, добавлен выбор его наполнения (чистый, или с рекомендованными библиотеками)
 | 
			
		||||
* улучшена функция обновления префикса при смене версии WINE-PROTON
 | 
			
		||||
* улучшение переводов 
 | 
			
		||||
* множество небольших улучшений скриптов
 | 
			
		||||
 | 
			
		||||
###Scripts version 2256### Дата: 13.02.2024 / Размер скачиваемого обновления: 15 мегабайт
 | 
			
		||||
* обновлен WINE_LG до версии 9-2
 | 
			
		||||
* обновлены версии:
 | 
			
		||||
    D8VK "1.7.1-2367"
 | 
			
		||||
    DXVK_GIT "2.3-57"
 | 
			
		||||
    VKD3D_GIT "1.1-3908"
 | 
			
		||||
* исправлена работа FAKE_DLSS в некоторых играх (проект CyberFSR)
 | 
			
		||||
* улучшены функции скачивания
 | 
			
		||||
* для Steam Deck исправлен запуск некоторых игр только со второго раза
 | 
			
		||||
 | 
			
		||||
###Scripts version 2255### Дата: 12.02.2024 / Размер скачиваемого обновления: 15 мегабайт
 | 
			
		||||
* для Steam Deck в режиме Gaming Mode отключены портативные версии MANGOHUD и GAMESCOPE
 | 
			
		||||
* небольшие дополнительные улучшения скриптов
 | 
			
		||||
 | 
			
		||||
###Scripts version 2254### Дата: 11.02.2024 / Размер скачиваемого обновления: 15 мегабайт
 | 
			
		||||
* ускорен перезапуск интерфейса PortProton
 | 
			
		||||
* добавлен приоритет использования системного gamemode если он установлен (спасибо Boria138)
 | 
			
		||||
* обновлены анимации запуска, обновления и распаковки (спасибо WEBMAS и Dervart)
 | 
			
		||||
* проверка обновления PortProton на Steam Deck происходит только в режиме рабочего стола
 | 
			
		||||
 | 
			
		||||
###Scripts version 2253### Дата: 10.02.2024 / Размер скачиваемого обновления: 8 мегабайт
 | 
			
		||||
* небольшие улучшения для SteamOS
 | 
			
		||||
 | 
			
		||||
###Scripts version 2252### Дата: 09.02.2024 / Размер скачиваемого обновления: 33 мегабайт
 | 
			
		||||
* интерфейс полностью переведен с zenity на yad
 | 
			
		||||
* скачивание с wget переведено на curl (для улучшения стабильности скачивания с некоторыми провайдерами)
 | 
			
		||||
* включено по умолчанию улучшение графики в играх (выключение по клавише: "HOME")
 | 
			
		||||
* добалена проверка на кирилицу в путях с предупреждением
 | 
			
		||||
* исправлена работа zink в x11 в новых версиях mesa (спасибо Htylol)
 | 
			
		||||
* улучшена работа FAKE_DLSS (проект CyberFSR)
 | 
			
		||||
* добавлена настройка включения FAKE_DLSS_3 (эксперементальный проект dlssg-to-fsr3)
 | 
			
		||||
* обновлен пакет plugins до версии v13
 | 
			
		||||
* обновлена версия GALLIUM_NINE до 0.9
 | 
			
		||||
* обновлена версия NVAPI до 0.6.4-20
 | 
			
		||||
 | 
			
		||||
###Scripts version 2251### Дата: 02.02.2024 / Размер скачиваемого обновления: 8 мегабайт
 | 
			
		||||
* HOTFIX - исправлено автоматическое закрытие EAapp после его установки на некоторых системах
 | 
			
		||||
 | 
			
		||||
###Scripts version 2250### Дата: 02.02.2024 / Размер скачиваемого обновления: 8 мегабайт
 | 
			
		||||
* исправлено добавление ярлыков в steam если имеется более одного каталога с пользователями в steam
 | 
			
		||||
* исправлена подготавка префикса и его обновление при запуске из steam
 | 
			
		||||
* исправлена распаковка архивов WINE при запуске из steam
 | 
			
		||||
* значительно улучшена интеграция PP при запуске из steam (должны работать ВСЕ лаунчеры)
 | 
			
		||||
* исправлена редкая ошибка установки League of Legends
 | 
			
		||||
* обновлена установка vkPlay
 | 
			
		||||
* возвращена автоустановка Electronic Arts App
 | 
			
		||||
* небольшие улучшения функции настройки 3D API
 | 
			
		||||
 | 
			
		||||
###Scripts version 2249### Дата: 30.01.2024 / Размер скачиваемого обновления: 8 мегабайт
 | 
			
		||||
* добавлено уникальное имя для запуска Crossout (требуется повторный запуск автоустановки)
 | 
			
		||||
* исправлена установка эмулятора Project64
 | 
			
		||||
* удалены эмуляторы DuckStation, ScummVM, RPCS3 (рекомендуется использовать нативные версии для Linux)
 | 
			
		||||
* улучшены функции настройки MANGOHUD (спасибо Boria138)
 | 
			
		||||
* небольшие дополнительные улучшения локализации и скриптов
 | 
			
		||||
 | 
			
		||||
###Scripts version 2248### Дата: 26.01.2024 / Размер скачиваемого обновления: 8 мегабайт
 | 
			
		||||
* создание ярлыка в "МЕНЮ -> Игры" отделены от создания на "Рабочем столе"
 | 
			
		||||
* добавлено условие использования шрифтов из WINE Proton, только если нет оригинальных шрифтов в префиксе
 | 
			
		||||
* исправлен выбор установки библиотек в префикс менеджере PortProton
 | 
			
		||||
* создание симлинков в PortProton переведены с прямых путей, на относительные
 | 
			
		||||
* добавлена настройка "VKBASALT_USER_CONF" для использования системных настроек vkBasalt (спасибо Arta48)
 | 
			
		||||
* обновлен установщик "EVE Online Launcher" на актуальную версию (спасибо cefeiko)
 | 
			
		||||
 | 
			
		||||
###Scripts version 2247### Дата: 23.01.2024 / Размер скачиваемого обновления: 8 мегабайт
 | 
			
		||||
* улучшена работа портативной версии gamemode
 | 
			
		||||
* исправление опечаток
 | 
			
		||||
* добавлена очистка data/tmp каталога от битых (недокаченных) архивов, перед запуском PortProton
 | 
			
		||||
 | 
			
		||||
###Scripts version 2246### Дата: 20.01.2024 / Размер скачиваемого обновления: 8 мегабайт
 | 
			
		||||
* HOTFIX - исправлен запуск Modern Warships после его обновления
 | 
			
		||||
* HOTFIX - исправлен запуск с gamescope
 | 
			
		||||
* возвращена переменная REDUCE_PULSE_LATENCY в настройки при запуске на wayland
 | 
			
		||||
* по умолчанию при создании ярлыка снят выбор с пункта "создать ярлык для STEAM"
 | 
			
		||||
* заменена настройка PW_RESTORE_RESOLUTION на автоматический возврат исходного разрешения главного монитора после завершения игры
 | 
			
		||||
* улучшена автоматическая настройка размера шрифта в MANGOHUD (при использовании более одного монитора)
 | 
			
		||||
 | 
			
		||||
###Scripts version 2245### Дата: 19.01.2024 / Размер скачиваемого обновления: 350 мегабайт
 | 
			
		||||
* обновлен WINE_LG до версии 9-0 и добавлены шрифты из proton steam
 | 
			
		||||
* обновлен пакет библиотек контейнера libs_v46
 | 
			
		||||
* обновлен MANGOHUD до версии 0.7.0 в контейнере (спасибо Boria138)
 | 
			
		||||
* исправлено отображение работы gamemode в MANGOHUD (спасибо Boria138)
 | 
			
		||||
* улучшен функционал выбора видеокарты nvidia с гибридной графикой
 | 
			
		||||
* небольшие улучшения переводов
 | 
			
		||||
* добавлена автоустановка игры Modern Warships (спасибо ValoKarDin)
 | 
			
		||||
* обновлен автоустановщик и исправлена работа лончера GOG Galaxy 
 | 
			
		||||
* обновлен автоустановщик и исправлена работа игры CALIBER
 | 
			
		||||
 | 
			
		||||
###Scripts version 2244### Дата: 14.01.2024 / Размер скачиваемого обновления: 8 мегабайт
 | 
			
		||||
* обновлен PROTON_LG до версии 8-25-2 (добавлены шрифты из proton steam)
 | 
			
		||||
* исправлено отображение версии скриптов после переустановки PortProton из настроек самого PortProton
 | 
			
		||||
@@ -925,7 +1123,7 @@ export WINE_FULLSCREEN_FSR="1" (используется по умолчанию
 | 
			
		||||
* обновлены db файлы
 | 
			
		||||
 | 
			
		||||
###Scripts version 2065###
 | 
			
		||||
* HOTFIX - корректировка завершения процессов yad и yad_v12_3
 | 
			
		||||
* HOTFIX - корректировка завершения процессов yad и yad_v13_0
 | 
			
		||||
 | 
			
		||||
###Scripts version 2064###
 | 
			
		||||
* добавлено уведомление пользователю о возможных проблемах при запуске в Wayland сессии (один раз и только под Wayland)
 | 
			
		||||
@@ -1332,7 +1530,7 @@ PS: не забывает для активации добавить перем
 | 
			
		||||
 | 
			
		||||
###Scripts version 1104###
 | 
			
		||||
* крупное обновлеение контейнера (libs_v16):
 | 
			
		||||
    - добавлен /bin/yad_v12_3 версии 10.1 скомпилированный специально для будущего меню в трее)
 | 
			
		||||
    - добавлен /bin/yad_v13_0 версии 10.1 скомпилированный специально для будущего меню в трее)
 | 
			
		||||
    - обновлен MANGOHUD (требуется проверка под OpenGL)
 | 
			
		||||
    - обновлен 7z необходимый для будущей автоматической установки Rockstar Game Launcher
 | 
			
		||||
* для тестовой поддержки wayland добавлена переменная в скрипт var: GDK_BACKEND="x11"
 | 
			
		||||
 
 | 
			
		||||
@@ -33,22 +33,17 @@ d3d9.maxFrameRate = 240
 | 
			
		||||
#
 | 
			
		||||
# Supported values: Any four-digit hex number.
 | 
			
		||||
 | 
			
		||||
dxgi.customDeviceId = 222F
 | 
			
		||||
dxgi.customVendorId = 10de
 | 
			
		||||
# dxgi.customDeviceDesc = "NVIDIA GeForce RTX 4090"
 | 
			
		||||
# dxgi.customDeviceId = 2684
 | 
			
		||||
# dxgi.customVendorId = 10de
 | 
			
		||||
# dxgi.hideAmdGpu = True
 | 
			
		||||
# dxgi.hideNvidiaGpu = False
 | 
			
		||||
 | 
			
		||||
# d3d9.customDeviceId = 222F
 | 
			
		||||
# d3d9.customDeviceDesc = "NVIDIA GeForce RTX 4090"
 | 
			
		||||
# d3d9.customDeviceId = 2684
 | 
			
		||||
# d3d9.customVendorId = 10de
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Override the reported device description
 | 
			
		||||
#
 | 
			
		||||
# Supported values: Any string.
 | 
			
		||||
 | 
			
		||||
# dxgi.customDeviceDesc = ""
 | 
			
		||||
# d3d9.customDeviceDesc = ""
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Override maximum amount of device memory and shared system memory
 | 
			
		||||
# reported to the application. This may fix texture streaming issues
 | 
			
		||||
# in games that do not support cards with large amounts of VRAM.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/EALauncher.png
									
									
									
									
									
										Executable file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 41 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/gui/24.png
									
									
									
									
									
										Executable file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 4.5 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/gui/28.png
									
									
									
									
									
										Executable file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 4.3 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/gui/32.png
									
									
									
									
									
										Executable file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 4.5 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/gui/36.png
									
									
									
									
									
										Executable file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 4.5 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/gui/40.png
									
									
									
									
									
										Executable file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 4.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/gui/Alt_PP.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 112 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/gui/bdo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 9.8 KiB  | 
| 
		 Before Width: | Height: | Size: 987 B After Width: | Height: | Size: 4.5 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/gui/catslauncher.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 5.4 KiB  | 
| 
		 Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 8.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/gui/close.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/gui/covers/loading_ENG.gif
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.4 MiB  | 
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/gui/covers/loading_RUS.gif
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.4 MiB  | 
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/gui/covers/unpacking_ENG.gif
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.3 MiB  | 
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/gui/covers/unpacking_RUS.gif
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.3 MiB  | 
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/gui/covers/update_prefix_ENG.gif
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.3 MiB  | 
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/gui/covers/update_prefix_RUS.gif
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.4 MiB  | 
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/gui/download.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 6.2 KiB  | 
| 
		 Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 3.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/gui/error.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 6.8 KiB  | 
| 
		 Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 415 B  | 
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/gui/fulqrumgames.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.9 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/gui/history.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/gui/history_from_web.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 15 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/gui/info.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 5.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/gui/mw.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 6.1 KiB  | 
| 
		 Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 5.3 KiB  | 
| 
		 Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 5.3 KiB  | 
| 
		 Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 16 KiB  | 
| 
		 Before Width: | Height: | Size: 7.8 KiB After Width: | Height: | Size: 6.5 KiB  | 
							
								
								
									
										1
									
								
								data_from_portwine/img/gui/portproton.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 64 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/gui/portproton_tray.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 5.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/gui/pulseonline.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 7.9 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/gui/question.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 6.4 KiB  | 
| 
		 Before Width: | Height: | Size: 468 B  | 
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/gui/wine_file.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.3 KiB  | 
							
								
								
									
										602
									
								
								data_from_portwine/img/gui/wine_file.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,602 @@
 | 
			
		||||
<?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="wine_file.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="15.512155"
 | 
			
		||||
     inkscape:cy="13.390835"
 | 
			
		||||
     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)"><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
 | 
			
		||||
       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>
 | 
			
		||||
| 
		 After Width: | Height: | Size: 20 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								data_from_portwine/img/gui/wine_system.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.3 KiB  | 
							
								
								
									
										866
									
								
								data_from_portwine/img/gui/wine_system.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,866 @@
 | 
			
		||||
<?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="wine_system.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="16"
 | 
			
		||||
     inkscape:cx="7.5"
 | 
			
		||||
     inkscape:cy="8.5"
 | 
			
		||||
     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" /><linearGradient
 | 
			
		||||
       id="a-87"
 | 
			
		||||
       x1="300"
 | 
			
		||||
       x2="300"
 | 
			
		||||
       y1="44"
 | 
			
		||||
       y2="556"
 | 
			
		||||
       gradientUnits="userSpaceOnUse"><stop
 | 
			
		||||
         offset="0"
 | 
			
		||||
         stop-color="#46bac6"
 | 
			
		||||
         id="stop1-9" /><stop
 | 
			
		||||
         offset="1"
 | 
			
		||||
         stop-color="#1497a5"
 | 
			
		||||
         id="stop2-2" /></linearGradient><linearGradient
 | 
			
		||||
       id="a-2-7"
 | 
			
		||||
       y1="543.79999"
 | 
			
		||||
       y2="503.79999"
 | 
			
		||||
       x2="0"
 | 
			
		||||
       gradientUnits="userSpaceOnUse"
 | 
			
		||||
       gradientTransform="translate(-384.57,-499.8)"><stop
 | 
			
		||||
         stop-color="#2a2c2f"
 | 
			
		||||
         id="stop7-361" /><stop
 | 
			
		||||
         offset="1"
 | 
			
		||||
         stop-color="#424649"
 | 
			
		||||
         id="stop9-2" /></linearGradient><linearGradient
 | 
			
		||||
       id="b-9"
 | 
			
		||||
       y1="532.79999"
 | 
			
		||||
       y2="506.79999"
 | 
			
		||||
       x2="0"
 | 
			
		||||
       gradientUnits="userSpaceOnUse"><stop
 | 
			
		||||
         stop-color="#989a9b"
 | 
			
		||||
         id="stop12-3" /><stop
 | 
			
		||||
         offset="1"
 | 
			
		||||
         stop-color="#f6f6f7"
 | 
			
		||||
         id="stop14-1" /></linearGradient><path
 | 
			
		||||
       fill-rule="evenodd"
 | 
			
		||||
       id="e-7"
 | 
			
		||||
       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-8"><stop
 | 
			
		||||
         id="stop4268-4"
 | 
			
		||||
         stop-color="#2a2c2f" /><stop
 | 
			
		||||
         id="stop4270-50"
 | 
			
		||||
         stop-color="#424649"
 | 
			
		||||
         offset="1" /></linearGradient><linearGradient
 | 
			
		||||
       gradientUnits="userSpaceOnUse"
 | 
			
		||||
       x2="0"
 | 
			
		||||
       y2="506.79999"
 | 
			
		||||
       y1="532.79999"
 | 
			
		||||
       id="b-6-3"><stop
 | 
			
		||||
         id="stop4273-6"
 | 
			
		||||
         stop-color="#989a9b" /><stop
 | 
			
		||||
         id="stop4275-1"
 | 
			
		||||
         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-0"
 | 
			
		||||
       fill-rule="evenodd" /><style
 | 
			
		||||
       type="text/css"
 | 
			
		||||
       id="current-color-scheme-6">.ColorScheme-Text { color: #fcfcfc; } </style><linearGradient
 | 
			
		||||
       gradientTransform="matrix(1,0,0,1.0091,-110.9855,-40.7775)"
 | 
			
		||||
       x2="0"
 | 
			
		||||
       gradientUnits="userSpaceOnUse"
 | 
			
		||||
       y2="32"
 | 
			
		||||
       y1="36"
 | 
			
		||||
       id="e-3-7"><stop
 | 
			
		||||
         id="stop4647-4"
 | 
			
		||||
         stop-color="#c58c00" /><stop
 | 
			
		||||
         id="stop4649-4"
 | 
			
		||||
         stop-color="#ffc318"
 | 
			
		||||
         offset="1" /></linearGradient><linearGradient
 | 
			
		||||
       gradientUnits="userSpaceOnUse"
 | 
			
		||||
       x2="0"
 | 
			
		||||
       y2="2.987"
 | 
			
		||||
       y1="43.922001"
 | 
			
		||||
       id="h-7"
 | 
			
		||||
       gradientTransform="translate(-122.5135,-45.5035)"><stop
 | 
			
		||||
         id="stop4658-8"
 | 
			
		||||
         stop-color="#22a7f0" /><stop
 | 
			
		||||
         id="stop4660-6"
 | 
			
		||||
         stop-color="#19b5fe"
 | 
			
		||||
         offset="1" /></linearGradient><linearGradient
 | 
			
		||||
       gradientUnits="userSpaceOnUse"
 | 
			
		||||
       x2="0"
 | 
			
		||||
       y2="34.040001"
 | 
			
		||||
       y1="43.922001"
 | 
			
		||||
       id="i-8"><stop
 | 
			
		||||
         id="stop4663-8"
 | 
			
		||||
         stop-color="#c8e3fe" /><stop
 | 
			
		||||
         id="stop4665-4"
 | 
			
		||||
         stop-color="#e4f1fe"
 | 
			
		||||
         offset="1" /></linearGradient><radialGradient
 | 
			
		||||
       gradientTransform="matrix(0.59169,-0.93256,2.10028,1.33257,-80.07,8.555)"
 | 
			
		||||
       gradientUnits="userSpaceOnUse"
 | 
			
		||||
       r="16"
 | 
			
		||||
       id="k-4"
 | 
			
		||||
       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-9"
 | 
			
		||||
       xlink:href="#a-8"
 | 
			
		||||
       cy="38.130001"
 | 
			
		||||
       cx="30.299999" /><linearGradient
 | 
			
		||||
       gradientUnits="userSpaceOnUse"
 | 
			
		||||
       x2="0"
 | 
			
		||||
       y2="503.79999"
 | 
			
		||||
       y1="543.79999"
 | 
			
		||||
       id="a-0-2"><stop
 | 
			
		||||
         id="stop4858-0"
 | 
			
		||||
         stop-color="#2a2c2f" /><stop
 | 
			
		||||
         id="stop4860-6"
 | 
			
		||||
         stop-color="#424649"
 | 
			
		||||
         offset="1" /></linearGradient><linearGradient
 | 
			
		||||
       gradientUnits="userSpaceOnUse"
 | 
			
		||||
       x2="0"
 | 
			
		||||
       y2="506.79999"
 | 
			
		||||
       y1="532.79999"
 | 
			
		||||
       id="b-63-8"><stop
 | 
			
		||||
         id="stop4863-9"
 | 
			
		||||
         stop-color="#989a9b" /><stop
 | 
			
		||||
         id="stop4865-2"
 | 
			
		||||
         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-6"
 | 
			
		||||
       fill-rule="evenodd" /><radialGradient
 | 
			
		||||
       xlink:href="#linearGradient4301"
 | 
			
		||||
       id="radialGradient4309-6"
 | 
			
		||||
       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-4"><stop
 | 
			
		||||
         id="stop7-36-9"
 | 
			
		||||
         stop-color="#2a2c2f" /><stop
 | 
			
		||||
         id="stop9-0-5"
 | 
			
		||||
         stop-color="#424649"
 | 
			
		||||
         offset="1" /></linearGradient><linearGradient
 | 
			
		||||
       gradientUnits="userSpaceOnUse"
 | 
			
		||||
       x2="0"
 | 
			
		||||
       y2="506.79999"
 | 
			
		||||
       y1="532.79999"
 | 
			
		||||
       id="b-626-0"><stop
 | 
			
		||||
         id="stop12-1-4"
 | 
			
		||||
         stop-color="#989a9b" /><stop
 | 
			
		||||
         id="stop14-8-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-7"
 | 
			
		||||
       fill-rule="evenodd" /><linearGradient
 | 
			
		||||
       id="a-3-3-1"
 | 
			
		||||
       y1="543.79999"
 | 
			
		||||
       y2="503.79999"
 | 
			
		||||
       x2="0"
 | 
			
		||||
       gradientUnits="userSpaceOnUse"><stop
 | 
			
		||||
         stop-color="#2a2c2f"
 | 
			
		||||
         id="stop4268-7-7" /><stop
 | 
			
		||||
         offset="1"
 | 
			
		||||
         stop-color="#424649"
 | 
			
		||||
         id="stop4270-5-2" /></linearGradient><linearGradient
 | 
			
		||||
       id="b-6-9-7"
 | 
			
		||||
       y1="532.79999"
 | 
			
		||||
       y2="506.79999"
 | 
			
		||||
       x2="0"
 | 
			
		||||
       gradientUnits="userSpaceOnUse"><stop
 | 
			
		||||
         stop-color="#989a9b"
 | 
			
		||||
         id="stop4273-2-2" /><stop
 | 
			
		||||
         offset="1"
 | 
			
		||||
         stop-color="#f6f6f7"
 | 
			
		||||
         id="stop4275-2-2" /></linearGradient><path
 | 
			
		||||
       fill-rule="evenodd"
 | 
			
		||||
       id="e-5-8-6"
 | 
			
		||||
       d="m 426.57,529.8 -16,11 -8,-8 -2,-9 17,-5 z" /><style
 | 
			
		||||
       id="current-color-scheme-8-1"
 | 
			
		||||
       type="text/css">
 | 
			
		||||
   .ColorScheme-Text { color:#4d4d4d; }
 | 
			
		||||
  </style><linearGradient
 | 
			
		||||
       id="e-3-3-0"
 | 
			
		||||
       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-6" /><stop
 | 
			
		||||
         offset="1"
 | 
			
		||||
         stop-color="#ffc318"
 | 
			
		||||
         id="stop4649-0-1" /></linearGradient><linearGradient
 | 
			
		||||
       gradientTransform="translate(-122.5135,-45.5035)"
 | 
			
		||||
       id="h-5-5"
 | 
			
		||||
       y1="43.922001"
 | 
			
		||||
       y2="2.987"
 | 
			
		||||
       x2="0"
 | 
			
		||||
       gradientUnits="userSpaceOnUse"><stop
 | 
			
		||||
         stop-color="#22a7f0"
 | 
			
		||||
         id="stop4658-5-9" /><stop
 | 
			
		||||
         offset="1"
 | 
			
		||||
         stop-color="#19b5fe"
 | 
			
		||||
         id="stop4660-4-4" /></linearGradient><linearGradient
 | 
			
		||||
       id="i-7-9"
 | 
			
		||||
       y1="43.922001"
 | 
			
		||||
       y2="34.040001"
 | 
			
		||||
       x2="0"
 | 
			
		||||
       gradientUnits="userSpaceOnUse"><stop
 | 
			
		||||
         stop-color="#c8e3fe"
 | 
			
		||||
         id="stop4663-6-0" /><stop
 | 
			
		||||
         offset="1"
 | 
			
		||||
         stop-color="#e4f1fe"
 | 
			
		||||
         id="stop4665-5-9" /></linearGradient><radialGradient
 | 
			
		||||
       cx="31.01"
 | 
			
		||||
       cy="48.672001"
 | 
			
		||||
       xlink:href="#a-8"
 | 
			
		||||
       id="k-3-1"
 | 
			
		||||
       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-7"
 | 
			
		||||
       r="16"
 | 
			
		||||
       gradientUnits="userSpaceOnUse"
 | 
			
		||||
       gradientTransform="matrix(0.53188,-0.49081,0.78529,0.851,-19.809,-0.579)" /><linearGradient
 | 
			
		||||
       id="a-0-4-7"
 | 
			
		||||
       y1="543.79999"
 | 
			
		||||
       y2="503.79999"
 | 
			
		||||
       x2="0"
 | 
			
		||||
       gradientUnits="userSpaceOnUse"><stop
 | 
			
		||||
         stop-color="#2a2c2f"
 | 
			
		||||
         id="stop4858-5-1" /><stop
 | 
			
		||||
         offset="1"
 | 
			
		||||
         stop-color="#424649"
 | 
			
		||||
         id="stop4860-2-1" /></linearGradient><linearGradient
 | 
			
		||||
       id="b-63-5-5"
 | 
			
		||||
       y1="532.79999"
 | 
			
		||||
       y2="506.79999"
 | 
			
		||||
       x2="0"
 | 
			
		||||
       gradientUnits="userSpaceOnUse"><stop
 | 
			
		||||
         stop-color="#989a9b"
 | 
			
		||||
         id="stop4863-4-9" /><stop
 | 
			
		||||
         offset="1"
 | 
			
		||||
         stop-color="#f6f6f7"
 | 
			
		||||
         id="stop4865-7-7" /></linearGradient><path
 | 
			
		||||
       fill-rule="evenodd"
 | 
			
		||||
       id="e-0-4-7"
 | 
			
		||||
       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)"><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
 | 
			
		||||
       id="g4"
 | 
			
		||||
       transform="translate(-0.1974492,1.22754)"><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
 | 
			
		||||
         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>
 | 
			
		||||
| 
		 After Width: | Height: | Size: 30 KiB  | 
| 
		 Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 63 KiB  | 
@@ -1,484 +0,0 @@
 | 
			
		||||
#!/usr/bin/env python3
 | 
			
		||||
 | 
			
		||||
import os
 | 
			
		||||
import re
 | 
			
		||||
import shlex
 | 
			
		||||
import shutil
 | 
			
		||||
import logging
 | 
			
		||||
from configparser import RawConfigParser
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
from subprocess import run
 | 
			
		||||
from types import SimpleNamespace
 | 
			
		||||
try:
 | 
			
		||||
    from PyQt6.QtCore import * # type: ignore
 | 
			
		||||
    from PyQt6.QtGui import * # type: ignore
 | 
			
		||||
    from PyQt6.QtWidgets import * # type: ignore
 | 
			
		||||
except ModuleNotFoundError:
 | 
			
		||||
    from PyQt5.QtCore import * # type: ignore
 | 
			
		||||
    from PyQt5.QtGui import * # type: ignore
 | 
			
		||||
    from PyQt5.QtWidgets import * # type: ignore
 | 
			
		||||
 | 
			
		||||
settings = QSettings('PPGL', 'PortProtonGamesLib')
 | 
			
		||||
g = SimpleNamespace(locale = '')
 | 
			
		||||
 | 
			
		||||
class MainWindow(QMainWindow):
 | 
			
		||||
    def __init__(self):
 | 
			
		||||
        super().__init__()
 | 
			
		||||
 | 
			
		||||
        self.resize(QSize(800, 600))
 | 
			
		||||
        geometry = settings.value('geometry_main')
 | 
			
		||||
        if geometry:
 | 
			
		||||
            self.restoreGeometry(geometry)
 | 
			
		||||
 | 
			
		||||
        shortcut = RawConfigParser()
 | 
			
		||||
        shortcut.read(os.getenv('HOME') + '/.local/share/applications/PortProton.desktop')
 | 
			
		||||
        scripts_dir = shortcut.get('Desktop Entry', 'Path', fallback=os.getenv('HOME') + '/.local/share/PortWINE/PortProton/data/scripts')
 | 
			
		||||
        if not scripts_dir or not Path(scripts_dir).is_dir():
 | 
			
		||||
            QMessageBox.critical(self, 'Error', 'Can not find installed PortProton')
 | 
			
		||||
            exit(1)
 | 
			
		||||
        g.scripts_dir = scripts_dir.rstrip('/')
 | 
			
		||||
        g.pp_icon = shortcut.get('Desktop Entry', 'Icon', fallback='/usr/share/pixmaps/portproton.png')
 | 
			
		||||
        pp_icon = QIcon(g.pp_icon)
 | 
			
		||||
        self.setWindowIcon(pp_icon)
 | 
			
		||||
        self.setWindowTitle('PortProton games library')
 | 
			
		||||
 | 
			
		||||
        g.base_dir = str(Path(scripts_dir + '/../..').resolve())
 | 
			
		||||
        g.install_pfx = g.base_dir + '/data/prefixes/INSTALL'
 | 
			
		||||
        g.shortcuts_dir = g.base_dir + '/shortcuts'
 | 
			
		||||
        g.games_dir = g.base_dir + '/games'
 | 
			
		||||
 | 
			
		||||
        loc_path = Path(g.base_dir + '/data/tmp/PortProton_loc')
 | 
			
		||||
        if loc_path.exists():
 | 
			
		||||
            g.locale = loc_path.read_text().strip()
 | 
			
		||||
 | 
			
		||||
        Path(g.shortcuts_dir).mkdir(parents=True, exist_ok=True)
 | 
			
		||||
        Path(g.games_dir).mkdir(parents=True, exist_ok=True)
 | 
			
		||||
 | 
			
		||||
        sep = QFrame(self)
 | 
			
		||||
        sep.setFrameShape(QFrame.Shape.VLine)
 | 
			
		||||
        sep.setFrameShadow(QFrame.Shadow.Sunken)
 | 
			
		||||
        self._status_size = QLabel(self)
 | 
			
		||||
        self._status_dir = QLabel(self)
 | 
			
		||||
        self._status_wine = QLabel(self)
 | 
			
		||||
        self.statusBar().setVisible(False)
 | 
			
		||||
        self.statusBar().addWidget(self._status_dir, 1)
 | 
			
		||||
        self.statusBar().addWidget(self._status_wine)
 | 
			
		||||
        self.statusBar().addWidget(sep)
 | 
			
		||||
        self.statusBar().addWidget(self._status_size)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        self.game_list = GameList(self)
 | 
			
		||||
        self.setCentralWidget(self.game_list)
 | 
			
		||||
 | 
			
		||||
        self.toolbar = self.addToolBar('Main')
 | 
			
		||||
        self.toolbar.setIconSize(QSize(32, 32))
 | 
			
		||||
        self.toolbar.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextBesideIcon)
 | 
			
		||||
        self.toolbar.setMovable(False)
 | 
			
		||||
        action = QAction(self.style().standardIcon(QStyle.StandardPixmap.SP_FileDialogNewFolder), _tr('Install new game'), self)
 | 
			
		||||
        action.triggered.connect(self.install_game)
 | 
			
		||||
        self.toolbar.addAction(action)
 | 
			
		||||
        action = QAction(self.style().standardIcon(QStyle.StandardPixmap.SP_FileLinkIcon), _tr('Add game entry'), self)
 | 
			
		||||
        action.triggered.connect(self.add_game)
 | 
			
		||||
        self.toolbar.addAction(action)
 | 
			
		||||
        action = QAction(self.style().standardIcon(QStyle.StandardPixmap.SP_BrowserReload), _tr('Reload list'), self)
 | 
			
		||||
        action.triggered.connect(self.reload_list)
 | 
			
		||||
        self.toolbar.addAction(action)
 | 
			
		||||
        action = QAction(self.style().standardIcon(QStyle.StandardPixmap.SP_TrashIcon), _tr('Drop install prefix'), self)
 | 
			
		||||
        action.triggered.connect(self.drop_prefix)
 | 
			
		||||
        self.toolbar.addAction(action)
 | 
			
		||||
        spacer = QWidget(self)
 | 
			
		||||
        spacer.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred)
 | 
			
		||||
        self.toolbar.addWidget(spacer)
 | 
			
		||||
        action = QAction(pp_icon, 'PortProton', self)
 | 
			
		||||
        action.triggered.connect(self.run_pp)
 | 
			
		||||
        self.toolbar.addAction(action)
 | 
			
		||||
 | 
			
		||||
    def install_game(self):
 | 
			
		||||
        InstallGame(self)
 | 
			
		||||
 | 
			
		||||
    def add_game(self):
 | 
			
		||||
        InstallGame(self, False)
 | 
			
		||||
 | 
			
		||||
    def reload_list(self):
 | 
			
		||||
        self.game_list.reload()
 | 
			
		||||
 | 
			
		||||
    def drop_prefix(self):
 | 
			
		||||
        res = QMessageBox.question(self, _tr('Are you sure ?'), _tr('Do you really want to remove<br/><b>{0}</b> ?', g.install_pfx))
 | 
			
		||||
        if res == QMessageBox.StandardButton.Yes:
 | 
			
		||||
            shutil.rmtree(g.install_pfx, True)
 | 
			
		||||
 | 
			
		||||
    def run_pp(self):
 | 
			
		||||
        self.setDisabled(True)
 | 
			
		||||
        app.processEvents()
 | 
			
		||||
        run([g.scripts_dir + '/start.sh'])
 | 
			
		||||
        self.setDisabled(False)
 | 
			
		||||
 | 
			
		||||
    def set_status(self, item):
 | 
			
		||||
        self.statusBar().setVisible(bool(item))
 | 
			
		||||
        if item:
 | 
			
		||||
            self._status_size.setText('Size: ' + item.dir_size_human)
 | 
			
		||||
            self._status_dir.setText(' ' + item.game_dir)
 | 
			
		||||
            self._status_wine.setText(item.wine_use)
 | 
			
		||||
 | 
			
		||||
    def closeEvent(self, event):
 | 
			
		||||
        geometry = self.saveGeometry()
 | 
			
		||||
        settings.setValue('geometry_main', geometry)
 | 
			
		||||
        super().closeEvent(event)
 | 
			
		||||
 | 
			
		||||
class LoadListThread(QThread):
 | 
			
		||||
    completed = pyqtSignal(list)
 | 
			
		||||
    def __init__(self, parent, install_dir):
 | 
			
		||||
        super().__init__(parent)
 | 
			
		||||
        self.install_dir = install_dir
 | 
			
		||||
    def run(self):
 | 
			
		||||
        exe_list = list(Path(self.install_dir).glob('**/*.exe'))
 | 
			
		||||
        self.completed.emit(exe_list)
 | 
			
		||||
 | 
			
		||||
class InstallGame(QDialog):
 | 
			
		||||
    def __init__(self, parent, installing=True):
 | 
			
		||||
        super().__init__(parent)
 | 
			
		||||
        self._installing = installing
 | 
			
		||||
        self.install_dir = g.install_pfx + '/drive_c/Games' if installing else g.games_dir
 | 
			
		||||
        self._exe_list_widget = QListWidget(self)
 | 
			
		||||
        self._exe_list_widget.setIconSize(QSize(16, 16))
 | 
			
		||||
        self._exe_list_widget.itemDoubleClicked.connect(self._handleDoubleClick)
 | 
			
		||||
        layout = QVBoxLayout()
 | 
			
		||||
        layout.addWidget(self._exe_list_widget)
 | 
			
		||||
 | 
			
		||||
        self._pbar = QProgressBar(self)
 | 
			
		||||
        self._pbar.setMaximum(0)
 | 
			
		||||
        layout.addWidget(self._pbar)
 | 
			
		||||
        thread = LoadListThread(self, self.install_dir)
 | 
			
		||||
        thread.completed.connect(self.load)
 | 
			
		||||
        thread.start()
 | 
			
		||||
 | 
			
		||||
        if self._installing:
 | 
			
		||||
            setup_btn = QPushButton(self)
 | 
			
		||||
            setup_btn.setIcon(self.style().standardIcon(QStyle.StandardPixmap.SP_FileDialogStart))
 | 
			
		||||
            setup_btn.setText(_tr('Run another setup'))
 | 
			
		||||
            setup_btn.clicked.connect(self._runSetup)
 | 
			
		||||
            layout.addWidget(setup_btn)
 | 
			
		||||
        self.setLayout(layout)
 | 
			
		||||
        self.resize(400, 300)
 | 
			
		||||
        self.setModal(True)
 | 
			
		||||
        self.setWindowTitle(_tr('Select game exe file'))
 | 
			
		||||
        geometry = settings.value('geometry_install')
 | 
			
		||||
        if geometry:
 | 
			
		||||
            self.restoreGeometry(geometry)
 | 
			
		||||
        self.show()
 | 
			
		||||
 | 
			
		||||
    def load(self, exe_list):
 | 
			
		||||
        if self._installing and len(exe_list) == 0:
 | 
			
		||||
            self._runSetup()
 | 
			
		||||
            exe_list = list(Path(self.install_dir).glob('**/*.exe'))
 | 
			
		||||
        if len(exe_list) == 0:
 | 
			
		||||
            return self.close()
 | 
			
		||||
        def render_list():
 | 
			
		||||
            pixmap = QPixmap(16, 16)
 | 
			
		||||
            pixmap.fill(Qt.GlobalColor.transparent)
 | 
			
		||||
            empty_icon = QIcon(pixmap)
 | 
			
		||||
            for exe in sorted(exe_list):
 | 
			
		||||
                ico_file = str(exe) + '.ico'
 | 
			
		||||
                item = QListWidgetItem(self._exe_list_widget)
 | 
			
		||||
                item.setText(str(exe)[len(self.install_dir)+1:])
 | 
			
		||||
                try:
 | 
			
		||||
                    if not Path(ico_file).exists():
 | 
			
		||||
                        run(['wrestool', '-x', '-t14', '-o', ico_file, exe], capture_output=True)
 | 
			
		||||
                    item.setIcon(QIcon(ico_file))
 | 
			
		||||
                except Exception:
 | 
			
		||||
                    pass
 | 
			
		||||
                if item.icon().pixmap(16, 16).isNull():
 | 
			
		||||
                    item.setIcon(empty_icon)
 | 
			
		||||
                self._exe_list_widget.addItem(item)
 | 
			
		||||
            self._pbar.setVisible(False)
 | 
			
		||||
        thread = QThread(self)
 | 
			
		||||
        thread.run = render_list
 | 
			
		||||
        thread.start()
 | 
			
		||||
 | 
			
		||||
    def _runSetup(self):
 | 
			
		||||
        downloads_dir = QStandardPaths.writableLocation(QStandardPaths.StandardLocation.DownloadLocation)
 | 
			
		||||
        exe_file, _ = QFileDialog.getOpenFileName(self, caption=_tr('Choose setup file'), filter='Exe files (*.exe)', directory=downloads_dir)
 | 
			
		||||
        if not exe_file:
 | 
			
		||||
            return
 | 
			
		||||
        ppdb = shlex.quote(exe_file + '.ppdb')
 | 
			
		||||
        script = f"""
 | 
			
		||||
            mkdir -p {shlex.quote(g.install_pfx + '/drive_c/Games')}
 | 
			
		||||
            echo '
 | 
			
		||||
                export PW_VULKAN_USE=1
 | 
			
		||||
                export PW_GUI_DISABLED_CS=1
 | 
			
		||||
                export PW_PREFIX_NAME=INSTALL
 | 
			
		||||
                export PW_DLL_INSTALL=mfc42
 | 
			
		||||
            ' > {ppdb}
 | 
			
		||||
            {shlex.quote(g.scripts_dir + '/start.sh')} {shlex.quote(exe_file)}
 | 
			
		||||
            rm -f {ppdb}
 | 
			
		||||
        """
 | 
			
		||||
        self.setDisabled(True)
 | 
			
		||||
        app.processEvents()
 | 
			
		||||
        run(['bash', '-c', script])
 | 
			
		||||
        self.setDisabled(False)
 | 
			
		||||
 | 
			
		||||
    def _handleDoubleClick(self, item):
 | 
			
		||||
        game_dir = item.text().split('/')[0]
 | 
			
		||||
        dlg = QInputDialog(self)
 | 
			
		||||
        dlg.setWindowTitle(_tr('Please enter game entry name'))
 | 
			
		||||
        dlg.setLabelText(_tr('New game entry'))
 | 
			
		||||
        dlg.setTextValue(game_dir)
 | 
			
		||||
        dlg.resize(300, 0)
 | 
			
		||||
        ok = dlg.exec()
 | 
			
		||||
        shortcut_name = dlg.textValue()
 | 
			
		||||
        if not ok or not shortcut_name:
 | 
			
		||||
            return
 | 
			
		||||
        file_name = re.sub(r'[<>:/\\|?*]', '_', shortcut_name)
 | 
			
		||||
        shortcut = f"{g.shortcuts_dir}/{file_name}.desktop"
 | 
			
		||||
        if Path(shortcut).exists():
 | 
			
		||||
            res = QMessageBox.question(self, _tr('Shortcut already exists'), _tr('Shortcut <b>{0}</b> already exists. Overwrite ?', file_name))
 | 
			
		||||
            if res != QMessageBox.StandardButton.Yes:
 | 
			
		||||
                return
 | 
			
		||||
        src_dir = self.install_dir + '/' + game_dir
 | 
			
		||||
        dst_dir = g.games_dir + '/' + game_dir
 | 
			
		||||
        exe_file = shlex.quote(g.games_dir + '/' + item.text())
 | 
			
		||||
        ppdb = shlex.quote(g.games_dir + '/' + item.text() + '.ppdb')
 | 
			
		||||
        self.setDisabled(True)
 | 
			
		||||
        if self._installing and Path(dst_dir).exists():
 | 
			
		||||
            res = QMessageBox.question(self, _tr('Dir already exists'), _tr('Dir <b>{0}</b> already exists. Overwrite ?', game_dir))
 | 
			
		||||
            if res != QMessageBox.StandardButton.Yes:
 | 
			
		||||
                return
 | 
			
		||||
        if self._installing:
 | 
			
		||||
            os.rename(src_dir, dst_dir)
 | 
			
		||||
        script = f"""
 | 
			
		||||
            export INSTALLING_PORT=1
 | 
			
		||||
            export portwine_exe={exe_file}
 | 
			
		||||
            cd {shlex.quote(g.scripts_dir)}
 | 
			
		||||
            . {shlex.quote(g.scripts_dir + '/runlib')}
 | 
			
		||||
            pw_init_db
 | 
			
		||||
            [ -f {ppdb} ] && . {ppdb}
 | 
			
		||||
            echo -e "export PW_VULKAN_USE=${{PW_VULKAN_USE:-1}}\nexport PW_GUI_DISABLED_CS=1" >> {ppdb}
 | 
			
		||||
        """
 | 
			
		||||
        run(['bash', '-c', script])
 | 
			
		||||
        icon_path = g.games_dir + '/' + item.text() + '.ico'
 | 
			
		||||
        if not Path(icon_path).exists():
 | 
			
		||||
            icon_path = g.pp_icon
 | 
			
		||||
        Path(shortcut).write_text(f"""[Desktop Entry]
 | 
			
		||||
Name={shortcut_name}
 | 
			
		||||
Exec=env {shlex.quote(g.scripts_dir + '/start.sh')} {exe_file}
 | 
			
		||||
Type=Application
 | 
			
		||||
Categories=Game
 | 
			
		||||
StartupNotify=true
 | 
			
		||||
Path={shlex.quote(g.scripts_dir)}
 | 
			
		||||
Icon={icon_path}
 | 
			
		||||
""", encoding='utf-8')
 | 
			
		||||
        os.chmod(shortcut, 0o755)
 | 
			
		||||
        win.reload_list()
 | 
			
		||||
        self.close()
 | 
			
		||||
 | 
			
		||||
    def closeEvent(self, event):
 | 
			
		||||
        geometry = self.saveGeometry()
 | 
			
		||||
        settings.setValue('geometry_install', geometry)
 | 
			
		||||
        super().closeEvent(event)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class GameList(QListWidget):
 | 
			
		||||
    def __init__(self, parent):
 | 
			
		||||
        super().__init__(parent)
 | 
			
		||||
        self.itemActivated.connect(self.runGame)
 | 
			
		||||
        self.currentItemChanged.connect(self.selectItem)
 | 
			
		||||
        self.setViewMode(QListWidget.ViewMode.IconMode)
 | 
			
		||||
        self.setResizeMode(QListWidget.ResizeMode.Adjust)
 | 
			
		||||
        self.setIconSize(QSize(64, 64))
 | 
			
		||||
        self.setWordWrap(True)
 | 
			
		||||
        self.setSpacing(3)
 | 
			
		||||
        self.reload()
 | 
			
		||||
 | 
			
		||||
    def reload(self):
 | 
			
		||||
        self.clear()
 | 
			
		||||
        shortcuts = list(Path(g.shortcuts_dir).glob('*.desktop'))
 | 
			
		||||
        shortcuts += list(Path(g.base_dir).glob('*.desktop'))
 | 
			
		||||
        for shortcut in shortcuts:
 | 
			
		||||
            try:
 | 
			
		||||
                item = GameItem(self, shortcut)
 | 
			
		||||
                self.addItem(item)
 | 
			
		||||
            except ValueError:
 | 
			
		||||
                pass
 | 
			
		||||
            except:
 | 
			
		||||
                logging.exception('Error while parse "%s"', shortcut)
 | 
			
		||||
        self.sortItems()
 | 
			
		||||
        self.setCurrentIndex(QModelIndex())
 | 
			
		||||
 | 
			
		||||
    def runGame(self, item):
 | 
			
		||||
        win.setDisabled(True)
 | 
			
		||||
        app.processEvents()
 | 
			
		||||
        run(['bash', '-c', item.get('Exec')])
 | 
			
		||||
        win.setDisabled(False)
 | 
			
		||||
 | 
			
		||||
    def selectItem(self, item):
 | 
			
		||||
        win.set_status(item)
 | 
			
		||||
 | 
			
		||||
    def contextMenuEvent(self, event):
 | 
			
		||||
        selected = self.selectedItems()
 | 
			
		||||
        if len(selected) == 0:
 | 
			
		||||
            return
 | 
			
		||||
        selected = selected[0]
 | 
			
		||||
        menu = QMenu(self)
 | 
			
		||||
        desktop = menu.addAction(self.style().standardIcon(QStyle.StandardPixmap.SP_DesktopIcon), _tr('Add to desktop'))
 | 
			
		||||
        restore_gui = menu.addAction(self.style().standardIcon(QStyle.StandardPixmap.SP_DialogResetButton), _tr('Restore PortProton GUI'))
 | 
			
		||||
        default_wine = menu.addAction(self.style().standardIcon(QStyle.StandardPixmap.SP_DialogOkButton), _tr('Set default wine'))
 | 
			
		||||
        remove = menu.addAction(self.style().standardIcon(QStyle.StandardPixmap.SP_TrashIcon), _tr('Remove game entry'))
 | 
			
		||||
        uninstall = menu.addAction(self.style().standardIcon(QStyle.StandardPixmap.SP_DialogCloseButton), _tr('Uninstall game'))
 | 
			
		||||
        if not selected.pp_gui_disabled:
 | 
			
		||||
            restore_gui.setVisible(False)
 | 
			
		||||
        if not selected.wine_use:
 | 
			
		||||
            default_wine.setVisible(False)
 | 
			
		||||
        if not selected.game_dir.startswith(g.games_dir):
 | 
			
		||||
            uninstall.setVisible(False)
 | 
			
		||||
        action = menu.exec(self.mapToGlobal(event.pos()))
 | 
			
		||||
        desktop_shortcut = QStandardPaths.writableLocation(QStandardPaths.StandardLocation.DesktopLocation) + '/' + Path(selected.desktop_file).name
 | 
			
		||||
        if action == desktop:
 | 
			
		||||
            if Path(desktop_shortcut).exists():
 | 
			
		||||
                res = QMessageBox.question(self, _tr('Shortcut already exists'), _tr('Shortcut <b>{0}</b> already exists. Overwrite ?', desktop_shortcut))
 | 
			
		||||
                if res != QMessageBox.StandardButton.Yes:
 | 
			
		||||
                    return
 | 
			
		||||
            shutil.copy(selected.desktop_file, desktop_shortcut)
 | 
			
		||||
        if action == restore_gui or action == default_wine:
 | 
			
		||||
            ignore_line = 'PW_GUI_DISABLED_CS' if action == restore_gui else 'PW_WINE_USE'
 | 
			
		||||
            ppdb = shlex.split(selected.get('Exec'))[-1] + '.ppdb'
 | 
			
		||||
            if not Path(ppdb).exists():
 | 
			
		||||
                return
 | 
			
		||||
            with open(ppdb, 'r') as read:
 | 
			
		||||
                with open(ppdb + '.new', 'w') as write:
 | 
			
		||||
                    while (line := read.readline()):
 | 
			
		||||
                        if ignore_line not in line:
 | 
			
		||||
                            write.write(line)
 | 
			
		||||
            os.rename(ppdb + '.new', ppdb)
 | 
			
		||||
            if action == restore_gui:
 | 
			
		||||
                selected.pp_gui_disabled = False
 | 
			
		||||
            if action == default_wine:
 | 
			
		||||
                selected.wine_use = None
 | 
			
		||||
                self.selectItem(selected)
 | 
			
		||||
        def remove_shortcut():
 | 
			
		||||
            Path(desktop_shortcut).unlink(True)
 | 
			
		||||
            Path(selected.desktop_file).unlink(True)
 | 
			
		||||
            def_icon_path = g.base_dir + '/data/img/' + Path(shlex.split(selected.get('Exec'))[-1]).stem + '.png'
 | 
			
		||||
            Path(def_icon_path).unlink(True)
 | 
			
		||||
        if action == remove:
 | 
			
		||||
            remove_shortcut()
 | 
			
		||||
            self.reload()
 | 
			
		||||
        if action == uninstall:
 | 
			
		||||
            res = QMessageBox.question(self,
 | 
			
		||||
                _tr('Are you sure ?'),
 | 
			
		||||
                _tr('Do you really want to uninstall <b>{0}</b><br/>located in "<b>{1}</b>" ?', selected.get('Name'), selected.game_dir)
 | 
			
		||||
            )
 | 
			
		||||
            if res != QMessageBox.StandardButton.Yes:
 | 
			
		||||
                return
 | 
			
		||||
            remove_shortcut()
 | 
			
		||||
            if selected.game_dir.startswith(g.games_dir):
 | 
			
		||||
                shutil.rmtree(selected.game_dir, True)
 | 
			
		||||
            self.reload()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def human_size(num):
 | 
			
		||||
    if not num:
 | 
			
		||||
        return "-"
 | 
			
		||||
    for unit in ["", "Ki", "Mi", "Gi", "Ti", "Pi", "Ei", "Zi"]:
 | 
			
		||||
        if abs(num) < 1024.0:
 | 
			
		||||
            return f"{num:.2f} {unit}B"
 | 
			
		||||
        num /= 1024.0
 | 
			
		||||
    return f"{num:.2f} YiB"
 | 
			
		||||
 | 
			
		||||
class GameItem(QListWidgetItem):
 | 
			
		||||
    def __init__(self, parent, desktop_file):
 | 
			
		||||
        self.desktop_file = desktop_file
 | 
			
		||||
        self.config = RawConfigParser()
 | 
			
		||||
        self.config.read(desktop_file)
 | 
			
		||||
        text = self.get('Name', Path(desktop_file).stem)
 | 
			
		||||
        if not self.get('Exec') or text == 'PortProton':
 | 
			
		||||
            raise ValueError('Validation fail')
 | 
			
		||||
        exe_file = shlex.split(self.get('Exec'))[-1]
 | 
			
		||||
        if exe_file.startswith(g.games_dir):
 | 
			
		||||
            self.game_dir = g.games_dir + '/' + exe_file[len(g.games_dir)+1:].split('/')[0]
 | 
			
		||||
        else:
 | 
			
		||||
            self.game_dir = str(Path(exe_file).parent)
 | 
			
		||||
        if self.game_dir == '.':
 | 
			
		||||
            raise ValueError('Can not determine game dir')
 | 
			
		||||
        self.pp_gui_disabled = False
 | 
			
		||||
        self.wine_use = None
 | 
			
		||||
        ppdb = exe_file + '.ppdb'
 | 
			
		||||
        if Path(ppdb).exists():
 | 
			
		||||
            ppdb_conf = RawConfigParser(strict=False)
 | 
			
		||||
            with open(ppdb) as f:
 | 
			
		||||
                ppdb_conf.read_string('[dummy]\n' + f.read())
 | 
			
		||||
            pp_gui_disabled = ppdb_conf.get('dummy', 'export PW_GUI_DISABLED_CS', fallback='').strip('"')
 | 
			
		||||
            try: self.pp_gui_disabled = bool(int(pp_gui_disabled))
 | 
			
		||||
            except: self.pp_gui_disabled = bool(pp_gui_disabled)
 | 
			
		||||
            self.wine_use = ppdb_conf.get('dummy', 'export PW_WINE_USE', fallback='').strip('"')
 | 
			
		||||
 | 
			
		||||
        super().__init__(parent)
 | 
			
		||||
 | 
			
		||||
        self.setToolTip(text)
 | 
			
		||||
        self.setText(text)
 | 
			
		||||
        icon_path = self.get('Icon') if Path(self.get('Icon')).exists() else g.pp_icon
 | 
			
		||||
        qicon = QIcon(icon_path)
 | 
			
		||||
        self.setIcon(qicon)
 | 
			
		||||
        self.setTextAlignment(Qt.AlignmentFlag.AlignHCenter | Qt.AlignmentFlag.AlignTop)
 | 
			
		||||
        self.setSizeHint(QSize(100, 105))
 | 
			
		||||
 | 
			
		||||
        self._set_dir_size(None)
 | 
			
		||||
        dir_size_cache = self.game_dir + '/.size'
 | 
			
		||||
        if Path(dir_size_cache).exists():
 | 
			
		||||
            self._set_dir_size(int(Path(dir_size_cache).read_text()))
 | 
			
		||||
        else:
 | 
			
		||||
            def calc_dir_size():
 | 
			
		||||
                if not Path(self.game_dir).exists():
 | 
			
		||||
                    return
 | 
			
		||||
                dir_size = sum(p.stat(follow_symlinks=False).st_size for p in Path(self.game_dir).rglob('*'))
 | 
			
		||||
                self._set_dir_size(dir_size)
 | 
			
		||||
                Path(dir_size_cache).write_text(str(dir_size))
 | 
			
		||||
            thread = QThread(parent)
 | 
			
		||||
            thread.run = calc_dir_size
 | 
			
		||||
            thread.start()
 | 
			
		||||
 | 
			
		||||
    def get(self, name, fallback=None):
 | 
			
		||||
        return self.config.get('Desktop Entry', name, fallback=fallback)
 | 
			
		||||
 | 
			
		||||
    def _set_dir_size(self, size):
 | 
			
		||||
        self.dir_size = size
 | 
			
		||||
        self.dir_size_human = human_size(size)
 | 
			
		||||
 | 
			
		||||
import signal
 | 
			
		||||
signal.signal(signal.SIGINT, signal.SIG_DFL)
 | 
			
		||||
 | 
			
		||||
lang = {
 | 
			
		||||
    'RUS': {
 | 
			
		||||
        'Install new game': 'Установить игру',
 | 
			
		||||
        'Add game entry': 'Добавить в список',
 | 
			
		||||
        'Reload list': 'Обновить список',
 | 
			
		||||
        'Drop install prefix': 'Удалить установочный префикс',
 | 
			
		||||
        'Are you sure ?': 'Вы уверены ?',
 | 
			
		||||
        'Do you really want to remove<br/><b>{0}</b> ?': 'Вы действительно хотите удалить<br/><b>{0}</b> ?',
 | 
			
		||||
        'Run another setup': 'Запустить установку',
 | 
			
		||||
        'Select game exe file': 'Выберите exe файл игры',
 | 
			
		||||
        'Choose setup file': 'Выберите установочный файл',
 | 
			
		||||
        'Please enter game entry name': 'Введите название игры',
 | 
			
		||||
        'New game entry': 'Название игры',
 | 
			
		||||
        'Shortcut already exists': 'Ярлык уже существует',
 | 
			
		||||
        'Shortcut <b>{0}</b> already exists. Overwrite ?': 'Ярлык <b>{0}</b> уже существует. Перезаписать ?',
 | 
			
		||||
        'Dir already exists': 'Директория уже существует',
 | 
			
		||||
        'Dir <b>{0}</b> already exists. Overwrite ?': 'Директория <b>{0}</b> уже существует. Перезаписать ?',
 | 
			
		||||
        'Add to desktop': 'Добавить на рабочий стол',
 | 
			
		||||
        'Restore PortProton GUI': 'Восстановить PortProton GUI',
 | 
			
		||||
        'Set default wine': 'Выбрать дефолтный wine',
 | 
			
		||||
        'Remove game entry': 'Убрать из списка',
 | 
			
		||||
        'Uninstall game': 'Удалить игру',
 | 
			
		||||
        'Do you really want to uninstall <b>{0}</b><br/>located in "<b>{1}</b>" ?': 'Вы действительно хотите удалить <b>{0}</b><br/>расположеную в "<b>{1}</b>" ?'
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
def _tr(text, *fmt):
 | 
			
		||||
    res = lang.get(g.locale, {}).get(text, text)
 | 
			
		||||
    if fmt:
 | 
			
		||||
        res = res.format(*fmt)
 | 
			
		||||
    return res
 | 
			
		||||
 | 
			
		||||
app = QApplication([])
 | 
			
		||||
app.setDesktopFileName('PortProton')
 | 
			
		||||
win = MainWindow()
 | 
			
		||||
win.show()
 | 
			
		||||
app.exec()
 | 
			
		||||
@@ -1,85 +0,0 @@
 | 
			
		||||
xterm*faceSize: 12
 | 
			
		||||
xterm*vt100*geometry: 120x20
 | 
			
		||||
xterm*saveLines: 16384
 | 
			
		||||
xterm*loginShell: true
 | 
			
		||||
xterm*charClass: 33:48,35:48,37:48,43:48,45-47:48,64:48,95:48,126:48
 | 
			
		||||
xterm*termName: xterm-color
 | 
			
		||||
xterm*eightBitInput: false
 | 
			
		||||
 | 
			
		||||
!BLK Cursor
 | 
			
		||||
#define _color0        #000d18
 | 
			
		||||
#define _color8        #000d18
 | 
			
		||||
!RED Tag
 | 
			
		||||
#define _color1        #e89393
 | 
			
		||||
#define _color9        #e89393
 | 
			
		||||
!GRN SpecialKey
 | 
			
		||||
#define _color2        #9ece13
 | 
			
		||||
#define _color10       #9ece13
 | 
			
		||||
!YEL Keyword
 | 
			
		||||
#define _color3        #f0dfaf
 | 
			
		||||
#define _color11       #f0dfaf
 | 
			
		||||
!BLU Number
 | 
			
		||||
#define _color4        #8cd0d3
 | 
			
		||||
#define _color12       #8cd0d3
 | 
			
		||||
!MAG Precondit
 | 
			
		||||
#define _color5        #c0bed1
 | 
			
		||||
#define _color13       #c0bed1
 | 
			
		||||
!CYN Float
 | 
			
		||||
#define _color6        #dfaf8f
 | 
			
		||||
#define _color14       #dfaf8f
 | 
			
		||||
!WHT Search
 | 
			
		||||
#define _color7        #efefef
 | 
			
		||||
#define _color15       #efefef
 | 
			
		||||
!FMT Include, StatusLine, ErrorMsg
 | 
			
		||||
#define _colorBD       #ffcfaf
 | 
			
		||||
#define _colorUL       #ccdc90
 | 
			
		||||
#define _colorIT       #80d4aa
 | 
			
		||||
!TXT Normal, Normal, Cursor
 | 
			
		||||
#define _foreground    #dcdccc
 | 
			
		||||
#define _background    #1f1f1f
 | 
			
		||||
#define _cursorColor   #8faf9f
 | 
			
		||||
URxvt*color0         : _color0
 | 
			
		||||
URxvt*color1         : _color1
 | 
			
		||||
URxvt*color2         : _color2
 | 
			
		||||
URxvt*color3         : _color3
 | 
			
		||||
URxvt*color4         : _color4
 | 
			
		||||
URxvt*color5         : _color5
 | 
			
		||||
URxvt*color6         : _color6
 | 
			
		||||
URxvt*color7         : _color7
 | 
			
		||||
URxvt*color8         : _color8
 | 
			
		||||
URxvt*color9         : _color9
 | 
			
		||||
URxvt*color10        : _color10
 | 
			
		||||
URxvt*color11        : _color11
 | 
			
		||||
URxvt*color12        : _color12
 | 
			
		||||
URxvt*color13        : _color13
 | 
			
		||||
URxvt*color14        : _color14
 | 
			
		||||
URxvt*color15        : _color15
 | 
			
		||||
URxvt*colorBD        : _colorBD
 | 
			
		||||
URxvt*colorIT        : _colorIT
 | 
			
		||||
URxvt*colorUL        : _colorUL
 | 
			
		||||
URxvt*foreground     : _foreground
 | 
			
		||||
URxvt*background     : _background
 | 
			
		||||
URxvt*cursorColor    : _cursorColor
 | 
			
		||||
XTerm*color0         : _color0
 | 
			
		||||
XTerm*color1         : _color1
 | 
			
		||||
XTerm*color2         : _color2
 | 
			
		||||
XTerm*color3         : _color3
 | 
			
		||||
XTerm*color4         : _color4
 | 
			
		||||
XTerm*color5         : _color5
 | 
			
		||||
XTerm*color6         : _color6
 | 
			
		||||
XTerm*color7         : _color7
 | 
			
		||||
XTerm*color8         : _color8
 | 
			
		||||
XTerm*color9         : _color9
 | 
			
		||||
XTerm*color10        : _color10
 | 
			
		||||
XTerm*color11        : _color11
 | 
			
		||||
XTerm*color12        : _color12
 | 
			
		||||
XTerm*color13        : _color13
 | 
			
		||||
XTerm*color14        : _color14
 | 
			
		||||
XTerm*color15        : _color15
 | 
			
		||||
XTerm*colorBD        : _colorBD
 | 
			
		||||
XTerm*colorIT        : _colorIT
 | 
			
		||||
XTerm*colorUL        : _colorUL
 | 
			
		||||
XTerm*foreground     : _foreground
 | 
			
		||||
XTerm*background     : _background
 | 
			
		||||
XTerm*cursorColor    : _cursorColor
 | 
			
		||||
 | 
			
		||||
@@ -5,9 +5,6 @@
 | 
			
		||||
PROGNAME="PortProton"
 | 
			
		||||
# PERSONAL_NAME="$(grep PersonaName "$HOME/.local/share/Steam/config/loginusers.vdf" | awk -F'"' '{print $4}')"
 | 
			
		||||
 | 
			
		||||
SCVDF="shortcuts.vdf"
 | 
			
		||||
SCPATH="$STUIDPATH/config/$SCVDF"
 | 
			
		||||
 | 
			
		||||
if [[ ! -f "$SCPATH" ]] ; then 
 | 
			
		||||
	echo '0073686f727463757473000808' | xxd -r -p > "$SCPATH"
 | 
			
		||||
fi
 | 
			
		||||
 
 | 
			
		||||
@@ -5,8 +5,8 @@ if [ "${update_loc}" = "RUS" ]
 | 
			
		||||
then
 | 
			
		||||
    KEY_CREDITS=$RANDOM
 | 
			
		||||
 | 
			
		||||
"${pw_yad_v12_3}" --plug="${KEY_CREDITS}" --tabnum=1 --show-uri \
 | 
			
		||||
--image-path="$PW_GUI_ICON_PATH" --image="port_proton" \
 | 
			
		||||
"${pw_yad_v13_0}" --plug="${KEY_CREDITS}" --tabnum=1 --show-uri \
 | 
			
		||||
--image-path="$PW_GUI_ICON_PATH" --image="port_proton" --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
 | 
			
		||||
--text-align=center --scroll --text="PortProton v. ${install_ver}
 | 
			
		||||
scripts v. ${scripts_install_ver}
 | 
			
		||||
 | 
			
		||||
@@ -18,7 +18,7 @@ https://linux-gaming.ru
 | 
			
		||||
Подробнее см. в Лицензия." 2>/dev/null &
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
"${pw_yad_v12_3}" --plug="${KEY_CREDITS}" --tabnum=2 \
 | 
			
		||||
"${pw_yad_v13_0}" --plug="${KEY_CREDITS}" --tabnum=2 \
 | 
			
		||||
--text-align=center --scroll --text="Автор:   Casro-Fidel (Михаил Тергоев)
 | 
			
		||||
 | 
			
		||||
Помощники разработчика и тестировщики:
 | 
			
		||||
@@ -44,7 +44,7 @@ Boria138
 | 
			
		||||
Akai
 | 
			
		||||
" 2>/dev/null &
 | 
			
		||||
 | 
			
		||||
"${pw_yad_v12_3}" --plug="${KEY_CREDITS}" --tabnum=3 --text-info --scroll <<< "          Лицензия Массачусетского технологического института (MIT License)
 | 
			
		||||
"${pw_yad_v13_0}" --plug="${KEY_CREDITS}" --tabnum=3 --text-info --scroll <<< "          Лицензия Массачусетского технологического института (MIT License)
 | 
			
		||||
 | 
			
		||||
              Авторские права © $(date +'%Y') Castro-Fidel (linux-gaming.ru)
 | 
			
		||||
 | 
			
		||||
@@ -67,7 +67,7 @@ Akai
 | 
			
		||||
ВНЕ ИЛИ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ СДЕЛКАМИ В
 | 
			
		||||
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ." 2>/dev/null &
 | 
			
		||||
 | 
			
		||||
"${pw_yad_v12_3}" --plug="${KEY_CREDITS}" --tabnum=4 \
 | 
			
		||||
"${pw_yad_v13_0}" --plug="${KEY_CREDITS}" --tabnum=4 \
 | 
			
		||||
--text-info --fontname="Serif bold italic 12" --show-uri --scroll \
 | 
			
		||||
<<< '                                            Проект поддержали:
 | 
			
		||||
                                    https://boosty.to/portwine-linux.ru
 | 
			
		||||
@@ -337,7 +337,7 @@ Akai
 | 
			
		||||
 | 
			
		||||
                                    Список будет дополняться...' 2>/dev/null &
 | 
			
		||||
 | 
			
		||||
"${pw_yad_v12_3}" --plug="${KEY_CREDITS}" --tabnum=5 --text="Хотите присоединится и помочь в развитии проекта:" \
 | 
			
		||||
"${pw_yad_v13_0}" --plug="${KEY_CREDITS}" --tabnum=5 --text="Хотите присоединится и помочь в развитии проекта:" \
 | 
			
		||||
--title=JOIN --window-icon=group  --image=system-config-users --uri-color=red --show-uri \
 | 
			
		||||
--text-info --scroll <<< \
 | 
			
		||||
"Website:  https://linux-gaming.ru/
 | 
			
		||||
@@ -349,7 +349,7 @@ boosty: https://boosty.to/portwine-linux.ru
 | 
			
		||||
Yandex кошелек:   410012267513818
 | 
			
		||||
-------------------------------------------" 2>/dev/null &
 | 
			
		||||
 | 
			
		||||
"${pw_yad_v12_3}" --plug="${KEY_CREDITS}" --tabnum=6 --show-uri --title="THIRD PARTY LIBRARIES" \
 | 
			
		||||
"${pw_yad_v13_0}" --plug="${KEY_CREDITS}" --tabnum=6 --show-uri --title="THIRD PARTY LIBRARIES" \
 | 
			
		||||
--fontname="Serif bold italic 10" --text-info <<< "                   Сторонние библиотеки, которые используются в PortProton
 | 
			
		||||
 | 
			
		||||
    PortProton собран на основе бесплатных библиотек программного обеспечения:
 | 
			
		||||
@@ -357,22 +357,22 @@ Yandex кошелек:   410012267513818
 | 
			
		||||
WINE-PROTON: https://github.com/ValveSoftware/Proton
 | 
			
		||||
WINE-PROTON-GE: https://github.com/GloriousEggroll/proton-ge-custom/
 | 
			
		||||
Kron4ek/Wine: https://github.com/Kron4ek/Wine-Builds
 | 
			
		||||
YAD: https://github.com/v1cont/yad
 | 
			
		||||
ZENITY: https://github.com/GNOME/zenity" 2>/dev/null &
 | 
			
		||||
YAD: https://github.com/v1cont/yad" 2>/dev/null &
 | 
			
		||||
 | 
			
		||||
"${pw_yad_v12_3}" --title "О НАС" --key="${KEY_CREDITS}" --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \
 | 
			
		||||
 --notebook --no-buttons  --tab-pos=bottom \
 | 
			
		||||
"${pw_yad_v13_0}" --title "О НАС" --key="${KEY_CREDITS}" --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
 | 
			
		||||
 --notebook --no-buttons  --tab-pos=bottom --expand \
 | 
			
		||||
--tab="О PORTPROTON" --tab="АВТОРЫ" --tab="ЛИЦЕНЗИЯ" --tab="СПОНСОРЫ" --tab="ПРИСОЕДИНИТЬСЯ" \
 | 
			
		||||
--tab="БИБЛИОТЕКИ"
 | 
			
		||||
    echo "Exit from credits"
 | 
			
		||||
    /usr/bin/env bash -c ${pw_full_command_line[*]} 
 | 
			
		||||
    /usr/bin/env bash -c ${pw_full_command_line[*]} &
 | 
			
		||||
    exit 0
 | 
			
		||||
 | 
			
		||||
else
 | 
			
		||||
 | 
			
		||||
    KEY_CREDITS=$RANDOM
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
"${pw_yad_v12_3}" --plug="${KEY_CREDITS}" --tabnum=1 --show-uri \
 | 
			
		||||
"${pw_yad_v13_0}" --plug="${KEY_CREDITS}" --tabnum=1 --show-uri \
 | 
			
		||||
--image-path="$PW_GUI_ICON_PATH" --image="port_proton" \
 | 
			
		||||
--text-align=center --scroll --text="PortProton v. ${install_ver}
 | 
			
		||||
scripts v. ${scripts_install_ver}
 | 
			
		||||
@@ -386,7 +386,7 @@ This program comes with absolutely no warranty.
 | 
			
		||||
See the License for details." 2>/dev/null &
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
"${pw_yad_v12_3}" --plug="${KEY_CREDITS}" --tabnum=2 \
 | 
			
		||||
"${pw_yad_v13_0}" --plug="${KEY_CREDITS}" --tabnum=2 \
 | 
			
		||||
--text-align=center --scroll --text="Author:   Casro-Fidel (Mikhail Tergoev)
 | 
			
		||||
 | 
			
		||||
Developer assistants and testers:
 | 
			
		||||
@@ -412,7 +412,7 @@ Boria138
 | 
			
		||||
Akai
 | 
			
		||||
" 2>/dev/null &
 | 
			
		||||
 | 
			
		||||
"${pw_yad_v12_3}" --plug="${KEY_CREDITS}" --tabnum=3 --text-info --scroll <<< "MIT License
 | 
			
		||||
"${pw_yad_v13_0}" --plug="${KEY_CREDITS}" --tabnum=3 --text-info --scroll <<< "MIT License
 | 
			
		||||
 | 
			
		||||
Copyright (©) 2022 Castro-Fidel (linux-gaming.ru)
 | 
			
		||||
 | 
			
		||||
@@ -434,7 +434,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
			
		||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
			
		||||
SOFTWARE." 2>/dev/null &
 | 
			
		||||
 | 
			
		||||
"${pw_yad_v12_3}" --plug="${KEY_CREDITS}" --tabnum=4 \
 | 
			
		||||
"${pw_yad_v13_0}" --plug="${KEY_CREDITS}" --tabnum=4 \
 | 
			
		||||
--text-info --fontname="Serif bold italic 12" --show-uri --scroll \
 | 
			
		||||
<<< '                                    The project was supported:
 | 
			
		||||
                              https://boosty.to/portwine-linux.ru:
 | 
			
		||||
@@ -705,7 +705,7 @@ SOFTWARE." 2>/dev/null &
 | 
			
		||||
 | 
			
		||||
                                      The list will be updated...' 2>/dev/null &
 | 
			
		||||
 | 
			
		||||
"${pw_yad_v12_3}" --plug="${KEY_CREDITS}" --tabnum=5 --text="Do you want to join and help in the development of the project:" \
 | 
			
		||||
"${pw_yad_v13_0}" --plug="${KEY_CREDITS}" --tabnum=5 --text="Do you want to join and help in the development of the project:" \
 | 
			
		||||
--title=JOIN --window-icon=group  --image=system-config-users --uri-color=red --show-uri \
 | 
			
		||||
--text-info --scroll <<< \
 | 
			
		||||
"Website:  http://linux-gaming.ru
 | 
			
		||||
@@ -717,7 +717,7 @@ boosty:  https://boosty.to/portwine-linux.ru
 | 
			
		||||
Yandex wallet:   410012267513818
 | 
			
		||||
-------------------------------------------" 2>/dev/null &
 | 
			
		||||
 | 
			
		||||
"${pw_yad_v12_3}" --plug="${KEY_CREDITS}" --tabnum=6 --show-uri --title="THIRD PARTY LIBRARIES" \
 | 
			
		||||
"${pw_yad_v13_0}" --plug="${KEY_CREDITS}" --tabnum=6 --show-uri --title="THIRD PARTY LIBRARIES" \
 | 
			
		||||
--fontname="Serif bold italic 10" --text-info <<< "                               Third-party libraries that are used in PortProton
 | 
			
		||||
 | 
			
		||||
              PortProton is built on the basis of the following free software libraries:
 | 
			
		||||
@@ -725,15 +725,15 @@ Yandex wallet:   410012267513818
 | 
			
		||||
WINE-PROTON: https://github.com/ValveSoftware/Proton
 | 
			
		||||
WINE-PROTON-GE: https://github.com/GloriousEggroll/proton-ge-custom/
 | 
			
		||||
Kron4ek/Wine: https://github.com/Kron4ek/Wine-Builds
 | 
			
		||||
YAD: https://github.com/v1cont/yad
 | 
			
		||||
ZENITY: https://github.com/GNOME/zenity" 2>/dev/null &
 | 
			
		||||
YAD: https://github.com/v1cont/yad" 2>/dev/null &
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
"${pw_yad_v12_3}" --title "ABOUT US" --key="${KEY_CREDITS}" --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \
 | 
			
		||||
--notebook --no-buttons  --tab-pos=bottom \
 | 
			
		||||
"${pw_yad_v13_0}" --title "ABOUT US" --key="${KEY_CREDITS}" ---window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
 | 
			
		||||
--notebook --no-buttons  --tab-pos=bottom --expand \
 | 
			
		||||
--tab="ABOUT PORTPROTON" --tab="AUTORS" --tab="LICENSE" --tab="SPONSORS" --tab="JOIN" \
 | 
			
		||||
--tab="THIRD PARTY LIBRARIES"
 | 
			
		||||
 | 
			
		||||
    echo "Exit from credits"
 | 
			
		||||
    /usr/bin/env bash -c ${pw_full_command_line[*]} 
 | 
			
		||||
    /usr/bin/env bash -c ${pw_full_command_line[*]} &
 | 
			
		||||
    exit 0
 | 
			
		||||
fi
 | 
			
		||||
 
 | 
			
		||||
@@ -8,16 +8,23 @@ if [[ -f "${PORT_WINE_TMP_PATH}/${portname}_loc" ]] ; then
 | 
			
		||||
	export update_loc=${update_loc}
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [[ "${update_loc}" == "RUS" || "${update_loc}" == "ENG" ]] && [[ -f "${PORT_WINE_TMP_PATH}/${portname}_loc" ]] ; then
 | 
			
		||||
	echo ""
 | 
			
		||||
if [[ "${FORCE_ENG_LANG}" == "1" ]] ; then
 | 
			
		||||
	export update_loc="ENG"
 | 
			
		||||
else
 | 
			
		||||
	SET_LANG=`zenity --title  "LAUNGUAGE" --text "Select the language" --list --radiolist \
 | 
			
		||||
	--column="Set:" --column "Choose language:" TRUE "RUS" FALSE "ENG" `
 | 
			
		||||
	if [[ "${update_loc}" == "RUS" || "${update_loc}" == "ENG" ]] && [[ -f "${PORT_WINE_TMP_PATH}/${portname}_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"
 | 
			
		||||
		if [[ ! -z "${SET_LANG}" ]]
 | 
			
		||||
		then export update_loc=${SET_LANG}
 | 
			
		||||
		else exit 1
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [[ "${update_loc}" == "RUS" ]] ; then
 | 
			
		||||
@@ -36,7 +43,7 @@ if [[ "${update_loc}" == "RUS" ]] ; then
 | 
			
		||||
 | 
			
		||||
    export loc_create_pfx_backup_path="РЕЗЕРВНОЕ КОПИРОВАНИЕ ПРЕФИКСА В..."
 | 
			
		||||
 | 
			
		||||
    export loc_gui_wine_uninstaller="Удаление программм"
 | 
			
		||||
    export loc_gui_wine_uninstaller="Удаление программ"
 | 
			
		||||
    export loc_gui_wine_cfg="Настройка префикса"
 | 
			
		||||
    export loc_gui_wine_file="Файловый менеджер"
 | 
			
		||||
    export loc_gui_wine_cmd="Командная строка"
 | 
			
		||||
@@ -60,7 +67,8 @@ if [[ "${update_loc}" == "RUS" ]] ; then
 | 
			
		||||
	export inst_set_top="Установка ${portname}"
 | 
			
		||||
	export sc_info="Ярлык будет создан в каталоге ${portname}."
 | 
			
		||||
	export sc_name="Название"
 | 
			
		||||
	export sc_menu_desktop="Добавить ярлык в МЕНЮ -> Игры и на Рабочий стол"
 | 
			
		||||
	export sc_menu_desktop="Добавить ярлык в МЕНЮ -> Игры"
 | 
			
		||||
	export sc_desktop_desktop="Добавить ярлык на Рабочий стол"
 | 
			
		||||
	export sc_add_in_steam="Добавить ярлык в библиотеку STEAM"
 | 
			
		||||
	export sc_restert_steam="Для добавления ярлыка в STEAM, необходим перезапуск.\n\nПерезапустить STEAM?"
 | 
			
		||||
 | 
			
		||||
@@ -114,9 +122,14 @@ if [[ "${update_loc}" == "RUS" ]] ; then
 | 
			
		||||
    export loc_winetricks="Запустить префикс менеджер для установки доп. библиотек в выбранный префикс"
 | 
			
		||||
	export loc_edit_db="Изменить файл настроек для"
 | 
			
		||||
	export loc_download_other_wine="Открыть меню для скачивания других версий WINE-PROTON"
 | 
			
		||||
	export loc_downloading="Скачивание"
 | 
			
		||||
 | 
			
		||||
	export loc_clear_pfx="Очистить префикс для исправления проблем"
 | 
			
		||||
 | 
			
		||||
	export loc_gui_dll_new_pfx="Установить рекомендованные библиотеки в новый префикс:  "
 | 
			
		||||
 | 
			
		||||
	export loc_gui_portproton_lock='Обнаружена запущенная сессия PortProton.\nХотите завершить предыдущую сессию?'
 | 
			
		||||
 | 
			
		||||
	export ENABLE_VKBASALT_INFO='Включить vkBasalt по умолчанию для улучшение графики в играх работающих под Vulkan. (Горячая клавиша HOME отключает vkbasalt)'
 | 
			
		||||
	export PW_NO_ESYNC_INFO='Не использовать примитивы внутрипроцессной синхронизации на основе eventfd. (Рекомендуется не изменять значение)'
 | 
			
		||||
	export PW_NO_FSYNC_INFO='Не использовать примитивы внутрипроцессной синхронизации на основе фьютексов. (Автоматически отключается в системах без FUTEX_WAIT_MULTIPLE поддержки) (Рекомендуется не изменять значение)'
 | 
			
		||||
@@ -128,7 +141,6 @@ if [[ "${update_loc}" == "RUS" ]] ; then
 | 
			
		||||
	export PW_HIDE_NVIDIA_GPU_INFO='Замаскировать все функции используемые для видеокарт NVIDIA'
 | 
			
		||||
	export PW_FORCE_USE_VSYNC_INFO='Принудительное включение вертикальной синхронизации'
 | 
			
		||||
	export PW_VIRTUAL_DESKTOP_INFO='Включить запуск приложение в виртуальном рабочем столе WINE'
 | 
			
		||||
	export PW_WINEDBG_DISABLE_INFO='Отключить все функции отладки WINE (Рекомендуется не изменять значение)'
 | 
			
		||||
	export PW_USE_TERMINAL_INFO='Запускать приложение в терминале'
 | 
			
		||||
	export PW_HEAP_DELAY_FREE_INFO='Включить задержку освобождения некоторой памяти, чтобы обойти ошибки, связанные с использованием приложения после освобождения памяти.'
 | 
			
		||||
	export PW_NO_WRITE_WATCH_INFO='Очень опасный способ взлома таймера записи в памяти в ntdll. Это улучшает производительность некоторых очень специфических игр. (Рекомендуется не изменять значение)'
 | 
			
		||||
@@ -140,11 +152,13 @@ if [[ "${update_loc}" == "RUS" ]] ; then
 | 
			
		||||
	export PW_USE_GAMEMODE_INFO='Использование автоматической оптимизации системы для увеличения производительности в играх (при условии установленного пакета gamemode в системе)'
 | 
			
		||||
	export PW_USE_WINE_DXGI_INFO='Принудительное использование встроенной библиотеки DXGI (в редких случаях решает проблемы с запуском игр под DX12)'
 | 
			
		||||
	export PW_MANGOHUD_USER_CONF_INFO='Принудительное использование системных настроек MANGOHUD (GOverlay и т.п.)'
 | 
			
		||||
	export PW_VKBASALT_USER_CONF_INFO='Принудительное использование системных настроек VKBASALT (GOverlay и т.п.)'
 | 
			
		||||
	export PW_USE_D3D_EXTRAS_INFO='Включить принудительное использование сторонних библиотек DirectX'
 | 
			
		||||
	export PW_USE_WINDOWS_7_INFO='Изменить версию WINDOWS 10 на WINDOWS 7 в префиксе'
 | 
			
		||||
	export PW_USE_SHADER_CACHE_INFO='Использовать кеширование шейдеров средствами WINE (отключать только при наличии микрофризов в игре)'
 | 
			
		||||
	export PW_WINE_FULLSCREEN_FSR_INFO='Работает во время использования любой версии ProtonGE в полноэкранном режиме при разрешении ниже стандартного для экрана'
 | 
			
		||||
	export PW_USE_FAKE_DLSS_INFO='Включить транслятор DLSS в FSR 2 в играх DirectX 12 (проект CyberFSR2)'
 | 
			
		||||
	export PW_USE_FAKE_DLSS_3_INFO='Включить транслятор DLSS в FSR 3 в играх DirectX 12 (Эксперементальный проект dlssg-to-fsr3)'
 | 
			
		||||
    export PW_USE_EAC_AND_BE_INFO='Включить Easy Anti-Cheat and BattlEye Anti-Cheat (требуется если игра использует какой-то из этих античитов)'
 | 
			
		||||
    export PW_REDUCE_PULSE_LATENCY_INFO='Уменьшить задержку pulseaudio для исправления прерывистого звука'
 | 
			
		||||
    export PW_USE_US_LAYOUT_INFO='Принудительное использование английской раскладки (полезно для игр в которых управление верно работает исключительно на английской раскладке)'
 | 
			
		||||
@@ -152,6 +166,7 @@ if [[ "${update_loc}" == "RUS" ]] ; then
 | 
			
		||||
	export PW_USE_SYSTEM_VK_LAYERS_INFO='Использовать системные mangohud, vkBasalt, obs-vkcapture и прочие приложения использующие vulkan layers'
 | 
			
		||||
	export PW_USE_OBS_VKCAPTURE_INFO='Включить возможность записи в OBS Studio с помощью obs-vkcapture (ВНИМАНИЕ: будет включено принудительное использование системных mangohud, vkBasalt, obs-vkcapture и прочих приложений использующих vulkan layers)'
 | 
			
		||||
	export PW_USE_GALLIUM_ZINK_INFO='Использовать драйвер zink (OpenGL поверх Vulkan), позволяет использовать vkBasalt в играх на OpenGL (ВНИМАНИЕ: необходима поддержка vulkan, используется wined3d (opengl) вместо dxvk, подходит для игр на OpenGL и старых версий DirectX, на более новых версиях DirectX возможны артефакты)'
 | 
			
		||||
	export PW_DISABLE_COMPOSITING_INFO='Отключить композитинг (эффекты) рабочего стола. Зачастую улучшает производительность.'
 | 
			
		||||
 | 
			
		||||
	export PW_3DFX_INFO='Имитация старого графического ускорителя 3dfx (добавляет горизонтальные полосы)'
 | 
			
		||||
	export PW_AdaptiveSharpen_INFO='Увеличение резкости, можно использовать совместно с CAS'
 | 
			
		||||
@@ -263,11 +278,12 @@ if [[ "${update_loc}" == "RUS" ]] ; then
 | 
			
		||||
	export PW_MH_vkbasalt_INFO='Показать включён ли vkBasalt'
 | 
			
		||||
	export PW_MH_vram_INFO='Отображение использования VRAM'
 | 
			
		||||
	export PW_MH_vulkan_driver_INFO='Отображает используемый драйвер vulkan (radv/amdgpu-pro/amdvlk)'
 | 
			
		||||
	export PW_MH_frametime='Отображение времени кадра рядом FPS'
 | 
			
		||||
	export PW_MH_wine_INFO='Показать используемую версию Wine или Proton'
 | 
			
		||||
 | 
			
		||||
	export PW_PFX_BACKUP_INFO="Внимание! Не передавайте резевную копию третьим лицам, есть риск потери аккаунтов"
 | 
			
		||||
	export PW_PFX_BACKUP_SUCCESS="Резервная копия префикса: \"${PW_PREFIX_NAME}\" успешно создана"
 | 
			
		||||
	export PW_PFX_BACKUP_ERROR="Во время создания резервной копии префикса: \"${PW_PREFIX_NAME}\" произошла ошибка"
 | 
			
		||||
	export PW_PFX_BACKUP_SUCCESS="Успешно создана резервная копия префикса:"
 | 
			
		||||
	export PW_PFX_BACKUP_ERROR="Произошла ошибка во время создания резервной копии префикса:"
 | 
			
		||||
 | 
			
		||||
	export loc_find_d3dadapter9_error="не найден в системе.\nУстановите недостающий пакет: </Sb>d3dadapter9</b>"
 | 
			
		||||
 | 
			
		||||
@@ -352,7 +368,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}, а так же не работает с gamescope)"
 | 
			
		||||
	export loc_gui_gpu_select_help="Выбор какая видеокарта будет использоваться для запуска игры (используется для всех запускаемых игр и программ в ${portname}.)"
 | 
			
		||||
 | 
			
		||||
	export loc_gui_check_new_wine="Проверяем новые версии WINE на GitHub"
 | 
			
		||||
	export loc_gui_check_new_wine_error="Не удается установить соединение с GitHub\nдля проверки новых версии WINE."
 | 
			
		||||
@@ -367,7 +383,7 @@ if [[ "${update_loc}" == "RUS" ]] ; then
 | 
			
		||||
 | 
			
		||||
	export loc_gui_disabled_mh="ВЫКЛЮЧИТЬ MANGOHUD"
 | 
			
		||||
	export loc_gui_disabled_mh_help="Выключить MangoHud и перейти в предыдущее меню."
 | 
			
		||||
	export loc_gui_mh_top="Настройки MangoHud  (Клавишы <b>R_SHIFT + F12</b> отключают MangoHud)\n<b>ПРИМЕЧАНИЕ:</b> Для вывода справки по каждому пункту, просто наведите курсор мыши на текст.\n"
 | 
			
		||||
	export loc_gui_mh_top="Настройки MangoHud  (Клавиши <b>R_SHIFT + F12</b> отключают MangoHud)\n<b>ПРИМЕЧАНИЕ:</b> Для вывода справки по каждому пункту, просто наведите курсор мыши на текст.\n"
 | 
			
		||||
 | 
			
		||||
	export loc_gui_no="НЕТ"
 | 
			
		||||
	export loc_gui_yes="ДА"
 | 
			
		||||
@@ -409,6 +425,22 @@ if [[ "${update_loc}" == "RUS" ]] ; then
 | 
			
		||||
	export loc_demul="Эмулятор для игровой консоли Sega Dreamcast"
 | 
			
		||||
	export loc_rpcs3="Эмулятор для игровой консоли PlayStation 3"
 | 
			
		||||
 | 
			
		||||
	export loc_prefix_manager_comp='Выберите компонент для установки в префикс:'
 | 
			
		||||
	export loc_prefix_manager_font='Выберите шрифт для установки в префикс:'
 | 
			
		||||
	export loc_prefix_manager_conf='Изменить дополнительные настройки префикса:'
 | 
			
		||||
	export loc_prefix_manager_wine='используя wine:'
 | 
			
		||||
	export loc_pm='МЕНЕДЖЕР ПРЕФИКСА'
 | 
			
		||||
	export loc_pm_dlls='БИБЛИОТЕКИ'
 | 
			
		||||
	export loc_pm_fonts='ШРИФТЫ'
 | 
			
		||||
	export loc_pm_settings='НАСТРОЙКИ'
 | 
			
		||||
	export loc_start_pfx_manager="Запускается менеджер префикса:"
 | 
			
		||||
 | 
			
		||||
	export loc_warn_cyrillic_in_path="Путь до исполняемого файла содержит кириллические символы.\nИногда это может привести к неработоспособности приложения."
 | 
			
		||||
 | 
			
		||||
	export loc_gui_terminal="ТЕРМИНАЛ"
 | 
			
		||||
	export loc_gui_logo="ЛОГО"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
elif [[ "${update_loc}" == "ENG" ]] ; then
 | 
			
		||||
 | 
			
		||||
	export loc_gui_pw_reinstall_pp="REINSTALL ${portname}"
 | 
			
		||||
@@ -450,7 +482,8 @@ elif [[ "${update_loc}" == "ENG" ]] ; then
 | 
			
		||||
	export inst_set_top="Instaling ${portname}"
 | 
			
		||||
	export sc_info="The shortcut will be created in the ${portname} directory."
 | 
			
		||||
	export sc_name="Name"
 | 
			
		||||
	export sc_menu_desktop="Add shortcut to MENU -> GAMES and Desktop"
 | 
			
		||||
	export sc_menu_desktop="Add shortcut to MENU -> GAMES"
 | 
			
		||||
	export sc_desktop_desktop="Add shortcut to Desktop"
 | 
			
		||||
	export sc_add_in_steam="Add shortcut to STEAM library"
 | 
			
		||||
	export sc_restert_steam="For adding shortcut to STEAM, needed restart.\n\nRestart STEAM now?"
 | 
			
		||||
 | 
			
		||||
@@ -504,9 +537,14 @@ elif [[ "${update_loc}" == "ENG" ]] ; then
 | 
			
		||||
    export loc_winetricks="Run winetricks to install additional libraries to the selected prefix"
 | 
			
		||||
	export loc_edit_db="Edit database file for"
 | 
			
		||||
	export loc_download_other_wine="Open the menu to download other versions of WINE-PROTON "
 | 
			
		||||
	export loc_downloading="Downloading"
 | 
			
		||||
 | 
			
		||||
	export loc_clear_pfx="Clear the prefix to fix problems"
 | 
			
		||||
 | 
			
		||||
	export loc_gui_dll_new_pfx="Do you want to installing recommended libraries in the new prefix:  "
 | 
			
		||||
 | 
			
		||||
	export loc_gui_portproton_lock='A running PortProton session was detected.\nDo you want to end the previous session?'
 | 
			
		||||
 | 
			
		||||
	export ENABLE_VKBASALT_INFO='Enable vkBasalt by default to improve graphics in games running on Vulkan. (The HOME hotkey disables vkbasalt)'
 | 
			
		||||
	export PW_NO_ESYNC_INFO='Do not use in-process synchronization primitives based on eventfd. (It is recommended not to change the value.)'
 | 
			
		||||
	export PW_NO_FSYNC_INFO='Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems without FUTEX_WAIT_MULTIPLE support) (It is recommended not to change the value)'
 | 
			
		||||
@@ -518,7 +556,6 @@ elif [[ "${update_loc}" == "ENG" ]] ; then
 | 
			
		||||
	export PW_HIDE_NVIDIA_GPU_INFO='Disguise all features used for NVIDIA graphics cards'
 | 
			
		||||
	export PW_FORCE_USE_VSYNC_INFO='Forced activation of vertical sync'
 | 
			
		||||
	export PW_VIRTUAL_DESKTOP_INFO='Enable the application to run in the WINE virtual desktop'
 | 
			
		||||
	export PW_WINEDBG_DISABLE_INFO='Disable all WINE debugging functions (It is recommended not to change the value)'
 | 
			
		||||
	export PW_USE_TERMINAL_INFO='Run the application in the terminal'
 | 
			
		||||
	export PW_HEAP_DELAY_FREE_INFO='Include a delay in releasing some memory to bypass errors associated with using the application after the memory is released'
 | 
			
		||||
	export PW_NO_WRITE_WATCH_INFO='A very dangerous way to hack the memory write timer in ntdll. This improves the performance of some very specific games. (It is recommended not to change the value.)'
 | 
			
		||||
@@ -530,11 +567,13 @@ elif [[ "${update_loc}" == "ENG" ]] ; then
 | 
			
		||||
	export PW_USE_GAMEMODE_INFO='Using automatic system optimization to improve performance in games (provided the gamemode package is installed on the system)'
 | 
			
		||||
	export PW_USE_WINE_DXGI_INFO='Forced use of built-in DXGI library (in rare cases it solves problems with DX12 games)'
 | 
			
		||||
	export PW_MANGOHUD_USER_CONF_INFO='Forced use of MANGOHUD system settings (GOverlay, etc.)'
 | 
			
		||||
	export PW_VKBASALT_USER_CONF_INFO='Forced use of VKBASALT system settings (GOverlay, etc.)'
 | 
			
		||||
	export PW_USE_D3D_EXTRAS_INFO='Enable forced use of third-party DirectX libraries'
 | 
			
		||||
	export PW_USE_WINDOWS_7_INFO='Change the version of WINDOWS 10 to WINDOWS 7 in the prefix'
 | 
			
		||||
	export PW_USE_SHADER_CACHE_INFO='Use WINE shader caching (disable only if there are microfreezes in the game)'
 | 
			
		||||
	export PW_WINE_FULLSCREEN_FSR_INFO='Works while using any version of ProtonGE in full screen mode at a resolution below the standard screen'
 | 
			
		||||
	export PW_USE_FAKE_DLSS_INFO='Enable DLSS translator in FSR 2 in DirectX 12 games (CyberFSR2)'
 | 
			
		||||
	export PW_USE_FAKE_DLSS_3_INFO='Enable DLSS translator in FSR 3 in DirectX 12 games (Experimental project dlssg-to-fsr3)'
 | 
			
		||||
	export PW_USE_EAC_AND_BE_INFO='Enable Easy Anti-Cheat and BattlEye Anti-Cheat runtimes (required if game used this anti-cheats)'
 | 
			
		||||
	export PW_REDUCE_PULSE_LATENCY_INFO='Reduce pulseaudio latency to fix intermittent sound'
 | 
			
		||||
	export PW_USE_US_LAYOUT_INFO='Forced use of the us layout (useful for games in which the control works correctly only on the us layout)'
 | 
			
		||||
@@ -542,6 +581,8 @@ elif [[ "${update_loc}" == "ENG" ]] ; then
 | 
			
		||||
	export PW_USE_SYSTEM_VK_LAYERS_INFO='Use system mangohud, vkBasalt, obs-vkcapture and other applications using vulkan layers'
 | 
			
		||||
	export PW_USE_OBS_VKCAPTURE_INFO='Enable the ability to write to OBS Studio using obs-vkcapture (ATTENTION: the forced use of system mangohud, vkBasalt, obs-vkcapture and other applications using vulkan layers will be enabled)'
 | 
			
		||||
	export PW_USE_GALLIUM_ZINK_INFO='Use the zink driver (OpenGL on top of Vulkan), allows you to use vkBasalt in OpenGL games (ATTENTION: vulkan support is required, wined3d (opengl) is used instead of dxvk, suitable for games on OpenGL and older versions of DirectX, artifacts are possible on newer versions of DirectX)'
 | 
			
		||||
	export PW_DISABLE_COMPOSITING_INFO='Disable desktop compositing (effects). It often improves performance.'
 | 
			
		||||
 | 
			
		||||
    export PW_3DFX_INFO='Simulation of an old 3dfx graphics accelerator (adds horizontal stripes)'
 | 
			
		||||
   	export PW_AdaptiveSharpen_INFO='Sharpness increase, can be used with CAS'
 | 
			
		||||
   	export PW_Bloom_INFO='Adds glow from bright light sources in the game'
 | 
			
		||||
@@ -652,11 +693,12 @@ elif [[ "${update_loc}" == "ENG" ]] ; then
 | 
			
		||||
	export PW_MH_vkbasalt_INFO='Show if vkBasalt is on'
 | 
			
		||||
	export PW_MH_vram_INFO='Display system VRAM usage'
 | 
			
		||||
	export PW_MH_vulkan_driver_INFO='Display used Vulkan driver (radv/amdgpu-pro/amdvlk)'
 | 
			
		||||
	export PW_MH_frametime='Display frametime next to FPS text'
 | 
			
		||||
	export PW_MH_wine_INFO='Show current Wine or Proton version in use'
 | 
			
		||||
 | 
			
		||||
	export PW_PFX_BACKUP_INFO="Attention! Do not pass the resev copy to third parties, there is a risk of losing accounts"
 | 
			
		||||
	export PW_PFX_BACKUP_SUCCESS="Prefix backup: \"${PW_PREFIX_NAME}\" has been successfully created"
 | 
			
		||||
	export PW_PFX_BACKUP_ERROR="An error occurred while backing up the prefix: \"${PW_PREFIX_NAME}\" error occurred"
 | 
			
		||||
	export PW_PFX_BACKUP_SUCCESS="Backup has been successfully created for prefix:"
 | 
			
		||||
	export PW_PFX_BACKUP_ERROR="An error occurred while backing up the prefix:"
 | 
			
		||||
 | 
			
		||||
	export loc_find_d3dadapter9_error="Not found in the system.\nInstall the missing package: </Sb>d3dadapter9</b>"
 | 
			
		||||
 | 
			
		||||
@@ -741,7 +783,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}, and also does not work with gamescope)"
 | 
			
		||||
	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_check_new_wine="Check new version WINE from GitHub"
 | 
			
		||||
	export loc_gui_check_new_wine_error="Error: check wine from github."
 | 
			
		||||
@@ -799,4 +841,20 @@ A brief instruction:
 | 
			
		||||
	export loc_demul="Emulator for the Sega Dreamcast game console"
 | 
			
		||||
	export loc_rpcs3="Emulator for the PlayStation 3 game console"
 | 
			
		||||
 | 
			
		||||
	export loc_prefix_manager_comp='Select components to install in prefix:'
 | 
			
		||||
	export loc_prefix_manager_font='Select fonts to install in prefix:'
 | 
			
		||||
	export loc_prefix_manager_conf='Change config for prefix:'
 | 
			
		||||
	export loc_prefix_manager_wine='using wine:'
 | 
			
		||||
	export loc_pm='PREFIX MANAGER'
 | 
			
		||||
	export loc_pm_dlls='DLLS'
 | 
			
		||||
	export loc_pm_fonts='FONTS'
 | 
			
		||||
	export loc_pm_settings='SETTINGS'
 | 
			
		||||
	export loc_start_pfx_manager="Starting prefix manager:"
 | 
			
		||||
 | 
			
		||||
	export loc_warn_cyrillic_in_path="The path to the executable file contains Cyrillic characters.\nSometimes this can cause the application to malfunction."
 | 
			
		||||
 | 
			
		||||
	export loc_gui_terminal="TERMINAL"
 | 
			
		||||
	export loc_gui_logo="LOGO"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
fi
 | 
			
		||||
 
 | 
			
		||||
@@ -12,6 +12,7 @@ export PW_DLL_INSTALL="vcrun2019 d3dx11_42 d3dx11_43"
 | 
			
		||||
export PW_WINDOWS_VER=10
 | 
			
		||||
export PW_WINE_FULLSCREEN_FSR="0"
 | 
			
		||||
export PW_USE_EAC_AND_BE="0"
 | 
			
		||||
export PW_WINE_USE="PROTON_LG"
 | 
			
		||||
 | 
			
		||||
add_in_start_portwine () {
 | 
			
		||||
    rm -fr "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/ProgramData/Agent/data"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										11
									
								
								data_from_portwine/scripts/portwine_db/BlackDesertOnline
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,11 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
#Author: fidel
 | 
			
		||||
#BlackDesertLauncher.exe
 | 
			
		||||
#Rating=1-5
 | 
			
		||||
#####################examples###########################
 | 
			
		||||
export PW_WINDOWS_VER="10"
 | 
			
		||||
export PW_VULKAN_USE="2"
 | 
			
		||||
export PW_WINE_USE=PROTON_LG
 | 
			
		||||
export PW_PREFIX_NAME="BLACK_DESERT_ONLINE"
 | 
			
		||||
# export DISABLE_CP_DEFPFX=1
 | 
			
		||||
export PW_USE_EAC_AND_BE="1"
 | 
			
		||||
							
								
								
									
										9
									
								
								data_from_portwine/scripts/portwine_db/Caliber
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,9 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
#Author: fidel
 | 
			
		||||
#caliber_launcher_pp.exe
 | 
			
		||||
#Rating=1-5
 | 
			
		||||
#####################examples###########################
 | 
			
		||||
export PW_VULKAN_USE="2"
 | 
			
		||||
export PW_WINE_USE="WINE_LG"
 | 
			
		||||
export PW_PREFIX_NAME="CALIBER"
 | 
			
		||||
export DISABLE_CP_DEFPFX=1
 | 
			
		||||
							
								
								
									
										10
									
								
								data_from_portwine/scripts/portwine_db/CatsLauncher
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,10 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
#Author: fidel
 | 
			
		||||
#CatsLauncher.exe
 | 
			
		||||
#Rating=5
 | 
			
		||||
#####################examples###########################
 | 
			
		||||
export PW_WINDOWS_VER="10"
 | 
			
		||||
export PW_VULKAN_USE="2"
 | 
			
		||||
export PW_WINE_USE="WINE_LG"
 | 
			
		||||
export PW_PREFIX_NAME="DOTNET"
 | 
			
		||||
# export WINEDLLOVERRIDES="libglesv2="
 | 
			
		||||
@@ -4,4 +4,41 @@
 | 
			
		||||
#EADesktop.exe
 | 
			
		||||
#Rating=5
 | 
			
		||||
#####################examples###########################
 | 
			
		||||
export PW_USE_TERMINAL="1"
 | 
			
		||||
export PW_USE_TERMINAL="0"
 | 
			
		||||
export PW_VULKAN_USE="2"
 | 
			
		||||
export PW_WINE_USE="PROTON_LG"
 | 
			
		||||
export PW_PREFIX_NAME="EAAPP"
 | 
			
		||||
export PW_MANGOHUD="0"
 | 
			
		||||
export PW_MANGOHUD_USER_CONF="0"
 | 
			
		||||
export ENABLE_VKBASALT="0"
 | 
			
		||||
export PW_VKBASALT_USER_CONF="0"
 | 
			
		||||
export PW_NO_ESYNC="1"
 | 
			
		||||
export PW_NO_FSYNC="0"
 | 
			
		||||
export PW_USE_RAY_TRACING="0"
 | 
			
		||||
export PW_USE_NVAPI_AND_DLSS="0"
 | 
			
		||||
export PW_USE_FAKE_DLSS="0"
 | 
			
		||||
export PW_WINE_FULLSCREEN_FSR="1"
 | 
			
		||||
export PW_HIDE_NVIDIA_GPU="0"
 | 
			
		||||
export PW_VIRTUAL_DESKTOP="0"
 | 
			
		||||
export PW_GUI_DISABLED_CS="0"
 | 
			
		||||
export PW_USE_GAMEMODE="1"
 | 
			
		||||
export PW_USE_D3D_EXTRAS="1"
 | 
			
		||||
export PW_FIX_VIDEO_IN_GAME="0"
 | 
			
		||||
export PW_REDUCE_PULSE_LATENCY="0"
 | 
			
		||||
export PW_USE_US_LAYOUT="0"
 | 
			
		||||
export PW_USE_GSTREAMER="1"
 | 
			
		||||
export PW_FORCE_LARGE_ADDRESS_AWARE="1"
 | 
			
		||||
export PW_USE_SHADER_CACHE="1"
 | 
			
		||||
export PW_USE_WINE_DXGI="0"
 | 
			
		||||
export PW_USE_EAC_AND_BE="1"
 | 
			
		||||
export PW_USE_SYSTEM_VK_LAYERS="0"
 | 
			
		||||
export PW_USE_OBS_VKCAPTURE="0"
 | 
			
		||||
export PW_USE_GALLIUM_ZINK="0"
 | 
			
		||||
export PW_USE_GAMESCOPE="0"
 | 
			
		||||
export LAUNCH_PARAMETERS=""
 | 
			
		||||
export PW_WINDOWS_VER="10"
 | 
			
		||||
export PW_DLL_INSTALL=""
 | 
			
		||||
export WINEDLLOVERRIDES=""
 | 
			
		||||
export PW_WINE_CPU_TOPOLOGY="disabled"
 | 
			
		||||
export GAMESCOPE_ARGS="-F fsr"
 | 
			
		||||
add_in_start_portwine () { export LC_CTYPE=C ;}
 | 
			
		||||
 
 | 
			
		||||
@@ -9,6 +9,7 @@ export WINEDLLOVERRIDES="galaxycommunication.exe=n;libglesv2="
 | 
			
		||||
export LAUNCH_PARAMETERS="/runWithoutUpdating /deelevated"
 | 
			
		||||
export PW_PREFIX_NAME="GOG"
 | 
			
		||||
export DISABLE_CP_DEFPFX=1
 | 
			
		||||
export PW_WINE_USE=PROTON_STEAM_8.0-4
 | 
			
		||||
 | 
			
		||||
add_in_start_portwine ()
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -17,8 +17,3 @@ Grub Customizer utility"
 | 
			
		||||
fi
 | 
			
		||||
export PW_VULKAN_USE="2"
 | 
			
		||||
 | 
			
		||||
add_in_start_portwine () {
 | 
			
		||||
    if [ "${update_loc}" = "RUS" ] ; then
 | 
			
		||||
        sed -i "s/Language=english/Language=russian/g" "${PATH_TO_GAME}/Engine/Binaries/ThirdParty/Steamworks/Steamv154/Win64/steam_api64.ini"
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										18
									
								
								data_from_portwine/scripts/portwine_db/HorizonForbiddenWest
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,18 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
#Author: fidel
 | 
			
		||||
#HorizonForbiddenWest.exe
 | 
			
		||||
#Rating=5
 | 
			
		||||
#####################examples###########################
 | 
			
		||||
export PW_WINE_USE="WINE-9.5-AMD64"
 | 
			
		||||
export PW_WINDOWS_VER="10"
 | 
			
		||||
export PW_DLL_INSTALL=""
 | 
			
		||||
export WINEDLLOVERRIDES=""
 | 
			
		||||
export PW_VULKAN_USE="2"
 | 
			
		||||
export PW_USE_GSTREAMER="1"
 | 
			
		||||
export PW_USE_D3D_EXTRAS="1"
 | 
			
		||||
export PW_FIX_VIDEO_IN_GAME="1"
 | 
			
		||||
export PW_USE_SHADER_CACHE="0"
 | 
			
		||||
export PW_USE_EAC_AND_BE="0"
 | 
			
		||||
export LAUNCH_PARAMETERS="-EpicPortal"
 | 
			
		||||
 | 
			
		||||
gui_proton_downloader silent "$PW_WINE_USE"
 | 
			
		||||
@@ -3,4 +3,4 @@
 | 
			
		||||
#LOTF2.exe
 | 
			
		||||
#Rating=5
 | 
			
		||||
#####################examples###########################
 | 
			
		||||
export PW_WINE_USE="WINE_LG_8-18-1"
 | 
			
		||||
export PW_WINE_USE="WINE_LG"
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
#Rating=1-5
 | 
			
		||||
#####################examples###########################
 | 
			
		||||
export TEXT_OPSSL=""
 | 
			
		||||
[[ -z `which openssl` ]] && export TEXT_OPSSL="Install openssl in your system!!!\n"
 | 
			
		||||
[[ -z `which openssl` ]] && export TEXT_OPSSL="Install openssl in your system!\n"
 | 
			
		||||
export PW_COMMENT_DB="${TEXT_OPSSL}Dwnload and start League of Legends can take a long time"
 | 
			
		||||
# export WINEDLLOVERRIDES="mscoree,mshtml="
 | 
			
		||||
export LAUNCH_PARAMETERS="--launch-product=league_of_legends --launch-patchline=live"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								data_from_portwine/scripts/portwine_db/MODERN_WARSHIPS
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,13 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
#Author: ValoKarDin
 | 
			
		||||
#modern_warships_pp.exe
 | 
			
		||||
#Modern Warships.exe
 | 
			
		||||
#Rating=5
 | 
			
		||||
export PW_COMMENT_DB="Modern Warships"
 | 
			
		||||
################################################
 | 
			
		||||
export PW_VULKAN_USE=2                       #dxvk, vkd3d or 0 for OpenGL
 | 
			
		||||
export PW_DLL_INSTALL="lucida"     # Install DLL in port prefix (used winetricks)
 | 
			
		||||
export PW_USE_D3D_EXTRAS="1"
 | 
			
		||||
export PW_USE_EAC_AND_BE="0"
 | 
			
		||||
export PW_PREFIX_NAME="MODERN_WARSHIPS"
 | 
			
		||||
export PW_USE_SHADER_CACHE="1"
 | 
			
		||||
@@ -0,0 +1,8 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
#Author: fidel
 | 
			
		||||
#PulseOnlineLauncher.exe
 | 
			
		||||
#Rating=5
 | 
			
		||||
#####################examples###########################
 | 
			
		||||
export PW_VULKAN_USE="2"
 | 
			
		||||
export PW_WINE_USE="PROTON_LG"
 | 
			
		||||
export PW_PREFIX_NAME="DOTNET"
 | 
			
		||||
@@ -20,7 +20,6 @@ export PW_DLL_INSTALL=""
 | 
			
		||||
##export PW_NO_WRITE_WATCH=0                      # Disable support for memory write watches in ntdll. This is a very dangerous hack and should only be applied if you have verified that the game can operate without write watches. This improves performance for some very specific games (e.g. CoreRT-based games).
 | 
			
		||||
##export PW_HIDE_NVIDIA_GPU=0
 | 
			
		||||
##export PW_FORCE_USE_VSYNC=2                     # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
 | 
			
		||||
##export PW_WINEDBG_DISABLE=1                     # Disabled WINEDBG
 | 
			
		||||
##export PW_USE_GAMEMODE=0              # Force disabele gamemod
 | 
			
		||||
##export PW_FORCE_LARGE_ADDRESS_AWARE=1           # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default.
 | 
			
		||||
##export PULSE_LATENCY_MSEC=60                    # Fix crackling audio in games
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@ export PW_MUST_HAVE_DLL=""
 | 
			
		||||
export PW_PREFIX_NAME="VK_PLAY"
 | 
			
		||||
export PW_USE_GSTREAMER="1"
 | 
			
		||||
export PW_VULKAN_USE="2"
 | 
			
		||||
export PW_WINE_USE="WINE_LG_8-18-1"
 | 
			
		||||
export PW_WINE_USE="WINE_LG"
 | 
			
		||||
 | 
			
		||||
gui_proton_downloader silent "$PW_WINE_USE"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -6,5 +6,4 @@
 | 
			
		||||
export PW_VULKAN_USE=1                       #dxvk, vkd3d or 0 for OpenGL
 | 
			
		||||
export PW_DLL_INSTALL="lucida vcrun2019"     # Install DDL in port prefix (used winetricks) 
 | 
			
		||||
export WINEDLLOVERRIDES="xaudio2_7="
 | 
			
		||||
export PW_WINEDBG_DISABLE=1                     # Disabled WINEDBG
 | 
			
		||||
export PW_USE_D3D_EXTRAS=0
 | 
			
		||||
 
 | 
			
		||||
@@ -38,7 +38,6 @@
 | 
			
		||||
##export WINEARCH=win32                           # defaut = win64
 | 
			
		||||
##export WINEPREFIX=
 | 
			
		||||
 | 
			
		||||
##export PW_WINEDBG_DISABLE=1                     # Disabled WINEDBG
 | 
			
		||||
##export PW_USE_TERMINAL=1                        # Force run in terminal
 | 
			
		||||
##export PW_GUI_DISABLED_CS=1                     # 1 = disabled GUI
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -2,8 +2,19 @@
 | 
			
		||||
#Author: linux-gaming.ru
 | 
			
		||||
#eve.exe
 | 
			
		||||
#evelauncher.exe
 | 
			
		||||
#eve-online.exe
 | 
			
		||||
#Rating=5
 | 
			
		||||
#####################examples###########################
 | 
			
		||||
export PW_VULKAN_USE=1
 | 
			
		||||
export PW_DLL_INSTALL="vcrun2019 d3dcompiler_47"               # Install DLL in port prefix (used winetricks)
 | 
			
		||||
export WINEDLLOVERRIDES="concrt140,msvcp140,msvcp140_1,msvcp140_2,d3dcompiler_47=n"
 | 
			
		||||
export PW_WINDOWS_VER="10"
 | 
			
		||||
export PW_WINE_USE="WINE_LG"
 | 
			
		||||
export PW_USE_WINE_DXGI="1"
 | 
			
		||||
export PW_VULKAN_USE="1"
 | 
			
		||||
export PW_USE_GSTREAMER="0"
 | 
			
		||||
export PW_PREFIX_NAME="EVE_ONLINE"
 | 
			
		||||
export PW_WINE_FULLSCREEN_FSR="0"
 | 
			
		||||
export PW_USE_D3D_EXTRAS="1"
 | 
			
		||||
export PW_FORCE_LARGE_ADDRESS_AWARE="0"
 | 
			
		||||
export PW_USE_SHADER_CACHE="0"
 | 
			
		||||
export PW_USE_EAC_AND_BE="1"
 | 
			
		||||
export PW_DLL_INSTALL="vcrun2022 d3dcompiler_47 tahoma arial" # msdelta
 | 
			
		||||
export WINEDLLOVERRIDES="msvcp140,msvcp140_1=n"
 | 
			
		||||
 
 | 
			
		||||
@@ -12,11 +12,11 @@ export PW_VULKAN_USE=1
 | 
			
		||||
export PW_MANGOHUD=0
 | 
			
		||||
export PW_NO_FSYNC=1        # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
 | 
			
		||||
export PW_NO_ESYNC=1        # Do not use eventfd-based in-process synchronization primitives
 | 
			
		||||
export PW_WINEDBG_DISABLE=1
 | 
			
		||||
export PW_USE_GAMEMODE=0             # Force disabele gamemod
 | 
			
		||||
export PW_FORCE_LARGE_ADDRESS_AWARE=1          # Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default.
 | 
			
		||||
export PW_DLL_INSTALL=""
 | 
			
		||||
export WINEDLLOVERRIDES="mscoree,mshtml="
 | 
			
		||||
# export WINEDLLOVERRIDES="mscoree,mshtml="
 | 
			
		||||
export PW_WINE_USE=WINE_LG
 | 
			
		||||
 | 
			
		||||
add_in_stop_portwine () {
 | 
			
		||||
    pw_find_exe news
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
export LAUNCH_PARAMETERS=("/S")
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Ankama-Setup.exe"
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://download.ankama.com/launcher/full/win/" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://download.ankama.com/launcher/full/win/" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} Ankama Launcher. ${loc_gui_please_wait} "
 | 
			
		||||
    pw_run "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
 
 | 
			
		||||
@@ -3,14 +3,15 @@
 | 
			
		||||
########################################################################
 | 
			
		||||
[ "${update_loc}" = "RUS" ] && export BN_LOC=ruRU || export BN_LOC=enUS
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Battle.net-Setup-${BN_LOC}.exe"
 | 
			
		||||
export PW_WINE_USE="WINE_LG"
 | 
			
		||||
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://battle.net/download/getInstallerForGame?os=win&version=LIVE&gameProgram=BATTLENET_APP" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://battle.net/download/getInstallerForGame?os=win&version=LIVE&gameProgram=BATTLENET_APP" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    # PW_START_PROGRESS_BAR "${loc_gui_installing_the} Battle Net. ${loc_gui_please_wait} "
 | 
			
		||||
    try_remove_dir "$WINEPREFIX/drive_c/ProgramData/Battle.net"
 | 
			
		||||
    pw_kill_autostart Battle.net.exe &
 | 
			
		||||
    pw_run "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} Battle Net. ${loc_gui_please_wait} "
 | 
			
		||||
    portwine_exe=`find "$WINEPREFIX/drive_c/" -type f -name "Battle.net.exe" | grep "Battle.net/Battle.net.exe"`
 | 
			
		||||
    pw_stop_progress_bar
 | 
			
		||||
    portwine_create_shortcut
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										29
									
								
								data_from_portwine/scripts/pw_autoinstall/PW_BDO
									
									
									
									
									
										Executable file
									
								
							
							
						
						@@ -0,0 +1,29 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
# Author: Castro-Fidel (linux-gaming.ru)
 | 
			
		||||
########################################################################
 | 
			
		||||
export PW_PREFIX_NAME="BLACK_DESERT_ONLINE"
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/BlackDesert_Installer_RU.exe"
 | 
			
		||||
export LAUNCH_PARAMETERS="/silent"
 | 
			
		||||
export PW_MUST_HAVE_DLL=""
 | 
			
		||||
export PW_VULKAN_USE=1
 | 
			
		||||
export PW_USE_D3D_EXTRAS=1
 | 
			
		||||
export PW_WINE_USE=PROTON_LG
 | 
			
		||||
# export DISABLE_CP_DEFPFX=1
 | 
			
		||||
 | 
			
		||||
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}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} Black Desert Online. ${loc_gui_please_wait} "
 | 
			
		||||
    pw_run "${PW_AUTOINSTALL_EXE}" 
 | 
			
		||||
    portwine_exe="$WINEPREFIX/drive_c/Pearlabyss/BlackDesert/BlackDesertLauncher.exe"
 | 
			
		||||
    try_remove_file "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
    try_remove_file "${portwine_exe}.ppdb"
 | 
			
		||||
    kill_portwine
 | 
			
		||||
    pw_stop_progress_bar
 | 
			
		||||
    export PORTWINE_CREATE_SHORTCUT_NAME="Black Desert Online"
 | 
			
		||||
    portwine_create_shortcut
 | 
			
		||||
fi
 | 
			
		||||
stop_portwine
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
export LAUNCH_PARAMETERS=("/VERYSILENT" )
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/BethesdaNetLauncher_Setup.exe"
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://download.cdp.bethesda.net/BethesdaNetLauncher_Setup.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://download.cdp.bethesda.net/BethesdaNetLauncher_Setup.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
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_game "https://battleofspaceraiders.com/install/bsr_setup.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://battleofspaceraiders.com/install/bsr_setup.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} Battle Of Space Raiders. ${loc_gui_please_wait} "
 | 
			
		||||
    pw_run "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
 
 | 
			
		||||
@@ -4,22 +4,24 @@
 | 
			
		||||
export PW_PREFIX_NAME="CALIBER"
 | 
			
		||||
export LAUNCH_PARAMETERS=("/VERYSILENT")
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/CaliberSetup.exe"
 | 
			
		||||
export PW_WINE_USE=PROTON_STEAM_6.3-8
 | 
			
		||||
export PW_WINE_USE=WINE_LG
 | 
			
		||||
export DISABLE_CP_DEFPFX=1
 | 
			
		||||
export PORTWINE_CREATE_SHORTCUT_NAME="CALIBER"
 | 
			
		||||
 | 
			
		||||
gui_proton_downloader silent "${PW_WINE_USE}"
 | 
			
		||||
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://caliber-files.gcdn.co/caliber-s3/p1/a88c3b70f76a0e56b1e08b62c9895cfe/launcher/setup/CaliberSetup.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://caliber-files.gcdn.co/caliber-s3/p1/a88c3b70f76a0e56b1e08b62c9895cfe/launcher/setup/CaliberSetup.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} CALIBER. ${loc_gui_please_wait} "
 | 
			
		||||
    pw_kill_autostart VC_redist.x64.exe 3 &
 | 
			
		||||
    pw_run "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
    portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/1C Game Studios/Caliber/Launcher.exe"
 | 
			
		||||
    pw_create_unique_exe "caliber_launcher_pp"
 | 
			
		||||
    try_remove_file "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
    try_remove_file "${portwine_exe}.ppdb"
 | 
			
		||||
    kill_portwine
 | 
			
		||||
    pw_stop_progress_bar
 | 
			
		||||
    export PORTWINE_CREATE_SHORTCUT_NAME="CALIBER"
 | 
			
		||||
    portwine_create_shortcut
 | 
			
		||||
fi
 | 
			
		||||
stop_portwine
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										22
									
								
								data_from_portwine/scripts/pw_autoinstall/PW_CATSLAUNCHER
									
									
									
									
									
										Executable file
									
								
							
							
						
						@@ -0,0 +1,22 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
# Author: Castro-Fidel (linux-gaming.ru)
 | 
			
		||||
########################################################################
 | 
			
		||||
export LAUNCH_PARAMETERS=("/q" )
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/CatsLauncher.msi"
 | 
			
		||||
export PW_PREFIX_NAME=DOTNET
 | 
			
		||||
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}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} CatsLauncher. ${loc_gui_please_wait} "
 | 
			
		||||
    pw_run msiexec /i "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
    portwine_exe="${WINEPREFIX}/drive_c/Program Files/CatsWhoPlay/Cats Launcher/CatsLauncher.exe"
 | 
			
		||||
    try_remove_file "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
    try_remove_file "${portwine_exe}.ppdb"
 | 
			
		||||
    kill_portwine
 | 
			
		||||
    pw_stop_progress_bar
 | 
			
		||||
    portwine_create_shortcut
 | 
			
		||||
fi
 | 
			
		||||
stop_portwine
 | 
			
		||||
@@ -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_game "${PW_URL_CEMU}" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "${PW_URL_CEMU}" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
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_game "github.com/citra-emu/citra-web/releases/download/1.0/citra-setup-windows.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "github.com/citra-emu/citra-web/releases/download/1.0/citra-setup-windows.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} Citra. ${loc_gui_please_wait} "
 | 
			
		||||
    pw_run "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
 
 | 
			
		||||
@@ -3,20 +3,21 @@
 | 
			
		||||
########################################################################
 | 
			
		||||
export LAUNCH_PARAMETERS=("/VERYSILENT")
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/crossout.exe"
 | 
			
		||||
export PORTWINE_CREATE_SHORTCUT_NAME="Crossout"
 | 
			
		||||
# export PW_PREFIX_NAME=DOTNET
 | 
			
		||||
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://yupmaster.gaijinent.com/launcher/current.php?id=CrossoutLauncher" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://yupmaster.gaijinent.com/launcher/current.php?id=CrossoutLauncher" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} Crossout. ${loc_gui_please_wait} "
 | 
			
		||||
    pw_kill_autostart launcher.exe 3 &
 | 
			
		||||
    pw_run "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
    portwine_exe="${WINEPREFIX}/drive_c/users/$USER/AppData/Local/Crossout/launcher.exe"
 | 
			
		||||
    pw_create_unique_exe "crossout_launcher_pp"
 | 
			
		||||
    try_remove_file "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
    try_remove_file "${portwine_exe}.ppdb"
 | 
			
		||||
    kill_portwine
 | 
			
		||||
    pw_stop_progress_bar
 | 
			
		||||
    export PORTWINE_CREATE_SHORTCUT_NAME="Crossout"
 | 
			
		||||
    portwine_create_shortcut
 | 
			
		||||
fi
 | 
			
		||||
stop_portwine
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
export LAUNCH_PARAMETERS=("/VERYSILENT")
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/CWClient_Install.exe"
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://cdn-01.contractwarsgame.com/standalone/CWClient_Install.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://cdn-01.contractwarsgame.com/standalone/CWClient_Install.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
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_game "http://demul.emulation64.com/files/demul07_280418.7z" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "http://demul.emulation64.com/files/demul07_280418.7z" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
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_game "https://dl-mirror.dolphin-emu.org/5.0/dolphin-x64-5.0.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://dl-mirror.dolphin-emu.org/5.0/dolphin-x64-5.0.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} Dolphin 5.0. ${loc_gui_please_wait} "
 | 
			
		||||
    pw_run "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,18 +0,0 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
# Author: chal55rus (Sergey P.)
 | 
			
		||||
########################################################################
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/duckstation-windows-x64-release.zip"
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://github.com/stenzek/duckstation/releases/download/preview/duckstation-windows-x64-release.zip" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
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)/Duckstation"
 | 
			
		||||
    portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Duckstation/duckstation-qt-x64-ReleaseLTCG.exe"
 | 
			
		||||
    try_remove_file "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
    try_remove_file "${portwine_exe}.ppdb"
 | 
			
		||||
    kill_portwine
 | 
			
		||||
    pw_stop_progress_bar
 | 
			
		||||
    export PORTWINE_CREATE_SHORTCUT_NAME="DuckStation"
 | 
			
		||||
    portwine_create_shortcut
 | 
			
		||||
fi
 | 
			
		||||
stop_portwine
 | 
			
		||||
@@ -3,14 +3,17 @@
 | 
			
		||||
########################################################################
 | 
			
		||||
export LAUNCH_PARAMETERS=("/silent" "/repair" )
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/EAappInstaller.exe"
 | 
			
		||||
export PW_VULKAN_USE=1
 | 
			
		||||
export PORTWINE_CREATE_SHORTCUT_NAME="EALauncher"
 | 
			
		||||
export PW_VULKAN_USE="2"
 | 
			
		||||
export PW_WINE_USE="PROTON_LG"
 | 
			
		||||
export PW_PREFIX_NAME="EAAPP"
 | 
			
		||||
export PW_USE_EAC_AND_BE="1"
 | 
			
		||||
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://origin-a.akamaihd.net/EA-Desktop-Client-Download/installer-releases/EAappInstaller.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://origin-a.akamaihd.net/EA-Desktop-Client-Download/installer-releases/EAappInstaller.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} EA Launcher. ${loc_gui_please_wait} "
 | 
			
		||||
    # pw_kill_autostart EABackgroundService.exe &
 | 
			
		||||
    # pw_kill_autostart EALocalHostSvc.exe &
 | 
			
		||||
    pw_kill_autostart EABackgroundSer 5 please &
 | 
			
		||||
    mkdir -p "$WINEPREFIX/drive_c/Program Files/Electronic Arts/EA Desktop/EA Desktop"
 | 
			
		||||
    pw_run "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
    portwine_exe="$WINEPREFIX/drive_c/Program Files/Electronic Arts/EA Desktop/EA Desktop/EALauncher.exe"
 | 
			
		||||
 
 | 
			
		||||
@@ -4,13 +4,14 @@
 | 
			
		||||
export LAUNCH_PARAMETERS=("/q" )
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/EpicGamesLauncherInstaller.msi"
 | 
			
		||||
export PW_USE_D3D_EXTRAS=1
 | 
			
		||||
export PORTWINE_CREATE_SHORTCUT_NAME="Epic Games Launcher"
 | 
			
		||||
# sed -i '/Epic Games/d' "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"/*.reg >/dev/null
 | 
			
		||||
try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.wine_ver"
 | 
			
		||||
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://launcher-public-service-prod06.ol.epicgames.com/launcher/api/installer/download/EpicGamesLauncherInstaller.msi" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://launcher-public-service-prod06.ol.epicgames.com/launcher/api/installer/download/EpicGamesLauncherInstaller.msi" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "Installing Epic Games Launcher. ${loc_gui_please_wait} "
 | 
			
		||||
    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/"
 | 
			
		||||
    # try_remove_dir "${WINEPREFIX}/drive_c/Program Files (x86)/Epic Games/Launcher/"
 | 
			
		||||
    # try_remove_dir "${WINEPREFIX}/drive_c/ProgramData/Epic"
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
########################################################################
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/ePSXe205.zip"
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://www.epsxe.com/files/ePSXe205.zip" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://www.epsxe.com/files/ePSXe205.zip" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
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"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +1,44 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
# Author: cefeiko
 | 
			
		||||
########################################################################
 | 
			
		||||
export PW_WINDOWS_VER=10
 | 
			
		||||
export PW_DLL_INSTALL="vcrun2017"
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/EveLauncher-2198233.exe"
 | 
			
		||||
export PW_WINDOWS_VER="10"
 | 
			
		||||
export PW_WINE_USE="WINE_LG"
 | 
			
		||||
export PW_USE_WINE_DXGI="1"
 | 
			
		||||
export PW_VULKAN_USE="1"
 | 
			
		||||
export PW_USE_GSTREAMER="0"
 | 
			
		||||
export PW_PREFIX_NAME="EVE_ONLINE"
 | 
			
		||||
export PW_WINE_FULLSCREEN_FSR="0"
 | 
			
		||||
export PW_USE_GAMEMODE="0"
 | 
			
		||||
export PW_USE_D3D_EXTRAS="1"
 | 
			
		||||
export PW_FORCE_LARGE_ADDRESS_AWARE="0"
 | 
			
		||||
export PW_USE_SHADER_CACHE="0"
 | 
			
		||||
export PW_USE_EAC_AND_BE="1"
 | 
			
		||||
export PW_DLL_INSTALL="vcrun2022 d3dcompiler_47 arial tahoma" # msdelta
 | 
			
		||||
export WINEDLLOVERRIDES="msvcp140,msvcp140_1=n"
 | 
			
		||||
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_game "https://binaries.eveonline.com/EveLauncher-2198233.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_kill_autostart evelauncher.exe &
 | 
			
		||||
    pw_run "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
    portwine_exe=`find "$WINEPREFIX/drive_c/" -type f -name "evelauncher.exe"`
 | 
			
		||||
if try_download_no_mirror "https://launcher.ccpgames.com/eve-online/release/win32/x64/eve-online-latest+Setup.exe" "${PW_AUTOINSTALL_EXE}" ; 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"
 | 
			
		||||
 | 
			
		||||
    $pw_7z x "${PW_USER_TEMP}/eve-online-latest+Setup.exe" -o"${EVE_LAUNCHER_DIR}" -y
 | 
			
		||||
    $pw_7z x "${EVE_LAUNCHER_DIR}/eve-online-`cat "${EVE_LAUNCHER_DIR}/RELEASES" | awk '{print $2}' | awk -F"-" '{print $3}'`-full.nupkg" -o"${EVE_LAUNCHER_DIR}/tmp" -y
 | 
			
		||||
 | 
			
		||||
    APP_DIR="app-`cat "${EVE_LAUNCHER_DIR}/RELEASES" | awk '{print $2}' | awk -F"-" '{print $3}'`"
 | 
			
		||||
 | 
			
		||||
    create_new_dir "${EVE_LAUNCHER_DIR}/$APP_DIR"
 | 
			
		||||
    create_new_dir "${EVE_LAUNCHER_DIR}/packages/SquirrelTemp"
 | 
			
		||||
 | 
			
		||||
    cp -r "${EVE_LAUNCHER_DIR}/tmp/lib/net45/." "${EVE_LAUNCHER_DIR}/$APP_DIR"
 | 
			
		||||
    cp "${EVE_LAUNCHER_DIR}/eve-online-`cat "${EVE_LAUNCHER_DIR}/RELEASES" | awk '{print $2}' | awk -F"-" '{print $3}'`-full.nupkg" "${EVE_LAUNCHER_DIR}/packages"
 | 
			
		||||
    mv "${EVE_LAUNCHER_DIR}/${APP_DIR}/eve-online_ExecutionStub.exe" "${EVE_LAUNCHER_DIR}/eve-online.exe"
 | 
			
		||||
    cp "${EVE_LAUNCHER_DIR}/RELEASES" "${EVE_LAUNCHER_DIR}/packages"
 | 
			
		||||
    mv "${EVE_LAUNCHER_DIR}/setupIcon.ico" "${EVE_LAUNCHER_DIR}/app.ico"
 | 
			
		||||
    rm -rf  "${EVE_LAUNCHER_DIR}/background.gif" "${EVE_LAUNCHER_DIR}/eve-online-`cat "${EVE_LAUNCHER_DIR}/RELEASES" | awk '{print $2}' | awk -F"-" '{print $3}'`-full.nupkg" "${EVE_LAUNCHER_DIR}/RELEASES" "${EVE_LAUNCHER_DIR}/tmp"
 | 
			
		||||
 | 
			
		||||
    portwine_exe="${EVE_LAUNCHER_DIR}/eve-online.exe"
 | 
			
		||||
    pw_stop_progress_bar
 | 
			
		||||
    portwine_create_shortcut
 | 
			
		||||
    try_remove_file "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
########################################################################
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/fceux-2.6.5-win64.zip"
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://github.com/TASEmulators/fceux/releases/download/v2.6.6/fceux-2.6.6-win64.zip" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://github.com/TASEmulators/fceux/releases/download/v2.6.6/fceux-2.6.6-win64.zip" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
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_game "https://raw.githubusercontent.com/WarfaceZ/lutris-clients/master/GameforgeInstaller.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "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_game "https://ys-api-os.mihoyo.com/event/download_porter/link/ys_global/genshinimpactpc/default" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://ys-api-os.mihoyo.com/event/download_porter/link/ys_global/genshinimpactpc/default" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
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_game "https://glyph.dyn.triongames.com/glyph/live/GlyphInstall.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://glyph.dyn.triongames.com/glyph/live/GlyphInstall.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} GlyphClient. ${loc_gui_please_wait} "
 | 
			
		||||
    pw_kill_autostart GlyphClient.exe &
 | 
			
		||||
 
 | 
			
		||||
@@ -5,14 +5,15 @@ export LAUNCH_PARAMETERS=("/VERYSILENT")
 | 
			
		||||
GOG_VER="$(curl "https://remote-config.gog.com/components/webinstaller?component_version=2.0.0" \
 | 
			
		||||
| awk -F'galaxy_client_' '{print $2}' \
 | 
			
		||||
| awk -F'.pkg' '{print $1}')"
 | 
			
		||||
[[ "${GOG_VER}" != 2.* ]] && zenity_error "ERROR: Get the GOG version." && exit 1
 | 
			
		||||
[[ "${GOG_VER}" != 2.* ]] && yad_error "ERROR: Get the GOG version." && exit 1
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/setup_galaxy_${GOG_VER}.exe"
 | 
			
		||||
export PW_PREFIX_NAME="GOG"
 | 
			
		||||
export DISABLE_CP_DEFPFX=1
 | 
			
		||||
export PW_WINE_USE=PROTON_STEAM_8.0-4
 | 
			
		||||
 | 
			
		||||
start_portwine
 | 
			
		||||
 | 
			
		||||
if try_download_game "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_no_mirror "https://content-system.gog.com/open_link/download?path=/open/galaxy/client/${GOG_VER}/setup_galaxy_${GOG_VER}.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
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_game "https://s3.amazonaws.com/gw2cdn/client/branches/Gw2Setup-64.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://s3.amazonaws.com/gw2cdn/client/branches/Gw2Setup-64.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
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_game "https://content.indiegalacdn.com/common/IGClientSetup.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://content.indiegalacdn.com/common/IGClientSetup.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
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_game "https://itch.io/app/download?platform=windows" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://itch.io/app/download?platform=windows" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
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_game "https://redirect.lesta.ru/LGC/Lesta_Game_Center_Install_RU.exe"  "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://redirect.lesta.ru/LGC/Lesta_Game_Center_Install_RU.exe"  "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "Starting LGC installation..."
 | 
			
		||||
    pw_kill_autostart lgc.exe &
 | 
			
		||||
 
 | 
			
		||||
@@ -16,14 +16,14 @@ gui_proton_downloader silent "${PW_WINE_USE}"
 | 
			
		||||
pw_clear_pfx
 | 
			
		||||
start_portwine
 | 
			
		||||
wait_wineserver
 | 
			
		||||
if try_download_game "https://lol.secure.dyn.riotcdn.net/channels/public/x/installer/current/live.na.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://lol.secure.dyn.riotcdn.net/channels/public/x/installer/current/live.na.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "Installing League of Legends. ${loc_gui_please_wait} "
 | 
			
		||||
    if [ "${update_loc}" = "RUS" ] ; then
 | 
			
		||||
       zenity --info --width=500 --text "Вы должны нажать кнопку установки, не изменяя настроек!"
 | 
			
		||||
       yad_info "Вы должны нажать кнопку установки, не изменяя настроек!"
 | 
			
		||||
   fi
 | 
			
		||||
   if [ "${update_loc}" = "ENG" ] ; then
 | 
			
		||||
       zenity --info --width=500 --text "You must click the install button without changing the settings!"
 | 
			
		||||
       yad_info "You must click the install button without changing the settings!"
 | 
			
		||||
  fi
 | 
			
		||||
    pw_kill_autostart RiotClientServices.exe &
 | 
			
		||||
    pw_run "${PW_AUTOINSTALL_EXE}" 
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
########################################################################
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/mame0259b_64bit.exe"
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://github.com/mamedev/mame/releases/download/mame0259/mame0259b_64bit.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://github.com/mamedev/mame/releases/download/mame0259/mame0259b_64bit.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
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"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										24
									
								
								data_from_portwine/scripts/pw_autoinstall/PW_MW
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,24 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
# Author: ValoKarDin
 | 
			
		||||
########################################################################
 | 
			
		||||
export LAUNCH_PARAMETERS=("/VERYSILENT")
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/modern_warships.exe"
 | 
			
		||||
export PW_PREFIX_NAME="MODERN_WARSHIPS"
 | 
			
		||||
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}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} Modern Warships. ${loc_gui_please_wait} "
 | 
			
		||||
    pw_kill_autostart launcher.exe &
 | 
			
		||||
    pw_run "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
    portwine_exe="$WINEPREFIX/drive_c/users/$USER/AppData/Local/ModernWarships/launcher.exe"
 | 
			
		||||
    pw_create_unique_exe "modern_warships_pp"
 | 
			
		||||
    try_remove_file "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
    try_remove_file "${portwine_exe}.ppdb"
 | 
			
		||||
    kill_portwine
 | 
			
		||||
    portwine_create_shortcut
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
stop_portwine
 | 
			
		||||