{ config, lib, pkgs, ... }: let activatedWg = name: { networking.wg-quick.interfaces."${name}".configFile = "/persist/manual/wireguard/${name}.conf"; systemd.services."wg-quick-${name}" = { after = [ "nss-lookup.target" "systemd-resolved.service" "multi-user.target" ]; preStart = "${pkgs.toybox}/bin/sleep 10"; }; # systemd.services."wg-quick-${name}".after = [ # "nss-lookup.target" # "systemd-resolved.service" # "multi-user.target" # ]; # systemd.services."wg-quick-${name}".preStart = "${pkgs.toybox}/bin/sleep 10"; }; deactivatedWg = name: { networking.wg-quick.interfaces."${name}" = { configFile = "/persist/manual/wireguard/${name}.conf"; autostart = false; }; }; wgConfig = lib.attrsets.recursiveUpdate (lib.attrsets.recursiveUpdate (lib.attrsets.recursiveUpdate (lib.attrsets.recursiveUpdate { networking.firewall.allowedUDPPorts = [ 51821 ]; networking.wireguard.enable = true; } (activatedWg "drmario")) (activatedWg "wgh") ) (activatedWg "colo")) (deactivatedWg "wgf"); in { imports = [ ]; config = lib.mkIf (!config.me.buildingIso) wgConfig; # environment.systemPackages = with pkgs; [ # wireguard-tools # ]; }