diff --git a/README-RU.md b/README-RU.md index ce67a09..8d2b53e 100755 --- a/README-RU.md +++ b/README-RU.md @@ -1,5 +1,5 @@
- +

PortProton

Проект, призванный сделать запуск Windows-игр в Linux простым и удобным как для начинающих, так и для опытных пользователей. Проект стремится сделать запуск игр (и другого программного обеспечения) максимально простым, но в то же время предоставляет гибкие настройки для опытных пользователей.

@@ -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_Installer ``` ## Зависимости @@ -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 ``` ## Контакты diff --git a/README.md b/README.md index 9d00f83..4467601 100755 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@
- +

PortProton

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.

@@ -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_Installer ``` ## 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 diff --git a/data_from_portwine/changelog_eng b/data_from_portwine/changelog_eng index f114e6d..bb46ea1 100755 --- a/data_from_portwine/changelog_eng +++ b/data_from_portwine/changelog_eng @@ -2,6 +2,18 @@ You can help us in the development of the project on the website: https://linux- ---------------------------------------- Changelog: +###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 diff --git a/data_from_portwine/changelog_rus b/data_from_portwine/changelog_rus index bd807d9..9f58e77 100755 --- a/data_from_portwine/changelog_rus +++ b/data_from_portwine/changelog_rus @@ -2,8 +2,17 @@ ----------------------------------------- История изменений: +###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 после его установки на некоторых системах diff --git a/data_from_portwine/dxvk.conf b/data_from_portwine/dxvk.conf index 8a6e232..3cc8d70 100755 --- a/data_from_portwine/dxvk.conf +++ b/data_from_portwine/dxvk.conf @@ -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. diff --git a/data_from_portwine/img/gui/download.png b/data_from_portwine/img/gui/download.png new file mode 100644 index 0000000..c55fdef Binary files /dev/null and b/data_from_portwine/img/gui/download.png differ diff --git a/data_from_portwine/img/gui/error.png b/data_from_portwine/img/gui/error.png new file mode 100644 index 0000000..3455a17 Binary files /dev/null and b/data_from_portwine/img/gui/error.png differ diff --git a/data_from_portwine/img/gui/info.png b/data_from_portwine/img/gui/info.png new file mode 100644 index 0000000..ccfa4ed Binary files /dev/null and b/data_from_portwine/img/gui/info.png differ diff --git a/data_from_portwine/img/gui/port_proton.png b/data_from_portwine/img/gui/port_proton.png index 7d1a779..4e5f72e 100644 Binary files a/data_from_portwine/img/gui/port_proton.png and b/data_from_portwine/img/gui/port_proton.png differ diff --git a/data_from_portwine/img/gui/portproton.svg b/data_from_portwine/img/gui/portproton.svg new file mode 100644 index 0000000..efcbe9e --- /dev/null +++ b/data_from_portwine/img/gui/portproton.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data_from_portwine/img/gui/portproton_tray.png b/data_from_portwine/img/gui/portproton_tray.png new file mode 100644 index 0000000..0f94e60 Binary files /dev/null and b/data_from_portwine/img/gui/portproton_tray.png differ diff --git a/data_from_portwine/img/gui/question.png b/data_from_portwine/img/gui/question.png new file mode 100644 index 0000000..019e917 Binary files /dev/null and b/data_from_portwine/img/gui/question.png differ diff --git a/data_from_portwine/img/w.png b/data_from_portwine/img/w.png index b6ac4f1..631ec78 100644 Binary files a/data_from_portwine/img/w.png and b/data_from_portwine/img/w.png differ diff --git a/data_from_portwine/scripts/.Xresources b/data_from_portwine/scripts/.Xresources deleted file mode 100755 index 91daf72..0000000 --- a/data_from_portwine/scripts/.Xresources +++ /dev/null @@ -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 - diff --git a/data_from_portwine/scripts/credits b/data_from_portwine/scripts/credits index 85db4b7..3f7425c 100755 --- a/data_from_portwine/scripts/credits +++ b/data_from_portwine/scripts/credits @@ -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" diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 1e2fa22..0d1f015 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -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" } @@ -119,10 +124,10 @@ try_download_game () { PW_DOWNLOAD_FILE_NAME="$(basename $1)" set -o pipefail curl -C - -# -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 -u -e 's/#//g' -e 's/ //g' -e 's/\.[[:digit:]]%//' | \ + 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/port_proton.png" + --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 @@ -136,18 +141,18 @@ try_download () { [[ ! -f "${pw_yad_v12_3}" ]] && local pw_yad_v12_3="yad" set -o pipefail curl -# -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 -u -e 's/#//g' -e 's/ //g' -e 's/\.[[:digit:]]%//' | \ + 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/port_proton.png" + --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" curl -# -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 -u -e 's/#//g' -e 's/ //g' -e 's/\.[[:digit:]]%//' | \ + 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/port_proton.png" + --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 @@ -161,10 +166,10 @@ try_download_to_path () { PW_DOWNLOAD_FILE_NAME="$(basename $1)" set -o pipefail curl -# -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 -u -e 's/#//g' -e 's/ //g' -e 's/\.[[:digit:]]%//' | \ + 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/port_proton.png" + --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --borders=15 if [ "${PIPESTATUS[0]}" != 0 ] ; then print_error "Failed to download $1." return 1 @@ -231,6 +236,15 @@ 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 +} + unpack_tar_zst () { set -o pipefail unset PW_ZSTD_PORT @@ -240,7 +254,7 @@ unpack_tar_zst () { 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" + 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 @@ -445,6 +459,22 @@ init_wine_ver () { return 0 } +pw_use_command () { + if command -v "$1" $>/dev/null ; then + $@ + else + if [[ -f "${PW_PLUGINS_PATH}/portable/bin/${1}" ]] ; then + if [ ! -z "$LD_LIBRARY_PATH" ] + then env LD_LIBRARY_PATH="${PW_PLUGINS_PATH}/portable/lib/lib64:$LD_LIBRARY_PATH" "${PW_PLUGINS_PATH}/portable/bin/"$@ + else env LD_LIBRARY_PATH="${PW_PLUGINS_PATH}/portable/lib/lib64" "${PW_PLUGINS_PATH}/portable/bin/"$@ + fi + else + print_error "command $1 - not found" + exit 1 + fi + fi +} + pw_init_runtime () { if grep -q -E '(ROSA Fresh|RED OS)' "/etc/os-release" ; then @@ -454,15 +484,15 @@ pw_init_runtime () { 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 @@ -497,7 +527,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="/" @@ -526,7 +556,7 @@ pw_init_runtime () { done # drop portable: libssl 32-bit - try_remove_file "${PW_WINELIB}/portable/lib/lib32/libssl.so.1.1" + try_remove_file "${PW_PLUGINS_PATH}/portable/lib/lib32/libssl.so.1.1" print_info "RUNTIME is enabled" } @@ -676,8 +706,8 @@ 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 @@ -687,12 +717,13 @@ pw_download_libs () { 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)))" @@ -700,7 +731,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)))" @@ -708,11 +739,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" - export PW_XTERM="${PW_WINELIB}/portable/bin/xterm -geometry 159x37 -e" + try_remove_dir "${PW_WINELIB}/portable" return 0 } @@ -738,10 +765,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 @@ -759,7 +786,7 @@ pw_check_and_download_dxvk_and_vkd3d () { 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 if unpack_tar_gz "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}.tar.gz" "${PW_VULKAN_DIR}" ; then @@ -768,10 +795,10 @@ pw_check_and_download_dxvk_and_vkd3d () { 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 @@ -787,7 +814,7 @@ pw_check_and_download_dxvk_and_vkd3d () { 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 if unpack_tar_zst "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}.tar.zst" "${PW_VULKAN_DIR}" ; then @@ -796,10 +823,10 @@ pw_check_and_download_dxvk_and_vkd3d () { 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 @@ -814,10 +841,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 @@ -825,20 +852,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)))" @@ -846,14 +884,29 @@ 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 normal + 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 } @@ -892,8 +945,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 @@ -937,9 +991,13 @@ pw_init_db () { check_variables PW_USE_RAY_TRACING "1" fi - if [[ -f "${PATH_TO_GAME}"/steam_emu.ini ]] && [[ "${update_loc}" == "RUS" ]] ; then - sed -i "s/Language=english/Language=russian/" "${PATH_TO_GAME}"/steam_emu.ini - sed -i "/UserName=/c\UserName=${USER}" "${PATH_TO_GAME}"/steam_emu.ini + 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 @@ -978,22 +1036,24 @@ 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" + 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}") @@ -1012,15 +1072,11 @@ 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[*]} & exit 0 fi else - zenity_error_download && pw_port_update || exit 1 + yad_error_download && pw_port_update || exit 1 fi ;; "${scripts_upd5}") echo " " ;; @@ -1099,14 +1155,14 @@ 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}")" + pw_use_command wrestool -x --output="${PORT_WINE_TMP_PATH}/tmp_img/" -t14 "$(readlink -f "${portwine_exe}")" 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" + pw_use_command 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 [[ ! -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" + pw_use_command icotool -x --output="${PORT_WINE_TMP_PATH}/tmp_img/" "${PORT_WINE_TMP_PATH}/tmp_img/${PORTPROTON_NAME}.ico" 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" @@ -1147,7 +1203,7 @@ 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 diff --git a/data_from_portwine/scripts/lang b/data_from_portwine/scripts/lang index b2f9824..185059d 100755 --- a/data_from_portwine/scripts/lang +++ b/data_from_portwine/scripts/lang @@ -14,8 +14,11 @@ else if [[ "${update_loc}" == "RUS" || "${update_loc}" == "ENG" ]] && [[ -f "${PORT_WINE_TMP_PATH}/${portname}_loc" ]] ; then echo "" else - SET_LANG=`zenity --title "LAUNGUAGE" --text "Select the language" --list --radiolist \ - --column="Set:" --column "Choose language:" TRUE "RUS" FALSE "ENG" ` + [[ ! -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} diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_EPIC b/data_from_portwine/scripts/pw_autoinstall/PW_EPIC index 82f119c..0c1f08a 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_EPIC +++ b/data_from_portwine/scripts/pw_autoinstall/PW_EPIC @@ -4,6 +4,7 @@ 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" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_GOG b/data_from_portwine/scripts/pw_autoinstall/PW_GOG index ef275da..cdd249b 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_GOG +++ b/data_from_portwine/scripts/pw_autoinstall/PW_GOG @@ -5,7 +5,7 @@ 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 diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_LOL b/data_from_portwine/scripts/pw_autoinstall/PW_LOL index 31eec29..5955f2e 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_LOL +++ b/data_from_portwine/scripts/pw_autoinstall/PW_LOL @@ -20,10 +20,10 @@ if try_download_game "https://lol.secure.dyn.riotcdn.net/channels/public/x/insta 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}" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_PROJECT64 b/data_from_portwine/scripts/pw_autoinstall/PW_PROJECT64 index ca2ca77..34b4e11 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_PROJECT64 +++ b/data_from_portwine/scripts/pw_autoinstall/PW_PROJECT64 @@ -4,7 +4,7 @@ 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-* ]] && zenity_error "ERROR: Get the Project64 version." && exit 1 +[[ "${PR64_VER}" != *-3-* ]] && yad_error "ERROR: Get the Project64 version." && exit 1 export LAUNCH_PARAMETERS=("/VERYSILENT") export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Project64${PR64_VER}setup.exe" diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_WOSB b/data_from_portwine/scripts/pw_autoinstall/PW_WOSB index 42e445b..149c853 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_WOSB +++ b/data_from_portwine/scripts/pw_autoinstall/PW_WOSB @@ -8,7 +8,7 @@ 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}" diff --git a/data_from_portwine/scripts/runlib b/data_from_portwine/scripts/runlib index 8785764..770a53b 100755 --- a/data_from_portwine/scripts/runlib +++ b/data_from_portwine/scripts/runlib @@ -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/" @@ -64,11 +60,6 @@ start_portwine () { unset WARN_CYRILLIC_IN_PATH fi - if [ ! -f "${HOME}/.Xresources" ]; then - cp -f "${PORT_SCRIPTS_PATH}/.Xresources" "${HOME}" - xrdb -merge "${HOME}/.Xresources" - fi - if [[ "$PW_USE_OBS_VKCAPTURE" == "1" ]] ; then export OBS_VKCAPTURE="1" export PW_USE_SYSTEM_VK_LAYERS="1" @@ -147,11 +138,23 @@ start_portwine () { enabled_fake_nvidia_videocard () { if [[ "${1}" == 1 ]] ; then - sed -i /'dxgi.customDeviceId =/c dxgi.customDeviceId = 222F' "${DXVK_CONFIG_FILE}" + 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.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}" + unset WINE_HIDE_NVIDIA_GPU WINE_HIDE_AMD_GPU + unset DXVK_NVAPI_DRIVER_VERSION DXVK_NVAPI_ALLOW_OTHER_DRIVERS fi } @@ -160,27 +163,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 1 + 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 var_winedlloverride_update "nvapi,nvapi64,nvngx=n;_nvngx=;nvcuda=b" - export DXVK_ENABLE_NVAPI=1 - export WINE_HIDE_NVIDIA_GPU=0 - export WINE_HIDE_AMD_GPU=1 - export DXVK_NVAPI_DRIVER_VERSION=99999 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 var_winedlloverride_update "nvngx,_nvngx,nvapi,nvapi64=n;nvcuda=b" else enabled_fake_nvidia_videocard 0 @@ -210,8 +224,11 @@ start_portwine () { [[ "${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 + var_vkd3d_config_update dxr var_radv_perftest_config_update rt else var_vkd3d_config_update nodxr @@ -286,8 +303,8 @@ start_portwine () { else export PW_LD_PRELOAD="${GAMEMODEAUTO_NAME}" fi - env LD_LIBRARY_PATH="${PW_WINELIB}/portable/lib/lib64:${PW_WINELIB}/portable/lib/lib32" \ - "${PW_WINELIB}/portable/bin/gamemoded" &>/dev/null & + 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." else @@ -313,7 +330,7 @@ start_portwine () { 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 if [[ ! -f "${WINEPREFIX}/drive_c/windows/Fonts/${link_font}" ]] ; then - try_force_link_file "${WINEDIR}/share/fonts/${link_font}" "${WINEPREFIX}/drive_c/windows/Fonts/${link_font}" + try_force_link_file "${WINEDIR}/share/fonts/${link_font}" "${WINEPREFIX}/drive_c/windows/Fonts/" fi done @@ -348,7 +365,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 @@ -360,7 +377,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 @@ -421,23 +438,20 @@ start_portwine () { 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" @@ -445,6 +459,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 @@ -452,8 +471,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" @@ -478,7 +497,6 @@ start_portwine () { 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" @@ -498,7 +516,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 @@ -536,42 +554,38 @@ 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/" 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 @@ -608,15 +622,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 @@ -744,7 +756,7 @@ 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 @@ -832,14 +844,14 @@ cd "${PORT_SCRIPTS_PATH}" 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" @@ -848,11 +860,11 @@ check_user_conf if [[ -z "${INSTALLING_PORT}" ]] ; then . "${USER_CONF}" pw_port_update + 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 diff --git a/data_from_portwine/scripts/setup.sh b/data_from_portwine/scripts/setup.sh index 9168953..3a78353 100755 --- a/data_from_portwine/scripts/setup.sh +++ b/data_from_portwine/scripts/setup.sh @@ -6,6 +6,7 @@ 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" @@ -17,20 +18,21 @@ if grep -i "flatpak" /etc/os-release &>/dev/null ; then 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 "[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 "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 "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 @@ -41,49 +43,25 @@ if ! grep -i "flatpak" /etc/os-release &>/dev/null ; then 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.3" >> "${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..." /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 diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index e9c9824..182fb60 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -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 @@ -36,7 +37,7 @@ if [[ -f "$portwine_exe" ]] \ && [[ "${WARN_CYRILLIC_IN_PATH}" != 1 ]] \ && echo "${portwine_exe}" | grep -e $'[\u0430-\u044F\u0410-\u042F]' &>/dev/null then - zenity_info "$loc_warn_cyrillic_in_path" + yad_info "$loc_warn_cyrillic_in_path" export WARN_CYRILLIC_IN_PATH="1" fi @@ -99,7 +100,7 @@ portwine_start_debug () { 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" @@ -182,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" @@ -193,7 +194,7 @@ 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 @@ -255,7 +256,7 @@ portwine_start_debug () { 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 @@ -349,8 +350,8 @@ pw_prefix_manager () { --text="${loc_prefix_manager_conf} \"${PW_PREFIX_NAME}\"" \ --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 "$loc_pm" --tab-pos=bottom --tab="$loc_pm_dlls" --tab="$loc_pm_fonts" --tab="$loc_pm_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 @@ -430,8 +431,8 @@ pw_start_cont_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 @@ -459,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 @@ -475,14 +476,14 @@ pw_edit_db () { if [[ "${XDG_SESSION_TYPE}" == "wayland" ]] ; then pw_gui_for_edit_db \ 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_WINE_FULLSCREEN_FSR PW_HIDE_NVIDIA_GPU PW_VIRTUAL_DESKTOP PW_USE_TERMINAL \ + 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_VKBASALT_USER_CONF 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_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_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 @@ -626,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}" \ @@ -728,8 +729,8 @@ 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/" @@ -861,8 +862,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"!"" \ @@ -871,8 +872,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"!"" \ diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index 3ab0418..accc6d3 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -1,11 +1,12 @@ #!/usr/bin/env bash #Author: Castro-Fidel (linux-gaming.ru) -#SCRIPTS_NEXT_VERSION=2251 +#SCRIPTS_NEXT_VERSION=2252 ######################################################################## export PW_MANGOHUD="0" export DEFAULT_MANGOHUD_CONFIG="cpu_stats,cpu_temp,cpu_mhz,gpu_stats,gpu_temp,gpu_core_clock,gpu_mem_clock,vulkan_driver,gpu_name,vram,ram,frame_timing=1,time,arch,wine,toggle_hud=Shift_R+F12,resolution,vkbasalt,gamemode" export PW_VKBASALT_EFFECTS="Curves:cas" -export PW_VKBASALT_FFX_CAS="0.75" +export PW_VKBASALT_FFX_CAS="0.66" +export ENABLE_VKBASALT=1 export GAMESCOPE_ARGS="-F fsr" export PW_RT_MOUNT_RO=("") export PW_RT_MOUNT_RW=("/media" "/mnt" "/run/media/${USER}" "${PORT_WINE_PATH}") @@ -38,8 +39,10 @@ export PW_USE_GAMESCOPE="0" # export GTK_THEME="Adwaita:dark" ###DEFAULT_WINE### export PW_WINE_USE="PROTON_LG" -export PW_PLUGINS_VER="_v12" +export PW_PLUGINS_VER="_v13" export PW_FAKE_DLSS_VER="230506" +export PW_FAKE_DLSS_3_VER="090" +export PW_GALLIUM_NINE_VER="0.9" ###WINE_AND_PROTON_LG### export PW_PROTON_LG_VER="PROTON_LG_8-25-2" export PW_WINE_LG_VER="WINE_LG_9-0" diff --git a/data_from_portwine/scripts/zen_yad_gui b/data_from_portwine/scripts/yad_gui similarity index 89% rename from data_from_portwine/scripts/zen_yad_gui rename to data_from_portwine/scripts/yad_gui index 5f48ee1..9d914b9 100755 --- a/data_from_portwine/scripts/zen_yad_gui +++ b/data_from_portwine/scripts/yad_gui @@ -1,30 +1,50 @@ #!/usr/bin/env bash # Author: Castro-Fidel (linux-gaming.ru) ######################################################################## -zenity_info () { +yad_info () { print_info "$@" - zenity --info --no-wrap --text "$@" 2> /dev/null -} -export -f zenity_info - -zenity_error () { - print_error "$@" - zenity --error --no-wrap --text "$@" 2> /dev/null -} -export -f zenity_error - -zenity_error_download () { - zenity --question --title "$loc_gui_error" --text "$loc_gui_error_download\n" --no-wrap --ok-label="Repeat" --cancel-label="Skip" - if [[ "$?" != 0 ]] ; then - return 1 - else - return 0 + if [[ ! -f "${pw_yad_v12_3}" ]] ; then + local pw_yad_v12_3="yad" + command -v "${pw_yad_v12_3}" &>/dev/null || fatal "yad not found" fi + "${pw_yad_v12_3}" --no-wrap --text "$@" --width=400 --height=50 --borders=15 --title "INFO" \ + --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --image="$PW_GUI_ICON_PATH/info.png" \ + --center --text-align=center --button=OK 2>/dev/null +} +export -f yad_info + +yad_error () { + print_error "$@" + if [[ ! -f "${pw_yad_v12_3}" ]] ; then + local pw_yad_v12_3="yad" + command -v "${pw_yad_v12_3}" &>/dev/null || fatal "yad not found" + fi + "${pw_yad_v12_3}" --no-wrap --text "$@" --width=400 --borders=15 --title "ERROR" \ + --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --image="$PW_GUI_ICON_PATH/error.png" \ + --center --text-align=center --button=EXIT 2>/dev/null +} +export -f yad_error + +yad_error_download () { + if [[ ! -f "${pw_yad_v12_3}" ]] ; then + local pw_yad_v12_3="yad" + command -v "${pw_yad_v12_3}" &>/dev/null || fatal "yad not found" + fi + "${pw_yad_v12_3}" --text "$loc_gui_error_download" --width=400 --borders=15 --title "$loc_gui_error" \ + --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --image="$PW_GUI_ICON_PATH/download.png" \ + --no-wrap --center --text-align=center --button=SKIP:1 --button=REPEAT:0 2>/dev/null + [[ "$?" != 0 ]] && return 1 || return 0 } gui_question () { - zenity --question --title "${inst_set}." --text "$1" --no-wrap &>/dev/null - [ $? -eq "0" ] && return 0 || return 1 + if [[ ! -f "${pw_yad_v12_3}" ]] ; then + local pw_yad_v12_3="yad" + command -v "${pw_yad_v12_3}" &>/dev/null || fatal "yad not found" + fi + "${pw_yad_v12_3}" --text "${1}" --width=400 --borders=15 --title "${inst_set}." \ + --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --image="$PW_GUI_ICON_PATH/question.png" \ + --no-wrap --center --text-align=center --button=NO:1 --button=YES:0 2>/dev/null + [[ "$?" != 0 ]] && return 1 || return 0 } pw_start_progress_bar_cover () { @@ -32,7 +52,7 @@ pw_start_progress_bar_cover () { PW_GIF_SIZE_X=`file "${PW_GIF_FILE}" | awk '{print $7 + 20}'` PW_GIF_SIZE_Y=`file "${PW_GIF_FILE}" | awk '{print $9 + 20}'` "${pw_yad}" --picture --filename="${PW_GIF_FILE}" --close-on-unfocus --no-buttons --undecorated --center \ - --skip-taskbar --width=$PW_GIF_SIZE_X --height=$PW_GIF_SIZE_Y --window-icon="$PW_GUI_ICON_PATH/port_proton.png" > /dev/null 2>&1 & + --skip-taskbar --width=$PW_GIF_SIZE_X --height=$PW_GIF_SIZE_Y --window-icon="$PW_GUI_ICON_PATH/portproton.svg" > /dev/null 2>&1 & export PW_YAD_PID_PROGRESS_BAR_COVER="$!" return 0 } @@ -43,7 +63,7 @@ pw_start_progress_bar_cover_block () { PW_GIF_SIZE_X=`file "${PW_GIF_FILE}" | awk '{print $7 + 20}'` PW_GIF_SIZE_Y=`file "${PW_GIF_FILE}" | awk '{print $9 + 20}'` "${pw_yad}" --picture --filename="${PW_GIF_FILE}" --close-on-unfocus --no-buttons --undecorated --center \ - --skip-taskbar --width=$PW_GIF_SIZE_X --height=$PW_GIF_SIZE_Y --window-icon="$PW_GUI_ICON_PATH/port_proton.png" > /dev/null 2>&1 & + --skip-taskbar --width=$PW_GIF_SIZE_X --height=$PW_GIF_SIZE_Y --window-icon="$PW_GUI_ICON_PATH/portproton.svg" > /dev/null 2>&1 & export PW_YAD_PID_PROGRESS_BAR_COVER_BLOCK="$!" return 0 } @@ -113,7 +133,7 @@ pw_stop_progress_bar_cover_block () { export -f pw_stop_progress_bar_cover_block open_changelog () { - "${pw_yad}" --title="$loc_gui_changelog" --borders=3 --no-buttons --text-align=center \ + "${pw_yad}" --title="$loc_gui_changelog" --borders=${YAD_BORDERS} --no-buttons --text-align=center \ --text-info --show-uri --wrap --width=1200 --height=700 --uri-color=red \ --filename="${PORT_WINE_PATH}/data/${PW_CHANGELOG_FILE}" } @@ -145,9 +165,9 @@ pw_tray_icon () { } export -f tray_icon_click_exit + # --window-icon="$PW_GUI_ICON_PATH/portproton_tray.png" \ "${pw_yad_v12_3}" --notification --no-middle \ - --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \ - --image="$PW_GUI_ICON_PATH/port_proton.png" \ + --image="$PW_GUI_ICON_PATH/portproton_tray.png" \ --command="bash -c tray_icon_click" \ --tooltip="PortProton" \ --menu="| \ @@ -227,8 +247,8 @@ pw_gui_for_edit_db () { --field="${loc_gui_arg_gamescope}!${loc_gui_arg_gamescope_help} :CBE" "\\${GAMESCOPE_ARGS}!-r 60 -F fsr!" 2>/dev/null 1> "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" 2>/dev/null & "${pw_yad_v12_3}" --paned --key="$KEY_EDIT_DB_GUI" --title "EDIT_DB" --text-align=center --height="800" \ - --text "${loc_gui_edit_db} ${PORTWINE_DB}\n ${loc_gui_edit_db_help}" --separator=" " --borders=3 \ - --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \ + --text "${loc_gui_edit_db} ${PORTWINE_DB}\n ${loc_gui_edit_db_help}" --separator=" " --borders=${YAD_BORDERS} \ + --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \ --button="${loc_gui_cancel}"!!"${loc_gui_cancel_help}":1 \ --button="${loc_gui_reset_db}"!!"${loc_gui_reset_db_help}":2 \ --button="${loc_gui_open_db}"!!"${loc_gui_open_db_help}":150 \ @@ -325,7 +345,7 @@ gui_proton_downloader () { fi pw_stop_progress_bar if [[ -z "${PROTON_GE_GIT}" ]] || [[ -z "${PROTON_PW_GIT}" ]] ; then - zenity_error "$loc_gui_check_new_wine_error" + yad_error "$loc_gui_check_new_wine_error" /usr/bin/env bash -c ${pw_full_command_line[*]} & exit 0 fi @@ -357,7 +377,7 @@ gui_proton_downloader () { `"${pw_yad}" --plug=$KEY_WINE --tabnum=5 --list --separator="" --listen \ --column "$loc_gui_del_wine" < "${PORT_WINE_TMP_PATH}/tmp_installed_wine" 1> "${PORT_WINE_TMP_PATH}/tmp_installed_wine_set" 2>/dev/null` & `"${pw_yad}" --key=$KEY_WINE --notebook --width=500 --height=600 --text-align=center \ - --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "WINE MANAGER" --separator="" \ + --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --title "WINE MANAGER" --separator="" \ --tab-pos=top --tab="PROTON-LG" --tab="WINE-KRON4EK" --tab="PROTON-GE" --tab="WINE-GE-CUSTOM" --tab="$loc_gui_installed_wine" 2>/dev/null` YAD_WINE_STATUS="$?" if [[ "$YAD_WINE_STATUS" == "1" || "$YAD_WINE_STATUS" == "252" ]] ; then @@ -419,12 +439,12 @@ gui_proton_downloader () { else try_remove_file "${PORT_WINE_PATH}/data/tmp/${PW_WINE_ARCHIVE}.tar.${archive_type}" try_remove_dir "${PORT_WINE_PATH}/data/dist/${PW_WINE_ARCHIVE}" - zenity_error_download && gui_proton_downloader || exit 1 + yad_error_download && gui_proton_downloader || exit 1 fi fi done else - zenity_error_download && gui_proton_downloader || exit 1 + yad_error_download && gui_proton_downloader || exit 1 fi if [[ "$1" != "silent" ]] ; then @@ -451,9 +471,16 @@ gui_vkBasalt () { fi done if [[ ! -z "${PW_VKBASALT_FFX_CAS}" ]] ; then - VKBASALT_FFX_CAS_GUI=`bc -s <<< "${PW_VKBASALT_FFX_CAS}*100" | sed 's/\..*//'` + if [[ "$PW_VKBASALT_FFX_CAS" == "0" ]] + then export VKBASALT_FFX_CAS_GUI="0" + elif [[ "$PW_VKBASALT_FFX_CAS" == "1" ]] + then export VKBASALT_FFX_CAS_GUI="100" + elif [[ "$PW_VKBASALT_FFX_CAS" == 0.0* ]] + then export VKBASALT_FFX_CAS_GUI="$(echo "$PW_VKBASALT_FFX_CAS" | awk -F'0.0' '{print $2}')" + else export VKBASALT_FFX_CAS_GUI="$(echo "$PW_VKBASALT_FFX_CAS" | awk -F'0.' '{print $2}')" + fi else - VKBASALT_FFX_CAS_GUI=75 + VKBASALT_FFX_CAS_GUI=66 fi export old_IFS=$IFS export IFS="%" @@ -466,8 +493,8 @@ gui_vkBasalt () { --field="AMD FidelityFX - Contrast Adaptive Sharpening"!"$loc_gui_ffx_cas":SCL "${VKBASALT_FFX_CAS_GUI}" \ 1> "${PORT_WINE_TMP_PATH}/tmp_yad_cas_set" 2>/dev/null & - "${pw_yad_v12_3}" --paned --key="$KEY_FX_GUI" --height="650" --title="vkBasalt" --center --borders=3 \ - --separator=" " --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \ + "${pw_yad_v12_3}" --paned --key="$KEY_FX_GUI" --height="650" --title="vkBasalt" --center --borders=${YAD_BORDERS} \ + --separator=" " --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \ --button="$loc_gui_cancel"!!"$loc_gui_cancel_help":1 \ --button="$loc_gui_disabled_vkbas"!!"$loc_gui_disabled_vkbas_help":180 \ --button="$loc_gui_save_changes"!!"$loc_gui_save_changes_help":182 2>/dev/null @@ -494,12 +521,13 @@ gui_vkBasalt () { GUI_FX_RESULT="${GUI_FX_RESULT}cas" export PW_VKBASALT_EFFECTS="${GUI_FX_RESULT}" - if [[ "$YAD_CAS_SET" == "0" ]] ; then - export PW_VKBASALT_FFX_CAS="0" - elif [[ "$YAD_CAS_SET" == "100" ]] ; then - export PW_VKBASALT_FFX_CAS="1" - else - export PW_VKBASALT_FFX_CAS="0`bc -s <<< "scale=2; $YAD_CAS_SET/100"`" + if [[ "$YAD_CAS_SET" == "0" ]] + then export PW_VKBASALT_FFX_CAS="0" + elif [[ "$YAD_CAS_SET" == "100" ]] + then export PW_VKBASALT_FFX_CAS="1" + elif [[ "$YAD_CAS_SET" -lt 10 ]] + then export PW_VKBASALT_FFX_CAS="0.0$YAD_CAS_SET" + else export PW_VKBASALT_FFX_CAS="0.$YAD_CAS_SET" fi edit_db_from_gui PW_VKBASALT_EFFECTS PW_VKBASALT_FFX_CAS ENABLE_VKBASALT /usr/bin/env bash -c ${pw_full_command_line[*]} & @@ -557,8 +585,8 @@ gui_MangoHud () { --field="${loc_gui_mango_fps}!${loc_gui_mango_fps_help} :CB" "${FPS_LIMIT_VAR}!disabled!${GET_REFRESH_RATE}" \ 1> "${PORT_WINE_TMP_PATH}/tmp_yad_mh_fps_limit" 2>/dev/null & - "${pw_yad_v12_3}" --paned --key="$KEY_MH_GUI" --height="650" --title="MangoHud" --center --borders=3 \ - --separator=" " --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \ + "${pw_yad_v12_3}" --paned --key="$KEY_MH_GUI" --height="650" --title="MangoHud" --center --borders=${YAD_BORDERS} \ + --separator=" " --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \ --button="$loc_gui_cancel"!!"$loc_gui_cancel_help":1 \ --button="$loc_gui_disabled_mh"!!"$loc_gui_disabled_mh_help":182 \ --button="$loc_gui_save_changes"!!"$loc_gui_save_changes_help":184 2>/dev/null @@ -627,8 +655,8 @@ portwine_create_shortcut () { if [[ "$1" == "block_name" ]] ; then export name_desktop="${PORTPROTON_NAME}" - OUTPUT=$("${pw_yad}" --title="${inst_set}." --form --borders=3 \ - --window-icon "$PW_GUI_ICON_PATH/port_proton.png" \ + OUTPUT=$("${pw_yad}" --title="${inst_set}." --form --borders=${YAD_BORDERS} \ + --window-icon "$PW_GUI_ICON_PATH/portproton.svg" \ --image "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" \ --field="${sc_info}":LBL "" \ --field=" ${name_desktop}":LBL "" \ @@ -639,8 +667,8 @@ portwine_create_shortcut () { PW_YAD_OUT=$? else export name_desktop="${PORTPROTON_NAME}" - OUTPUT=$("${pw_yad}" --title="${inst_set}." --form --borders=3 \ - --window-icon "$PW_GUI_ICON_PATH/port_proton.png" \ + OUTPUT=$("${pw_yad}" --title="${inst_set}." --form --borders=${YAD_BORDERS} \ + --window-icon "$PW_GUI_ICON_PATH/portproton.svg" \ --image "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" \ --field="${sc_info}":LBL "" \ --field="${sc_name}:" "${name_desktop}" \ @@ -743,8 +771,8 @@ portwine_delete_shortcut () { } portwine_missing_shortcut () { - "${pw_yad}" --title="${loc_gui_error}." --form --borders=3 \ - --window-icon "$PW_GUI_ICON_PATH/port_proton.png" \ + "${pw_yad}" --title="${loc_gui_error}." --form --borders=${YAD_BORDERS} \ + --window-icon "$PW_GUI_ICON_PATH/portproton.svg" \ --image "$PW_GUI_ICON_PATH/error_file.png" \ --text "$loc_gui_missing_shortcut" \ --button="$loc_gui_delete_shortcut":0 \ diff --git a/data_from_portwine/vkBasalt.conf b/data_from_portwine/vkBasalt.conf index 833202c..8721c2d 100755 --- a/data_from_portwine/vkBasalt.conf +++ b/data_from_portwine/vkBasalt.conf @@ -4,6 +4,7 @@ reshadeIncludePath = /run/pressure-vessel/pv-from-host/reshade FilmGrain2 = /run/pressure-vessel/pv-from-host/reshade/shaders/FilmGrain2.fx Curves = /run/pressure-vessel/pv-from-host/reshade/shaders/Curves.fx FakeHDR = /run/pressure-vessel/pv-from-host/reshade/shaders/FakeHDR.fx +LevelsPlus = /run/pressure-vessel/pv-from-host/reshade/shaders/LevelsPlus.fx Colourfulness = /run/pressure-vessel/pv-from-host/reshade/shaders/Colourfulness.fx Bloom = /run/pressure-vessel/pv-from-host/reshade/shaders/Bloom.fx SMAA = /run/pressure-vessel/pv-from-host/reshade/shaders/SMAA.fx @@ -20,10 +21,7 @@ HighPassSharpen = /run/pressure-vessel/pv-from-host/reshade/shaders/HighPassShar HQ4X = /run/pressure-vessel/pv-from-host/reshade/shaders/HQ4X.fx HSLShift = /run/pressure-vessel/pv-from-host/reshade/shaders/HSLShift.fx Layer = /run/pressure-vessel/pv-from-host/reshade/shaders/Layer.fx -Levels = /run/pressure-vessel/pv-from-host/reshade/shaders/Levels.fx -LevelsPlus = /run/pressure-vessel/pv-from-host/reshade/shaders/LevelsPlus.fx LiftGammaGain = /run/pressure-vessel/pv-from-host/reshade/shaders/LiftGammaGain.fx -LightDoF = /run/pressure-vessel/pv-from-host/reshade/shaders/LightDoF.fx LumaSharpen = /run/pressure-vessel/pv-from-host/reshade/shaders/LumaSharpen.fx LUT = /run/pressure-vessel/pv-from-host/reshade/shaders/LUT.fx MagicBloom = /run/pressure-vessel/pv-from-host/reshade/shaders/MagicBloom.fx diff --git a/portwine_install_script/PortProton_1.0 b/portwine_install_script/PortProton_1.0 index 4c301e6..7eed202 100755 --- a/portwine_install_script/PortProton_1.0 +++ b/portwine_install_script/PortProton_1.0 @@ -1,168 +1,162 @@ #!/usr/bin/env bash -# Author: Castro-Fidel (linux-gaming.ru) +# Author: Mikhail Tergoev (linux-gaming.ru) # License MIT ######################################################################## unset PW_AUTOPLAY PW_SET_LANG PW_SILENT_INSTALL export portname="PortProton" -export port_ver=1.0 +export port_ver=1.4 ######################################################################## -export NO_AT_BRIDGE=1 -ENG_LANG="English" -RUS_LANG="Russian" -[ -z "${LANG}" ] && export LANG=C -deflink="${HOME}/PortWINE/${portname}" -[ "$(id -u)" -eq 0 ] && echo "This script should NOT be run by root!" && zenity --error --text "This script should NOT be run by root!" 2> /dev/null && exit 1 -my_dir=$(dirname "$(readlink -f "$0")") -if [ "$my_dir" == "/usr/bin" ] ; then - [ -z "${XDG_DATA_HOME}" ] && export XDG_DATA_HOME="$HOME/.local/share" - if [ -f "${XDG_DATA_HOME}/PortWINE/PortProton/data/scripts/start.sh" ] ; then - /usr/bin/env bash "${XDG_DATA_HOME}/PortWINE/PortProton/data/scripts/start.sh" "$@" +cd "$(dirname "$(readlink -f "$0")")" +script_path="$(pwd)" +def_path="${HOME}/${portname}" +######################################################################## +fatal () { + echo -e "\n${1}\n" + exit 1 +} + +pw_notify_send () { + if command -v notify-send &>/dev/null ; then + if [[ -f "/usr/share/icons/hicolor/scalable/apps/portproton.svg" ]] + then notify-send -u normal -a PortProton -i "/usr/share/icons/hicolor/scalable/apps/portproton.svg" $@ "${PW_NOTIFY_TEXT}" + else notify-send -u normal -a PortProton $@ "${PW_NOTIFY_TEXT}" + fi + fi +} +######################################################################## +if [ "$(id -u)" == "0" ] ; then + $yad_gui --error --text "\nDo not run ${portname} from the superuser!" 2>/dev/null + fatal "Do not run the script from the superuser!" +fi +######################################################################## +unset PW_USE_NS +if command -v yad &>/dev/null +then yad_gui="yad --window-icon=portproton.svg --borders=10 --center --text-align=center" +else PW_USE_NS=1 +fi + +[ -z "${XDG_DATA_HOME}" ] && export XDG_DATA_HOME="$HOME/.local/share" +PP_CONFIG_FILE="${HOME}/.config/${portname}.conf" +if [ -f "${XDG_DATA_HOME}/PortWINE/PortProton/data/scripts/start.sh" ] ; then + echo "${XDG_DATA_HOME}/PortWINE/PortProton" > "${PP_CONFIG_FILE}" +elif [ -f "${HOME}/PortWINE/PortProton/data/scripts/start.sh" ] ; then + echo "${XDG_DATA_HOME}/PortWINE/PortProton" > "${PP_CONFIG_FILE}" +fi + +if [ "$script_path" == "/usr/bin" ] && [ -f "${PP_CONFIG_FILE}" ] ; then + export PORT_WINE_PATH="$(cat "${PP_CONFIG_FILE}" | head -n 1)" + if [ -f "${PORT_WINE_PATH}/data/scripts/start.sh" ] ; then + echo "${port_ver}" > "${PORT_WINE_PATH}/data/tmp/${portname}_ver" + /usr/bin/env bash "${PORT_WINE_PATH}/data/scripts/start.sh" "$@" exit 0 else - if [ ! -z "$(locale | grep "LANG=ru_RU.UTF-8")" ] ; then - PW_SET_LANG=$RUS_LANG - else - PW_SET_LANG=$ENG_LANG - fi - export PW_SILENT_INSTALL="1" - export PW_AUTOPLAY=1 - deflink="${XDG_DATA_HOME}/PortWINE/${portname}" + rm -f "${PP_CONFIG_FILE}" fi fi +if locale | grep "LANG=ru_RU.UTF-8" 2>/dev/null +then PW_SET_LANG="Russian" +else PW_SET_LANG="English" +fi ######################################################################## +export PW_SILENT_INSTALL=1 +export PW_AUTOPLAY=1 export INSTALLING_PORT=1 -export PROGS_INST="" -export vexit=0 ######################################################################## -for PROGS in "wget" "curl" "tar" "awk" "zenity" "cabextract" "pidof" ; do - if [ ! -x "$(command -v "${PROGS}" 2>/dev/null)" ] ; then - PROGS_INST="${PROGS_INST} ${PROGS}" && vexit=1 - fi -done -if [ "${vexit}" -eq "1" ] ; then - echo "You will need to install: ${PROGS_INST}, and restart the script" - exit 1 -fi -######################################################################## -cd "$my_dir" -export links -links="$(pwd)" -######################################################################## -if [ "$1" = "-rus" ] ; then - PW_SET_LANG=$RUS_LANG - export PW_SILENT_INSTALL="1" -elif [ "$1" = "-eng" ] ; then - PW_SET_LANG=$ENG_LANG - export PW_SILENT_INSTALL="1" -elif [ -z "${PW_SET_LANG}" ] ; then - PW_SET_LANG=$(zenity --title "Install $portname" --text "Select installation language:" --list --radiolist \ ---column="" --column "Language" \ - TRUE "$RUS_LANG" \ - FALSE "$ENG_LANG" ) 2> /dev/null - if [ $? -eq 1 ] ; then echo "Installation language not set!" && exit 1 ; fi +if [[ "${PW_USE_NS}" != "1" ]] ; then case $PW_SET_LANG in - "$RUS_LANG") - INFO_TEXT="Вы запустили установщик ${portname} версии ${port_ver}. \n\nЭто некоммерческий продукт и развивается исключительно за идею и Ваши пожертвования. \nВсе права стороннего программного обеспечения принадлежат их владельцам! \nПродолжая установку, Вы автоматически соглашаетесь с данными условиями." > /dev/null 2>&1 ;; - "$ENG_LANG") - INFO_TEXT="You’ve started ${portname} installer v.${port_ver}. \n\nIt is a non-commercial product and is developed only for the idea and with the help of your donations. \nAll third-party software rights belong to their respective owners! \nIf you continue installation, you agree to these terms." > /dev/null 2>&1 ;; - esac - zenity --info --title "INFO" --text "$INFO_TEXT" --no-wrap 2> /dev/null - if [ $? -eq 1 ] ; then echo "INFO message not displayed!" && exit 1 ; fi -fi -######################################################################## -if [ "${PW_SILENT_INSTALL}" = "1" ] ; then - echo "${portname} is installed in ${deflink}" - D_PATH="${deflink}" -else - case $PW_SET_LANG in - "$RUS_LANG") - inst1=$(zenity --title "Установка ${portname}" --text "Выберите путь для установки (обновления) ${portname} \nили оставьте его по умолчанию." --list --radiolist --width=350 --height=220 \ - --column="" --column "Путь:" \ - TRUE "${deflink}" \ - FALSE "Другой путь..." ) 2> /dev/null - if [ $? -eq 1 ] ; then echo "Installation path not set!" && exit 1 ; fi + "Russian") + inst1=$($yad_gui --title "Install ${portname}" --text "Выберите путь для установки (обновления) ${portname},\nили оставьте его по умолчанию.\n\nВнимание:\nУстанавливать необходимо на файловую систему Linux (ext4, btrfs и прочие)." --list --radiolist --width=600 --height=200 \ + --column="Выбор" --column "Путь:" \ + TRUE "${def_path}" \ + FALSE "Другой путь...") + [ "$?" != "0" ] && exit 1 + inst1="$(echo $inst1 | awk -F'|' '{print $2}')" case $inst1 in - "${deflink}") - D_PATH="${deflink}" ;; + "${def_path}") + D_PATH="${def_path}" ;; "Другой путь...") - D_PATH=$(zenity --file-selection --directory --title="Выберите путь..." ) - D_PATH="${D_PATH}/${portname}" ;; + echo 111 + D_PATH="$($yad_gui --file --directory --title="Выберите путь..." --width=800 --height=800)" ;; esac ;; - "$ENG_LANG") - inst1=$(zenity --title "Install ${portname}" --text "Choose path to install (update) ${portname} \nor leave it as default." --list --radiolist --width=350 --height=220 \ - --column="" --column "Path:" \ - TRUE "${deflink}" \ - FALSE "Other path..." ) 2> /dev/null - if [ $? -eq 1 ] ; then echo "Installation path not set!" && exit 1; fi + "English") + inst1=$($yad_gui --title "Install ${portname}" --text "Select the installation path (update) port,\nor leave it in default." --list --radiolist --width=600 --height=200 \ + --column="Set..." --column "Path:" \ + TRUE "${def_path}" \ + FALSE "Other path...") + inst1="$(echo $inst1 | awk -F'|' '{print $2}')" + [ "$?" != "0" ] && exit 1 case $inst1 in - "${deflink}") - D_PATH="${deflink}" ;; + "${def_path}") + D_PATH="${def_path}" ;; "Other path...") - D_PATH=$(zenity --file-selection --directory --title="Choose your path..." ) - D_PATH="${D_PATH}/${portname}" ;; + D_PATH="$($yad_gui --file --directory --title="Select the path...")" ;; esac ;; esac - if [ $? -eq 1 ] ; then echo "error" && exit 1 ; fi + [[ -z "${D_PATH}" ]] && fatal + echo "${D_PATH}" | grep -i "${portname}" 2>/dev/null || D_PATH="${D_PATH}/${portname}" + + case $PW_SET_LANG in + "Russian") + progress_bar() { + $yad_gui --progress --title="Установка..." --text="Настройка ${portname}" --pulsate --auto-close --auto-kill --width=500 + } ;; + "English") + progress_bar() { + $yad_gui --progress --title="Install..." --text="Install ${portname}" --pulsate --auto-close --auto-kill --width=500 + } ;; + esac +else + D_PATH="${def_path}" + PW_NOTIFY_TEXT="Installing PortProton..." + pw_notify_send fi ######################################################################## -case $PW_SET_LANG in - "$RUS_LANG") - progress_bar() { - zenity --progress --title="Установка..." --text="Установка ${portname}" --pulsate --auto-close --auto-kill --width=450 > /dev/null 2>&1 - } ;; - "$ENG_LANG") - progress_bar() { - zenity --progress --title="Install..." --text="Install ${portname}" --pulsate --auto-close --auto-kill --width=450 > /dev/null 2>&1 - } ;; -esac -######################################################################## export PORT_WINE_PATH="${D_PATH}" -scripts_dir="${PORT_WINE_PATH}/data/scripts" +echo "${PORT_WINE_PATH}" > "${PP_CONFIG_FILE}" if [ ! -d "${PORT_WINE_PATH}" ] ; then - mkdir -p "$PORT_WINE_PATH" + mkdir -p "$PORT_WINE_PATH" || fatal "Cannot create a directory: $PORT_WINE_PATH" else rm -fr "${PORT_WINE_PATH}/data/tmp" - rm -f "${scripts_dir}/"* > /dev/null 2>&1 + rm -f "${PORT_WINE_PATH}/data/scripts/"* 2>/dev/null fi ######################################################################## mkdir -p "${PORT_WINE_PATH}/data/tmp" echo "${port_ver}" > "${PORT_WINE_PATH}/data/tmp/${portname}_ver" -case $PW_SET_LANG in - "$RUS_LANG") echo "RUS" > "${PORT_WINE_PATH}/data/tmp/${portname}_loc" ;; - "$ENG_LANG") echo "ENG" > "${PORT_WINE_PATH}/data/tmp/${portname}_loc" ;; +case "${PW_SET_LANG}" in + "Russian") echo "RUS" > "${PORT_WINE_PATH}/data/tmp/${portname}_loc" ;; + "English") echo "ENG" > "${PORT_WINE_PATH}/data/tmp/${portname}_loc" ;; esac ######################################################################## +if [[ "${PW_USE_NS}" != "1" ]] ; then + PW_NOTIFY_TEXT="Installing PortProton..." + pw_notify_send +fi export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp" cd "${PORT_WINE_PATH}" -try_download_scripts () { - wget -O "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" -nd -c --read-timeout 300 \ - --retry-connrefused --timeout 15 --tries 3 \ - --user-agent="Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" \ - "https://github.com/Castro-Fidel/PortWINE/archive/refs/heads/master.tar.gz" - if [ "$?" = "0" ] ; then - tar -xvzf "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" -C "${PORT_WINE_TMP_PATH}" - if [ "$?" = "0" ] ; then - [ ! -d "${PORT_WINE_PATH}/data/" ] && mkdir "${PORT_WINE_PATH}/data/" - cp -fr "${PORT_WINE_TMP_PATH}/PortWINE-master/data_from_portwine/"* "${PORT_WINE_PATH}/data/" - rm -f "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" - rm -fr "${PORT_WINE_TMP_PATH}/PortWINE-master/" - export scripts_current_ver - scripts_current_ver=$(cat "${scripts_dir}/var" | grep SCRIPTS_NEXT_VERSION | awk -F "=" '{print $2}') - echo "${scripts_current_ver}" > "${PORT_WINE_TMP_PATH}/scripts_ver" - else - rm -f "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" - try_download_scripts - fi - else - try_download_scripts - fi -} -if [ "${PW_SILENT_INSTALL}" = "1" ] && [ ! -f "/usr/bin/portproton" ] ; then - try_download_scripts -else - try_download_scripts | progress_bar +echo -e "\nTry download scripts from gitlab.eterfund.ru..." +if ! curl -# -A "Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" -H 'Cache-Control: no-cache, no-store' -H 'Pragma: no-cache' \ + -L "https://gitlab.eterfund.ru/Castro-Fidel/PortWINE/-/archive/master/PortWINE-master.tar.gz" \ + -o "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" +then + echo -e "\nError.\nTry download scripts from github.com..." + curl -# -A "Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" -H 'Cache-Control: no-cache, no-store' -H 'Pragma: no-cache' \ + -L "https://github.com/Castro-Fidel/PortWINE/archive/refs/heads/master.tar.gz" \ + -o "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" + [ "$?" != "0" ] && fatal "Critical error during file download!" +fi +echo "Try unpacking scripts..." +tar -xvzf "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" -C "${PORT_WINE_TMP_PATH}" +if [ "$?" = "0" ] ; then + [ ! -d "${PORT_WINE_PATH}/data/" ] && mkdir "${PORT_WINE_PATH}/data/" + cp -fr "${PORT_WINE_TMP_PATH}/PortWINE-master/data_from_portwine/"* "${PORT_WINE_PATH}/data/" + rm -f "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" + rm -fr "${PORT_WINE_TMP_PATH}/PortWINE-master/" + export scripts_current_ver=$(cat "${PORT_WINE_PATH}/data/scripts/var" | grep SCRIPTS_NEXT_VERSION | awk -F "=" '{print $2}') + echo "${scripts_current_ver}" > "${PORT_WINE_TMP_PATH}/scripts_ver" +else + rm -f "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" + [ "$?" != "0" ] && fatal "Critical error during file unpacking!" fi -chmod 755 -R "${PORT_WINE_PATH}" ######################################################################## -cd "${scripts_dir}" -/usr/bin/env bash "${scripts_dir}/setup.sh" && exit 0 +cd "${PORT_WINE_PATH}/data/scripts" +/usr/bin/env bash "${PORT_WINE_PATH}/data/scripts/setup.sh" && exit 0