{ pkgs, ... }:

{
  imports = [
    ./hardware-configuration.nix
    ./modules.nix
    ./users.nix
    ./networking.nix
  ];

  nix.settings = {
    experimental-features = [
      "nix-command"
      "flakes"
    ];
    auto-optimise-store = true;
  };

  nix.gc = {
    automatic = true;
    dates = "weekly";
    options = "--delete-older-than 7d";
  };

  nixpkgs.config = {
    allowUnfreePredicate =
      pkg:
      builtins.elem (pkgs.lib.getName pkg) [
        "nvidia-settings"
        "nvidia-x11"
        "nordvpn"
        "hplip"
      ];
  };

  swapDevices = [
    {
      device = "/swap";
      size = 8192;
    }
  ];
}