From 350c94af3c9f9dd228302d5e7f8a867667d25b15 Mon Sep 17 00:00:00 2001
From: Noah Masur <7386960+nmasur@users.noreply.github.com>
Date: Sat, 8 Mar 2025 10:26:26 -0500
Subject: [PATCH] repo cleanup

---
 flake.lock                             | 261 -------------------------
 flake.nix                              | 160 +++++++--------
 hosts/README.md                        |  26 ---
 hosts/darwin/lookingglass/default.nix  |  39 ----
 hosts/default.nix                      |  33 ----
 hosts/nixos/flame/default.nix          |  75 -------
 hosts/nixos/swan/default.nix           |  92 ---------
 hosts/nixos/tempest/default.nix        | 117 -----------
 overlays/neovim-plugins.nix            |  30 +--
 templates/{basic => default}/flake.nix |   0
 10 files changed, 84 insertions(+), 749 deletions(-)
 delete mode 100644 hosts/README.md
 delete mode 100644 hosts/darwin/lookingglass/default.nix
 delete mode 100644 hosts/default.nix
 delete mode 100644 hosts/nixos/flame/default.nix
 delete mode 100644 hosts/nixos/swan/default.nix
 delete mode 100644 hosts/nixos/tempest/default.nix
 rename templates/{basic => default}/flake.nix (100%)

diff --git a/flake.lock b/flake.lock
index d292107..f7ae74a 100644
--- a/flake.lock
+++ b/flake.lock
@@ -1,54 +1,5 @@
 {
   "nodes": {
-    "baleia-nvim-src": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1721805312,
-        "narHash": "sha256-qA1x5kplP2I8bURO0I4R0gt/zeznu9hQQ+XHptLGuwc=",
-        "owner": "m00qek",
-        "repo": "baleia.nvim",
-        "rev": "1b25eac3ac03659c3d3af75c7455e179e5f197f7",
-        "type": "github"
-      },
-      "original": {
-        "owner": "m00qek",
-        "repo": "baleia.nvim",
-        "type": "github"
-      }
-    },
-    "base16-nvim-src": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1740184667,
-        "narHash": "sha256-r7JPksjINhisViWIAXZJphDQKoPtFBB/vVnkA45r1/w=",
-        "owner": "RRethy",
-        "repo": "base16-nvim",
-        "rev": "3f13e15c53ea2aaf79c24ceab725309d87f0619c",
-        "type": "github"
-      },
-      "original": {
-        "owner": "RRethy",
-        "repo": "base16-nvim",
-        "type": "github"
-      }
-    },
-    "bufferline-nvim-src": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1716555412,
-        "narHash": "sha256-8PCkY1zrlMrPGnQOb7MjqDXNlkeX46jrT4ScIL+MOwM=",
-        "owner": "akinsho",
-        "repo": "bufferline.nvim",
-        "rev": "99337f63f0a3c3ab9519f3d1da7618ca4f91cffe",
-        "type": "github"
-      },
-      "original": {
-        "owner": "akinsho",
-        "ref": "v4.6.1",
-        "repo": "bufferline.nvim",
-        "type": "github"
-      }
-    },
     "cl-nix-lite": {
       "locked": {
         "lastModified": 1728174978,
@@ -64,22 +15,6 @@
         "type": "github"
       }
     },
-    "cmp-nvim-lsp-src": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1733823748,
-        "narHash": "sha256-iaihXNCF5bB5MdeoosD/kc3QtpA/QaIDZVLiLIurBSM=",
-        "owner": "hrsh7th",
-        "repo": "cmp-nvim-lsp",
-        "rev": "99290b3ec1322070bcfb9e846450a46f6efa50f0",
-        "type": "github"
-      },
-      "original": {
-        "owner": "hrsh7th",
-        "repo": "cmp-nvim-lsp",
-        "type": "github"
-      }
-    },
     "darwin": {
       "inputs": {
         "nixpkgs": [
@@ -121,23 +56,6 @@
         "type": "github"
       }
     },
-    "fidget-nvim-src": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1716093309,
-        "narHash": "sha256-Gpk/G0ByOAIE8uX4Xr94CvAjJBSJMEOwBuvrhmYYGsg=",
-        "owner": "j-hui",
-        "repo": "fidget.nvim",
-        "rev": "ef99df04a1c53a453602421bc0f756997edc8289",
-        "type": "github"
-      },
-      "original": {
-        "owner": "j-hui",
-        "ref": "v1.4.5",
-        "repo": "fidget.nvim",
-        "type": "github"
-      }
-    },
     "flake-compat": {
       "flake": false,
       "locked": {
@@ -230,22 +148,6 @@
         "type": "github"
       }
     },
