initial commit

Change-Id: Icdf87c6c68d88c917468ad949f90af5bcb690831
diff --git a/flake.nix b/flake.nix
new file mode 100755
index 0000000..45541f7
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,37 @@
+{
+  description = "Initialization flake";
+
+  inputs = {
+    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
+    nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions";
+
+    alacritty-themes.url = "github:rajasegar/alacritty-themes";
+    alacritty-themes.flake = false;
+
+    home-manager.url = "github:nix-community/home-manager";
+    home-manager.inputs.nixpkgs.follows = "nixpkgs";
+
+    lanzaboote.url = "github:nix-community/lanzaboote";
+  };
+
+  outputs = { self, nixpkgs, home-manager, ... }@inputs: {
+    nixosConfigurations."codedPC" = nixpkgs.lib.nixosSystem {
+      system = "x86_64-linux";
+      modules = [
+        home-manager.nixosModules.home-manager
+        inputs.lanzaboote.nixosModules.lanzaboote
+        {
+          nix.settings.experimental-features = [ "nix-command" "flakes" ];
+          system.stateVersion = "23.05";
+        }
+      ] ++ (nixpkgs.lib.pipe ./modules [
+        (import ./utils/nixFilesIn.nix nixpkgs.lib)
+        (map import)
+      ]) ++ (nixpkgs.lib.pipe ./homes [
+        (import ./utils/nixFilesIn.nix nixpkgs.lib)
+        (map import)
+      ]);
+      specialArgs = { inherit inputs; };
+    };
+  };
+}