{
  pkgs,
  inputs,
  config,
  lib,
  ...
}: {
  config = {
    nix = {
      package = lib.mkForce pkgs.lix;

      # Pin system <nixpkgs> to flake nixpkgs version.
      # i.e. for use in pkgs = import <nixpkgs> {}.
      nixPath = ["nixpkgs=${inputs.nixpkgs}"];

      # Pin flake registry nixpkgs to flake nixpkgs version.
      # i.e. for use in nix search nixpkgs.
      registry = {
        nixpkgs.flake = inputs.nixpkgs;
      };

      settings = {
        trusted-users = [
          "root"
          "@wheel"
        ];

        # Enable flakes.
        experimental-features = [
          "nix-command"
          "flakes"
        ];

        # Set up caches.
        extra-substituters = [
          "https://marleyos.cachix.org"
          "https://nix-community.cachix.org"
        ];

        trusted-public-keys = [
          "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
          "marleyos.cachix.org-1:q2kEtqvS5CoQ8BmKlWOfOnN+fi4gUoSuL6HRKy37eCA="
          "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
        ];

        # Disable that annoying "git tree is dirty" warning.
        warn-dirty = false;

        auto-optimise-store = true;
      };

      # Garbage collection.
      gc.automatic = true;
    };

    nixpkgs.config.import = "${config.xdg.configHome}/nixpkgs/config.nix";

    xdg.configFile."nixpkgs/config.nix".text =
      # nix
      ''
        {
          allowUnfree = true;
        }
      '';

    home.shellAbbrs = {
      nrepl = ''
        nix repl --expr 'rec {pkgs=(import <nixpkgs> {}); lib=pkgs.lib;}'
      '';
    };
  };
}
