# Shell for bootstrapping flake-enabled nix and home-manager { pkgs ? let # If pkgs is not defined, instantiate nixpkgs from locked commit lock = (builtins.fromJSON (builtins.readFile ./flake.lock)).nodes.nixpkgs.locked; nixpkgs = fetchTarball { url = "https://github.com/nixos/nixpkgs/archive/${lock.rev}.tar.gz"; sha256 = lock.narHash; }; system = builtins.currentSystem; overlays = [ ]; # Explicit blank overlay to avoid interference in import nixpkgs { inherit system overlays; } , ... }: pkgs.mkShell { # Enable experimental features without having to specify the argument NIX_CONFIG = "experimental-features = nix-command flakes"; nativeBuildInputs = with pkgs; [ nix home-manager git nil nixpkgs-fmt go-task sops pre-commit gitleaks cachix ]; }