main
1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7{
8 networking = {
9 networkmanager = {
10 enable = true;
11 wifi = {
12 backend = "iwd";
13 };
14 unmanaged = [
15 "interface-name:br-*"
16 "interface-name:ve-*" # FIXME are those docker's or libvirt's
17 "interface-name:veth-*" # FIXME are those docker's or libvirt's
18 ]
19 # Do not manager wireguard
20 ++ lib.optionals config.networking.wireguard.enable [ "interface-name:wg0" ]
21 # Do not manage docker interfaces
22 ++ lib.optionals config.virtualisation.docker.enable [ "interface-name:docker0" ]
23 # Do not manager libvirt interfaces
24 ++ lib.optionals config.virtualisation.libvirtd.enable [ "interface-name:virbr*" ];
25 plugins = with pkgs; [ networkmanager-openvpn ];
26 };
27 };
28
29 # Workaround https://github.com/NixOS/nixpkgs/issues/180175
30 systemd.services.NetworkManager-wait-online.enable = false;
31
32 # Disable ModemManager - not using mobile broadband
33 systemd.services.ModemManager.enable = false;
34}