Skip to content

Add flake.nix again#343

Merged
Kief5555 merged 19 commits intoOpenCloudGaming:devfrom
DINEXXL:main
Apr 23, 2026
Merged

Add flake.nix again#343
Kief5555 merged 19 commits intoOpenCloudGaming:devfrom
DINEXXL:main

Conversation

@DINEXXL
Copy link
Copy Markdown
Contributor

@DINEXXL DINEXXL commented Apr 20, 2026

Description

I found the time to create a new flake.nix file for the new version, and I included Nix instructions in README.md

Just go along with it so there won't be any conflicts later, please

Comment thread flake.nix
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Reintroduces Nix flake support for building/running the Electron-based opennow-stable app from Nix, and documents how to consume it from a user flake.

Changes:

  • Adds flake.nix/flake.lock to provide a default Nix package for opennow-stable.
  • Documents Nix usage in README.md.
  • Updates opennow-stable/package-lock.json metadata and adjusts .gitignore for Nix build outputs.

Reviewed changes

Copilot reviewed 2 out of 5 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
opennow-stable/package-lock.json Updates lockfile metadata (including package version) and dependency entries.
flake.nix Introduces a Nix flake that builds opennow-stable via buildNpmPackage and wraps it with Electron.
flake.lock Pins nixpkgs and flake-utils inputs for reproducible flake evaluation.
README.md Adds Nix installation/consumption instructions.
.gitignore Ignores the Nix result build symlink.
Files not reviewed (1)
  • opennow-stable/package-lock.json: Language not supported

