diff --git a/.github/workflows/auto-build.yml b/.github/workflows/auto-build.yml index ff1104b6..723c0f6e 100644 --- a/.github/workflows/auto-build.yml +++ b/.github/workflows/auto-build.yml @@ -40,10 +40,10 @@ jobs: builder_args: "--mac dmg zip --arm64" - label: linux-x64 os: blacksmith-4vcpu-ubuntu-2404 - builder_args: "--linux AppImage deb --x64" + builder_args: "--linux AppImage deb flatpak --x64" - label: linux-arm64 os: blacksmith-4vcpu-ubuntu-2404-arm - builder_args: "--linux AppImage deb --arm64" + builder_args: "--linux AppImage deb flatpak --arm64" defaults: run: @@ -84,7 +84,13 @@ jobs: if: runner.os == 'Linux' run: | sudo apt-get update - sudo apt-get install -y fakeroot rpm + sudo apt-get install -y fakeroot rpm flatpak flatpak-builder + sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo + - name: Install Flatpak runtimes + if: runner.os == 'Linux' + run: | + sudo flatpak install -y flathub org.freedesktop.Platform//24.08 org.freedesktop.Sdk//24.08 + sudo flatpak install -y flathub org.electronjs.Electron2.BaseApp//24.08 - name: Install FPM for arm64 deb builds if: matrix.label == 'linux-arm64' run: sudo apt-get install -y ruby ruby-dev build-essential && sudo gem install fpm @@ -108,6 +114,7 @@ jobs: opennow-stable/dist-release/*.zip opennow-stable/dist-release/*.AppImage opennow-stable/dist-release/*.deb + opennow-stable/dist-release/*.flatpak if-no-files-found: error release: diff --git a/README.md b/README.md index f5c59fab..f34c4ec7 100644 --- a/README.md +++ b/README.md @@ -139,7 +139,7 @@ OpenNOW is an independent, community-built desktop client for [NVIDIA GeForce NO `Stats Overlay` `Anti-AFK` `Adjustable Shortcuts` · OAuth + session restore · Region selection · Alliance partners **Platforms** -`Windows` `macOS` `Linux` `ARM64` · Installer, portable, AppImage, deb, dmg +`Windows` `macOS` `Linux` `ARM64` · Installer, portable, AppImage, deb, dmg, Flatpak ## Platform Support @@ -147,8 +147,8 @@ OpenNOW is an independent, community-built desktop client for [NVIDIA GeForce NO |----------|:------:|--------| | Windows | ✅ Working | NSIS installer + portable | | macOS | ✅ Working | dmg + zip (x64 and arm64) | -| Linux x64 | ✅ Working | AppImage + deb | -| Linux ARM64 | 🚧 Experimental | AppImage + deb (Raspberry Pi 4/5) | +| Linux x64 | ✅ Working | AppImage + deb + Flatpak | +| Linux ARM64 | 🚧 Experimental | AppImage + deb + Flatpak (Raspberry Pi 4/5) | ## Quick Start @@ -174,7 +174,9 @@ Grab the latest release for your platform: | macOS (x64) | `OpenNOW-v0.2.4-mac-x64.dmg` | | macOS (ARM) | `OpenNOW-v0.2.4-mac-arm64.dmg` | | Linux (x64) | `OpenNOW-v0.2.4-linux-x86_64.AppImage` | +| Linux (x64 Flatpak) | `OpenNOW-v0.2.4-x86_64.flatpak` | | Linux (ARM64) | `OpenNOW-v0.2.4-linux-arm64.AppImage` | +| Linux (ARM64 Flatpak) | `OpenNOW-v0.2.4-arm64.flatpak` | ## Architecture diff --git a/opennow-stable/README.md b/opennow-stable/README.md index a4f0c24d..63dbf190 100644 --- a/opennow-stable/README.md +++ b/opennow-stable/README.md @@ -24,8 +24,8 @@ npm run dist |----------|---------| | Windows | NSIS installer + portable | | macOS | dmg + zip (x64 and arm64 universal) | -| Linux x64 | AppImage + deb | -| Linux ARM64 | AppImage + deb (Raspberry Pi 4/5) | +| Linux x64 | AppImage + deb + Flatpak | +| Linux ARM64 | AppImage + deb + Flatpak (Raspberry Pi 4/5) | ## CI/CD diff --git a/opennow-stable/build/com.zortos.opennow.stable.desktop b/opennow-stable/build/com.zortos.opennow.stable.desktop new file mode 100644 index 00000000..06b186b9 --- /dev/null +++ b/opennow-stable/build/com.zortos.opennow.stable.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Name=OpenNOW +Comment=An open-source GeForce NOW client +Exec=opennow-stable %U +Type=Application +Icon=com.zortos.opennow.stable +Categories=Game; +Terminal=false +StartupWMClass=OpenNOW +MimeType=x-scheme-handler/opennow; +X-Flatpak=com.zortos.opennow.stable \ No newline at end of file diff --git a/opennow-stable/build/com.zortos.opennow.stable.metainfo.xml b/opennow-stable/build/com.zortos.opennow.stable.metainfo.xml new file mode 100644 index 00000000..6b6e7c5f --- /dev/null +++ b/opennow-stable/build/com.zortos.opennow.stable.metainfo.xml @@ -0,0 +1,34 @@ + + + com.zortos.opennow.stable + OpenNOW + An open-source GeForce NOW client + zortos293 + MIT + MIT + +

OpenNOW is a community-built desktop client for NVIDIA GeForce NOW, built with Electron and TypeScript. It gives you a fully open-source, cross-platform alternative to the official app — with zero telemetry, full transparency, and features the official client doesn't have.

+

Features:

+ +
+ com.zortos.opennow.stable.desktop + https://github.com/OpenCloudGaming/OpenNOW + https://github.com/OpenCloudGaming/OpenNOW/issues + + + https://raw.githubusercontent.com/OpenCloudGaming/OpenNOW/main/img.png + + + + + + +
\ No newline at end of file diff --git a/opennow-stable/package.json b/opennow-stable/package.json index 65fcb59a..ed217fa3 100644 --- a/opennow-stable/package.json +++ b/opennow-stable/package.json @@ -61,7 +61,15 @@ "files": [ "dist/**", "dist-electron/**", - "package.json" + "package.json", + "build/**" + ], + "extraResources": [ + { + "from": "build/", + "to": "build/", + "filter": ["**/*"] + } ], "asar": true, "win": { @@ -87,11 +95,36 @@ "linux": { "target": [ "AppImage", - "deb" + "deb", + "flatpak" ], "category": "Game", "maintainer": "zortos293 ", "artifactName": "OpenNOW-v${version}-linux-${arch}.${ext}" + }, + "flatpak": { + "runtime": "org.freedesktop.Platform", + "runtimeVersion": "24.08", + "sdk": "org.freedesktop.Sdk", + "base": "org.electronjs.Electron2.BaseApp", + "baseVersion": "24.08", + "branch": "stable", + "artifactName": "OpenNOW-v${version}-${arch}.flatpak", + "finishArgs": [ + "--share=network", + "--share=ipc", + "--socket=x11", + "--socket=wayland", + "--socket=pulseaudio", + "--device=dri", + "--device=all", + "--filesystem=home", + "--talk-name=org.freedesktop.Notifications", + "--talk-name=org.freedesktop.portal.Desktop", + "--talk-name=org.freedesktop.portal.Settings", + "--talk-name=org.freedesktop.portal.Documents", + "--own-name=com.zortos.opennow.stable" + ] } } }