{
  config,
  lib,
  ...
}:
{
  systemd.network = {
    networks = {
      "tap0" = {
        name = "tap0";
        bridge = [
          "virbr0"
        ];
      };
      "enp4s0" = {
        name = "enp4s0";
        networkConfig = {
          DHCP = "yes";
          DNSOverTLS = "yes";
          DNSSEC = "yes";
        };
        bridge = [
          "virbr0"
        ];
      };
    };
    netdevs = {
      "tap0" = {
        netdevConfig = {
          Name = "tap0";
          Kind = "tap";
        };
        tapConfig = {
          User = "${config.users.users.soispha.uid}";
          Group = "libvirtd";
        };
      };
      "virbr0" = {
        netdevConfig = {
          Name = "br0";
          Kind = "bridge";
        };
      };
    };
  };
}
// lib.mkIf config.networking.networkmanager.enable {
  users.users.soispha.extraGroups = [
    "networkmanager" # allows to configure networkmanager as this user
  ];
}