{ pkgs, config, lib, ... }: with lib; let cfg = config.modules.hardware.networking; in { options.modules.hardware.networking = { enable = mkEnableOption "Enable NetworkManager, a daemon for configuring network interfaces"; powersave = mkEnableOption { default = config.modules.core.laptop; description = "Enable power saving options over Wi-Fi"; }; }; config = mkIf cfg.enable { networking.networkmanager = { enable = true; dns = "systemd-resolved"; wifi.backend = "iwd"; wifi.powersave = cfg.powersave; }; services.resolved.enable = true; services.resolved.settings.Resolve.DNSSEC = "allow-downgrade"; services.resolved.settings.Resolve.DNSOverTLS = "opportunistic"; networking.wireless.iwd.enable = true; networking.wireless.iwd.settings.Settings.AutoConnect = true; # default startup time is Slowww systemd.services.NetworkManager-wait-online.enable = false; }; }