Skip to content

Repository files navigation

Donate Latest Release Build Status License: GPL v3

GFN Electron

Unofficial desktop client for Nvidia GeForce NOW on Linux, delivering a native Electron-based experience with Wayland support, Steam Deck integration, and optional Discord rich presence.

Preview screenshot

πŸ“‘ Table of Contents

✨ Features

  • Native Wayland support with compositor-aware behaviour
  • Steam Deck integration with automatic fullscreen and virtual keyboard overlay
  • Discord rich presence integration (optional)
  • Hardware-accelerated video pipeline using VA-API and GPU rendering flags
  • GPU crash fallback strategy for rendering stability
  • Keyboard shortcuts for fullscreen, navigation, and developer tooling
  • Direct game launch via CMS identifier
  • Stream quality override for resolution and refresh rate reporting

βš–οΈ Disclaimers

Affiliation

This project and its contributors are not affiliated with Nvidia, nor with the GeForce NOW product. This repository does not include Nvidia or GeForce NOW software. It provides an Electron wrapper that loads the official GeForce NOW web application.

Expectations

This is a free and open-source project maintained by volunteers. Contributions occur as contributor availability permits.

πŸš€ Usage

Launch the client from a terminal:

npm start

Keyboard Shortcuts

Shortcut Action
F11 / Super+F Toggle fullscreen
Alt+Home Navigate to the home page
Alt+F4 Exit the application
Ctrl+Shift+I Toggle developer tools
Ctrl+Shift+P Create a desktop shortcut for the active game

Command-line Arguments and Environment Variables

Argument Environment Variable Description
--direct-start <cmsId> GFN_DIRECT_START_ID=<cmsId> Launch directly into a game by CMS identifier
--disable-rpc GFN_DISABLE_RPC=1 Disable Discord rich presence
- GFN_ENABLE_EXPERIMENTAL_GPU_FLAGS=1 Re-enable aggressive GPU flags for experimentation
- GFN_RESOLUTION_WIDTH=<px> Override reported stream width
- GFN_RESOLUTION_HEIGHT=<px> Override reported stream height
- GFN_REFRESH_RATE=<hz> Override reported stream refresh rate

More Documentation

⚠️ Known Limitations

  • Application behaviour depends on the current GeForce NOW web interface and can change when upstream web functionality changes.
  • Manual installation packages receive less maintainer support than the Flatpak distribution.

πŸ–₯️ System Requirements

  • OS: Linux
  • Runtime: Node.js 20 or later
  • Graphics: GPU drivers with WebGL and hardware video decode support are recommended

πŸ“¦ Installation

Obtain it from FlatHub Obtain it from AUR Obtain it from GitHub

CLI Installation

flatpak install flathub io.github.hmlendea.geforcenow-electron

or, for Arch Linux users via AUR:

paru -S geforcenow-electron

or, if you use yay:

yay -S geforcenow-electron

πŸ› οΈ Development

Requirements

Setup

npm install

Build

npm run build

Run

npm start

Dependencies

Package Purpose
discord-rich-presence Discord RPC integration
electron-localshortcut Application-local keyboard shortcuts
find-process Process discovery for integration logic

πŸ—‚οΈ Project Structure

The key directories and files are:

Path Purpose
scripts/main.js Electron main-process lifecycle, window initialisation, and runtime flags
scripts/preload.js Safe bridge between renderer and Electron APIs
scripts/renderer.js Renderer-side interactions and UI behaviour
scripts/rpc.js Discord rich presence integration
scripts/windowManager.js Window creation and management logic
com.github.hmlendea.geforcenow-electron.desktop Desktop entry metadata

πŸ“š Documentation

Full documentation is available in the project Wiki:

πŸ—οΈ Architecture

See ARCHITECTURE.md for a structural synopsis and component interactions.

🀝 Contributing

You are welcome to bring any suggestion, feedback or modification to this project.

When doing so, please:

  • Maintain cross-platform compatibility
  • Maintain the pull requests as focused and consistent with the existing code style
  • Maintain your branch up-to-date with master
  • Revise the documentation when behaviour changes
  • Properly test all changes

πŸ”’ Security

For information on reporting security vulnerabilities, see SECURITY.md.

πŸ’ Helping out

Discovered a problem or have a suggestion? Open an issue!

If you find this project useful, consider funding it or starring ⭐️ it on GitHub!

Donate

πŸ“„ License

This project is being distributed under the GNU General Public License v3.0 or later. See LICENSE for details.

About

Linux Desktop client for Nvidia's GeForce NOW game streaming service.

Topics

Resources

Security policy

Stars

627 stars

Watchers

14 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages

Generated from electron/minimal-repro