This is a repo with pkgs meant for EUVlok, although it can be used by other repos as well too
This flake advertises the public eupkgs Cachix cache through nixConfig:
extra-substituters = [ "https://eupkgs.cachix.org" ]; extra-trusted-public-keys = [ "eupkgs.cachix.org-1:V9Y0HdASNNSU9U6EkXhR1j85bZGRtNgW7wSyTiQrwGU=" ];
Accept the flake configuration when Nix prompts to download prebuilt packages
from Cachix instead of building them locally. For non-interactive use, pass
--accept-flake-config. Multi-user Nix installations may require a trusted
administrator to add the same substituter and public key system-wide.
GitHub Actions pulls from this cache for all checks. Builds on master and
manually dispatched builds also push successful results using the repository's
CACHIX_AUTH_TOKEN; pull requests remain read-only.
{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; euvlok-pkgs.url = "github:euvlok/pkgs"; }; }
Composes into your own nixpkgs, so the resulting package set inherits your
config (e.g. allowUnfree) and overlays
{ # ... outputs = { self, nixpkgs, euvlok-pkgs, ... }: { nixosConfigurations.myHost = nixpkgs.lib.nixosSystem { modules = [ ({ pkgs, ... }: { nixpkgs.config.allowUnfree = true; nixpkgs.overlays = [ euvlok-pkgs.overlays.default ]; environment.systemPackages = with pkgs; [ claude-code yt-dlp ]; }) ]; }; }; }
Note: legacyPackages is built from the nixpkgs this flake imports with no
config applied, so unfree packages will be refused. Prefer overlays.default
unless you explicitly want this flake's pinned nixpkgs.
{ # ... outputs = { self, nixpkgs, euvlok-pkgs, ... }: { nixosConfigurations.myHost = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ { environment.systemPackages = with euvlok-pkgs.legacyPackages.x86_64-linux; [ helium-browser yt-dlp ]; } ]; }; }; }
{ # ... outputs = { self, nixpkgs, euvlok-pkgs, home-manager, ... }: { homeConfigurations.myUser = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages.x86_64-linux; modules = [ { home.packages = with euvlok-pkgs.legacyPackages.x86_64-linux; [ helium-browser yt-dlp ]; } ]; }; }; }
If you only want a few packages in your top-level pkgs, wrap overlays.default
and inherit what you need:
nixpkgs.overlays = [ (final: prev: { inherit (prev.extend euvlok-pkgs.overlays.default) yt-dlp; }) ];