{
  pkgs,
  inputs,
  system,
  nixpkgsPath,
  shellHook ? "",
  ...
}:
pkgs.mkShell {
  name = "shell";
  src = null;
  #preferLocalBuild = true;
  #allowSubstitutes = false;
  buildInputs = [
    (pkgs.nixos [ ]).nixos-install
    pkgs.git-crypt
    pkgs.gnumake
    pkgs.gnupg
    pkgs.gptfdisk
    pkgs.nixfmt-rfc-style
    pkgs.pinentry-curses
    pkgs.zfs
  ];
  #enableParallelBuilding = true;
  NIX_PATH = pkgs.lib.concatStringsSep ":" [
    "nixpkgs=${nixpkgsPath}"
    "nixpkgs-overlays=${builtins.path { path = inputs.self + "/nixpkgs"; }}/overlays.nix"
    "home-manager=${inputs.home-manager}"
  ];
  shellHook = ''
    echo >&2 "nix: running shellHook"
    PATH="${inputs.home-manager.defaultPackage.${system}}/bin:$PATH"
    PASSWORD_STORE_DIR=$PWD
    nix-store --add-root nixpkgs.root --indirect --realise ${nixpkgsPath}
    ${shellHook}
  '';
}