This is a quick tutorial on how to turn of the nix flake registry.
What is the nix flake registry?
The nix flake registry is a per-machine or per-user mapping of names to flake identifiers. For example, nixpkgs represents git://github.com/NixOS/nixpkgs. You can list yours using nix registry list.
It is what lets you write nix run nixpkgs#firefox instead of github:NixOS/nixpkgs#firefox. It also lets you use nixpkgs in your flake's outputs function without declaring it in its inputs set:
{
inputs = {};
outputs =
{ self
, nixpkgs
}: { };
}Why would you want to turn it off?
To make sure all inputs are specified explicitly.
How to turn it off
In your NixOS configuration:
nix.registry = {};
nix.settings.flake-registry = "";In your home manager configuration:
home-manager.users.<my-user>.xdg.configFile."nix/registry.json".text = builtins.toJSON { version = 2; };
If anyone wants to upstream this to more official Nix documentation, they're welcome to do so.