Skip to content

Repository files navigation

proton-ge (Nix)

CI NixOS unstable License: MIT

Nix flake packaging for GE-Proton by GloriousEggroll - Valve Proton with additional patches for games Valve's builds do not cover yet.

Upstream

Project GloriousEggroll/proton-ge-custom
License BSD-3-Clause (Valve Proton lineage)
Tracked GitHub releases (GE-Proton* tags, daily)

What Is This?

A Nix flake that fetches the prebuilt GE-Proton release tarballs and exposes them as two-output packages (out + steamcompattool) in the nixpkgs proton-ge-bin shape, so they drop straight into programs.steam.extraCompatPackages. It exists alongside nixpkgs' own proton-ge-bin for one reason: the daily update tracker here follows upstream releases directly, with no nixpkgs maintainer-merge lag.

Every variant upstream publishes is packaged:

Attribute Upstream asset System
proton-ge (packages.default) GE-ProtonX-Y.tar.gz x86_64-linux
proton-ge (packages.default) GE-ProtonX-Y-aarch64.tar.gz aarch64-linux

Every channel gets a stable Steam identity written into its compatibilitytool.vdf: the rolling channel is GE-Proton-latest, each frozen pin is GE-Proton <version>, mirroring how Steam lists Proton. A game mapped to GE-Proton-latest rides every update; one mapped to a pin stays on that exact build.

  • Package integrity - SRI source hashes, verified on every build
  • CI security - pinned GitHub Actions (full SHA, not tags), minimal permissions, build-gated PRs
  • Upstream trust - daily automated release detection, hash recomputation, and a verified test build, auto-committed to main
  • Stale cleanup - weekly flake.lock refresh (pushed only if it still builds); orphaned update branches older than 30 days are deleted

Channels

Current pins as of 2026-07-23; the live truth is sources.nix (updated daily).

Attribute Steam identity Version
latest (packages.default, pkgs.proton-ge) GE-Proton-latest GE-Proton11-1
v11 GE-Proton 11-1 GE-Proton11-1
v10 GE-Proton 10-34 GE-Proton10-34
v9 GE-Proton 9-21 GE-Proton9-21
v8 GE-Proton 8-32 GE-Proton8-32
v7 GE-Proton 7-55 GE-Proton7-55

latest rolls with every upstream release; each v<major> is a frozen pin on that major's newest packaged release, so a game mapped to GE-Proton 10-34 never silently changes underneath it.

Installation

Add as a flake input:

{
  inputs.proton-ge = {
    url = "github:Daaboulex/proton-ge-nix";
    inputs.nixpkgs.follows = "nixpkgs";
  };
}

Then either take the package directly:

programs.steam.extraCompatPackages = [
  inputs.proton-ge.packages.${pkgs.system}.default
];

or apply inputs.proton-ge.overlays.default and use pkgs.proton-ge.

Usage

programs.steam = {
  enable = true;
  extraCompatPackages = [ pkgs.proton-ge ];
};

Steam lists GE-Proton-latest (plus each pinned major, e.g. GE-Proton 10-34) in each game's Compatibility dropdown. Pinning an older GE release is nix-native: use its frozen per-major channel - pkgs.proton-ge.v10 after the overlay, or inputs.proton-ge.packages.${pkgs.system}.v10.

License

The packaging is MIT. GE-Proton itself is upstream's license (Valve Proton BSD-3-Clause lineage plus bundled components); this flake redistributes nothing - tarballs are fetched from upstream's GitHub releases at build time.

About

GE-Proton packaged for NixOS - rolling latest plus a pinned channel per major, tracking upstream daily

Topics

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages