diff --git a/nix/home/opdavies/hosts/t490.nix b/nix/home/opdavies/hosts/t490.nix
index fe3624a7..ea31dbb0 100644
--- a/nix/home/opdavies/hosts/t490.nix
+++ b/nix/home/opdavies/hosts/t490.nix
@@ -18,6 +18,7 @@
     desktop = {
       copyq.enable = true;
       discord.enable = true;
+      dwm.enable = true;
       espanso.enable = true;
       flameshot.enable = true;
       gtk.enable = true;
diff --git a/nix/modules/home-manager/features/desktop/default.nix b/nix/modules/home-manager/features/desktop/default.nix
index d619f058..5da8fd3c 100644
--- a/nix/modules/home-manager/features/desktop/default.nix
+++ b/nix/modules/home-manager/features/desktop/default.nix
@@ -2,6 +2,7 @@
   imports = [
     ./copyq.nix
     ./discord.nix
+    ./dwm.nix
     ./espanso.nix
     ./flameshot.nix
     ./gtk.nix
diff --git a/nix/modules/home-manager/features/desktop/dwm.nix b/nix/modules/home-manager/features/desktop/dwm.nix
new file mode 100644
index 00000000..f427e2a7
--- /dev/null
+++ b/nix/modules/home-manager/features/desktop/dwm.nix
@@ -0,0 +1,26 @@
+{
+  config,
+  lib,
+  pkgs,
+  ...
+}:
+
+with lib;
+
+{
+  options.features.desktop.dwm.enable = mkEnableOption "Enable dwm";
+
+  config = mkIf config.features.desktop.dwm.enable {
+    home.file.".xinitrc".text = ''
+      systemctl --user import-environment DISPLAY
+
+      ${pkgs.autorandr}/bin/autorandr --change
+
+      ${pkgs.copyq}/bin/copyq &
+
+      systemctl --user start dwm-status &
+
+      exec ${pkgs.dwm}/bin/dwm
+    '';
+  };
+}