-    "hmts-nvim-src": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1729786258,
-        "narHash": "sha256-V5dwIJdxBulFVKk1iSlf4H5NRz1UH7uYQeMvwtgkpIs=",
-        "owner": "calops",
-        "repo": "hmts.nvim",
-        "rev": "c7ff4c3ad96cd05664b18fb5bbbe2abbd7682dd2",
-        "type": "github"
-      },
-      "original": {
-        "owner": "calops",
-        "repo": "hmts.nvim",
-        "type": "github"
-      }
-    },
     "home-manager": {
       "inputs": {
         "nixpkgs": [
@@ -454,82 +356,10 @@
         "type": "github"
       }
     },
-    "nvim-lint-src": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1738838825,
-        "narHash": "sha256-E/KcQr4RM4gz+ItENI9e7hMicyBKyzoIaDO5D1VDYSw=",
-        "owner": "mfussenegger",
-        "repo": "nvim-lint",
-        "rev": "6e9dd545a1af204c4022a8fcd99727ea41ffdcc8",
-        "type": "github"
-      },
-      "original": {
-        "owner": "mfussenegger",
-        "repo": "nvim-lint",
-        "type": "github"
-      }
-    },
-    "nvim-lspconfig-src": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1716281382,
-        "narHash": "sha256-foJ7a59N0a3QaBW24PtwbyYDQVlIsFxiatADLO/hQvc=",
-        "owner": "neovim",
-        "repo": "nvim-lspconfig",
-        "rev": "0b8165cf95806bc4bb8f745bb0c92021b2ed4b98",
-        "type": "github"
-      },
-      "original": {
-        "owner": "neovim",
-        "ref": "v0.1.8",
-        "repo": "nvim-lspconfig",
-        "type": "github"
-      }
-    },
-    "nvim-tree-lua-src": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1740787655,
-        "narHash": "sha256-KSrY1K64yC6dPDd3DF15bVWs2N7B0BPS9enfmJgTzC4=",
-        "owner": "kyazdani42",
-        "repo": "nvim-tree.lua",
-        "rev": "c09ff35de503a41fa62465c6b4ae72d96e7a7ce4",
-        "type": "github"
-      },
-      "original": {
-        "owner": "kyazdani42",
-        "repo": "nvim-tree.lua",
-        "type": "github"
-      }
-    },
-    "nvim-treesitter-src": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1705679158,
-        "narHash": "sha256-zAyiitJIgOCZTB0CmgNt0MHENM70SOHLIoWrVwOJKFg=",
-        "owner": "nvim-treesitter",
-        "repo": "nvim-treesitter",
-        "rev": "f197a15b0d1e8d555263af20add51450e5aaa1f0",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nvim-treesitter",
-        "ref": "v0.9.2",
-        "repo": "nvim-treesitter",
-        "type": "github"
-      }
-    },
     "root": {
       "inputs": {
-        "baleia-nvim-src": "baleia-nvim-src",
-        "base16-nvim-src": "base16-nvim-src",
-        "bufferline-nvim-src": "bufferline-nvim-src",
-        "cmp-nvim-lsp-src": "cmp-nvim-lsp-src",
         "darwin": "darwin",
         "disko": "disko",
-        "fidget-nvim-src": "fidget-nvim-src",
-        "hmts-nvim-src": "hmts-nvim-src",
         "home-manager": "home-manager",
         "mac-app-util": "mac-app-util",
         "nextcloud-cookbook": "nextcloud-cookbook",
@@ -541,15 +371,6 @@
         "nixpkgs": "nixpkgs",
         "nixpkgs-stable": "nixpkgs-stable",
         "nur": "nur",
-        "nvim-lint-src": "nvim-lint-src",
-        "nvim-lspconfig-src": "nvim-lspconfig-src",
-        "nvim-tree-lua-src": "nvim-tree-lua-src",
-        "nvim-treesitter-src": "nvim-treesitter-src",
-        "snipe-nvim-src": "snipe-nvim-src",
-        "telescope-nvim-src": "telescope-nvim-src",
-        "telescope-project-nvim-src": "telescope-project-nvim-src",
-        "tiny-inline-diagnostic-nvim-src": "tiny-inline-diagnostic-nvim-src",
-        "toggleterm-nvim-src": "toggleterm-nvim-src",
         "tree-sitter-bash": "tree-sitter-bash",
         "tree-sitter-ini": "tree-sitter-ini",
         "tree-sitter-lua": "tree-sitter-lua",
@@ -561,22 +382,6 @@
         "zenyd-mpv-scripts": "zenyd-mpv-scripts"
       }
     },
