{ config, lib, pkgs, modulesPath, ... }:

with lib;
{
  # NOTE
  # Some 'global' areas have defaults set in their respective modules.
  # These will be applied when the modules are loaded
  # Not the global role.
  # Not sure at this point a good way to manage globals in one place
  # without mono-repo config.

  imports =
    [
      (modulesPath + "/installer/scan/not-detected.nix") # Generated by nixos-config-generate
      ./global
    ];
  config = {
    boot.tmp.cleanOnBoot = true;
    mySystem = {
      # basics for all devices
      editor.vim.enable = true;
      time.timeZone = "America/Chicago";
      security.increaseWheelLoginLimits = true;
      system.packages = [ pkgs.bat ];
      domain = "hsn.dev";
      shell.fish.enable = true;

      # But wont enable plugins globally, leave them for workstations
      # TODO: Make per device option
      system.resticBackup.remote.location = "s3:https://x.r2.cloudflarestorage.com/nixos-restic";
    };

    environment.systemPackages = with pkgs; [
      curl
      wget
      dnsutils
      jq
      yq-go
      nvme-cli
      smartmontools
    ];

    networking.useDHCP = lib.mkDefault true;
    networking.domain = config.mySystem.domain;
  };

}