From 9f0aa54e54d03cc42d219a82c23b5be24bcda5af Mon Sep 17 00:00:00 2001 From: VHSgunzo Date: Thu, 23 Feb 2023 15:18:24 +0300 Subject: [PATCH] v0.75.9 Add lwrap Fix create_shortcut() Change *.desktop's Add all LW path to Makefile uninstall Minor fixes --- .github/workflows/main.yml | 125 ++---------------- LutrisWineService.desktop | 64 +++++----- Makefile | 7 ++ PKGBUILD | 2 +- applications/LutrisWine.desktop | 2 +- applications/addtolu.desktop | 2 +- applications/appcfg.desktop | 2 +- applications/backupmnt.desktop | 2 +- applications/backupunmnt.desktop | 2 +- applications/clearpfx.desktop | 2 +- applications/cmd.desktop | 2 +- applications/config.desktop | 2 +- applications/control.desktop | 2 +- applications/debug.desktop | 2 +- applications/exit.desktop | 2 +- applications/explorer.desktop | 2 +- applications/help.desktop | 2 +- applications/init.desktop | 2 +- applications/killexe.desktop | 2 +- applications/killshell.desktop | 2 +- applications/killtray.desktop | 2 +- applications/killwine.desktop | 2 +- applications/openpfx.desktop | 2 +- applications/pfxbackup.desktop | 2 +- applications/pfxrestore.desktop | 2 +- applications/regedit.desktop | 2 +- applications/rmapp.desktop | 2 +- applications/shell.desktop | 2 +- applications/shortcut.desktop | 2 +- applications/taskmgr.desktop | 2 +- applications/tray.desktop | 2 +- applications/uninstaller.desktop | 2 +- applications/update.desktop | 2 +- applications/version.desktop | 2 +- applications/winecfg.desktop | 2 +- applications/winemgr.desktop | 2 +- applications/winetricks.desktop | 2 +- lutris-wine | 84 ++++++++----- lwrap/PKGBUILD | 55 ++++++++ lwrap/lwrap | 209 +++++++++++++++++++++++++++++++ 40 files changed, 398 insertions(+), 214 deletions(-) create mode 100644 lwrap/PKGBUILD create mode 100755 lwrap/lwrap diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 26f77dc..700ddab 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -8,130 +8,27 @@ on: - '*' jobs: - build: + build_and_release: + name: lutris-wine runs-on: ubuntu-latest + permissions: + contents: write steps: + - name: Checkout uses: actions/checkout@v2 - - name: Build archlinux package + - name: Build archlinux packages uses: countstarlight/arch-makepkg-action@master with: - #repos: > - # archlinuxcn=https://geo-mirror.chaotic.cx/$repo/$arch - #before: "sudo pacman -S --noconfirm archlinux-keyring chaotic-keyring chaotic-mirrorlist" - # packages: > - # aria2 - # qt5-tools - # xterm - # xorg-fonts-100dpi - # xorg-fonts-75dpi - # xorg-fonts-cyrillic - # xorg-fonts-type1 - # xorg-fonts-misc - # cabextract - # perl - # unzip - # xorg-xmessage - # zenity - # yad - # xkb-switch - # imagemagick - # icoutils - # lib32-mangohud - # lib32-vkbasalt - # mangohud - # mangohud-common - # vkbasalt - # gamemode - # lib32-gamemode - # giflib - # lib32-giflib - # libpng - # lib32-libpng - # libldap - # lib32-libldap - # gnutls - # lib32-gnutls - # mpg123 - # lib32-mpg123 - # openal - # lib32-openal - # v4l-utils - # lib32-v4l-utils - # libpulse - # lib32-libpulse - # libgpg-error - # lib32-libgpg-error - # alsa-plugins - # lib32-alsa-plugins - # alsa-lib - # lib32-alsa-lib - # libjpeg-turbo - # lib32-libjpeg-turbo - # sqlite - # lib32-sqlite - # libxcomposite - # lib32-libxcomposite - # libxinerama - # lib32-libgcrypt - # libgcrypt - # lib32-libxinerama - # ncurses - # lib32-ncurses - # opencl-icd-loader - # lib32-opencl-icd-loader - # libxslt - # lib32-libxslt - # libva - # lib32-libva - # gtk3 - # lib32-gtk3 - # lib32-vulkan-icd-loader - # vulkan-headers - # vulkan-icd-loader - # vulkan-tools - # mesa - # lib32-glu - # glu - # lib32-libva-mesa-driver - # lib32-mesa - # libva-mesa-driver - # mesa-demos - # mesa-utils - # mesa-vdpau - # vulkan-mesa-layers - # lib32-vulkan-mesa-layers - # libstrangle-git - # openssl - # libnotify - # coreutils - # libxrandr - # lib32-libxrandr - # xorg-xrandr - # bc - # xorg-xgamma - # lsb-release - # iputils - # curl - # xdelta3 - # latencyflex-git - # latencyflex-wine-git - # xdg-utils - # desktop-file-utils - # squashfs-tools - # squashfuse - # fuse2 - # reshade-shaders-git - # winetricks - # innoextract - # p7zip - # gnu-netcat - scripts: "makepkg --nodeps" + scripts: "makepkg --nodeps && cd lwrap && makepkg --nodeps" + - name: Release uses: softprops/action-gh-release@v1 if: startsWith(github.ref, 'refs/tags/') with: - files: lutris-wine-git-*.pkg* + files: | + lutris-wine-git-*.pkg* + lwrap/lwrap-*.pkg* env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/LutrisWineService.desktop b/LutrisWineService.desktop index 26c3436..28e23f0 100644 --- a/LutrisWineService.desktop +++ b/LutrisWineService.desktop @@ -1,191 +1,191 @@ [Desktop Action explorer] -Exec=lutris-wine -explorer %f +Exec="/usr/bin/lutris-wine" -explorer %f Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Explorer Name[ru_RU]=Рабочий стол [Desktop Action cmd] -Exec=lutris-wine -cmd %f +Exec="/usr/bin/lutris-wine" -cmd %f Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Open in CMD Name[ru_RU]=Открыть в CMD [Desktop Action shell] -Exec=lutris-wine -shell %f +Exec="/usr/bin/lutris-wine" -shell %f Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Open in SHELL Name[ru_RU]=Открыть в SHELL [Desktop Action regedit] -Exec=lutris-wine -regedit %f +Exec="/usr/bin/lutris-wine" -regedit %f Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Registry editor Name[ru_RU]=Редактор реестра [Desktop Action control] -Exec=lutris-wine -control %f +Exec="/usr/bin/lutris-wine" -control %f Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Control panel Name[ru_RU]=Панель управления [Desktop Action winecfg] -Exec=lutris-wine -winecfg %f +Exec="/usr/bin/lutris-wine" -winecfg %f Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Wine settings Name[ru_RU]=Настройки Wine [Desktop Action taskmgr] -Exec=lutris-wine -taskmgr %f +Exec="/usr/bin/lutris-wine" -taskmgr %f Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Task manager Name[ru_RU]=Диспетчер задач [Desktop Action winemgr] -Exec=lutris-wine -winemgr +Exec="/usr/bin/lutris-wine" -winemgr Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Wine manager Name[ru_RU]=Wine менеджер [Desktop Action uninstaller] -Exec=lutris-wine -uninstaller %f +Exec="/usr/bin/lutris-wine" -uninstaller %f Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Wine uninstaller Name[ru_RU]=Устан/удал программ [Desktop Action winetricks] -Exec=lutris-wine -winetricks %f +Exec="/usr/bin/lutris-wine" -winetricks %f Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Winetricks Name[ru_RU]=Winetricks [Desktop Action openpfx] -Exec=lutris-wine -openpfx %f +Exec="/usr/bin/lutris-wine" -openpfx %f Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Open drive C:\\ Name[ru_RU]=Открыть диск C:\\ [Desktop Action killwine] -Exec=lutris-wine -killwine %f +Exec="/usr/bin/lutris-wine" -killwine %f Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Kill Wine processes Name[ru_RU]=Убить процессы Wine [Desktop Action killtray] -Exec=lutris-wine -killtray +Exec="/usr/bin/lutris-wine" -killtray Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Kill tray Name[ru_RU]=Убить трей [Desktop Action killexe] -Exec=lutris-wine -killexe %f +Exec="/usr/bin/lutris-wine" -killexe %f Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Kill running EXE Name[ru_RU]=Убить запущенные EXE [Desktop Action killshell] -Exec=lutris-wine -killshell +Exec="/usr/bin/lutris-wine" -killshell Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Kill SHELL Name[ru_RU]=Убить SHELL [Desktop Action clearpfx] -Exec=lutris-wine -clearpfx %f +Exec="/usr/bin/lutris-wine" -clearpfx %f Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Clear prefix Name[ru_RU]=Очистить префикс [Desktop Action debug] -Exec=lutris-wine -debug %f +Exec="/usr/bin/lutris-wine" -debug %f Icon=/usr/share/lutris-wine/icons/default_icon.png Name=DEBUG Name[ru_RU]=ДЕБАГ [Desktop Action shortcut] -Exec=lutris-wine -shortcut %f +Exec="/usr/bin/lutris-wine" -shortcut %f Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Create shortcut Name[ru_RU]=Cоздать ярлык [Desktop Action addtolu] -Exec=lutris-wine -addtolu %f +Exec="/usr/bin/lutris-wine" -addtolu %f Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Add to Lutris Name[ru_RU]=Добавить в Lutris [Desktop Action rmapp] -Exec=lutris-wine -rmapp %f +Exec="/usr/bin/lutris-wine" -rmapp %f Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Remove menu app Name[ru_RU]=Удалить приложение из меню [Desktop Action tray] -Exec=lutris-wine -tray noclose +Exec="/usr/bin/lutris-wine" -tray noclose Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Tray Name[ru_RU]=Трей [Desktop Action exit] -Exec=lutris-wine -exit %f +Exec="/usr/bin/lutris-wine" -exit %f Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Force exit Name[ru_RU]=Закрыть всё [Desktop Action update] -Exec=lutris-wine -update openupdtr +Exec="/usr/bin/lutris-wine" -update openupdtr Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Update runtime Name[ru_RU]=Обновление рантайм [Desktop Action help] -Exec=lutris-wine -help +Exec="/usr/bin/lutris-wine" -help Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Usage info Name[ru_RU]=Использование [Desktop Action version] -Exec=lutris-wine -version %f +Exec="/usr/bin/lutris-wine" -version %f Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Version info Name[ru_RU]=Версия [Desktop Action config] -Exec=lutris-wine -config %f +Exec="/usr/bin/lutris-wine" -config %f Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Settings Name[ru_RU]=Настройки [Desktop Action appcfg] -Exec=lutris-wine -appcfg +Exec="/usr/bin/lutris-wine" -appcfg Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Apps settings Name[ru_RU]=Настройки приложений [Desktop Action init] -Exec=lutris-wine -init %f +Exec="/usr/bin/lutris-wine" -init %f Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Forced initialization Name[ru_RU]=Принудительная инициализация [Desktop Action pfxbackup] -Exec=lutris-wine -pfxbackup %f +Exec="/usr/bin/lutris-wine" -pfxbackup %f Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Create prefix backup Name[ru_RU]=Создать бекап префикса [Desktop Action pfxrestore] -Exec=lutris-wine -pfxrestore %f +Exec="/usr/bin/lutris-wine" -pfxrestore %f Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Restore prefix from backup Name[ru_RU]=Восстановить префикс [Desktop Action backupmnt] -Exec=lutris-wine -backupmnt %f +Exec="/usr/bin/lutris-wine" -backupmnt %f Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Mount prefix backup Name[ru_RU]=Монтировать бекап префикса [Desktop Action backupunmnt] -Exec=lutris-wine -backupunmnt %f +Exec="/usr/bin/lutris-wine" -backupunmnt %f Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Unmount prefix backup Name[ru_RU]=Отмонтировать бекап префикса diff --git a/Makefile b/Makefile index a222604..81b275a 100755 --- a/Makefile +++ b/Makefile @@ -36,5 +36,12 @@ uninstall: $(RM) -rfv "$(DESTDIR)/usr/share/kservices5/ServiceMenus/LutrisWine"* $(RM) -rfv "$(DESTDIR)/usr/share/lutris-wine" $(RM) -rfv "$(DESTDIR)/usr/share/licenses/lutris-wine" + $(RM) -rfv "$(HOME)/.local/bin/lutris-wine" + $(RM) -rfv "$(HOME)/.config/menus/applications-merged/LutrisWine.menu" + $(RM) -rfv "$(HOME)/.local/share/applications/LutrisWine" + $(RM) -rfv "$(HOME)/.local/share/desktop-directories/LutrisWine"* + $(RM) -rfv "$(HOME)/.local/share/kservices5/ServiceMenus/LutrisWine"* + $(RM) -rfv "$(HOME)/.local/share/LutrisWine" + $(RM) -rfv "$(HOME)/LutrisWine" .PHONY: install uninstall diff --git a/PKGBUILD b/PKGBUILD index ff681d9..3c2dafa 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,6 +1,6 @@ # Maintainer: VHSgunzo pkgname='lutris-wine-git' -pkgver='0.75.8' +pkgver='0.75.9' pkgrel='1' pkgdesc='Easy launch of your Windows applications and games with Wine/Proton' arch=('x86_64') diff --git a/applications/LutrisWine.desktop b/applications/LutrisWine.desktop index fc97682..d44950a 100755 --- a/applications/LutrisWine.desktop +++ b/applications/LutrisWine.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine %f +Exec="/usr/bin/lutris-wine" %f Icon=/usr/share/lutris-wine/icons/default_icon.png MimeType=application/x-ms-dos-executable;application/x-wine-extension-msp;application/x-msi;application/x-msdos-program;text/win-bat;application/x-ms-shortcut;text/x-ms-regedit Name=Lutris Wine diff --git a/applications/addtolu.desktop b/applications/addtolu.desktop index cf8f452..b59625f 100755 --- a/applications/addtolu.desktop +++ b/applications/addtolu.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -addtolu %f +Exec="/usr/bin/lutris-wine" -addtolu %f Icon=/usr/share/lutris-wine/icons/default_icon.png MimeType=application/x-ms-dos-executable;application/x-msdos-program Name=Add to Lutris diff --git a/applications/appcfg.desktop b/applications/appcfg.desktop index fe5f87c..162718c 100755 --- a/applications/appcfg.desktop +++ b/applications/appcfg.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -appcfg +Exec="/usr/bin/lutris-wine" -appcfg Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Apps settings Name[ru_RU]=Настройки приложений diff --git a/applications/backupmnt.desktop b/applications/backupmnt.desktop index 9da15e9..f084efb 100755 --- a/applications/backupmnt.desktop +++ b/applications/backupmnt.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -backupmnt %f +Exec="/usr/bin/lutris-wine" -backupmnt %f Icon=/usr/share/lutris-wine/icons/default_icon.png MimeType=application/vnd.squashfs Name=Mount prefix backup diff --git a/applications/backupunmnt.desktop b/applications/backupunmnt.desktop index bad8757..fa99d83 100755 --- a/applications/backupunmnt.desktop +++ b/applications/backupunmnt.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -backupunmnt %f +Exec="/usr/bin/lutris-wine" -backupunmnt %f Icon=/usr/share/lutris-wine/icons/default_icon.png MimeType=application/vnd.squashfs Name=Unmount prefix backup diff --git a/applications/clearpfx.desktop b/applications/clearpfx.desktop index 896bd9b..c9314d4 100755 --- a/applications/clearpfx.desktop +++ b/applications/clearpfx.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -clearpfx %f +Exec="/usr/bin/lutris-wine" -clearpfx %f Icon=/usr/share/lutris-wine/icons/default_icon.png MimeType=application/x-ms-dos-executable;application/x-msdos-program Name=Clear prefix diff --git a/applications/cmd.desktop b/applications/cmd.desktop index 0df1e9c..dfaf5c3 100755 --- a/applications/cmd.desktop +++ b/applications/cmd.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -cmd %f +Exec="/usr/bin/lutris-wine" -cmd %f Icon=/usr/share/lutris-wine/icons/default_icon.png MimeType=application/x-ms-dos-executable;application/x-msdos-program;inode/directory Name=CMD diff --git a/applications/config.desktop b/applications/config.desktop index 22353d3..04de815 100755 --- a/applications/config.desktop +++ b/applications/config.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -config %f +Exec="/usr/bin/lutris-wine" -config %f Icon=/usr/share/lutris-wine/icons/default_icon.png MimeType=application/x-ms-dos-executable;application/x-msdos-program Name=Settings diff --git a/applications/control.desktop b/applications/control.desktop index ae23432..ba80d06 100755 --- a/applications/control.desktop +++ b/applications/control.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -control %f +Exec="/usr/bin/lutris-wine" -control %f Icon=/usr/share/lutris-wine/icons/default_icon.png MimeType=application/x-ms-dos-executable;application/x-msdos-program Name=Control panel diff --git a/applications/debug.desktop b/applications/debug.desktop index 339c4cd..2ff14f2 100755 --- a/applications/debug.desktop +++ b/applications/debug.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -debug %f +Exec="/usr/bin/lutris-wine" -debug %f Icon=/usr/share/lutris-wine/icons/default_icon.png MimeType=application/x-ms-dos-executable;application/x-msdos-program Name=DEBUG diff --git a/applications/exit.desktop b/applications/exit.desktop index 371e807..b504e3a 100755 --- a/applications/exit.desktop +++ b/applications/exit.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -exit %f +Exec="/usr/bin/lutris-wine" -exit %f Icon=/usr/share/lutris-wine/icons/default_icon.png MimeType=application/x-ms-dos-executable;application/x-msdos-program Name=Force exit diff --git a/applications/explorer.desktop b/applications/explorer.desktop index 44544bf..7788399 100755 --- a/applications/explorer.desktop +++ b/applications/explorer.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -explorer %f +Exec="/usr/bin/lutris-wine" -explorer %f Icon=/usr/share/lutris-wine/icons/default_icon.png MimeType=application/x-ms-dos-executable;application/x-msdos-program Name=Wine explorer diff --git a/applications/help.desktop b/applications/help.desktop index c5d5cc0..95209f0 100755 --- a/applications/help.desktop +++ b/applications/help.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -help +Exec="/usr/bin/lutris-wine" -help Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Usage info Name[ru_RU]=Использование diff --git a/applications/init.desktop b/applications/init.desktop index cb8c2b5..bee8b35 100755 --- a/applications/init.desktop +++ b/applications/init.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -init %f +Exec="/usr/bin/lutris-wine" -init %f Icon=/usr/share/lutris-wine/icons/default_icon.png MimeType=application/x-ms-dos-executable;application/x-msdos-program Name=Forced initialization diff --git a/applications/killexe.desktop b/applications/killexe.desktop index 155a2f4..583636b 100755 --- a/applications/killexe.desktop +++ b/applications/killexe.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -killexe %f +Exec="/usr/bin/lutris-wine" -killexe %f Icon=/usr/share/lutris-wine/icons/default_icon.png MimeType=application/x-ms-dos-executable;application/x-msdos-program Name=Kill running EXE diff --git a/applications/killshell.desktop b/applications/killshell.desktop index 7662bde..5574769 100755 --- a/applications/killshell.desktop +++ b/applications/killshell.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -killshell +Exec="/usr/bin/lutris-wine" -killshell Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Kill SHELL Name[ru_RU]=Убить SHELL diff --git a/applications/killtray.desktop b/applications/killtray.desktop index 931035c..1e3774a 100755 --- a/applications/killtray.desktop +++ b/applications/killtray.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -killtray +Exec="/usr/bin/lutris-wine" -killtray Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Kill tray Name[ru_RU]=Убить трей diff --git a/applications/killwine.desktop b/applications/killwine.desktop index 0f3f82a..3ab3142 100755 --- a/applications/killwine.desktop +++ b/applications/killwine.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -killwine %f +Exec="/usr/bin/lutris-wine" -killwine %f Icon=/usr/share/lutris-wine/icons/default_icon.png MimeType=application/x-ms-dos-executable;application/x-msdos-program Name=Kill all Wine processes diff --git a/applications/openpfx.desktop b/applications/openpfx.desktop index 208497b..beb5e5c 100755 --- a/applications/openpfx.desktop +++ b/applications/openpfx.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -openpfx %f +Exec="/usr/bin/lutris-wine" -openpfx %f Icon=/usr/share/lutris-wine/icons/default_icon.png MimeType=application/x-ms-dos-executable;application/x-msdos-program Name=Open drive C: diff --git a/applications/pfxbackup.desktop b/applications/pfxbackup.desktop index d770e85..47e255c 100755 --- a/applications/pfxbackup.desktop +++ b/applications/pfxbackup.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -pfxbackup %f +Exec="/usr/bin/lutris-wine" -pfxbackup %f Icon=/usr/share/lutris-wine/icons/default_icon.png MimeType=application/x-ms-dos-executable;application/x-msdos-program;inode/directory Name=Create prefix backup diff --git a/applications/pfxrestore.desktop b/applications/pfxrestore.desktop index 7b71c2f..f6c1e48 100755 --- a/applications/pfxrestore.desktop +++ b/applications/pfxrestore.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -pfxrestore %f +Exec="/usr/bin/lutris-wine" -pfxrestore %f Icon=/usr/share/lutris-wine/icons/default_icon.png MimeType=application/vnd.squashfs;application/x-ms-dos-executable;application/x-msdos-program Name=Restore prefix from backup diff --git a/applications/regedit.desktop b/applications/regedit.desktop index 46bc376..5a65115 100755 --- a/applications/regedit.desktop +++ b/applications/regedit.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -regedit %f +Exec="/usr/bin/lutris-wine" -regedit %f Icon=/usr/share/lutris-wine/icons/default_icon.png MimeType=application/x-ms-dos-executable;application/x-msdos-program Name=Registry editor diff --git a/applications/rmapp.desktop b/applications/rmapp.desktop index bcd4324..2f80b4f 100755 --- a/applications/rmapp.desktop +++ b/applications/rmapp.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -rmapp %f +Exec="/usr/bin/lutris-wine" -rmapp %f Icon=/usr/share/lutris-wine/icons/default_icon.png MimeType=application/x-ms-dos-executable;application/x-msdos-program Name=Remove menu app diff --git a/applications/shell.desktop b/applications/shell.desktop index b8d4564..25f138f 100755 --- a/applications/shell.desktop +++ b/applications/shell.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -shell %f +Exec="/usr/bin/lutris-wine" -shell %f Icon=/usr/share/lutris-wine/icons/default_icon.png MimeType=text/x-shellscript;inode/directory Name=SHELL diff --git a/applications/shortcut.desktop b/applications/shortcut.desktop index f4176f4..4311896 100755 --- a/applications/shortcut.desktop +++ b/applications/shortcut.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -shortcut %f +Exec="/usr/bin/lutris-wine" -shortcut %f Icon=/usr/share/lutris-wine/icons/default_icon.png MimeType=application/x-ms-dos-executable;application/x-msdos-program Name=Create shortcut diff --git a/applications/taskmgr.desktop b/applications/taskmgr.desktop index 12e20e9..04fa491 100755 --- a/applications/taskmgr.desktop +++ b/applications/taskmgr.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -taskmgr %f +Exec="/usr/bin/lutris-wine" -taskmgr %f Icon=/usr/share/lutris-wine/icons/default_icon.png MimeType=application/x-ms-dos-executable;application/x-msdos-program Name=Task manager diff --git a/applications/tray.desktop b/applications/tray.desktop index 8d3f452..44b524e 100755 --- a/applications/tray.desktop +++ b/applications/tray.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -tray noclose +Exec="/usr/bin/lutris-wine" -tray noclose Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Tray Name[ru_RU]=Трей diff --git a/applications/uninstaller.desktop b/applications/uninstaller.desktop index ee1973b..9050e2c 100755 --- a/applications/uninstaller.desktop +++ b/applications/uninstaller.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -uninstaller %f +Exec="/usr/bin/lutris-wine" -uninstaller %f Icon=/usr/share/lutris-wine/icons/default_icon.png MimeType=application/x-ms-dos-executable;application/x-msdos-program Name=Wine uninstaller diff --git a/applications/update.desktop b/applications/update.desktop index 189a279..5e7af70 100755 --- a/applications/update.desktop +++ b/applications/update.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -update +Exec="/usr/bin/lutris-wine" -update Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Update runtime Name[ru_RU]=Обновление рантайм diff --git a/applications/version.desktop b/applications/version.desktop index 5f5e2a1..4b04329 100755 --- a/applications/version.desktop +++ b/applications/version.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -version %f +Exec="/usr/bin/lutris-wine" -version %f MimeType=application/x-ms-dos-executable;application/x-msdos-program Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Version info diff --git a/applications/winecfg.desktop b/applications/winecfg.desktop index 237bb58..f480440 100755 --- a/applications/winecfg.desktop +++ b/applications/winecfg.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -winecfg %f +Exec="/usr/bin/lutris-wine" -winecfg %f Icon=/usr/share/lutris-wine/icons/default_icon.png MimeType=application/x-ms-dos-executable;application/x-msdos-program Name=Wine settings diff --git a/applications/winemgr.desktop b/applications/winemgr.desktop index f8fb666..96b5b8c 100755 --- a/applications/winemgr.desktop +++ b/applications/winemgr.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -winemgr +Exec="/usr/bin/lutris-wine" -winemgr Icon=/usr/share/lutris-wine/icons/default_icon.png Name=Wine manager Name[ru_RU]=Wine менеджер diff --git a/applications/winetricks.desktop b/applications/winetricks.desktop index 0740ece..c840547 100755 --- a/applications/winetricks.desktop +++ b/applications/winetricks.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Lutris Wine -Exec=lutris-wine -winetricks %f +Exec="/usr/bin/lutris-wine" -winetricks %f Icon=/usr/share/lutris-wine/icons/default_icon.png MimeType=application/x-ms-dos-executable;application/x-msdos-program Name=Winetricks diff --git a/lutris-wine b/lutris-wine index cc24765..a51e169 100755 --- a/lutris-wine +++ b/lutris-wine @@ -1,6 +1,6 @@ #!/usr/bin/env bash -export LW_VERSION="0.75.8" +export LW_VERSION="0.75.9" export LW_DEVELOPERS="VHSgunzo" export RED='\033[1;91m' @@ -11,7 +11,8 @@ export RESETCOLOR='\033[1;00m' export ENVKEY=$RANDOM export GDK_BACKEND="x11" -if [ -n "$RUNDIR" ] + +if [ "$RUNROOTFSTYPE" == "superlite" ] then export LW_EDITOR="pluma" export LW_FLMGR="spacefm" @@ -20,25 +21,37 @@ if [ -n "$RUNDIR" ] export LW_EDITOR="xdg-open" export LW_FLMGR="xdg-open" fi + +[ ! -n "$LW_SYS_DIR" ] && export LW_SYS_DIR="/usr/share/lutris-wine" [ ! -n "$LW_SOURCE" ] && export LW_SOURCE="$0" [ ! -n "$LW_NAME" ] && export LW_NAME="$(basename "$0")" [ ! -n "$LW_DIR" ] && export LW_DIR="$HOME/.local/share/LutrisWine" +[[ ! -n "$LW_THEMES_DIR" && -d "$LW_DIR/themes" ]] && \ + export LW_THEMES_DIR="$LW_DIR/themes"||\ + export LW_THEMES_DIR="$LW_SYS_DIR/themes" +[[ ! -n "$LW_DB_DIR" && -d "$LW_DIR/db" ]] && \ + export LW_DB_DIR="$LW_DIR/db"||\ + export LW_DB_DIR="$LW_SYS_DIR/db" +[[ ! -n "$LW_ICONS_DIR" && -d "$LW_DIR/icons" ]] && \ + export LW_ICONS_DIR="$LW_DIR/icons"||\ + export LW_ICONS_DIR="$LW_SYS_DIR/icons" +[[ ! -n "$LW_GIF_DIR" && -d "$LW_DIR/gif" ]] && \ + export LW_GIF_DIR="$LW_DIR/gif"||\ + export LW_GIF_DIR="$LW_SYS_DIR/gif" +[ ! -n "$LW_DEF_LOAD_GIF" ] && export LW_DEF_LOAD_GIF="$LW_GIF_DIR/default_loading.gif" +[ ! -n "$LW_DEF_ICO" ] && export LW_DEF_ICO="$LW_ICONS_DIR/default_icon.png" [ ! -n "$LU_DIR" ] && export LU_DIR="$HOME/.local/share/lutris" [ ! -n "$LU_CACHE_DIR" ] && export LU_CACHE_DIR="$HOME/.cache/lutris" [ ! -n "$LU_CONFIG_DIR" ] && export LU_CONFIG_DIR="$HOME/.config/lutris" -[ ! -n "$LW_THEMES_DIR" ] && export LW_THEMES_DIR="/usr/share/lutris-wine/themes" [ ! -n "$LW_WINE_DIR" ] && export LW_WINE_DIR="$LW_DIR/runners/wine" [ ! -n "$LW_RUNTIME_DIR" ] && export LW_RUNTIME_DIR="$LW_DIR/runtime" [ ! -n "$LW_MENU_APP_DIR" ] && export LW_MENU_APP_DIR="$HOME/.local/share/applications" [ ! -n "$LW_APP_DIR" ] && export LW_APP_DIR="$LW_MENU_APP_DIR/LutrisWineApp" [ ! -n "$LW_WTRX_DIR" ] && export LW_WTRX_DIR="$LW_RUNTIME_DIR/winetricks" -[ ! -n "$LW_DB_DIR" ] && export LW_DB_DIR="/usr/share/lutris-wine/db" [ ! -n "$LW_DEF_CFG" ] && export LW_DEF_CFG="$LW_DIR/luwine.wcfg" [ ! -n "$LW_CFG" ] && export LW_CFG="$LW_DEF_CFG" [ ! -n "$VKBASALT_CONFIG_FILE" ] && export VKBASALT_CONFIG_FILE="$LW_DIR/vkBasalt.conf" [ ! -n "$LW_RESHADE_DIR" ] && export LW_RESHADE_DIR="/opt/reshade" -[ ! -n "$LW_DEF_ICO" ] && export LW_DEF_ICO="/usr/share/lutris-wine/icons/default_icon.png" -[ ! -n "$LW_DEF_LOAD_GIF" ] && export LW_DEF_LOAD_GIF="/usr/share/lutris-wine/gif/default_loading.gif" [ ! -n "$LW_DEF_WPFXS_DIR" ] && export LW_DEF_WPFXS_DIR="$LW_DIR/wprefixes" [ ! -n "$LW_DEF_WINEPFX" ] && export LW_DEF_WINEPFX="$LW_DEF_WPFXS_DIR/defprefix" [ ! -n "$LW_DEF_WINEPFXBKP_DIR" ] && export LW_DEF_WINEPFXBKP_DIR="$LW_DIR/prefix_backups" @@ -1451,15 +1464,18 @@ create_shortcut() { if [ -n "$1" ] then exe2png "$1" - export DESKF="${SHRT_PATH}/${SHRT_NAME}.desktop" + DESKF="${SHRT_PATH}/${SHRT_NAME}.desktop" echo "[Desktop Entry]" > "$DESKF" if print_question "Shortcuts Creator" "Change application name [ $SHRT_NAME ] ?" then ADD_APP_NAME="$(print_input "Enter name" "Enter name for Lutris Wine application" "$SHRT_NAME")" - [ -n "$ADD_APP_NAME" ] && export SHRT_NAME="$ADD_APP_NAME" + [ -n "$ADD_APP_NAME" ] && \ + SHRT_NAME="$ADD_APP_NAME" fi - echo "Name=${SHRT_NAME}" >> "$DESKF" - echo "Exec=\"$LW_SOURCE\" \"$1\"" >> "$DESKF" + ([[ "$RUNSRC" =~ "lwrun" ]] && \ + LW_SOURCE="$RUNSRC" + echo "Name=$SHRT_NAME" >> "$DESKF" + echo "Exec='$LW_SOURCE' '$1'" >> "$DESKF" echo "Type=Application" >> "$DESKF" echo "Categories=Lutris Wine App" >> "$DESKF" echo "StartupNotify=true" >> "$DESKF" @@ -1470,96 +1486,96 @@ create_shortcut() { echo "Name=Remove from menu" >> "$DESKF" echo "Name[ru_RU]=Удалить из меню" >> "$DESKF" echo "Icon="$LUPNG"" >> "$DESKF" - echo "Exec=\"$LW_SOURCE\" \"-rmapp '$1'\"" >> "$DESKF" + echo "Exec='$LW_SOURCE' -rmapp '$1'" >> "$DESKF" echo -e "\n[Desktop Action config]" >> "$DESKF" echo "Name=Settings" >> "$DESKF" echo "Name[ru_RU]=Настройки" >> "$DESKF" echo "Icon="$LUPNG"" >> "$DESKF" - echo "Exec=\"$LW_SOURCE\" \"-config '$1'\"" >> "$DESKF" + echo "Exec='$LW_SOURCE' -config '$1'" >> "$DESKF" echo -e "\n[Desktop Action openpfx]" >> "$DESKF" echo "Name=Open drive C:\\\\\\" >> "$DESKF" echo "Name[ru_RU]=Открыть диск C:\\\\\\" >> "$DESKF" echo "Icon="$LUPNG"" >> "$DESKF" - echo "Exec=\"$LW_SOURCE\" \"-openpfx '$1'\"" >> "$DESKF" + echo "Exec='$LW_SOURCE' -openpfx '$1'" >> "$DESKF" echo -e "\n[Desktop Action debug]" >> "$DESKF" echo "Name=DEBUG" >> "$DESKF" echo "Name[ru_RU]=ДЕБАГ" >> "$DESKF" echo "Icon="$LUPNG"" >> "$DESKF" - echo "Exec=\"$LW_SOURCE\" \"-debug '$1'\"" >> "$DESKF" + echo "Exec='$LW_SOURCE' -debug '$1'" >> "$DESKF" echo -e "\n[Desktop Action cmd]" >> "$DESKF" echo "Name=Open in CMD" >> "$DESKF" echo "Name[ru_RU]=Открыть в CMD" >> "$DESKF" echo "Icon="$LUPNG"" >> "$DESKF" - echo "Exec=\"$LW_SOURCE\" \"-cmd '$1'\"" >> "$DESKF" + echo "Exec='$LW_SOURCE' -cmd '$1'" >> "$DESKF" echo -e "\n[Desktop Action explorer]" >> "$DESKF" echo "Name=Explorer" >> "$DESKF" echo "Name[ru_RU]=Рабочий стол" >> "$DESKF" echo "Icon="$LUPNG"" >> "$DESKF" - echo "Exec=\"$LW_SOURCE\" \"-explorer '$1'\"" >> "$DESKF" + echo "Exec='$LW_SOURCE' -explorer '$1'" >> "$DESKF" echo -e "\n[Desktop Action control]" >> "$DESKF" echo "Name=Control panel" >> "$DESKF" echo "Name[ru_RU]=Панель управления" >> "$DESKF" echo "Icon="$LUPNG"" >> "$DESKF" - echo "Exec=\"$LW_SOURCE\" \"-control '$1'\"" >> "$DESKF" + echo "Exec='$LW_SOURCE' -control '$1'" >> "$DESKF" echo -e "\n[Desktop Action regedit]" >> "$DESKF" echo "Name=Registry editor" >> "$DESKF" echo "Name[ru_RU]=Редактор реестра" >> "$DESKF" echo "Icon="$LUPNG"" >> "$DESKF" - echo "Exec=\"$LW_SOURCE\" \"-regedit '$1'\"" >> "$DESKF" + echo "Exec='$LW_SOURCE' -regedit '$1'" >> "$DESKF" echo -e "\n[Desktop Action winecfg]" >> "$DESKF" echo "Name=Wine settings" >> "$DESKF" echo "Name[ru_RU]=Настройки Wine" >> "$DESKF" echo "Icon="$LUPNG"" >> "$DESKF" - echo "Exec=\"$LW_SOURCE\" \"-winecfg '$1'\"" >> "$DESKF" + echo "Exec='$LW_SOURCE' -winecfg '$1'" >> "$DESKF" echo -e "\n[Desktop Action taskmgr]" >> "$DESKF" echo "Name=Task manager" >> "$DESKF" echo "Name[ru_RU]=Диспетчер задач" >> "$DESKF" echo "Icon="$LUPNG"" >> "$DESKF" - echo "Exec=\"$LW_SOURCE\" \"-taskmgr '$1'\"" >> "$DESKF" + echo "Exec='$LW_SOURCE' -taskmgr '$1'" >> "$DESKF" echo -e "\n[Desktop Action uninstaller]" >> "$DESKF" echo "Name=Wine uninstaller" >> "$DESKF" echo "Name[ru_RU]=Устан/удал программ" >> "$DESKF" echo "Icon="$LUPNG"" >> "$DESKF" - echo "Exec=\"$LW_SOURCE\" \"-uninstaller '$1'\"" >> "$DESKF" + echo "Exec='$LW_SOURCE' -uninstaller '$1'" >> "$DESKF" echo -e "\n[Desktop Action winetricks]" >> "$DESKF" echo "Name=Winetricks" >> "$DESKF" echo "Icon="$LUPNG"" >> "$DESKF" - echo "Exec=\"$LW_SOURCE\" \"-winetricks '$1'\"" >> "$DESKF" + echo "Exec='$LW_SOURCE' -winetricks '$1'" >> "$DESKF" echo -e "\n[Desktop Action clearpfx]" >> "$DESKF" echo "Name=Clear prefix" >> "$DESKF" echo "Name[ru_RU]=Очистить префикс" >> "$DESKF" echo "Icon="$LUPNG"" >> "$DESKF" - echo "Exec=\"$LW_SOURCE\" \"-clearpfx '$1'\"" >> "$DESKF" + echo "Exec='$LW_SOURCE' -clearpfx '$1'" >> "$DESKF" echo -e "\n[Desktop Action pfxbackup]" >> "$DESKF" echo "Name=Create prefix backup" >> "$DESKF" echo "Name[ru_RU]=Создать бекап префикса" >> "$DESKF" echo "Icon="$LUPNG"" >> "$DESKF" - echo "Exec=\"$LW_SOURCE\" \"-pfxbackup '$1'\"" >> "$DESKF" + echo "Exec='$LW_SOURCE' -pfxbackup '$1'" >> "$DESKF" echo -e "\n[Desktop Action pfxrestore]" >> "$DESKF" echo "Name=Restore prefix from backup" >> "$DESKF" echo "Name[ru_RU]=Восстановить префикс" >> "$DESKF" echo "Icon="$LUPNG"" >> "$DESKF" - echo "Exec=\"$LW_SOURCE\" \"-pfxrestore '$1'\"" >> "$DESKF" + echo "Exec='$LW_SOURCE' -pfxrestore '$1'" >> "$DESKF" echo -e "\n[Desktop Action killwine]" >> "$DESKF" echo "Name=Kill Wine processes" >> "$DESKF" echo "Name[ru_RU]=Убить процессы Wine" >> "$DESKF" echo "Icon="$LUPNG"" >> "$DESKF" - echo "Exec=\"$LW_SOURCE\" \"-killwine '$1'\"" >> "$DESKF" + echo "Exec='$LW_SOURCE' -killwine '$1'" >> "$DESKF" echo -e "\n[Desktop Action version]" >> "$DESKF" echo "Name=Version info" >> "$DESKF" echo "Name[ru_RU]=Версия" >> "$DESKF" echo "Icon="$LUPNG"" >> "$DESKF" - echo "Exec=\"$LW_SOURCE\" \"-version '$1'\"" >> "$DESKF" + echo "Exec='$LW_SOURCE' -version '$1'" >> "$DESKF" echo -e "\n[Desktop Action init]" >> "$DESKF" echo "Name=Forced initialization" >> "$DESKF" echo "Name[ru_RU]=Принудительная инициализация" >> "$DESKF" echo "Icon="$LUPNG"" >> "$DESKF" - echo "Exec=\"$LW_SOURCE\" \"-init '$1'\"" >> "$DESKF" + echo "Exec='$LW_SOURCE' -init '$1'" >> "$DESKF" echo -e "\n[Desktop Action addtolu]" >> "$DESKF" echo "Name=Add to Lutris" >> "$DESKF" echo "Name[ru_RU]=Добавить в Lutris" >> "$DESKF" echo "Icon="$LUPNG"" >> "$DESKF" - echo "Exec=\"$LW_SOURCE\" \"-addtolu '$1'\"" >> "$DESKF" + echo "Exec='$LW_SOURCE' -addtolu '$1'" >> "$DESKF") chmod u+x "$DESKF" echo -en "${GREEN}Creating ${RED}$(basename "$DESKF") ${GREEN}completed!\n$RESETCOLOR" if print_question "Shortcuts Creator" \ @@ -5477,7 +5493,7 @@ makesquash_zstd() { else squashpath="$2/" fi fi - if [ -n "$(which 'mksquashfs' 2>/dev/null)" ] + if [ -n "$(which mksquashfs 2>/dev/null)" ] then squashmane="$(basename "$squashsource").$(date +"%Y.%m.%d.%H%M%S").zst.$extension" print_info "Making SquashFS ZSTD image : [ $squashmane ]\n[ FROM ]: [ $squashsource ] [ COMPRESS LVL ]: $compres_lvl \n[ TO ]: [ ${squashpath}$squashmane ]" @@ -5511,7 +5527,7 @@ makesquash_xz() { else squashpath="$2/" fi fi - if [ -n "$(which 'mksquashfs' 2>/dev/null)" ] + if [ -n "$(which mksquashfs 2>/dev/null)" ] then squashmane="$(basename "$squashsource").$(date +"%Y.%m.%d.%H%M%S").xz.$extension" print_info "Making SquashFS XZ image : [ $squashmane ]\n[ FROM ]: [ $squashsource ]\n[ TO ]: [ ${squashpath}$squashmane ]" @@ -5544,7 +5560,7 @@ unpack_squash() { else unsquashpath="$2/" fi fi - if [ -n "$(which 'unsquashfs' 2>/dev/null)" ] + if [ -n "$(which unsquashfs 2>/dev/null)" ] then unsquashimage="$(basename "$unsquashsource")" unsquashmane="$(echo "$unsquashimage"|awk -F'.' '{print $1}')" @@ -5702,7 +5718,7 @@ lu_pfxrestore() { lu_backupmnt() { [ -f "$1" ] && export LU_LWPFX="$1" - if [ -n "$(which 'squashfuse' 2>/dev/null)" ] + if [ -n "$(which squashfuse 2>/dev/null)" ] then if [ -f "$LU_LWPFX" ] then @@ -5750,7 +5766,7 @@ lu_backupmnt() { lu_backupunmnt() { [ -f "$1" ] && export LU_LWPFX="$1" - if [ -n "$(which 'fusermount' 2>/dev/null)" ] + if [ -n "$(which fusermount 2>/dev/null)" ] then if [ -f "$LU_LWPFX" ] then diff --git a/lwrap/PKGBUILD b/lwrap/PKGBUILD new file mode 100644 index 0000000..ca4f288 --- /dev/null +++ b/lwrap/PKGBUILD @@ -0,0 +1,55 @@ +# Maintainer: VHSgunzo +pkgname='lwrap' +gitrepo='lutris-wine' +pkgver='0.75.9' +pkgrel='1' +pkgdesc='Lutris Wine wrapper for Runimage container' +arch=('x86_64') +url='https://github.com/VHSgunzo/lutris-wine' +license=('MIT') +depends=('aria2' 'qt5-tools' 'xterm' 'xorg-fonts-100dpi' 'xorg-fonts-75dpi' + 'xorg-fonts-cyrillic' 'xorg-fonts-type1' 'xorg-fonts-misc' 'cabextract' + 'perl' 'unzip' 'xorg-xmessage' 'zenity' 'yad' 'xkb-switch' 'imagemagick' + 'icoutils' 'lib32-mangohud' 'lib32-vkbasalt' 'mangohud' 'mangohud-common' + 'vkbasalt' 'gamemode' 'lib32-gamemode' 'giflib' 'lib32-giflib' 'libpng' + 'lib32-libpng' 'libldap' 'lib32-libldap' 'gnutls' 'lib32-gnutls' + 'mpg123' 'lib32-mpg123' 'openal' 'lib32-openal' 'v4l-utils' 'lib32-v4l-utils' + 'libpulse' 'lib32-libpulse' 'libgpg-error' 'lib32-libgpg-error' + 'alsa-plugins' 'lib32-alsa-plugins' 'alsa-lib' 'lib32-alsa-lib' + 'libjpeg-turbo' 'lib32-libjpeg-turbo' 'sqlite' 'lib32-sqlite' 'libxcomposite' + 'lib32-libxcomposite' 'libxinerama' 'lib32-libgcrypt' 'libgcrypt' + 'lib32-libxinerama' 'ncurses' 'lib32-ncurses' 'opencl-icd-loader' + 'lib32-opencl-icd-loader' 'libxslt' 'lib32-libxslt' 'libva' 'lib32-libva' + 'gtk3' 'lib32-gtk3' 'lib32-vulkan-icd-loader' 'vulkan-headers' 'vulkan-icd-loader' + 'vulkan-tools' 'mesa' 'lib32-glu' 'glu' 'lib32-libva-mesa-driver' 'lib32-mesa' + 'libva-mesa-driver' 'mesa-demos' 'mesa-utils' 'mesa-vdpau' 'vulkan-mesa-layers' + 'lib32-vulkan-mesa-layers' 'libstrangle-git' 'openssl' 'libnotify' 'coreutils' + 'libxrandr' 'lib32-libxrandr' 'xorg-xrandr' 'bc' 'xorg-xgamma' 'lsb-release' + 'iputils' 'curl' 'xdelta3' 'xdg-utils' + 'desktop-file-utils' 'squashfs-tools' 'squashfuse' 'fuse2' 'reshade-shaders-git' + 'winetricks' 'innoextract' 'p7zip' 'gnu-netcat' 'xdg-user-dirs' +) +makedepends=('git') +optdepends=('lib32-vulkan-radeon' 'vulkan-radeon' 'xf86-video-amdgpu' + 'lib32-vulkan-intel' 'vulkan-intel' 'lib32-libva-intel-driver' + 'libva-intel-driver' 'libva-utils' 'xf86-video-intel' 'lib32-nvidia-utils' + 'lib32-opencl-nvidia' 'lib32-libxnvctrl' 'libxnvctrl' 'nvidia' 'nvidia-dkms' + 'nvidia-settings' 'nvidia-utils' 'opencl-nvidia' 'linux-zen' 'linux-zen-headers' + 'vulkan-swrast' 'llvm' 'lib32-llvm' 'wine' 'latencyflex-git' 'latencyflex-wine-git' +) +provides=("$pkgname") +conflicts=("$pkgname") +source=("${gitrepo}::git+https://github.com/VHSgunzo/${gitrepo}.git") +sha256sums=('SKIP') + +pkgver() { + cd "$srcdir/$gitrepo" + git describe --long --tags|sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' +} + +package() { + install -dm755 "$pkgdir/opt" + (cd "$srcdir/$gitrepo" && rm -rf screenshots .git*) + cp -ar --no-preserve=ownership "$srcdir/$gitrepo" "$pkgdir/opt/$pkgname" + install -Dm755 "$srcdir/$gitrepo/$pkgname/$pkgname" "$pkgdir/usr/bin/$pkgname" +} diff --git a/lwrap/lwrap b/lwrap/lwrap new file mode 100755 index 0000000..0d04afd --- /dev/null +++ b/lwrap/lwrap @@ -0,0 +1,209 @@ +#!/usr/bin/env bash +# Lutris Wine wrapper for Runimage container + +RED='\033[1;91m' +BLUE='\033[1;94m' +GREEN='\033[1;92m' +YELLOW='\033[1;33m' +RESETCOLOR='\033[1;00m' +SYS_LWSRC="/usr/bin/lutris-wine" +LW_DIR="$HOME/.local/share/LutrisWine" +HOME_LWSRC="$LW_DIR/lutris-wine" + +[ ! -n "$(tty|grep -v 'not a'|grep -Eo 'tty|pts')" ] && \ + NOT_TERM=1 + +error_msg() { + echo -e "${RED}[ ERROR ][$(date +"%Y.%m.%d %T")]: $@ $RESETCOLOR" + if [ "$NOT_TERM" == 1 ] + then + notify-send -a 'RunImage Error' "$@" 2>/dev/null & + fi +} + +info_msg() { + if [ "$QUIET_MODE" != 1 ] + then + echo -e "${GREEN}[ INFO ][$(date +"%Y.%m.%d %T")]: $@ $RESETCOLOR" + if [[ "$NOT_TERM" == 1 && "$DONT_NOTIFY" != 1 ]] + then + notify-send -a 'RunImage Info' "$@" 2>/dev/null & + fi + fi +} + +warn_msg() { + if [ "$QUIET_MODE" != 1 ] + then + echo -e "${YELLOW}[ WARNING ][$(date +"%Y.%m.%d %T")]: $@ $RESETCOLOR" + if [[ "$NOT_TERM" == 1 && "$DONT_NOTIFY" != 1 ]] + then + notify-send -a 'RunImage Warning' "$@" 2>/dev/null & + fi + fi +} + +make_install() { + DESKEXEC="$(([[ "$RUNSRC" =~ "lwrun" ]] && echo "$RUNSRC")||\ + ([ -x "$HOME_LWSRC" ] && echo "$HOME_LWSRC")||\ + ([ -x "$SYS_LWSRC" ] && echo "$SYS_LWSRC"))" + install -Dm755 lutris-wine "$HOME_LWSRC" + install -Dm644 LutrisWine.menu "$HOME/.config/menus/applications-merged/LutrisWine.menu" + install -Dm644 LutrisWineService.desktop "$HOME/.local/share/kservices5/ServiceMenus/LutrisWineService.desktop" + install -Dm644 LICENSE "$LW_DIR/LICENSE" + (IFS=$'\n' + if [ -n "$DESKEXEC" ] + then + for DESKFL in $(grep -rm1 '^Exec=".*"' ./*|cut -d ':' -f1) + do sed -i "s|^Exec=\".*\"|Exec=\"$DESKEXEC\"|g" "$DESKFL" + done + fi + for DESKFL in $(grep -rm1 'Icon=/.*/lutris-wine/icons/.*.png$' ./*|cut -d ':' -f1) + do sed -i "s|Icon=/.*/lutris-wine/icons/|Icon=$LW_DIR/icons/|g" "$DESKFL" + done + for APP in $(ls -1 applications) + do install -Dm644 "applications/$APP" "$HOME/.local/share/applications/LutrisWine/$APP" + done + for DIR in $(ls -1 directories) + do install -Dm644 "directories/$DIR" "$HOME/.local/share/desktop-directories/$DIR" + done + for ICON in $(ls -1 icons) + do install -Dm644 "icons/$ICON" "$LW_DIR/icons/$ICON" + done + for GIF in $(ls -1 gif) + do install -Dm644 "gif/$GIF" "$LW_DIR/gif/$GIF" + done + for THEME in $(ls -1 themes) + do install -Dm644 "themes/$THEME" "$LW_DIR/themes/$THEME" + done + for DB in $(ls -1 db) + do install -Dm644 "db/$DB" "$LW_DIR/db/$DB" + done) + [ -f "$HOME/.bashrc" ] && ! grep -om1 '/.local/bin' "$HOME/.bashrc" &>/dev/null && \ + echo -e '\nexport PATH="$HOME/.local/bin:$PATH"' >> "$HOME/.bashrc" + [ -f "$HOME/.zshrc" ] && ! grep -om1 '/.local/bin' "$HOME/.zshrc" &>/dev/null && \ + echo -e '\nexport PATH="$HOME/.local/bin:$PATH"' >> "$HOME/.zshrc" +} + +uninstall_lw() { + info_msg "Removing Lutris Wine..." + rm -rf "$HOME/.config/menus/applications-merged/LutrisWine.menu" + rm -rf "$HOME/.local/share/applications/LutrisWine" + rm -rf "$HOME/.local/share/desktop-directories/LutrisWine"* + rm -rf "$HOME/.local/share/kservices5/ServiceMenus/LutrisWine"* + if [ "$1" == "all" ] + then + rm -rf "$LW_DIR" + rm -rf "$HOME/LutrisWine" + else + rm -rf "$LW_DIR/icons" + rm -rf "$LW_DIR/gif" + rm -rf "$LW_DIR/themes" + rm -rf "$LW_DIR/db" + rm -rf "$LW_DIR/LICENSE" + rm -rf "$LW_DIR/lutris-wine" + rm -rf "$LW_DIR/.lwcfgchksum" + fi + info_msg "Lutris Wine removed!" +} + +get_lw_version() { + if [ -n "$1" ] + then grep -m1 'LW_VERSION' "$1" 2>/dev/null|grep -Po '\d+'|sed ':a;/$/N;s/\n//;ta' + else grep -m1 'LW_VERSION'|grep -Po '\d+'|sed ':a;/$/N;s/\n//;ta' + fi +} + +is_net_conn() { + nc -zw1 github.com 443 &>/dev/null && \ + return 0||return 1 +} + +install_lw() { + TMP_LW="/tmp/lutris-wine.$RANDOM" + info_msg "Installing Lutris Wine..." + if curl -sL "https://github.com/VHSgunzo/lutris-wine/archive/refs/heads/main.zip" \ + -o "$TMP_LW.zip" 2>/dev/null + then + (unzip "$TMP_LW.zip" -d "$TMP_LW" &>/dev/null && \ + cd "$TMP_LW/lutris-wine-main" && \ + make_install + [ -d "$TMP_LW" ] && \ + rm -rf "$TMP_LW"*) + elif [ -d "/opt/lwrap" ] + then + (cp -rf "/opt/lwrap" "$TMP_LW" && \ + cd "$TMP_LW" && \ + make_install + [ -d "$TMP_LW" ] && \ + rm -rf "$TMP_LW"*) + elif [[ -d "/usr/share/lutris-wine" && -x "$SYS_LWSRC" ]] + then + warn_msg "Fallback to system installed Lutris Wine!" + else + error_msg "Failed to install Lutris Wine!" + exit 1 + fi + [ -x "$HOME_LWSRC" ] && \ + info_msg "Lutris Wine installed!" +} + +update_lw() { + if [ -x "$HOME_LWSRC" ] + then + info_msg "Checking the Lutris Wine update..." + GIT_LW_VERSION="$(curl -s "https://raw.githubusercontent.com/VHSgunzo/lutris-wine/main/lutris-wine" 2>/dev/null|get_lw_version)" + LW_VERSION="$(get_lw_version "$HOME_LWSRC")" + if [[ -n "$GIT_LW_VERSION" && -n "$LW_VERSION" ]] + then + if [ "$(get_lw_version "$HOME_LWSRC")" -lt "$GIT_LW_VERSION" ] + then + info_msg "Lutris Wine update..." + uninstall_lw + install_lw + else + info_msg "The latest version is already installed!" + touch "$HOME_LWSRC" + fi + else + error_msg "Failed to check for updates!" + return 1 + fi + else + error_msg "Lutris Wine is not installed!" + exit 1 + fi +} + +lw_wrapper() { + if [ ! -x "$HOME_LWSRC" ] + then + install_lw + elif [ ! -x "$(find "$HOME_LWSRC" -mtime -3 -print 2>/dev/null)" ] && is_net_conn + then + update_lw + fi + + [[ "$RUNSRC" =~ "lwrun" && "$(realpath "$HOME/.local/bin/lwrun" 2>/dev/null)" != "$RUNSRC" ]] && \ + mkdir -p "$HOME/.local/bin" && ln -sf "$(realpath "$RUNSRC")" "$HOME/.local/bin/lwrun" + + if [ -x "$HOME_LWSRC" ] + then + LWRUN="$HOME_LWSRC" + elif [ -x "$SYS_LWSRC" ] + then + LWRUN="$SYS_LWSRC" + else + error_msg "lutris-wine not found!" + exit 1 + fi + + "$LWRUN" "$@" +} + +case $1 in + --install) uninstall_lw "$2" ; install_lw ;; + --update) update_lw ;; + --uninstall) uninstall_lw "$2" ;; + *) lw_wrapper "$@" ;; +esac