{
"name": "opennow-stable",
"version": "0.3.2",
"version": "0.3.6",
Copy link

Copilot AI Apr 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

opennow-stable/package-lock.json is currently being updated in this PR, but it’s also listed in .gitignore. Even though tracked files aren’t ignored, this is confusing for contributors and can lead to accidental local-only changes. Consider either removing this ignore entry or explicitly untracking/stop committing the lockfile (pick one consistent approach).

Copilot uses AI. Check for mistakes.
Comment thread flake.nix Outdated
Comment on lines +19 to +23
in
{
packages.default = pkgs.buildNpmPackage {
pname = "opennow";
version = "1.0.0";
Copy link

Copilot AI Apr 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The flake package version is hardcoded to 1.0.0, which doesn’t match the app version (0.3.6 in opennow-stable/package.json). This will make Nix users/reporting/debugging inconsistent; consider aligning the flake version with the actual app version (or deriving it from the package sources).

Suggested change
in
{
packages.default = pkgs.buildNpmPackage {
pname = "opennow";
version = "1.0.0";
appPackage = builtins.fromJSON (builtins.readFile ./opennow-stable/package.json);
in
{
packages.default = pkgs.buildNpmPackage {
pname = "opennow";
version = appPackage.version;

Copilot uses AI. Check for mistakes.
Comment thread flake.nix Outdated
Comment on lines +63 to +65
mkdir -p $out/lib/opennow
cp -r . $out/lib/opennow

Copy link

Copilot AI Apr 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The custom installPhase copies the entire build directory (cp -r .) into the output. With buildNpmPackage this typically includes the full node_modules tree (often with devDependencies) and build caches, which can massively increase closure size and make the result less reproducible. Prefer installing only the runtime artifacts needed to launch (and pruning devDependencies if possible).

Suggested change
mkdir -p $out/lib/opennow
cp -r . $out/lib/opennow
appdir="$TMPDIR/opennow-install"
mkdir -p "$appdir" "$out/lib/opennow"
if [ -f package.json ]; then
cp package.json "$appdir/"
fi
if [ -f package-lock.json ]; then
cp package-lock.json "$appdir/"
fi
for path in out dist dist-electron; do
if [ -e "$path" ]; then
cp -r "$path" "$appdir/"
fi
done
if [ -d node_modules ]; then
cp -r node_modules "$appdir/"
if [ -f "$appdir/package.json" ]; then
npm --prefix "$appdir" prune --omit=dev --no-audit --legacy-peer-deps
fi
fi
cp -r "$appdir"/. $out/lib/opennow

Copilot uses AI. Check for mistakes.
Comment thread README.md Outdated
```

```nix
# Nixos configuraion
Copy link

Copilot AI Apr 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo: configuraion should be configuration.

Suggested change
# Nixos configuraion
# NixOS configuration

Copilot uses AI. Check for mistakes.
@DINEXXL DINEXXL requested a review from Kief5555 April 20, 2026 17:32
Copy link
Copy Markdown
Collaborator

@Kief5555 Kief5555 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, waiting for AI Review

@Kief5555 Kief5555 changed the base branch from main to dev April 21, 2026 03:30
@Kief5555 Kief5555 requested a review from Copilot April 21, 2026 03:34
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 6 changed files in this pull request and generated 6 comments.

Files not reviewed (1)
  • opennow-stable/package-lock.json: Language not supported

Comment thread README.md
Comment thread README.md Outdated
Comment thread README.md Outdated
Comment thread opennow-stable/package.json
Comment thread flake.nix Outdated
Comment thread flake.nix Outdated
Comment on lines +109 to +120
desktopName = "OpenNOW";
genericName = "Custom GeForce Now Client Named OpenNOW";
comment = "An open-source desktop client for GeForce NOW";
exec = "opennow %U";
icon = "opennow";
keywords = [ "GFN" "GeForceNOW" "cloud" "gaming" ];
startupWMClass = "opennow";
startupNotify = true;
categories = [ "Game" "Network" ];
mimeTypes = [
"x-scheme-handler/opennow"
"x-scheme-handler/geforcenow"
Copy link

Copilot AI Apr 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There’s trailing whitespace after values in the desktop item fields here (e.g. after desktopName / startupWMClass). It’s harmless but tends to create noisy diffs and can trip whitespace-sensitive tooling—please trim it.

Suggested change
desktopName = "OpenNOW";
genericName = "Custom GeForce Now Client Named OpenNOW";
comment = "An open-source desktop client for GeForce NOW";
exec = "opennow %U";
icon = "opennow";
keywords = [ "GFN" "GeForceNOW" "cloud" "gaming" ];
startupWMClass = "opennow";
startupNotify = true;
categories = [ "Game" "Network" ];
mimeTypes = [
"x-scheme-handler/opennow"
"x-scheme-handler/geforcenow"
desktopName = "OpenNOW";
genericName = "Custom GeForce Now Client Named OpenNOW";
comment = "An open-source desktop client for GeForce NOW";
exec = "opennow %U";
icon = "opennow";
keywords = [ "GFN" "GeForceNOW" "cloud" "gaming" ];
startupWMClass = "opennow";
startupNotify = true;
categories = [ "Game" "Network" ];
mimeTypes = [
"x-scheme-handler/opennow"
"x-scheme-handler/geforcenow"

Copilot uses AI. Check for mistakes.
Kief5555 and others added 3 commits April 20, 2026 20:40
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@Kief5555
Copy link
Copy Markdown
Collaborator

Pending approval @zortos293 version number change?

@Kief5555 Kief5555 requested a review from zortos293 April 22, 2026 05:11
@zortos293
Copy link
Copy Markdown
Collaborator

@Kief5555 yes

@Kief5555 Kief5555 merged commit 20f7766 into OpenCloudGaming:dev Apr 23, 2026
6 checks passed
Kief5555 added a commit that referenced this pull request Apr 25, 2026
* Fix Epic ownership guard and owned store glow (#334)

* Add Windows ARM64 release builds to pipeline (#340)

* Restore Windows ARM64 build artifacts in release pipeline

* fix(ci): match linux x64 artifact upload names

* Add 'Hide Server Selector' setting to skip free-tier queue modal

* Add Discord activity clearing functionality to rich presence (#349)

* Remove Game Hub media handling and refactor ControllerLibraryPage (#350)

* Remove Game Hub media handling from ControllerLibraryPage

* Refactor initial category index logic in ControllerLibraryPage for clarity

* Replace useEffect with useLayoutEffect for improved layout handling in ControllerLibraryPage

* Merge branch 'dev' into Jayian1890/controller-mode-patch-042226

* Add flake.nix again (#343)

* Fix Nix npm packaging

* Update

* Add nix instruction in README.md

* Delete symbolic Link

* change requested changes and add desktop items

* Update README.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update flake.nix

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update README.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Zortos <zortosdev@proton.me>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Kiefer <67562560+Kief5555@users.noreply.github.com>
Co-authored-by: Kiefer <kieferlin1001@gmail.com>
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
Co-authored-by: DINEXXL <dinexxl@noreply.codeberg.org>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Switch macOS jobs to Blacksmith runners (#352)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>

* feat: implement DiscordStatusMonitor to periodically sync RPC activity with active cloud gaming sessions

* feat: add initial sync handling in DiscordStatusMonitor to clear stale status on startup

* Fix Settings search to show relevant sections only (scope-aware filtering + sidebar UX polish) (#353)

* settings

* Update opennow-stable/src/renderer/src/components/SettingsPage.tsx

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>

* do capy's suggestion

Co-authored-by: Copilot <copilot@github.com>

* Auto-recover active sessions after signaling disconnects (#321)

* Implement bounded auto-recovery for active sessions after signaling disconnects

* Enhance signaling recovery mechanism by introducing generation tracking. Added generation state to manage recovery attempts and prevent stale session applications. Updated relevant functions to utilize generation checks for improved session handling.

* Refactor claimed session handling to improve recovery logic. Introduced a helper function to determine if a claimed reconnect can proceed based on recovery generation and explicit shutdown status, enhancing session management and logging clarity.

* Enhance signaling recovery logic by adding checks for explicit shutdown and non-recoverable stream statuses. This prevents unnecessary error handling and improves logging clarity during disconnect scenarios.

* Remove explicit shutdown check from signaling connection logic to streamline recovery process. This change simplifies the connection flow during recovery attempts.

---------

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
Co-authored-by: Jared <jared@interlacedpixel.com>

* Add multi-account auth support with quick account switcher UI (#355)

* chore(release): prepare v0.3.3

* chore(release): prepare v0.3.4

* chore(release): prepare v1.3.5

* chore(release): prepare v0.3.5

* Update README.md to include TestFlight badge and iOS packaging target

* update AGENTS.md

* chore(release): prepare v0.3.6

* Add multi-account auth support with quick account switcher UI

* Add confirmation modal for account removal

* Fix account switch session validation during refresh (#4)

* Fix account switch session validation during refresh

* Fail switch-account refresh when user identity cannot be verified

* Update opennow-stable/src/main/gfn/auth.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: PriyanshAg-1 <204138848+PriyanshAg-1@users.noreply.github.com>
Co-authored-by: priyanshrv1-oss <priyanshrv1@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix async session state in handleSwitchAccount - pass fresh session to refreshNavbarActiveSession to avoid stale auth token

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>

* Fix all remaining Copilot review issues: auth session null returns, error recovery state sync, ARIA semantics, SavedAccount type usage

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* fix: use menu ARIA roles in account dropdown and return getSession() after logout

Agent-Logs-Url: https://github.com/priyanshrv1-oss/OpenNOW1/sessions/bc9cb33e-8e97-4cf8-8986-2a9a584abddc

Co-authored-by: PriyanshAg-1 <204138848+PriyanshAg-1@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* fix: add role=none to structural wrappers in menu and fix embedded line numbers in TS files

Agent-Logs-Url: https://github.com/priyanshrv1-oss/OpenNOW1/sessions/f707cd73-f431-41cf-96a8-c5e0c34ab939

Co-authored-by: PriyanshAg-1 <204138848+PriyanshAg-1@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Change logoutAll to logout in auth service

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Update opennow-stable/src/main/gfn/auth.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fixed errors and improved session auth flows

* fix: improve session handling and error recovery in AuthService and App components; update Navbar accessibility roles

* Update opennow-stable/src/main/gfn/auth.ts

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>

* Resolve styling issues

* Resolve startup issues

---------

Co-authored-by: Zortos <zortosdev@proton.me>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
Co-authored-by: PriyanshAg-1 <204138848+PriyanshAg-1@users.noreply.github.com>
Co-authored-by: priyanshrv1-oss <priyanshrv1@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Priyansh Agarwal <2k22.cse.32203@gmail.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>

* Improve stream pointer responsiveness under load. (#354)

* Improve stream pointer responsiveness under load.

Reduce mouse input hot-path overhead with residual delta accumulation, adaptive flush scheduling, cached scale conversion, and tuned raw-input filtering while adding diagnostics and targeted tests.

Made-with: Cursor

* Refactor mouse input handling in GfnWebRtcClient to maintain pending deltas until a non-zero packet is sent. This change prevents loss of quantized integer deltas during server scaling, improving responsiveness and accuracy of mouse movements.

* Enhance mouse input handling in GfnWebRtcClient by preventing re-arming of the mouse flush timer during teardown. This change ensures that the timer does not continue to operate after it has been cleared, improving resource management and stability.

* Refactor App and StreamView components to remove Esc hold release indicator functionality. This includes the removal of related state management, CSS styles, and UI elements, streamlining the codebase and improving maintainability.

* Refactor setActivity function in discordRpc.ts to update lastActivity only after successful RPC call, improving state management.

* Update flake.nix to reference the correct path for opennow-logo.png and enhance Discord RPC state management by introducing pendingActivity for improved activity handling.

* Enhance Discord RPC state management by consuming pendingActivity after processing, preventing reprocessing of failed attempts. Simplify activity title and start time assignment in DiscordStatusMonitor for improved clarity.

* Reset pendingActivity to null on setActivity failure in discordRpc.ts to ensure proper state management during error handling.

---------

Co-authored-by: Zortos <zortosdev@proton.me>
Co-authored-by: Jared Terrance <jared@interlacedpixel.com>
Co-authored-by: DINEXXL <105819287+DINEXXL@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
Co-authored-by: DINEXXL <dinexxl@noreply.codeberg.org>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: zaloguj12 <patrik.ostafin@gmail.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: PriyanshAg-1 <204138848+PriyanshAg-1@users.noreply.github.com>
Co-authored-by: priyanshrv1-oss <priyanshrv1@gmail.com>
Co-authored-by: Priyansh Agarwal <2k22.cse.32203@gmail.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants