diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6c83ac29..1074a17e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -125,7 +125,7 @@ jobs: sudo apt-get update sudo apt-get install -y \ libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf \ - libasound2-dev + libasound2-dev squashfs-tools - name: setup node uses: actions/setup-node@v5 @@ -148,7 +148,8 @@ jobs: env: VITE_LASTFM_API_KEY: ${{ secrets.VITE_LASTFM_API_KEY }} VITE_LASTFM_API_SECRET: ${{ secrets.VITE_LASTFM_API_SECRET }} - run: npm run tauri:build -- --bundles deb,rpm + APPIMAGE_EXTRACT_AND_RUN: 1 + run: npm run tauri:build -- --bundles deb,rpm,appimage - name: upload Linux artifacts env: @@ -156,5 +157,5 @@ jobs: run: | VERSION=${{ needs.create-release.outputs.package_version }} find src-tauri/target/release/bundle \ - \( -name "*.deb" -o -name "*.rpm" \) \ + \( -name "*.deb" -o -name "*.rpm" -o -name "*.AppImage" \) \ | xargs gh release upload "app-v${VERSION}" --clobber diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 13df11e4..4c99982e 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -2,5 +2,16 @@ #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] fn main() { + // WebKitGTK on Wayland is unstable — force X11/XWayland on all Linux packages. + // Users can still override by setting these vars before launch. + #[cfg(target_os = "linux")] + unsafe { + if std::env::var("GDK_BACKEND").is_err() { + std::env::set_var("GDK_BACKEND", "x11"); + } + if std::env::var("WEBKIT_DISABLE_COMPOSITING_MODE").is_err() { + std::env::set_var("WEBKIT_DISABLE_COMPOSITING_MODE", "1"); + } + } psysonic_lib::run(); }