diff --git a/common/desktop.nix b/common/desktop.nix
index cf16871..ac6653b 100644
--- a/common/desktop.nix
+++ b/common/desktop.nix
@@ -15,32 +15,6 @@ in
   config = mkIf cfg.enable {
     environment.systemPackages = with pkgs; [ gnome-ssh-askpass4 ];
 
-    # Excluding some GNOME applications from the default install
-    environment.gnome.excludePackages = (
-      with pkgs;
-      [
-        atomix # puzzle game
-        baobab # disk usage analyzer
-        cheese # webcam tool
-        epiphany # web browser
-        geary # email reader
-        gnome-clocks
-        gnome-connections
-        gnome-disk-utility
-        gnome-logs
-        gnome-music
-        gnome-photos
-        gnome-terminal
-        gnome-tour
-        snapshot
-        hitori # sudoku game
-        iagno # go game
-        simple-scan
-        tali # poker game
-        yelp # help viewer
-      ]
-    );
-
     fonts = {
       fontDir.enable = true;
       fontconfig = {
@@ -76,21 +50,8 @@ in
       localNetworkGameTransfers.openFirewall = true;
     };
 
-    services.gnome.gnome-keyring.enable = true;
-
     services.printing.enable = true;
 
-    services.displayManager.defaultSession = "gnome";
-
-    services.xserver = {
-      enable = true;
-      displayManager.gdm.enable = true;
-      displayManager.gdm.autoSuspend = false;
-      desktopManager.gnome.enable = true;
-      xkb.layout = "se";
-      xkb.variant = "us";
-    };
-
     services.pulseaudio.enable = false;
     security.rtkit.enable = true;
     services.pipewire = {
diff --git a/common/laptop.nix b/common/laptop.nix
index 2e0d6da..cbdb8ae 100644
--- a/common/laptop.nix
+++ b/common/laptop.nix
@@ -12,8 +12,6 @@ in
   options.patagia.laptop.enable = mkEnableOption "Laptop tools and configuration";
 
   config = mkIf config.patagia.laptop.enable {
-    environment.systemPackages = with pkgs; [ gnomeExtensions.battery-health-charging ];
-
     services.fprintd.enable = true;
   };
 }
diff --git a/flake.lock b/flake.lock
index 7674623..67a082d 100644
--- a/flake.lock
+++ b/flake.lock
@@ -148,11 +148,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1745810134,
-        "narHash": "sha256-WfnYH/i7DFzn4SESQfWviXiNUZjohZhzODqLwKYHIPI=",
+        "lastModified": 1746040799,
+        "narHash": "sha256-osgPX/SzIpkR50vev/rqoTEAVkEcOWXoQXmbzsaI4KU=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "be7cf1709b469a2a2c62169172a167d1fed3509f",
+        "rev": "5f217e5a319f6c186283b530f8c975e66c028433",
         "type": "github"
       },
       "original": {
@@ -172,11 +172,11 @@
         "treefmt-nix": "treefmt-nix"
       },
       "locked": {
-        "lastModified": 1745798752,
-        "narHash": "sha256-0jiImtQNvlDqf0eWqWFGugNjhazNmaXMi2fM7/B/cd8=",
+        "lastModified": 1745993004,
+        "narHash": "sha256-Tz/mPxMwAMghdi3nYnppkl6j3H3LdcdbuvmJyQj11JU=",
         "owner": "nix-community",
         "repo": "neovim-nightly-overlay",
-        "rev": "31a7206bdf9e0c01db2165e20a6082690c60b9c9",
+        "rev": "5cde8950cf2fa3ef8edf9b0af0e0a020a5318565",
         "type": "github"
       },
       "original": {
@@ -188,11 +188,11 @@
     "neovim-src": {
       "flake": false,
       "locked": {
-        "lastModified": 1745795730,
-        "narHash": "sha256-7sPk1jScMqsTwXYYFKYILrE9xLk7CK+yCBqcK46HTv8=",
+        "lastModified": 1745965750,
+        "narHash": "sha256-GtRcW1p7hzFu7AK1JXJGY6bG/5Y7vb+1VX8uFGKdefM=",
         "owner": "neovim",
         "repo": "neovim",
-        "rev": "ce097c5091eab3550e1534fd111752577b5813ea",
+        "rev": "0ab0cdb2dabc551f836851aa85d06e927c42d92a",
         "type": "github"
       },
       "original": {
@@ -208,11 +208,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1745725746,
+        "lastModified": 1746054057,
         "narHash": "sha256-iR+idGZJ191cY6NBXyVjh9QH8GVWTkvZw/w+1Igy45A=",
         "owner": "nix-community",
         "repo": "nix-index-database",
-        "rev": "187524713d0d9b2d2c6f688b81835114d4c2a7c6",
+        "rev": "13ba07d54c6ccc5af30a501df669bf3fe3dd4db8",
         "type": "github"
       },
       "original": {
@@ -223,11 +223,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1745377448,
-        "narHash": "sha256-jhZDfXVKdD7TSEGgzFJQvEEZ2K65UMiqW5YJ2aIqxMA=",
+        "lastModified": 1745900683,
+        "narHash": "sha256-ZGi2gjgPtmPmplCVz7dNufqkBr00g6EeAloX3GrFQls=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "507b63021ada5fee621b6ca371c4fca9ca46f52c",
+        "rev": "ffa0bb043c25cfc79ff3bc20ba2e44c3724499b1",
         "type": "github"
       },
       "original": {
@@ -239,11 +239,11 @@
     },
     "nixpkgs-stable": {
       "locked": {
-        "lastModified": 1745742390,
-        "narHash": "sha256-1rqa/XPSJqJg21BKWjzJZC7yU0l/YTVtjRi0RJmipus=",
+        "lastModified": 1745921652,
+        "narHash": "sha256-hEAvEN+y/OQ7wA7+u3bFJwXSe8yoSf2QaOMH3hyTJTQ=",
         "owner": "nixos",
         "repo": "nixpkgs",
-        "rev": "26245db0cb552047418cfcef9a25da91b222d6c7",
+        "rev": "b000159bba69b0106a42f65e52dbf27f77aca9d3",
         "type": "github"
       },
       "original": {
@@ -255,11 +255,11 @@
     },
     "nixpkgs-unstable": {
       "locked": {
-        "lastModified": 1745377448,
-        "narHash": "sha256-jhZDfXVKdD7TSEGgzFJQvEEZ2K65UMiqW5YJ2aIqxMA=",
+        "lastModified": 1746029695,
+        "narHash": "sha256-ucaEphdH+3ANIprXcYiGoXfHGQol3c5G5f99R7RBU58=",
         "owner": "nixos",
         "repo": "nixpkgs",
-        "rev": "507b63021ada5fee621b6ca371c4fca9ca46f52c",
+        "rev": "70b191e2e0b1b5fe8586ad939dfa01f3047865f7",
         "type": "github"
       },
       "original": {
@@ -271,11 +271,11 @@
     },
     "nixpkgs_2": {
       "locked": {
-        "lastModified": 1745526057,
-        "narHash": "sha256-ITSpPDwvLBZBnPRS2bUcHY3gZSwis/uTe255QgMtTLA=",
+        "lastModified": 1745930157,
+        "narHash": "sha256-y3h3NLnzRSiUkYpnfvnS669zWZLoqqI6NprtLQ+5dck=",
         "owner": "nixos",
         "repo": "nixpkgs",
-        "rev": "f771eb401a46846c1aebd20552521b233dd7e18b",
+        "rev": "46e634be05ce9dc6d4db8e664515ba10b78151ae",
         "type": "github"
       },
       "original": {
@@ -303,11 +303,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1745780832,
-        "narHash": "sha256-jGzkZoJWx+nJnPe0Z2xQBUOqMKuR1slVFQrMjFTKgeM=",
+        "lastModified": 1745929750,
+        "narHash": "sha256-k5ELLpTwRP/OElcLpNaFWLNf8GRDq4/eHBmFy06gGko=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "b2b6c027d708fbf4b01c9c11f6e80f2800b5a624",
+        "rev": "82bf32e541b30080d94e46af13d46da0708609ea",
         "type": "github"
       },
       "original": {
diff --git a/home/common/default.nix b/home/common/default.nix
index c5112bd..dd870c9 100644
--- a/home/common/default.nix
+++ b/home/common/default.nix
@@ -6,8 +6,8 @@
     ./devel.nix
     ./fish.nix
     ./ghostty.nix
-    ./gnome.nix
     ./k8s.nix
+    ./niri.nix
     ./nix.nix
     ./nvim
     ./scripts.nix
diff --git a/home/common/gnome.nix b/home/common/gnome.nix
deleted file mode 100644
index c2e64a7..0000000
--- a/home/common/gnome.nix
+++ /dev/null
@@ -1,179 +0,0 @@
-{
-  config,
-  lib,
-  pkgs,
-  ...
-}:
-with lib.hm.gvariant;
-{
-  config = lib.mkIf config.patagia.desktop.enable {
-    home.packages = with pkgs; [
-      gnome-contacts
-      gnome-shell-extensions
-      gnome-tweaks
-      gnome-pomodoro
-      gnomeExtensions.desktop-clock
-      gnomeExtensions.emoji-copy
-      gnomeExtensions.just-perfection
-      gnomeExtensions.night-light-slider
-    ];
-
-    dconf.settings = {
-      "org/gnome/desktop/wm/keybindings" = {
-        close = [ "<Super>q" ];
-        toggle-on-all-workspaces = [ "<Super>s" ];
-        toggle-maximized = [ "<Super>m" ];
-        maximize-vertically = [ "<Super>Up" ];
-        minimize = [ "<Super>comma" ];
-        move-to-center = [ "<Super>c" ];
-        switch-applications = [ "<Super>Tab" ];
-        switch-group = [ "<Super>Above_Tab" ];
-        switch-windows = [ "<Alt>Tab" ];
-        move-to-workspace-1 = [ "<Shift>F1" ];
-        move-to-workspace-2 = [ "<Shift>F2" ];
-        move-to-workspace-3 = [ "<Shift>F3" ];
-        move-to-workspace-4 = [ "<Shift>F4" ];
-        move-to-workspace-5 = [ "<Shift>F5" ];
-        move-to-workspace-6 = [ "<Shift>F6" ];
-        move-to-workspace-7 = [ "<Shift>F7" ];
-        move-to-workspace-8 = [ "<Shift>F8" ];
-        move-to-workspace-9 = [ "<Shift>F9" ];
-        switch-to-workspace-1 = [ "F1" ];
-        switch-to-workspace-2 = [ "F2" ];
-        switch-to-workspace-3 = [ "F3" ];
-        switch-to-workspace-4 = [ "F4" ];
-        switch-to-workspace-5 = [ "F5" ];
-        switch-to-workspace-6 = [ "F6" ];
-        switch-to-workspace-7 = [ "F7" ];
-        switch-to-workspace-8 = [ "F8" ];
-        switch-to-workspace-9 = [ "F9" ];
-      };
-
-      "org/gnome/desktop/input-sources" = {
-        mru-sources = [
-          (mkTuple [
-            "xkb"
-            "us"
-          ])
-        ];
-        sources = [
-          (mkTuple [
-            "xkb"
-            "se+us"
-          ])
-        ];
-        xkb-options = [ "caps:ctrl_modifier" ];
-      };
-
-      "org/gnome/desktop/interface" = {
-        enable-animations = false;
-        enable-hot-corners = false;
-        show-battery-percentage = true;
-        font-name = "Inter Variable 11";
-        document-font-name = "Inter Variable 11";
-        monospace-font-name = "Berkeley Mono 11";
-        toolkit-accessibility = false;
-      };
-
-      "org/gnome/desktop/search-providers" = {
-        disabled = [
-          "org.gnome.Contacts.desktop"
-          "org.gnome.Nautilus.desktop"
-          "org.gnome.Calendar.desktop"
-          "org.gnome.clocks.desktop"
-          "org.gnome.Epiphany.desktop"
-        ];
-        sort-order = [
-          "org.gnome.Contacts.desktop"
-          "org.gnome.Documents.desktop"
-          "org.gnome.Nautilus.desktop"
-          "org.gnome.Settings.desktop"
-          "org.gnome.Calculator.desktop"
-          "org.gnome.Calendar.desktop"
-          "org.gnome.clocks.desktop"
-          "org.gnome.seahorse.Application.desktop"
-          "org.gnome.Weather.desktop"
-          "org.gnome.Characters.desktop"
-        ];
-      };
-
-      "org/gnome/desktop/wm/preferences" = {
-        focus-mode = "sloppy";
-        num-workspaces = 10;
-        resize-with-right-button = true;
-      };
-
-      "org/gnome/GWeather4" = {
-        temperature-unit = "centigrade";
-      };
-
-      "org/gnome/Weather" = {
-        locations = [
-          (mkVariant (mkTuple [
-            (mkUint32 2)
-            (mkVariant (mkTuple [
-              "Stockholm-Arlanda Airport"
-              "ESSA"
-              false
-              [
-                (mkTuple [
-                  1.0410888988146176
-                  0.31328660073298215
-                ])
-              ]
-              [
-                (mkTuple [
-                  1.0410888988146176
-                  0.31328660073298215
-                ])
-              ]
-            ]))
-          ]))
-        ];
-      };
-
-      "org/gnome/desktop/calendar" = {
-        show-weekdate = true;
-      };
-
-      "org/gnome/mutter" = {
-        center-new-windows = false;
-        edge-tiling = true;
-      };
-
-      "org/gnome/settings-daemon/plugins/color" = {
-        night-light-schedule-automatic = false;
-        night-light-schedule-from = 0.0;
-        night-light-schedule-to = 0.0;
-        night-light-temperature = mkUint32 3575;
-      };
-
-      "org/gnome/shell" = {
-        enabled-extensions = [
-          "emoji-copy@felipeftn"
-          "just-perfection-desktop@just-perfection"
-        ];
-      };
-
-      "org/gnome/shell/extensions/emoji-copy" = {
-        emoji-keybind = [ "<Super>e" ];
-      };
-
-      "org/gnome/shell/extensions/just-perfection" = {
-        animation = 0;
-        notification-banner-position = 2;
-        osd-position = 6;
-        panel = false;
-        panel-in-overview = true;
-        startup-status = 0;
-        switcher-popup-delay = false;
-        top-panel-position = 0;
-      };
-
-      "org/gnome/tweaks" = {
-        show-extensions-notice = false;
-      };
-
-    };
-  };
-}
diff --git a/home/common/niri.nix b/home/common/niri.nix
new file mode 100644
index 0000000..5d3810a
--- /dev/null
+++ b/home/common/niri.nix
@@ -0,0 +1,64 @@
+{
+  user,
+  lib,
+  pkgs,
+  inputs',
+  ...
+}:
+{
+  programs.niri = {
+    enable = true;
+  };
+
+  services.greetd = {
+    enable = true;
+    vt = 2;
+    settings = rec {
+      initial_session = {
+        command = "${lib.getExe pkgs.greetd.tuigreet} --remember --time --cmd ${lib.getExe' pkgs.niri "niri-session"}";
+        inherit user;
+      };
+      default_session = initial_session;
+    };
+  };
+
+  systemd.user = {
+    services = {
+      swaybg = {
+        wantedBy = [ "niri.service" ];
+        wants = [ "graphical-session.target" ];
+        after = [ "graphical-session.target" ];
+        serviceConfig = {
+          ExecStart =
+            let
+              img = pkgs.fetchurl {
+                url = "https://s3.nyaw.xyz/misskey//92772482-aef9-44e8-b1e2-1d49753a72fc.jpg";
+                hash = "sha256-Y9TJ/xQQhqWq3t2wn1gS4NPGpuz1m7nu1ATcWWPKPW8=";
+              };
+            in
+            "${lib.getExe pkgs.swaybg} -i ${img} -m fill";
+          Restart = "on-failure";
+        };
+      };
+      waybar = {
+        wantedBy = [ "niri.service" ];
+        wants = [ "graphical-session.target" ];
+        after = [ "graphical-session.target" ];
+        # path = [ (lib.makeBinPath [ pkgs.niri ]) ];
+        serviceConfig = {
+          ExecStart = lib.getExe pkgs.waybar;
+          Restart = "on-failure";
+        };
+      };
+      xwayland-satellite = {
+        wantedBy = [ "niri.service" ];
+        after = [ "graphical-session.target" ];
+        wants = [ "graphical-session.target" ];
+        serviceConfig = {
+          ExecStart = lib.getExe pkgs.xwayland-satellite;
+          Restart = "on-failure";
+        };
+      };
+    };
+  };
+}