{
  pkgs,
  lib,
  config,
  inputs,
  system,
  ...
}: {
  options = {
    mods.nix.upgrade.enable = lib.mkEnableOption "enables nix auto upgrade";
    mods.nix.clean.enable = lib.mkEnableOption "enables nix auto cleaning";
  };

  config = let
    flake = "/home/${config.mods.user.name}/.config/home";
  in {
    system.autoUpgrade = {
      enable = config.mods.nix.upgrade.enable;
      flake = flake;
      flags = ["--commit-lock-file" "-L"];
      dates = "02:00";
      randomizedDelaySec = "45min";
    };

    programs.nh = {
      enable = true;
      clean.enable = config.mods.nix.clean.enable;
      clean.extraArgs = "--keep-since 4d --keep 3";
      flake = flake;
    };

    nix.settings.experimental-features = ["nix-command" "flakes" "ca-derivations"];
    nix.settings = {
      substituters = [
        "https://cache.nixos.org"
        "https://nix-community.cachix.org"
        "https://nixpkgs-unfree.cachix.org"
        "https://hyprland.cachix.org"
        "https://devenv.cachix.org"
        "https://muon.cachix.org"
      ];
      trusted-public-keys = [
        "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
        "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
        "nixpkgs-unfree.cachix.org-1:hqvoInulhbV4nJ9yJOEr+4wxhDV4xq2d1DK7S6Nj6rs="
        "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
        "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
        "muon.cachix.org-1:tHFazVc8JsSeeLa2WLi50DHpJZKYy4V+oKlbhnbecXE="
      ];
    };

    environment.systemPackages = with pkgs; [
      inputs.nix-alien.packages.${system}.nix-alien
      colmena
    ];
    programs.nix-ld.enable = true;
  };
}
