{ lib, config, ... }: let cfg = config.local.nix; in { options.local.nix = with lib; { enableMyRegistry = mkOption { type = types.bool; default = false; description = "Enable my custom nix registry"; }; }; config = { nix = { settings = { auto-optimise-store = true; trusted-users = [ "root" ]; experimental-features = [ "nix-command" "flakes" ]; # To protect nix-shell against garbage collection # Source: https://github.com/nix-community/nix-direnv#installation keep-derivations = true; keep-outputs = true; }; registry = lib.mkIf cfg.enableMyRegistry ( let gitple = "https://git.pleshevski.ru"; mkRegistry = id: url: { from = { type = "indirect"; inherit id; }; to = { type = "git"; inherit url; }; }; in { templates = mkRegistry "tmpl" "${gitple}/mynix/templates"; } ); }; }; }