diff --git a/flake.nix b/flake.nix index 0038003..342df6a 100644 --- a/flake.nix +++ b/flake.nix @@ -111,7 +111,7 @@ ./modules/basic-tools ./modules/binary-caches.nix ./modules/devtools.nix - ./modules/gnome.nix + ./modules/sway.nix ./modules/gnupg.nix ./modules/radio.nix ./modules/science.nix diff --git a/hosts/toaster/network/default.nix b/hosts/toaster/network/default.nix index 6d96c3c..0bf35e9 100644 --- a/hosts/toaster/network/default.nix +++ b/hosts/toaster/network/default.nix @@ -1,36 +1,27 @@ -{ lib, config, ... }: -{ +{ lib, config, pkgs, ... }: { imports = [ ./mullvad.nix ./dumpdvb.nix ./zw.nix ]; - # Networkmanager shouldn't interfere with systemd managed interfaces - networking.networkmanager.unmanaged = - let - systemd_netdevs = lib.attrsets.attrValues ( - lib.attrsets.mapAttrs (_name: value: value.netdevConfig.Name) config.systemd.network.netdevs - ); - in - systemd_netdevs; + environment.systemPackages = with pkgs; [ iwgtk impala ]; - systemd.network = { - enable = true; - wait-online.enable = false; # uplink is managed by networkmanager - }; - - users.users."0xa".extraGroups = [ "networkmanager" ]; + # kick out networkmanager + networking.networkmanager.enable = lib.mkForce false; + networking.useNetworkd = true; + systemd.network.enable = true; networking = { hostName = "toaster"; firewall.enable = true; wireguard.enable = true; + wireless.iwd.enable = true; }; services.resolved = { enable = true; - dnssec = "false"; + dnssec = "allow-downgrade"; fallbackDns = [ "9.9.9.9" "2620:fe::fe" @@ -39,4 +30,34 @@ ]; }; + # we might have no interwebs at all + systemd.network.wait-online.enable = false; + + # uplinks + systemd.network.networks = { + "10-ether-uplink" = { + matchConfig.Name = "enp1s0f0"; + networkConfig = { + DHCP = "yes"; + IPv6AcceptRA = true; + }; + }; + "10-dock-uplink" = { + matchConfig.Name = "enp5s0f4u1u1"; + networkConfig = { + DHCP = "yes"; + IPv6AcceptRA = true; + }; + dhcpV4Config = { RouteMetric = 666; }; + dhcpV6Config = { RouteMetric = 666; }; + }; + "wlan-uplink" = { + matchConfig.Name = "wlan0"; + networkConfig = { + DHCP = "yes"; + IPv6AcceptRA = true; + }; + }; + }; + }