home-manager/docs/manual/nix-flakes/prerequisites.md

1.4 KiB

Prerequisites

  • Install Nix 2.4 or later, or have it in nix-shell.

  • Enable experimental features nix-command and flakes.

    • When using NixOS, add the following to your configuration.nix and rebuild your system.

      nix = {
        package = pkgs.nixFlakes;
        extraOptions = ''
          experimental-features = nix-command flakes
        '';
      };
      
    • If you are not using NixOS, add the following to nix.conf (located at ~/.config/nix/ or /etc/nix/nix.conf).

      experimental-features = nix-command flakes
      

      You may need to restart the Nix daemon with, for example, sudo systemctl restart nix-daemon.service.

    • Alternatively, you can enable flakes on a per-command basis with the following additional flags to nix and home-manager:

      $ nix --extra-experimental-features "nix-command flakes" <sub-commands>
      $ home-manager --extra-experimental-features "nix-command flakes" <sub-commands>
      
  • Prepare your Home Manager configuration (home.nix).

    Unlike the channel-based setup, home.nix will be evaluated when the flake is built, so it must be present before bootstrap of Home Manager from the flake. See Configuration Example for introduction about writing a Home Manager configuration.