{ config, lib, inputs, outputs, pkgs, system, timeZone, ... }:
  let
    userName = "nate";
    fullName = "Nate Anderson";
    email = "nate.anderson@vasion.com";
    hostName = "nate-vasion";
    desktop = "sway";
    gaming = true;
  in
{
  imports = [
      ./desktop-configuration.nix
      ./nixos/hardware-configuration.nix
  ];

  deskCfg = {
      userName = userName;
      hostName = hostName;
      de = desktop;
      installGaming = gaming;
  };

  # Limit the number of generations to keep
  boot.loader.systemd-boot.configurationLimit = 5;

  # Perform garbage collection weekly to maintain low disk usage
  nix.gc = {
    automatic = true;
    dates = "weekly";
    options = "--delete-older-than 14d";
  };

  ### TODO add these to security.nix file
  # Auto Update System
  system.autoUpgrade = {
    enable = true;
    flake = inputs.self.outPath;
    flags = [
      "--update-input"
      "nixpkgs"
      "nixpkgs-unstable"
      "-L" # print build logs
    ];
    dates = "05:00";
    randomizedDelaySec = "45min";
  };

  services.clamav.daemon.enable = true;
  services.clamav.scanner.enable = true;

  nix.settings.auto-optimise-store = true;
}