Compare commits
	
		
			63 Commits
		
	
	
		
			libs_v46
			...
			yad_portab
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					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 | 
							
								
								
									
										58
									
								
								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,19 @@ 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
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Контакты
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										56
									
								
								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,19 @@ 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
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Contacts
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,90 @@ You can help us in the development of the project on the website: https://linux-
 | 
			
		||||
----------------------------------------
 | 
			
		||||
Changelog:
 | 
			
		||||
 | 
			
		||||
###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
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,93 @@
 | 
			
		||||
-----------------------------------------
 | 
			
		||||
История изменений:
 | 
			
		||||
 | 
			
		||||
###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
 | 
			
		||||
 
 | 
			
		||||
@@ -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  | 
| 
		 Before Width: | Height: | Size: 987 B After Width: | Height: | Size: 4.5 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  | 
| 
		 Before Width: | Height: | Size: 76 KiB  | 
| 
		 Before Width: | Height: | Size: 3.5 MiB  | 
| 
		 Before Width: | Height: | Size: 3.5 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/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: 12 KiB After Width: | Height: | Size: 16 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/question.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 6.4 KiB  | 
| 
		 Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 63 KiB  | 
@@ -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,10 +5,7 @@
 | 
			
		||||
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
 | 
			
		||||
if [[ ! -f "$SCPATH" ]] ; then 
 | 
			
		||||
	echo '0073686f727463757473000808' | xxd -r -p > "$SCPATH"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@ then
 | 
			
		||||
    KEY_CREDITS=$RANDOM
 | 
			
		||||
 | 
			
		||||
"${pw_yad_v12_3}" --plug="${KEY_CREDITS}" --tabnum=1 --show-uri \
 | 
			
		||||
--image-path="$PW_GUI_ICON_PATH" --image="port_proton" \
 | 
			
		||||
--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}
 | 
			
		||||
 | 
			
		||||
@@ -357,10 +357,9 @@ 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" \
 | 
			
		||||
"${pw_yad_v12_3}" --title "О НАС" --key="${KEY_CREDITS}" --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
 | 
			
		||||
 --notebook --no-buttons  --tab-pos=bottom \
 | 
			
		||||
--tab="О PORTPROTON" --tab="АВТОРЫ" --tab="ЛИЦЕНЗИЯ" --tab="СПОНСОРЫ" --tab="ПРИСОЕДИНИТЬСЯ" \
 | 
			
		||||
--tab="БИБЛИОТЕКИ"
 | 
			
		||||
@@ -725,11 +724,10 @@ 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" \
 | 
			
		||||
"${pw_yad_v12_3}" --title "ABOUT US" --key="${KEY_CREDITS}" ---window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
 | 
			
		||||
--notebook --no-buttons  --tab-pos=bottom \
 | 
			
		||||
--tab="ABOUT PORTPROTON" --tab="AUTORS" --tab="LICENSE" --tab="SPONSORS" --tab="JOIN" \
 | 
			
		||||
--tab="THIRD PARTY LIBRARIES"
 | 
			
		||||
 
 | 
			
		||||
@@ -11,6 +11,11 @@ print_error () {
 | 
			
		||||
}
 | 
			
		||||
export -f print_error
 | 
			
		||||
 | 
			
		||||
