Merge branch 'devel' into added-main-menu1
This commit is contained in:
commit
8715bddcd7
22
README-RU.md
22
README-RU.md
@ -1,6 +1,6 @@
|
||||
<div align="center">
|
||||
<div style="text-align: center;">
|
||||
<img src="https://raw.githubusercontent.com/Castro-Fidel/PortWINE/master/data_from_portwine/img/gui/portproton.svg" width="64">
|
||||
<h1 align="center">PortProton</h1>
|
||||
<h1 style="text-align: center;">PortProton</h1>
|
||||
<a href="https://github.com/Castro-Fidel/PortWINE/blob/master/LICENSE">
|
||||
<img src="https://img.shields.io/github/license/Castro-Fidel/PortWine?logo=github" alt="GitHub License">
|
||||
</a>
|
||||
@ -10,22 +10,24 @@
|
||||
</a>
|
||||
<img src="https://img.shields.io/youtube/channel/subscribers/UCbI8OJx2D3q-4QKt4LffXTw?style=flat&logo=youtube" alt="YouTube Channel Subscribers">
|
||||
<br/>
|
||||
<p align="center">
|
||||
<p style="text-align: center;">
|
||||
Проект, призванный сделать запуск Windows-игр в Linux простым и удобным как для начинающих, так и для опытных пользователей.<br>
|
||||
Проект стремится сделать запуск игр (и другого программного обеспечения) максимально простым, но в то же время предоставляет гибкие настройки для опытных пользователей.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
# **Язык README**
|
||||
|
||||
**Русский** - [English](README.md)
|
||||
|
||||
## Внимание
|
||||
|
||||
**Официальный сайт проекта** с сентября 2022 года: https://linux-gaming.ru. **Любой другой сайт - фальшивка!**
|
||||
|
||||
## Особенности
|
||||
|
||||
- Основан на версии WINE от Valve (Proton) и ее модификациях (Proton GE).
|
||||
Включает набор скриптов, объединенных с самим wine-proton, контейнер Steam Runtime Sniper с добавлением портированных версий MANGOHUD (вывод полезной информации в окно игры: FPS, FrameTime, CPU, GPU и т.д.) и vkBasalt (улучшение графики в играх, очень хорош в связке с FSR, DLSS) + множество уже настроенных оптимизаций для максимальной производительности.
|
||||
Включает набор скриптов, объединенных с самим wine-proton, контейнер Steam Runtime Sniper с добавлением портированных версий MANGOHUD (вывод полезной информации в окно игры: FPS, FrameTime, CPU, GPU и т.д.) и vkBasalt (улучшение графики в играх, очень хорош в связке с FSR, DLSS) + множество уже настроенных оптимизаций для максимальной производительности.
|
||||
|
||||
- Реализована автоматическая установка одним щелчком мыши (на вкладке АВТОУСТАНОВКА) популярных лаунчеров, таких как: WGC, Epic Games, Battle.net, Origin, EVE Online, RockStar, Ubisoft connect , League of Legends и многие другие.
|
||||
|
||||
@ -37,7 +39,7 @@
|
||||
|
||||
* WINE-PROTON: https://github.com/ValveSoftware/Proton
|
||||
|
||||
* WINE-PROTON-GE: https://github.com/GloriousEggroll/proton-ge-custom/
|
||||
* WINE-PROTON-GE: https://github.com/GloriousEggroll/proton-ge-custom
|
||||
|
||||
## Установка с помощью пакетов
|
||||
|
||||
@ -55,6 +57,7 @@ exit
|
||||
```
|
||||
|
||||
`Вариант установки с помощью eepm`:
|
||||
|
||||
```sh
|
||||
su -
|
||||
|
||||
@ -66,13 +69,13 @@ exit
|
||||
```
|
||||
|
||||
* **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)
|
||||
[portproton_1.7-2_amd64.deb](https://github.com/Castro-Fidel/PortProton_dpkg/releases/download/portproton_1.7-2_amd64/portproton_1.7-2_amd64.deb)
|
||||
|
||||
* **Arch Linux** и производные (Manjaro, Garuda, и т.д.) :
|
||||
[AUR](https://aur.archlinux.org/packages/portproton)
|
||||
[AUR](https://aur.archlinux.org/packages/portproton)
|
||||
|
||||
* **OpenSuse**:
|
||||
[OBS](https://software.opensuse.org/download/package?package=portproton&project=home%3ABoria138%3APortProton)
|
||||
* **openSUSE**:
|
||||
[OBS](https://software.opensuse.org/download/package?package=portproton&project=home%3ABoria138%3APortProton)
|
||||
|
||||
* **ROSA Linux** устанавливается с помощью этой команды:
|
||||
|
||||
@ -194,6 +197,7 @@ sudo eopkg it curl file bubblewrap curl icoutils tar zstd cabextract xdg-utils
|
||||
```
|
||||
|
||||
* **Void**
|
||||
|
||||
```sh
|
||||
sudo xbps-install -Su void-repo-multilib
|
||||
|
||||
|
45
README.md
45
README.md
@ -1,6 +1,6 @@
|
||||
<div align="center">
|
||||
<div style="text-align: center;">
|
||||
<img src="https://raw.githubusercontent.com/Castro-Fidel/PortWINE/master/data_from_portwine/img/gui/portproton.svg" width="64">
|
||||
<h1 align="center">PortProton</h1>
|
||||
<h1 style="text-align: center;">PortProton</h1>
|
||||
<a href="https://github.com/Castro-Fidel/PortProton_ALT/blob/main/LICENSE">
|
||||
<img src="https://img.shields.io/github/license/Castro-Fidel/PortWINE" alt="GitHub License">
|
||||
</a>
|
||||
@ -10,40 +10,45 @@
|
||||
</a>
|
||||
<img src="https://img.shields.io/youtube/channel/subscribers/UCbI8OJx2D3q-4QKt4LffXTw?style=flat&logo=youtube" alt="YouTube Channel Subscribers">
|
||||
<br/>
|
||||
<p align="center">
|
||||
<p style="text-align: center;">
|
||||
A project designed to make running Windows games on Linux easy and convenient for both beginners and advanced users.<br>
|
||||
The project aims to simplify the process of launching games (and other software) while also providing flexible settings for experienced users.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
# **Readme Language**
|
||||
|
||||
**English** - [Русский](README-RU.md)
|
||||
|
||||
## Attention
|
||||
The **official website of the project** since September 2022: https://linux-gaming.ru. **Any other site is fake!**
|
||||
|
||||
The **official website of the project** since September 2022 is: https://linux-gaming.ru. **Any other site is fake!**
|
||||
|
||||
## Features
|
||||
|
||||
- Based on the version of WINE from Valve (Proton) and its modifications (Proton GE).
|
||||
Includes a set of scripts combined with wine-proton itself, a Steam Runtime Sniper container with the addition of ported versions of MANGOHUD (output useful information over the game window: FPS, FrameTime, CPU, GPU, etc) and vkBasalt (improvement of graphics in games, very good in in conjunction with FSR, DLSS) + many already configured optimizations for maximum performance.
|
||||
Includes a set of scripts combined with wine-proton itself, a Steam Runtime Sniper container with the addition of
|
||||
ported mangoHud (output useful information over the game window: FPS, frametime, CPU, GPU, etc.),
|
||||
vkBasalt (improvement of graphics in games, great alongside FSR or DLSS) versions,
|
||||
and many already configured optimizations for maximum performance.
|
||||
- Implemented one-click auto-installation (in the AUTOINSTALL tab) of popular launchers such as WGC, Epic Games, Battle.net, Origin, EVE Online, Rockstar, Ubisoft Connect, League of Legends, and many others.
|
||||
|
||||
- Implemented one-click auto-installation (in the AUTOINSTALL tab ) of popular launchers such as: WGC, Epic Games, Battle.net, Origin, EVE Online, RockStar, Ubisoft connect , League of Legends and many others.
|
||||
- For fans of console games, there are many console emulators to choose from (in the EMULATORS tab): PPSSPP, Citra, Cemu, ePSXe, MAME, and many others.
|
||||
|
||||
- For fans of console games, there are many console emulators to choose from (in the EMULATORS tab ): PPSSPP, Citra, Cemu, ePSXe, MAME and many others.
|
||||
|
||||
**PLEASE DO NOT REPORT BUGS ENCOUNTERED WITH THIS AT WINEHQ OR VALVE SOFTWARE!**
|
||||
**PLEASE DON'T REPORT BUGS ENCOUNTERED WITH THIS AT WINEHQ OR VALVE SOFTWARE!**
|
||||
|
||||
## **Wine sources used in PortWINE:**
|
||||
|
||||
* WINE-PROTON: https://github.com/ValveSoftware/Proton
|
||||
|
||||
* WINE-PROTON-GE: https://github.com/GloriousEggroll/proton-ge-custom/
|
||||
* WINE-PROTON-GE: https://github.com/GloriousEggroll/proton-ge-custom
|
||||
|
||||
## Installation using packages
|
||||
|
||||
* **Alt Linux** (package in the official repository) is installed with the command:
|
||||
|
||||
`apt-get`:
|
||||
|
||||
```sh
|
||||
su -
|
||||
|
||||
@ -55,6 +60,7 @@ exit
|
||||
```
|
||||
|
||||
`epm`:
|
||||
|
||||
```sh
|
||||
su -
|
||||
|
||||
@ -71,14 +77,14 @@ exit
|
||||
sudo urpmi portproton
|
||||
```
|
||||
|
||||
* **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)
|
||||
* **Ubuntu 24.04**, **Debian 12**, **Linux Mint 21.x**, and **Deepin**:
|
||||
[portproton_1.7-2_amd64.deb](https://github.com/Castro-Fidel/PortProton_dpkg/releases/download/portproton_1.7-2_amd64/portproton_1.7-2_amd64.deb)
|
||||
|
||||
* **Arch Linux** and derivatives (Manjaro, Garuda, etc.) :
|
||||
[AUR](https://aur.archlinux.org/packages/portproton)
|
||||
* **Arch Linux** and derivatives (Manjaro, Garuda, etc.):
|
||||
[AUR](https://aur.archlinux.org/packages/portproton)
|
||||
|
||||
* **OpenSuse**:
|
||||
[OBS](https://software.opensuse.org/download/package?package=portproton&project=home%3ABoria138%3APortProton)
|
||||
* **openSUSE**:
|
||||
[OBS](https://software.opensuse.org/download/package?package=portproton&project=home%3ABoria138%3APortProton)
|
||||
|
||||
* **Fedora 38+** and **Nobara**:
|
||||
|
||||
@ -88,7 +94,7 @@ sudo dnf copr enable boria138/portproton
|
||||
sudo dnf install portproton
|
||||
```
|
||||
|
||||
* **FlatHub**
|
||||
* **Flathub**
|
||||
|
||||
```sh
|
||||
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||
@ -97,7 +103,7 @@ flatpak install flathub ru.linux_gaming.PortProton
|
||||
|
||||
## Universal (manual) installation
|
||||
|
||||
**ATTENTION** : with the universal method of installing PortProton, dependencies must be installed manually!
|
||||
**ATTENTION**: with the universal method of installing PortProton, dependencies must be installed manually!
|
||||
|
||||
```sh
|
||||
wget -c "https://github.com/Castro-Fidel/PortProton_ALT/raw/main/portproton" && sh portproton
|
||||
@ -107,7 +113,7 @@ wget -c "https://github.com/Castro-Fidel/PortProton_ALT/raw/main/portproton" &&
|
||||
|
||||
* **NVIDIA graphics card users**
|
||||
|
||||
If you have a video card from NVIDIA and a proprietary driver is installed, then you need to check if lib32-nvidia-utils is installed (no 32-bit game will work without it)
|
||||
If you have a video card from NVIDIA and a proprietary driver is installed, then you need to check if lib32-nvidia-utils is installed (32-bit games don't work without it)
|
||||
|
||||
* **Ubuntu / Linux Mint / Pop!_OS**
|
||||
|
||||
@ -196,6 +202,7 @@ sudo eopkg it curl file bubblewrap curl icoutils tar zstd cabextract xdg-utils o
|
||||
```
|
||||
|
||||
* **Void**
|
||||
|
||||
```sh
|
||||
sudo xbps-install -Su void-repo-multilib
|
||||
|
||||
|
@ -2,6 +2,29 @@ You can help us in the development of the project on the website: https://linux-
|
||||
----------------------------------------
|
||||
Changelog:
|
||||
|
||||
###Scripts version 2328### / Date: 25.07.2024 / Download update size: 4 megabytes
|
||||
* updated icon for setup files (thanks to Dervart)
|
||||
* fixed interface alignment for KDE
|
||||
* added automatic creation of shortcuts by checking "create shortcut" in the installer itself (thanks to Boria138 and Htylol)
|
||||
* settings file editor switched to yad (thanks to Htylol)
|
||||
|
||||
###Scripts version 2327### / stable / Date: 25.07.2024 / Download update size: 4 megabytes
|
||||
* cumulative update to the stable version of PortProton scripts
|
||||
|
||||
###Scripts version 2326### / Date: 24.07.2024 / Download update size: 4 megabytes
|
||||
* updated README.md (thanks Kazevic)
|
||||
* user.conf editor switched to yad (thanks to Htylol)
|
||||
* fixed disk mounting in dosdevice (thanks to Boria138)
|
||||
* added drive S which always links to the directory with games in STEAM (for easy installing mods in games from the STEAM library)
|
||||
|
||||
###Scripts version 2325### / Date: 22.07.2024 / Download update size: 4 megabytes
|
||||
* updated Caliber auto-installation
|
||||
* fixed Yabause icon display
|
||||
* fixed adding icons when creating a shortcut to the steam library (thanks to Boria138)
|
||||
* updated gamescope settings window (thanks to Htylol)
|
||||
* updated language selection function (thanks to Htylol)
|
||||
* fix icon creation on systems using SELinux (thanks to Boria138)
|
||||
|
||||
###Scripts version 2324### / Date: 18.07.2024 / Download update size: 4 megabytes
|
||||
* updated Russian translation (thanks to Eljeyna)
|
||||
|
||||
|
@ -2,6 +2,29 @@
|
||||
-----------------------------------------
|
||||
История изменений:
|
||||
|
||||
###Scripts version 2328### / Дата: 25.07.2024 / Размер скачиваемого обновления: 4 мегабайта
|
||||
* обновлена иконка для setup файлов (спасибо Dervart)
|
||||
* исправлена центровка интерфейса для KDE
|
||||
* добавлено автоматическое создание ярлыков галочкой "создать ярлык" в самом установщике (спасибо Boria138 и Htylol)
|
||||
* редактор файлов настроек переключен на yad (спасибо Htylol)
|
||||
|
||||
###Scripts version 2327### / stable / Дата: 25.07.2024 / Размер скачиваемого обновления: 4 мегабайта
|
||||
* кумулятивное обновление стабильной версии скриптов PortProton
|
||||
|
||||
###Scripts version 2326### / Дата: 24.07.2024 / Размер скачиваемого обновления: 4 мегабайта
|
||||
* обновлен README.md (спасибо Kazevic)
|
||||
* редактор user.conf переключен на yad (спасибо Htylol)
|
||||
* исправлена работа монтирования дисков в dosdevice (спасибо Boria138)
|
||||
* добавлен диск S который всегда ссылается на каталог с играми в STEAM (для удобства установки русификаторов и модов в игры из библиотеки STEAM)
|
||||
|
||||
###Scripts version 2325### / Дата: 22.07.2024 / Размер скачиваемого обновления: 4 мегабайта
|
||||
* обновлена автоустановка Caliber
|
||||
* исправлено отображение иконки Yabause
|
||||
* исправлено добавление иконок при создании ярлыка в библиотеку steam (спасибо Boria138)
|
||||
* обновлено окно настроек gamescope (спасибо Htylol)
|
||||
* обновлена функция выбора языка (спасибо Htylol)
|
||||
* исправление создания иконок в системах использующих SELinux (спасибо Boria138)
|
||||
|
||||
###Scripts version 2324### / Дата: 18.07.2024 / Размер скачиваемого обновления: 4 мегабайта
|
||||
* доработана русская локализация (спасибо Eljeyna)
|
||||
|
||||
|
598
data_from_portwine/img/gui/duplicate.svg
Normal file
598
data_from_portwine/img/gui/duplicate.svg
Normal file
@ -0,0 +1,598 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="48"
|
||||
version="1.1"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
id="svg1"
|
||||
sodipodi:docname="duplicate.svg"
|
||||
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
|
||||
xml:space="preserve"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:zoom="11.313709"
|
||||
inkscape:cx="37.388269"
|
||||
inkscape:cy="23.511299"
|
||||
inkscape:window-width="2991"
|
||||
inkscape:window-height="1194"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg1" /><defs
|
||||
id="defs5455"><linearGradient
|
||||
id="linearGradient4256"><stop
|
||||
style="stop-color:#8cbdf8"
|
||||
id="stop4258" /><stop
|
||||
offset="1"
|
||||
style="stop-color:#d5e8ff"
|
||||
id="stop4260" /></linearGradient><linearGradient
|
||||
id="linearGradient4232"><stop
|
||||
style="stop-color:#3889e9"
|
||||
id="stop4234-0" /><stop
|
||||
offset="1"
|
||||
style="stop-color:#5ea5fb"
|
||||
id="stop4236" /></linearGradient><linearGradient
|
||||
id="a"
|
||||
x1="300"
|
||||
x2="300"
|
||||
y1="44"
|
||||
y2="556"
|
||||
gradientUnits="userSpaceOnUse"><stop
|
||||
offset="0"
|
||||
stop-color="#46bac6"
|
||||
id="stop1" /><stop
|
||||
offset="1"
|
||||
stop-color="#1497a5"
|
||||
id="stop2" /></linearGradient><linearGradient
|
||||
id="linearGradient4194"><stop
|
||||
style="stop-color:#b5006a"
|
||||
id="stop4196" /><stop
|
||||
offset="1"
|
||||
style="stop-color:#c70073"
|
||||
id="stop4198" /></linearGradient><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient848"
|
||||
id="linearGradient854"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="203.3689"
|
||||
y1="55.640129"
|
||||
x2="244.86897"
|
||||
y2="55.640129" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient848"><stop
|
||||
style="stop-color:#4b8bd4;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop844" /><stop
|
||||
style="stop-color:#3b6ca7;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop846" /></linearGradient><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient848"
|
||||
id="linearGradient1004"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="387.57144"
|
||||
y1="505.798"
|
||||
x2="445.57141"
|
||||
y2="505.798"
|
||||
gradientTransform="matrix(1.3888828,0,0,1,-172.49732,0)" /><linearGradient
|
||||
id="linearGradient4301"><stop
|
||||
style="stop-color:#f10000;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop4303" /><stop
|
||||
style="stop-color:#b20000;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop4305" /></linearGradient><linearGradient
|
||||
id="linearGradient4305"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4307" /><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4309" /></linearGradient><linearGradient
|
||||
id="linearGradient4428"
|
||||
y1="4.7160001"
|
||||
x1="17.483"
|
||||
y2="39.833"
|
||||
x2="37.757999"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-0.99376,-0.00423,0.00423,0.98887,47.823,2.34)"><stop
|
||||
stop-color="#3fc380"
|
||||
id="stop4430"
|
||||
style="stop-color:#3cc6ae;stop-opacity:1" /><stop
|
||||
offset="1"
|
||||
stop-color="#3f8ed3"
|
||||
id="stop4432"
|
||||
style="stop-color:#3f7ad3;stop-opacity:1" /></linearGradient><linearGradient
|
||||
id="a-2"
|
||||
y1="543.79999"
|
||||
y2="503.79999"
|
||||
x2="0"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-384.57,-499.8)"><stop
|
||||
stop-color="#2a2c2f"
|
||||
id="stop7" /><stop
|
||||
offset="1"
|
||||
stop-color="#424649"
|
||||
id="stop9" /></linearGradient><linearGradient
|
||||
id="b"
|
||||
y1="532.79999"
|
||||
y2="506.79999"
|
||||
x2="0"
|
||||
gradientUnits="userSpaceOnUse"><stop
|
||||
stop-color="#989a9b"
|
||||
id="stop12" /><stop
|
||||
offset="1"
|
||||
stop-color="#f6f6f7"
|
||||
id="stop14" /></linearGradient><linearGradient
|
||||
id="c"
|
||||
y1="522.79999"
|
||||
x1="403.57001"
|
||||
y2="534.79999"
|
||||
x2="413.26001"
|
||||
gradientUnits="userSpaceOnUse"><stop
|
||||
stop-color="#020303"
|
||||
id="stop17" /><stop
|
||||
offset="1"
|
||||
stop-color="#424649"
|
||||
stop-opacity="0"
|
||||
id="stop19" /></linearGradient><linearGradient
|
||||
xlink:href="#c"
|
||||
id="d"
|
||||
y1="521.79999"
|
||||
x1="400.76999"
|
||||
y2="533.59998"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x2="412.57001" /><path
|
||||
fill-rule="evenodd"
|
||||
id="e"
|
||||
d="m 426.57,529.8 -16,11 -8,-8 -2,-9 17,-5 z" /><linearGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x2="0"
|
||||
y2="503.79999"
|
||||
y1="543.79999"
|
||||
id="a-3"><stop
|
||||
id="stop4268"
|
||||
stop-color="#2a2c2f" /><stop
|
||||
id="stop4270"
|
||||
stop-color="#424649"
|
||||
offset="1" /></linearGradient><linearGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x2="0"
|
||||
y2="506.79999"
|
||||
y1="532.79999"
|
||||
id="b-6"><stop
|
||||
id="stop4273"
|
||||
stop-color="#989a9b" /><stop
|
||||
id="stop4275"
|
||||
stop-color="#f6f6f7"
|
||||
offset="1" /></linearGradient><path
|
||||
d="m 426.57,529.8 -16,11 -8,-8 -2,-9 17,-5 z"
|
||||
id="e-5"
|
||||
fill-rule="evenodd" /><linearGradient
|
||||
gradientTransform="matrix(-0.99376,-0.00423,0.00423,0.98887,47.823,2.34)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x2="37.757999"
|
||||
y2="39.833"
|
||||
x1="17.483"
|
||||
y1="4.7160001"
|
||||
id="a-35"><stop
|
||||
id="stop4339"
|
||||
stop-color="#3fc380" /><stop
|
||||
id="stop4341"
|
||||
stop-color="#3f8ed3"
|
||||
offset="1" /></linearGradient><linearGradient
|
||||
gradientTransform="matrix(-0.99376,-0.00423,0.00423,0.98887,97.823,31.34)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x2="37.757999"
|
||||
y2="39.833"
|
||||
x1="17.483"
|
||||
y1="4.7160001"
|
||||
id="b-62"
|
||||
xlink:href="#a-35" /><linearGradient
|
||||
gradientTransform="matrix(-0.99376,-0.00423,0.00423,0.98887,97.823,16.34)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x2="37.757999"
|
||||
y2="39.833"
|
||||
x1="17.483"
|
||||
y1="4.7160001"
|
||||
id="c-9"
|
||||
xlink:href="#a-35" /><linearGradient
|
||||
gradientTransform="matrix(-0.99376,-0.0067,0.00423,1.56572,47.823,12.372)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x2="37.757999"
|
||||
y2="39.833"
|
||||
x1="17.483"
|
||||
y1="4.7160001"
|
||||
id="d-1"><stop
|
||||
id="stop4346"
|
||||
stop-color="#148e76" /><stop
|
||||
id="stop4348"
|
||||
stop-color="#218059"
|
||||
offset="1" /></linearGradient><linearGradient
|
||||
gradientTransform="translate(0,-2)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x2="43"
|
||||
y2="31"
|
||||
x1="4"
|
||||
y1="18"
|
||||
id="e-2"><stop
|
||||
id="stop4351"
|
||||
stop-color="#292c2f"
|
||||
style="stop-color:#000000;stop-opacity:1" /><stop
|
||||
id="stop4353"
|
||||
stop-opacity="0"
|
||||
offset="1"
|
||||
style="stop-color:#000000;stop-opacity:0.32644629" /></linearGradient><linearGradient
|
||||
gradientTransform="translate(0,14)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x2="44"
|
||||
y2="28"
|
||||
x1="30.625"
|
||||
y1="14"
|
||||
id="f"
|
||||
xlink:href="#e-2" /><linearGradient
|
||||
gradientTransform="matrix(0.99376,0.0067,-0.00423,-1.56572,50.177,5.628)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x2="37.757999"
|
||||
y2="39.833"
|
||||
x1="17.483"
|
||||
y1="4.7160001"
|
||||
id="g"
|
||||
xlink:href="#d-1" /><linearGradient
|
||||
x1="428.81601"
|
||||
gradientTransform="translate(-384.57,-499.8)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x2="388.86499"
|
||||
y2="499.67899"
|
||||
y1="547.63397"
|
||||
id="a-9"><stop
|
||||
id="stop7-3"
|
||||
stop-color="#2a2c2f" /><stop
|
||||
id="stop9-6"
|
||||
stop-color="#536161"
|
||||
offset="1" /></linearGradient><linearGradient
|
||||
x1="36"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x2="14"
|
||||
y2="12"
|
||||
y1="44"
|
||||
id="b-0"><stop
|
||||
style="stop-color:#bfc9c9;stop-opacity:1"
|
||||
id="stop12-6"
|
||||
stop-color="#536161" /><stop
|
||||
style="stop-color:#fbfbfb;stop-opacity:1"
|
||||
id="stop14-2"
|
||||
stop-color="#f4f5f5"
|
||||
offset="1" /></linearGradient><linearGradient
|
||||
gradientTransform="translate(-384.57,-499.8)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x2="419.974"
|
||||
y2="539.82501"
|
||||
x1="418.57001"
|
||||
y1="529.79999"
|
||||
id="c-61"><stop
|
||||
id="stop17-8"
|
||||
stop-color="#292c2f" /><stop
|
||||
id="stop19-7"
|
||||
stop-opacity="0"
|
||||
offset="1" /></linearGradient><style
|
||||
type="text/css"
|
||||
id="current-color-scheme">.ColorScheme-Text { color: #fcfcfc; } </style><linearGradient
|
||||
gradientTransform="translate(-404.99,-523.8)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x2="419.974"
|
||||
y2="539.82501"
|
||||
x1="406.50101"
|
||||
y1="527.01398"
|
||||
id="c-6"><stop
|
||||
id="stop17-7"
|
||||
stop-color="#292c2f" /><stop
|
||||
id="stop19-5"
|
||||
stop-opacity="0"
|
||||
offset="1" /></linearGradient><linearGradient
|
||||
xlink:href="#linearGradient4428"
|
||||
id="linearGradient4408-1"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-0.99376,-0.00423,0.00423,0.98887,43.823,-1.66)"
|
||||
x1="9.875"
|
||||
y1="-2.3239999"
|
||||
x2="44.278"
|
||||
y2="42.318001" /><linearGradient
|
||||
id="a-8"><stop
|
||||
id="stop4631"
|
||||
stop-opacity=".742"
|
||||
stop-color="#dcedfe" /><stop
|
||||
id="stop4633"
|
||||
stop-opacity="0"
|
||||
stop-color="#dcedfe"
|
||||
offset="1" /></linearGradient><linearGradient
|
||||
gradientTransform="translate(15.653,1.018)"
|
||||
x2="40.709"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
y2="30.416"
|
||||
x1="10.972"
|
||||
y1="-0.017999999"
|
||||
id="b-4"><stop
|
||||
id="stop4636" /><stop
|
||||
id="stop4638"
|
||||
stop-opacity="0"
|
||||
offset="1" /></linearGradient><linearGradient
|
||||
gradientTransform="translate(23.03,5.02)"
|
||||
x2="29.129999"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
y2="22.129999"
|
||||
x1="11"
|
||||
y1="4"
|
||||
id="c-5"
|
||||
xlink:href="#b-4" /><linearGradient
|
||||
gradientTransform="translate(-99.4835,-40.4835)"
|
||||
x2="30.347"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
y2="45.981998"
|
||||
x1="7.3470001"
|
||||
y1="6.9819999"
|
||||
id="d-0"><stop
|
||||
id="stop4642"
|
||||
stop-color="#eeeeee" /><stop
|
||||
id="stop4644"
|
||||
stop-color="#cccccc"
|
||||
offset="1" /></linearGradient><linearGradient
|
||||
gradientTransform="matrix(1,0,0,1.0091,-110.9855,-40.7775)"
|
||||
x2="0"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
y2="32"
|
||||
y1="36"
|
||||
id="e-3"><stop
|
||||
id="stop4647"
|
||||
stop-color="#c58c00" /><stop
|
||||
id="stop4649"
|
||||
stop-color="#ffc318"
|
||||
offset="1" /></linearGradient><linearGradient
|
||||
gradientTransform="matrix(1,0,0,1.25,-111.4835,-50.4855)"
|
||||
x2="19"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
y2="33"
|
||||
x1="23.219999"
|
||||
y1="42.986"
|
||||
id="f-6"><stop
|
||||
id="stop4652"
|
||||
stop-color="#70431c" /><stop
|
||||
id="stop4654"
|
||||
stop-color="#be8c5a"
|
||||
offset="1" /></linearGradient><linearGradient
|
||||
gradientTransform="translate(-106.4835,-44.4855)"
|
||||
x2="21"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
y2="46"
|
||||
x1="13.98"
|
||||
y1="38.957001"
|
||||
id="g-1"
|
||||
xlink:href="#b-4" /><linearGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x2="0"
|
||||
y2="2.987"
|
||||
y1="43.922001"
|
||||
id="h"
|
||||
gradientTransform="translate(-122.5135,-45.5035)"><stop
|
||||
id="stop4658"
|
||||
stop-color="#22a7f0" /><stop
|
||||
id="stop4660"
|
||||
stop-color="#19b5fe"
|
||||
offset="1" /></linearGradient><linearGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x2="0"
|
||||
y2="34.040001"
|
||||
y1="43.922001"
|
||||
id="i"><stop
|
||||
id="stop4663"
|
||||
stop-color="#c8e3fe" /><stop
|
||||
id="stop4665"
|
||||
stop-color="#e4f1fe"
|
||||
offset="1" /></linearGradient><linearGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x2="27"
|
||||
x1="19"
|
||||
y2="44"
|
||||
y1="33.998001"
|
||||
id="j"><stop
|
||||
id="stop4668"
|
||||
stop-color="#383e51" /><stop
|
||||
id="stop4670"
|
||||
stop-opacity="0"
|
||||
stop-color="#655c6f"
|
||||
offset="1" /></linearGradient><radialGradient
|
||||
gradientTransform="matrix(0.59169,-0.93256,2.10028,1.33257,-80.07,8.555)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
r="16"
|
||||
id="k"
|
||||
xlink:href="#a-8"
|
||||
cy="48.672001"
|
||||
cx="31.01" /><radialGradient
|
||||
gradientTransform="matrix(0.53188,-0.49081,0.78529,0.851,-19.809,-0.579)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
r="16"
|
||||
id="l"
|
||||
xlink:href="#a-8"
|
||||
cy="38.130001"
|
||||
cx="30.299999" /><linearGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x2="0"
|
||||
y2="503.79999"
|
||||
y1="543.79999"
|
||||
id="a-0"><stop
|
||||
id="stop4858"
|
||||
stop-color="#2a2c2f" /><stop
|
||||
id="stop4860"
|
||||
stop-color="#424649"
|
||||
offset="1" /></linearGradient><linearGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x2="0"
|
||||
y2="506.79999"
|
||||
y1="532.79999"
|
||||
id="b-63"><stop
|
||||
id="stop4863"
|
||||
stop-color="#989a9b" /><stop
|
||||
id="stop4865"
|
||||
stop-color="#f6f6f7"
|
||||
offset="1" /></linearGradient><path
|
||||
d="m 426.57,529.8 -16,11 -8,-8 -2,-9 17,-5 z"
|
||||
id="e-0"
|
||||
fill-rule="evenodd" /><linearGradient
|
||||
xlink:href="#linearGradient4305"
|
||||
id="linearGradient4311"
|
||||
x1="16.75"
|
||||
y1="-4.5"
|
||||
x2="36"
|
||||
y2="32"
|
||||
gradientUnits="userSpaceOnUse" /><radialGradient
|
||||
xlink:href="#linearGradient4301"
|
||||
id="radialGradient4309"
|
||||
cx="20.853001"
|
||||
cy="17.349001"
|
||||
fx="20.853001"
|
||||
fy="17.349001"
|
||||
r="8.1289997"
|
||||
gradientTransform="matrix(-0.01162882,1.1950891,-1.274916,-0.0124056,46.239569,-9.6229889)"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
gradientTransform="translate(-384.57,-499.8)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x2="0"
|
||||
y2="503.79999"
|
||||
y1="543.79999"
|
||||
id="a-09"><stop
|
||||
id="stop7-36"
|
||||
stop-color="#2a2c2f" /><stop
|
||||
id="stop9-0"
|
||||
stop-color="#424649"
|
||||
offset="1" /></linearGradient><linearGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x2="0"
|
||||
y2="506.79999"
|
||||
y1="532.79999"
|
||||
id="b-626"><stop
|
||||
id="stop12-1"
|
||||
stop-color="#989a9b" /><stop
|
||||
id="stop14-8"
|
||||
stop-color="#f6f6f7"
|
||||
offset="1" /></linearGradient><path
|
||||
d="m 426.57,529.8 -16,11 -8,-8 -2,-9 17,-5 z"
|
||||
id="e-02"
|
||||
fill-rule="evenodd" /><linearGradient
|
||||
id="a-3-3"
|
||||
y1="543.79999"
|
||||
y2="503.79999"
|
||||
x2="0"
|
||||
gradientUnits="userSpaceOnUse"><stop
|
||||
stop-color="#2a2c2f"
|
||||
id="stop4268-7" /><stop
|
||||
offset="1"
|
||||
stop-color="#424649"
|
||||
id="stop4270-5" /></linearGradient><linearGradient
|
||||
id="b-6-9"
|
||||
y1="532.79999"
|
||||
y2="506.79999"
|
||||
x2="0"
|
||||
gradientUnits="userSpaceOnUse"><stop
|
||||
stop-color="#989a9b"
|
||||
id="stop4273-2" /><stop
|
||||
offset="1"
|
||||
stop-color="#f6f6f7"
|
||||
id="stop4275-2" /></linearGradient><path
|
||||
fill-rule="evenodd"
|
||||
id="e-5-8"
|
||||
d="m 426.57,529.8 -16,11 -8,-8 -2,-9 17,-5 z" /><style
|
||||
id="current-color-scheme-8"
|
||||
type="text/css">
|
||||
.ColorScheme-Text { color:#4d4d4d; }
|
||||
</style><linearGradient
|
||||
id="e-3-3"
|
||||
y1="36"
|
||||
y2="32"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x2="0"
|
||||
gradientTransform="matrix(1,0,0,1.0091,-110.9855,-40.7775)"><stop
|
||||
stop-color="#c58c00"
|
||||
id="stop4647-2" /><stop
|
||||
offset="1"
|
||||
stop-color="#ffc318"
|
||||
id="stop4649-0" /></linearGradient><linearGradient
|
||||
gradientTransform="translate(-122.5135,-45.5035)"
|
||||
id="h-5"
|
||||
y1="43.922001"
|
||||
y2="2.987"
|
||||
x2="0"
|
||||
gradientUnits="userSpaceOnUse"><stop
|
||||
stop-color="#22a7f0"
|
||||
id="stop4658-5" /><stop
|
||||
offset="1"
|
||||
stop-color="#19b5fe"
|
||||
id="stop4660-4" /></linearGradient><linearGradient
|
||||
id="i-7"
|
||||
y1="43.922001"
|
||||
y2="34.040001"
|
||||
x2="0"
|
||||
gradientUnits="userSpaceOnUse"><stop
|
||||
stop-color="#c8e3fe"
|
||||
id="stop4663-6" /><stop
|
||||
offset="1"
|
||||
stop-color="#e4f1fe"
|
||||
id="stop4665-5" /></linearGradient><radialGradient
|
||||
cx="31.01"
|
||||
cy="48.672001"
|
||||
xlink:href="#a-8"
|
||||
id="k-3"
|
||||
r="16"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.59169,-0.93256,2.10028,1.33257,-80.07,8.555)" /><radialGradient
|
||||
cx="30.299999"
|
||||
cy="38.130001"
|
||||
xlink:href="#a-8"
|
||||
id="l-7"
|
||||
r="16"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.53188,-0.49081,0.78529,0.851,-19.809,-0.579)" /><linearGradient
|
||||
id="a-0-4"
|
||||
y1="543.79999"
|
||||
y2="503.79999"
|
||||
x2="0"
|
||||
gradientUnits="userSpaceOnUse"><stop
|
||||
stop-color="#2a2c2f"
|
||||
id="stop4858-5" /><stop
|
||||
offset="1"
|
||||
stop-color="#424649"
|
||||
id="stop4860-2" /></linearGradient><linearGradient
|
||||
id="b-63-5"
|
||||
y1="532.79999"
|
||||
y2="506.79999"
|
||||
x2="0"
|
||||
gradientUnits="userSpaceOnUse"><stop
|
||||
stop-color="#989a9b"
|
||||
id="stop4863-4" /><stop
|
||||
offset="1"
|
||||
stop-color="#f6f6f7"
|
||||
id="stop4865-7" /></linearGradient><path
|
||||
fill-rule="evenodd"
|
||||
id="e-0-4"
|
||||
d="m 426.57,529.8 -16,11 -8,-8 -2,-9 17,-5 z" /></defs><metadata
|
||||
id="metadata5458" /><g
|
||||
id="g7"
|
||||
transform="translate(-0.03125,-0.789875)"><path
|
||||
id="rect2"
|
||||
style="display:inline;fill:#09bec8;fill-opacity:1;fill-rule:evenodd;stroke-width:0"
|
||||
d="m 5.1127156,6.046875 c -2.8151291,0 -5.0814656,2.2298671 -5.0814656,4.999696 v 27.486608 c 0,2.769829 2.2663365,4.999696 5.0814656,4.999696 H 8.135791 c -2.8151294,0 -5.081466,-2.229867 -5.081466,-4.999696 V 11.046571 c 0,-2.7698289 2.2663366,-4.999696 5.081466,-4.999696 z" /><path
|
||||
id="rect3"
|
||||
style="display:inline;fill:#09bec8;fill-opacity:1;fill-rule:evenodd;stroke-width:0"
|
||||
d="m 10.136618,6.046875 c -2.8151294,0 -5.0814659,2.2298671 -5.0814659,4.999696 v 27.486608 c 0,2.769829 2.2663365,4.999696 5.0814659,4.999696 h 32.813167 c 2.815128,0 5.081465,-2.229867 5.081465,-4.999696 V 11.046571 c 0,-2.7698289 -2.266337,-4.999696 -5.081465,-4.999696 z m 16.619965,7.308149 c 0.267194,-0.0088 0.532193,0.06855 0.764205,0.238267 l 12.225291,8.353008 a 1.0163947,1.0000391 0 0 1 0.0059,0.0039 c 0.313439,0.218003 0.524025,0.586665 0.524025,0.988221 0,0.396498 -0.218153,0.770983 -0.514101,0.982362 a 1.0163947,1.0000391 0 0 1 -0.01588,0.01367 l -12.253081,8.370584 0.0258,-0.01953 c -0.373344,0.273043 -0.834162,0.31037 -1.248531,0.130852 -0.415872,-0.18103 -0.764076,-0.631707 -0.740386,-1.146415 v -3.794691 h -1.29617 c -1.600985,10e-7 -3.129285,0.56137 -4.229923,1.523345 -1.100607,0.961954 -1.691176,2.231281 -1.691176,3.540801 -0.0023,1.371524 0.458891,2.71787 1.34778,3.880623 A 1.0163947,1.0000391 0 0 1 18.364165,37.9004 c -1.345089,-0.717505 -2.520949,-1.663886 -3.457729,-2.79084 a 1.0163947,1.0000391 0 0 1 -0.01786,-0.02148 c -1.392729,-1.778012 -2.123977,-3.91735 -2.07427,-6.097285 0.003,-3.139936 1.128598,-5.837783 3.152097,-7.70461 2.026225,-1.869343 4.900125,-2.882637 8.26532,-2.882637 h 1.296172 v -3.841567 l 0.002,0.05078 c -0.02696,-0.534259 0.323248,-0.968975 0.75031,-1.15032 0.154618,-0.06583 0.316073,-0.102146 0.476388,-0.107416 z m 0.803903,2.699055 v 2.843577 c 0,0.432769 -0.203866,0.837647 -0.510131,1.105401 -0.309621,0.270657 -0.691048,0.400366 -1.083782,0.400366 h -1.734844 c -2.954668,0 -5.279942,0.869306 -6.875858,2.341655 -1.595914,1.472348 -2.510958,3.571465 -2.510958,6.257431 a 1.0163947,1.0000391 0 0 0 0,0.002 1.0163947,1.0000391 0 0 0 0,0.002 1.0163947,1.0000391 0 0 0 0,0.002 1.0163947,1.0000391 0 0 0 0,0.002 1.0163947,1.0000391 0 0 0 0,0.002 1.0163947,1.0000391 0 0 0 0,0.002 1.0163947,1.0000391 0 0 0 0,0.002 1.0163947,1.0000391 0 0 0 0,0.002 1.0163947,1.0000391 0 0 0 0,0.002 1.0163947,1.0000391 0 0 0 0,0.002 1.0163947,1.0000391 0 0 0 0,0.002 1.0163947,1.0000391 0 0 0 0,0.002 c -0.04163,1.711208 0.526311,3.3917 1.647507,4.827831 0.0032,0.0039 0.0086,0.006 0.01191,0.0098 -0.07478,-0.443541 -0.225065,-0.87352 -0.2243,-1.326091 5.93e-4,-1.905637 0.874063,-3.723874 2.373998,-5.03485 1.500413,-1.311382 3.500971,-2.02722 5.579688,-2.02722 h 1.732858 c 0.392874,1e-6 0.774277,0.129918 1.083782,0.400366 0.306455,0.267845 0.512117,0.67279 0.512117,1.105402 v 2.841624 l 10.073608,-6.882394 z" /></g></svg>
|
After Width: | Height: | Size: 21 KiB |
BIN
data_from_portwine/img/setup.png
Normal file
BIN
data_from_portwine/img/setup.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.3 KiB |
BIN
data_from_portwine/img/yabause.png
Normal file
BIN
data_from_portwine/img/yabause.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
@ -3,14 +3,14 @@
|
||||
# based on https://github.com/sonic2kk/steamtinkerlaunch/blob/master/steamtinkerlaunch
|
||||
|
||||
PROGNAME="PortProton"
|
||||
|
||||
name_desktop_png="${name_desktop// /_}"
|
||||
NOSTAPPNAME="$name_desktop"
|
||||
NOSTEXEPATH="\"${STEAM_SCRIPTS}/${name_desktop}.sh\""
|
||||
# NOSTSTDIR="\"${PATH_TO_GAME}\""
|
||||
if [[ -z "${NOSTSTDIR}" ]] ; then
|
||||
NOSTSTDIR="\"${STEAM_SCRIPTS}\""
|
||||
fi
|
||||
NOSTICONPATH="${PORT_WINE_PATH}/data/img/${name_desktop}.png"
|
||||
NOSTICONPATH="${PORT_WINE_PATH}/data/img/$name_desktop_png.png"
|
||||
BASESTEAMGRIDDBAPI="https://www.steamgriddb.com/api/v2"
|
||||
|
||||
## How Non-Steam AppIDs work, because it took me almost a year to figure this out
|
||||
|
@ -40,19 +40,15 @@ fatal () {
|
||||
change_locale () {
|
||||
if [[ -f "${PORT_WINE_TMP_PATH}/PortProton_loc" ]] ; then
|
||||
LANGUAGE=$(<"${PORT_WINE_TMP_PATH}/PortProton_loc")
|
||||
fi
|
||||
|
||||
if [[ "$LANGUAGE" == "RUS" ]] ; then
|
||||
LANGUAGE="ru"
|
||||
echo "ru" > "${PORT_WINE_TMP_PATH}/PortProton_loc"
|
||||
elif [[ "$LANGUAGE" == "ENG" ]] ; then
|
||||
LANGUAGE="en"
|
||||
echo "en" > "${PORT_WINE_TMP_PATH}/PortProton_loc"
|
||||
fi
|
||||
|
||||
if [[ ! -z "${LANGUAGE}" ]] \
|
||||
&& [[ ! -f "${PORT_WINE_TMP_PATH}/PortProton_loc" ]]
|
||||
then
|
||||
# TODO: drop legacy check language after 01.01.2025
|
||||
if [[ "$LANGUAGE" == "RUS" ]] ; then
|
||||
LANGUAGE="ru"
|
||||
echo "ru" > "${PORT_WINE_TMP_PATH}/PortProton_loc"
|
||||
elif [[ "$LANGUAGE" == "ENG" ]] ; then
|
||||
LANGUAGE="en"
|
||||
echo "en" > "${PORT_WINE_TMP_PATH}/PortProton_loc"
|
||||
fi
|
||||
else
|
||||
[[ ! -f "${pw_yad}" ]] && pw_yad="yad"
|
||||
SET_LANG=(
|
||||
"${pw_yad}" --list
|
||||
@ -67,7 +63,7 @@ change_locale () {
|
||||
)
|
||||
|
||||
out=$("${SET_LANG[@]}")
|
||||
[ -n "$out" ] || return
|
||||
[ -n "$out" ] || fatal "Language is not set!"
|
||||
SET_LANG=$(echo "$out" | cut -d'|' -f2)
|
||||
|
||||
echo "${SET_LANG}" > "${PORT_WINE_TMP_PATH}/PortProton_loc"
|
||||
@ -472,7 +468,7 @@ unpack () {
|
||||
if [[ "$silent" != "true" ]] ; then
|
||||
set -o pipefail
|
||||
pw_start_progress_bar_cover_block "${COVERS_PATH}/unpacking_${LANGUAGE_GIF}.gif"
|
||||
$command "$1" -C "$2"
|
||||
$command "$1" -C "$2" 2>/dev/null
|
||||
pw_stop_progress_bar_cover_block
|
||||
[ "${PIPESTATUS[0]}" != 0 ] && print_error "File $1 unpacking error." && return 1 || return 0
|
||||
else
|
||||
@ -588,7 +584,7 @@ pw_reinstall_pp () {
|
||||
try_remove_file "${PORT_WINE_TMP_PATH}/scripts_ver"
|
||||
echo
|
||||
print_info "Restarting PP for reinstall files..."
|
||||
export SKIP_CHECK_UPDATES=0
|
||||
export SKIP_CHECK_UPDATES="0"
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
exit 0
|
||||
}
|
||||
@ -998,6 +994,7 @@ stop_portwine () {
|
||||
if [[ ! -z "$(pgrep -a yad_gui_pp | grep "\--notification" | awk '{print $1}')" ]] ; then
|
||||
kill -s SIGUSR1 "$(pgrep -a yad_gui_pp | grep "\--notification" | awk '{print $1}')" 2>/dev/null
|
||||
fi
|
||||
pw_auto_create_shortcut
|
||||
add_in_stop_portwine
|
||||
unset SKIP_CHECK_UPDATES
|
||||
exit 0
|
||||
@ -1229,6 +1226,12 @@ check_dirs_and_files_in_pfx () {
|
||||
[ ! -d "${WINEPREFIX}/dosdevices/z:" ] && try_force_link_dir "/" "${WINEPREFIX}/dosdevices/z:"
|
||||
[ ! -d "${WINEPREFIX}/dosdevices/h:" ] && try_force_link_dir "$HOME" "${WINEPREFIX}/dosdevices/h:"
|
||||
|
||||
if [ ! -d "${WINEPREFIX}/dosdevices/s:" ] \
|
||||
&& [ -d "$HOME/.local/share/Steam/steamapps/common/" ]
|
||||
then
|
||||
try_force_link_dir "$HOME/.local/share/Steam/steamapps/common/" "${WINEPREFIX}/dosdevices/s:"
|
||||
fi
|
||||
|
||||
create_new_dir "${WINEPREFIX}/drive_c/windows/Fonts/"
|
||||
LN_FONTS="arialbd.ttf courbd.ttf georgia.ttf micross.ttf msyh.ttf simsun.ttc arial.ttf cour.ttf malgun.ttf msgothic.ttc nirmala.ttf times.ttf"
|
||||
for link_font in $LN_FONTS ; do
|
||||
@ -1259,25 +1262,42 @@ check_dirs_and_files_in_pfx () {
|
||||
then try_force_link_dir "${WINEPREFIX}/drive_c/users/steamuser/AppData/Local" "${WINEPREFIX}/drive_c/users/steamuser/Local Settings/Application Data"
|
||||
fi
|
||||
|
||||
find "${WINEPREFIX}/dosdevices" -xtype l -maxdepth 1 2>/dev/null -exec rm {} \;
|
||||
DRIVES=(d e f g i j k l m n o p q r t u v w x y)
|
||||
DEF_MOUNT_DIRS=('/media' '/mnt' '/run/media')
|
||||
MOUNT_DIRS=($(find "${DEF_MOUNT_DIRS[@]}" -maxdepth 1 -mindepth 1 -type d 2>/dev/null | sort -u))
|
||||
|
||||
rm -f "${WINEPREFIX}/dosdevices/com"*
|
||||
rm -f "${WINEPREFIX}/dosdevices/"*::
|
||||
DRIVES=(d e f g i j k l m n o p q r s t u v w x y)
|
||||
DEF_MOUNT_DIRS=('/media' "/media/$USER" '/mnt' '/run/media' "/run/media/$USER")
|
||||
MOUNT_DIRS=($(find "${DEF_MOUNT_DIRS[@]}" -maxdepth 1 -type d 2>/dev/null | sort -u))
|
||||
|
||||
for drive in "${DRIVES[@]}"; do
|
||||
rm -f "${WINEPREFIX}/dosdevices/${drive}:"
|
||||
done
|
||||
|
||||
for drive_dir in "${MOUNT_DIRS[@]}" ; do
|
||||
if [[ ! "${DEF_MOUNT_DIRS[@]}" =~ "$drive_dir" ]] \
|
||||
&& ! realpath "${WINEPREFIX}/dosdevices"/*: | grep "$drive_dir" &>/dev/null ; then
|
||||
drive_num=0
|
||||
while [[ "$drive_num" -lt "${#DRIVES[@]}" ]] ; do
|
||||
drive_path="${WINEPREFIX}/dosdevices/${DRIVES[$drive_num]}:"
|
||||
if [ ! -d "$drive_path" ] ; then
|
||||
ln -sf "$drive_dir" "$drive_path"
|
||||
break
|
||||
else
|
||||
((drive_num++))
|
||||
fi
|
||||
done
|
||||
if mountpoint -q "$drive_dir" ; then
|
||||
if ! realpath "${WINEPREFIX}/dosdevices"/*: | grep -w "$drive_dir$" &>/dev/null ; then
|
||||
drive_num=0
|
||||
while [[ "$drive_num" -lt "${#DRIVES[@]}" ]] ; do
|
||||
drive_path="${WINEPREFIX}/dosdevices/${DRIVES[$drive_num]}:"
|
||||
mount_point=$(df -P "$drive_dir" | awk 'NR==2 {print $1}')
|
||||
mount_name=$(lsblk -no pkname "$mount_point" 2>/dev/null)
|
||||
|
||||
if [[ ! -L "$drive_path" ]] ; then
|
||||
if [[ $(cat "/sys/class/block/$mount_name/removable") != "1" ]] 2>/dev/null ; then
|
||||
if [[ ! $(echo "$mount_point" | grep "mmc") ]] 2>/dev/null ; then
|
||||
ln -sf "$drive_dir" "$drive_path"
|
||||
break
|
||||
else
|
||||
((drive_num++))
|
||||
fi
|
||||
else
|
||||
((drive_num++))
|
||||
fi
|
||||
else
|
||||
((drive_num++))
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
@ -1294,6 +1314,177 @@ check_nvidia_rtx () {
|
||||
return 1
|
||||
}
|
||||
|
||||
create_shortcut_from_link () {
|
||||
PORTPROTON_NAME="$link_name"
|
||||
PW_RESIZE_TO=128
|
||||
|
||||
try_remove_file "${PORT_WINE_PATH}/data/img/launcher.png"
|
||||
try_remove_file "${PORT_WINE_PATH}/data/img/Launcher.png"
|
||||
|
||||
if [[ ! -f "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" ]] ; then
|
||||
if command -v sestatus &>/dev/null && sestatus | grep "Current mode: *enforcing" ; then
|
||||
SESTATUS="1"
|
||||
else
|
||||
SESTATUS="0"
|
||||
fi
|
||||
if command -v exe-thumbnailer &>/dev/null && [[ "${SESTATUS}" == "0" ]] ; then
|
||||
exe-thumbnailer -s 128 "$(readlink -f "${exe_path}")" "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png"
|
||||
else
|
||||
env PYTHONPATH="${PW_PLUGINS_PATH}/portable/lib/python3.9/site-packages/" \
|
||||
LD_LIBRARY_PATH="${PW_PLUGINS_PATH}/portable/lib/lib64" \
|
||||
"${PW_WINELIB}/runtime/files/bin/python3.9" \
|
||||
"${PW_PLUGINS_PATH}/portable/bin/exe-thumbnailer" -s 128 "$(readlink -f "${exe_path}")" "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -f "${PORT_WINE_PATH}/${PORTPROTON_NAME}.desktop" ]] ; then
|
||||
if ! grep -i "${exe_path}" "${PORT_WINE_PATH}/${PORTPROTON_NAME}.desktop" &>/dev/null ; then
|
||||
create_new_dir "${PORT_WINE_PATH}/duplicate"
|
||||
if [[ "$(ls -A "${PORT_WINE_PATH}/duplicate/${PORTPROTON_NAME} - ${prefix_name}"* 2>/dev/null)" ]] ; then
|
||||
if ! grep -i "${exe_path}" "${PORT_WINE_PATH}/duplicate/${PORTPROTON_NAME} - ${prefix_name}"* &>/dev/null ; then
|
||||
number_duplication="$(ls "${PORT_WINE_PATH}/duplicate"/ 2>/dev/null)"
|
||||
number_duplication="${number_duplication//${PORTPROTON_NAME} - ${prefix_name}/}"
|
||||
number_duplication="${number_duplication//].desktop/}"
|
||||
number_duplication=(${number_duplication//[/})
|
||||
dup_prev="0"
|
||||
for dup_num in ${number_duplication[@]} ; do
|
||||
dup_num_list="$(("$dup_num" - 1))"
|
||||
if [[ "$dup_num_list" != "$dup_prev" ]] ; then
|
||||
dup_num_list_new+="$dup_num_list "
|
||||
fi
|
||||
dup_prev="$dup_num"
|
||||
done
|
||||
|
||||
if [[ -z "$dup_num_list_new" ]] ; then
|
||||
number_duplication="${dup_prev}"
|
||||
else
|
||||
dup_helper="$(echo ${dup_num_list_new} | awk '{print $1}')"
|
||||
for dup in ${number_duplication[@]} ; do
|
||||
if (( "$dup_helper" > "$dup" )) ; then
|
||||
dup_helper_new+="$dup "
|
||||
fi
|
||||
done
|
||||
number_duplication="$(echo ${dup_helper_new} | awk '{print $NF}')"
|
||||
fi
|
||||
number_duplication="$(("$number_duplication" + 1))"
|
||||
else
|
||||
exit 0
|
||||
fi
|
||||
else
|
||||
number_duplication="1"
|
||||
fi
|
||||
PW_NAME_DESKTOP="${PORT_WINE_PATH}/duplicate/${PORTPROTON_NAME} - ${prefix_name} [$number_duplication].desktop"
|
||||
SHORTCUT_DUPLICATE="true"
|
||||
else
|
||||
exit 0
|
||||
fi
|
||||
else
|
||||
PW_NAME_DESKTOP="${PORT_WINE_PATH}/${PORTPROTON_NAME}.desktop"
|
||||
SHORTCUT_DUPLICATE=""
|
||||
fi
|
||||
|
||||
echo "[Desktop Entry]" > "${PW_NAME_DESKTOP}"
|
||||
echo "Name=${PORTPROTON_NAME}" >> "${PW_NAME_DESKTOP}"
|
||||
if [[ ! -z "$link_cmd" ]] ; then
|
||||
if check_flatpak
|
||||
then echo "Exec=flatpak run ru.linux_gaming.PortProton \"${exe_path}\" \"${link_cmd}\"" >> "${PW_NAME_DESKTOP}"
|
||||
else echo "Exec=env \"${PORT_SCRIPTS_PATH}/start.sh\" \"${exe_path}\" \"${link_cmd}\"" >> "${PW_NAME_DESKTOP}"
|
||||
fi
|
||||
else
|
||||
if check_flatpak
|
||||
then echo "Exec=flatpak run ru.linux_gaming.PortProton \"${exe_path}\"" >> "${PW_NAME_DESKTOP}"
|
||||
else echo "Exec=env \"${PORT_SCRIPTS_PATH}/start.sh\" \"${exe_path}\"" >> "${PW_NAME_DESKTOP}"
|
||||
fi
|
||||
fi
|
||||
{
|
||||
echo "Type=Application"
|
||||
echo "Categories=Game"
|
||||
echo "StartupNotify=true"
|
||||
echo "Path=${PORT_SCRIPTS_PATH}/"
|
||||
echo "Icon=${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png"
|
||||
} >> "${PW_NAME_DESKTOP}"
|
||||
chmod u+x "${PW_NAME_DESKTOP}"
|
||||
|
||||
[[ -z "${PW_SHORTCUT_DESKTOP}" ]] && PW_SHORTCUT_DESKTOP="TRUE"
|
||||
|
||||
if [[ "$DESKTOP_SESSION" =~ "gnome" ]] ; then
|
||||
try_remove_file "${HOME}/.local/share/applications/${PORTPROTON_NAME}.desktop"
|
||||
cp -f "${PW_NAME_DESKTOP}" "${HOME}/.local/share/applications/"
|
||||
else
|
||||
if [[ ${PW_SHORTCUT_DESKTOP} == "TRUE" ]] ; then
|
||||
if [[ -d "${HOME}/Desktop" ]] ; then
|
||||
cp -f "${PW_NAME_DESKTOP}" "${HOME}/Desktop/"
|
||||
elif [[ -d "${HOME}/Рабочий стол" ]] ; then
|
||||
cp -f "${PW_NAME_DESKTOP}" "${HOME}/Рабочий стол/"
|
||||
elif [[ $(xdg-user-dir DESKTOP) ]] ; then
|
||||
cp -f "${PW_NAME_DESKTOP}" "$(xdg-user-dir DESKTOP)"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pw_auto_create_shortcut () {
|
||||
[[ "${PW_CHECK_AUTOINSTALL}" == 1 ]] && return 0
|
||||
unset LINKS
|
||||
orig_IFS="$IFS" && IFS=$'\n'
|
||||
for link_file in "${PORT_WINE_PATH}"/prefixes/*/drive_c/users/steamuser/Desktop/*.lnk
|
||||
do
|
||||
if echo "$link_file" | grep "\*.lnk" &>/dev/null
|
||||
then continue
|
||||
else LINKS+=("$link_file")
|
||||
fi
|
||||
done
|
||||
IFS="$orig_IFS"
|
||||
[[ -z "$LINKS" ]] && return 0
|
||||
|
||||
for link_file in "${LINKS[@]}"; do
|
||||
if timeout 3 exiftool "$link_file" 2>/dev/null > "${PW_TMPFS_PATH}/exiftool.tmp" ; then
|
||||
prefix_name=$(echo "$link_file" | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}')
|
||||
if fix_icon_name=$(grep -i "Icon File Name" "${PW_TMPFS_PATH}/exiftool.tmp" 2>/dev/null) \
|
||||
&& [[ "${fix_icon_name//*.exe/true}" == "true" ]] ; then
|
||||
link_drive=$(sed -n 's/^Icon File Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp" | cut -d: -f1 | awk '{print tolower($0)}')
|
||||
link_path=$(sed -n 's/^Icon File Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp" | sed 's|%ProgramFiles(x86)%|C:\\Program Files (x86)|gi;s|%ProgramFiles%|C:\\Program Files|gi' | sed "s|^.|${PORT_WINE_PATH}/data/prefixes/$prefix_name/dosdevices/$link_drive|g" | sed 's/\\/\//g')
|
||||
else
|
||||
link_drive=$(sed -n 's/^Local Base Path\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp" | cut -d: -f1 | awk '{print tolower($0)}')
|
||||
link_path=$(sed -n 's/^Local Base Path\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp" | sed 's|%ProgramFiles(x86)%|C:\\Program Files (x86)|gi;s|%ProgramFiles%|C:\\Program Files|gi' | sed "s|^.|${PORT_WINE_PATH}/data/prefixes/$prefix_name/dosdevices/$link_drive|g" | sed 's/\\/\//g')
|
||||
fi
|
||||
link_name=$(sed -n 's/^File Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp" | sed 's|\.lnk||')
|
||||
link_cmd=$(sed -n 's/^Command Line Arguments\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
||||
else
|
||||
if ! command -v exiftool &>/dev/null ; then
|
||||
print_warning "use portable exiftool"
|
||||
env PERL5LIB="${PW_PLUGINS_PATH}/portable/lib/perl5" "${PW_PLUGINS_PATH}/portable/bin/exiftool" "$link_file" 2>/dev/null > "${PW_TMPFS_PATH}/exiftool.tmp"
|
||||
prefix_name=$(echo "$link_file" | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}')
|
||||
if fix_icon_name=$(grep -i "Icon File Name" "${PW_TMPFS_PATH}/exiftool.tmp" 2>/dev/null) \
|
||||
&& [[ "${fix_icon_name//*.exe/true}" == "true" ]] ; then
|
||||
link_drive=$(sed -n 's/^Icon File Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp" | cut -d: -f1 | awk '{print tolower($0)}')
|
||||
link_path=$(sed -n 's/^Icon File Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp" | sed 's|%ProgramFiles(x86)%|C:\\Program Files (x86)|gi;s|%ProgramFiles%|C:\\Program Files|gi' | sed "s|^.|${PORT_WINE_PATH}/data/prefixes/$prefix_name/dosdevices/$link_drive|g" | sed 's/\\/\//g')
|
||||
else
|
||||
link_drive=$(sed -n 's/^Local Base Path\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp" | cut -d: -f1 | awk '{print tolower($0)}')
|
||||
link_path=$(sed -n 's/^Local Base Path\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp" | sed 's|%ProgramFiles(x86)%|C:\\Program Files (x86)|gi;s|%ProgramFiles%|C:\\Program Files|gi' | sed "s|^.|${PORT_WINE_PATH}/data/prefixes/$prefix_name/dosdevices/$link_drive|g" | sed 's/\\/\//g')
|
||||
fi
|
||||
link_name=$(sed -n 's/^File Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp" | sed 's|\.lnk||')
|
||||
link_cmd=$(sed -n 's/^Command Line Arguments\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
||||
else
|
||||
yad_error "exiftool - broken!"
|
||||
fi
|
||||
fi
|
||||
|
||||
try_remove_file "$link_file"
|
||||
|
||||
if ! exe_path="$(realpath "${link_path}")" ; then
|
||||
print_warning "Removed broken link for: $link_name"
|
||||
else
|
||||
if [[ "${SHORTCUT_DUPLICATE}" == "true" ]] ; then
|
||||
print_info "Created link for duplicate: $link_name - $prefix_name [$number_duplication]"
|
||||
else
|
||||
print_info "Created link for: $link_name"
|
||||
fi
|
||||
create_shortcut_from_link
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
pw_init_db () {
|
||||
if [[ -f "${portwine_exe}" ]] ; then
|
||||
PORTWINE_DB="$(basename "${portwine_exe}" .exe)"
|
||||
@ -1356,7 +1547,7 @@ pw_init_db () {
|
||||
else
|
||||
if [[ "${PW_DISABLED_CREATE_DB}" != 1 ]] ; then
|
||||
if [[ ! -z "${PORTWINE_DB}" ]] ; then
|
||||
export PORTWINE_DB_FILE=$(grep -il "\#${PORTWINE_DB}.exe" "${PORT_SCRIPTS_PATH}/portwine_db"/*)
|
||||
export PORTWINE_DB_FILE=$(grep -il "#${PORTWINE_DB}.exe" "${PORT_SCRIPTS_PATH}/portwine_db"/*)
|
||||
if [[ -z "${PORTWINE_DB_FILE}" ]] ; then
|
||||
{
|
||||
echo "#!/usr/bin/env bash"
|
||||
@ -1463,11 +1654,13 @@ pw_port_update () {
|
||||
xcsd=$("${pw_yad}" --title "$(gettext "Update scripts:") v.(${scripts_install_ver}${BRANCH_VERSION})" --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
|
||||
--form --separator='%%%' --width=1000 --height=500 \
|
||||
--field=":TXT" "${CHANGLOG_NEWS}" \
|
||||
--button="$(gettext "EXIT")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":252 \
|
||||
--button="$(gettext "DO NOT REMIND ME")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":16 \
|
||||
--button="$(gettext "REMIND ME LATER")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":18 \
|
||||
--button="$(gettext "UPDATING NOW")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":20 2>/dev/null)
|
||||
YAD_STATUS="$?"
|
||||
|
||||
# --button="$(gettext "EXIT")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":252 \
|
||||
|
||||
case "${YAD_STATUS}" in
|
||||
1|252) exit 0 ;;
|
||||
16) xcsd="$(gettext "DO NOT REMIND ME")" ;;
|
||||
@ -1579,6 +1772,11 @@ edit_user_conf_from_gui () {
|
||||
}
|
||||
|
||||
pw_create_gui_png () {
|
||||
if echo "$(basename "${portwine_exe}")" | grep -i "setup\|install" &>/dev/null ; then
|
||||
export PW_ICON_FOR_YAD="${PORT_WINE_PATH}/data/img/setup.png"
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [[ -z "$PORTPROTON_NAME" ]] \
|
||||
|| [[ "$PW_NO_RESTART_PPDB" == "1" ]]
|
||||
then
|
||||
@ -1612,12 +1810,15 @@ pw_create_gui_png () {
|
||||
edit_db_from_gui PORTPROTON_NAME
|
||||
fi
|
||||
PW_RESIZE_TO="128"
|
||||
try_remove_file "${PORT_WINE_PATH}/data/img/setup.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 [[ ! -f "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" ]] ; then
|
||||
if command -v exe-thumbnailer &>/dev/null ; then
|
||||
if command -v sestatus &>/dev/null && sestatus | grep "Current mode: *enforcing" ; then
|
||||
SESTATUS="1"
|
||||
else
|
||||
SESTATUS="0"
|
||||
fi
|
||||
if command -v exe-thumbnailer &>/dev/null && [[ "${SESTATUS}" == "0" ]] ; then
|
||||
exe-thumbnailer -s "${PW_RESIZE_TO}" "$(readlink -f "${portwine_exe}")" "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png"
|
||||
else
|
||||
env PYTHONPATH="${PW_PLUGINS_PATH}/portable/lib/python3.9/site-packages/" \
|
||||
@ -1665,7 +1866,7 @@ pw_find_exe () {
|
||||
YAD_STATUS="$?"
|
||||
if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then
|
||||
if [[ -z "${PW_SET_FIND_EXE}" ]] ; then
|
||||
export SKIP_CHECK_UPDATES=1
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
print_info "Restarting..."
|
||||
fi
|
||||
@ -1676,12 +1877,54 @@ pw_find_exe () {
|
||||
if [[ ! -z "${PW_SET_FIND_EXE}" ]] ; then
|
||||
portwine_exe="${PW_PATH_FOR_FIND}$(echo "${PW_SET_FIND_EXE}" | awk -F'|' '{print $1}')"
|
||||
portwine_create_shortcut silent
|
||||
export SKIP_CHECK_UPDATES=1
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
exit 0
|
||||
fi
|
||||
}
|
||||
|
||||
pw_duplicate () {
|
||||
export USE_DUPLICATE_GUI="1"
|
||||
orig_IFS="$IFS" && IFS=$'\n'
|
||||
PW_DESKTOP_D="$(ls "${PORT_WINE_PATH}"/duplicate/ | grep .desktop)"
|
||||
for PW_DESKTOP_FILES_D in ${PW_DESKTOP_D} ; do
|
||||
PW_NAME_D_ICON_D="$(grep Icon "${PORT_WINE_PATH}/duplicate/${PW_DESKTOP_FILES_D}" | awk -F= '{print $2}')"
|
||||
PW_NAME_D_ICON_48_D="${PW_NAME_D_ICON_D//".png"/"_48.png"}"
|
||||
if [[ ! -f "${PW_NAME_D_ICON_48_D}" ]] \
|
||||
&& [[ -f "${PW_NAME_D_ICON_D}" ]] \
|
||||
&& command -v "convert" 2>/dev/null
|
||||
then
|
||||
convert "${PW_NAME_D_ICON_D}" -resize 48x48 "${PW_NAME_D_ICON_48_D}"
|
||||
fi
|
||||
PW_DESKTOP_HELPER_D="${PW_DESKTOP_FILES_D// /@_@}"
|
||||
PW_GENERATE_BUTTONS_D+="--field= ${PW_DESKTOP_FILES_D//".desktop"/""}!${PW_NAME_D_ICON_48_D}!:FBTN%@bash -c \"run_desktop_b_click "${PW_DESKTOP_HELPER_D}"\"%"
|
||||
done
|
||||
IFS="$orig_IFS"
|
||||
|
||||
old_IFS=$IFS && IFS="%"
|
||||
"${pw_yad}" --width="${PW_DUPLICATE_SIZE_W}" --height="${PW_DUPLICATE_SIZE_H}" \
|
||||
--columns="$MAIN_GUI_COLUMNS" --homogeneous-column --form \
|
||||
--gui-type-layout=${MAIN_MENU_GUI_TYPE_LAYOUT} \
|
||||
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
|
||||
--title "PortProton-${install_ver} (${scripts_install_ver}${BRANCH_VERSION})" \
|
||||
--align-buttons --scroll --separator=" " ${PW_GENERATE_BUTTONS_D} \
|
||||
--button="$(gettext "MAIN MENU")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png" 2>/dev/null
|
||||
IFS="$orig_IFS"
|
||||
|
||||
pw_yad_set_form
|
||||
case "$PW_YAD_SET" in
|
||||
*.desktop)
|
||||
run_desktop_b_click
|
||||
;;
|
||||
pw_duplicate)
|
||||
export SKIP_CHECK_UPDATES=1
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
print_info "Restarting..."
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
pw_create_unique_exe () {
|
||||
BASEDIR_GAME="$(dirname "$portwine_exe")"
|
||||
if [[ -d "$BASEDIR_GAME" ]] ; then
|
||||
@ -1851,6 +2094,7 @@ start_portwine () {
|
||||
pw_wineboot -r
|
||||
fi
|
||||
fi
|
||||
rm -f "${PORT_WINE_PATH}"/prefixes/*/drive_c/users/*/Desktop/*.lnk
|
||||
|
||||
echo "${PW_WINE_USE}" > "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.wine_ver"
|
||||
|
||||
@ -3176,11 +3420,14 @@ pw_start_progress_bar_install_game () {
|
||||
}
|
||||
|
||||
pw_stop_progress_bar () {
|
||||
sleep 0.1
|
||||
for PW_KILL_YAD_PID in "$PW_YAD_PID_PROGRESS_BAR_BLOCK" "$PW_YAD_PID_PROGRESS_BAR_CS" \
|
||||
"$PW_YAD_PID_PFX_COVER_UI" "$PW_YAD_PID_PROGRESS_BAR_COVER"
|
||||
do
|
||||
kill -s SIGUSR1 "$PW_KILL_YAD_PID" &>/dev/null
|
||||
done
|
||||
unset PW_YAD_PID_PROGRESS_BAR_BLOCK PW_YAD_PID_PROGRESS_BAR_CS \
|
||||
PW_YAD_PID_PFX_COVER_UI PW_YAD_PID_PROGRESS_BAR_COVER
|
||||
return 0
|
||||
}
|
||||
export -f pw_stop_progress_bar
|
||||
@ -3199,10 +3446,24 @@ export -f pw_stop_progress_bar_cover_block
|
||||
|
||||
open_changelog () {
|
||||
[[ "$LANGUAGE" == ru ]] && local PW_CHANGELOG_FILE="changelog_ru" || local PW_CHANGELOG_FILE="changelog_en"
|
||||
"${pw_yad}" --title="$(gettext "CHANGELOG")" --no-buttons --text-align=center \
|
||||
"${pw_yad}" --title="$(gettext "CHANGELOG")" --no-buttons \
|
||||
--text-info --show-uri --wrap --width=1200 --height=700 --uri-color=red \
|
||||
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
|
||||
--filename="${PORT_WINE_PATH}/data/${PW_CHANGELOG_FILE}" &>/dev/null
|
||||
YAD_STATUS="$?"
|
||||
if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] && [[ -z "$WINEPREFIX" ]] ; then
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
if [[ -z "${PW_ALL_DF}" ]] ; then
|
||||
export TAB_MAIN_MENU="4"
|
||||
else
|
||||
export TAB_MAIN_MENU="5"
|
||||
fi
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
print_info "Restarting..."
|
||||
exit 0
|
||||
else
|
||||
exit 0
|
||||
fi
|
||||
}
|
||||
export -f open_changelog
|
||||
|
||||
@ -3316,7 +3577,7 @@ gui_proton_downloader () {
|
||||
|
||||
if [[ -z "${PROTON_PW_GIT}" ]] ; then
|
||||
yad_error "$(gettext "Error: check wine.")"
|
||||
export SKIP_CHECK_UPDATES=1
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
exit 0
|
||||
fi
|
||||
@ -3395,7 +3656,7 @@ gui_proton_downloader () {
|
||||
--button="$(gettext "OK")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":0 2>/dev/null
|
||||
YAD_WINE_STATUS="$?"
|
||||
if [[ "$YAD_WINE_STATUS" == "1" || "$YAD_WINE_STATUS" == "252" ]] ; then
|
||||
export SKIP_CHECK_UPDATES=1
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
exit 0
|
||||
fi
|
||||
@ -3410,7 +3671,7 @@ gui_proton_downloader () {
|
||||
&& [[ -z "${VERSION_INSTALLED_WINE}" ]]
|
||||
then
|
||||
print_info "Nothing to do."
|
||||
export SKIP_CHECK_UPDATES=1
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
exit 0
|
||||
fi
|
||||
@ -3499,7 +3760,10 @@ gui_edit_db () {
|
||||
|
||||
if check_wayland_session ; then
|
||||
rm_from_var PW_EDIT_DB_LIST "PW_USE_US_LAYOUT"
|
||||
else
|
||||
rm_from_var PW_EDIT_DB_LIST "PW_USE_NATIVE_WAYLAND"
|
||||
fi
|
||||
|
||||
if check_flatpak ; then
|
||||
rm_from_var PW_EDIT_DB_LIST "PW_USE_RUNTIME"
|
||||
fi
|
||||
@ -3665,7 +3929,7 @@ A brief instruction:
|
||||
--button="$(gettext "OPEN THE SETTINGS FILE")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Open the <b>.ppdb</b> settings file in a system text editor to view and change variables manually")":150 \
|
||||
--button="$(gettext "SAVE CHANGES")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Save the current changes, and go to the previous menu")":0 2>/dev/null
|
||||
YAD_STATUS="$?"
|
||||
export SKIP_CHECK_UPDATES=1
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
|
||||
case "$YAD_STATUS" in
|
||||
1|252)
|
||||
@ -3731,8 +3995,8 @@ A brief instruction:
|
||||
exit 0
|
||||
;;
|
||||
150)
|
||||
xdg-open "${PORTWINE_DB_FILE}" &
|
||||
exit 0
|
||||
print_info "Restarting PP after update ppdb file..."
|
||||
gui_edit_db_file
|
||||
;;
|
||||
esac
|
||||
}
|
||||
@ -3848,7 +4112,7 @@ fi
|
||||
YAD_VKBASALT_STATUS="$?"
|
||||
case "${YAD_VKBASALT_STATUS}" in
|
||||
1|252)
|
||||
export SKIP_CHECK_UPDATES=1
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
exit 0 ;;
|
||||
180)
|
||||
@ -3878,7 +4142,7 @@ fi
|
||||
else export PW_VKBASALT_FFX_CAS="0.$YAD_CAS_SET"
|
||||
fi
|
||||
edit_db_from_gui PW_VKBASALT_EFFECTS PW_VKBASALT_FFX_CAS PW_VKBASALT
|
||||
export SKIP_CHECK_UPDATES=1
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
exit 0
|
||||
}
|
||||
@ -4015,14 +4279,14 @@ fi
|
||||
YAD_MANGOHUD_STATUS="$?"
|
||||
case "${YAD_MANGOHUD_STATUS}" in
|
||||
1|252)
|
||||
export SKIP_CHECK_UPDATES=1
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
exit 0
|
||||
;;
|
||||
182)
|
||||
export PW_MANGOHUD=0
|
||||
edit_db_from_gui PW_MANGOHUD FPS_LIMIT
|
||||
export SKIP_CHECK_UPDATES=1
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
exit 0
|
||||
;;
|
||||
@ -4096,7 +4360,7 @@ fi
|
||||
gui_mangohud
|
||||
fi
|
||||
|
||||
export SKIP_CHECK_UPDATES=1
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
exit 0
|
||||
}
|
||||
@ -4214,7 +4478,7 @@ fi
|
||||
YAD_DGV2_STATUS="$?"
|
||||
case "${YAD_DGV2_STATUS}" in
|
||||
1|252)
|
||||
export SKIP_CHECK_UPDATES=1
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
exit 0
|
||||
;;
|
||||
@ -4222,14 +4486,14 @@ fi
|
||||
sed -i '/PW_DGV2/d' "$portwine_exe".ppdb
|
||||
export PW_DGVOODOO2=0
|
||||
edit_db_from_gui PW_DGVOODOO2
|
||||
export SKIP_CHECK_UPDATES=1
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
exit 0
|
||||
;;
|
||||
164)
|
||||
export PW_DGVOODOO2=0
|
||||
edit_db_from_gui PW_DGVOODOO2
|
||||
export SKIP_CHECK_UPDATES=1
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
exit 0
|
||||
;;
|
||||
@ -4269,7 +4533,7 @@ fi
|
||||
PW_DGV2_FPS_LIMIT PW_DGV2_BIT_DEPTH PW_DGV2_BRIGHTNESS PW_DGV2_COLOR PW_DGV2_CONTRAST PW_DGV2_VIDEOCARD PW_DGV2_DISPLAY_ROI \
|
||||
PW_DGV2_CURSOR_SCALE PW_DGV2_RESAMPLING
|
||||
|
||||
export SKIP_CHECK_UPDATES=1
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
exit 0
|
||||
}
|
||||
@ -4376,7 +4640,7 @@ fi
|
||||
|
||||
old_IFS=$IFS
|
||||
IFS="%"
|
||||
"${pw_yad}" --plug=$KEY_GS_GUI --tabnum="1" --form --columns=3 --separator=" " --text-align=center --text "$GAMESCOPE_NEED_INSTALL" \
|
||||
"${pw_yad}" --plug=$KEY_GS_GUI --tabnum="1" --form --columns=4 --separator=" " --text-align=center --text "$GAMESCOPE_NEED_INSTALL" \
|
||||
--gui-type-text=${GAMESCOPE_GUI_TYPE_TEXT_UP} --gui-type-layout=${GAMESCOPE_GUI_TYPE_LAYOUT_UP} $YAD_TEXT_SELECTION \
|
||||
${ADD_CHK_BOX_GS} \
|
||||
1> "${PW_TMPFS_PATH}/tmp_yad_gs_set" 2>/dev/null &
|
||||
@ -4384,7 +4648,7 @@ fi
|
||||
|
||||
GAMESCOPE_XRANDR="$(grep -e '[0-9]x' "${PW_TMPFS_PATH}/xrandr.tmp" | awk '{print $1}' | sort -rVu | grep "^[1-2]" | tr '\n' '!' | sed 's/.$//')"
|
||||
|
||||
"${pw_yad}" --plug=$KEY_GS_GUI --tabnum="2" --form --columns=3 --separator="%" --homogeneous-row \
|
||||
"${pw_yad}" --plug=$KEY_GS_GUI --tabnum="2" --form --columns=2 --separator="%" --homogeneous-row \
|
||||
--gui-type-text=${GAMESCOPE_GUI_TYPE_TEXT_DOWN} --gui-type-layout=${GAMESCOPE_GUI_TYPE_LAYOUT_DOWN} \
|
||||
--field="${CHKBOX_SPACE}$(gettext "Show resolution")!$(gettext "Set the resolution used by gamescope. Resizing the gamescope window will update these settings. Defaults to 1280x720.") :${GS_CBE}" "$(combobox_fix_disabled "${PW_GS_SHOW_RESOLUTION}" "${GAMESCOPE_XRANDR}")" \
|
||||
--field="${CHKBOX_SPACE}$(gettext "Internal resolution")!$(gettext "Scale internal resolution (0.0 is unused)") :${GS_NUMN}" "${PW_GS_INTERNAL_RESOLUTION}:!0..2" \
|
||||
@ -4416,7 +4680,7 @@ relaxed - Same as fifo but allows tearing when below the monitors refresh rate."
|
||||
YAD_GAMESCOPE_STATUS="$?"
|
||||
case "${YAD_GAMESCOPE_STATUS}" in
|
||||
1|252)
|
||||
export SKIP_CHECK_UPDATES=1
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
exit 0
|
||||
;;
|
||||
@ -4424,14 +4688,14 @@ relaxed - Same as fifo but allows tearing when below the monitors refresh rate."
|
||||
sed -i '/PW_GS/d' "$portwine_exe".ppdb
|
||||
export PW_GAMESCOPE=0
|
||||
edit_db_from_gui PW_GAMESCOPE
|
||||
export SKIP_CHECK_UPDATES=1
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
exit 0
|
||||
;;
|
||||
164)
|
||||
export PW_GAMESCOPE=0
|
||||
edit_db_from_gui PW_GAMESCOPE
|
||||
export SKIP_CHECK_UPDATES=1
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
exit 0
|
||||
;;
|
||||
@ -4471,8 +4735,7 @@ relaxed - Same as fifo but allows tearing when below the monitors refresh rate."
|
||||
PW_GS_UPSCALE_SHARPNESS PW_GS_MAX_SCALE_FACTOR PW_GS_MOUSE_SENSITIVITY \
|
||||
PW_GS_SDR_CONTENT_NITS PW_GS_ITM_SDR_NITS PW_GS_ITM_TARGET_NITS
|
||||
|
||||
|
||||
export SKIP_CHECK_UPDATES=1
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
exit 0
|
||||
}
|
||||
@ -4528,13 +4791,9 @@ portwine_create_shortcut () {
|
||||
fi
|
||||
name_desktop="$(echo "${name_desktop}" | sed "s/\`//g" | sed "s/\"//g" | sed "s/'//g")"
|
||||
name_desktop_png="${name_desktop// /_}"
|
||||
create_menu_desktop_shortcut=$(echo "$OUTPUT" | awk -F'|' '{print $2}')
|
||||
create_desktop_desktop_shortcut=$(echo "$OUTPUT" | awk -F'|' '{print $3}')
|
||||
create_menu_steam_shortcut=$(echo "$OUTPUT" | awk -F'|' '{print $4}')
|
||||
|
||||
PW_SHORTCUT_MENU="$create_menu_desktop_shortcut"
|
||||
PW_SHORTCUT_DESKTOP="$create_desktop_desktop_shortcut"
|
||||
PW_SHORTCUT_STEAM="$create_menu_steam_shortcut"
|
||||
PW_SHORTCUT_MENU=$(echo "$OUTPUT" | awk -F'|' '{print $2}')
|
||||
PW_SHORTCUT_DESKTOP=$(echo "$OUTPUT" | awk -F'|' '{print $3}')
|
||||
PW_SHORTCUT_STEAM=$(echo "$OUTPUT" | awk -F'|' '{print $4}')
|
||||
|
||||
edit_user_conf_from_gui PW_SHORTCUT_MENU PW_SHORTCUT_DESKTOP PW_SHORTCUT_STEAM
|
||||
|
||||
@ -4559,12 +4818,12 @@ portwine_create_shortcut () {
|
||||
} >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
|
||||
chmod u+x "${PORT_WINE_PATH}/${name_desktop}.desktop"
|
||||
|
||||
if [[ "${create_menu_desktop_shortcut}" == "TRUE" ]] ; then
|
||||
if [[ "${PW_SHORTCUT_MENU}" == "TRUE" ]] ; then
|
||||
try_remove_file "${HOME}/.local/share/applications/${name_desktop}.desktop"
|
||||
cp -f "${PORT_WINE_PATH}/${name_desktop}.desktop" "${HOME}/.local/share/applications/"
|
||||
fi
|
||||
|
||||
if [[ "${create_desktop_desktop_shortcut}" == "TRUE" ]] ; then
|
||||
if [[ "${PW_SHORTCUT_DESKTOP}" == "TRUE" ]] ; then
|
||||
if [[ -d "${HOME}/Desktop" ]] ; then
|
||||
cp -f "${PORT_WINE_PATH}/${name_desktop}.desktop" "${HOME}/Desktop/"
|
||||
elif [[ -d "${HOME}/Рабочий стол" ]] ; then
|
||||
@ -4574,7 +4833,7 @@ portwine_create_shortcut () {
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "${create_menu_steam_shortcut}" == "TRUE" ]] ; then
|
||||
if [[ "${PW_SHORTCUT_STEAM}" == "TRUE" ]] ; then
|
||||
export STEAM_SCRIPTS="${PORT_WINE_PATH}/steam_scripts"
|
||||
create_new_dir "${STEAM_SCRIPTS}"
|
||||
echo "#!/usr/bin/env bash" > "${STEAM_SCRIPTS}/${name_desktop}.sh"
|
||||
@ -4611,7 +4870,7 @@ portwine_create_shortcut () {
|
||||
|
||||
if [[ "$PW_NO_RESTART_PPDB" != "1" ]] ; then
|
||||
print_info "Restarting PP..."
|
||||
export SKIP_CHECK_UPDATES=1
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
exit 0
|
||||
fi
|
||||
@ -4621,6 +4880,7 @@ portwine_create_shortcut () {
|
||||
portwine_delete_shortcut () {
|
||||
rm -f "$(grep -il "${portwine_exe}" "${HOME}/.local/share/applications"/*.desktop)" &>/dev/null
|
||||
rm -f "$(grep -il "${portwine_exe}" "${PORT_WINE_PATH}"/*.desktop)" &>/dev/null
|
||||
rm -f "$(grep -il "${portwine_exe}" "${PORT_WINE_PATH}/duplicate"/*.desktop)" &>/dev/null
|
||||
# rm -f "$(grep -il "${portwine_exe}" "${STEAM_SCRIPTS}"/*.sh)" &>/dev/null
|
||||
if [[ -d "${HOME}/Desktop" ]] ; then
|
||||
rm -f "$(grep -il "${portwine_exe}" "${HOME}/Desktop"/*.desktop)" &>/dev/null
|
||||
@ -5013,6 +5273,11 @@ pw_autoinstall_from_db () {
|
||||
}
|
||||
|
||||
gui_credits () {
|
||||
if [[ -z "${PW_ALL_DF}" ]] ; then
|
||||
export TAB_MAIN_MENU="4"
|
||||
else
|
||||
export TAB_MAIN_MENU="5"
|
||||
fi
|
||||
. "${PORT_SCRIPTS_PATH}/credits"
|
||||
}
|
||||
export -f gui_credits
|
||||
@ -5036,18 +5301,27 @@ export -f button_click_start
|
||||
|
||||
run_desktop_b_click () {
|
||||
[[ ! -z "$1" ]] && echo "$1" > "${PW_TMPFS_PATH}/tmp_yad_form"
|
||||
if [[ ! -z $(pidof -s yad) ]] || [[ ! -z $(pidof -s yad_gui_pp) ]] ; then
|
||||
kill -s SIGUSR1 $(pgrep -a yad | grep "\--key=${KEY} \--notebook" | awk '{print $1}') > /dev/null 2>&1
|
||||
fi
|
||||
|
||||
if check_flatpak
|
||||
then PW_EXEC_FROM_DESKTOP="$(grep Exec "${PORT_WINE_PATH}/${PW_YAD_SET//@_@/ }" | head -n 1 | sed 's|flatpak run ru.linux_gaming.PortProton|\"${PORT_SCRIPTS_PATH}/start.sh\"|' | awk -F'=' '{print $2}')"
|
||||
else PW_EXEC_FROM_DESKTOP="$(grep Exec "${PORT_WINE_PATH}/${PW_YAD_SET//@_@/ }" | head -n 1 | awk -F"=env " '{print $2}')"
|
||||
if [[ "${USE_DUPLICATE_GUI}" == "1" ]] ; then
|
||||
if [[ ! -z $(pidof -s yad) ]] || [[ ! -z $(pidof -s yad_gui_pp) ]] ; then
|
||||
kill -s SIGUSR1 $(pgrep -a yad | grep "\--width="${PW_DUPLICATE_SIZE_W}" \--height="${PW_DUPLICATE_SIZE_H}"" | awk '{print $1}') > /dev/null 2>&1
|
||||
fi
|
||||
if check_flatpak
|
||||
then PW_EXEC_FROM_DESKTOP="$(grep Exec "${PORT_WINE_PATH}/duplicate/${PW_YAD_SET//@_@/ }" | head -n 1 | sed 's|flatpak run ru.linux_gaming.PortProton|\"${PORT_SCRIPTS_PATH}/start.sh\"|' | awk -F'=' '{print $2}')"
|
||||
else PW_EXEC_FROM_DESKTOP="$(grep Exec "${PORT_WINE_PATH}/duplicate/${PW_YAD_SET//@_@/ }" | head -n 1 | awk -F"=env " '{print $2}')"
|
||||
fi
|
||||
else
|
||||
if [[ ! -z $(pidof -s yad) ]] || [[ ! -z $(pidof -s yad_gui_pp) ]] ; then
|
||||
kill -s SIGUSR1 $(pgrep -a yad | grep "\--key=${KEY} \--notebook" | awk '{print $1}') > /dev/null 2>&1
|
||||
fi
|
||||
if check_flatpak
|
||||
then PW_EXEC_FROM_DESKTOP="$(grep Exec "${PORT_WINE_PATH}/${PW_YAD_SET//@_@/ }" | head -n 1 | sed 's|flatpak run ru.linux_gaming.PortProton|\"${PORT_SCRIPTS_PATH}/start.sh\"|' | awk -F'=' '{print $2}')"
|
||||
else PW_EXEC_FROM_DESKTOP="$(grep Exec "${PORT_WINE_PATH}/${PW_YAD_SET//@_@/ }" | head -n 1 | awk -F"=env " '{print $2}')"
|
||||
fi
|
||||
fi
|
||||
|
||||
print_info "Restarting PP after choose desktop file..."
|
||||
# stop_portwine
|
||||
export SKIP_CHECK_UPDATES=1
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
/usr/bin/env bash -c "${PW_EXEC_FROM_DESKTOP}" &
|
||||
exit 0
|
||||
}
|
||||
@ -5057,7 +5331,7 @@ gui_clear_pfx () {
|
||||
if yad_question "$(gettext "Do you want to clear prefix in PortProton?")" ; then
|
||||
pw_clear_pfx
|
||||
print_info "Restarting PP after clearing prefix..."
|
||||
export SKIP_CHECK_UPDATES=1
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
exit 0
|
||||
fi
|
||||
@ -5079,7 +5353,7 @@ export -f gui_rm_portproton
|
||||
gui_pw_update () {
|
||||
try_remove_file "${PORT_WINE_TMP_PATH}/scripts_update_notifier"
|
||||
print_info "Restarting PP for check update..."
|
||||
export SKIP_CHECK_UPDATES=0
|
||||
export SKIP_CHECK_UPDATES="0"
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
exit 0
|
||||
}
|
||||
@ -5088,7 +5362,7 @@ export -f gui_pw_update
|
||||
change_loc () {
|
||||
try_remove_file "${PORT_WINE_TMP_PATH}/PortProton_loc"
|
||||
print_info "Restarting PP for change language..."
|
||||
export SKIP_CHECK_UPDATES=1
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
exit 0
|
||||
}
|
||||
@ -5103,7 +5377,7 @@ change_mirror () {
|
||||
yad_info "$(gettext "Mirror changed to:") <b>CDN</b>"
|
||||
fi
|
||||
print_info "Restarting PP for change mirror..."
|
||||
export SKIP_CHECK_UPDATES=1
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
exit 0
|
||||
}
|
||||
@ -5138,7 +5412,7 @@ change_gui_start () {
|
||||
yad_info "$(gettext "Gui start changed to:") NOTEBOOK"
|
||||
fi
|
||||
print_info "Restarting PP for change gui start..."
|
||||
export SKIP_CHECK_UPDATES=1
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
exit 0
|
||||
}
|
||||
@ -5151,10 +5425,64 @@ gui_wine_uninstaller () {
|
||||
export -f gui_wine_uninstaller
|
||||
|
||||
gui_open_user_conf () {
|
||||
xdg-open "${PORT_WINE_PATH}/data/user.conf"
|
||||
PW_USERCONF_GUI="$("${pw_yad}" --title="$(gettext "EDIT USER CONFIG")" \
|
||||
--text-info --editable --width=800 --height=600 \
|
||||
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
|
||||
--button="$(gettext "MAIN MENU")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":1 \
|
||||
--button="$(gettext "SAVE")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":2 \
|
||||
--filename="${PORT_WINE_PATH}/data/user.conf" 2>/dev/null)"
|
||||
YAD_STATUS="$?"
|
||||
|
||||
case "${YAD_STATUS}" in
|
||||
1|252)
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
if [[ -z "${PW_ALL_DF}" ]] ; then
|
||||
export TAB_MAIN_MENU="4"
|
||||
else
|
||||
export TAB_MAIN_MENU="5"
|
||||
fi
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
print_info "Restarting..."
|
||||
exit 0
|
||||
;;
|
||||
2)
|
||||
echo "${PW_USERCONF_GUI}" > "${PORT_WINE_PATH}/data/user.conf"
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
if [[ -z "${PW_ALL_DF}" ]] ; then
|
||||
export TAB_MAIN_MENU="4"
|
||||
else
|
||||
export TAB_MAIN_MENU="5"
|
||||
fi
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
print_info "Restarting..."
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
}
|
||||
export -f gui_open_user_conf
|
||||
|
||||
gui_edit_db_file () {
|
||||
GUI_EDIT_DB_FILE="$("${pw_yad}" --title="$(gettext "EDIT DB")" \
|
||||
--text-info --editable --width=800 --height=600 \
|
||||
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
|
||||
--button="$(gettext "SETTINGS")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":1 \
|
||||
--button="$(gettext "SAVE")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"":2 \
|
||||
--filename="${PORTWINE_DB_FILE}" 2>/dev/null)"
|
||||
YAD_STATUS="$?"
|
||||
|
||||
case "$YAD_STATUS" in
|
||||
1|252)
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
exit 0
|
||||
;;
|
||||
2)
|
||||
echo "${GUI_EDIT_DB_FILE}" > "${PORTWINE_DB_FILE}"
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
gui_open_scripts_from_backup () {
|
||||
cd "${PORT_WINE_TMP_PATH}/scripts_backup/" || fatal
|
||||
PW_SCRIPT_FROM_BACKUP=$("${pw_yad}" --file --width=650 --height=500 \
|
||||
@ -5164,7 +5492,7 @@ gui_open_scripts_from_backup () {
|
||||
unpack "$PW_SCRIPT_FROM_BACKUP" "${PORT_WINE_PATH}/data/"
|
||||
echo "0" > "${PORT_WINE_TMP_PATH}/scripts_update_notifier"
|
||||
print_info "Restarting PP after backup..."
|
||||
export SKIP_CHECK_UPDATES=1
|
||||
export SKIP_CHECK_UPDATES="1"
|
||||
/usr/bin/env bash -c ${pw_full_command_line[*]} &
|
||||
exit 0
|
||||
}
|
||||
|
@ -6,5 +6,5 @@
|
||||
export PW_VULKAN_USE="2"
|
||||
export PW_WINE_USE="PROTON_LG"
|
||||
export PW_PREFIX_NAME="CALIBER"
|
||||
export DISABLE_CP_DEFPFX=1
|
||||
# export DISABLE_CP_DEFPFX="1"
|
||||
export WINEDLLOVERRIDES="xaudio2_7=n,b"
|
||||
|
@ -1,13 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
#Author: linux-gaming.ru
|
||||
#setup.exe
|
||||
#Setup.exe
|
||||
#SETUP.exe
|
||||
#.msi
|
||||
#Rating=5
|
||||
################################################
|
||||
export PW_DISABLED_CREATE_DB=1
|
||||
export PW_ICON_FOR_YAD="${PORT_WINE_PATH}/data/img/setup.png"
|
||||
export PW_VULKAN_USE=1
|
||||
export PW_MANGOHUD=0
|
||||
export PW_NO_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
|
||||
@ -17,7 +14,3 @@ export PW_FORCE_LARGE_ADDRESS_AWARE=1 # Force Wine to enable the LARGE_
|
||||
export PW_DLL_INSTALL=""
|
||||
# export WINEDLLOVERRIDES="mscoree,mshtml="
|
||||
export PW_WINE_USE=WINE_LG
|
||||
|
||||
add_in_stop_portwine () {
|
||||
pw_find_exe news
|
||||
}
|
||||
|
@ -4,12 +4,10 @@
|
||||
export PW_PREFIX_NAME="CALIBER"
|
||||
export LAUNCH_PARAMETERS=("/VERYSILENT" "/CLOSEAPPLICATIONS")
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/CaliberSetup.exe"
|
||||
export PW_WINE_USE=PROTON_LG
|
||||
export DISABLE_CP_DEFPFX=1
|
||||
export PW_WINE_USE="PROTON_LG"
|
||||
# export DISABLE_CP_DEFPFX="1"
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="CALIBER"
|
||||
|
||||
gui_proton_downloader silent "${PW_WINE_USE}"
|
||||
|
||||
start_portwine
|
||||
if try_download "https://cdn.playcaliber.com/caliber-s3/p1/a88c3b70f76a0e56b1e08b62c9895cfe/launcher/setup/CaliberSetup.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
|
@ -3,6 +3,7 @@
|
||||
########################################################################
|
||||
export LAUNCH_PARAMETERS=("/S" "/D=c:\Program Files (x86)\Ubisoft Game Launcher")
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/UbisoftConnectInstaller.exe"
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="Ubisoft Connect"
|
||||
start_portwine
|
||||
if try_download "https://ubistatic3-a.akamaihd.net/orbit/launcher_installer/UbisoftConnectInstaller.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
|
@ -87,7 +87,7 @@ unset CHK_SYMLINK_FILE PW_MESA_GL_VERSION_OVERRIDE PW_VKD3D_FEATURE_LEVEL PATH_T
|
||||
unset PW_PREFIX_NAME WINEPREFIX VULKAN_MOD PW_WINE_VER PW_ADD_TO_ARGS_IN_RUNTIME PW_GAMEMODERUN_SLR AMD_VULKAN_ICD PW_WINE_CPU_TOPOLOGY
|
||||
unset PW_NAME_D_NAME PW_NAME_D_ICON PW_NAME_D_EXEC PW_EXEC_FROM_DESKTOP PW_ALL_DF PW_GENERATE_BUTTONS PW_NAME_D_ICON PW_NAME_D_ICON_48
|
||||
unset MANGOHUD_CONFIG FPS_LIMIT PW_WINE_USE WINEDLLPATH WINE WINEDIR WINELOADER WINESERVER PW_USE_RUNTIME PORTWINE_CREATE_SHORTCUT_NAME MIRROR
|
||||
unset PW_LOCALE_SELECT PW_SETTINGS_INDICATION PW_GUI_START PW_AUTOINSTALL_EXE NOSTSTDIR
|
||||
unset PW_LOCALE_SELECT PW_SETTINGS_INDICATION PW_GUI_START PW_AUTOINSTALL_EXE NOSTSTDIR USE_DUPLICATE_GUI
|
||||
|
||||
export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp"
|
||||
rm -f "$PORT_WINE_TMP_PATH"/*{exe,msi,tar}*
|
||||
@ -172,8 +172,9 @@ then
|
||||
else
|
||||
# shellcheck source=/dev/null
|
||||
source "$PW_GUI_THEMES_PATH/default.pptheme"
|
||||
echo 'export GUI_THEME="default"' >> "$USER_CONF"
|
||||
echo 'export GUI_THEME="default"' >> "$USER_CONF"
|
||||
fi
|
||||
[[ "$XDG_SESSION_DESKTOP" == "KDE" ]] && export YAD_OPTIONS+="--center"
|
||||
|
||||
# choose branch
|
||||
if [[ -z "$BRANCH" ]] ; then
|
||||
@ -551,7 +552,7 @@ if [[ -f "${portwine_exe}" ]] ; then
|
||||
export TAB_START="1"
|
||||
fi
|
||||
|
||||
"${pw_yad}" --key=$KEY_START --notebook --active-tab=${TAB_START} \
|
||||
"${pw_yad}" --key=$KEY_START --notebook --active-tab="${TAB_START}" \
|
||||
--gui-type="settings-notebook" \
|
||||
--width="${PW_START_SIZE_W}" --tab-pos="${PW_TAB_POSITON}" --center \
|
||||
--title "PortProton-${install_ver} (${scripts_install_ver}${BRANCH_VERSION})" --expand \
|
||||
@ -636,14 +637,17 @@ else
|
||||
else PW_GUI_SORT_TABS=(2 3 4 5 1)
|
||||
fi
|
||||
PW_GENERATE_BUTTONS="--field= $(gettext "Create shortcut...")!${PW_GUI_ICON_PATH}/find_48.svg!:FBTN%@bash -c \"button_click pw_find_exe\"%"
|
||||
if grep -i "[Desktop Entry]" "${PORT_WINE_PATH}/duplicate"/* &>/dev/null ; then
|
||||
PW_GENERATE_BUTTONS+="--field= $(gettext "Duplicates")!${PW_GUI_ICON_PATH}/duplicate.svg!:FBTN%@bash -c \"button_click pw_duplicate\"%"
|
||||
fi
|
||||
for PW_DESKTOP_FILES in ${PW_ALL_DF} ; do
|
||||
PW_NAME_D_ICON="$(grep Icon "${PORT_WINE_PATH}/${PW_DESKTOP_FILES}" | awk -F= '{print $2}')"
|
||||
PW_NAME_D_ICON_48="${PW_NAME_D_ICON//".png"/"_48.png"}"
|
||||
if [[ ! -f "${PW_NAME_D_ICON_48}" ]] \
|
||||
&& [[ -f "${PW_NAME_D_ICON}" ]] \
|
||||
&& command -v "convert" 2>/dev/null
|
||||
&& command -v "convert" &>/dev/null
|
||||
then
|
||||
convert "${PW_NAME_D_ICON}" -resize 48x48 "${PW_NAME_D_ICON_48}"
|
||||
convert "${PW_NAME_D_ICON}" -resize 48x48 "${PW_NAME_D_ICON_48}" &>/dev/null
|
||||
fi
|
||||
PW_DESKTOP_HELPER="${PW_DESKTOP_FILES// /@_@}"
|
||||
PW_GENERATE_BUTTONS+="--field= ${PW_DESKTOP_FILES//".desktop"/""}!${PW_NAME_D_ICON_48}!:FBTN%@bash -c \"run_desktop_b_click "${PW_DESKTOP_HELPER}"\"%"
|
||||
@ -749,11 +753,14 @@ else
|
||||
# --field=" Bethesda.net Launcher"!"$PW_GUI_ICON_PATH/bethesda.png"!"":"FBTN" '@bash -c "button_click PW_BETHESDA"'
|
||||
# --field=" League of Legends"!"$PW_GUI_ICON_PATH/lol.png"!"":"FBTN" '@bash -c "button_click PW_LOL"'
|
||||
|
||||
export START_FROM_PP_GUI=1
|
||||
export START_FROM_PP_GUI="1"
|
||||
if [[ -z ${TAB_MAIN_MENU} ]] ; then
|
||||
export TAB_MAIN_MENU="1"
|
||||
fi
|
||||
|
||||
if [[ -z "${PW_ALL_DF}" ]] ; then
|
||||
"${pw_yad}" --key=$KEY --notebook --expand \
|
||||
--gui-type="settings-notebook" \
|
||||
--gui-type="settings-notebook" --active-tab="${TAB_MAIN_MENU}" \
|
||||
--width="${PW_MAIN_SIZE_W}" --height="${PW_MAIN_SIZE_H}" --no-buttons \
|
||||
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
|
||||
--title "PortProton-${install_ver} (${scripts_install_ver}${BRANCH_VERSION})" \
|
||||
@ -766,7 +773,7 @@ else
|
||||
YAD_STATUS="$?"
|
||||
else
|
||||
"${pw_yad}" --key=$KEY --notebook --expand \
|
||||
--gui-type="settings-notebook" \
|
||||
--gui-type="settings-notebook" --active-tab="${TAB_MAIN_MENU}" \
|
||||
--width="${PW_MAIN_SIZE_W}" --height="${PW_MAIN_SIZE_H}" --no-buttons \
|
||||
--window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
|
||||
--title "PortProton-${install_ver} (${scripts_install_ver}${BRANCH_VERSION})" \
|
||||
@ -778,11 +785,12 @@ else
|
||||
--tab="$(gettext "PORTPROTON SETTINGS")"!"$PW_GUI_ICON_PATH/$TAB_SIZE.png"!"" 2>/dev/null
|
||||
YAD_STATUS="$?"
|
||||
fi
|
||||
unset TAB_MAIN_MENU
|
||||
|
||||
if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; fi
|
||||
pw_yad_set_form
|
||||
pw_yad_form_vulkan
|
||||
export PW_DISABLED_CREATE_DB=1
|
||||
export PW_DISABLED_CREATE_DB="1"
|
||||
fi
|
||||
|
||||
case "${VULKAN_MOD}" in
|
||||
@ -832,6 +840,7 @@ fi
|
||||
gui_credits) gui_credits ;;
|
||||
pw_start_cont_xterm) pw_start_cont_xterm ;;
|
||||
pw_find_exe) pw_find_exe ;;
|
||||
pw_duplicate) pw_duplicate ;;
|
||||
PW_*) pw_autoinstall_from_db ;;
|
||||
*.desktop) run_desktop_b_click ;;
|
||||
1|252|*) exit 0 ;;
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
#Author: Castro-Fidel (linux-gaming.ru)
|
||||
#SCRIPTS_NEXT_VERSION=2324
|
||||
#SCRIPTS_STABLE_VERSION=2320
|
||||
#SCRIPTS_NEXT_VERSION=2328
|
||||
#SCRIPTS_STABLE_VERSION=2327
|
||||
########################################################################
|
||||
export LANGUAGES_LIST="ru es"
|
||||
export PW_VKBASALT="0"
|
||||
|
@ -23,6 +23,9 @@ export TAB_SIZE=28
|
||||
export PW_MAIN_SIZE_W=1100
|
||||
export PW_MAIN_SIZE_H=350
|
||||
|
||||
export PW_DUPLICATE_SIZE_W=1100
|
||||
export PW_DUPLICATE_SIZE_H=350
|
||||
|
||||
export PW_START_SIZE_W=600
|
||||
export PW_START_SIZE_H=350
|
||||
export PW_TAB_POSITON=top
|
||||
|
@ -11,7 +11,6 @@ export YAD_OPTIONS="--css=$THEME_PATH/style.css \
|
||||
--keep-icon-size \
|
||||
--buttons-layout=expand \
|
||||
--class=PortProton \
|
||||
--center \
|
||||
--gui-type-height=2 \
|
||||
--gui-type-width=2 \
|
||||
"
|
||||
@ -24,10 +23,13 @@ export BUTTON_SIZE=32 # 24, 28, 32, 36, 40
|
||||
|
||||
export TAB_SIZE=32 # 24, 28, 32, 36, 40
|
||||
|
||||
export PW_MAIN_SIZE_W=1
|
||||
export PW_MAIN_SIZE_W=500
|
||||
export PW_MAIN_SIZE_H=350
|
||||
|
||||
export PW_START_SIZE_W=1
|
||||
export PW_DUPLICATE_SIZE_W=1000
|
||||
export PW_DUPLICATE_SIZE_H=350
|
||||
|
||||
export PW_START_SIZE_W=500
|
||||
export PW_START_SIZE_H=350
|
||||
export PW_TAB_POSITON=top
|
||||
|
||||
|
@ -1,15 +1,70 @@
|
||||
/*Глобальные правила*/
|
||||
arrow {margin: 3px 5px} /*выравнивание стрелок комбобоксов*/
|
||||
separator {margin: 0px 0px 0px 0px; background-size:0px; padding-bottom: 0px} /*скрываем сепаратор*/
|
||||
check {min-height: 24px; min-width: 24px} /*увеличиваем чекбоксы*/
|
||||
cellview,entry {min-height: 26px} /*высота комбобоксов, т.к. некоторые темы их делают меньше и вёрстка съезжает*/
|
||||
switch {margin: 5px 10px 0px 10px} /*переключатели mangohud и т.д. (в дефолтных темах gtk отступы необходимы. В то время как в некоторых темах выглядит больше, чем нужно. Пример qogir)*/
|
||||
|
||||
/*выравнивание стрелок комбобоксов*/
|
||||
arrow {
|
||||
margin: 3px 5px
|
||||
}
|
||||
|
||||
/*скрываем сепаратор*/
|
||||
separator {
|
||||
margin: 0px 0px 0px 0px;
|
||||
background-size: 0px;
|
||||
padding-bottom: 0px
|
||||
}
|
||||
|
||||
/*увеличиваем чекбоксы*/
|
||||
check {
|
||||
min-height: 24px;
|
||||
min-width: 24px
|
||||
}
|
||||
|
||||
/*высота комбобоксов, т.к. некоторые темы их делают меньше и вёрстка съезжает*/
|
||||
cellview, entry {
|
||||
min-height: 26px
|
||||
}
|
||||
|
||||
/*переключатели mangohud и т.д. (в дефолтных темах gtk отступы необходимы. В то время как в некоторых темах выглядит больше, чем нужно. Пример qogir)*/
|
||||
switch {
|
||||
margin: 5px 10px 0px 10px
|
||||
}
|
||||
|
||||
|
||||
/*Правила для окон*/
|
||||
window>box>grid {padding: 5px} /*отступы в расширенных настройках*/
|
||||
window>box>box>image {padding: 0px 0px 5px 0px;} /*иконка запуска ярлыка*/
|
||||
window>box>box>box>image {margin-top: 5px} /*иконка в создании ярлыка*/
|
||||
window>box>box>grid {padding: 0px 5px 5px 0px} /*комбобоксы в запуске ярлыка*/
|
||||
window>box>label {background: @theme_selected_bg_color; color: @theme_text_color; margin:3px 0px 3px 0px; padding: 5px} /*текст запуска ярлыка*/
|
||||
|
||||
window>box>box>label {background: @theme_selected_bg_color; color: @theme_text_color; margin:3px 0px 0px 0px; padding: 5px} /*текст при создании ярлыка и в настройках*/
|
||||
|
||||
/*отступы в расширенных настройках*/
|
||||
window > box > grid {
|
||||
padding: 5px
|
||||
}
|
||||
|
||||
/*иконка запуска ярлыка*/
|
||||
window > box > box > image {
|
||||
padding: 0px 0px 5px 0px;
|
||||
}
|
||||
|
||||
/*иконка в создании ярлыка*/
|
||||
window > box > box > box > image {
|
||||
margin-top: 5px
|
||||
}
|
||||
|
||||
/*комбобоксы в запуске ярлыка*/
|
||||
window > box > box > grid {
|
||||
padding: 0px 5px 5px 0px
|
||||
}
|
||||
|
||||
/*текст запуска ярлыка*/
|
||||
window > box > label {
|
||||
background: @theme_selected_bg_color;
|
||||
color: @theme_text_color;
|
||||
margin: 3px 0px 3px 0px;
|
||||
padding: 5px
|
||||
}
|
||||
|
||||
/*текст при создании ярлыка и в настройках*/
|
||||
window > box > box > label {
|
||||
background: @theme_selected_bg_color;
|
||||
color: @theme_text_color;
|
||||
margin: 3px 0px 0px 0px;
|
||||
padding: 5px
|
||||
}
|
||||
|
||||
|
@ -31,9 +31,13 @@ export BUTTON_SIZE=28 # 24, 28, 32, 36, 40
|
||||
export TAB_SIZE=32 # 24, 28, 32, 36, 40
|
||||
|
||||
# размер главного меню
|
||||
export PW_MAIN_SIZE_W=1
|
||||
export PW_MAIN_SIZE_W=500
|
||||
export PW_MAIN_SIZE_H=330
|
||||
|
||||
# размер окна для дубликатов
|
||||
export PW_DUPLICATE_SIZE_W=1000
|
||||
export PW_DUPLICATE_SIZE_H=330
|
||||
|
||||
# размер меню запуска и положения табов
|
||||
export PW_START_SIZE_W=800
|
||||
export PW_START_SIZE_H=330
|
||||
|
@ -1,12 +1,53 @@
|
||||
/*Глобальные правила*/
|
||||
arrow {margin: 3px 5px} /*выравнивание стрелок комбобоксов*/
|
||||
separator {margin: 0px 0px 0px 0px; background-size:0px; padding-bottom: 0px} /*скрываем сепаратор*/
|
||||
check {min-height: 24px; min-width: 24px} /*увеличиваем чекбоксы*/
|
||||
cellview,entry {min-height: 26px} /*высота комбобоксов, т.к. некоторые темы их делают меньше и вёрстка съезжает*/
|
||||
switch {margin: 5px 10px 0px 10px} /*переключатели mangohud и т.д. (в дефолтных темах gtk отступы необходимы. В то время как в некоторых темах выглядит больше, чем нужно. Пример qogir)*/
|
||||
|
||||
/*выравнивание стрелок комбобоксов*/
|
||||
arrow {
|
||||
margin: 3px 5px
|
||||
}
|
||||
|
||||
|
||||
/*скрываем сепаратор*/
|
||||
separator {
|
||||
margin: 0px 0px 0px 0px;
|
||||
background-size: 0px;
|
||||
padding-bottom: 0px
|
||||
}
|
||||
|
||||
/*увеличиваем чекбоксы*/
|
||||
check {
|
||||
min-height: 24px;
|
||||
min-width: 24px
|
||||
}
|
||||
|
||||
/*высота комбобоксов, т.к. некоторые темы их делают меньше и вёрстка съезжает*/
|
||||
cellview, entry {
|
||||
min-height: 26px
|
||||
}
|
||||
|
||||
/*переключатели mangohud и т.д. (в дефолтных темах gtk отступы необходимы. В то время как в некоторых темах выглядит больше, чем нужно. Пример qogir)*/
|
||||
switch {
|
||||
margin: 5px 10px 0px 10px
|
||||
}
|
||||
|
||||
|
||||
/*Правила для окон*/
|
||||
window>box>grid {padding: 5px} /*отступы в расширенных настройках*/
|
||||
window>box>box>image {padding: 0px 0px 5px 0px;} /*иконка запуска ярлыка*/
|
||||
window>box>box>box>image {margin-top: 5px} /*иконка в создании ярлыка*/
|
||||
window>box>box>grid {padding: 0px 5px 5px 0px} /*комбобоксы в запуске ярлыка*/
|
||||
|
||||
/*отступы в расширенных настройках*/
|
||||
window > box > grid {
|
||||
padding: 5px
|
||||
}
|
||||
|
||||
/*иконка запуска ярлыка*/
|
||||
window > box > box > image {
|
||||
padding: 0px 0px 5px 0px;
|
||||
}
|
||||
|
||||
/*иконка в создании ярлыка*/
|
||||
window > box > box > box > image {
|
||||
margin-top: 5px
|
||||
}
|
||||
|
||||
/*комбобоксы в запуске ярлыка*/
|
||||
window > box > box > grid {
|
||||
padding: 0px 5px 5px 0px
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user