Bake GeForce NOW native Linux app (beta) via first-boot installer

NVIDIA's client ships from their own flatpak repo (com.nvidia.geforcenow),
which default-flatpaks can't add alongside Flathub — so a stamped oneshot
service installs it on first boot with retries. Docs note the BC-250 has
no hardware video decode: streams are CPU-decoded, keep to 1080p.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-07 16:13:56 -04:00
co-authored by Claude Fable 5
parent 06ad5e9d26
commit c5f141fe34
6 changed files with 51 additions and 1 deletions
+4
View File
@@ -74,3 +74,7 @@ high clocks. Change one thing at a time and re-check `sensors`.
`bc250-remote-setup` hasn't been run yet. `bc250-remote-setup` hasn't been run yet.
- Steam misbehaves after an update → try ProtonUp-Qt (installed) to switch - Steam misbehaves after an update → try ProtonUp-Qt (installed) to switch
the game to Proton-GE. the game to Proton-GE.
- GeForce NOW (beta) installs itself on first boot with internet. The BC-250
has no hardware video decode, so the stream decodes on the CPU: keep it at
1080p (higher settings will stutter and run hot). If it's missing, check
`systemctl status bc250-gfn-install` — it retries on the next boot.
+1
View File
@@ -19,6 +19,7 @@ over-the-air from this Gitea's container registry.
| Console behavior | All suspend paths masked, no screen lock/dim, GNOME animations off — always on, always reachable | | Console behavior | All suspend paths masked, no screen lock/dim, GNOME animations off — always on, always reachable |
| Kid experience | Steam Big Picture autostarts for the `kid` account only | | Kid experience | Steam Big Picture autostarts for the `kid` account only |
| Apps | First-boot flatpaks: ProtonUp-Qt, Heroic, RetroDECK (Steam, Firefox, auto-updates already in the Bazzite base) | | Apps | First-boot flatpaks: ProtonUp-Qt, Heroic, RetroDECK (Steam, Firefox, auto-updates already in the Bazzite base) |
| Cloud gaming | GeForce NOW native Linux app (beta) auto-installed on first boot from NVIDIA's flatpak repo — note the BC-250 has no hardware video decode, so streams decode on CPU; keep to 1080p |
| Fixes | `hhd.service` masked (crash-loops on BC-250) | | Fixes | `hhd.service` masked (crash-loops on BC-250) |
| Docs | Parent manual baked at `/usr/share/doc/bc250-console/OPERATIONS.md` | | Docs | Parent manual baked at `/usr/share/doc/bc250-console/OPERATIONS.md` |
+27
View File
@@ -0,0 +1,27 @@
#!/usr/bin/env bash
# First-boot installer for the GeForce NOW native Linux app (beta).
# GFN ships from NVIDIA's own flatpak repo, not Flathub, so the
# default-flatpaks module can't handle it. Retries while the network
# settles; stamps /var/lib/bc250/.gfn-installed on success so the
# service never runs again.
STAMP_DIR="/var/lib/bc250"
STAMP="$STAMP_DIR/.gfn-installed"
REPO_URL="https://international.download.nvidia.com/GFNLinux/flatpak/geforcenow.flatpakrepo"
[ -f "$STAMP" ] && exit 0
for attempt in $(seq 1 30); do
if flatpak remote-add --if-not-exists --system GeForceNOW "$REPO_URL" \
&& flatpak install --system --noninteractive -y GeForceNOW com.nvidia.geforcenow; then
mkdir -p "$STAMP_DIR"
touch "$STAMP"
echo "GeForce NOW installed."
exit 0
fi
echo "GeForce NOW install attempt $attempt failed; retrying in 60s..."
sleep 60
done
echo "GeForce NOW install failed after 30 attempts; will retry next boot." >&2
exit 1
@@ -0,0 +1,13 @@
[Unit]
Description=Install GeForce NOW flatpak (NVIDIA repo, first boot)
Wants=network-online.target
After=network-online.target flatpak-add-fedora-repos.service
ConditionPathExists=!/var/lib/bc250/.gfn-installed
[Service]
Type=oneshot
ExecStart=/usr/bin/bc250-gfn-install
TimeoutStartSec=45min
[Install]
WantedBy=multi-user.target
@@ -74,3 +74,7 @@ high clocks. Change one thing at a time and re-check `sensors`.
`bc250-remote-setup` hasn't been run yet. `bc250-remote-setup` hasn't been run yet.
- Steam misbehaves after an update → try ProtonUp-Qt (installed) to switch - Steam misbehaves after an update → try ProtonUp-Qt (installed) to switch
the game to Proton-GE. the game to Proton-GE.
- GeForce NOW (beta) installs itself on first boot with internet. The BC-250
has no hardware video decode, so the stream decodes on the CPU: keep it at
1080p (higher settings will stutter and run hot). If it's missing, check
`systemctl status bc250-gfn-install` — it retries on the next boot.
+2 -1
View File
@@ -24,7 +24,7 @@ modules:
- type: script - type: script
snippets: snippets:
- chmod 0755 /usr/bin/bc250-remote-setup /usr/bin/bc250-steam-bpm-autostart - chmod 0755 /usr/bin/bc250-remote-setup /usr/bin/bc250-steam-bpm-autostart /usr/bin/bc250-gfn-install
- dconf update # compile the local.d/gdm.d console defaults into the dconf dbs - dconf update # compile the local.d/gdm.d console defaults into the dconf dbs
- type: default-flatpaks@v1 - type: default-flatpaks@v1
@@ -41,6 +41,7 @@ modules:
- cyan-skillfish-governor-smu.service - cyan-skillfish-governor-smu.service
- sshd.service - sshd.service
- tailscaled.service # idle until 'sudo tailscale up' - tailscaled.service # idle until 'sudo tailscale up'
- bc250-gfn-install.service # GeForce NOW beta from NVIDIA's flatpak repo (first boot)
masked: masked:
- hhd.service # Handheld Daemon crash-loops on BC-250 - hhd.service # Handheld Daemon crash-loops on BC-250
# Always-on console: hard-block every suspend path (the box must # Always-on console: hard-block every suspend path (the box must