diff --git a/flake.lock b/flake.lock
index 0573d5d..7889ed4 100644
--- a/flake.lock
+++ b/flake.lock
@@ -224,26 +224,6 @@
         "type": "github"
       }
     },
-    "home-manager": {
-      "inputs": {
-        "nixpkgs": [
-          "nixpkgs-unstable"
-        ]
-      },
-      "locked": {
-        "lastModified": 1742588233,
-        "narHash": "sha256-Fi5g8H5FXMSRqy+mU6gPG0v+C9pzjYbkkiePtz8+PpA=",
-        "owner": "nix-community",
-        "repo": "home-manager",
-        "rev": "296ddc64627f4a6a4eb447852d7346b9dd16197d",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nix-community",
-        "repo": "home-manager",
-        "type": "github"
-      }
-    },
     "lanzaboote": {
       "inputs": {
         "crane": "crane",
@@ -358,65 +338,6 @@
         "type": "github"
       }
     },
-    "niri": {
-      "inputs": {
-        "niri-stable": "niri-stable",
-        "niri-unstable": "niri-unstable",
-        "nixpkgs": [
-          "nixpkgs-unstable"
-        ],
-        "nixpkgs-stable": "nixpkgs-stable_2",
-        "xwayland-satellite-stable": "xwayland-satellite-stable",
-        "xwayland-satellite-unstable": "xwayland-satellite-unstable"
-      },
-      "locked": {
-        "lastModified": 1742643921,
-        "narHash": "sha256-tt6FIFIfOHcgKxi6fBD4RxIk3JoYF2WNpVE9jLWT7eI=",
-        "owner": "sodiboo",
-        "repo": "niri-flake",
-        "rev": "ecd613c125c16295b52bb52f3687c5538b7d95ff",
-        "type": "github"
-      },
-      "original": {
-        "owner": "sodiboo",
-        "ref": "main",
-        "repo": "niri-flake",
-        "type": "github"
-      }
-    },
-    "niri-stable": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1740117926,
-        "narHash": "sha256-mTTHA0RAaQcdYe+9A3Jx77cmmyLFHmRoZdd8RpWa+m8=",
-        "owner": "YaLTeR",
-        "repo": "niri",
-        "rev": "b94a5db8790339cf9134873d8b490be69e02ac71",
-        "type": "github"
-      },
-      "original": {
-        "owner": "YaLTeR",
-        "ref": "v25.02",
-        "repo": "niri",
-        "type": "github"
-      }
-    },
-    "niri-unstable": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1742641057,
-        "narHash": "sha256-+OhtlQPNOKmwK6YtAaXPu42jXe3ufi7hny78N8dqDKA=",
-        "owner": "YaLTeR",
-        "repo": "niri",
-        "rev": "ed20822ce947198e4106698d7afffd0a832a7b3c",
-        "type": "github"
-      },
-      "original": {
-        "owner": "YaLTeR",
-        "repo": "niri",
-        "type": "github"
-      }
-    },
     "nix-github-actions": {
       "inputs": {
         "nixpkgs": [
@@ -499,22 +420,6 @@
         "type": "github"
       }
     },
-    "nixpkgs-stable_2": {
-      "locked": {
-        "lastModified": 1742512142,
-        "narHash": "sha256-8XfURTDxOm6+33swQJu/hx6xw1Tznl8vJJN5HwVqckg=",
-        "owner": "NixOS",
-        "repo": "nixpkgs",
-        "rev": "7105ae3957700a9646cc4b766f5815b23ed0c682",
-        "type": "github"
-      },
-      "original": {
-        "owner": "NixOS",
-        "ref": "nixos-24.11",
-        "repo": "nixpkgs",
-        "type": "github"
-      }
-    },
     "nixpkgs-unstable": {
       "locked": {
         "lastModified": 1742422364,
@@ -593,12 +498,10 @@
       "inputs": {
         "authentik-nix": "authentik-nix",
         "flake-utils": "flake-utils_2",
-        "home-manager": "home-manager",
         "lanzaboote": "lanzaboote",
         "lix": "lix",
         "lix-module": "lix-module",
         "microvm": "microvm",
-        "niri": "niri",
         "nixos-hardware": "nixos-hardware",
         "nixpkgs": "nixpkgs",
         "nixpkgs-unstable": "nixpkgs-unstable",
@@ -770,39 +673,6 @@
         "type": "git",
         "url": "https://git.oxapentane.com/0xa/website.git"
       }
-    },
-    "xwayland-satellite-stable": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1739246919,
-        "narHash": "sha256-/hBM43/Gd0/tW+egrhlWgOIISeJxEs2uAOIYVpfDKeU=",
-        "owner": "Supreeeme",
-        "repo": "xwayland-satellite",
-        "rev": "44590a416d4a3e8220e19e29e0b6efe64a80315d",
-        "type": "github"
-      },
-      "original": {
-        "owner": "Supreeeme",
-        "ref": "v0.5.1",
-        "repo": "xwayland-satellite",
-        "type": "github"
-      }
-    },
-    "xwayland-satellite-unstable": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1742475924,
-        "narHash": "sha256-xe3tfHp1aisnUVrCbn1axwpeJzcrSOvQNn1bZt6k5DM=",
-        "owner": "Supreeeme",
-        "repo": "xwayland-satellite",
-        "rev": "1d98ee089c8bad414a346028a7a0f539ad7cfb9d",
-        "type": "github"
-      },
-      "original": {
-        "owner": "Supreeeme",
-        "repo": "xwayland-satellite",
-        "type": "github"
-      }
     }
   },
   "root": "root",
