Skip to content

Commit 2c8748b

Browse files
author
dinexxl@noreply.codeberg.org
committed
Add Nix installation instructions in README and fix app links in flake
1 parent b5df50c commit 2c8748b

3 files changed

Lines changed: 112 additions & 1 deletion

File tree

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,5 @@ package-lock.json
4242
# AI Agent guidelines (local only)
4343
AGENTS.md
4444
release-notes.md
45+
opennow-stable/result
46+
result

README.md

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,11 +142,100 @@ npm run dev
142142

143143
Useful root scripts:
144144

145+
<<<<<<< HEAD
145146
```bash
146147
npm run dev
147148
npm run build
148149
npm run typecheck
149150
npm run dist
151+
=======
152+
## Download
153+
154+
Grab the latest release for your platform:
155+
156+
👉 **[Download from GitHub Releases](https://github.com/OpenCloudGaming/OpenNOW/releases)**
157+
158+
| Platform | File |
159+
|----------|------|
160+
| Windows (installer) | `OpenNOW-v0.2.4-setup-x64.exe` |
161+
| Windows (portable) | `OpenNOW-v0.2.4-portable-x64.exe` |
162+
| macOS (x64) | `OpenNOW-v0.2.4-mac-x64.dmg` |
163+
| macOS (ARM) | `OpenNOW-v0.2.4-mac-arm64.dmg` |
164+
| Linux (x64) | `OpenNOW-v0.2.4-linux-x86_64.AppImage` |
165+
| Linux (ARM64) | `OpenNOW-v0.2.4-linux-arm64.AppImage` |
166+
167+
## Nix
168+
169+
You'll need to add this repo into your flake.nix:
170+
```nix
171+
{
172+
inputs = {
173+
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
174+
175+
opennow.url = "github:OpenCloudGaming/OpenNOW";
176+
};
177+
178+
outputs = {
179+
self,
180+
nixpkgs,
181+
opennow,
182+
... }@inputs: {
183+
};
184+
}
185+
```
186+
Then add the package to your configuration:
187+
```nix
188+
# Home-manager
189+
{
190+
pkgs,
191+
inputs,
192+
...
193+
}: {
194+
home.packages = with pkgs; [
195+
inputs.opennow.packages.${pkgs.system}.default
196+
];
197+
}
198+
```
199+
200+
```nix
201+
# Nixos configuraion
202+
{
203+
pkgs,
204+
inputs,
205+
...
206+
}: {
207+
environment.systemPackages = with pkgs; [
208+
inputs.opennow.packages.${pkgs.system}.default
209+
];
210+
}
211+
```
212+
213+
214+
## Architecture
215+
216+
OpenNOW is an Electron app with three processes:
217+
218+
| Layer | Technology | Role |
219+
|-------|-----------|------|
220+
| **Main** | Node.js + Electron | OAuth, CloudMatch API, WebSocket signaling, settings |
221+
| **Renderer** | React 19 + TypeScript | UI, WebRTC streaming, input encoding, stats |
222+
| **Preload** | Electron contextBridge | Secure IPC between main and renderer |
223+
224+
```
225+
opennow-stable/src/
226+
├── main/ # Electron main process
227+
│ ├── gfn/ # Auth, CloudMatch, signaling, games, subscription
228+
│ ├── index.ts # Entry point, IPC handlers, window management
229+
│ └── settings.ts # Persistent user settings
230+
├── renderer/src/ # React UI
231+
│ ├── components/ # Login, Home, Library, Settings, StreamView
232+
│ ├── gfn/ # WebRTC client, SDP, input protocol
233+
│ └── App.tsx # Root component with routing and state
234+
├── shared/ # Shared types and IPC channel definitions
235+
│ ├── gfn.ts # All TypeScript interfaces
236+
│ └── ipc.ts # IPC channel constants
237+
└── preload/ # Context bridge (safe API exposure)
238+
>>>>>>> bf6734b (Add Nix installation instructions in README and fix app links in flake)
150239
```
151240
152241
For a fuller setup guide, see [docs/development.md](docs/development.md).

flake.nix

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
pkgs.python3
2424
pkgs.gcc
2525
pkgs.makeWrapper
26+
pkgs.copyDesktopItems
2627
];
2728

2829
runtimeDeps = [
@@ -54,6 +55,21 @@
5455
nativeBuildInputs = nativeDeps;
5556
buildInputs = runtimeDeps;
5657

58+
desktopItems = [
59+
(pkgs.makeDesktopItem {
60+
name = "opennow";
61+
exec = "opennow %U";
62+
icon = "opennow";
63+
desktopName = "OpenNOW";
64+
genericName = "Cloud Gaming Client";
65+
categories = [
66+
"Game"
67+
"Network"
68+
];
69+
terminal = false;
70+
})
71+
];
72+
5773
npmBuild = "npm run build";
5874

5975
installPhase = ''
@@ -79,6 +95,11 @@
7995
--inherit-argv0 \
8096
--add-flags "--enable-features=WaylandWindowDecorations --platform-hint=auto"
8197
98+
mkdir -p $out/share/icons/hicolor/512x512/apps
99+
if [ -f "src/renderer/src/assets/opennow-logo.png" ]; then
100+
cp src/renderer/src/assets/opennow-logo.png $out/share/icons/hicolor/512x512/apps/opennow.png
101+
fi
102+
82103
runHook postInstall
83104
'';
84105

@@ -93,7 +114,6 @@
93114

94115
devShells.default = pkgs.mkShell {
95116
inputsFrom = [ self.packages.${system}.default ];
96-
97117
shellHook = ''
98118
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
99119
'';

0 commit comments

Comments
 (0)