-    "snipe-nvim-src": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1740838551,
-        "narHash": "sha256-KbZuHll6VFcdSAC9fBLVfTnympKveDaiSoxZOt3GMJQ=",
-        "owner": "leath-dub",
-        "repo": "snipe.nvim",
-        "rev": "f43a1f0090de03d48ce5c55df630c1aa4d0b4291",
-        "type": "github"
-      },
-      "original": {
-        "owner": "leath-dub",
-        "repo": "snipe.nvim",
-        "type": "github"
-      }
-    },
     "systems": {
       "locked": {
         "lastModified": 1689347925,
@@ -607,72 +412,6 @@
         "type": "github"
       }
     },
-    "telescope-nvim-src": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1716532947,
-        "narHash": "sha256-e1ulhc4IIvUgpjKQrSqPY4WpXuez6wlxL6Min9U0o5Q=",
-        "owner": "nvim-telescope",
-        "repo": "telescope.nvim",
-        "rev": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nvim-telescope",
-        "ref": "0.1.8",
-        "repo": "telescope.nvim",
-        "type": "github"
-      }
-    },
-    "telescope-project-nvim-src": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1740138545,
-        "narHash": "sha256-a8eKjkn73Ki0Z4XWZLsxDSFWwPQJ6Ks3ZD2ClRgk/JY=",
-        "owner": "nvim-telescope",
-        "repo": "telescope-project.nvim",
-        "rev": "ce2c9fe209a68c7a924acde42d94ed8a2b2a52c5",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nvim-telescope",
-        "repo": "telescope-project.nvim",
-        "type": "github"
-      }
-    },
-    "tiny-inline-diagnostic-nvim-src": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1740730693,
-        "narHash": "sha256-pPs4EUpSYCM+MTv2k2kfLEX9pX7CXhED90h3rf6vUUs=",
-        "owner": "rachartier",
-        "repo": "tiny-inline-diagnostic.nvim",
-        "rev": "de01d4c9cd032d4dac69bf64d5a184fbe62e1fd1",
-        "type": "github"
-      },
-      "original": {
-        "owner": "rachartier",
-        "repo": "tiny-inline-diagnostic.nvim",
-        "type": "github"
-      }
-    },
-    "toggleterm-nvim-src": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1721232722,
-        "narHash": "sha256-hJ6nBCgSyYF1pY4lX+b8WZd49i5F6BwOmrl7xVSIwRw=",
-        "owner": "akinsho",
-        "repo": "toggleterm.nvim",
-        "rev": "48be57eaba817f038d61bbf64d2c597f578c0827",
-        "type": "github"
-      },
-      "original": {
-        "owner": "akinsho",
-        "ref": "v2.12.0",
-        "repo": "toggleterm.nvim",
-        "type": "github"
-      }
-    },
     "tree-sitter-bash": {
       "flake": false,
       "locked": {
diff --git a/flake.nix b/flake.nix
index 241beef..39a636b 100644
--- a/flake.nix
+++ b/flake.nix
@@ -70,74 +70,74 @@
       inputs.nixpkgs.follows = "nixpkgs";
     };
 
-    # Neovim plugins
-    base16-nvim-src = {
-      url = "github:RRethy/base16-nvim";
-      flake = false;
-    };
-    nvim-lspconfig-src = {
-      # https://github.com/neovim/nvim-lspconfig/tags
-      url = "github:neovim/nvim-lspconfig/v0.1.8";
-      flake = false;
-    };
-    cmp-nvim-lsp-src = {
-      url = "github:hrsh7th/cmp-nvim-lsp";
-      flake = false;
-    };
-    baleia-nvim-src = {
-      # https://github.com/m00qek/baleia.nvim/tags
-      url = "github:m00qek/baleia.nvim";
-      flake = false;
-    };
-    nvim-treesitter-src = {
-      # https://github.com/nvim-treesitter/nvim-treesitter/tags
-      url = "github:nvim-treesitter/nvim-treesitter/v0.9.2";
-      flake = false;
-    };
-    telescope-nvim-src = {
-      # https://github.com/nvim-telescope/telescope.nvim/releases
-      url = "github:nvim-telescope/telescope.nvim/0.1.8";
-      flake = false;
-    };
-    telescope-project-nvim-src = {
-      url = "github:nvim-telescope/telescope-project.nvim";
-      flake = false;
-    };
-    toggleterm-nvim-src = {
-      # https://github.com/akinsho/toggleterm.nvim/tags
-      url = "github:akinsho/toggleterm.nvim/v2.12.0";
-      flake = false;
-    };
-    bufferline-nvim-src = {
-      # https://github.com/akinsho/bufferline.nvim/releases
-      url = "github:akinsho/bufferline.nvim/v4.6.1";
-      flake = false;
-    };
-    nvim-tree-lua-src = {
-      url = "github:kyazdani42/nvim-tree.lua";
-      flake = false;
-    };
-    hmts-nvim-src = {
-      url = "github:calops/hmts.nvim";
-      flake = false;
-    };
-    fidget-nvim-src = {
-      # https://github.com/j-hui/fidget.nvim/tags
-      url = "github:j-hui/fidget.nvim/v1.4.5";
-      flake = false;
-    };
-    nvim-lint-src = {
-      url = "github:mfussenegger/nvim-lint";
-      flake = false;
-    };
-    tiny-inline-diagnostic-nvim-src = {
-      url = "github:rachartier/tiny-inline-diagnostic.nvim";
-      flake = false;
-    };
-    snipe-nvim-src = {
-      url = "github:leath-dub/snipe.nvim";
-      flake = false;
-    };
+    # # Neovim plugins
+    # base16-nvim-src = {
+    #   url = "github:RRethy/base16-nvim";
+    #   flake = false;
+    # };
+    # nvim-lspconfig-src = {
+    #   # https://github.com/neovim/nvim-lspconfig/tags
+    #   url = "github:neovim/nvim-lspconfig/v0.1.8";
+    #   flake = false;
+    # };
+    # cmp-nvim-lsp-src = {
+    #   url = "github:hrsh7th/cmp-nvim-lsp";
+    #   flake = false;
+    # };
+    # baleia-nvim-src = {
+    #   # https://github.com/m00qek/baleia.nvim/tags
+    #   url = "github:m00qek/baleia.nvim";
+    #   flake = false;
+    # };
+    # nvim-treesitter-src = {
+    #   # https://github.com/nvim-treesitter/nvim-treesitter/tags
+    #   url = "github:nvim-treesitter/nvim-treesitter/v0.9.2";
+    #   flake = false;
+    # };
+    # telescope-nvim-src = {
+    #   # https://github.com/nvim-telescope/telescope.nvim/releases
+    #   url = "github:nvim-telescope/telescope.nvim/0.1.8";
+    #   flake = false;
+    # };
+    # telescope-project-nvim-src = {
+    #   url = "github:nvim-telescope/telescope-project.nvim";
+    #   flake = false;
+    # };
+    # toggleterm-nvim-src = {
+    #   # https://github.com/akinsho/toggleterm.nvim/tags
+    #   url = "github:akinsho/toggleterm.nvim/v2.12.0";
+    #   flake = false;
+    # };
+    # bufferline-nvim-src = {
+    #   # https://github.com/akinsho/bufferline.nvim/releases
+    #   url = "github:akinsho/bufferline.nvim/v4.6.1";
+    #   flake = false;
+    # };
+    # nvim-tree-lua-src = {
+    #   url = "github:kyazdani42/nvim-tree.lua";
+    #   flake = false;
+    # };
+    # hmts-nvim-src = {
+    #   url = "github:calops/hmts.nvim";
+    #   flake = false;
+    # };
+    # fidget-nvim-src = {
+    #   # https://github.com/j-hui/fidget.nvim/tags
+    #   url = "github:j-hui/fidget.nvim/v1.4.5";
+    #   flake = false;
+    # };
+    # nvim-lint-src = {
+    #   url = "github:mfussenegger/nvim-lint";
+    #   flake = false;
+    # };
+    # tiny-inline-diagnostic-nvim-src = {
+    #   url = "github:rachartier/tiny-inline-diagnostic.nvim";
+    #   flake = false;
+    # };
+    # snipe-nvim-src = {
+    #   url = "github:leath-dub/snipe.nvim";
+    #   flake = false;
+    # };
 
     # Tree-Sitter Grammars
     tree-sitter-bash = {
@@ -506,28 +506,6 @@
       );
 
       # Templates for starting other projects quickly
-      templates = rec {
-        default = basic;
-        basic = {
-          path = ./templates/basic;
-          description = "Basic program template";
-        };
-        poetry = {
-          path = ./templates/poetry;
-          description = "Poetry template";
-        };
-        python = {
-          path = ./templates/python;
-          description = "Legacy Python template";
-        };
-        haskell = {
-          path = ./templates/haskell;
-          description = "Haskell template";
-        };
-        rust = {
-          path = ./templates/rust;
-          description = "Rust template";
-        };
-      };
+      templates = (import ./templates nixpkgs.lib);
     };
 }