fatal () {
 | 
			
		||||
    print_error "$@"
 | 
			
		||||
    exit 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
print_warning () {
 | 
			
		||||
    printf "\E[33m%s Warning: $@ %s\e[0m\n"
 | 
			
		||||
}
 | 
			
		||||
@@ -21,10 +26,10 @@ print_info () {
 | 
			
		||||
}
 | 
			
		||||
export -f print_info
 | 
			
		||||
 | 
			
		||||
print_debug () {
 | 
			
		||||
    printf "\E[35m%s Debug: $@ %s\e[0m\n"
 | 
			
		||||
print_ok () {
 | 
			
		||||
    printf "\E[35m%s OK: $@ %s\e[0m\n"
 | 
			
		||||
}
 | 
			
		||||
export -f print_debug
 | 
			
		||||
export -f print_ok
 | 
			
		||||
 | 
			
		||||
print_var () {
 | 
			
		||||
    for vp in $@ ; do print_info "${vp}=${!vp}" ; done
 | 
			
		||||
@@ -77,7 +82,7 @@ try_force_link_file () {
 | 
			
		||||
    if [ ! -f "$1" ] ; then :
 | 
			
		||||
    elif [ -z "$2" ] ; then	print_error "no way to link file $1"
 | 
			
		||||
    else
 | 
			
		||||
        ln -sf "$1" "$2"
 | 
			
		||||
        ln -s -f -r "$1" "$2"
 | 
			
		||||
        [ "$?" != 0 ] && print_error "failed to link file $1 to $2" || return 0
 | 
			
		||||
    fi
 | 
			
		||||
    return 1
 | 
			
		||||
@@ -102,7 +107,7 @@ try_force_link_dir () {
 | 
			
		||||
    if [ ! -d "$1" ] ; then	print_info "directory $1 not found for link"
 | 
			
		||||
    elif [ -z "$2" ] ; then	print_error "no way to link directory $1"
 | 
			
		||||
    else
 | 
			
		||||
        ln -sf "$1" "$2"
 | 
			
		||||
        ln -s -f -r "$1" "$2"
 | 
			
		||||
        [ "$?" != 0 ] && print_error "failed to link directory $1 to $2" || return 0
 | 
			
		||||
    fi
 | 
			
		||||
    return 1
 | 
			
		||||
@@ -110,71 +115,81 @@ try_force_link_dir () {
 | 
			
		||||
export -f try_force_link_dir
 | 
			
		||||
 | 
			
		||||
check_process () {
 | 
			
		||||
    [ ! -n "`ps cax | grep "$1" | awk '{print $1}'`" ] && return 0 || return 1 
 | 
			
		||||
    [ ! -n "`ps cax | grep "$1" | awk '{print $1}'`" ] && return 0 || return 1
 | 
			
		||||
}
 | 
			
		||||
export -f check_process
 | 
			
		||||
 | 
			
		||||
try_download_game () {
 | 
			
		||||
try_download_no_mirror () {
 | 
			
		||||
    [[ -f "${PW_AUTOINSTALL_EXE}" ]] && try_remove_file "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
    PW_DOWNLOAD_FILE_NAME="$(basename $1)"
 | 
			
		||||
    PW_DOWNLOAD_FILE_NAME="$(basename $2)"
 | 
			
		||||
    set -o pipefail
 | 
			
		||||
    wget -O "$2" --read-timeout 300 --retry-connrefused --timeout 3 --tries 2 --no-dns-cache --no-cache \
 | 
			
		||||
    --user-agent="Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" "$1" 2>&1 | \
 | 
			
		||||
    tr '\r' '\n' | sed -u 's/.* \([0-9]\+%\)\ \+\([0-9,.]\+.\) \(.*\)/\1\n#Downloading at \1\/, \2\/s, ETA \3/; s/^20[0-9][0-9].*/#Done./' | \
 | 
			
		||||
    zenity --progress --percentage=0 --title="Download ${PW_DOWNLOAD_FILE_NAME}" --text=Starting... --auto-close --width=500 --height=90
 | 
			
		||||
    curl -f -# -A "Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" -H 'Cache-Control: no-cache, no-store' -H 'Pragma: no-cache' -L "$1" -o "$2" 2>&1 | \
 | 
			
		||||
    tr '\r' '\n' | sed -ur 's|[# ]+||g;s|.*=.*||g;s|.*|#Downloading at &\n&|g' | \
 | 
			
		||||
    "${pw_yad_v12_3}" --progress --percentage=0 --text="Download ${PW_DOWNLOAD_FILE_NAME}" --auto-close --no-escape \
 | 
			
		||||
    --auto-kill --center --text-align="center" --fixed --no-buttons --title "PortProton" --width=500 --height=90 \
 | 
			
		||||
    --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --borders=15
 | 
			
		||||
    if [ "${PIPESTATUS[0]}" != 0 ] ; then
 | 
			
		||||
        print_error "Failed to download ${PW_DOWNLOAD_FILE_NAME}."
 | 
			
		||||
        return 1   
 | 
			
		||||
        print_error "Failed to download $PW_DOWNLOAD_FILE_NAME"
 | 
			
		||||
        return 1
 | 
			
		||||
    else
 | 
			
		||||
        print_ok "File downloaded successfully: $PW_DOWNLOAD_FILE_NAME from $1"
 | 
			
		||||
        return 0
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
try_download () {
 | 
			
		||||
    PW_DOWNLOAD_FILE_NAME="$(basename $1)"
 | 
			
		||||
    [[ ! -f "${pw_yad_v12_3}" ]] && local pw_yad_v12_3="yad"
 | 
			
		||||
    set -o pipefail
 | 
			
		||||
    wget -c -O "$2" --read-timeout 300 --retry-connrefused --timeout 3 --tries 2 --no-dns-cache --no-cache \
 | 
			
		||||
    --user-agent="Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" "$1" 2>&1 | \
 | 
			
		||||
    tr '\r' '\n' | sed -u 's/.* \([0-9]\+%\)\ \+\([0-9,.]\+.\) \(.*\)/\1\n#Downloading at \1\/, \2\/s, ETA \3/; s/^20[0-9][0-9].*/#Done./' | \
 | 
			
		||||
    zenity --progress --percentage=0 --title="Download ${PW_DOWNLOAD_FILE_NAME}" --text=Starting... --auto-close --width=500 --height=90
 | 
			
		||||
    curl -f -# -A "Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" -H 'Cache-Control: no-cache, no-store' -H 'Pragma: no-cache' -L "$1" -o "$2" 2>&1 | \
 | 
			
		||||
    tr '\r' '\n' | sed -ur 's|[# ]+||g;s|.*=.*||g;s|.*|#Downloading at &\n&|g' | \
 | 
			
		||||
    "${pw_yad_v12_3}" --progress --percentage=0 --text="Download ${PW_DOWNLOAD_FILE_NAME}" --auto-close --no-escape \
 | 
			
		||||
    --auto-kill --center --text-align="center" --fixed --no-buttons --title "PortProton" --width=500 --height=90 \
 | 
			
		||||
    --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --borders=15
 | 
			
		||||
    if [ "${PIPESTATUS[0]}" != 0 ] ; then
 | 
			
		||||
        print_error "Failed to download ${PW_DOWNLOAD_FILE_NAME} from GitHub."
 | 
			
		||||
        print_info "Try download ${PW_DOWNLOAD_FILE_NAME} from FTP"
 | 
			
		||||
        wget -c -O "$2" --read-timeout 300 --retry-connrefused --timeout 3 --tries 2 --no-dns-cache --no-cache \
 | 
			
		||||
        --user-agent="Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" --ftp-user=anonymous "ftp://171.22.215.18/archives/${PW_DOWNLOAD_FILE_NAME}" 2>&1 | \
 | 
			
		||||
        tr '\r' '\n' | sed -u 's/.* \([0-9]\+%\)\ \+\([0-9,.]\+.\) \(.*\)/\1\n#Downloading at \1\/, \2\/s, ETA \3/; s/^20[0-9][0-9].*/#Done./' | \
 | 
			
		||||
        zenity --progress --percentage=0 --title="Try download ${PW_DOWNLOAD_FILE_NAME} from FTP" --text=Starting... --auto-close --width=500 --height=90
 | 
			
		||||
        curl -f -# -A "Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" -L "ftp://171.22.215.18/archives/${PW_DOWNLOAD_FILE_NAME}" -o "$2" 2>&1 | \
 | 
			
		||||
        tr '\r' '\n' | sed -ur 's|[# ]+||g;s|.*=.*||g;s|.*|#Downloading at &\n&|g' | \
 | 
			
		||||
        "${pw_yad_v12_3}" --progress --percentage=0 --text="Download ${PW_DOWNLOAD_FILE_NAME}" --auto-close --no-escape \
 | 
			
		||||
        --auto-kill --center --text-align="center" --fixed --no-buttons --title "PortProton" --width=500 --height=90 \
 | 
			
		||||
        --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --borders=15
 | 
			
		||||
        if [ "${PIPESTATUS[0]}" != 0 ] ; then
 | 
			
		||||
            print_error "Failed to download ${PW_DOWNLOAD_FILE_NAME} from FTP."
 | 
			
		||||
            return 1   
 | 
			
		||||
            return 1
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
    try_remove_file "${PORT_WINE_TMP_PATH}/download_log"
 | 
			
		||||
    print_ok "File downloaded successfully: $PW_DOWNLOAD_FILE_NAME from $1"
 | 
			
		||||
    return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
try_download_to_path () {
 | 
			
		||||
    PW_DOWNLOAD_FILE_NAME="$(basename $1)"
 | 
			
		||||
    set -o pipefail
 | 
			
		||||
    wget --directory-prefix="$2" --read-timeout 300 --retry-connrefused --timeout 4 --tries 2 --no-dns-cache --no-cache \
 | 
			
		||||
    --user-agent="Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" "$1" 2>&1 | \
 | 
			
		||||
    tr '\r' '\n' | sed -u 's/.* \([0-9]\+%\)\ \+\([0-9,.]\+.\) \(.*\)/\1\n#Downloading at \1\/, \2\/s, ETA \3/; s/^20[0-9][0-9].*/#Done./' | \
 | 
			
		||||
    zenity --progress --percentage=0 --title="Download $(basename $1)" --text=Starting... --auto-close --width=500 --height=90
 | 
			
		||||
    curl -f -# -A "Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" -H 'Cache-Control: no-cache, no-store' -H 'Pragma: no-cache' -L "$1" -o "$2/$PW_DOWNLOAD_FILE_NAME" 2>&1 | \
 | 
			
		||||
    tr '\r' '\n' | sed -ur 's|[# ]+||g;s|.*=.*||g;s|.*|#Downloading at &\n&|g' | \
 | 
			
		||||
    "${pw_yad_v12_3}" --progress --percentage=0 --text="Download ${PW_DOWNLOAD_FILE_NAME}" --auto-close --no-escape \
 | 
			
		||||
    --auto-kill --center --text-align="center" --fixed --no-buttons --title "PortProton" --width=500 --height=90 \
 | 
			
		||||
    --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --borders=15
 | 
			
		||||
    if [ "${PIPESTATUS[0]}" != 0 ] ; then
 | 
			
		||||
        print_error "Failed to download $1."
 | 
			
		||||
        return 1 
 | 
			
		||||
    else 
 | 
			
		||||
        print_error "Failed to download $PW_DOWNLOAD_FILE_NAME"
 | 
			
		||||
        return 1
 | 
			
		||||
    else
 | 
			
		||||
        print_ok "File downloaded successfully: $PW_DOWNLOAD_FILE_NAME from $1"
 | 
			
		||||
        return 0
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
try_download_silent () {
 | 
			
		||||
    wget -O "$2" --read-timeout 300 --retry-connrefused --timeout 4 --tries 2 --no-dns-cache --no-cache \
 | 
			
		||||
    --user-agent="Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" "$1"
 | 
			
		||||
    if [ "${PIPESTATUS[0]}" != 0 ] ; then
 | 
			
		||||
        print_error "Failed to download $1. Skipping."
 | 
			
		||||
    PW_DOWNLOAD_FILE_NAME="$(basename $1)"
 | 
			
		||||
    curl -f -sS -A "Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" -H 'Cache-Control: no-cache, no-store' -H 'Pragma: no-cache' -L "$1" -o "$2"
 | 
			
		||||
    if [ "$?" != 0 ] ; then
 | 
			
		||||
        print_error "Failed to download $PW_DOWNLOAD_FILE_NAME. Skipping."
 | 
			
		||||
        try_remove_file "$2"
 | 
			
		||||
        return 1 
 | 
			
		||||
    else 
 | 
			
		||||
        return 1
 | 
			
		||||
    else
 | 
			
		||||
        print_ok "File downloaded successfully: $PW_DOWNLOAD_FILE_NAME from $1"
 | 
			
		||||
        return 0
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
@@ -218,7 +233,7 @@ var_vk_istance_layers_config_update () {
 | 
			
		||||
    return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var_ld_library_path_update() {
 | 
			
		||||
var_ld_library_path_update () {
 | 
			
		||||
    if [ ! -z "$LD_LIBRARY_PATH" ]
 | 
			
		||||
    then export LD_LIBRARY_PATH="$1:$LD_LIBRARY_PATH"
 | 
			
		||||
    else export LD_LIBRARY_PATH="$1"
 | 
			
		||||
@@ -226,14 +241,40 @@ var_ld_library_path_update() {
 | 
			
		||||
    return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pw_notify_send () {
 | 
			
		||||
    if command -v notify-send &>/dev/null ; then
 | 
			
		||||
        if [[ -f "$PW_GUI_ICON_PATH/portproton.svg" ]]
 | 
			
		||||
        then notify-send -a PortProton -i "$PW_GUI_ICON_PATH/portproton.svg" $@ "${PW_NOTIFY_TEXT}"
 | 
			
		||||
        else notify-send -a PortProton $@ "${PW_NOTIFY_TEXT}"
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
check_start_from_steam () {
 | 
			
		||||
    if [[ "${START_FROM_STEAM}" == 1 ]]
 | 
			
		||||
    then return 0
 | 
			
		||||
    else return 1
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
check_gamescope_session () {
 | 
			
		||||
    if echo "${DESKTOP_SESSION}" | grep -i "gamescope" &>/dev/null
 | 
			
		||||
    then return 0
 | 
			
		||||
    else return 1
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
unpack_tar_zst () {
 | 
			
		||||
    set -o pipefail
 | 
			
		||||
    unset PW_ZSTD_PORT
 | 
			
		||||
    if  [[ `command -v zstd` ]] &>/dev/null ; then
 | 
			
		||||
        tar -I zstd -xhvf "$1" -C "$2" | sszen
 | 
			
		||||
    pw_start_progress_bar_cover_block "${PW_GUI_ICON_PATH}/covers/unpacking_${update_loc}.gif"
 | 
			
		||||
    if command -v zstd &>/dev/null ; then
 | 
			
		||||
        tar -I zstd -xhvf "$1" -C "$2"
 | 
			
		||||
        pw_stop_progress_bar_cover_block
 | 
			
		||||
        [ "${PIPESTATUS[0]}" != 0 ] && print_error "File $1 unpacking error." && return 1 || return 0
 | 
			
		||||
    else
 | 
			
		||||
        env LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${PW_WINELIB}/portable/lib/lib64:${PW_WINELIB}/portable/lib/lib" tar -I "${PW_WINELIB}/portable/bin/zstd" -xhvf "$1" -C "$2" | sszen
 | 
			
		||||
        env LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${PW_PLUGINS_PATH}/portable/lib/lib64:${PW_PLUGINS_PATH}/portable/lib/lib" tar -I "${PW_PLUGINS_PATH}/portable/bin/zstd" -xhvf "$1" -C "$2"
 | 
			
		||||
        pw_stop_progress_bar_cover_block
 | 
			
		||||
        [ "${PIPESTATUS[0]}" != 0 ] && print_error "File $1 unpacking error." && return 1 || return 0
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
@@ -243,20 +284,26 @@ unpack_tar_xz () {
 | 
			
		||||
        tar -Jxhvf "$1" -C "$2" && return 0 || return 1
 | 
			
		||||
    else
 | 
			
		||||
        set -o pipefail
 | 
			
		||||
        tar -Jxhvf "$1" -C "$2" | sszen
 | 
			
		||||
        pw_start_progress_bar_cover_block "${PW_GUI_ICON_PATH}/covers/unpacking_${update_loc}.gif"
 | 
			
		||||
        tar -Jxhvf "$1" -C "$2"
 | 
			
		||||
        pw_stop_progress_bar_cover_block
 | 
			
		||||
        [ "${PIPESTATUS[0]}" != 0 ] && print_error "File $1 unpacking error." && return 1 || return 0
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
unpack_tar_gz () {
 | 
			
		||||
    set -o pipefail
 | 
			
		||||
    tar -xhzvf "$1" -C "$2" | sszen
 | 
			
		||||
    pw_start_progress_bar_cover_block "${PW_GUI_ICON_PATH}/covers/unpacking_${update_loc}.gif"
 | 
			
		||||
    tar -xhzvf "$1" -C "$2"
 | 
			
		||||
    pw_stop_progress_bar_cover_block
 | 
			
		||||
    [ "${PIPESTATUS[0]}" != 0 ] && print_error "File $1 unpacking error." && return 1 || return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
unpack_tar () {
 | 
			
		||||
    set -o pipefail
 | 
			
		||||
    tar -xhvf "$1" -C "$2" | sszen
 | 
			
		||||
    pw_start_progress_bar_cover_block "${PW_GUI_ICON_PATH}/covers/unpacking_${update_loc}.gif"
 | 
			
		||||
    tar -xhvf "$1" -C "$2"
 | 
			
		||||
    pw_stop_progress_bar_cover_block
 | 
			
		||||
    [ "${PIPESTATUS[0]}" != 0 ] && print_error "File $1 unpacking error." && return 1 || return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -319,6 +366,7 @@ pw_reinstall_pp () {
 | 
			
		||||
    try_remove_file "${PORT_WINE_TMP_PATH}/scripts_ver"
 | 
			
		||||
    echo
 | 
			
		||||
    print_info "Restarting PP for reinstall files..."
 | 
			
		||||
    export SKIP_CHECK_UPDATES=0
 | 
			
		||||
    /usr/bin/env bash -c ${pw_full_command_line[*]} &
 | 
			
		||||
    exit 0
 | 
			
		||||
}
 | 
			
		||||
@@ -391,7 +439,7 @@ init_wine_ver () {
 | 
			
		||||
    if [[ -d "${WINEDIR}" ]] ; then
 | 
			
		||||
        [[ ! -f "${WINEDIR}/version" ]] && echo "${PW_WINE_USE}" > "${WINEDIR}/version"
 | 
			
		||||
 | 
			
		||||
        if [[ ! -d "${WINEDIR}/lib64/" && -d "${WINEDIR}/lib/wine/x86_64-unix" ]] ; then
 | 
			
		||||
        if [[ ! -d "${WINEDIR}/lib64/" ]] && [[ -d "${WINEDIR}/lib/wine/x86_64-unix" ]] ; then
 | 
			
		||||
            create_new_dir "${WINEDIR}/lib64/wine"
 | 
			
		||||
            mv -f "${WINEDIR}/lib/wine/x86_64-unix" "${WINEDIR}/lib64/wine/"
 | 
			
		||||
            mv -f "${WINEDIR}/lib/wine/x86_64-windows" "${WINEDIR}/lib64/wine/"
 | 
			
		||||
@@ -401,10 +449,12 @@ init_wine_ver () {
 | 
			
		||||
            if check_symlink "${WINEDIR}/share/wine/${mono_gecko_chk}" ; then
 | 
			
		||||
                print_info "${WINEDIR}/share/wine/${mono_gecko_chk} is symlink. OK."
 | 
			
		||||
            elif [[ -d "${WINEDIR}/share/wine/${mono_gecko_chk}" ]] ; then
 | 
			
		||||
                try_copy_dir "${WINEDIR}/share/wine/${mono_gecko_chk}" "${PORT_WINE_TMP_PATH}" | sszen
 | 
			
		||||
                pw_start_progress_bar_cover_block "${PW_GUI_ICON_PATH}/covers/loading_${update_loc}.gif" 
 | 
			
		||||
                try_copy_dir "${WINEDIR}/share/wine/${mono_gecko_chk}" "${PORT_WINE_TMP_PATH}"
 | 
			
		||||
                try_remove_dir "${WINEDIR}/share/wine/${mono_gecko_chk}"
 | 
			
		||||
                try_force_link_dir "${PORT_WINE_TMP_PATH}/${mono_gecko_chk}" "${WINEDIR}"/share/wine/
 | 
			
		||||
                print_info "Copy ${WINEDIR}/share/wine/${mono_gecko_chk} to tmp and create symlink to ${WINEDIR}/share/wine/. OK."
 | 
			
		||||
                pw_stop_progress_bar_cover_block
 | 
			
		||||
            else
 | 
			
		||||
                try_remove_dir "${WINEDIR}/share/wine/${mono_gecko_chk}"
 | 
			
		||||
                try_force_link_dir "${PORT_WINE_TMP_PATH}/${mono_gecko_chk}" "${WINEDIR}"/share/wine
 | 
			
		||||
@@ -431,22 +481,22 @@ init_wine_ver () {
 | 
			
		||||
 | 
			
		||||
pw_init_runtime () {
 | 
			
		||||
 | 
			
		||||
    if grep -q -E '(ROSA Fresh|RED OS)' "/etc/os-release" ; then
 | 
			
		||||
    if grep -i -E '(ROSA|RED OS)' "/etc/os-release" &>/dev/null ; then
 | 
			
		||||
        export LOCPATH="/run/host/usr/share/locale/"
 | 
			
		||||
    elif grep -q "altlinux" "/etc/os-release" ; then
 | 
			
		||||
    elif grep -i "altlinux" "/etc/os-release" &>/dev/null ; then
 | 
			
		||||
        export LIBGL_DRIVERS_PATH="/usr/lib/X11/modules/dri:/usr/lib64/X11/modules/dri"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    PW_PV_OVERRIDES="/usr/lib/pressure-vessel/overrides/lib" 
 | 
			
		||||
    export PW_LD_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib:${PW_WINELIB}/portable/lib/lib64:${PW_WINELIB}/portable/lib/lib32:${PW_PV_OVERRIDES}/x86_64-linux-gnu/aliases:${PW_PV_OVERRIDES}/i386-linux-gnu/aliases"
 | 
			
		||||
    export PW_LD_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib:${PW_PLUGINS_PATH}/portable/lib/lib64:${PW_PLUGINS_PATH}/portable/lib/lib32:${PW_PV_OVERRIDES}/x86_64-linux-gnu/aliases:${PW_PV_OVERRIDES}/i386-linux-gnu/aliases"
 | 
			
		||||
 | 
			
		||||
    if [ ! -z ${PATH_TMP} ]
 | 
			
		||||
    then export PATH="${PATH_TMP}"
 | 
			
		||||
    else export PATH_TMP="${PATH}"
 | 
			
		||||
    fi
 | 
			
		||||
    if [ ! -z "${PATH}" ]
 | 
			
		||||
    then export PATH="${WINEDIR}/bin:${PATH}:${PW_WINELIB}/portable/bin"
 | 
			
		||||
    else export PATH="${WINEDIR}/bin:${PW_WINELIB}/portable/bin"
 | 
			
		||||
    then export PATH="${WINEDIR}/bin:${PATH}:${PW_PLUGINS_PATH}/portable/bin"
 | 
			
		||||
    else export PATH="${WINEDIR}/bin:${PW_PLUGINS_PATH}/portable/bin"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if [ "${PW_USE_GSTREAMER}" = 1 ] ; then 
 | 
			
		||||
@@ -481,7 +531,7 @@ pw_init_runtime () {
 | 
			
		||||
        unset PW_VK_LAYER_PATH
 | 
			
		||||
    else
 | 
			
		||||
        export PRESSURE_VESSEL_IMPORT_VULKAN_LAYERS=0
 | 
			
		||||
        export PW_VK_LAYER_PATH="${PW_WINELIB}/portable/share/vulkan/implicit_layer.d"
 | 
			
		||||
        export PW_VK_LAYER_PATH="${PW_PLUGINS_PATH}/portable/share/vulkan/implicit_layer.d"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    # export PRESSURE_VESSEL_GRAPHICS_PROVIDER="/"
 | 
			
		||||
@@ -493,6 +543,7 @@ pw_init_runtime () {
 | 
			
		||||
    export PRESSURE_VESSEL_RUNTIME_BASE="${PW_WINELIB}"
 | 
			
		||||
    export PRESSURE_VESSEL_VARIABLE_DIR="${PW_WINELIB}/var"
 | 
			
		||||
    export PRESSURE_VESSEL_PREFIX="${PW_WINELIB}/pressure-vessel"
 | 
			
		||||
    export FONTCONFIG_PATH=''
 | 
			
		||||
 | 
			
		||||
    unset PRESSURE_VESSEL_FILESYSTEMS_RO PRESSURE_VESSEL_FILESYSTEMS_RW
 | 
			
		||||
    for PWRTMRO in ${PW_RT_MOUNT_RO[*]} ; do
 | 
			
		||||
@@ -507,11 +558,14 @@ pw_init_runtime () {
 | 
			
		||||
        else export PRESSURE_VESSEL_FILESYSTEMS_RW="${PWRTMRW}"
 | 
			
		||||
        fi
 | 
			
		||||
    done
 | 
			
		||||
 | 
			
		||||
    # drop portable: libssl 32-bit
 | 
			
		||||
    try_remove_file "${PW_PLUGINS_PATH}/portable/lib/lib32/libssl.so.1.1"
 | 
			
		||||
    print_info "RUNTIME is enabled"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pw_mangohud_check () {
 | 
			
		||||
    if [[ "${PW_MANGOHUD}" == "1" ]] ; then
 | 
			
		||||
    if [[ "${PW_MANGOHUD}" == "1" ]] && ! check_gamescope_session ; then
 | 
			
		||||
        export PW_MANGOHUD_SLR='MANGOHUD=1'
 | 
			
		||||
        MANGOHUD_LIB_NAME="libMangoHud.so"
 | 
			
		||||
        if [[ "${PW_VULKAN_USE}" = "0" ]] ; then 
 | 
			
		||||
@@ -522,26 +576,22 @@ pw_mangohud_check () {
 | 
			
		||||
        else export PW_LD_PRELOAD="${MANGOHUD_LIB_NAME}"
 | 
			
		||||
        fi
 | 
			
		||||
        var_vk_istance_layers_config_update "VK_LAYER_MANGOHUD_overlay64:VK_LAYER_MANGOHUD_overlay32"
 | 
			
		||||
        print_info "MANGOHUD is enabled"
 | 
			
		||||
        print_info "Portable MANGOHUD is enabled"
 | 
			
		||||
    else
 | 
			
		||||
        export PW_MANGOHUD_SLR='DISABLE_MANGOHUD=1'
 | 
			
		||||
        print_info "MANGOHUD is disabled"
 | 
			
		||||
        export PW_MANGOHUD_SLR=""
 | 
			
		||||
        print_info "Portable MANGOHUD is disabled"
 | 
			
		||||
    fi
 | 
			
		||||
    return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pw_vkbasalt_check () {
 | 
			
		||||
    if [[ "${ENABLE_VKBASALT}" == 1 ]] && [[ "${PW_VULKAN_USE}" != "0" ]] && [[ "${PW_VULKAN_USE}" != "3" ]] ; then
 | 
			
		||||
        export VKBASALT_CONFIG_FILE="${PORT_WINE_PATH}/data/vkBasalt.conf"
 | 
			
		||||
        if [[ -z "${PW_VKBASALT_EFFECTS}" ]] ; then
 | 
			
		||||
            export PW_VKBASALT_EFFECTS="Curves:cas" 
 | 
			
		||||
        if [[ ! -z "${PW_VKBASALT_EFFECTS}" ]] && [[ ! -z "${PW_VKBASALT_FFX_CAS}" ]] ; then
 | 
			
		||||
            export VKBASALT_CONFIG_FILE="${PORT_WINE_PATH}/data/vkBasalt.conf"
 | 
			
		||||
            sed -ri "s/effects = .*/effects = ${PW_VKBASALT_EFFECTS}/g" "${VKBASALT_CONFIG_FILE}"
 | 
			
		||||
            sed -ri "s/casSharpness .*/casSharpness = ${PW_VKBASALT_FFX_CAS}/g" "${VKBASALT_CONFIG_FILE}"
 | 
			
		||||
            sed -ri "s|= .*/reshade|= \"${PW_WINELIB}\"/pressure-vessel/reshade|g" "${VKBASALT_CONFIG_FILE}"
 | 
			
		||||
        fi
 | 
			
		||||
        sed -ri "s/effects = .*/effects = ${PW_VKBASALT_EFFECTS}/g" "${VKBASALT_CONFIG_FILE}"
 | 
			
		||||
        if [[ -z "${PW_VKBASALT_FFX_CAS}" ]] ; then
 | 
			
		||||
            export PW_VKBASALT_FFX_CAS="0.7" 
 | 
			
		||||
        fi
 | 
			
		||||
        sed -ri "s/casSharpness .*/casSharpness = ${PW_VKBASALT_FFX_CAS}/g" "${VKBASALT_CONFIG_FILE}"
 | 
			
		||||
        sed -ri "s|= .*/reshade|= \"${PW_WINELIB}/pressure-vessel/reshade\"|g" "${VKBASALT_CONFIG_FILE}"
 | 
			
		||||
        var_vk_istance_layers_config_update "VK_LAYER_VKBASALT_post_processing64:VK_LAYER_VKBASALT_post_processing32"
 | 
			
		||||
        print_info "vkBasalt is enabled"
 | 
			
		||||
    else
 | 
			
		||||
@@ -610,12 +660,15 @@ pw_kill_autostart () {
 | 
			
		||||
    sleep 5
 | 
			
		||||
    
 | 
			
		||||
    while true ; do
 | 
			
		||||
        if  [[ -z "`ps aux | grep -m 1 "$1" | grep -v grep | awk '{print $2}'`" ]] && [[ ! -z "`ps aux | grep wrap | grep -v grep | grep -i ${portname} | head -n 1`" ]] ; then
 | 
			
		||||
        if  [[ -z "`ps aux | grep -m 1 -i "$1" | grep -v grep | awk '{print $2}'`" ]] && [[ ! -z "`ps aux | grep wrap | grep -v grep | grep -i ${portname} | head -n 1`" ]] ; then
 | 
			
		||||
            echo -e "PID "$1" not found"
 | 
			
		||||
            sleep "${SWAIT}"
 | 
			
		||||
        else
 | 
			
		||||
            sleep "${SWAIT}"
 | 
			
		||||
            kill_portwine 
 | 
			
		||||
            if [[ "$3" == please ]]
 | 
			
		||||
            then kill -s SIGTERM `ps aux | grep -m 1 -i "$1" | grep -v grep | awk '{print $2}'`
 | 
			
		||||
            else kill_portwine
 | 
			
		||||
            fi
 | 
			
		||||
            break
 | 
			
		||||
        fi
 | 
			
		||||
    done
 | 
			
		||||
@@ -635,10 +688,10 @@ stop_portwine () {
 | 
			
		||||
    if [[ "$PW_USE_US_LAYOUT" == "1" ]] && [[ "${XDG_SESSION_TYPE}" != "wayland" ]] && command -v setxkbmap &>/dev/null ; then
 | 
			
		||||
        setxkbmap
 | 
			
		||||
    fi
 | 
			
		||||
    if [[ "${PW_RESTORE_RESOLUTION}" == "1" ]] && [[ "${XDG_SESSION_TYPE}" != "wayland" ]] && command -v xrandr &>/dev/null ; then
 | 
			
		||||
        RESOLUTION=$(sed -n '1p' "${PORT_WINE_TMP_PATH}/tmp_screen_configuration")
 | 
			
		||||
        OUTPUT_SCREEN=$(sed -n '2p' "${PORT_WINE_TMP_PATH}/tmp_screen_configuration")
 | 
			
		||||
        xrandr --output "$OUTPUT_SCREEN" --mode "$RESOLUTION"
 | 
			
		||||
    if [[ "${XDG_SESSION_TYPE}" != "wayland" ]] \
 | 
			
		||||
    && [[ "$(xrandr | sed -rn 's/^.*primary.* ([0-9]+x[0-9]+).*$/\1/p')" != "$PW_SCREEN_RESOLUTION" ]]
 | 
			
		||||
    then
 | 
			
		||||
        xrandr --output "$PW_SCREEN_PRIMARY" --mode "$PW_SCREEN_RESOLUTION"
 | 
			
		||||
    fi
 | 
			
		||||
    pw_stop_progress_bar
 | 
			
		||||
    try_remove_file "${PORT_SCRIPTS_PATH}/0"
 | 
			
		||||
@@ -657,23 +710,25 @@ stop_portwine () {
 | 
			
		||||
export -f stop_portwine
 | 
			
		||||
 | 
			
		||||
pw_download_libs () {
 | 
			
		||||
    if [[ ! -e "${PW_WINELIB}/portable/bin/yad" || ! -e "${PW_WINELIB}/portable/lib/p7zip/7z" \
 | 
			
		||||
    || ! -e "${PW_WINELIB}/runtime/files/bin/vkcube" || -e "${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}.tar.xz" ]] ;
 | 
			
		||||
    if [[ ! -e "${PW_WINELIB}/runtime/files/bin/vkcube" ]] \
 | 
			
		||||
    || [[ ! -f "${PW_WINELIB}/pressure-vessel/bin/pv-bwrap" ]]
 | 
			
		||||
    then
 | 
			
		||||
        print_info "Download and install libraries..."
 | 
			
		||||
        if try_download "github.com/Castro-Fidel/PortWINE/releases/download/libs${PW_LIBS_VER}/libs${PW_LIBS_VER}.tar.xz" "${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}.tar.xz" ; then
 | 
			
		||||
        if try_download "github.com/Castro-Fidel/PortWINE/releases/download/libs${PW_LIBS_VER}/libs${PW_LIBS_VER}.tar.xz" \
 | 
			
		||||
                        "${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}.tar.xz" ; then
 | 
			
		||||
            if unpack_tar_xz "${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}.tar.xz" "${PORT_WINE_TMP_PATH}/" ; then
 | 
			
		||||
                try_remove_file "${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}.tar.xz"
 | 
			
		||||
                if [ ! -z "`ls ${PORT_WINE_TMP_PATH} | grep libs_v | grep -v libs${PW_LIBS_VER}`" ] ; then
 | 
			
		||||
                    for RM_LIBS in `ls ${PORT_WINE_TMP_PATH} | grep libs_v | grep -v libs${PW_LIBS_VER}`
 | 
			
		||||
                    do try_remove_dir "${PORT_WINE_TMP_PATH}/${RM_LIBS}"
 | 
			
		||||
                    done
 | 
			
		||||
                    # TODO: drop clear prefix, and add update prefix from new libs 
 | 
			
		||||
                    pw_clear_pfx
 | 
			
		||||
                fi
 | 
			
		||||
            else
 | 
			
		||||
                try_remove_dir "${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}"
 | 
			
		||||
                try_remove_file "${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}.tar.xz"
 | 
			
		||||
                if zenity_error_download
 | 
			
		||||
                if yad_error_download
 | 
			
		||||
                then pw_download_libs
 | 
			
		||||
                else
 | 
			
		||||
                    export PW_LIBS_VER="$(echo _v$(($(echo $PW_LIBS_VER | sed 's/_v//') - 1)))"
 | 
			
		||||
@@ -681,7 +736,7 @@ pw_download_libs () {
 | 
			
		||||
                fi
 | 
			
		||||
            fi
 | 
			
		||||
        else
 | 
			
		||||
            if zenity_error_download
 | 
			
		||||
            if yad_error_download
 | 
			
		||||
            then pw_download_libs
 | 
			
		||||
            else
 | 
			
		||||
                export PW_LIBS_VER="$(echo _v$(($(echo $PW_LIBS_VER | sed 's/_v//') - 1)))"
 | 
			
		||||
@@ -689,16 +744,7 @@ pw_download_libs () {
 | 
			
		||||
            fi
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
    export pw_yad="${PW_WINELIB}/portable/bin/yad"
 | 
			
		||||
    export pw_yad_v12_3="${PW_WINELIB}/portable/bin/yad_v12_3"
 | 
			
		||||
    export pw_zstd="${PW_WINELIB}/portable/bin/zstd"
 | 
			
		||||
    export pw_7z="${PW_WINELIB}/portable/lib/p7zip/7z"
 | 
			
		||||
    if [ -x "`command -v xterm 2>/dev/null`" ]; then
 | 
			
		||||
        export SYS_XTERM=`command -v xterm`
 | 
			
		||||
        export PW_XTERM="${SYS_XTERM} -geometry 159x37 -e"
 | 
			
		||||
    else
 | 
			
		||||
        export PW_XTERM="${PW_WINELIB}/runtime/files/bin/xterm -geometry 159x37 -e"
 | 
			
		||||
    fi
 | 
			
		||||
    try_remove_dir "${PW_WINELIB}/portable"
 | 
			
		||||
    return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -714,7 +760,8 @@ pw_check_and_download_wine () {
 | 
			
		||||
    fi
 | 
			
		||||
    if [ ! -d "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}" ] ; then
 | 
			
		||||
        print_info "Download and install ${PW_WINE_USE}..."
 | 
			
		||||
        if try_download "github.com/Castro-Fidel/wine_builds/releases/download/${PW_WINE_USE}/${PW_WINE_USE}.tar.xz" "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz" ; then
 | 
			
		||||
        if try_download "github.com/Castro-Fidel/wine_builds/releases/download/${PW_WINE_USE}/${PW_WINE_USE}.tar.xz" \
 | 
			
		||||
                        "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz" ; then
 | 
			
		||||
            if unpack_tar_xz "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz" "${PORT_WINE_PATH}/data/dist/" ; then
 | 
			
		||||
                echo "${PW_WINE_USE}" > "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}/version"
 | 
			
		||||
                try_remove_file "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz"
 | 
			
		||||
@@ -724,10 +771,10 @@ pw_check_and_download_wine () {
 | 
			
		||||
                try_remove_dir "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}"
 | 
			
		||||
                try_remove_dir "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}"
 | 
			
		||||
 | 
			
		||||
                zenity_error_download && pw_check_and_download_wine || exit 1
 | 
			
		||||
                yad_error_download && pw_check_and_download_wine || exit 1
 | 
			
		||||
            fi
 | 
			
		||||
        else
 | 
			
		||||
            zenity_error_download && pw_check_and_download_wine || exit 1
 | 
			
		||||
            yad_error_download && pw_check_and_download_wine || exit 1
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
    return 0
 | 
			
		||||
@@ -738,26 +785,28 @@ pw_check_and_download_dxvk_and_vkd3d () {
 | 
			
		||||
    for DXVK_VAR_VER in "${DXVK_STABLE_VER}" "${DXVK_GIT_VER}" ; do
 | 
			
		||||
        if [ ! -d "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}" ] ; then
 | 
			
		||||
            print_info "Download and install DXVK v.${DXVK_VAR_VER}"
 | 
			
		||||
            if try_download "https://github.com/Castro-Fidel/vulkan/releases/download/dxvk-${DXVK_VAR_VER}/dxvk-${DXVK_VAR_VER}.tar.xz" "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}.tar.xz" ; then
 | 
			
		||||
            if try_download "https://github.com/Castro-Fidel/vulkan/releases/download/dxvk-${DXVK_VAR_VER}/dxvk-${DXVK_VAR_VER}.tar.xz" \
 | 
			
		||||
                                      "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}.tar.xz" ; then
 | 
			
		||||
                if unpack_tar_xz "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}.tar.xz" "${PW_VULKAN_DIR}" ; then
 | 
			
		||||
                    try_remove_file "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}.tar.xz"
 | 
			
		||||
                else
 | 
			
		||||
                    try_remove_file "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}.tar.xz"
 | 
			
		||||
                    try_remove_dir dxvk-${DXVK_VAR_VER}
 | 
			
		||||
 | 
			
		||||
                    zenity_error_download && pw_check_and_download_dxvk_and_vkd3d || exit 1
 | 
			
		||||
                    yad_error_download && pw_check_and_download_dxvk_and_vkd3d || exit 1
 | 
			
		||||
                fi
 | 
			
		||||
            elif try_download "https://github.com/doitsujin/dxvk/releases/download/v${DXVK_VAR_VER}/dxvk-${DXVK_VAR_VER}.tar.gz" "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}.tar.gz" ; then
 | 
			
		||||
            elif try_download_no_mirror "https://github.com/doitsujin/dxvk/releases/download/v${DXVK_VAR_VER}/dxvk-${DXVK_VAR_VER}.tar.gz" \
 | 
			
		||||
                                       "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}.tar.gz" ; then
 | 
			
		||||
                if unpack_tar_gz "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}.tar.gz" "${PW_VULKAN_DIR}" ; then
 | 
			
		||||
                    try_remove_file "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}.tar.gz"
 | 
			
		||||
                else
 | 
			
		||||
                    try_remove_file "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}.tar.gz"
 | 
			
		||||
                    try_remove_dir dxvk-${DXVK_VAR_VER}
 | 
			
		||||
 | 
			
		||||
                    zenity_error_download && pw_check_and_download_dxvk_and_vkd3d || exit 1
 | 
			
		||||
                    yad_error_download && pw_check_and_download_dxvk_and_vkd3d || exit 1
 | 
			
		||||
                fi
 | 
			
		||||
            else
 | 
			
		||||
                zenity_error_download && pw_check_and_download_dxvk_and_vkd3d || exit 1
 | 
			
		||||
                yad_error_download && pw_check_and_download_dxvk_and_vkd3d || exit 1
 | 
			
		||||
            fi
 | 
			
		||||
        fi
 | 
			
		||||
    done
 | 
			
		||||
@@ -766,26 +815,28 @@ pw_check_and_download_dxvk_and_vkd3d () {
 | 
			
		||||
    for VKD3D_VAR_VER in "${VKD3D_STABLE_VER}" "${VKD3D_GIT_VER}" ; do
 | 
			
		||||
        if [ ! -d "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}" ] ; then
 | 
			
		||||
            print_info "Download and install VKD3D-PROTON v.${VKD3D_VAR_VER}"
 | 
			
		||||
            if try_download "https://github.com/Castro-Fidel/vulkan/releases/download/vkd3d-proton-${VKD3D_VAR_VER}/vkd3d-proton-${VKD3D_VAR_VER}.tar.xz" "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}.tar.xz" ; then
 | 
			
		||||
            if try_download "https://github.com/Castro-Fidel/vulkan/releases/download/vkd3d-proton-${VKD3D_VAR_VER}/vkd3d-proton-${VKD3D_VAR_VER}.tar.xz" \
 | 
			
		||||
                                      "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}.tar.xz" ; then
 | 
			
		||||
                if unpack_tar_xz "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}.tar.xz" "${PW_VULKAN_DIR}" ; then
 | 
			
		||||
                    try_remove_file "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}.tar.xz"
 | 
			
		||||
                else
 | 
			
		||||
                    try_remove_file "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}.tar.xz"
 | 
			
		||||
                    try_remove_dir vkd3d-proton-${VKD3D_VAR_VER}
 | 
			
		||||
 | 
			
		||||
                    zenity_error_download && pw_check_and_download_dxvk_and_vkd3d || exit 1
 | 
			
		||||
                    yad_error_download && pw_check_and_download_dxvk_and_vkd3d || exit 1
 | 
			
		||||
                fi
 | 
			
		||||
            elif try_download "https://github.com/HansKristian-Work/vkd3d-proton/releases/download/v${VKD3D_VAR_VER}/vkd3d-proton-${VKD3D_VAR_VER}.tar.zst" "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}.tar.zst" ; then
 | 
			
		||||
            elif try_download_no_mirror "https://github.com/HansKristian-Work/vkd3d-proton/releases/download/v${VKD3D_VAR_VER}/vkd3d-proton-${VKD3D_VAR_VER}.tar.zst" \
 | 
			
		||||
                                        "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}.tar.zst" ; then
 | 
			
		||||
                if unpack_tar_zst "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}.tar.zst" "${PW_VULKAN_DIR}" ; then
 | 
			
		||||
                    try_remove_file "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}.tar.zst"
 | 
			
		||||
                else
 | 
			
		||||
                    try_remove_file "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}.tar.zst"
 | 
			
		||||
                    try_remove_dir vkd3d-proton-${VKD3D_VAR_VER}
 | 
			
		||||
 | 
			
		||||
                    zenity_error_download && pw_check_and_download_dxvk_and_vkd3d || exit 1
 | 
			
		||||
                    yad_error_download && pw_check_and_download_dxvk_and_vkd3d || exit 1
 | 
			
		||||
                fi
 | 
			
		||||
            else
 | 
			
		||||
                zenity_error_download && pw_check_and_download_dxvk_and_vkd3d || exit 1
 | 
			
		||||
                yad_error_download && pw_check_and_download_dxvk_and_vkd3d || exit 1
 | 
			
		||||
            fi
 | 
			
		||||
        fi
 | 
			
		||||
    done
 | 
			
		||||
@@ -800,10 +851,10 @@ pw_check_and_download_dxvk_and_vkd3d () {
 | 
			
		||||
                try_remove_file "${PW_VULKAN_DIR}/d8vk-${D8VK_VER}.tar.xz"
 | 
			
		||||
                try_remove_dir "d8vk-${D8VK_VER}"
 | 
			
		||||
 | 
			
		||||
                zenity_error_download && pw_check_and_download_dxvk_and_vkd3d || exit 1
 | 
			
		||||
                yad_error_download && pw_check_and_download_dxvk_and_vkd3d || exit 1
 | 
			
		||||
            fi
 | 
			
		||||
        else
 | 
			
		||||
            zenity_error_download && pw_check_and_download_dxvk_and_vkd3d || exit 1
 | 
			
		||||
            yad_error_download && pw_check_and_download_dxvk_and_vkd3d || exit 1
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
@@ -811,20 +862,31 @@ pw_check_and_download_dxvk_and_vkd3d () {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pw_check_and_download_plugins () {
 | 
			
		||||
    if [[ ! -d "${PW_PLUGINS_PATH}/fake_dlss" ]] || [[ ! -d "${PW_PLUGINS_PATH}/nvapi" ]] ; then
 | 
			
		||||
    if [[ ! -f "${PW_PLUGINS_PATH}/portable/bin/yad_new" ]] \
 | 
			
		||||
    || [[ ! -f "${PW_PLUGINS_PATH}/portable/bin/yad_v12_3" ]]
 | 
			
		||||
    then
 | 
			
		||||
        print_info "Download and install plugins${PW_PLUGINS_VER}..."
 | 
			
		||||
        if try_download "github.com/Castro-Fidel/wine_builds/releases/download/plugins${PW_PLUGINS_VER}/plugins${PW_PLUGINS_VER}.tar.xz" "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz" ; then
 | 
			
		||||
            if unpack_tar_xz "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz" "${PORT_WINE_TMP_PATH}" ; then
 | 
			
		||||
                try_remove_file "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz" 
 | 
			
		||||
                    if [ ! -z "`ls ${PORT_WINE_TMP_PATH} | grep plugins_v | grep -v plugins${PW_PLUGINS_VER}`" ] ; then
 | 
			
		||||
                        for RM_PLUGINS in `ls ${PORT_WINE_TMP_PATH} | grep plugins_v | grep -v plugins${PW_PLUGINS_VER}`
 | 
			
		||||
                        do try_remove_dir "${PORT_WINE_TMP_PATH}/${RM_PLUGINS}"
 | 
			
		||||
                        done
 | 
			
		||||
        if command -v yad &>/dev/null ; then
 | 
			
		||||
            if try_download "github.com/Castro-Fidel/wine_builds/releases/download/plugins${PW_PLUGINS_VER}/plugins${PW_PLUGINS_VER}.tar.xz" "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz" ; then
 | 
			
		||||
                if unpack_tar_xz "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz" "${PORT_WINE_TMP_PATH}" ; then
 | 
			
		||||
                    try_remove_file "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz" 
 | 
			
		||||
                        if [ ! -z "`ls ${PORT_WINE_TMP_PATH} | grep plugins_v | grep -v plugins${PW_PLUGINS_VER}`" ] ; then
 | 
			
		||||
                            for RM_PLUGINS in `ls ${PORT_WINE_TMP_PATH} | grep plugins_v | grep -v plugins${PW_PLUGINS_VER}`
 | 
			
		||||
                            do try_remove_dir "${PORT_WINE_TMP_PATH}/${RM_PLUGINS}"
 | 
			
		||||
                            done
 | 
			
		||||
                        fi
 | 
			
		||||
                else
 | 
			
		||||
                    try_remove_file "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz"
 | 
			
		||||
                    try_remove_dir "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}"
 | 
			
		||||
                    if yad_error_download
 | 
			
		||||
                    then pw_check_and_download_plugins
 | 
			
		||||
                    else
 | 
			
		||||
                        export PW_PLUGINS_VER="$(echo _v$(($(echo $PW_PLUGINS_VER | sed 's/_v//') - 1)))"
 | 
			
		||||
                        export PW_PLUGINS_PATH="${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}"  
 | 
			
		||||
                    fi
 | 
			
		||||
                fi
 | 
			
		||||
            else
 | 
			
		||||
                try_remove_file "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz"
 | 
			
		||||
                try_remove_dir "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}"
 | 
			
		||||
                if zenity_error_download
 | 
			
		||||
                if yad_error_download
 | 
			
		||||
                then pw_check_and_download_plugins
 | 
			
		||||
                else
 | 
			
		||||
                    export PW_PLUGINS_VER="$(echo _v$(($(echo $PW_PLUGINS_VER | sed 's/_v//') - 1)))"
 | 
			
		||||
@@ -832,14 +894,30 @@ pw_check_and_download_plugins () {
 | 
			
		||||
                fi
 | 
			
		||||
            fi
 | 
			
		||||
        else
 | 
			
		||||
            if zenity_error_download
 | 
			
		||||
            then pw_check_and_download_plugins
 | 
			
		||||
            else
 | 
			
		||||
                export PW_PLUGINS_VER="$(echo _v$(($(echo $PW_PLUGINS_VER | sed 's/_v//') - 1)))"
 | 
			
		||||
                export PW_PLUGINS_PATH="${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}"  
 | 
			
		||||
            PW_NOTIFY_TEXT="Please wait for update PortProton"
 | 
			
		||||
            pw_notify_send -u critical 
 | 
			
		||||
            if try_download_silent "github.com/Castro-Fidel/wine_builds/releases/download/plugins${PW_PLUGINS_VER}/plugins${PW_PLUGINS_VER}.tar.xz" \
 | 
			
		||||
                                   "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz" ; then
 | 
			
		||||
                if unpack_tar_xz "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz" "${PORT_WINE_TMP_PATH}" ; then
 | 
			
		||||
                    try_remove_file "${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}.tar.xz" 
 | 
			
		||||
                    if [ ! -z "`ls ${PORT_WINE_TMP_PATH} | grep plugins_v | grep -v plugins${PW_PLUGINS_VER}`" ] ; then
 | 
			
		||||
                        for RM_PLUGINS in `ls ${PORT_WINE_TMP_PATH} | grep plugins_v | grep -v plugins${PW_PLUGINS_VER}`
 | 
			
		||||
                        do try_remove_dir "${PORT_WINE_TMP_PATH}/${RM_PLUGINS}"
 | 
			
		||||
                        done
 | 
			
		||||
                    fi
 | 
			
		||||
                else
 | 
			
		||||
                    PW_NOTIFY_TEXT="Failed updating PortProton!"
 | 
			
		||||
                    pw_notify_send -u critical 
 | 
			
		||||
                    print_error "Failed updating PortProton!"
 | 
			
		||||
                fi
 | 
			
		||||
            fi
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
    export pw_yad="${PW_PLUGINS_PATH}/portable/bin/yad"
 | 
			
		||||
    export pw_yad_v12_3="${PW_PLUGINS_PATH}/portable/bin/yad_v12_3"
 | 
			
		||||
    export pw_zstd="${PW_PLUGINS_PATH}/portable/bin/zstd"
 | 
			
		||||
    export pw_7z="${PW_PLUGINS_PATH}/portable/lib/p7zip/7z"
 | 
			
		||||
    export PW_XTERM="${PW_PLUGINS_PATH}/portable/bin/xterm -geometry 159x37 -e"
 | 
			
		||||
    return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -878,8 +956,9 @@ pw_init_db () {
 | 
			
		||||
                        export ADD_CB_DBFILE="`echo ${PW_CHECK_DB_FILE} | awk -F'/' '{print $NF}'`!${ADD_CB_DBFILE}"
 | 
			
		||||
                    fi
 | 
			
		||||
                done
 | 
			
		||||
                PORTWINE_DB_FILE="${PORT_SCRIPTS_PATH}/portwine_db"/`"${pw_yad_v12_3}" --text-align=center --text "${PW_SELECTION_DB_LOC}" --borders=15 --form \
 | 
			
		||||
                --title "Database file selection..." --window-icon="$PW_GUI_ICON_PATH/port_proton.png"  --form --separator="" \
 | 
			
		||||
                PORTWINE_DB_FILE="${PORT_SCRIPTS_PATH}/portwine_db"/`"${pw_yad_v12_3}" --text-align=center \
 | 
			
		||||
                --text "${PW_SELECTION_DB_LOC}" --borders="${YAD_BORDERS}" --form \
 | 
			
		||||
                --title "Database file selection..." --window-icon="$PW_GUI_ICON_PATH/portproton.svg"  --form --separator="" \
 | 
			
		||||
                --field="DB FILE: :CB" "${ADD_CB_DBFILE}" 2>/dev/null`
 | 
			
		||||
                if [[ "$?" == "1" || "$?" == "252" ]] ; then exit 0 ; fi
 | 
			
		||||
            elif [[ `echo "$PW_FIND_DB_FILE" | wc -l` -eq 1 ]] ; then
 | 
			
		||||
@@ -922,11 +1001,19 @@ pw_init_db () {
 | 
			
		||||
            check_variables PW_USE_FAKE_DLSS "0"
 | 
			
		||||
            check_variables PW_USE_RAY_TRACING "1"
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
        if [[ "${update_loc}" == "RUS" ]] ; then
 | 
			
		||||
            for chk_lang_and_uname in "steam_emu.ini" "steam_api.ini" "steam_api64.ini" ; do
 | 
			
		||||
                if [[ -f "${PATH_TO_GAME}/${chk_lang_and_uname}" ]] ; then
 | 
			
		||||
                    sed -i "s/Language=english/Language=russian/" "${PATH_TO_GAME}/${chk_lang_and_uname}"
 | 
			
		||||
                    sed -i "/UserName=/c\UserName=${USER}" "${PATH_TO_GAME}/${chk_lang_and_uname}"
 | 
			
		||||
                fi
 | 
			
		||||
            done
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
    [[ "${START_FROM_STEAM}" == 1 ]] && export PW_GUI_DISABLED_CS=1
 | 
			
		||||
    [[ "${START_FROM_PP_GUI}" == 1 ]] && export PW_GUI_DISABLED_CS=0 && unset START_FROM_PP_GUI
 | 
			
		||||
 | 
			
		||||
    [[ -z "$GAMESCOPE_ARGS" ]] && export GAMESCOPE_ARGS="-F fsr"
 | 
			
		||||
    return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -937,13 +1024,13 @@ pw_port_update () {
 | 
			
		||||
    fi
 | 
			
		||||
    export scripts_install_ver=`cat "${PORT_WINE_TMP_PATH}/scripts_ver" | head -n 1`
 | 
			
		||||
    print_info "Check update..."
 | 
			
		||||
    if curl -s --list-only --connect-timeout 3 "https://raw.githubusercontent.com/Castro-Fidel/PortWINE/master/data_from_portwine/scripts/var" > "${PORT_WINE_TMP_PATH}/curent_var_ver"
 | 
			
		||||
    if curl -f -s --list-only --connect-timeout 3 "https://raw.githubusercontent.com/Castro-Fidel/PortWINE/master/data_from_portwine/scripts/var" > "${PORT_WINE_TMP_PATH}/curent_var_ver"
 | 
			
		||||
    then
 | 
			
		||||
        URL_FOR_CHANGELOG="https://raw.githubusercontent.com/Castro-Fidel/PortWINE/master/data_from_portwine"
 | 
			
		||||
        URL_TO_PW_MASTER="https://github.com/Castro-Fidel/PortWINE/archive/refs/heads/master.tar.gz"
 | 
			
		||||
        print_info "OK."
 | 
			
		||||
    else
 | 
			
		||||
        if curl -s --list-only --connect-timeout 3 "https://gitlab.eterfund.ru/Castro-Fidel/PortWINE/raw/master/data_from_portwine/scripts/var" > "${PORT_WINE_TMP_PATH}/curent_var_ver"
 | 
			
		||||
        if curl -f -s --list-only --connect-timeout 3 "https://gitlab.eterfund.ru/Castro-Fidel/PortWINE/raw/master/data_from_portwine/scripts/var" > "${PORT_WINE_TMP_PATH}/curent_var_ver"
 | 
			
		||||
        then
 | 
			
		||||
            URL_FOR_CHANGELOG="https://gitlab.eterfund.ru/Castro-Fidel/PortWINE/raw/master/data_from_portwine"
 | 
			
		||||
            URL_TO_PW_MASTER="https://gitlab.eterfund.ru/Castro-Fidel/PortWINE/-/archive/master/PortWINE-master.tar.gz"
 | 
			
		||||
@@ -960,29 +1047,31 @@ pw_port_update () {
 | 
			
		||||
        print_info "Scripts version in github = ${scripts_current_ver}"
 | 
			
		||||
        print_info "Scripts version local = ${scripts_install_ver}"
 | 
			
		||||
        if [[ ! -z "${scripts_current_ver}" ]] &&  [[ "${scripts_current_ver}" -gt "${scripts_install_ver}" ]] ; then
 | 
			
		||||
            if [[ -f "${PW_WINELIB}/portable/bin/yad_v12_3" ]] ; then
 | 
			
		||||
                export pw_yad_v12_3="${PW_WINELIB}/portable/bin/yad_v12_3"
 | 
			
		||||
                curl -s --list-only "${URL_FOR_CHANGELOG}/${PW_CHANGELOG_FILE}" | tee "${PORT_WINE_TMP_PATH}/curent_var_ver" | sszen
 | 
			
		||||
            if [[ -f "${PW_PLUGINS_PATH}/portable/bin/yad_v12_3" ]]
 | 
			
		||||
            then export pw_yad_v12_3="${PW_PLUGINS_PATH}/portable/bin/yad_v12_3"
 | 
			
		||||
            elif command -v yad &>/dev/null
 | 
			
		||||
            then local pw_yad_v12_3="yad"
 | 
			
		||||
            else local pw_yad_v12_3="not_found"
 | 
			
		||||
            fi
 | 
			
		||||
            if [[ "${pw_yad_v12_3}" == "not_found" ]] ; then
 | 
			
		||||
                xcsd="${scripts_upd4}"
 | 
			
		||||
            else
 | 
			
		||||
                curl -s --list-only "${URL_FOR_CHANGELOG}/${PW_CHANGELOG_FILE}" | tee "${PORT_WINE_TMP_PATH}/curent_var_ver"
 | 
			
		||||
                CHANGLOG_NEWS=`cat "${PORT_WINE_TMP_PATH}/curent_var_ver" | sed "/Scripts version ${scripts_install_ver}/,$ d" | sed '1,/---/ d' `
 | 
			
		||||
                xcsd=`"${pw_yad_v12_3}" --title "${scripts_upd2} v.${scripts_current_ver}" --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \
 | 
			
		||||
                --borders=3 --form --separator='%%%' --width=1200 --height=600 \
 | 
			
		||||
                xcsd=`"${pw_yad_v12_3}" --title "${scripts_upd2} v.${scripts_current_ver}" --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
 | 
			
		||||
                --borders=${YAD_BORDERS} --form --separator='%%%' --width=1200 --height=600 \
 | 
			
		||||
                --field=":TXT" "${CHANGLOG_NEWS}" \
 | 
			
		||||
                --field="   ${scripts_upd3} :CB" "${scripts_upd4}!${scripts_upd5}!${scripts_upd6}" 2>/dev/null`
 | 
			
		||||
                YAD_STATUS="$?"
 | 
			
		||||
                if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; fi
 | 
			
		||||
                xcsd=`echo "${xcsd}" | awk -F'%%%' '{print $2}'`
 | 
			
		||||
            else
 | 
			
		||||
                xcsd=`zenity --title  "${scripts_upd1}" --text "${scripts_upd2}" --list --radiolist --height=240 --column="${inst_set}" --column "${scripts_upd3}" \
 | 
			
		||||
                TRUE "${scripts_upd4}" \
 | 
			
		||||
                FALSE "${scripts_upd5}" \
 | 
			
		||||
                FALSE "${scripts_upd6}"`
 | 
			
		||||
            fi
 | 
			
		||||
            case $xcsd in
 | 
			
		||||
                "${scripts_upd4}")
 | 
			
		||||
                    echo "######################################################"
 | 
			
		||||
                    print_info "Update scripts..."
 | 
			
		||||
                    try_remove_file "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz"
 | 
			
		||||
                    if try_download "${URL_TO_PW_MASTER}" "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" ; then
 | 
			
		||||
                    if try_download_no_mirror "${URL_TO_PW_MASTER}" "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" ; then
 | 
			
		||||
                        if unpack_tar_gz "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" "${PORT_WINE_TMP_PATH}"
 | 
			
		||||
                        then
 | 
			
		||||
                            create_new_dir "${PORT_WINE_TMP_PATH}/scripts_backup"
 | 
			
		||||
@@ -994,15 +1083,13 @@ pw_port_update () {
 | 
			
		||||
                            try_remove_file "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz"
 | 
			
		||||
                            try_remove_dir "${PORT_WINE_TMP_PATH}/PortWINE-master/"
 | 
			
		||||
                            echo "${scripts_current_ver}" > "${PORT_WINE_TMP_PATH}/scripts_ver"
 | 
			
		||||
                            if [[ -z "${pw_yad_v12_3}" ]] ; then
 | 
			
		||||
                                zenity --title="Changelog" --text-info --width=1200 --height=550 \
 | 
			
		||||
                                --filename="${PORT_WINE_PATH}/data/${PW_CHANGELOG_FILE}"
 | 
			
		||||
                            fi 
 | 
			
		||||
                            [ "$?" == 0 ] && echo "Restarting PP after update..." && /usr/bin/env bash -c ${pw_full_command_line[*]} &
 | 
			
		||||
                            echo "Restarting PP after update..."
 | 
			
		||||
                            export SKIP_CHECK_UPDATES=1
 | 
			
		||||
                            /usr/bin/env bash -c ${pw_full_command_line[*]} &
 | 
			
		||||
                            exit 0
 | 
			
		||||
                        fi
 | 
			
		||||
                    else
 | 
			
		||||
                        zenity_error_download && pw_port_update || exit 1
 | 
			
		||||
                        yad_error_download && pw_port_update || exit 1
 | 
			
		||||
                    fi ;;
 | 
			
		||||
                "${scripts_upd5}")
 | 
			
		||||
                    echo " " ;;
 | 
			
		||||
@@ -1015,7 +1102,6 @@ pw_port_update () {
 | 
			
		||||
    return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
update_winetricks () {
 | 
			
		||||
    W_TRX_URL="https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks"
 | 
			
		||||
    W_TRX_EXT_VER="$(curl -s --list-only ${W_TRX_URL} | grep -i 'WINETRICKS_VERSION=' | sed 's/WINETRICKS_VERSION=//')"
 | 
			
		||||
@@ -1023,7 +1109,7 @@ update_winetricks () {
 | 
			
		||||
    W_TRX_INT_VER="$(cat "${PORT_WINE_TMP_PATH}/winetricks" | grep -i 'WINETRICKS_VERSION=' | sed 's/WINETRICKS_VERSION=//')"
 | 
			
		||||
    print_info "Version winetricks in port: ${W_TRX_INT_VER}"
 | 
			
		||||
    if [[ ! -f "${PORT_WINE_TMP_PATH}/winetricks" && ! -z "$W_TRX_EXT_VER" ]] || [[ "$W_TRX_INT_VER" != "$W_TRX_EXT_VER" && ! -z "$W_TRX_EXT_VER" ]]; then
 | 
			
		||||
        if try_download "${W_TRX_URL}" "${PORT_WINE_TMP_PATH}/winetricks_new" ; then
 | 
			
		||||
        if try_download_no_mirror "${W_TRX_URL}" "${PORT_WINE_TMP_PATH}/winetricks_new" ; then
 | 
			
		||||
            mv -f "${PORT_WINE_TMP_PATH}/winetricks_new" "${PORT_WINE_TMP_PATH}/winetricks"
 | 
			
		||||
            W_TRX_INT_VER="$(cat "${PORT_WINE_TMP_PATH}/winetricks" | grep -i 'WINETRICKS_VERSION=' | sed 's/WINETRICKS_VERSION=//')" && print_info "Winetricks version in port has been updated (${W_TRX_INT_VER})" 
 | 
			
		||||
            chmod u+x "${PORT_WINE_TMP_PATH}/winetricks"
 | 
			
		||||
@@ -1082,22 +1168,43 @@ pw_create_gui_png () {
 | 
			
		||||
    try_remove_file "${PORT_WINE_PATH}/data/img/Setup.png"
 | 
			
		||||
    try_remove_file "${PORT_WINE_PATH}/data/img/launcher.png"
 | 
			
		||||
    try_remove_file "${PORT_WINE_PATH}/data/img/Launcher.png"
 | 
			
		||||
    if [[ -x "`command -v wrestool 2>/dev/null`" ]] && [[ ! -f "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" ]] ; then
 | 
			
		||||
    if [[ ! -f "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" ]] ; then
 | 
			
		||||
        try_remove_dir "${PORT_WINE_TMP_PATH}/tmp_img"
 | 
			
		||||
        create_new_dir "${PORT_WINE_TMP_PATH}/tmp_img"
 | 
			
		||||
        wrestool -x --output="${PORT_WINE_TMP_PATH}/tmp_img/" -t14 "$(readlink -f "${portwine_exe}")"
 | 
			
		||||
        if command -v wrestool &>/dev/null ; then
 | 
			
		||||
            wrestool -x --output="${PORT_WINE_TMP_PATH}/tmp_img/" -t14 "$(readlink -f "${portwine_exe}")"
 | 
			
		||||
        else
 | 
			
		||||
            env LD_LIBRARY_PATH="${PW_PLUGINS_PATH}/portable/lib/lib64" "${PW_PLUGINS_PATH}/portable/bin/wrestool" \
 | 
			
		||||
            -x --output="${PORT_WINE_TMP_PATH}/tmp_img/" -t14 "$(readlink -f "${portwine_exe}")"
 | 
			
		||||
        fi
 | 
			
		||||
        cp "$(ls -S -1 "${PORT_WINE_TMP_PATH}/tmp_img/"*".ico" | head -n 1)" "${PORT_WINE_TMP_PATH}/tmp_img/${PORTPROTON_NAME}.ico"
 | 
			
		||||
        icotool -x --width=${PW_RESIZE_TO} --height=${PW_RESIZE_TO} --output="${PORT_WINE_TMP_PATH}/tmp_img/" "${PORT_WINE_TMP_PATH}/tmp_img/${PORTPROTON_NAME}.ico"
 | 
			
		||||
        
 | 
			
		||||
        if command -v icotool &>/dev/null ; then
 | 
			
		||||
            icotool -x --width=${PW_RESIZE_TO} --height=${PW_RESIZE_TO} --output="${PORT_WINE_TMP_PATH}/tmp_img/" \
 | 
			
		||||
            "${PORT_WINE_TMP_PATH}/tmp_img/${PORTPROTON_NAME}.ico"
 | 
			
		||||
        else
 | 
			
		||||
            env LD_LIBRARY_PATH="${PW_PLUGINS_PATH}/portable/lib/lib64" "${PW_PLUGINS_PATH}/portable/bin/icotool" \
 | 
			
		||||
            -x --width=${PW_RESIZE_TO} --height=${PW_RESIZE_TO} --output="${PORT_WINE_TMP_PATH}/tmp_img/" \
 | 
			
		||||
            "${PORT_WINE_TMP_PATH}/tmp_img/${PORTPROTON_NAME}.ico"
 | 
			
		||||
        fi
 | 
			
		||||
        if [[ ! -f "$(ls -S -1 "${PORT_WINE_TMP_PATH}/tmp_img/"*".png" | grep "${PW_RESIZE_TO}x${PW_RESIZE_TO}")" ]] ; then 
 | 
			
		||||
            icotool -x --output="${PORT_WINE_TMP_PATH}/tmp_img/" "${PORT_WINE_TMP_PATH}/tmp_img/${PORTPROTON_NAME}.ico"
 | 
			
		||||
            if command -v icotool &>/dev/null ; then
 | 
			
		||||
                icotool -x --output="${PORT_WINE_TMP_PATH}/tmp_img/" "${PORT_WINE_TMP_PATH}/tmp_img/${PORTPROTON_NAME}.ico"
 | 
			
		||||
            else
 | 
			
		||||
                env LD_LIBRARY_PATH="${PW_PLUGINS_PATH}/portable/lib/lib64" "${PW_PLUGINS_PATH}/portable/bin/icotool" \
 | 
			
		||||
                -x --output="${PORT_WINE_TMP_PATH}/tmp_img/" "${PORT_WINE_TMP_PATH}/tmp_img/${PORTPROTON_NAME}.ico"
 | 
			
		||||
            fi
 | 
			
		||||
            cp "$(ls -S -1 "${PORT_WINE_TMP_PATH}/tmp_img/"*".png" | head -n 1)" "${PORT_WINE_TMP_PATH}/tmp_img/${PORTPROTON_NAME}.png"
 | 
			
		||||
        else
 | 
			
		||||
            cp "$(ls -S -1 "${PORT_WINE_TMP_PATH}/tmp_img/"*".png" | grep "${PW_RESIZE_TO}x${PW_RESIZE_TO}" | head -n 1)" "${PORT_WINE_TMP_PATH}/tmp_img/${PORTPROTON_NAME}.png"
 | 
			
		||||
            cp "$(ls -S -1 "${PORT_WINE_TMP_PATH}/tmp_img/"*".png" | grep "${PW_RESIZE_TO}x${PW_RESIZE_TO}" | head -n 1)" \
 | 
			
		||||
            "${PORT_WINE_TMP_PATH}/tmp_img/${PORTPROTON_NAME}.png"
 | 
			
		||||
        fi
 | 
			
		||||
        cp -f "${PORT_WINE_TMP_PATH}/tmp_img/${PORTPROTON_NAME}.png" "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png"
 | 
			
		||||
    fi
 | 
			
		||||
    if [[ -z "`file "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" | grep "${PW_RESIZE_TO} x ${PW_RESIZE_TO}"`" ]] && \
 | 
			
		||||
       [[ -x "`command -v "convert" 2>/dev/null`" ]] && [[ -f "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" ]] ; then
 | 
			
		||||
    if [[ -z "`file "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" | grep "${PW_RESIZE_TO} x ${PW_RESIZE_TO}"`" ]] \
 | 
			
		||||
    && command -v convert &>/dev/null \
 | 
			
		||||
    && [[ -f "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" ]]
 | 
			
		||||
    then
 | 
			
		||||
        convert "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" -resize ${PW_RESIZE_TO}x${PW_RESIZE_TO} "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" 
 | 
			
		||||
    fi
 | 
			
		||||
    if [[ -z "${PW_ICON_FOR_YAD}" ]] ; then
 | 
			
		||||
@@ -1130,12 +1237,13 @@ pw_find_exe () {
 | 
			
		||||
 | 
			
		||||
    OrigIFS="$IFS" && IFS=%
 | 
			
		||||
    PW_SET_FIND_EXE="$("${pw_yad_v12_3}" --height="300" --width="1000" --list \
 | 
			
		||||
    --text-align=center --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "Create shortcut for..." \
 | 
			
		||||
    --text-align=center --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --title "Create shortcut for..." \
 | 
			
		||||
    --text="\n${loc_gui_create_shortcut_for_exe}" --column="path to .exe file:" ${FIND_TO_GUI} 2>/dev/null)"
 | 
			
		||||
    YAD_STATUS="$?"
 | 
			
		||||
    print_var YAD_STATUS
 | 
			
		||||
    if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then
 | 
			
		||||
        if [[ -z "${PW_SET_FIND_EXE}" ]] ; then
 | 
			
		||||
            export SKIP_CHECK_UPDATES=1
 | 
			
		||||
            /usr/bin/env bash -c ${pw_full_command_line[*]} &
 | 
			
		||||
            print_info "Restarting..."
 | 
			
		||||
        fi
 | 
			
		||||
@@ -1146,6 +1254,7 @@ pw_find_exe () {
 | 
			
		||||
    if [[ ! -z "${PW_SET_FIND_EXE}" ]] ; then
 | 
			
		||||
        portwine_exe="${PW_PATH_FOR_FIND}$(echo "${PW_SET_FIND_EXE}" | awk -F'|' '{print $1}')"
 | 
			
		||||
        portwine_create_shortcut silent
 | 
			
		||||
        export SKIP_CHECK_UPDATES=1
 | 
			
		||||
        /usr/bin/env bash -c ${pw_full_command_line[*]} &
 | 
			
		||||
        exit 0
 | 
			
		||||
    fi
 | 
			
		||||
 
 | 
			
		||||
@@ -8,15 +8,22 @@ 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" `
 | 
			
		||||
	echo "${SET_LANG}" > "${PORT_WINE_TMP_PATH}/${portname}_loc"
 | 
			
		||||
	if [[ ! -z "${SET_LANG}" ]]
 | 
			
		||||
	then export update_loc=${SET_LANG}
 | 
			
		||||
	else exit 1
 | 
			
		||||
	if [[ "${update_loc}" == "RUS" || "${update_loc}" == "ENG" ]] && [[ -f "${PORT_WINE_TMP_PATH}/${portname}_loc" ]] ; then
 | 
			
		||||
		echo ""
 | 
			
		||||
	else
 | 
			
		||||
		[[ ! -f "${pw_yad_v12_3}" ]] && pw_yad_v12_3="yad"
 | 
			
		||||
		SET_LANG=$("$pw_yad_v12_3" --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
 | 
			
		||||
 | 
			
		||||
@@ -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?"
 | 
			
		||||
 | 
			
		||||
@@ -128,7 +136,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,6 +147,7 @@ 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 (отключать только при наличии микрофризов в игре)'
 | 
			
		||||
@@ -263,6 +271,7 @@ 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="Внимание! Не передавайте резевную копию третьим лицам, есть риск потери аккаунтов"
 | 
			
		||||
@@ -352,7 +361,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."
 | 
			
		||||
@@ -409,6 +418,18 @@ 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_warn_cyrillic_in_path="Путь до исполняемого файла содержит кириллические символы.\nИногда это может привести к неработоспособности приложения."
 | 
			
		||||
 | 
			
		||||
elif [[ "${update_loc}" == "ENG" ]] ; then
 | 
			
		||||
 | 
			
		||||
	export loc_gui_pw_reinstall_pp="REINSTALL ${portname}"
 | 
			
		||||
@@ -450,7 +471,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?"
 | 
			
		||||
 | 
			
		||||
@@ -518,7 +540,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,6 +551,7 @@ 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)'
 | 
			
		||||
@@ -652,6 +674,7 @@ 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"
 | 
			
		||||
@@ -741,7 +764,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 +822,15 @@ 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_warn_cyrillic_in_path="The path to the executable file contains Cyrillic characters.\nSometimes this can cause the application to malfunction."
 | 
			
		||||
 | 
			
		||||
fi
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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_9-0"
 | 
			
		||||
export PW_PREFIX_NAME="CALIBER"
 | 
			
		||||
export DISABLE_CP_DEFPFX=1
 | 
			
		||||
@@ -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 LANG=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 ()
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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"
 | 
			
		||||
@@ -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,7 +12,6 @@ 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=""
 | 
			
		||||
 
 | 
			
		||||
@@ -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}"
 | 
			
		||||
 
 | 
			
		||||
@@ -5,7 +5,7 @@
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Battle.net-Setup-${BN_LOC}.exe"
 | 
			
		||||
 | 
			
		||||
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"
 | 
			
		||||
 
 | 
			
		||||
@@ -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_9-0
 | 
			
		||||
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
 | 
			
		||||
 
 | 
			
		||||
@@ -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}"
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
########################################################################
 | 
			
		||||
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}"
 | 
			
		||||
if try_download_no_mirror "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"
 | 
			
		||||
 
 | 
			
		||||
@@ -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,11 +4,12 @@
 | 
			
		||||
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} "
 | 
			
		||||
    # try_remove_dir "${WINEPREFIX}/drive_c/Program Files (x86)/Epic Games/Epic Online Services/"
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
########################################################################
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/ePSXe205.zip"
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_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
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
export LAUNCH_PARAMETERS=("/s" "/nr" "/l=Russian")
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/MWO_Launcher_Setup.exe"
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "http://mwogame.com/download.php" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "http://mwogame.com/download.php" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} Metal War Online. ${loc_gui_please_wait} "
 | 
			
		||||
    pw_run "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
export LAUNCH_PARAMETERS=("/silent" "/NoLaunch" )
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/OriginSetup.exe"
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://origin-a.akamaihd.net/Origin-Client-Download/origin/live/OriginThinSetup.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://origin-a.akamaihd.net/Origin-Client-Download/origin/live/OriginThinSetup.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} Origin. ${loc_gui_please_wait}"
 | 
			
		||||
    # pw_kill_autostart Origin.exe &
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@ start_portwine
 | 
			
		||||
mkdir -p "${WINEPREFIX}/drive_c/Program Files (x86)/OSU/"
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${WINEPREFIX}/drive_c/Program Files (x86)/OSU/osu!.exe"
 | 
			
		||||
 | 
			
		||||
if try_download_game "https://m1.ppy.sh/r/osu!install.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://m1.ppy.sh/r/osu!install.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} OSU!. ${loc_gui_please_wait} "
 | 
			
		||||
    if  [ -f "${PORT_WINE_PATH}/data/pfx_dotnet/drive_c/Program Files (x86)/OSU/osu!install.exe" ]; then
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@ export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Panzar.exe"
 | 
			
		||||
export PORTWINE_CREATE_SHORTCUT_NAME="Panzar"
 | 
			
		||||
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://www.panzar.ru/ru/download/installer/" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://www.panzar.ru/ru/download/installer/" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} Panzar. ${loc_gui_please_wait} "
 | 
			
		||||
    pw_kill_autostart start.exe 3 &
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@ export PW_PREFIX_NAME="DOTNET"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://plarium.com/services/api/downloads/desktop?lid=1&arc=64&os=windows" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://plarium.com/services/api/downloads/desktop?lid=1&arc=64&os=windows" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} Plarium Play. ${loc_gui_please_wait}"
 | 
			
		||||
    pw_kill_autostart PlariumPlay.exe &
 | 
			
		||||
 
 | 
			
		||||
@@ -5,7 +5,7 @@ export LAUNCH_PARAMETERS=("/S")
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/PathOfExileInstaller.exe"
 | 
			
		||||
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://web.poecdn.com/protected/downloads/PathOfExileInstaller.exe?key=lpKVe-ZJOqVrur8612s8gg" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://web.poecdn.com/protected/downloads/PathOfExileInstaller.exe?key=lpKVe-ZJOqVrur8612s8gg" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} Path of Exile. ${loc_gui_please_wait}"
 | 
			
		||||
    pw_run "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
export LAUNCH_PARAMETERS=("/VERYSILENT")
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/PPSSPPSetup.exe"
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://ppsspp.org/files/1_16_5/PPSSPPSetup.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://ppsspp.org/files/1_16_5/PPSSPPSetup.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} PPSSPPS. ${loc_gui_please_wait} "
 | 
			
		||||
    pw_run "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,21 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
# Author: chal55rus (Sergey P.)
 | 
			
		||||
########################################################################
 | 
			
		||||
PR64_VER="$(curl https://www.pj64-emu.com/public-releases | grep 'installer' | head -n 1 \
 | 
			
		||||
| awk -F'/project64' '{print $2}' \
 | 
			
		||||
| awk -F'installer"' '{print $1}')"
 | 
			
		||||
[[ "${PR64_VER}" != *-3-* ]] && yad_error "ERROR: Get the Project64 version." && exit 1
 | 
			
		||||
 | 
			
		||||
export LAUNCH_PARAMETERS=("/VERYSILENT")
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Setup Project64 3.0.1-5664-2df3434.exe"
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Project64${PR64_VER}setup.exe"
 | 
			
		||||
export PORTWINE_CREATE_SHORTCUT_NAME="Project64"
 | 
			
		||||
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://pj64-emu.com/file/setup-project64-3-0-0-5632-f83bee9/" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://www.pj64-emu.com/download/project64${PR64_VER}installer" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    GET_URL_POSTFIX="$(cat "${PW_AUTOINSTALL_EXE}" | grep "Did your download not start?" | awk -F"$PR64_VER" '{print $2}' | awk -F'/' '{print $1}')"
 | 
			
		||||
    try_remove_file "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
    try_download_no_mirror "https://www.pj64-emu.com/file/setup-project64${PR64_VER}${GET_URL_POSTFIX}/" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} Project64. ${loc_gui_please_wait} "
 | 
			
		||||
    pw_run "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
    portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Project64 3.0/Project64.exe"
 | 
			
		||||
@@ -13,7 +23,6 @@ then
 | 
			
		||||
    try_remove_file "${portwine_exe}.ppdb"
 | 
			
		||||
    kill_portwine
 | 
			
		||||
    pw_stop_progress_bar
 | 
			
		||||
    export PORTWINE_CREATE_SHORTCUT_NAME="Project64"
 | 
			
		||||
    portwine_create_shortcut
 | 
			
		||||
fi
 | 
			
		||||
stop_portwine
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
########################################################################
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/RetroArch.7z"
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://buildbot.libretro.com/stable/1.16.0/windows/x86_64/RetroArch.7z" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://buildbot.libretro.com/stable/1.16.0/windows/x86_64/RetroArch.7z" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} RetroArch. ${loc_gui_please_wait} "
 | 
			
		||||
    "$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)"
 | 
			
		||||
 
 | 
			
		||||
@@ -7,16 +7,16 @@ export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/roblox_installer.exe"
 | 
			
		||||
export WINEDLLOVERRIDES="mscoree,mshtml="
 | 
			
		||||
# export DISABLE_CP_DEFPFX=1
 | 
			
		||||
export PW_MUST_HAVE_DLL=""
 | 
			
		||||
 | 
			
		||||
export PORTWINE_CREATE_SHORTCUT_NAME="RobloxPlayerBeta"
 | 
			
		||||
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://setup.rbxcdn.com/RobloxPlayerLauncher.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://setup.rbxcdn.com/RobloxPlayerLauncher.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_kill_autostart MicrosoftEdge &
 | 
			
		||||
    pw_run "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
    portwine_exe="$(find "$WINEPREFIX/drive_c/Program Files (x86)/Roblox/" -type f -name "RobloxPlayerBeta.exe" | head -n 1)"
 | 
			
		||||
    try_remove_file "${portwine_exe}.ppdb"
 | 
			
		||||
    pw_stop_progress_bar
 | 
			
		||||
    export PORTWINE_CREATE_SHORTCUT_NAME="RobloxPlayerBeta"
 | 
			
		||||
    portwine_create_shortcut
 | 
			
		||||
fi
 | 
			
		||||
stop_portwine
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@ export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Rockstar-Games-Launcher.exe"
 | 
			
		||||
export PORTWINE_CREATE_SHORTCUT_NAME="Rockstar"
 | 
			
		||||
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://gamedownloads.rockstargames.com/public/installer/Rockstar-Games-Launcher.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://gamedownloads.rockstargames.com/public/installer/Rockstar-Games-Launcher.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "Rockstar-Games-Launcher. ${loc_gui_please_wait} "
 | 
			
		||||
    try_remove_dir "$WINEPREFIX/drive_c/Program Files/Rockstar Games/Launcher"
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
########################################################################
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/rpcs3-v0.0.29-15676-9fce7080_win64.7z"
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://github.com/RPCS3/rpcs3-binaries-win/releases/download/build-9fce70809ee06a7e61a3dbe5bb9b0179fc541d9f/rpcs3-v0.0.29-15676-9fce7080_win64.7z" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://github.com/RPCS3/rpcs3-binaries-win/releases/download/build-9fce70809ee06a7e61a3dbe5bb9b0179fc541d9f/rpcs3-v0.0.29-15676-9fce7080_win64.7z" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} RPCS3. ${loc_gui_please_wait} "
 | 
			
		||||
    "$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)/RPCS3"
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
export LAUNCH_PARAMETERS=("/VERYSILENT")
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/scummvm-2.7.1-win32.exe"
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://downloads.scummvm.org/frs/scummvm/2.7.1/scummvm-2.7.1-win32.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://downloads.scummvm.org/frs/scummvm/2.7.1/scummvm-2.7.1-win32.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} ScummVM. ${loc_gui_please_wait} "
 | 
			
		||||
    #pw_kill_autostart launcher101xp.exe &
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
export LAUNCH_PARAMETERS=("/S")
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/SO_installer.exe"
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://update-nl-release.stalker.so/launcher/SO_installer.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://update-nl-release.stalker.so/launcher/SO_installer.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} Stalker Online. ${loc_gui_please_wait} "
 | 
			
		||||
    pw_run "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ export PW_PREFIX_NAME=DOTNET
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://exbo2.b-cdn.net/EXBO_Setup_ru.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://exbo2.b-cdn.net/EXBO_Setup_ru.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "Installing STALCRAFT Launcher. ${loc_gui_please_wait} "
 | 
			
		||||
    pw_kill_autostart ExboLauncher &
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ export PW_USE_D3D_EXTRAS=1
 | 
			
		||||
 | 
			
		||||
start_portwine
 | 
			
		||||
 | 
			
		||||
if try_download_game "https://sg-public-api.hoyoverse.com/event/download_porter/link/hkrpg_global/oswebpc/default" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://sg-public-api.hoyoverse.com/event/download_porter/link/hkrpg_global/oswebpc/default" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "Installing Honkai Star Rail Launcher. ${loc_gui_please_wait} "
 | 
			
		||||
    pw_kill_autostart launcher.exe &
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
export LAUNCH_PARAMETERS=("/S" "/D=c:\Program Files (x86)\Steam")
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/SteamSetup.exe"
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://cdn.cloudflare.steamstatic.com/client/installer/SteamSetup.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://cdn.cloudflare.steamstatic.com/client/installer/SteamSetup.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_cs "${loc_gui_installing_the} Steam. ${loc_gui_please_wait} "
 | 
			
		||||
    pw_kill_autostart steam.exe &
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@ export LAUNCH_PARAMETERS=("/VERYSILENT")
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/SecretWorldLegendsMin.exe"
 | 
			
		||||
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://web-cdn.funcom.com/downloads/swl/SecretWorldLegendsMin.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://web-cdn.funcom.com/downloads/swl/SecretWorldLegendsMin.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} Secret World Legends. ${loc_gui_please_wait} "
 | 
			
		||||
    pw_kill_autostart ClientPatcher.exe &
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
export LAUNCH_PARAMETERS=("/S" "/D=c:\Program Files (x86)\Ubisoft Game Launcher")
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/UbisoftConnectInstaller.exe"
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://ubistatic3-a.akamaihd.net/orbit/launcher_installer/UbisoftConnectInstaller.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://ubistatic3-a.akamaihd.net/orbit/launcher_installer/UbisoftConnectInstaller.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_cs "${loc_gui_installing_the} Ubisoft Connect. ${loc_gui_please_wait} "
 | 
			
		||||
    pw_kill_autostart UbisoftConnect.exe &
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
########################################################################
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/visualboyadvance-m-Win-x86_64.zip"
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://github.com/visualboyadvance-m/visualboyadvance-m/releases/latest/download/visualboyadvance-m-Win-x86_64.zip" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://github.com/visualboyadvance-m/visualboyadvance-m/releases/latest/download/visualboyadvance-m-Win-x86_64.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)/Visualboyadvance-m"
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@ export WINEDLLOVERRIDES="mscoree,mshtml="
 | 
			
		||||
export PW_MUST_HAVE_DLL=""
 | 
			
		||||
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://static.gc.my.games/VKPlayLoader.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://static.gc.my.games/VKPlayLoader.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    portwine_exe="$WINEPREFIX/drive_c/users/steamuser/AppData/Local/VKPlayLoader.exe"
 | 
			
		||||
    try_remove_file "${portwine_exe}.ppdb"
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@ export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Warframe.msi"
 | 
			
		||||
export PORTWINE_CREATE_SHORTCUT_NAME="Warframe"
 | 
			
		||||
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "http://content.warframe.com/dl/Warframe.msi" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "http://content.warframe.com/dl/Warframe.msi" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} Warframe. ${loc_gui_please_wait} "
 | 
			
		||||
    pw_kill_autostart Launcher.exe 3 &
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@ export PW_PREFIX_NAME="WGC"
 | 
			
		||||
 | 
			
		||||
start_portwine
 | 
			
		||||
 | 
			
		||||
if try_download_game "https://redirect.wargaming.net/WGC/Wargaming_Game_Center_Install_WoT_${WGC_LOC}.exe"  "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://redirect.wargaming.net/WGC/Wargaming_Game_Center_Install_WoT_${WGC_LOC}.exe"  "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "Starting WGC installation..."
 | 
			
		||||
    pw_kill_autostart wgc.exe &
 | 
			
		||||
 
 | 
			
		||||
@@ -8,10 +8,10 @@ export PW_DLL_INSTALL="faudio dotnet48"
 | 
			
		||||
export PW_VULKAN_USE=1
 | 
			
		||||
 | 
			
		||||
WOSB_VERSION="$(curl -s --list-only --connect-timeout 3 https://www.worldofseabattle.com/download2 2>/dev/null | grep 'installer.exe' | awk -F'xsolla-launcher-update/' '{print $2}' | awk -F'/' '{print $1}')"
 | 
			
		||||
[[ ! -z "$WOSB_VERSION" ]] && print_info "Found version: $WOSB_VERSION" || zenity_error "Error while get version of WOSB INSTALLER."
 | 
			
		||||
[[ ! -z "$WOSB_VERSION" ]] && print_info "Found version: $WOSB_VERSION" || yad_error "Error while get version of WOSB INSTALLER."
 | 
			
		||||
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://installer.launcher.xsolla.com/xlauncher-builds/xsolla-launcher-update/${WOSB_VERSION}/bin/installer.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://installer.launcher.xsolla.com/xlauncher-builds/xsolla-launcher-update/${WOSB_VERSION}/bin/installer.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "Installing World of Sea Battle. ${loc_gui_please_wait} "
 | 
			
		||||
    pw_run "${PW_AUTOINSTALL_EXE}" 
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
########################################################################
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/xemu-win-release.zip"
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://github.com/xemu-project/xemu/releases/latest/download/xemu-win-release.zip" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://github.com/xemu-project/xemu/releases/latest/download/xemu-win-release.zip" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} xemu. ${loc_gui_please_wait} "
 | 
			
		||||
    "$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)/xemu"
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
########################################################################
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/xenia_master.zip"
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://github.com/xenia-project/release-builds-windows/releases/latest/download/xenia_master.zip" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://github.com/xenia-project/release-builds-windows/releases/latest/download/xenia_master.zip" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} Xenia. ${loc_gui_please_wait} "
 | 
			
		||||
    "$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)/xenia"
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
export LAUNCH_PARAMETERS=("/S")
 | 
			
		||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/yabause-0.9.15-win64.exe"
 | 
			
		||||
start_portwine
 | 
			
		||||
if try_download_game "https://download.tuxfamily.org/yabause/releases/0.9.15/yabause-0.9.15-win64.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
if try_download_no_mirror "https://download.tuxfamily.org/yabause/releases/0.9.15/yabause-0.9.15-win64.exe" "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
then
 | 
			
		||||
    pw_start_progress_bar_block "${loc_gui_installing_the} Yabause. ${loc_gui_please_wait} "
 | 
			
		||||
    pw_run "${PW_AUTOINSTALL_EXE}"
 | 
			
		||||
 
 | 
			
		||||
@@ -16,20 +16,16 @@ echo '
 | 
			
		||||
'
 | 
			
		||||
if [[ $(id -u) = 0 ]] ; then
 | 
			
		||||
    echo "Do not run this script as root!"
 | 
			
		||||
    zenity --error --text "Do not run this script as root!"
 | 
			
		||||
    exit 1
 | 
			
		||||
fi
 | 
			
		||||
if [[ "${s_install}" != "1" && ! -x "`command -v "zenity" 2>/dev/null`" ]] ; then
 | 
			
		||||
    echo "You will need to install: zenity, and restart the port."
 | 
			
		||||
    xdg-open "https://linux-gaming.ru/portproton/" > /dev/null 2>&1 & exit 0
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
. "$(dirname $(readlink -f "$0"))/functions_helper"
 | 
			
		||||
 | 
			
		||||
start_portwine () {
 | 
			
		||||
    var_winedlloverride_update "${PW_MUST_WINEDLLOVERRIDES}"
 | 
			
		||||
    export WINEPREFIX="$(readlink -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}")"
 | 
			
		||||
    if [[ "$WINEPREFIX" != "${PORT_WINE_PATH}/data/prefixes/"* ]] && [[ ! -d "$WINEPREFIX" ]] ; then
 | 
			
		||||
        zenity_error "Path to PREFIX not found:\n$WINEPREFIX"
 | 
			
		||||
        yad_error "Path to PREFIX not found:\n$WINEPREFIX"
 | 
			
		||||
        exit 1
 | 
			
		||||
    fi
 | 
			
		||||
    create_new_dir "${WINEPREFIX}/drive_c/windows/system32/"
 | 
			
		||||
@@ -59,9 +55,9 @@ start_portwine () {
 | 
			
		||||
    pw_install_dll_in_prefix 
 | 
			
		||||
    init_wine_ver
 | 
			
		||||
 | 
			
		||||
    if [ ! -f "${HOME}/.Xresources" ]; then
 | 
			
		||||
        cp -f "${PORT_SCRIPTS_PATH}/.Xresources" "${HOME}"
 | 
			
		||||
        xrdb -merge "${HOME}/.Xresources"
 | 
			
		||||
    if [[ -f "$portwine_exe" ]] && [[ "${WARN_CYRILLIC_IN_PATH}" == 1 ]] ; then
 | 
			
		||||
        edit_db_from_gui WARN_CYRILLIC_IN_PATH
 | 
			
		||||
        unset WARN_CYRILLIC_IN_PATH
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if [[ "$PW_USE_OBS_VKCAPTURE" == "1" ]] ; then
 | 
			
		||||
@@ -119,10 +115,10 @@ start_portwine () {
 | 
			
		||||
        var_vkd3d_config_update single_queue
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if [[ "${PW_USE_GAMESCOPE}" == 1 ]] && command -v gamescope &>/dev/null ; then
 | 
			
		||||
    if [[ "${PW_USE_GAMESCOPE}" == 1 ]] && command -v gamescope &>/dev/null && ! check_gamescope_session ; then
 | 
			
		||||
        # Workaround for https://gitlab.freedesktop.org/mesa/mesa/-/issues/6029
 | 
			
		||||
        if [[ -d "/sys/module/i915" ]] ; then
 | 
			
		||||
            export INTEL_DEBUG=norbc
 | 
			
		||||
            export INTEL_DEBUG="norbc"
 | 
			
		||||
        fi
 | 
			
		||||
        if [[ "${PW_GPU_USE}" != "disabled" ]] ; then
 | 
			
		||||
            PW_vendorID="$("$PW_VULKANINFO_PORTABLE" 2>/dev/null | grep -B3 "${PW_GPU_USE}" | grep vendorID | sort -u | awk -F'0x' '{print $2}')"
 | 
			
		||||
@@ -132,21 +128,41 @@ start_portwine () {
 | 
			
		||||
            unset PW_ID_VIDEO
 | 
			
		||||
        fi
 | 
			
		||||
        export PW_RUN_GAMESCOPE="gamescope -o 30 ${PW_ID_VIDEO} ${GAMESCOPE_ARGS} --"
 | 
			
		||||
        export PW_WINE_FULLSCREEN_FSR=0
 | 
			
		||||
        export vk_xwayland_wait_ready=false
 | 
			
		||||
        export PW_WINE_FULLSCREEN_FSR="0"
 | 
			
		||||
        export vk_xwayland_wait_ready="false"
 | 
			
		||||
    else
 | 
			
		||||
        export PW_USE_GAMESCOPE=0
 | 
			
		||||
        unset PW_RUN_GAMESCOPE INTEL_DEBUG vk_xwayland_wait_ready
 | 
			
		||||
        export PW_USE_GAMESCOPE="0"
 | 
			
		||||
        export PW_RUN_GAMESCOPE=""
 | 
			
		||||
    fi
 | 
			
		||||
    
 | 
			
		||||
    enabled_fake_nvidia_videocard () 
 | 
			
		||||
    {
 | 
			
		||||
        if [[ "${1}" == 1 ]] ; then
 | 
			
		||||
        if [[ "${1}" == old ]] ; then
 | 
			
		||||
            sed -i /'dxgi.customDeviceDesc =/c # dxgi.customDeviceDesc =' "${DXVK_CONFIG_FILE}"
 | 
			
		||||
            sed -i /'dxgi.customDeviceId =/c dxgi.customDeviceId = 222F' "${DXVK_CONFIG_FILE}"
 | 
			
		||||
            sed -i /'dxgi.customVendorId =/c dxgi.customVendorId = 10de' "${DXVK_CONFIG_FILE}"
 | 
			
		||||
            sed -i /'dxgi.hideAmdGpu =/c # dxgi.hideAmdGpu =' "${DXVK_CONFIG_FILE}"
 | 
			
		||||
            sed -i /'dxgi.hideNvidiaGpu =/c # dxgi.hideNvidiaGpu =' "${DXVK_CONFIG_FILE}"
 | 
			
		||||
            unset WINE_HIDE_NVIDIA_GPU WINE_HIDE_AMD_GPU 
 | 
			
		||||
            unset DXVK_NVAPI_DRIVER_VERSION DXVK_NVAPI_ALLOW_OTHER_DRIVERS
 | 
			
		||||
        elif [[ "${1}" == new ]] ; then
 | 
			
		||||
            sed -i /'dxgi.customDeviceDesc =/c dxgi.customDeviceDesc = "NVIDIA GeForce RTX 4090"' "${DXVK_CONFIG_FILE}"
 | 
			
		||||
            sed -i /'dxgi.customDeviceId =/c dxgi.customDeviceId = 2684' "${DXVK_CONFIG_FILE}"
 | 
			
		||||
            sed -i /'dxgi.customVendorId =/c dxgi.customVendorId = 10de' "${DXVK_CONFIG_FILE}"
 | 
			
		||||
            sed -i /'dxgi.hideAmdGpu =/c dxgi.hideAmdGpu = True' "${DXVK_CONFIG_FILE}"
 | 
			
		||||
            sed -i /'dxgi.hideNvidiaGpu =/c dxgi.hideNvidiaGpu = False' "${DXVK_CONFIG_FILE}"
 | 
			
		||||
            export WINE_HIDE_NVIDIA_GPU=0
 | 
			
		||||
            export WINE_HIDE_AMD_GPU=1
 | 
			
		||||
            export DXVK_NVAPI_DRIVER_VERSION=53713
 | 
			
		||||
            export DXVK_NVAPI_ALLOW_OTHER_DRIVERS=1
 | 
			
		||||
        elif [[ "${1}" == 0 ]] ; then
 | 
			
		||||
            sed -i /'dxgi.customDeviceId =/c # dxgi.customDeviceId = 222F' "${DXVK_CONFIG_FILE}"
 | 
			
		||||
            sed -i /'dxgi.customVendorId =/c # dxgi.customVendorId = 10de' "${DXVK_CONFIG_FILE}"
 | 
			
		||||
            sed -i /'dxgi.customDeviceDesc =/c # dxgi.customDeviceDesc =' "${DXVK_CONFIG_FILE}"
 | 
			
		||||
            sed -i /'dxgi.customDeviceId =/c # dxgi.customDeviceId =' "${DXVK_CONFIG_FILE}"
 | 
			
		||||
            sed -i /'dxgi.customVendorId =/c # dxgi.customVendorId =' "${DXVK_CONFIG_FILE}"
 | 
			
		||||
            sed -i /'dxgi.hideAmdGpu =/c # dxgi.hideAmdGpu =' "${DXVK_CONFIG_FILE}"
 | 
			
		||||
            sed -i /'dxgi.hideNvidiaGpu =/c # dxgi.hideNvidiaGpu =' "${DXVK_CONFIG_FILE}"
 | 
			
		||||
            unset WINE_HIDE_NVIDIA_GPU WINE_HIDE_AMD_GPU 
 | 
			
		||||
            unset DXVK_NVAPI_DRIVER_VERSION DXVK_NVAPI_ALLOW_OTHER_DRIVERS
 | 
			
		||||
        fi
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -155,27 +171,38 @@ start_portwine () {
 | 
			
		||||
        try_remove_file "${WINEPREFIX}/drive_c/windows/system32/$rm_dll"
 | 
			
		||||
    done
 | 
			
		||||
 | 
			
		||||
    if [[ "${PW_USE_FAKE_DLSS}" == 1 ]] && [[ -d "${PW_PLUGINS_PATH}/fake_dlss/${PW_FAKE_DLSS_VER}/" ]] ; then
 | 
			
		||||
    # TODO: LFX (wait new LFX v2)
 | 
			
		||||
    # if [[ "${PW_USE_LFX}" == 1 ]] ; then
 | 
			
		||||
    #     try_force_link_file "${PW_PLUGINS_PATH}/lfx/${PW_LFX_VER}/latencyflex_layer.so" "${WINEDIR}/lib64/wine/x86_64-unix/"
 | 
			
		||||
    #     try_force_link_file "${PW_PLUGINS_PATH}/lfx/${PW_LFX_VER}/latencyflex_layer.dll" "${WINEPREFIX}/drive_c/windows/system32/"
 | 
			
		||||
    #     try_force_link_file "${PW_PLUGINS_PATH}/lfx/${PW_LFX_VER}/latencyflex_wine.dll" "${WINEPREFIX}/drive_c/windows/system32/"
 | 
			
		||||
    #     enabled_fake_nvidia_videocard 1
 | 
			
		||||
    #     export LFX2=1
 | 
			
		||||
    # fi
 | 
			
		||||
 | 
			
		||||
    export DXVK_ENABLE_NVAPI=1
 | 
			
		||||
    if [[ "${PW_USE_FAKE_DLSS_3}" == 1 ]] ; then
 | 
			
		||||
        try_force_link_file "${PW_PLUGINS_PATH}/fake_dlss_3/${PW_FAKE_DLSS_3_VER}/nvngx.dll" "${WINEPREFIX}/drive_c/windows/system32/" 
 | 
			
		||||
        try_force_link_file "${PW_PLUGINS_PATH}/fake_dlss/${PW_FAKE_DLSS_3_VER}/dlssg_to_fsr3_amd_is_better.dll" "${WINEPREFIX}/drive_c/windows/system32/"
 | 
			
		||||
        try_force_link_file "${PW_PLUGINS_PATH}/nvngx/_nvngx.dll" "${WINEPREFIX}/drive_c/windows/system32/"
 | 
			
		||||
        var_winedlloverride_update "nvapi,nvapi64,nvngx,_nvngx,dlssg_to_fsr3_amd_is_better=n;nvcuda=b"
 | 
			
		||||
        enabled_fake_nvidia_videocard new
 | 
			
		||||
        export WINEHAGS=1
 | 
			
		||||
    elif [[ "${PW_USE_FAKE_DLSS}" == 1 ]] && [[ -d "${PW_PLUGINS_PATH}/fake_dlss/${PW_FAKE_DLSS_VER}/" ]] ; then
 | 
			
		||||
        try_force_link_file "${PW_PLUGINS_PATH}/fake_dlss/${PW_FAKE_DLSS_VER}/nvngx.dll" "${WINEPREFIX}/drive_c/windows/system32/" 
 | 
			
		||||
        try_force_link_file "${PW_PLUGINS_PATH}/fake_dlss/${PW_FAKE_DLSS_VER}/nvngx.ini" "${WINEPREFIX}/drive_c/windows/system32/"
 | 
			
		||||
        enabled_fake_nvidia_videocard 1
 | 
			
		||||
        enabled_fake_nvidia_videocard old
 | 
			
		||||
        var_winedlloverride_update "nvapi,nvapi64,nvngx=n;_nvngx=;nvcuda=b"
 | 
			
		||||
        export DXVK_ENABLE_NVAPI=1
 | 
			
		||||
        export WINE_HIDE_NVIDIA_GPU=0
 | 
			
		||||
        # export DXVK_NVAPI_DRIVER_VERSION=
 | 
			
		||||
    elif [[ "${PW_USE_NVAPI_AND_DLSS}" == 1 ]] ; then
 | 
			
		||||
        FIND_NVNGX="$(dirname $(find /usr/* -type f -name "nvngx.dll" 2>/dev/null | head -n 1 | awk '{print $1}'))"
 | 
			
		||||
        if [[ ! -z "$FIND_NVNGX" ]] ; then
 | 
			
		||||
            try_copy_file "${FIND_NVNGX}/nvngx.dll" "${WINEPREFIX}/drive_c/windows/system32/"
 | 
			
		||||
            try_copy_file "${FIND_NVNGX}/_nvngx.dll" "${WINEPREFIX}/drive_c/windows/system32/"
 | 
			
		||||
        else
 | 
			
		||||
            try_copy_file "${PW_PLUGINS_PATH}/nvngx/nvngx.dll" "${WINEPREFIX}/drive_c/windows/system32/"
 | 
			
		||||
            try_copy_file "${PW_PLUGINS_PATH}/nvngx/_nvngx.dll" "${WINEPREFIX}/drive_c/windows/system32/"
 | 
			
		||||
            try_force_link_file "${PW_PLUGINS_PATH}/nvngx/nvngx.dll" "${WINEPREFIX}/drive_c/windows/system32/"
 | 
			
		||||
            try_force_link_file "${PW_PLUGINS_PATH}/nvngx/_nvngx.dll" "${WINEPREFIX}/drive_c/windows/system32/"
 | 
			
		||||
        fi 
 | 
			
		||||
        enabled_fake_nvidia_videocard 0
 | 
			
		||||
        export DXVK_ENABLE_NVAPI=1
 | 
			
		||||
        export WINE_HIDE_NVIDIA_GPU=0
 | 
			
		||||
        # export DXVK_NVAPI_DRIVER_VERSION=
 | 
			
		||||
        var_winedlloverride_update "nvngx,_nvngx,nvapi,nvapi64=n;nvcuda=b"
 | 
			
		||||
    else
 | 
			
		||||
        enabled_fake_nvidia_videocard 0
 | 
			
		||||
@@ -203,17 +230,27 @@ start_portwine () {
 | 
			
		||||
    fi
 | 
			
		||||
    
 | 
			
		||||
    [[ "${PW_MANGOHUD_USER_CONF}" == 1 ]] && unset MANGOHUD_CONFIG
 | 
			
		||||
    [[ "${PW_VKBASALT_USER_CONF}" == 1 ]] && unset PW_VKBASALT_EFFECTS PW_VKBASALT_FFX_CAS
 | 
			
		||||
 | 
			
		||||
    if [[ "${PW_USE_DXR11}" == 1 ]] || [[ "${PW_USE_DXR10}" == 1 ]] || [[ "${PW_USE_RAY_TRACING}" == 1 ]]; then
 | 
			
		||||
        var_vkd3d_config_update dxr,dxr11
 | 
			
		||||
    if [[ "${PW_USE_DXR11}" == 1 ]] \
 | 
			
		||||
    || [[ "${PW_USE_DXR10}" == 1 ]] \
 | 
			
		||||
    || [[ "${PW_USE_RAY_TRACING}" == 1 ]]
 | 
			
		||||
    then
 | 
			
		||||
        export VKD3D_FEATURE_LEVEL="12_1"
 | 
			
		||||
        var_vkd3d_config_update dxr
 | 
			
		||||
        var_radv_perftest_config_update rt
 | 
			
		||||
        export WINE_HIDE_NVIDIA_GPU=0
 | 
			
		||||
        export DXVK_ENABLE_NVAPI=1
 | 
			
		||||
    else
 | 
			
		||||
        var_vkd3d_config_update nodxr
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if [[ "${PW_GPU_USE}" != "disabled" ]] ; then
 | 
			
		||||
        export DXVK_FILTER_DEVICE_NAME="${PW_GPU_USE}"
 | 
			
		||||
        export VKD3D_FILTER_DEVICE_NAME="${PW_GPU_USE}"
 | 
			
		||||
        if echo "${PW_GPU_USE}" | grep -i nvidia &>/dev/null ; then
 | 
			
		||||
            if [[ -f "/usr/share/vulkan/icd.d/nvidia_icd.json" ]] ; then
 | 
			
		||||
                export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/nvidia_icd.json"
 | 
			
		||||
            fi
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    # if [[ "${PW_AMD_VULKAN_USE}" == "amdvlk" ]] ; then
 | 
			
		||||
@@ -247,25 +284,49 @@ start_portwine () {
 | 
			
		||||
    # fi
 | 
			
		||||
 | 
			
		||||
    case "$PW_FORCE_USE_VSYNC" in  # 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
 | 
			
		||||
        "0")
 | 
			
		||||
            unset vblank_mode
 | 
			
		||||
            unset __GL_SYNC_TO_VBLANK ;;
 | 
			
		||||
        "1")
 | 
			
		||||
        0)
 | 
			
		||||
            export  vblank_mode=0
 | 
			
		||||
            export __GL_SYNC_TO_VBLANK=0
 | 
			
		||||
            ;;
 | 
			
		||||
        1)
 | 
			
		||||
            export vblank_mode=1
 | 
			
		||||
            export __GL_SYNC_TO_VBLANK=1 ;;
 | 
			
		||||
            export __GL_SYNC_TO_VBLANK=1
 | 
			
		||||
            ;;
 | 
			
		||||
        *)
 | 
			
		||||
            unset vblank_mode __GL_SYNC_TO_VBLANK
 | 
			
		||||
            ;;
 | 
			
		||||
    esac
 | 
			
		||||
    export int_xneur=0
 | 
			
		||||
    if [[ ! -z "`pgrep xneur`" ]]; then
 | 
			
		||||
        killall xneur
 | 
			
		||||
        export int_xneur=1
 | 
			
		||||
    fi
 | 
			
		||||
    if [[ -x "`command -v "gamemoderun" 2>/dev/null`" ]] && [[ "$PW_USE_GAMEMODE" = "1" ]] ; then
 | 
			
		||||
        export GAMEMODERUN=1
 | 
			
		||||
        PW_GAMEMODERUN_SLR="gamemoderun"
 | 
			
		||||
        systemctl enable --now --user gamemoded &>/dev/null
 | 
			
		||||
        print_info "Gamemod will be launched."
 | 
			
		||||
    if [[ "$PW_USE_GAMEMODE" = "1" ]] ; then
 | 
			
		||||
 | 
			
		||||
        if command -v gamemoded ; then
 | 
			
		||||
            export GAMEMODERUN=1
 | 
			
		||||
            PW_GAMEMODERUN_SLR="gamemoderun"
 | 
			
		||||
            systemctl enable --now --user gamemoded &>/dev/null
 | 
			
		||||
            print_info "Gamemod will be launched."
 | 
			
		||||
        else
 | 
			
		||||
            export GAMEMODERUN=1
 | 
			
		||||
            if ! pidof gamemoded &>/dev/null ; then
 | 
			
		||||
                GAMEMODEAUTO_NAME="libgamemodeauto.so.0"
 | 
			
		||||
                if [[ ! -z "${PW_LD_PRELOAD}" ]]
 | 
			
		||||
                then export PW_LD_PRELOAD="${PW_LD_PRELOAD}:${GAMEMODEAUTO_NAME}"
 | 
			
		||||
                else export PW_LD_PRELOAD="${GAMEMODEAUTO_NAME}"
 | 
			
		||||
                fi
 | 
			
		||||
 | 
			
		||||
                env LD_LIBRARY_PATH="${PW_PLUGINS_PATH}/portable/lib/lib64:${PW_PLUGINS_PATH}/portable/lib/lib32" \
 | 
			
		||||
                "${PW_PLUGINS_PATH}/portable/bin/gamemoded" &>/dev/null &
 | 
			
		||||
 | 
			
		||||
                print_info "Gamemod will be launched."
 | 
			
		||||
                sleep 0.1
 | 
			
		||||
            fi
 | 
			
		||||
        fi
 | 
			
		||||
    else
 | 
			
		||||
        export GAMEMODERUN=0
 | 
			
		||||
        export PW_GAMEMODERUN_SLR=""
 | 
			
		||||
        print_info "Gamemod is not installed or disabled in vars script or db file: PW_USE_GAMEMODE=$PW_USE_GAMEMODE"
 | 
			
		||||
    fi
 | 
			
		||||
    pw_other_fixes
 | 
			
		||||
@@ -276,6 +337,9 @@ start_portwine () {
 | 
			
		||||
        create_new_dir "${WINEPREFIX}/dosdevices"
 | 
			
		||||
        create_new_dir "${WINEPREFIX}/drive_c/windows/syswow64/"
 | 
			
		||||
        create_new_dir "${WINEPREFIX}/drive_c/windows/system32/"
 | 
			
		||||
        create_new_dir "${WINEPREFIX}/drive_c/tmp/.private/$USER/"
 | 
			
		||||
        create_new_dir "${WINEPREFIX}/drive_c/tmp/.private/steamuser/"
 | 
			
		||||
 | 
			
		||||
        [ ! -d "${WINEPREFIX}/dosdevices/c:" ] && try_force_link_dir "${WINEPREFIX}/drive_c/" "${WINEPREFIX}/dosdevices/c:"
 | 
			
		||||
        [ ! -d "${WINEPREFIX}/dosdevices/z:" ] && try_force_link_dir "/" "${WINEPREFIX}/dosdevices/z:"
 | 
			
		||||
        [ ! -d "${WINEPREFIX}/dosdevices/h:" ] && try_force_link_dir "$HOME" "${WINEPREFIX}/dosdevices/h:"
 | 
			
		||||
@@ -283,7 +347,9 @@ start_portwine () {
 | 
			
		||||
        create_new_dir "${WINEPREFIX}/drive_c/windows/Fonts/"
 | 
			
		||||
        LN_FONTS="arialbd.ttf courbd.ttf georgia.ttf micross.ttf msyh.ttf simsun.ttc arial.ttf cour.ttf malgun.ttf msgothic.ttc nirmala.ttf times.ttf"
 | 
			
		||||
        for link_font in $LN_FONTS ; do
 | 
			
		||||
            try_force_link_file "${WINEDIR}/share/fonts/${link_font}" "${WINEPREFIX}/drive_c/windows/Fonts/${link_font}"
 | 
			
		||||
            if [[ ! -f "${WINEPREFIX}/drive_c/windows/Fonts/${link_font}" ]] ; then
 | 
			
		||||
                try_force_link_file "${WINEDIR}/share/fonts/${link_font}" "${WINEPREFIX}/drive_c/windows/Fonts/"
 | 
			
		||||
            fi
 | 
			
		||||
        done
 | 
			
		||||
 | 
			
		||||
        find "${WINEPREFIX}/dosdevices" -xtype l -maxdepth 1 2>/dev/null -exec rm {} \;
 | 
			
		||||
@@ -317,7 +383,7 @@ start_portwine () {
 | 
			
		||||
            try_remove_file "${PORT_WINE_PATH}/data/tmp/progpfx.tar.xz"
 | 
			
		||||
        else
 | 
			
		||||
            try_remove_file "${PORT_WINE_PATH}/data/tmp/progpfx.tar.xz"
 | 
			
		||||
            zenity_error_download && exit 1
 | 
			
		||||
            yad_error_download && exit 1
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
        
 | 
			
		||||
@@ -329,7 +395,7 @@ start_portwine () {
 | 
			
		||||
            try_remove_file "${PORT_WINE_PATH}/data/tmp/dotpfx.tar.xz"
 | 
			
		||||
        else
 | 
			
		||||
            try_remove_file "${PORT_WINE_PATH}/data/tmp/dotpfx.tar.xz"
 | 
			
		||||
            zenity_error_download && exit 1
 | 
			
		||||
            yad_error_download && exit 1
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
    
 | 
			
		||||
@@ -384,34 +450,26 @@ start_portwine () {
 | 
			
		||||
        unset PULSE_LATENCY_MSEC
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if [[ "${PW_RESTORE_RESOLUTION}" == "1" ]] && [[ "${XDG_SESSION_TYPE}" != "wayland" ]] && command -v xrandr &>/dev/null ; then
 | 
			
		||||
        xrandr | grep -oP 'current\s+\K[0-9]+ x [0-9]+' | tr -d ' ' > "${PORT_WINE_TMP_PATH}/tmp_screen_configuration"
 | 
			
		||||
        xrandr | grep " connected" | awk '{print $1}' >> "${PORT_WINE_TMP_PATH}/tmp_screen_configuration"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if [[ "$PW_USE_US_LAYOUT" == "1" ]] && [[ "${XDG_SESSION_TYPE}" != "wayland" ]] && command -v setxkbmap &>/dev/null ; then
 | 
			
		||||
        setxkbmap -model pc101 us -print | xkbcomp - $DISPLAY &>/dev/null
 | 
			
		||||
    else
 | 
			
		||||
        export PW_USE_US_LAYOUT="0"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    D3D_EXTRAS_LIBS="d3dcompiler_33 d3dcompiler_34 d3dcompiler_35 d3dcompiler_36 d3dcompiler_37
 | 
			
		||||
    d3dcompiler_38 d3dcompiler_39 d3dcompiler_40 d3dcompiler_41 d3dcompiler_42 d3dcompiler_43 d3dcompiler_46
 | 
			
		||||
    d3dcompiler_47 d3dx10_33 d3dx10_34 d3dx10_35 d3dx10_36 d3dx10_37 d3dx10_38 d3dx10_39 d3dx10_40 d3dx10_41
 | 
			
		||||
    d3dx10_42 d3dx10_43 d3dx10 d3dx11_42 d3dx11_43 d3dx9_24 d3dx9_25 d3dx9_26 d3dx9_27 d3dx9_28 d3dx9_29 d3dx9_30
 | 
			
		||||
    d3dx9_31 d3dx9_32 d3dx9_33 d3dx9_34 d3dx9_35 d3dx9_36 d3dx9_37 d3dx9_38 d3dx9_39 d3dx9_40 d3dx9_41 d3dx9_42 d3dx9_43"
 | 
			
		||||
    if [[ "${PW_USE_D3D_EXTRAS}" == 1 ]] ; then
 | 
			
		||||
        if [[ ! -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" ]] \
 | 
			
		||||
        || [[ -z "`grep d3dx9 "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log"`" ]]
 | 
			
		||||
        then
 | 
			
		||||
            echo "d3dx9" >> "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log"
 | 
			
		||||
        fi
 | 
			
		||||
        if  [[ -d "${PW_PLUGINS_PATH}/d3d_extras" ]]
 | 
			
		||||
        then PATH_TO_D3DEXTRAS="${PW_PLUGINS_PATH}/d3d_extras"
 | 
			
		||||
        else PATH_TO_D3DEXTRAS="${PW_WINELIB}/d3d_extras"
 | 
			
		||||
        fi
 | 
			
		||||
        #try link d3d extras libs
 | 
			
		||||
        for d3d_extras_from_plugins in d3dcompiler_33 d3dcompiler_34 d3dcompiler_35 d3dcompiler_36 d3dcompiler_37 \
 | 
			
		||||
        d3dcompiler_38 d3dcompiler_39 d3dcompiler_40 d3dcompiler_41 d3dcompiler_42 d3dcompiler_43 d3dcompiler_46 \
 | 
			
		||||
        d3dcompiler_47 d3dx10_33 d3dx10_34 d3dx10_35 d3dx10_36 d3dx10_37 d3dx10_38 d3dx10_39 d3dx10_40 d3dx10_41 \
 | 
			
		||||
        d3dx10_42 d3dx10_43 d3dx10 d3dx11_42 d3dx11_43 d3dx9_24 d3dx9_25 d3dx9_26 d3dx9_27 d3dx9_28 d3dx9_29 d3dx9_30 \
 | 
			
		||||
        d3dx9_31 d3dx9_32 d3dx9_33 d3dx9_34 d3dx9_35 d3dx9_36 d3dx9_37 d3dx9_38 d3dx9_39 d3dx9_40 d3dx9_41 d3dx9_42 d3dx9_43
 | 
			
		||||
        do
 | 
			
		||||
        PATH_TO_D3DEXTRAS="${PW_WINELIB}/d3d_extras"
 | 
			
		||||
        for d3d_extras_from_plugins in $D3D_EXTRAS_LIBS ; do
 | 
			
		||||
            try_force_link_file "${PATH_TO_D3DEXTRAS}/x64/${d3d_extras_from_plugins}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
 | 
			
		||||
            try_force_link_file "${PATH_TO_D3DEXTRAS}/x32/${d3d_extras_from_plugins}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
 | 
			
		||||
            var_winedlloverride_update "${d3d_extras_from_plugins}=n"
 | 
			
		||||
@@ -419,6 +477,11 @@ start_portwine () {
 | 
			
		||||
                echo "${d3d_extras_from_plugins}" >> "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log"
 | 
			
		||||
            fi
 | 
			
		||||
        done
 | 
			
		||||
    else
 | 
			
		||||
        for d3d_extras_from_plugins in $D3D_EXTRAS_LIBS ; do
 | 
			
		||||
            try_force_link_file "${WINEDIR}/lib/wine/i386-windows/${d3d_extras_from_plugins}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
 | 
			
		||||
            try_force_link_file "${WINEDIR}/lib64/wine/x86_64-windows/${d3d_extras_from_plugins}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
 | 
			
		||||
        done
 | 
			
		||||
    fi
 | 
			
		||||
    print_info "Try link wine d3d files by default..."
 | 
			
		||||
    for rm_vulkan_dll in libvkd3d-1 libvkd3d-shader-1 dxvk_config nvapi nvapi64 d3d12core d3d12 d3d11 d3d10 d3d10core d3d10_1 d3d9 d3d8 dxgi wined3d ; do
 | 
			
		||||
@@ -426,8 +489,8 @@ start_portwine () {
 | 
			
		||||
        try_remove_file "${WINEPREFIX}/drive_c/windows/syswow64/${rm_vulkan_dll}.dll"
 | 
			
		||||
    done
 | 
			
		||||
    for wine_build_dll in d3d12core d3d12 d3d11 d3d10 d3d10core d3d10_1 d3d9 d3d8 dxgi wined3d ; do
 | 
			
		||||
        try_force_link_file "${WINEDIR}/lib/wine/i386-windows/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_build_dll}.dll"
 | 
			
		||||
        try_force_link_file "${WINEDIR}/lib64/wine/x86_64-windows/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_build_dll}.dll"
 | 
			
		||||
        try_force_link_file "${WINEDIR}/lib/wine/i386-windows/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
 | 
			
		||||
        try_force_link_file "${WINEDIR}/lib64/wine/x86_64-windows/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
 | 
			
		||||
    done
 | 
			
		||||
 | 
			
		||||
    create_new_dir "${PW_VULKAN_DIR}/opengl"
 | 
			
		||||
@@ -447,9 +510,11 @@ start_portwine () {
 | 
			
		||||
        export  __GLX_VENDOR_LIBRARY_NAME=mesa
 | 
			
		||||
        export MESA_LOADER_DRIVER_OVERRIDE=zink
 | 
			
		||||
        export GALLIUM_DRIVER=zink
 | 
			
		||||
        if [[ "${XDG_SESSION_TYPE}" != "wayland" ]] || [[ "${PW_USE_GAMESCOPE}" != 1 ]] ; then
 | 
			
		||||
            export LIBGL_KOPPER_DRI2=1
 | 
			
		||||
        fi
 | 
			
		||||
    elif [[ "${PW_VULKAN_USE}" == "3" ]] ; then
 | 
			
		||||
        print_info "Use GALLIUM-NINE (Native DX9 on MESA drivers)"
 | 
			
		||||
        export PW_GALLIUM_NINE_VER="0.8"
 | 
			
		||||
        export PW_GALLIUM_NINE_PATH="${PW_PLUGINS_PATH}/gallium_nine_v.${PW_GALLIUM_NINE_VER}"
 | 
			
		||||
        try_force_link_file "${PW_GALLIUM_NINE_PATH}/lib32/d3d9-nine.dll.so" "${WINEPREFIX}/drive_c/windows/syswow64/d3d9.dll"
 | 
			
		||||
        try_force_link_file "${PW_GALLIUM_NINE_PATH}/lib64/d3d9-nine.dll.so" "${WINEPREFIX}/drive_c/windows/system32/d3d9.dll"
 | 
			
		||||
@@ -469,7 +534,7 @@ start_portwine () {
 | 
			
		||||
            print_info "D3D_MODULE_PATH=${D3D_MODULE_PATH}"
 | 
			
		||||
        else 
 | 
			
		||||
            pw_stop_progress_bar
 | 
			
		||||
            zenity_error "d3dadapter9.so.1.0.0 - ${loc_find_d3dadapter9_error}"
 | 
			
		||||
            yad_error "d3dadapter9.so.1.0.0 - ${loc_find_d3dadapter9_error}"
 | 
			
		||||
            stop_portwine
 | 
			
		||||
        fi
 | 
			
		||||
        export mesa_glthread=true
 | 
			
		||||
@@ -489,7 +554,7 @@ start_portwine () {
 | 
			
		||||
        else
 | 
			
		||||
            export CP_DXVK_FILES="d3d11 d3d10core d3d9 dxgi dxvk_config" # openvr_api_dxvk
 | 
			
		||||
        fi
 | 
			
		||||
        check_variables VKD3D_FEATURE_LEVEL "12_1"
 | 
			
		||||
        check_variables VKD3D_FEATURE_LEVEL "12_0"
 | 
			
		||||
        if [[ "${PW_VULKAN_USE}" == "1" ]] ; then
 | 
			
		||||
            PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_STABLE_VER}"
 | 
			
		||||
            PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_STABLE_VER}"
 | 
			
		||||
@@ -507,42 +572,39 @@ start_portwine () {
 | 
			
		||||
        print_info "Try link native DXVK files..."
 | 
			
		||||
        for wine_dxvk_dll in ${CP_DXVK_FILES} ; do
 | 
			
		||||
            if [[ -f "${PATH_TO_DXVK_FILES}/x64/${wine_dxvk_dll}.dll"  ]] ; then
 | 
			
		||||
                try_force_link_file "${PATH_TO_DXVK_FILES}/x32/${wine_dxvk_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_dxvk_dll}.dll"
 | 
			
		||||
                try_force_link_file "${PATH_TO_DXVK_FILES}/x64/${wine_dxvk_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_dxvk_dll}.dll"
 | 
			
		||||
                try_force_link_file "${PATH_TO_DXVK_FILES}/x32/${wine_dxvk_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
 | 
			
		||||
                try_force_link_file "${PATH_TO_DXVK_FILES}/x64/${wine_dxvk_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
 | 
			
		||||
                var_winedlloverride_update "${wine_dxvk_dll}=n"
 | 
			
		||||
            fi
 | 
			
		||||
        done
 | 
			
		||||
 | 
			
		||||
        try_force_link_file "${PATH_TO_DXVK_FILES}/x32/nvapi.dll" "${WINEPREFIX}/drive_c/windows/syswow64/" || \
 | 
			
		||||
        try_force_link_file "${WINEDIR}/lib/wine/nvapi/nvapi.dll" "${WINEPREFIX}/drive_c/windows/syswow64/" || \
 | 
			
		||||
        try_force_link_file "${PATH_TO_DXVK_FILES}/x32/nvapi.dll" "${WINEPREFIX}/drive_c/windows/syswow64/" || \
 | 
			
		||||
        try_force_link_file "${PW_PLUGINS_PATH}/nvapi/x32/nvapi.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
 | 
			
		||||
 | 
			
		||||
        try_force_link_file "${PATH_TO_DXVK_FILES}/x64/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/" || \
 | 
			
		||||
        try_force_link_file "${WINEDIR}/lib64/wine/nvapi/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/" || \
 | 
			
		||||
        try_force_link_file "${PATH_TO_DXVK_FILES}/x64/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/" || \
 | 
			
		||||
        try_force_link_file "${PW_PLUGINS_PATH}/nvapi/x64/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/" 
 | 
			
		||||
 | 
			
		||||
        print_info "Try link native VKD3D files..."
 | 
			
		||||
        for wine_vkd3d_dll in d3d12 d3d12core libvkd3d-1 libvkd3d-shader-1; do 
 | 
			
		||||
            if [[ -f "${PATH_TO_VKD3D_FILES}/x64/${wine_vkd3d_dll}.dll" ]] ; then
 | 
			
		||||
                try_force_link_file "${PATH_TO_VKD3D_FILES}/x86/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_vkd3d_dll}.dll"
 | 
			
		||||
                try_force_link_file "${PATH_TO_VKD3D_FILES}/x64/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/${wine_vkd3d_dll}.dll"
 | 
			
		||||
                try_force_link_file "${PATH_TO_VKD3D_FILES}/x86/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
 | 
			
		||||
                try_force_link_file "${PATH_TO_VKD3D_FILES}/x64/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
 | 
			
		||||
                var_winedlloverride_update "${wine_vkd3d_dll}=n"
 | 
			
		||||
            fi
 | 
			
		||||
        done
 | 
			
		||||
 | 
			
		||||
        print_info "Try link native D8VK file..."
 | 
			
		||||
        try_force_link_file "${PATH_TO_D8VK_FILES}/x32/d3d8.dll" "${WINEPREFIX}/drive_c/windows/syswow64/d3d8.dll"
 | 
			
		||||
        try_force_link_file "${PATH_TO_D8VK_FILES}/x32/d3d8.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
 | 
			
		||||
        try_force_link_file "${PATH_TO_D8VK_FILES}/x64/d3d8.dll" "${WINEPREFIX}/drive_c/windows/system32/"
 | 
			
		||||
        var_winedlloverride_update d3d8=n
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if [[ ! -d "${WINEPREFIX}/drive_c/vrclient/bin" ]] ; then
 | 
			
		||||
        create_new_dir "${WINEPREFIX}/drive_c/vrclient/bin"
 | 
			
		||||
        if ! try_force_link_file "${WINEDIR}"/lib/wine/fakedlls/vrclient.dll "${WINEPREFIX}/drive_c/vrclient/bin/vrclient.dll"
 | 
			
		||||
        then try_force_link_file "${WINEDIR}"/lib/wine/i386-windows/vrclient.dll "${WINEPREFIX}/drive_c/vrclient/bin/vrclient.dll"
 | 
			
		||||
        fi
 | 
			
		||||
        if ! try_force_link_file "${WINEDIR}"/lib64/wine/fakedlls/vrclient_x64.dll "${WINEPREFIX}/drive_c/vrclient/bin/vrclient_x64.dll"
 | 
			
		||||
        then try_force_link_file "${WINEDIR}"/lib64/wine/x86_64-windows/vrclient_x64.dll "${WINEPREFIX}/drive_c/vrclient/bin/vrclient_x64.dll"
 | 
			
		||||
        fi
 | 
			
		||||
        try_force_link_file "${WINEDIR}"/lib/wine/i386-windows/vrclient.dll "${WINEPREFIX}/drive_c/vrclient/bin/"
 | 
			
		||||
        try_force_link_file "${WINEDIR}"/lib64/wine/x86_64-windows/vrclient_x64.dll "${WINEPREFIX}/drive_c/vrclient/bin/"
 | 
			
		||||
    fi
 | 
			
		||||
 
 | 
			
		||||
    if [[ "${PW_USE_SHADER_CACHE}" == 1 ]] ; then
 | 
			
		||||
@@ -579,15 +641,13 @@ start_portwine () {
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    for try_cp_dll_from_wine in "ntdll.dll" "vulkan-1.dll" "winevulkan.dll" "amd_ags_x64.dll" "ir50_32.dll" ; do
 | 
			
		||||
        try_remove_file "${WINEPREFIX}/drive_c/windows/syswow64/${try_cp_dll_from_wine}"
 | 
			
		||||
        if try_copy_file "${WINEDIR}/lib/wine/i386-windows/${try_cp_dll_from_wine}" "${WINEPREFIX}/drive_c/windows/syswow64/${try_cp_dll_from_wine}" 
 | 
			
		||||
        then print_info "Try copy $try_cp_dll_from_wine to syswow64... OK."
 | 
			
		||||
        elif ! try_copy_file "${WINEDIR}/lib/wine/fakedlls/${try_cp_dll_from_wine}" "${WINEPREFIX}/drive_c/windows/syswow64/${try_cp_dll_from_wine}"
 | 
			
		||||
        then try_remove_file "${WINEPREFIX}/drive_c/windows/syswow64/${try_cp_dll_from_wine}"
 | 
			
		||||
        fi
 | 
			
		||||
        try_remove_file "${WINEPREFIX}/drive_c/windows/system32/${try_cp_dll_from_wine}"
 | 
			
		||||
        if try_copy_file "${WINEDIR}/lib64/wine/x86_64-windows/${try_cp_dll_from_wine}" "${WINEPREFIX}/drive_c/windows/system32/${try_cp_dll_from_wine}"
 | 
			
		||||
        then print_info "Try copy $try_cp_dll_from_wine to system32... OK."
 | 
			
		||||
        elif ! try_copy_file "${WINEDIR}/lib64/wine/fakedlls/${try_cp_dll_from_wine}" "${WINEPREFIX}/drive_c/windows/system32/${try_cp_dll_from_wine}"
 | 
			
		||||
        then try_remove_file "${WINEPREFIX}/drive_c/windows/system32/${try_cp_dll_from_wine}"
 | 
			
		||||
        fi
 | 
			
		||||
    done
 | 
			
		||||
 | 
			
		||||
@@ -624,7 +684,7 @@ start_portwine () {
 | 
			
		||||
            echo "START WINETRICKS..." >> "${PORT_WINE_TMP_PATH}/update_pfx_log"
 | 
			
		||||
            echo "Try to install DLL in prefix: ${PW_DLL_NEED_INSTALL}" >> "${PORT_WINE_TMP_PATH}/update_pfx_log"
 | 
			
		||||
            print_info "Try to install DLL in prefix: ${PW_DLL_NEED_INSTALL}"
 | 
			
		||||
            ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
 | 
			
		||||
            ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" GST_PLUGIN_SYSTEM_PATH_1_0="" \
 | 
			
		||||
            "${PORT_WINE_TMP_PATH}/winetricks" -q -r -f ${PW_DLL_NEED_INSTALL} &>>"${PORT_WINE_TMP_PATH}/update_pfx_log"
 | 
			
		||||
            wait_wineserver
 | 
			
		||||
            kill_portwine
 | 
			
		||||
@@ -635,7 +695,7 @@ start_portwine () {
 | 
			
		||||
        if [[ ! -z "${PW_WINDOWS_VER}" && `echo "$PW_WINDOWS_VER" | sed 's/.*/\L&/'` == "xp" ]] ; then
 | 
			
		||||
            export PW_WINDOWS_VER="xp64"
 | 
			
		||||
        fi
 | 
			
		||||
        ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
 | 
			
		||||
        ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" GST_PLUGIN_SYSTEM_PATH_1_0="" \
 | 
			
		||||
        "${WINELOADER}" winecfg -v `echo "win${PW_WINDOWS_VER}" | sed 's/.*/\L&/'`
 | 
			
		||||
        wait_wineserver
 | 
			
		||||
        kill_portwine
 | 
			
		||||
@@ -647,10 +707,12 @@ start_portwine () {
 | 
			
		||||
        [[ -z "${LAUNCH_PARAMETERS}" ]] && export LAUNCH_PARAMETERS+=" -eac-nop-loaded "
 | 
			
		||||
    fi
 | 
			
		||||
    pw_stop_progress_bar &&
 | 
			
		||||
    [[ "${START_FROM_STEAM}" != 1 ]] && pw_tray_icon
 | 
			
		||||
    sleep 0.5
 | 
			
		||||
    if [[ "${PW_CHECK_AUTOINSTAL}" != "1" ]] ; then
 | 
			
		||||
        pw_start_progress_bar_cover "${PW_GUI_ICON_PATH}/covers/pw_loading_cover.gif"
 | 
			
		||||
    if ! check_start_from_steam ; then
 | 
			
		||||
        pw_tray_icon
 | 
			
		||||
        sleep 0.5
 | 
			
		||||
        if [[ "${PW_CHECK_AUTOINSTAL}" != "1" ]] ; then
 | 
			
		||||
            pw_start_progress_bar_cover "${PW_GUI_ICON_PATH}/covers/loading_${update_loc}.gif" 
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
    add_in_start_portwine
 | 
			
		||||
 | 
			
		||||
@@ -672,24 +734,32 @@ pw_run () {
 | 
			
		||||
    pw_mangohud_check
 | 
			
		||||
    pw_vkbasalt_check
 | 
			
		||||
    PW_LOG_TO_FILE="${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
    print_var "WINEDIR" "WINEPREFIX" "WINEDLLOVERRIDES" "PATH_TO_GAME" "PW_WINE_USE" "PW_VULKAN_USE" "VULKAN_DRIVER_NAME" "VULKAN_API_DRIVER_VERSION" \
 | 
			
		||||
    "VKD3D_CONFIG" "PW_LD_LIBRARY_PATH" "PATH" "WINEESYNC" "WINEFSYNC" "WINEFSYNC_FUTEX2" "WINEDLLPATH" "WINE_CPU_TOPOLOGY" "PW_RUN_GAMESCOPE"
 | 
			
		||||
    print_var "WINEDIR" "WINEPREFIX" "WINEDLLOVERRIDES" "PATH_TO_GAME" "PW_WINE_USE" "PW_VULKAN_USE" "VULKAN_DRIVER_NAME"
 | 
			
		||||
    print_var "VULKAN_API_DRIVER_VERSION" "VKD3D_CONFIG" "PW_LD_LIBRARY_PATH" "PATH" "WINEESYNC" "WINEFSYNC" "WINEFSYNC_FUTEX2"
 | 
			
		||||
    print_var "WINEDLLPATH" "WINE_CPU_TOPOLOGY" "PW_RUN_GAMESCOPE" "LD_LIBRARY_PATH"
 | 
			
		||||
    kill -s SIGUSR1 "$PW_YAD_PID_PFX_COVER_UI" &>/dev/null
 | 
			
		||||
    if [[ "${PW_LOG}" == 1 ]] ; then
 | 
			
		||||
        if check_start_from_steam ; then
 | 
			
		||||
            for VAR_LOGGER in PW_WINE_USE WINEDIR WINEDLLPATH WINEPREFIX PATH_TO_GAME PW_VULKAN_USE PW_LD_LIBRARY_PATH LD_LIBRARY_PATH PATH \
 | 
			
		||||
                              VKD3D_CONFIG WINEESYNC WINEFSYNC WINEFSYNC_FUTEX2 WINE_CPU_TOPOLOGY DESKTOP_SESSION
 | 
			
		||||
            do
 | 
			
		||||
                echo "${VAR_LOGGER}=${!VAR_LOGGER}" >> "${PW_LOG_TO_FILE}"
 | 
			
		||||
            done
 | 
			
		||||
        fi
 | 
			
		||||
        echo "WINEDLLOVERRIDES=${WINEDLLOVERRIDES}" >> "${PW_LOG_TO_FILE}"
 | 
			
		||||
        echo "------------------------------------" >> "${PW_LOG_TO_FILE}"
 | 
			
		||||
        echo "Log WINE:" >> "${PW_LOG_TO_FILE}"
 | 
			
		||||
        echo ""
 | 
			
		||||
        print_debug "Log from RUNTIME and WINE:"
 | 
			
		||||
        ${PW_GAMEMODERUN_SLR} \
 | 
			
		||||
        print_info "Log from RUNTIME and WINE:"
 | 
			
		||||
        ${PW_RUN_GAMESCOPE} \
 | 
			
		||||
        ${pw_runtime} \
 | 
			
		||||
        env ${PW_MANGOHUD_SLR} \
 | 
			
		||||
        PATH="${PATH}" \
 | 
			
		||||
        env PATH="${PATH}" \
 | 
			
		||||
        LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
 | 
			
		||||
        LD_PRELOAD="${PW_LD_PRELOAD}" \
 | 
			
		||||
        VK_LAYER_PATH="${PW_VK_LAYER_PATH}" \
 | 
			
		||||
        VK_INSTANCE_LAYERS=${PW_VK_INSTANCE_LAYERS} \
 | 
			
		||||
        ${PW_GAMEMODERUN_SLR} \
 | 
			
		||||
        ${PW_MANGOHUD_SLR} \
 | 
			
		||||
        "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}"
 | 
			
		||||
    else
 | 
			
		||||
        if [[ "${PW_USE_TERMINAL}" == "1" ]] ; then
 | 
			
		||||
@@ -698,16 +768,16 @@ pw_run () {
 | 
			
		||||
        fi
 | 
			
		||||
        echo ""
 | 
			
		||||
        echo "Log WINE:" > "${PW_LOG_TO_FILE}"
 | 
			
		||||
        print_debug "Log from RUNTIME and WINE:"
 | 
			
		||||
        ${PW_GAMEMODERUN_SLR} \
 | 
			
		||||
        print_info "Log from RUNTIME and WINE:"
 | 
			
		||||
        ${PW_RUN_GAMESCOPE} \
 | 
			
		||||
        ${pw_runtime} \
 | 
			
		||||
        env ${PW_MANGOHUD_SLR} \
 | 
			
		||||
        PATH="${PATH}" \
 | 
			
		||||
        env PATH="${PATH}" \
 | 
			
		||||
        LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
 | 
			
		||||
        LD_PRELOAD="${PW_LD_PRELOAD}" \
 | 
			
		||||
        VK_LAYER_PATH="${PW_VK_LAYER_PATH}" \
 | 
			
		||||
        VK_INSTANCE_LAYERS="${PW_VK_INSTANCE_LAYERS}" \
 | 
			
		||||
        ${PW_GAMEMODERUN_SLR} \
 | 
			
		||||
        ${PW_MANGOHUD_SLR} \
 | 
			
		||||
        "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}"
 | 
			
		||||
        cat "${PW_LOG_TO_FILE}"
 | 
			
		||||
    fi
 | 
			
		||||
@@ -716,10 +786,18 @@ export -f pw_run
 | 
			
		||||
 | 
			
		||||
###MAIN###
 | 
			
		||||
if [[ $(id -u) -eq 0 ]] ; then
 | 
			
		||||
    zenity_error "Do not run the script from the superuser!"
 | 
			
		||||
    yad_error "Do not run the script from the superuser!"
 | 
			
		||||
    exit 1
 | 
			
		||||
fi
 | 
			
		||||
[[ -z "${LANG}" ]] && export LANG=C
 | 
			
		||||
 | 
			
		||||
if [[ -z "${LANG}" ]] ; then
 | 
			
		||||
    export LANG=C
 | 
			
		||||
    export FORCE_ENG_LANG=1
 | 
			
		||||
elif [[ "${START_FROM_STEAM}" == 1 ]] ; then
 | 
			
		||||
    export FORCE_ENG_LANG=1
 | 
			
		||||
else 
 | 
			
		||||
    unset FORCE_ENG_LANG
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
create_new_dir "${HOME}/.local/share/applications"
 | 
			
		||||
if [[ "${PW_SILENT_RESTART}" == 1 ]] || [[ "${START_FROM_STEAM}" == 1 ]] ; then
 | 
			
		||||
@@ -740,6 +818,8 @@ cd "$(dirname "`readlink -f "$0"`")" && export PORT_SCRIPTS_PATH="$(pwd)"
 | 
			
		||||
cd "${PORT_SCRIPTS_PATH}/../../" && export PORT_WINE_PATH="$(pwd)"
 | 
			
		||||
export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp"
 | 
			
		||||
 | 
			
		||||
rm -f $PORT_WINE_TMP_PATH/*{exe,msi,tar}*
 | 
			
		||||
 | 
			
		||||
echo "" > "${PORT_WINE_TMP_PATH}/tmp_yad_form"
 | 
			
		||||
 | 
			
		||||
if [[ -d "${PORT_WINE_PATH}/data/dist" ]] ; then
 | 
			
		||||
@@ -753,8 +833,9 @@ if [[ -d "${PORT_WINE_PATH}/data/dist" ]] ; then
 | 
			
		||||
        fi
 | 
			
		||||
    done
 | 
			
		||||
    IFS="$orig_IFS"
 | 
			
		||||
else
 | 
			
		||||
    create_new_dir "${PORT_WINE_PATH}/data/dist"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
create_new_dir "${PORT_WINE_PATH}/data/prefixes/DEFAULT"
 | 
			
		||||
create_new_dir "${PORT_WINE_PATH}/data/prefixes/DOTNET"
 | 
			
		||||
create_new_dir "${PORT_WINE_PATH}/data/prefixes/PROGRAMS"
 | 
			
		||||
@@ -779,32 +860,45 @@ create_new_dir "${PW_VULKAN_DIR}"
 | 
			
		||||
 | 
			
		||||
export LSPCI_VGA="$(lspci -k | grep -E 'VGA|3D' | tr -d '\n')"
 | 
			
		||||
 | 
			
		||||
if command -v xrandr &>/dev/null ; then
 | 
			
		||||
    try_remove_file "${PORT_WINE_TMP_PATH}/tmp_screen_configuration"
 | 
			
		||||
    export PW_SCREEN_RESOLUTION="$(xrandr | sed -rn 's/^.*primary.* ([0-9]+x[0-9]+).*$/\1/p')"
 | 
			
		||||
    export PW_SCREEN_PRIMARY="$(xrandr | grep "primary" | awk '{print $1}')"
 | 
			
		||||
    print_var PW_SCREEN_RESOLUTION PW_SCREEN_PRIMARY
 | 
			
		||||
else
 | 
			
		||||
    print_error "xrandr - not found!"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
cd "${PORT_SCRIPTS_PATH}"
 | 
			
		||||
. "${PORT_SCRIPTS_PATH}/var"
 | 
			
		||||
            
 | 
			
		||||
export STEAM_SCRIPTS="${PORT_WINE_PATH}/steam_scripts"
 | 
			
		||||
export PW_PLUGINS_PATH="${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}"
 | 
			
		||||
export PW_GUI_ICON_PATH="${PORT_WINE_PATH}/data/img/gui"
 | 
			
		||||
 | 
			
		||||
. "${PORT_SCRIPTS_PATH}"/lang
 | 
			
		||||
. "${PORT_SCRIPTS_PATH}"/zen_yad_gui
 | 
			
		||||
. "${PORT_SCRIPTS_PATH}"/yad_gui
 | 
			
		||||
 | 
			
		||||
export urlg="https://linux-gaming.ru/portproton/"
 | 
			
		||||
export PW_WINELIB="${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}"
 | 
			
		||||
try_remove_dir "${PW_WINELIB}/var"
 | 
			
		||||
export PW_GUI_ICON_PATH="${PORT_WINE_PATH}/data/img/gui"
 | 
			
		||||
export install_ver=`cat "${PORT_WINE_TMP_PATH}/${portname}_ver" | head -n 1`
 | 
			
		||||
export WINETRICKS_DOWNLOADER="curl"
 | 
			
		||||
export USER_CONF="${PORT_WINE_PATH}/data/user.conf"
 | 
			
		||||
check_user_conf 
 | 
			
		||||
check_variables PW_LOG "0"
 | 
			
		||||
 | 
			
		||||
if [[ -z "${INSTALLING_PORT}" ]] ; then
 | 
			
		||||
    . "${USER_CONF}"
 | 
			
		||||
    pw_port_update
 | 
			
		||||
    if ! check_start_from_steam && [[ "${SKIP_CHECK_UPDATES}" != 1 ]]; then
 | 
			
		||||
        pw_port_update
 | 
			
		||||
    fi
 | 
			
		||||
    unset SKIP_CHECK_UPDATES
 | 
			
		||||
    pw_check_and_download_plugins
 | 
			
		||||
    pw_download_libs
 | 
			
		||||
    export PW_VULKANINFO_PORTABLE="$PW_WINELIB/pressure-vessel/libexec/steam-runtime-tools-0/x86_64-linux-gnu-vulkaninfo"
 | 
			
		||||
    export VULKAN_API_DRIVER_VERSION="$("$PW_VULKANINFO_PORTABLE" 2>/dev/null | grep "api" | head -n 1 | awk '{print $3}')"
 | 
			
		||||
    export VULKAN_DRIVER_NAME="$("$PW_VULKANINFO_PORTABLE" 2>/dev/null | grep driverName | awk '{print$3}' | head -1)"
 | 
			
		||||
    pw_check_and_download_plugins
 | 
			
		||||
    pw_init_db
 | 
			
		||||
    . "${PORT_SCRIPTS_PATH}"/lang
 | 
			
		||||
    pw_check_and_download_dxvk_and_vkd3d
 | 
			
		||||
 
 | 
			
		||||
@@ -2,70 +2,71 @@
 | 
			
		||||
# Author: linux-gaming.ru
 | 
			
		||||
. "$(dirname $(readlink -f "$0"))/runlib"
 | 
			
		||||
 | 
			
		||||
name_desktop="PortProton"
 | 
			
		||||
echo "[Desktop Entry]"	 					  > "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
echo "Name=${name_desktop}" 				 >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
echo "Exec=env "${PORT_SCRIPTS_PATH}/start.sh %F""	 >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
echo "Type=Application" 					 >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
echo "Terminal=False" 						 >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
echo "Categories=Game"	    				 >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
echo "StartupNotify=true" 	    			 >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
echo "MimeType=application/x-ms-dos-executable;application/x-wine-extension-msp;application/x-msi;application/x-msdos-program"  >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
echo "Path="${PORT_SCRIPTS_PATH}/""			 >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
echo "Icon="${PORT_WINE_PATH}/data/img/w.png""   	 >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
chmod u+x "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
if  grep -i "flatpak" /etc/os-release &>/dev/null ; then
 | 
			
		||||
	name_desktop="PortProton"
 | 
			
		||||
	echo "[Desktop Entry]"	 					  		 > "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
	echo "Name=${name_desktop}" 				 		 >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
	echo "Version=${install_ver}"						 >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
	echo "Exec=flatpak run com.castrofidel.portproton"	 >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
	echo "Type=Application" 						 	 >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
	echo "Terminal=False" 						 		 >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
	echo "Categories=Game"	    				 		 >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
	echo "StartupNotify=true" 	    			 		 >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
	echo "MimeType=application/x-ms-dos-executable;application/x-wine-extension-msp;application/x-msi;application/x-msdos-program"  >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
	echo "Path="${PORT_SCRIPTS_PATH}/""			 		 >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
	echo "Icon="${PORT_WINE_PATH}/data/img/w.png""   	 >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
	chmod u+x "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
else
 | 
			
		||||
	name_desktop="PortProton"
 | 
			
		||||
	echo "[Desktop Entry]"	 					  		 > "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
	echo "Name=${name_desktop}" 				 		 >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
	echo "Version=${install_ver}"						 >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
	echo "Exec=env "${PORT_SCRIPTS_PATH}/start.sh %F""	 >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
	echo "Type=Application" 							 >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
	echo "Terminal=False" 								 >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
	echo "Categories=Game"	    						 >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
	echo "StartupNotify=true" 	    					 >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
	echo "MimeType=application/x-ms-dos-executable;application/x-wine-extension-msp;application/x-msi;application/x-msdos-program"  >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
	echo "Path="${PORT_SCRIPTS_PATH}/""					 >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
	echo "Icon="${PORT_WINE_PATH}/data/img/w.png""   	 >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
	chmod u+x "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ -z "${PW_AUTOPLAY}" ] ; then
 | 
			
		||||
if [[ ! -f /usr/bin/portproton ]] ; then
 | 
			
		||||
	cp -f "${PORT_WINE_PATH}/${name_desktop}.desktop" ${HOME}/.local/share/applications/
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if grep "SteamOS" "/etc/os-release" &>/dev/null ; then
 | 
			
		||||
	cp -f "${PORT_WINE_PATH}/${name_desktop}.desktop" "$(xdg-user-dir DESKTOP)"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
update-desktop-database -q "${HOME}/.local/share/applications"
 | 
			
		||||
xdg-mime default PortProton.desktop "application/x-ms-dos-executable;application/x-wine-extension-msp;application/x-msi;application/x-msdos-program"
 | 
			
		||||
 | 
			
		||||
if ! grep -i "flatpak" /etc/os-release &>/dev/null ; then
 | 
			
		||||
	xdg-mime default PortProton.desktop "application/x-ms-dos-executable;application/x-wine-extension-msp;application/x-msi;application/x-msdos-program"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
name_desktop="readme"
 | 
			
		||||
echo "[Desktop Entry]"				 > "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
echo "Name=${name_desktop}"			>> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
echo "Version=1.0"					>> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
echo "Type=Link"					>> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
echo "Icon="${PORT_WINE_PATH}/data/img/readme.png""	>> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
echo "URL=${urlg}" >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
echo "[Desktop Entry]"				 					> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
echo "Name=${name_desktop}"								>> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
echo "Version=${install_ver}"							>> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
echo "Type=Link"										>> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
echo "Icon="${PORT_WINE_PATH}/data/img/readme.png""		>> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
echo "URL=${urlg}" 										>> "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
chmod u+x "${PORT_WINE_PATH}/${name_desktop}.desktop"
 | 
			
		||||
 | 
			
		||||
if [ "${PW_SILENT_INSTALL}" = "1" ] ; then
 | 
			
		||||
	if [ "${PW_AUTOPLAY}" = "1" ] ; then
 | 
			
		||||
		unset INSTALLING_PORT
 | 
			
		||||
		if [[ -f "${HOME}/.local/share/applications/PortProton.desktop" ]] ; then
 | 
			
		||||
			export PW_OLD_PATH=`cat "${HOME}/.local/share/applications/PortProton.desktop" | grep -w 'Path=' | sed -E 's/Path=//' | sed -E 's%\/PortProton\/data\/scripts\/%%g' `
 | 
			
		||||
			echo "PW_OLD_PATH=${PW_OLD_PATH}"
 | 
			
		||||
		if [[ -f "${HOME}/.local/share/applications/PortProton.desktop" ]] && [[ -f /usr/bin/portproton ]] ; then
 | 
			
		||||
			try_remove_file "${HOME}/.local/share/applications/PortProton.desktop"
 | 
			
		||||
		fi
 | 
			
		||||
		if [[ ! -z "${PW_OLD_PATH}" ]]	; then 
 | 
			
		||||
			if [[ "${PW_OLD_PATH}"* == "${HOME}/PortWINE"* ]] & [[ -d "${HOME}/PortWINE" ]] ; then
 | 
			
		||||
				echo "Old path = ${HOME}/PortWINE"
 | 
			
		||||
				try_remove_dir "${XDG_DATA_HOME}/PortWINE"
 | 
			
		||||
				mv -f "${HOME}/PortWINE" "${XDG_DATA_HOME}"
 | 
			
		||||
			elif [[ "${PW_OLD_PATH}"* == "${PW_OLD_PATH}/PortWINE"* ]] & [[ -d "${PW_OLD_PATH}/PortWINE" ]] ; then
 | 
			
		||||
				try_remove_dir "${XDG_DATA_HOME}/PortWINE"
 | 
			
		||||
				ln -s "${PW_OLD_PATH}/PortWINE" "${XDG_DATA_HOME}/"
 | 
			
		||||
			elif [[ "${PW_OLD_PATH}"* == "${PW_OLD_PATH}/PortProton"* ]] & [[ -d "${PW_OLD_PATH}/PortProton" ]] ; then
 | 
			
		||||
				try_remove_dir "${XDG_DATA_HOME}/PortWINE"
 | 
			
		||||
				create_new_dir "${XDG_DATA_HOME}/PortWINE"
 | 
			
		||||
				ln -s "${PW_OLD_PATH}/PortProton" "${XDG_DATA_HOME}/PortWINE"
 | 
			
		||||
			fi
 | 
			
		||||
		fi
 | 
			
		||||
		if [ ! -L "${HOME}/PortWINE" ] && [ -d "${XDG_DATA_HOME}/PortWINE" ] ; then
 | 
			
		||||
		    ln -s "${XDG_DATA_HOME}/PortWINE" "${HOME}/"
 | 
			
		||||
		else
 | 
			
		||||
		    echo "Symbolic link already exists."
 | 
			
		||||
		fi
 | 
			
		||||
		echo "Restarting PP after installing..."
 | 
			
		||||
		export SKIP_CHECK_UPDATES=1
 | 
			
		||||
		/usr/bin/env bash -c "${PORT_WINE_PATH}/data/scripts/start.sh" $@ & 
 | 
			
		||||
		exit 0
 | 
			
		||||
	else
 | 
			
		||||
		echo "Installation completed successfully."
 | 
			
		||||
	fi
 | 
			
		||||
else
 | 
			
		||||
	`zenity --info --title "${inst_set_top}" --text "${inst_succ}" --no-wrap ` > /dev/null 2>&1
 | 
			
		||||
	 xdg-open "https://linux-gaming.ru/portproton/" > /dev/null 2>&1 & exit 0
 | 
			
		||||
fi
 | 
			
		||||
unset INSTALLING_PORT
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,7 @@
 | 
			
		||||
 | 
			
		||||
export NO_AT_BRIDGE=1
 | 
			
		||||
export pw_full_command_line=("$0" $*)
 | 
			
		||||
export YAD_BORDERS=5
 | 
			
		||||
MISSING_DESKTOP_FILE=0
 | 
			
		||||
 | 
			
		||||
if [[ -f "$1" ]] ; then
 | 
			
		||||
@@ -11,18 +12,36 @@ elif [[ "$1" == *.exe ]] ; then
 | 
			
		||||
    export portwine_exe="$1"
 | 
			
		||||
    MISSING_DESKTOP_FILE=1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# HOTFIX - ModernWarships
 | 
			
		||||
if echo "$portwine_exe" | grep ModernWarships &>/dev/null \
 | 
			
		||||
&& [[ -f "$(dirname "${portwine_exe}")/Modern Warships.exe" ]]
 | 
			
		||||
then
 | 
			
		||||
    export portwine_exe="$(dirname "${portwine_exe}")/Modern Warships.exe"
 | 
			
		||||
    MISSING_DESKTOP_FILE=0
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
. "$(dirname $(readlink -f "$0"))/runlib"
 | 
			
		||||
kill_portwine
 | 
			
		||||
killall -15 yad_v12_3 2>/dev/null
 | 
			
		||||
kill -TERM `pgrep -a yad | grep ${portname} | head -n 1 | awk '{print $1}'` 2>/dev/null
 | 
			
		||||
 | 
			
		||||
if [[ -f "/usr/bin/portproton" ]] && [[ -f "${HOME}/.local/share/applications/PortProton.desktop" ]] ; then
 | 
			
		||||
    export SKIP_CHECK_UPDATES=1
 | 
			
		||||
    /usr/bin/env bash "/usr/bin/portproton" "$@" & 
 | 
			
		||||
    exit 0
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
[[ "$MISSING_DESKTOP_FILE" == 1 ]] && portwine_missing_shortcut
 | 
			
		||||
 | 
			
		||||
# if [[ -f "$portwine_exe" ]] \
 | 
			
		||||
# && [[ "${WARN_CYRILLIC_IN_PATH}" != 1 ]] \
 | 
			
		||||
# && echo "${portwine_exe}" | grep -e $'[\u0430-\u044F\u0410-\u042F]' &>/dev/null
 | 
			
		||||
# then
 | 
			
		||||
#     yad_info "$loc_warn_cyrillic_in_path"
 | 
			
		||||
#     export WARN_CYRILLIC_IN_PATH="1"
 | 
			
		||||
# fi
 | 
			
		||||
 | 
			
		||||
if [[ -f "${PORT_WINE_TMP_PATH}/tmp_main_gui_size" ]] && [[ ! -z "$(cat ${PORT_WINE_TMP_PATH}/tmp_main_gui_size)" ]] ; then
 | 
			
		||||
    export PW_MAIN_SIZE_W="$(cat ${PORT_WINE_TMP_PATH}/tmp_main_gui_size | awk '{print $1}')"
 | 
			
		||||
    export PW_MAIN_SIZE_H="$(cat ${PORT_WINE_TMP_PATH}/tmp_main_gui_size | awk '{print $2}')"
 | 
			
		||||
@@ -67,8 +86,7 @@ portwine_launch () {
 | 
			
		||||
    PORTWINE_MSI=$(basename "${portwine_exe}" | grep .msi)
 | 
			
		||||
    PORTWINE_BAT=$(basename "${portwine_exe}" | grep .bat)
 | 
			
		||||
    if [[ ! -z "${PW_VIRTUAL_DESKTOP}" && "${PW_VIRTUAL_DESKTOP}" == "1" ]] ; then
 | 
			
		||||
        pw_screen_resolution=$(xrandr --current | grep "*" | awk '{print $1;}' | head -1)
 | 
			
		||||
        pw_run explorer "/desktop=PortProton,${pw_screen_resolution}" ${WINE_WIN_START} "$portwine_exe"
 | 
			
		||||
        pw_run explorer "/desktop=PortProton,${PW_SCREEN_RESOLUTION}" ${WINE_WIN_START} "$portwine_exe"
 | 
			
		||||
    elif [ ! -z "${PORTWINE_MSI}" ]; then
 | 
			
		||||
        pw_run msiexec /i "$portwine_exe"
 | 
			
		||||
    elif [[ ! -z "${PORTWINE_BAT}" || -n "${portwine_exe}" ]] ; then
 | 
			
		||||
@@ -81,9 +99,8 @@ portwine_launch () {
 | 
			
		||||
portwine_start_debug () {
 | 
			
		||||
    kill_portwine
 | 
			
		||||
    export PW_LOG=1
 | 
			
		||||
    export PW_WINEDBG_DISABLE=0
 | 
			
		||||
    if [[ -z "$VULKAN_DRIVER_NAME" ]] || [[ "$VULKAN_DRIVER_NAME" == "llvmpipe" ]] ; then
 | 
			
		||||
	zenity_info "Attention working version of vulkan not detected!\nIt is recommended to run games in OpenGL (low performance possible)!"
 | 
			
		||||
	yad_info "Attention working version of vulkan not detected!\nIt is recommended to run games in OpenGL (low performance possible)!"
 | 
			
		||||
    fi
 | 
			
		||||
    echo "${port_deb1}" > "${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
    echo "${port_deb2}" >> "${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
@@ -166,7 +183,7 @@ portwine_start_debug () {
 | 
			
		||||
    [[ `command -v glxinfo` ]] && glxinfo -B >> "${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
    echo "-----" >> "${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
    echo "inxi -G:" >> "${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
    "${PW_WINELIB}/portable/bin/inxi" -Gc0 >> "${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
    "${PW_PLUGINS_PATH}/portable/bin/inxi" -Gc0 >> "${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
    if echo "$LSPCI_VGA" | grep -i nvidia &>/dev/null ; then 
 | 
			
		||||
        if command -v ldconfig &>/dev/null ; then
 | 
			
		||||
            echo "------" >> "${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
@@ -177,23 +194,12 @@ portwine_start_debug () {
 | 
			
		||||
    echo "----------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
    echo "Vulkan info device name:" >> "${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
    "$PW_VULKANINFO_PORTABLE" 2>/dev/null | grep -E '^GPU|deviceName|driverName' >> "${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
    "${PW_WINELIB}/portable/bin/vkcube" --c 50
 | 
			
		||||
    "${PW_PLUGINS_PATH}/portable/bin/vkcube" --c 50
 | 
			
		||||
    if [ $? -eq 0 ]; then
 | 
			
		||||
        echo "Vulkan cube test passed successfully" >> "${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
    else
 | 
			
		||||
        echo "Vulkan cube test completed with error" >> "${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
    fi
 | 
			
		||||
    echo "----------------------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
    echo "GameMode status:" >> "${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
    if gamemoded -s | grep "is active";
 | 
			
		||||
    then
 | 
			
		||||
        echo "gamemode is active"  >> "${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
    elif gamemoded -s | grep "is inactive";
 | 
			
		||||
    then
 | 
			
		||||
        echo "gamemode is inactive"  >> "${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
    else
 | 
			
		||||
        echo "gamemode is not found"  >> "${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
    fi
 | 
			
		||||
    echo "----------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
    echo 'locale:' >> "${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
    locale >> "${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
@@ -246,10 +252,11 @@ portwine_start_debug () {
 | 
			
		||||
    sed -i '/HACK_does_openvr_work/d' "${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
    sed -i '/Uploading is disabled/d' "${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
    sed -i '/dlopen failed - libgamemode.so/d' "${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
    sed -i '/gamemodeauto: /d' "${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
    sed -i '/wine: RLIMIT_NICE is <= 20/d' "${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
    deb_text=$(cat "${PORT_WINE_PATH}/${portname}.log"  | awk '! a[$0]++') 
 | 
			
		||||
    echo "$deb_text" > "${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
    "$pw_yad" --title="${portname}.log" --borders=3 --no-buttons --text-align=center \
 | 
			
		||||
    "$pw_yad" --title="${portname}.log" --borders=${YAD_BORDERS} --no-buttons --text-align=center \
 | 
			
		||||
    --text-info --show-uri --wrap --width=1200 --height=550  --uri-color=red \
 | 
			
		||||
    --filename="${PORT_WINE_PATH}/${portname}.log"
 | 
			
		||||
    stop_portwine
 | 
			
		||||
@@ -257,6 +264,7 @@ portwine_start_debug () {
 | 
			
		||||
 | 
			
		||||
pw_winecfg () {
 | 
			
		||||
    start_portwine
 | 
			
		||||
    export GST_PLUGIN_SYSTEM_PATH_1_0=""
 | 
			
		||||
    pw_run winecfg
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -275,6 +283,7 @@ pw_winecmd () {
 | 
			
		||||
 | 
			
		||||
pw_winereg () {
 | 
			
		||||
    start_portwine
 | 
			
		||||
    export GST_PLUGIN_SYSTEM_PATH_1_0=""
 | 
			
		||||
    pw_run regedit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -330,19 +339,19 @@ pw_prefix_manager () {
 | 
			
		||||
 | 
			
		||||
        KEY_EDIT_MANAGER_GUI=$RANDOM
 | 
			
		||||
        "${pw_yad_v12_3}" --plug=$KEY_EDIT_MANAGER_GUI --tabnum=1 --list --checklist \
 | 
			
		||||
        --text="Select components to install in prefix: <b>\"${PW_PREFIX_NAME}\"</b>, using wine: <b>\"${PW_WINE_USE}\"</b>" \
 | 
			
		||||
        --text="${loc_prefix_manager_comp} <b>\"${PW_PREFIX_NAME}\"</b>, ${loc_prefix_manager_wine} <b>\"${PW_WINE_USE}\"</b>" \
 | 
			
		||||
        --column=set --column=dll --column=info < "${PORT_WINE_TMP_PATH}/dll_list_tmp" 1>> "${PORT_WINE_TMP_PATH}/to_winetricks" 2>/dev/null &
 | 
			
		||||
 | 
			
		||||
        "${pw_yad_v12_3}" --plug=$KEY_EDIT_MANAGER_GUI --tabnum=2 --list --checklist \
 | 
			
		||||
        --text="Select fonts to install in prefix: <b>\"${PW_PREFIX_NAME}\"</b>, using wine: <b>\"${PW_WINE_USE}\"</b>" \
 | 
			
		||||
        --text="${loc_prefix_manager_font} <b>\"${PW_PREFIX_NAME}\"</b>, ${loc_prefix_manager_wine} <b>\"${PW_WINE_USE}\"</b>" \
 | 
			
		||||
        --column=set --column=dll --column=info < "${PORT_WINE_TMP_PATH}/fonts_list_tmp" 1>> "${PORT_WINE_TMP_PATH}/to_winetricks" 2>/dev/null &
 | 
			
		||||
 | 
			
		||||
        "${pw_yad_v12_3}" --plug=$KEY_EDIT_MANAGER_GUI --tabnum=3 --list --checklist \
 | 
			
		||||
        --text="Change config for prefix: <b>\"${PW_PREFIX_NAME}\"</b>" \
 | 
			
		||||
        --text="${loc_prefix_manager_conf} <b>\"${PW_PREFIX_NAME}\"</b>" \
 | 
			
		||||
        --column=set --column=dll --column=info < "${PORT_WINE_TMP_PATH}/settings_list_tmp" 1>> "${PORT_WINE_TMP_PATH}/to_winetricks" 2>/dev/null &
 | 
			
		||||
 | 
			
		||||
        "${pw_yad_v12_3}" --key=$KEY_EDIT_MANAGER_GUI --notebook --borders=3 --width=900 --height=800 \
 | 
			
		||||
        --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "PREFIX MANAGER..." --tab-pos=bottom --tab="DLL" --tab="FONTS" --tab="SETTINGS" 2>/dev/null
 | 
			
		||||
        "${pw_yad_v12_3}" --key=$KEY_EDIT_MANAGER_GUI --notebook --borders=${YAD_BORDERS} --width=900 --height=800 \
 | 
			
		||||
        --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --title "$loc_pm" --tab-pos=bottom --tab="$loc_pm_dlls" --tab="$loc_pm_fonts" --tab="$loc_pm_settings" 2>/dev/null
 | 
			
		||||
        YAD_STATUS="$?"
 | 
			
		||||
        if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then
 | 
			
		||||
            stop_portwine
 | 
			
		||||
@@ -364,7 +373,8 @@ pw_prefix_manager () {
 | 
			
		||||
        if [[ ! -z ${SET_FROM_PFX_MANAGER} ]] ; then
 | 
			
		||||
            export PW_ADD_TO_ARGS_IN_RUNTIME="--xterm"
 | 
			
		||||
            pw_init_runtime
 | 
			
		||||
            ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" "${PORT_WINE_TMP_PATH}/winetricks" -q -r -f ${SET_FROM_PFX_MANAGER}
 | 
			
		||||
            ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" GST_PLUGIN_SYSTEM_PATH_1_0="" \
 | 
			
		||||
            "${PORT_WINE_TMP_PATH}/winetricks" -q -r -f ${SET_FROM_PFX_MANAGER} &>>"${PORT_WINE_TMP_PATH}/update_pfx_log"
 | 
			
		||||
            gui_prefix_manager
 | 
			
		||||
        else
 | 
			
		||||
            print_info "Nothing to do. Restarting PortProton..."
 | 
			
		||||
@@ -396,7 +406,8 @@ pw_winetricks () {
 | 
			
		||||
            fi
 | 
			
		||||
    done < "${PORT_WINE_TMP_PATH}/update_pfx_log" | "${pw_yad_v12_3}" --text-info --tail --no-buttons --title="WINETRICKS" \
 | 
			
		||||
    --auto-close --skip-taskbar --width=$PW_GIF_SIZE_X --height=$PW_GIF_SIZE_Y 2>/dev/null &
 | 
			
		||||
    "${PORT_WINE_TMP_PATH}/winetricks" -q -r -f &>>"${PORT_WINE_TMP_PATH}/update_pfx_log"
 | 
			
		||||
    ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" GST_PLUGIN_SYSTEM_PATH_1_0="" \
 | 
			
		||||
    "${PORT_WINE_TMP_PATH}/winetricks" -q -r -f ${PW_DLL_NEED_INSTALL} &>>"${PORT_WINE_TMP_PATH}/update_pfx_log"
 | 
			
		||||
    try_remove_file "${PORT_WINE_TMP_PATH}/update_pfx_log"
 | 
			
		||||
    kill -s SIGTERM "$(pgrep -a yad_v12_3 | grep "title=WINETRICKS" | awk '{print $1}')" > /dev/null 2>&1    
 | 
			
		||||
    stop_portwine
 | 
			
		||||
@@ -407,20 +418,21 @@ pw_start_cont_xterm () {
 | 
			
		||||
    unset PW_SANDBOX_HOME_PATH
 | 
			
		||||
    # export PW_ADD_TO_ARGS_IN_RUNTIME="--xterm"
 | 
			
		||||
    pw_init_runtime
 | 
			
		||||
    ${PW_GAMEMODERUN_SLR} ${pw_runtime} \
 | 
			
		||||
    env ${PW_MANGOHUD_SLR} \
 | 
			
		||||
    PATH="${PATH}" \
 | 
			
		||||
    ${pw_runtime} \
 | 
			
		||||
    env PATH="${PATH}" \
 | 
			
		||||
    LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
 | 
			
		||||
    LD_PRELOAD="${PW_LD_PRELOAD}" \
 | 
			
		||||
    VK_LAYER_PATH="${PW_VK_LAYER_PATH}" \
 | 
			
		||||
    VK_INSTANCE_LAYERS="${PW_VK_INSTANCE_LAYERS}" \
 | 
			
		||||
    ${PW_GAMEMODERUN_SLR} \
 | 
			
		||||
    ${PW_MANGOHUD_SLR} \
 | 
			
		||||
    xterm
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pw_create_prefix_backup () {
 | 
			
		||||
    cd "$HOME"
 | 
			
		||||
    PW_PREFIX_TO_BACKUP=$("${pw_yad_v12_3}" --file --directory --borders=3 --width=650 --height=500 --auto-close \
 | 
			
		||||
    --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "$loc_create_pfx_backup_path" 2>/dev/null )
 | 
			
		||||
    PW_PREFIX_TO_BACKUP=$("${pw_yad_v12_3}" --file --directory --borders=${YAD_BORDERS} --width=650 --height=500 --auto-close \
 | 
			
		||||
    --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --title "$loc_create_pfx_backup_path" 2>/dev/null )
 | 
			
		||||
    YAD_STATUS="$?"
 | 
			
		||||
    if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; fi
 | 
			
		||||
    if [[ ! -z "$(grep "/${PW_PREFIX_NAME}/" "${PORT_WINE_PATH}"/*.desktop )" ]] ; then
 | 
			
		||||
@@ -448,13 +460,13 @@ pw_create_prefix_backup () {
 | 
			
		||||
    done
 | 
			
		||||
    if [[ -f "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack.part" ]] ; then
 | 
			
		||||
        mv -f "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack.part" "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack"
 | 
			
		||||
        zenity_info "$PW_PFX_BACKUP_SUCCESS"
 | 
			
		||||
        yad_info "$PW_PFX_BACKUP_SUCCESS"
 | 
			
		||||
        if [[ ! -f "${PORT_WINE_TMP_PATH}/pfx_backup_info" ]] ; then
 | 
			
		||||
            zenity_info "$PW_PFX_BACKUP_INFO"
 | 
			
		||||
            yad_info "$PW_PFX_BACKUP_INFO"
 | 
			
		||||
            echo "1" > "${PORT_WINE_TMP_PATH}/pfx_backup_info"
 | 
			
		||||
        fi
 | 
			
		||||
    else 
 | 
			
		||||
        zenity_error "$PW_PFX_BACKUP_ERROR"
 | 
			
		||||
        yad_error "$PW_PFX_BACKUP_ERROR"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    return 0
 | 
			
		||||
@@ -463,25 +475,26 @@ pw_create_prefix_backup () {
 | 
			
		||||
pw_edit_db () {
 | 
			
		||||
    if [[ "${XDG_SESSION_TYPE}" == "wayland" ]] ; then
 | 
			
		||||
        pw_gui_for_edit_db \
 | 
			
		||||
        PW_MANGOHUD PW_MANGOHUD_USER_CONF ENABLE_VKBASALT PW_NO_ESYNC PW_NO_FSYNC PW_USE_RAY_TRACING \
 | 
			
		||||
        PW_USE_NVAPI_AND_DLSS PW_USE_FAKE_DLSS PW_WINE_FULLSCREEN_FSR PW_HIDE_NVIDIA_GPU PW_VIRTUAL_DESKTOP PW_USE_TERMINAL \
 | 
			
		||||
        PW_GUI_DISABLED_CS PW_USE_GAMEMODE PW_USE_D3D_EXTRAS PW_FIX_VIDEO_IN_GAME  \
 | 
			
		||||
        PW_MANGOHUD PW_MANGOHUD_USER_CONF ENABLE_VKBASALT PW_VKBASALT_USER_CONF PW_NO_ESYNC PW_NO_FSYNC PW_USE_RAY_TRACING \
 | 
			
		||||
        PW_USE_NVAPI_AND_DLSS PW_USE_FAKE_DLSS PW_USE_FAKE_DLSS_3 PW_WINE_FULLSCREEN_FSR PW_HIDE_NVIDIA_GPU PW_VIRTUAL_DESKTOP PW_USE_TERMINAL \
 | 
			
		||||
        PW_GUI_DISABLED_CS PW_USE_GAMEMODE PW_USE_D3D_EXTRAS PW_FIX_VIDEO_IN_GAME PW_REDUCE_PULSE_LATENCY \
 | 
			
		||||
        PW_USE_GSTREAMER PW_FORCE_LARGE_ADDRESS_AWARE PW_USE_SHADER_CACHE \
 | 
			
		||||
        PW_USE_WINE_DXGI PW_USE_EAC_AND_BE PW_USE_SYSTEM_VK_LAYERS PW_USE_OBS_VKCAPTURE PW_USE_GALLIUM_ZINK PW_USE_GAMESCOPE
 | 
			
		||||
    else
 | 
			
		||||
        pw_gui_for_edit_db \
 | 
			
		||||
        PW_MANGOHUD PW_MANGOHUD_USER_CONF ENABLE_VKBASALT PW_NO_ESYNC PW_NO_FSYNC PW_USE_RAY_TRACING \
 | 
			
		||||
        PW_USE_NVAPI_AND_DLSS PW_USE_FAKE_DLSS PW_WINE_FULLSCREEN_FSR PW_HIDE_NVIDIA_GPU PW_VIRTUAL_DESKTOP PW_USE_TERMINAL \
 | 
			
		||||
        PW_MANGOHUD PW_MANGOHUD_USER_CONF ENABLE_VKBASALT PW_VKBASALT_USER_CONF PW_NO_ESYNC PW_NO_FSYNC PW_USE_RAY_TRACING \
 | 
			
		||||
        PW_USE_NVAPI_AND_DLSS PW_USE_FAKE_DLSS PW_USE_FAKE_DLSS_3 PW_WINE_FULLSCREEN_FSR PW_HIDE_NVIDIA_GPU PW_VIRTUAL_DESKTOP PW_USE_TERMINAL \
 | 
			
		||||
        PW_GUI_DISABLED_CS PW_USE_GAMEMODE PW_USE_D3D_EXTRAS PW_FIX_VIDEO_IN_GAME  \
 | 
			
		||||
        PW_REDUCE_PULSE_LATENCY PW_USE_US_LAYOUT PW_RESTORE_RESOLUTION PW_USE_GSTREAMER PW_FORCE_LARGE_ADDRESS_AWARE PW_USE_SHADER_CACHE \
 | 
			
		||||
        PW_REDUCE_PULSE_LATENCY PW_USE_US_LAYOUT PW_USE_GSTREAMER PW_FORCE_LARGE_ADDRESS_AWARE PW_USE_SHADER_CACHE \
 | 
			
		||||
        PW_USE_WINE_DXGI PW_USE_EAC_AND_BE PW_USE_SYSTEM_VK_LAYERS PW_USE_OBS_VKCAPTURE PW_USE_GALLIUM_ZINK PW_USE_GAMESCOPE
 | 
			
		||||
    fi
 | 
			
		||||
    if [[ "$?" == 0 ]] ; then
 | 
			
		||||
        print_info "Restarting PP after update ppdb file..."
 | 
			
		||||
        export SKIP_CHECK_UPDATES=1
 | 
			
		||||
        /usr/bin/env bash -c ${pw_full_command_line[*]} &
 | 
			
		||||
        exit 0
 | 
			
		||||
    fi
 | 
			
		||||
    # PW_FORCE_USE_VSYNC PW_WINEDBG_DISABLE HEAP_DELAY_FREE
 | 
			
		||||
    # PW_FORCE_USE_VSYNC HEAP_DELAY_FREE
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pw_autoinstall_from_db () {
 | 
			
		||||
@@ -490,7 +503,6 @@ pw_autoinstall_from_db () {
 | 
			
		||||
    export PW_USE_GAMEMODE=0
 | 
			
		||||
    export PW_CHECK_AUTOINSTAL=1
 | 
			
		||||
    export PW_GUI_DISABLED_CS=1
 | 
			
		||||
    export PW_WINEDBG_DISABLE=1
 | 
			
		||||
    export PW_NO_WRITE_WATCH=0
 | 
			
		||||
    export PW_VULKAN_USE=1
 | 
			
		||||
    export PW_USE_EAC_AND_BE=0
 | 
			
		||||
@@ -511,11 +523,6 @@ export -f gui_credits
 | 
			
		||||
 | 
			
		||||
###MAIN###
 | 
			
		||||
 | 
			
		||||
# HOTFIX CALIBRE
 | 
			
		||||
if [[ ! -z "$(echo ${1} | grep '/Caliber/')" ]] ; then
 | 
			
		||||
    export PW_WINE_USE=PROTON_STEAM_6.3-8
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# CLI
 | 
			
		||||
case "${1}" in
 | 
			
		||||
    '--help' )
 | 
			
		||||
@@ -620,9 +627,9 @@ if [[ -f "${portwine_exe}" ]] ; then
 | 
			
		||||
        else
 | 
			
		||||
            PW_SHORTCUT="${loc_gui_delete_shortcut}!$PW_GUI_ICON_PATH/separator.png!${loc_delete_shortcut}:98"
 | 
			
		||||
        fi
 | 
			
		||||
        OUTPUT_START=$("${pw_yad}" --text-align=center --text "$PW_COMMENT_DB" --borders=3 --form \
 | 
			
		||||
        OUTPUT_START=$("${pw_yad}" --text-align=center --text "$PW_COMMENT_DB" --borders=${YAD_BORDERS} --form \
 | 
			
		||||
        --title "${portname}-${install_ver} (${scripts_install_ver})" --image "${PW_ICON_FOR_YAD}" --separator=";" --keep-icon-size \
 | 
			
		||||
        --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \
 | 
			
		||||
        --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
 | 
			
		||||
        --field="3D API  : :CB" "${PW_DEFAULT_VULKAN_USE}" \
 | 
			
		||||
        --field="  WINE  : :CB" "${PW_DEFAULT_WINE_USE}" \
 | 
			
		||||
        --field="PREFIX  : :CBE" "${PW_ADD_PREFIXES_TO_GUI}" \
 | 
			
		||||
@@ -660,12 +667,17 @@ else
 | 
			
		||||
        if [[ ! -z $(pidof -s yad) ]] || [[ ! -z $(pidof -s yad_v12_3) ]] ; then
 | 
			
		||||
            kill -s SIGUSR1 $(pgrep -a yad | grep "\--key=${KEY} \--notebook" | awk '{print $1}') > /dev/null 2>&1
 | 
			
		||||
        fi
 | 
			
		||||
        PW_EXEC_FROM_DESKTOP="$(cat "${PORT_WINE_PATH}/${PW_YAD_SET//¬/" "}" | grep Exec | head -n 1 | awk -F"=env " '{print $2}')"
 | 
			
		||||
 | 
			
		||||
        if grep -i "flatpak" /etc/os-release &>/dev/null ;
 | 
			
		||||
        then PW_EXEC_FROM_DESKTOP="$(cat "${PORT_WINE_PATH}/${PW_YAD_SET//¬/" "}" | grep Exec | head -n 1 | sed 's|flatpak run com.castrofidel.portproton|\"${PORT_SCRIPTS_PATH}/start.sh\"|' | awk -F'=' '{print $2}')"
 | 
			
		||||
        else PW_EXEC_FROM_DESKTOP="$(cat "${PORT_WINE_PATH}/${PW_YAD_SET//¬/" "}" | grep Exec | head -n 1 | awk -F"=env " '{print $2}')"
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
        print_info "Restarting PP after choose desktop file..."
 | 
			
		||||
        # stop_portwine
 | 
			
		||||
        export SKIP_CHECK_UPDATES=1
 | 
			
		||||
        /usr/bin/env bash -c "${PW_EXEC_FROM_DESKTOP}" &
 | 
			
		||||
        exit 0 
 | 
			
		||||
        exit 0
 | 
			
		||||
    }
 | 
			
		||||
    export -f run_desktop_b_click
 | 
			
		||||
 | 
			
		||||
@@ -673,6 +685,7 @@ else
 | 
			
		||||
        if gui_question "${port_clear_pfx}" ; then
 | 
			
		||||
            pw_clear_pfx
 | 
			
		||||
            print_info "Restarting PP after clearing prefix..."
 | 
			
		||||
            export SKIP_CHECK_UPDATES=1
 | 
			
		||||
            /usr/bin/env bash -c ${pw_full_command_line[*]} &
 | 
			
		||||
            exit 0
 | 
			
		||||
        fi
 | 
			
		||||
@@ -694,6 +707,7 @@ else
 | 
			
		||||
    gui_pw_update () {
 | 
			
		||||
        try_remove_file "${PORT_WINE_TMP_PATH}/scripts_update_notifier"
 | 
			
		||||
        print_info "Restarting PP for check update..."
 | 
			
		||||
        export SKIP_CHECK_UPDATES=1
 | 
			
		||||
        /usr/bin/env bash -c ${pw_full_command_line[*]} &
 | 
			
		||||
        exit 0
 | 
			
		||||
    }
 | 
			
		||||
@@ -701,6 +715,7 @@ else
 | 
			
		||||
    change_loc () {
 | 
			
		||||
        try_remove_file "${PORT_WINE_TMP_PATH}/${portname}_loc"
 | 
			
		||||
        print_info "Restarting PP for change language..."
 | 
			
		||||
        export SKIP_CHECK_UPDATES=1
 | 
			
		||||
        /usr/bin/env bash -c ${pw_full_command_line[*]} &
 | 
			
		||||
        exit 0
 | 
			
		||||
    }
 | 
			
		||||
@@ -718,13 +733,14 @@ else
 | 
			
		||||
 | 
			
		||||
    gui_open_scripts_from_backup () {
 | 
			
		||||
        cd "${PORT_WINE_TMP_PATH}/scripts_backup/"
 | 
			
		||||
        PW_SCRIPT_FROM_BACKUP=$("${pw_yad_v12_3}" --file --borders=3 --width=650 --height=500 --auto-close \
 | 
			
		||||
        --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "SCRIPTS FROM BACKUP" --file-filter="backup_scripts|scripts_v*.tar.gz" 2>/dev/null )
 | 
			
		||||
        PW_SCRIPT_FROM_BACKUP=$("${pw_yad_v12_3}" --file --borders=${YAD_BORDERS} --width=650 --height=500 --auto-close \
 | 
			
		||||
        --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --title "SCRIPTS FROM BACKUP" --file-filter="backup_scripts|scripts_v*.tar.gz" 2>/dev/null )
 | 
			
		||||
        YAD_STATUS="$?"
 | 
			
		||||
        if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; fi
 | 
			
		||||
        unpack_tar_gz "$PW_SCRIPT_FROM_BACKUP" "${PORT_WINE_PATH}/data/"
 | 
			
		||||
        echo "0" > "${PORT_WINE_TMP_PATH}/scripts_update_notifier"
 | 
			
		||||
        print_info "Restarting PP after backup..."
 | 
			
		||||
        export SKIP_CHECK_UPDATES=1
 | 
			
		||||
        /usr/bin/env bash -c ${pw_full_command_line[*]} &
 | 
			
		||||
        exit 0
 | 
			
		||||
    }
 | 
			
		||||
@@ -782,12 +798,10 @@ else
 | 
			
		||||
    "${pw_yad_v12_3}" --plug=$KEY --tabnum=${PW_GUI_SORT_TABS[1]} --form --columns=3 --align-buttons --keep-icon-size --scroll  \
 | 
			
		||||
    --field="   Dolphin 5.0"!"$PW_GUI_ICON_PATH/dolphin.png"!"${loc_dolphin}":"FBTN" '@bash -c "button_click PW_DOLPHIN"' \
 | 
			
		||||
    --field="   MAME"!"$PW_GUI_ICON_PATH/mame.png"!"${loc_mame}":"FBTN" '@bash -c "button_click PW_MAME"' \
 | 
			
		||||
    --field="   ScummVM"!"$PW_GUI_ICON_PATH/scummvm.png"!"${loc_scummvm}":"FBTN" '@bash -c "button_click PW_SCUMMVM"' \
 | 
			
		||||
    --field="   RetroArch"!"$PW_GUI_ICON_PATH/retroarch.png"!"${loc_retroarch}":"FBTN" '@bash -c "button_click PW_RETROARCH"' \
 | 
			
		||||
    --field="   PPSSPP Windows"!"$PW_GUI_ICON_PATH/ppsspp.png"!"${loc_ppsspp_windows}":"FBTN" '@bash -c "button_click PW_PPSSPP"' \
 | 
			
		||||
    --field="   Citra"!"$PW_GUI_ICON_PATH/citra.png"!"${loc_citra}":"FBTN" '@bash -c "button_click PW_CITRA"' \
 | 
			
		||||
    --field="   Cemu"!"$PW_GUI_ICON_PATH/cemu.png"!"${loc_cemu}":"FBTN" '@bash -c "button_click PW_CEMU"' \
 | 
			
		||||
    --field="   DuckStation"!"$PW_GUI_ICON_PATH/duckstation.png"!"${loc_duckstation}":"FBTN" '@bash -c "button_click PW_DUCKSTATION"' \
 | 
			
		||||
    --field="   ePSXe"!"$PW_GUI_ICON_PATH/epsxe.png"!"${loc_epsxe}":"FBTN" '@bash -c "button_click PW_EPSXE"' \
 | 
			
		||||
    --field="   Project64"!"$PW_GUI_ICON_PATH/project64.png"!"${loc_project64}":"FBTN" '@bash -c "button_click PW_PROJECT64"' \
 | 
			
		||||
    --field="   VBA-M"!"$PW_GUI_ICON_PATH/vba-m.png"!"${loc_vba_m}":"FBTN" '@bash -c "button_click PW_VBA-M"' \
 | 
			
		||||
@@ -795,8 +809,7 @@ else
 | 
			
		||||
    --field="   Xenia"!"$PW_GUI_ICON_PATH/xenia.png"!"${loc_xenia}":"FBTN" '@bash -c "button_click PW_XENIA"' \
 | 
			
		||||
    --field="   FCEUX"!"$PW_GUI_ICON_PATH/fceux.png"!"${loc_fceux}":"FBTN" '@bash -c "button_click PW_FCEUX"' \
 | 
			
		||||
    --field="   xemu"!"$PW_GUI_ICON_PATH/xemu.png"!"${loc_xemu}":"FBTN" '@bash -c "button_click PW_XEMU"' \
 | 
			
		||||
    --field="   Demul"!"$PW_GUI_ICON_PATH/demul.png"!"${loc_demul}":"FBTN" '@bash -c "button_click PW_DEMUL"' \
 | 
			
		||||
    --field="   Rpcs3"!"$PW_GUI_ICON_PATH/rpcs3.png"!"${loc_rpcs3}":"FBTN" '@bash -c "button_click PW_RPCS3"' 2>/dev/null &
 | 
			
		||||
    --field="   Demul"!"$PW_GUI_ICON_PATH/demul.png"!"${loc_demul}":"FBTN" '@bash -c "button_click PW_DEMUL"' 2>/dev/null &
 | 
			
		||||
 | 
			
		||||
    "${pw_yad_v12_3}" --plug=$KEY --tabnum=${PW_GUI_SORT_TABS[0]} --form --columns=3 --align-buttons --keep-icon-size --scroll \
 | 
			
		||||
    --field="   Lesta Game Center"!"$PW_GUI_ICON_PATH/lgc.png"!"":"FBTN" '@bash -c "button_click PW_LGC"' \
 | 
			
		||||
@@ -817,6 +830,7 @@ else
 | 
			
		||||
    --field="   STALCRAFT"!"$PW_GUI_ICON_PATH/stalcraft.png"!"":"FBTN" '@bash -c "button_click PW_STALCRAFT"' \
 | 
			
		||||
    --field="   CONTRACT WARS"!"$PW_GUI_ICON_PATH/cwc.png"!"":"FBTN" '@bash -c "button_click PW_CWC"' \
 | 
			
		||||
    --field="   Stalker Online"!"$PW_GUI_ICON_PATH/so.png"!"":"FBTN" '@bash -c "button_click PW_SO"' \
 | 
			
		||||
    --field="   Modern Warships"!"$PW_GUI_ICON_PATH/mw.png"!"":"FBTN" '@bash -c "button_click PW_MW"' \
 | 
			
		||||
    --field="   Metal War Online"!"$PW_GUI_ICON_PATH/mwo.png"!"":"FBTN" '@bash -c "button_click PW_MWO"' \
 | 
			
		||||
    --field="   Ankama Launcher"!"$PW_GUI_ICON_PATH/ankama.png"!"":"FBTN" '@bash -c "button_click PW_ANKAMA"' \
 | 
			
		||||
    --field="   Indiegala Client"!"$PW_GUI_ICON_PATH/igclient.png"!"":"FBTN" '@bash -c "button_click PW_IGCLIENT"' \
 | 
			
		||||
@@ -828,13 +842,17 @@ else
 | 
			
		||||
    --field="   Path of Exile"!"$PW_GUI_ICON_PATH/poe.png"!"":"FBTN" '@bash -c "button_click PW_POE"' \
 | 
			
		||||
    --field="   Guild Wars 2"!"$PW_GUI_ICON_PATH/gw2.png"!"":"FBTN" '@bash -c "button_click PW_GUILD_WARS_2"' \
 | 
			
		||||
    --field="   Genshin Impact"!"$PW_GUI_ICON_PATH/genshinimpact.png"!"":"FBTN" '@bash -c "button_click PW_GENSHIN_IMPACT"' \
 | 
			
		||||
    --field="   EA App (TEST)"!"$PW_GUI_ICON_PATH/eaapp.png"!"":"FBTN" '@bash -c "button_click PW_EAAPP"' \
 | 
			
		||||
    --field="   Battle Of Space Raiders"!"$PW_GUI_ICON_PATH/bsr.png"!"":"FBTN" '@bash -c "button_click PW_BSR"' 2>/dev/null &
 | 
			
		||||
 | 
			
		||||
    # --field="   Electronic Arts App"!"$PW_GUI_ICON_PATH/eaapp.png"!"":"FBTN" '@bash -c "button_click PW_EAAPP"' 
 | 
			
		||||
    # --field="   Secret World Legends (ENG)"!"$PW_GUI_ICON_PATH/swl.png"!"":"FBTN" '@bash -c "button_click PW_SWL"'
 | 
			
		||||
    # --field="   Bethesda.net Launcher"!"$PW_GUI_ICON_PATH/bethesda.png"!"":"FBTN" '@bash -c "button_click PW_BETHESDA"'
 | 
			
		||||
    # --field="   ROBLOX"!"$PW_GUI_ICON_PATH/roblox.png"!"":"FBTN" '@bash -c "button_click PW_ROBLOX"'
 | 
			
		||||
 | 
			
		||||
    # --field="   DuckStation"!"$PW_GUI_ICON_PATH/duckstation.png"!"${loc_duckstation}":"FBTN" '@bash -c "button_click PW_DUCKSTATION"'
 | 
			
		||||
    # --field="   ScummVM"!"$PW_GUI_ICON_PATH/scummvm.png"!"${loc_scummvm}":"FBTN" '@bash -c "button_click PW_SCUMMVM"'
 | 
			
		||||
    # --field="   Rpcs3"!"$PW_GUI_ICON_PATH/rpcs3.png"!"${loc_rpcs3}":"FBTN" '@bash -c "button_click PW_RPCS3"'
 | 
			
		||||
 | 
			
		||||
    if  [[ `command -v wmctrl` ]] &>/dev/null ; then
 | 
			
		||||
        sleep 2
 | 
			
		||||
        while [[ $(pgrep -a yad_v12_3 | head -n 1 | awk '{print $1}' 2>/dev/null) ]] ; do
 | 
			
		||||
@@ -849,8 +867,8 @@ else
 | 
			
		||||
    export START_FROM_PP_GUI=1
 | 
			
		||||
 | 
			
		||||
    if [[ -z "${PW_ALL_DF}" ]] ; then
 | 
			
		||||
        "${pw_yad_v12_3}" --key=$KEY --notebook --borders=3 --width="${PW_MAIN_SIZE_W}" --height="${PW_MAIN_SIZE_H}" --no-buttons --auto-close \
 | 
			
		||||
        --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "${portname}-${install_ver} (${scripts_install_ver})" \
 | 
			
		||||
        "${pw_yad_v12_3}" --key=$KEY --notebook --borders=${YAD_BORDERS} --width="${PW_MAIN_SIZE_W}" --height="${PW_MAIN_SIZE_H}" --no-buttons --auto-close \
 | 
			
		||||
        --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --title "${portname}-${install_ver} (${scripts_install_ver})" \
 | 
			
		||||
        --tab-pos=bottom --keep-icon-size \
 | 
			
		||||
        --tab="$loc_mg_autoinstall"!"$PW_GUI_ICON_PATH/separator.png"!"" \
 | 
			
		||||
        --tab="$loc_mg_emulators"!"$PW_GUI_ICON_PATH/separator.png"!"" \
 | 
			
		||||
@@ -859,8 +877,8 @@ else
 | 
			
		||||
        --tab="$loc_mg_installed"!"$PW_GUI_ICON_PATH/separator.png"!"" 2>/dev/null
 | 
			
		||||
        YAD_STATUS="$?"
 | 
			
		||||
    else
 | 
			
		||||
        "${pw_yad_v12_3}" --key=$KEY --notebook --borders=3 --width="${PW_MAIN_SIZE_W}" --height="${PW_MAIN_SIZE_H}" --no-buttons --auto-close \
 | 
			
		||||
        --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "${portname}-${install_ver} (${scripts_install_ver})" \
 | 
			
		||||
        "${pw_yad_v12_3}" --key=$KEY --notebook --borders=${YAD_BORDERS} --width="${PW_MAIN_SIZE_W}" --height="${PW_MAIN_SIZE_H}" --no-buttons --auto-close \
 | 
			
		||||
        --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --title "${portname}-${install_ver} (${scripts_install_ver})" \
 | 
			
		||||
        --tab-pos=bottom --keep-icon-size \
 | 
			
		||||
        --tab="$loc_mg_installed"!"$PW_GUI_ICON_PATH/separator.png"!"" \
 | 
			
		||||
        --tab="$loc_mg_autoinstall"!"$PW_GUI_ICON_PATH/separator.png"!"" \
 | 
			
		||||
 
 | 
			
		||||