diff --git a/flake.nix b/flake.nix
index d355e32..47d5d29 100644
--- a/flake.nix
+++ b/flake.nix
@@ -47,16 +47,6 @@
       inputs.flake-utils.follows = "flake-utils";
     };
 
-    home-manager = {
-      url = "github:nix-community/home-manager";
-      inputs.nixpkgs.follows = "nixpkgs-unstable";
-    };
-
-    niri = {
-      url = "github:sodiboo/niri-flake/main";
-      inputs.nixpkgs.follows = "nixpkgs-unstable";
-    };
-
     tmux-yank = {
       url = "github:tmux-plugins/tmux-yank";
       flake = false;
@@ -66,11 +56,9 @@
   outputs =
     inputs@{
       authentik-nix,
-      home-manager,
       lanzaboote,
       lix-module,
       microvm,
-      niri,
       nixos-hardware,
       nixpkgs,
       nixpkgs-unstable,
@@ -118,20 +106,13 @@
               lanzaboote.nixosModules.lanzaboote
               nixos-hardware.nixosModules.lenovo-thinkpad-t14-amd-gen3
               lix-module.nixosModules.default
-              home-manager.nixosModules.home-manager
-              niri.nixosModules.niri
-              {
-                home-manager.useGlobalPkgs = true;
-                home-manager.useUserPackages = true;
-                home-manager.users."0xa" = import ./hosts/toaster/0xa-home.nix;
-              }
 
               ./hosts/toaster
 
               ./modules/basic-tools
               ./modules/binary-caches.nix
               ./modules/devtools.nix
-              ./modules/niri.nix
+              ./modules/gnome.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 ee0bdbe..6d96c3c 100644
--- a/hosts/toaster/network/default.nix
+++ b/hosts/toaster/network/default.nix
@@ -1,4 +1,4 @@
-{ lib, pkgs, ... }:
+{ lib, config, ... }:
 {
   imports = [
     ./mullvad.nix
@@ -6,21 +6,26 @@
     ./zw.nix
   ];
 
-  environment.systemPackages = with pkgs; [
-    iwgtk
-    impala
-  ];
+  # 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;
 
-  # kick out networkmanager
-  networking.networkmanager.enable = lib.mkForce false;
-  networking.useNetworkd = true;
-  systemd.network.enable = true;
+  systemd.network = {
+    enable = true;
+    wait-online.enable = false; # uplink is managed by networkmanager
+  };
+
+  users.users."0xa".extraGroups = [ "networkmanager" ];
 
   networking = {
     hostName = "toaster";
     firewall.enable = true;
     wireguard.enable = true;
-    wireless.iwd.enable = true;
   };
 
   services.resolved = {
@@ -34,38 +39,4 @@
     ];
   };
 
-  # 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;
-      };
-    };
-  };
-
 }
diff --git a/hosts/toaster/network/full-networkd.nix b/hosts/toaster/network/full-networkd.nix
new file mode 100644
index 0000000..ee0bdbe
--- /dev/null
+++ b/hosts/toaster/network/full-networkd.nix
@@ -0,0 +1,71 @@
+{ lib, pkgs, ... }:
+{
+  imports = [
+    ./mullvad.nix
+    ./dumpdvb.nix
+    ./zw.nix
+  ];
+
+  environment.systemPackages = with pkgs; [
+    iwgtk
+    impala
+  ];
+
+  # 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";
+    fallbackDns = [
+      "9.9.9.9"
+      "2620:fe::fe"
+      "149.112.112.112"
+      "2620:fe::9"
+    ];
+  };
+
+  # 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;
+      };
+    };
+  };
+
+}