diff --git a/hosts/README.md b/hosts/README.md
deleted file mode 100644
index 2e26c5e..0000000
--- a/hosts/README.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# Hosts
-
-These are the individual machines managed by this flake.
-
-| Host                                       | Purpose             |
-| ---                                        | ---                 |
-| [aws](./aws/default.nix)                   | AWS AMI             |
-| [staff](./staff/default.nix)               | Live USB stick      |
-| [flame](./flame/default.nix)               | Oracle cloud server |
-| [hydra](./hydra/default.nix)               | WSL config          |
-| [lookingglass](./lookingglass/default.nix) | Work MacBook        |
-| [swan](./swan/default.nix)                 | Home server         |
-| [tempest](./tempest/default.nix)           | Linux desktop       |
-
-## NixOS Workflow
-
-Each hosts file is imported into [nixosConfigurations](../flake.nix) and passed
-the arguments from the flake (inputs, globals, overlays). The `nixosSystem`
-function in that hosts file will be called by the NixOS module system during a
-nixos-rebuild.
-
-Each module in the each host's `modules` list is either a function or an
-attrset. The attrsets will simply apply values to options that have been
-declared in the config by other modules. Meanwhile, the functions will be
-passed various arguments, several of which you will see listed at the top of
-each of their files.
diff --git a/hosts/darwin/lookingglass/default.nix b/hosts/darwin/lookingglass/default.nix
deleted file mode 100644
index e3259ff..0000000
--- a/hosts/darwin/lookingglass/default.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-# The Looking Glass
-# System configuration for my work Macbook
-
-rec {
-  networking.hostName = "NYCM-NMASUR2";
-  networking.computerName = "NYCM-NMASUR2";
-
-  nmasur.settings = {
-    username = "Noah.Masur";
-    fullName = "Noah Masur";
-  };
-
-  nmasur.profiles = {
-    base.enable = true;
-    work.enable = true;
-    extra.enable = true;
-    gaming.enable = true;
-  };
-
-  home-manager.users."Noah.Masur" = {
-    nmasur.settings = {
-      username = nmasur.settings.username;
-      fullName = nmasur.settings.fullName;
-    };
-    nmasur.profiles = {
-      common.enable = true;
-      darwin-base.enable = true;
-      power-user.enable = true;
-      work.enable = true;
-      experimental.enable = true;
-    };
-    nmasur.presets.programs.git = {
-      name = "Noah-Masur_1701";
-      email = "${nmasur.settings.username}@take2games.com";
-    };
-  };
-
-  identityFile = "/Users/${nmasur.settings.username}/.ssh/id_ed25519";
-}
diff --git a/hosts/default.nix b/hosts/default.nix
deleted file mode 100644
index 312388a..0000000
--- a/hosts/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-# Return a list of all hosts
-
-nixpkgs:
-
-let
-  inherit (nixpkgs) lib;
-in
-
-{
-  # darwin-hosts = import ./darwin;
-  darwin-hosts = lib.pipe (lib.filesystem.listFilesRecursive ./darwin) [
-    # Get only files ending in default.nix
-    (builtins.filter (name: lib.hasSuffix "default.nix" name))
-    # Import each host function
-    (map (file: {
-      name = builtins.baseNameOf (builtins.dirOf file);
-      value = import file;
-    }))
-    # Convert to an attrset of hostname -> host function
-    (builtins.listToAttrs)
-  ];
-  nixos-hosts = lib.pipe (lib.filesystem.listFilesRecursive ./nixos) [
-    # Get only files ending in default.nix
-    (builtins.filter (name: lib.hasSuffix "default.nix" name))
-    # Import each host function
-    (map (file: {
-      name = builtins.baseNameOf (builtins.dirOf file);
-      value = import file;
-    }))
-    # Convert to an attrset of hostname -> host function
-    (builtins.listToAttrs)
-  ];
-}
diff --git a/hosts/nixos/flame/default.nix b/hosts/nixos/flame/default.nix
deleted file mode 100644
index e4a4627..0000000
--- a/hosts/nixos/flame/default.nix
+++ /dev/null
@@ -1,75 +0,0 @@
-# The Flame
-# System configuration for an Oracle free server
-
-# How to install:
-# https://blog.korfuri.fr/posts/2022/08/nixos-on-an-oracle-free-tier-ampere-machine/
-# These days, probably use nixos-anywhere instead.
-
-rec {
-  networking.hostName = "flame";
-
-  nmasur.settings = {
-    username = "noah";
-    fullName = "Noah Masur";
-    # hostnames =
-    #   let
-    #     baseName = "masu.rs";
-    #   in
-    #   {
-    #     budget = "money.${baseName}";
-    #     git = "git.${baseName}";
-    #     influxdb = "influxdb.${baseName}";
-    #     irc = "irc.${baseName}";
-    #     metrics = "metrics.${baseName}";
-    #     minecraft = "minecraft.${baseName}";
-    #     n8n = "n8n.${baseName}";
-    #     notifications = "ntfy.${baseName}";
-    #     prometheus = "prom.${baseName}";
-    #     secrets = "vault.${baseName}";
-    #     status = "status.${baseName}";
-    #   };
-  };
-
-  nmasur.profiles = {
-    base.enable = true;
-    server.enable = true;
-    communications.enable = true;
-  };
-
-  home-manager.users."noah" = {
-    nmasur.settings = {
-      username = nmasur.settings.username;
-      fullName = nmasur.settings.fullName;
-    };
-    nmasur.profiles = {
-      common.enable = true;
-      linux-base.enable = true;
-    };
-    home.stateVersion = "23.05";
-  };
-
-  system.stateVersion = "23.05";
-  # File systems must be declared in order to boot
-
-  # This is the root filesystem containing NixOS
-  # I forgot to set a clean label for it
-  fileSystems."/" = {
-    device = "/dev/disk/by-uuid/e1b6bd50-306d-429a-9f45-78f57bc597c3";
-    fsType = "ext4";
-  };
-
-  # This is the boot filesystem for systemd-boot
-  fileSystems."/boot" = {
-    device = "/dev/disk/by-uuid/D5CA-237A";
-    fsType = "vfat";
-  };
-
-  # Allows private remote access over the internet
-  nmasur.presets.services.cloudflared = {
-    tunnel = {
-      id = "bd250ee1-ed2e-42d2-b627-039f1eb5a4d2";
-      credentialsFile = ../../../private/cloudflared-flame.age;
-      ca = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBK/6oyVqjFGX3Uvrc3VS8J9sphxzAnRzKC85xgkHfYgR3TK6qBGXzHrknEj21xeZrr3G2y1UsGzphWJd9ZfIcdA= open-ssh-ca@cloudflareaccess.org";
-    };
-  };
-}
diff --git a/hosts/nixos/swan/default.nix b/hosts/nixos/swan/default.nix
deleted file mode 100644
index 8029bd2..0000000
--- a/hosts/nixos/swan/default.nix
+++ /dev/null
@@ -1,92 +0,0 @@
-# The Swan
-# System configuration for my home NAS server
-
-rec {
-  networking.hostName = "swan";
-
-  nmasur.settings = {
-    username = "noah";
-    fullName = "Noah Masur";
-    # hostnames =
-    #   let
-    #     baseName = "masu.rs";
-    #   in
-    #   {
-    #     audiobooks = "read.${baseName}";
-    #     books = "books.${baseName}";
-    #     content = "cloud.${baseName}";
-    #     download = "download.${baseName}";
-    #     files = "files.${baseName}";
-    #     paperless = "paper.${baseName}";
-    #     photos = "photos.${baseName}";
-    #     prometheus = "prom.${baseName}";
-    #     stream = "stream.${baseName}";
-    #   };
-  };
-
-  nmasur.profiles = {
-    base.enable = true;
-    server.enable = true;
-    home.enable = true;
-    nas.enable = true;
-  };
-
-  home-manager.users."noah" = {
-    nmasur.settings = {
-      username = nmasur.settings.username;
-      fullName = nmasur.settings.fullName;
-    };
-    nmasur.profiles = {
-      common.enable = true;
-      linux-base.enable = true;
-    };
-    home.stateVersion = "23.05";
-  };
-
-  # Not sure what's necessary but too afraid to remove anything
-  boot.initrd.availableKernelModules = [
-    "xhci_pci"
-    "ahci"
-    "nvme"
-    "usb_storage"
-    "sd_mod"
-  ];
-
-  # Required for transcoding
-  boot.initrd.kernelModules = [ "amdgpu" ];
-  boot.kernelParams = [
-    "radeon.si_support=0"
-    "amdgpu.si_support=1"
-    "radeon.cik_support=0"
-    "amdgpu.cik_support=1"
-    "amdgpu.dc=1"
-  ];
-
-  # Required binary blobs to boot on this machine
-  hardware.enableRedistributableFirmware = true;
-
-  # Prioritize efficiency over performance
-  powerManagement.cpuFreqGovernor = "powersave";
-
-  # Allow firmware updates
-  hardware.cpu.intel.updateMicrocode = true;
-
-  # ZFS
-  # Generated with: head -c 8 /etc/machine-id
-  networking.hostId = "600279f4"; # Random ID required for ZFS
-
-  # Sets root ext4 filesystem instead of declaring it manually
-  disko = {
-    enableConfig = true;
-    devices = (import ../../disks/root.nix { disk = "/dev/nvme0n1"; });
-  };
-
-  # Allows private remote access over the internet
-  nmasur.presets.services.cloudflared = {
-    tunnel = {
-      id = "646754ac-2149-4a58-b51a-e1d0a1f3ade2";
-      credentialsFile = ../../private/cloudflared-swan.age;
-      ca = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCHF/UMtJqPFrf6f6GRY0ZFnkCW7b6sYgUTjTtNfRj1RdmNic1NoJZql7y6BrqQinZvy7nsr1UFDNWoHn6ah3tg= open-ssh-ca@cloudflareaccess.org";
-    };
-  };
-}
diff --git a/hosts/nixos/tempest/default.nix b/hosts/nixos/tempest/default.nix
deleted file mode 100644
index 9120294..0000000
--- a/hosts/nixos/tempest/default.nix
+++ /dev/null
@@ -1,117 +0,0 @@
-# The Tempest
-# System configuration for my desktop
-
-rec {
-  # Hardware
-  networking.hostName = "tempest";
-
-  nmasur.settings = {
-    username = "noah";
-    fullName = "Noah Masur";
-    # hostnames =
-    #   let
-    #     baseName = "masu.rs";
-    #   in
-    #   {
-    #     prometheus = "prom.${baseName}";
-    #   };
-  };
-
-  nmasur.profiles = {
-    base.enable = true;
-    home.enable = true;
-    gui.enable = true;
-    gaming.enable = true;
-  };
-
-  home-manager.users."noah" = {
-    nmasur.settings = {
-      username = nmasur.settings.username;
-      fullName = nmasur.settings.fullName;
-    };
-    nmasur.profiles = {
-      common.enable = true;
-      linux-base.enable = true;
-      linux-gui.enable = true;
-      linux-gaming.enable = true;
-      power-user.enable = true;
-      developer.enable = true;
-      experimental.enable = true;
-    };
-    nmasur.presets.services.mbsync = {
-      user = nmasur.settings.username;
-      server = "noahmasur.com";
-    };
-    home.stateVersion = "23.05";
-  };
-
-  system.stateVersion = "23.05";
-  # Not sure what's necessary but too afraid to remove anything
-  boot.initrd.availableKernelModules = [
-    "nvme"
-    "xhci_pci"
-    "ahci"
-    "usb_storage"
-    "usbhid"
-    "sd_mod"
-  ];
-
-  # Graphics and VMs
-  boot.initrd.kernelModules = [ "amdgpu" ];
-  boot.kernelModules = [ "kvm-amd" ];
-  services.xserver.videoDrivers = [ "amdgpu" ];
-
-  # Required binary blobs to boot on this machine
-  hardware.enableRedistributableFirmware = true;
-
-  # Prioritize performance over efficiency
-  powerManagement.cpuFreqGovernor = "performance";
-
-  # Allow firmware updates
-  hardware.cpu.amd.updateMicrocode = true;
-
-  # Helps reduce GPU fan noise under idle loads
-  hardware.fancontrol.enable = true;
-  hardware.fancontrol.config = ''
-    # Configuration file generated by pwmconfig, changes will be lost
-    INTERVAL=10
-    DEVPATH=hwmon0=devices/pci0000:00/0000:00:03.1/0000:06:00.0/0000:07:00.0/0000:08:00.0
-    DEVNAME=hwmon0=amdgpu
-    FCTEMPS=hwmon0/pwm1=hwmon0/temp1_input
-    FCFANS= hwmon0/pwm1=hwmon0/fan1_input
-    MINTEMP=hwmon0/pwm1=50
-    MAXTEMP=hwmon0/pwm1=70
-    MINSTART=hwmon0/pwm1=100
-    MINSTOP=hwmon0/pwm1=10
-    MINPWM=hwmon0/pwm1=10
-    MAXPWM=hwmon0/pwm1=240
-  '';
-
-  # File systems must be declared in order to boot
-
-  # This is the root filesystem containing NixOS
-  fileSystems."/" = {
-    device = "/dev/disk/by-label/nixos";
-    fsType = "ext4";
-  };
-
-  # This is the boot filesystem for Grub
-  fileSystems."/boot" = {
-    device = "/dev/disk/by-label/boot";
-    fsType = "vfat";
-  };
-
-  # Allows private remote access over the internet
-  nmasur.presets.services.cloudflared = {
-    tunnel = {
-      id = "ac133a82-31fb-480c-942a-cdbcd4c58173";
-      credentialsFile = ../../../private/cloudflared-tempest.age;
-      ca = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPY6C0HmdFCaxYtJxFr3qV4/1X4Q8KrYQ1hlme3u1hJXK+xW+lc9Y9glWHrhiTKilB7carYTB80US0O47gI5yU4= open-ssh-ca@cloudflareaccess.org";
-    };
-  };
-
-  # Allows requests to force machine to wake up
-  # This network interface might change, needs to be set specifically for each machine.
-  # Or set usePredictableInterfaceNames = false
-  networking.interfaces.enp5s0.wakeOnLan.enable = true;
-}
diff --git a/overlays/neovim-plugins.nix b/overlays/neovim-plugins.nix
index ed1fde2..25a762a 100644
--- a/overlays/neovim-plugins.nix
+++ b/overlays/neovim-plugins.nix
@@ -23,22 +23,22 @@ in
 
   vimPlugins = prev.vimPlugins // {
 
