diff --git a/flake.lock b/flake.lock
index 357df38..94cff23 100644
--- a/flake.lock
+++ b/flake.lock
@@ -224,6 +224,26 @@
         "type": "github"
       }
     },
+    "home-manager": {
+      "inputs": {
+        "nixpkgs": [
+          "nixpkgs-unstable"
+        ]
+      },
+      "locked": {
+        "lastModified": 1749999552,
+        "narHash": "sha256-iCUuEq9qXUh8L1c2bRyCayAqfuUEs9nGAUlXv2RcoF8=",
+        "owner": "nix-community",
+        "repo": "home-manager",
+        "rev": "04672588c61aebd18c0d0ada66dd7bb4d8edab0d",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nix-community",
+        "repo": "home-manager",
+        "type": "github"
+      }
+    },
     "lanzaboote": {
       "inputs": {
         "crane": "crane",
@@ -253,11 +273,11 @@
     "lix": {
       "flake": false,
       "locked": {
-        "lastModified": 1749838547,
-        "narHash": "sha256-4qJy0n+6P13/XAHPlcjcWK6MDNYd38PkFdI8iCiJYYo=",
-        "rev": "1e34c3747779a82d59ef27b351d4ed02fb372a2a",
+        "lastModified": 1749996528,
+        "narHash": "sha256-60avE6oxLzasJr+/tFdhInEUUEF3FZ9uHofTUq4MZ1o=",
+        "rev": "7453e2979f1d4684bea4cb340f23c089ea0d5a90",
         "type": "tarball",
-        "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/1e34c3747779a82d59ef27b351d4ed02fb372a2a.tar.gz?rev=1e34c3747779a82d59ef27b351d4ed02fb372a2a"
+        "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/7453e2979f1d4684bea4cb340f23c089ea0d5a90.tar.gz?rev=7453e2979f1d4684bea4cb340f23c089ea0d5a90"
       },
       "original": {
         "type": "tarball",
@@ -418,11 +438,11 @@
     },
     "nixpkgs_2": {
       "locked": {
-        "lastModified": 1749727998,
-        "narHash": "sha256-mHv/yeUbmL91/TvV95p+mBVahm9mdQMJoqaTVTALaFw=",
+        "lastModified": 1749857119,
+        "narHash": "sha256-tG5xUn3hFaPpAHYIvr2F88b+ovcIO5k1HqajFy7ZFPM=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "fd487183437963a59ba763c0cc4f27e3447dd6dd",
+        "rev": "5f4f306bea96741f1588ea4f450b2a2e29f42b98",
         "type": "github"
       },
       "original": {
@@ -513,6 +533,7 @@
       "inputs": {
         "authentik-nix": "authentik-nix",
         "flake-utils": "flake-utils_2",
+        "home-manager": "home-manager",
         "lanzaboote": "lanzaboote",
         "lix": "lix",
         "lix-module": "lix-module",
diff --git a/flake.nix b/flake.nix
index 0c04048..41d69a7 100644
--- a/flake.nix
+++ b/flake.nix
@@ -46,6 +46,11 @@
       inputs.flake-utils.follows = "flake-utils";
     };
 
+    home-manager = {
+      url = "github:nix-community/home-manager";
+      inputs.nixpkgs.follows = "nixpkgs-unstable";
+    };
+
     tmux-yank = {
       url = "github:tmux-plugins/tmux-yank";
       flake = false;
@@ -54,6 +59,7 @@
 
   outputs =
     inputs@{
+      home-manager,
       lanzaboote,
       lix-module,
       microvm,
@@ -114,6 +120,13 @@
               nixos-hardware.nixosModules.lenovo-thinkpad-t14-amd-gen3
               lix-module.nixosModules.default
 
+              home-manager.nixosModules.home-manager
+              {
+                home-manager.useGlobalPkgs = true;
+                home-manager.useUserPackages = true;
+                home-manager.users."0xa" = import ./hosts/toaster/0xa-home.nix;
+              }
+
               ./hosts/toaster
 
               ./modules/basic-tools
@@ -122,7 +135,7 @@
               ./modules/emacs.nix
               ./modules/gnupg.nix
               ./modules/mail
-              ./modules/gnome.nix
+              ./modules/niri.nix
               ./modules/radio.nix
               ./modules/science.nix
               ./modules/tlp.nix
diff --git a/hosts/toaster/default.nix b/hosts/toaster/default.nix
index 7e78114..17cedf6 100644
--- a/hosts/toaster/default.nix
+++ b/hosts/toaster/default.nix
@@ -4,7 +4,7 @@
     ./amd.nix
     ./hardware-configuration.nix
     ./irc.nix
-    ./network
+    ./network/full-networkd.nix
     ./secure-boot.nix
     ./zfs.nix
   ];
@@ -66,7 +66,7 @@
     home = "/home/0xa";
     isNormalUser = true;
     uid = 1000;
-    shell = pkgs.fish;
+    shell = pkgs.zsh;
   };
 
   # This value determines the NixOS release from which the default
diff --git a/modules/basic-tools/default.nix b/modules/basic-tools/default.nix
index a917168..024547c 100644
--- a/modules/basic-tools/default.nix
+++ b/modules/basic-tools/default.nix
@@ -7,7 +7,6 @@
     ./nix.nix
     ./nix-ld.nix
     ./zsh.nix
-    ./fish.nix
   ];
 
   environment.systemPackages =
@@ -81,7 +80,6 @@
     vim = "nvim";
     grep = "grep --color=auto";
   };
-  users.defaultUserShell = pkgs.zsh; # keep root shell posix compatible
 
   programs.iftop.enable = true;
   programs.mosh.enable = true;
diff --git a/modules/niri.nix b/modules/niri.nix
index e769189..1c661e5 100644
--- a/modules/niri.nix
+++ b/modules/niri.nix
@@ -1,8 +1,5 @@
-# General Desktop-related config
-{ pkgs, inputs, ... }:
+{ pkgs, ... }:
 {
-  nixpkgs.overlays = [ inputs.niri.overlays.niri ];
-
   programs.niri.enable = true;
 
   imports = [
@@ -10,24 +7,6 @@
     ./fonts.nix
   ];
   environment.systemPackages =
-    let
-      xwayland-satellite-git = pkgs.xwayland-satellite.overrideAttrs (
-        final: _prev: {
-          version = "git";
-          cargoHash = "sha256-MaF2FyR3HvQAKkZKa8OO/5jbO64/Ncv7+JqHda4jN50=";
-          src = pkgs.fetchFromGitHub {
-            owner = "Supreeeme";
-            repo = "xwayland-satellite";
-            rev = "cca74a5f6b23742d77dc5db4312dfc40fd4a0fcc";
-            sha256 = "sha256-YZ+axsuNsgIKWfnRkt6Qa9UoKfUOIWf42vNUonXxmxM=";
-          };
-          cargoDeps = pkgs.rustPlatform.fetchCargoTarball {
-            inherit (final) pname src version;
-            hash = final.cargoHash;
-          };
-        }
-      );
-    in
     with pkgs;
     [
       screen-message
@@ -67,7 +46,7 @@
       mako
       swww
       oculante
-      xwayland-satellite-git
+      xwayland-satellite
     ];
 
   # Enable sound.
@@ -127,7 +106,7 @@
     enable = true;
     settings = {
       default_session = {
-        command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --greeting \"$(${pkgs.fortune}/bin/fortune -s)\" --cmd ${pkgs.niri-stable}/bin/niri-session";
+        command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --greeting \"$(${pkgs.fortune}/bin/fortune -s)\" --cmd ${pkgs.niri}/bin/niri-session";
       };
     };
   };
diff --git a/modules/server/default.nix b/modules/server/default.nix
index 6122bfa..5aa2a77 100644
--- a/modules/server/default.nix
+++ b/modules/server/default.nix
@@ -19,5 +19,6 @@
     home = "/home/0xa";
     isNormalUser = true;
     uid = 1000;
+    shell = pkgs.zsh;
   };
 }