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

let
  cfg = config.nomarchy.system;
in
{
  networking.networkmanager.enable = lib.mkDefault true;

  networking.networkmanager.wifi.powersave = lib.mkDefault cfg.wifi.powersave;

  # DNS Configuration
  networking.nameservers = lib.mkDefault (
    if cfg.dns == "Cloudflare" then [ "1.1.1.1" "1.0.0.1" ]
    else if cfg.dns == "Google" then [ "8.8.8.8" "8.8.4.4" ]
    else if cfg.dns == "Custom" then cfg.customDns
    else [] # DHCP lets NM handle it
  );

  services.resolved = {
    enable = lib.mkDefault (cfg.dns != "DHCP");
    dnssec = lib.mkDefault "allow-downgrade";
    domains = lib.mkDefault [ "~." ];
    fallbackDns = lib.mkDefault [ "9.9.9.9" "149.112.112.112" ];
    extraConfig = lib.mkDefault ''
      DNSOverTLS=opportunistic
    '';
  };
}