-    nvim-lspconfig = withSrc prev.vimPlugins.nvim-lspconfig inputs.nvim-lspconfig-src;
-    cmp-nvim-lsp = withSrc prev.vimPlugins.cmp-nvim-lsp inputs.cmp-nvim-lsp-src;
-    nvim-treesitter = withSrc prev.vimPlugins.nvim-treesitter inputs.nvim-treesitter-src;
-    telescope-nvim = withSrc prev.vimPlugins.telescope-nvim inputs.telescope-nvim-src;
-    telescope-project-nvim = withSrc prev.vimPlugins.telescope-project-nvim inputs.telescope-project-nvim-src;
-    toggleterm-nvim = withSrc prev.vimPlugins.toggleterm-nvim inputs.toggleterm-nvim-src;
-    bufferline-nvim = withSrc prev.vimPlugins.bufferline-nvim inputs.bufferline-nvim-src;
-    nvim-tree-lua = withSrc prev.vimPlugins.nvim-tree-lua inputs.nvim-tree-lua-src;
-    fidget-nvim = withSrc prev.vimPlugins.fidget-nvim inputs.fidget-nvim-src;
-    nvim-lint = withSrc prev.vimPlugins.nvim-lint inputs.nvim-lint-src;
+    # nvim-lspconfig = withSrc prev.vimPlugins.nvim-lspconfig inputs.nvim-lspconfig-src;
+    # cmp-nvim-lsp = withSrc prev.vimPlugins.cmp-nvim-lsp inputs.cmp-nvim-lsp-src;
+    # nvim-treesitter = withSrc prev.vimPlugins.nvim-treesitter inputs.nvim-treesitter-src;
+    # telescope-nvim = withSrc prev.vimPlugins.telescope-nvim inputs.telescope-nvim-src;
+    # telescope-project-nvim = withSrc prev.vimPlugins.telescope-project-nvim inputs.telescope-project-nvim-src;
+    # toggleterm-nvim = withSrc prev.vimPlugins.toggleterm-nvim inputs.toggleterm-nvim-src;
+    # bufferline-nvim = withSrc prev.vimPlugins.bufferline-nvim inputs.bufferline-nvim-src;
+    # nvim-tree-lua = withSrc prev.vimPlugins.nvim-tree-lua inputs.nvim-tree-lua-src;
+    # fidget-nvim = withSrc prev.vimPlugins.fidget-nvim inputs.fidget-nvim-src;
+    # nvim-lint = withSrc prev.vimPlugins.nvim-lint inputs.nvim-lint-src;
 
     # Packaging plugins entirely with Nix
-    base16-nvim = plugin "base16-nvim" inputs.base16-nvim-src;
-    baleia-nvim = plugin "baleia-nvim" inputs.baleia-nvim-src;
-    hmts-nvim = plugin "hmts-nvim" inputs.hmts-nvim-src;
-    tiny-inline-diagnostic-nvim = plugin "tiny-inline-diagnostic-nvim" inputs.tiny-inline-diagnostic-nvim-src;
-    snipe-nvim = plugin "snipe-nvim" inputs.snipe-nvim-src;
+    # base16-nvim = plugin "base16-nvim" inputs.base16-nvim-src;
+    # baleia-nvim = plugin "baleia-nvim" inputs.baleia-nvim-src;
+    # hmts-nvim = plugin "hmts-nvim" inputs.hmts-nvim-src;
+    # tiny-inline-diagnostic-nvim = plugin "tiny-inline-diagnostic-nvim" inputs.tiny-inline-diagnostic-nvim-src;
+    # snipe-nvim = plugin "snipe-nvim" inputs.snipe-nvim-src;
   };
 }
diff --git a/templates/basic/flake.nix b/templates/default/flake.nix
similarity index 100%
rename from templates/basic/flake.nix
rename to templates/default/flake.nix