Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Nix

Overlays

Overlays are Nix functions which accept two arguments, conventionally called final and prev (formerly also self and super), and return a set of packages. ... Overlays are similar to other methods for customizing Nixpkgs, in particular the packageOverrides ... Indeed, packageOverrides acts as an overlay with only the prev (super) argument. It is therefore appropriate for basic use, but overlays are more powerful and easier to distribute.

--- From the Nixpkgs manual

A sort of too long didn't read is that with overlays you are able to change various parts of packages/modules.

Unstable builds

A practical example would be enabling the ability to remain on the stable channel, but to pull in unstable packages.

In the flake.nix you need to add a new input for the unstable channel.

inputs.nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";

After you can add the following to your configuration file.

{
  nixpkgs.overlays = [
    (final: _prev: {
      unstable = import inputs.nixpkgs-unstable {
        inherit (final) system;
        config.allowUnfree = true;
      };
    })
  ];
}

This will add the ability to pull unstable packages by the following.

{
  home.packages = [
    (pkgs.unstable.vivaldi.override {
      proprietaryCodecs = true;
      inherit vivaldi-ffmpeg-codecs;
    })
  ];
}

Flake

Talos

Talos