diff --git a/modules/nixos/archetypes/default.nix b/modules/nixos/archetypes/default.nix
new file mode 100644
index 000000000..b041adaf9
--- /dev/null
+++ b/modules/nixos/archetypes/default.nix
@@ -0,0 +1,10 @@
+{
+  imports = [
+    ./gaming
+    ./personal
+    ./server
+    ./vm
+    ./workstation
+    ./wsl
+  ];
+}
diff --git a/modules/nixos/display-managers/default.nix b/modules/nixos/display-managers/default.nix
new file mode 100644
index 000000000..37bdee1b4
--- /dev/null
+++ b/modules/nixos/display-managers/default.nix
@@ -0,0 +1,9 @@
+{
+  imports = [
+    ./gdm
+    ./lightdm
+    ./regreet
+    ./sddm
+    ./tuigreet
+  ];
+}
diff --git a/modules/nixos/hardware/default.nix b/modules/nixos/hardware/default.nix
new file mode 100644
index 000000000..ae05f311e
--- /dev/null
+++ b/modules/nixos/hardware/default.nix
@@ -0,0 +1,15 @@
+{
+  imports = [
+    ./audio
+    ./bluetooth
+    ./cpu
+    ./fingerprint
+    ./gpu
+    ./opengl
+    ./power
+    ./rgb
+    ./storage
+    ./tpm
+    ./yubikey
+  ];
+}
diff --git a/modules/nixos/programs/default.nix b/modules/nixos/programs/default.nix
new file mode 100644
index 000000000..35abed499
--- /dev/null
+++ b/modules/nixos/programs/default.nix
@@ -0,0 +1,6 @@
+{
+  imports = [
+    ./graphical
+    ./terminal
+  ];
+}
diff --git a/modules/nixos/security/default.nix b/modules/nixos/security/default.nix
new file mode 100644
index 000000000..5d0aaa0a2
--- /dev/null
+++ b/modules/nixos/security/default.nix
@@ -0,0 +1,16 @@
+{
+  imports = [
+    ./acme
+    ./auditd
+    ./clamav
+    ./doas
+    ./gpg
+    ./keyring
+    ./pam
+    ./polkit
+    ./sops
+    ./sudo
+    ./sudo-rs
+    ./usbguard
+  ];
+}
diff --git a/modules/nixos/services/default.nix b/modules/nixos/services/default.nix
new file mode 100644
index 000000000..964b8a4d1
--- /dev/null
+++ b/modules/nixos/services/default.nix
@@ -0,0 +1,25 @@
+{
+  imports = [
+    ./avahi
+    ./cloudflared
+    ./dbus
+    ./ddc
+    ./earlyoom
+    ./flatpak
+    ./geoclue
+    ./logind
+    ./logrotate
+    ./oomd
+    ./openssh
+    ./power
+    ./printing
+    ./rustdesk-server
+    ./samba
+    ./seatd
+    ./snapper
+    ./spice-vdagentd
+    ./spice-webdav
+    ./tailscale
+    ./udisks2
+  ];
+}
diff --git a/modules/nixos/suites/default.nix b/modules/nixos/suites/default.nix
new file mode 100644
index 000000000..a8070cecd
--- /dev/null
+++ b/modules/nixos/suites/default.nix
@@ -0,0 +1,11 @@
+{
+  imports = [
+    ./common
+    ./desktop
+    ./development
+    ./games
+    ./video
+    ./vm
+    ./wlroots
+  ];
+}
diff --git a/modules/nixos/system/default.nix b/modules/nixos/system/default.nix
new file mode 100644
index 000000000..00c29725c
--- /dev/null
+++ b/modules/nixos/system/default.nix
@@ -0,0 +1,12 @@
+{
+  imports = [
+    ./boot
+    ./env
+    ./fonts
+    ./locale
+    ./networking
+    ./realtime
+    ./time
+    ./xkb
+  ];
+}
diff --git a/modules/nixos/theme/default.nix b/modules/nixos/theme/default.nix
index 9a6bb8fae..d25a48035 100644
--- a/modules/nixos/theme/default.nix
+++ b/modules/nixos/theme/default.nix
@@ -40,6 +40,11 @@ let
   ];
 in
 {
+  imports = [
+    ./gtk
+    ./qt
+  ];
+
   # TODO: consolidate home-manager and nixos module
   options.khanelinix.theme = {
     enable = mkEnableOption "Enable custom theme use for applications.";
diff --git a/modules/nixos/virtualisation/default.nix b/modules/nixos/virtualisation/default.nix
new file mode 100644
index 000000000..bf5893d3a
--- /dev/null
+++ b/modules/nixos/virtualisation/default.nix
@@ -0,0 +1,6 @@
+{
+  imports = [
+    ./kvm
+    ./podman
+  ];
+}