diff --git a/flake.lock b/flake.lock
index c6047e5..a1c98d7 100644
--- a/flake.lock
+++ b/flake.lock
@@ -1,5 +1,20 @@
 {
   "nodes": {
+    "catppuccin": {
+      "locked": {
+        "lastModified": 1717070887,
+        "narHash": "sha256-ZTEMINFqQL+m55kmoDYIKf3i2NGitSkjBnnLu99ezh0=",
+        "owner": "catppuccin",
+        "repo": "nix",
+        "rev": "2c7661c9fa26a920b8088300ef87d14179c71a27",
+        "type": "github"
+      },
+      "original": {
+        "owner": "catppuccin",
+        "repo": "nix",
+        "type": "github"
+      }
+    },
     "colmena": {
       "inputs": {
         "flake-compat": "flake-compat",
@@ -14,11 +29,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1706509311,
-        "narHash": "sha256-QQKQ6r3CID8aXn2ZXZ79ZJxdCOeVP+JTnOctDALErOw=",
+        "lastModified": 1711386353,
+        "narHash": "sha256-gWEpb8Hybnoqb4O4tmpohGZk6+aerAbJpywKcFIiMlg=",
         "owner": "zhaofengli",
         "repo": "colmena",
-        "rev": "c84ccd0a7a712475e861c2b111574472b1a8d0cd",
+        "rev": "cd65ef7a25cdc75052fbd04b120aeb066c3881db",
         "type": "github"
       },
       "original": {
@@ -46,11 +61,11 @@
     "flake-compat_2": {
       "flake": false,
       "locked": {
-        "lastModified": 1673956053,
-        "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
+        "lastModified": 1696426674,
+        "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
         "owner": "edolstra",
         "repo": "flake-compat",
-        "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
+        "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
         "type": "github"
       },
       "original": {
@@ -64,11 +79,11 @@
         "systems": "systems"
       },
       "locked": {
-        "lastModified": 1709126324,
-        "narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=",
+        "lastModified": 1710146030,
+        "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
         "owner": "numtide",
         "repo": "flake-utils",
-        "rev": "d465f4819400de7c8d874d50b982301f28a84605",
+        "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
         "type": "github"
       },
       "original": {
@@ -84,11 +99,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1709764752,
-        "narHash": "sha256-+lM4J4JoJeiN8V+3WSWndPHj1pJ9Jc1UMikGbXLqCTk=",
+        "lastModified": 1717052710,
+        "narHash": "sha256-LRhOxzXmOza5SymhOgnEzA8EAQp+94kkeUYWKKpLJ/U=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "cf111d1a849ddfc38e9155be029519b0e2329615",
+        "rev": "29c69d9a466e41d46fd3a7a9d0591ef9c113c2ae",
         "type": "github"
       },
       "original": {
@@ -104,11 +119,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1709708644,
-        "narHash": "sha256-XAFOkZ6yexsqeJrCXWoHxopq0i+7ZqbwATXomMnGmr4=",
+        "lastModified": 1716772633,
+        "narHash": "sha256-Idcye44UW+EgjbjCoklf2IDF+XrehV6CVYvxR1omst4=",
         "owner": "Mic92",
         "repo": "nix-index-database",
-        "rev": "94a1e46434736a40f976a454f8bd3ea2144f349b",
+        "rev": "ff80cb4a11bb87f3ce8459be6f16a25ac86eb2ac",
         "type": "github"
       },
       "original": {
@@ -128,11 +143,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1709773506,
-        "narHash": "sha256-RK9D2rbN7usqlxogWSBA0EsKDScSF/Uyb8ATntC4juA=",
+        "lastModified": 1717032429,
+        "narHash": "sha256-1+87CE8xOUsJChiq9aNQqWPKoWMuyurW+aXrGbMWH7I=",
         "owner": "nix-community",
         "repo": "nix-vscode-extensions",
-        "rev": "a17ea69caec11561e73c985360fb596c25f74131",
+        "rev": "0309d806a5431a46fb7fd81e20d7133ac8b1de55",
         "type": "github"
       },
       "original": {
@@ -141,36 +156,13 @@
         "type": "github"
       }
     },
-    "nixos-cn": {
-      "inputs": {
-        "flake-utils": [
-          "flake-utils"
-        ],
-        "nixpkgs": [
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1682818384,
-        "narHash": "sha256-l8jh9BQj6nfjPDYGyrZkZwX1GaOqBX+pBHU+7fFZU3w=",
-        "owner": "nixos-cn",
-        "repo": "flakes",
-        "rev": "2d475ec68cca251ef6c6c69a9224db5c264c5e5b",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nixos-cn",
-        "repo": "flakes",
-        "type": "github"
-      }
-    },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1709410583,
-        "narHash": "sha256-esOSUoQ7mblwcsSea0K17McZuwAIjoS6dq/4b83+lvw=",
+        "lastModified": 1716987116,
+        "narHash": "sha256-uuEkErFVsFdg2K0cKbNQ9JlFSAm/xYqPr4rbPLI91Y8=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "59e37017b9ed31dee303dbbd4531c594df95cfbc",
+        "rev": "8251761f93d6f5b91cee45ac09edb6e382641009",
         "type": "github"
       },
       "original": {
@@ -182,11 +174,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1709479366,
-        "narHash": "sha256-n6F0n8UV6lnTZbYPl1A9q1BS0p4hduAv1mGAP17CVd0=",
+        "lastModified": 1716948383,
+        "narHash": "sha256-SzDKxseEcHR5KzPXLwsemyTR/kaM9whxeiJohbL04rs=",
         "owner": "nixos",
         "repo": "nixpkgs",
-        "rev": "b8697e57f10292a6165a20f03d2f42920dfaf973",
+        "rev": "ad57eef4ef0659193044870c731987a6df5cf56b",
         "type": "github"
       },
       "original": {
@@ -214,11 +206,11 @@
     },
     "nixpkgs-stable_2": {
       "locked": {
-        "lastModified": 1709428628,
-        "narHash": "sha256-//ZCCnpVai/ShtO2vPjh3AWgo8riXCaret6V9s7Hew4=",
+        "lastModified": 1716655032,
+        "narHash": "sha256-kQ25DAiCGigsNR/Quxm3v+JGXAEXZ8I7RAF4U94bGzE=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "66d65cb00b82ffa04ee03347595aa20e41fe3555",
+        "rev": "59a450646ec8ee0397f5fa54a08573e8240eb91f",
         "type": "github"
       },
       "original": {
@@ -230,11 +222,11 @@
     },
     "nur": {
       "locked": {
-        "lastModified": 1709780742,
-        "narHash": "sha256-mJXQZLSI/zgQ98nHMSdmJ0l0YL3n38FWsdE9OiKPcWk=",
+        "lastModified": 1717079713,
+        "narHash": "sha256-mvTQgi86WwALm6NGi9tvCx92zrNjSr8Mz+nCqbG0ZhE=",
         "owner": "nix-community",
         "repo": "NUR",
-        "rev": "3428e6cf4521df6254ff5b8bcf31df84fc1dd0d2",
+        "rev": "1a7bbb238afcada295aabc758941ce82e6b1d292",
         "type": "github"
       },
       "original": {
@@ -245,12 +237,12 @@
     },
     "root": {
       "inputs": {
+        "catppuccin": "catppuccin",
         "colmena": "colmena",
         "flake-utils": "flake-utils",
         "home-manager": "home-manager",
         "nix-index-database": "nix-index-database",
         "nix-vscode-extensions": "nix-vscode-extensions",
-        "nixos-cn": "nixos-cn",
         "nixos-hardware": "nixos-hardware",
         "nixpkgs": "nixpkgs",
         "nixpkgs-stable": "nixpkgs-stable",
@@ -266,11 +258,11 @@
         "nixpkgs-stable": "nixpkgs-stable_2"
       },
       "locked": {
-        "lastModified": 1709711091,
-        "narHash": "sha256-L0rSIU9IguTG4YqSj4B/02SyTEz55ACq5t8gXpzteYc=",
+        "lastModified": 1716692524,
+        "narHash": "sha256-sALodaA7Zkp/JD6ehgwc0UCBrSBfB4cX66uFGTsqeFU=",
         "owner": "Mic92",
         "repo": "sops-nix",
-        "rev": "25dd60fdd08fcacee2567a26ba6b91fe098941dc",
+        "rev": "962797a8d7f15ed7033031731d0bb77244839960",
         "type": "github"
       },
       "original": {
diff --git a/flake.nix b/flake.nix
index f29cae9..fe3632d 100644
--- a/flake.nix
+++ b/flake.nix
@@ -15,12 +15,6 @@
       inputs.flake-utils.follows = "flake-utils";
     };
 
-    nixos-cn = {
-      url = "github:nixos-cn/flakes";
-      inputs.nixpkgs.follows = "nixpkgs";
-      inputs.flake-utils.follows = "flake-utils";
-    };
-
     nur = {
       url = "github:nix-community/NUR";
     };
@@ -49,38 +43,47 @@
       url = "github:Mic92/nix-index-database";
       inputs.nixpkgs.follows = "nixpkgs";
     };
+
+    catppuccin.url = "github:catppuccin/nix";
   };
 
 
-  outputs = { self, ... }@inputs:
-    with inputs;
+  outputs =
+    { self
+    , home-manager
+    , nixpkgs
+    , nixos-hardware
+    , flake-utils
+    , nur
+    , catppuccin
+    , ... }@inputs:
     let
-      homeConfigurations = import ./home;
-      sharedModules = [
-        self.homeManagerModules
+      sharedHmModules = [
         inputs.nix-index-database.hmModules.nix-index
+        catppuccin.homeManagerModules.catppuccin
+        self.homeManagerModules
       ];
-      mkHome = user: host: { config, system, ... }: {
+      mkHome = user: host: { ... }: {
         imports = [
           home-manager.nixosModules.home-manager
           {
             home-manager = {
-              inherit sharedModules;
+              sharedModules = sharedHmModules;
               useGlobalPkgs = true;
               useUserPackages = true;
               extraSpecialArgs = { inherit inputs; };
             };
-            home-manager.users.${user} = homeConfigurations.${user}.${host};
+            home-manager.users.${user} = (import ./home).${user}.${host};
           }
         ];
       };
-      mkHomeConfiguration = user: settings: {
+      mkHomeConfiguration = user: host: {
         name = user;
         value = home-manager.lib.homeManagerConfiguration {
           pkgs = import nixpkgs { system = "x86_64-linux"; };
           modules = [
-            self.homeManagerModules
-          ] ++ sharedModules;
+            (import ./home).${user}.${host}
+          ] ++ sharedHmModules;
           extraSpecialArgs = {
             inherit inputs;
           };
@@ -92,9 +95,9 @@
         modules = [
           self.nixosModules.default
           nur.nixosModules.nur
+          ./overlays
         ] ++ modules;
       };
-      evalSecrets = import ./eval_secrets.nix;
     in
     {
       nixosModules.default = import ./modules/nixos;
@@ -107,12 +110,12 @@
           deploymentModule = {
             deployment.targetUser = "xin";
           };
-          sharedModules = [
+          sharedColmenaModules = [
             self.nixosModules.default
             deploymentModule
           ];
         in
-        colmena.lib.makeHive {
+        inputs.colmena.lib.makeHive {
           meta = {
             nixpkgs = import nixpkgs {
               system = "x86_64-linux";
@@ -123,34 +126,20 @@
             };
           };
 
-          massicot = { name, nodes, pkgs, ... }: with inputs; {
+          massicot = { ... }: {
             deployment.targetHost = "49.13.13.122";
             deployment.buildOnTarget = true;
 
             imports = [
               { nixpkgs.system = "aarch64-linux"; }
               machines/massicot
-            ] ++ sharedModules;
+            ] ++ sharedColmenaModules;
           };
 
-          sgp-00 = { name, nodes, pkgs, ... }: with inputs; {
+          tok-00 = { ... }: {
             imports = [
               machines/dolomite
-            ] ++ sharedModules;
-            nixpkgs.system = "x86_64-linux";
-            networking.hostName = "sgp-00";
-            system.stateVersion = "23.11";
-            deployment = {
-              targetHost = "video.namely.icu";
-              buildOnTarget = false;
-              tags = [ "proxy" ];
-            };
-          };
-
-          tok-00 = { name, nodes, pkgs, ... }: with inputs; {
-            imports = [
-              machines/dolomite
-            ] ++ sharedModules;
+            ] ++ sharedColmenaModules;
             nixpkgs.system = "x86_64-linux";
             networking.hostName = "tok-00";
             system.stateVersion = "23.11";
@@ -160,6 +149,33 @@
               tags = [ "proxy" ];
             };
           };
+
+          la-00 = { ... }: {
+            imports = [
+              machines/dolomite
+            ] ++ sharedColmenaModules;
+            nixpkgs.system = "x86_64-linux";
+            networking.hostName = "la-00";
+            system.stateVersion = "21.05";
+            deployment = {
+              targetHost = "la-00.video.namely.icu";
+              buildOnTarget = false;
+              tags = [ "proxy" ];
+            };
+          };
+
+          raspite = { ... }: {
+            deployment = {
+              targetHost = "raspite.local";
+              buildOnTarget = false;
+            };
+            nixpkgs.system = "aarch64-linux";
+            imports = [
+              "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix"
+              nixos-hardware.nixosModules.raspberry-pi-4
+              machines/raspite/configuration.nix
+            ] ++ sharedColmenaModules;
+          };
         };
 
       nixosConfigurations = {
@@ -169,38 +185,16 @@
             nixos-hardware.nixosModules.asus-zephyrus-ga401
             machines/calcite/configuration.nix
             (mkHome "xin" "calcite")
-            (./overlays)
-          ];
-        };
-        raspite = mkNixos {
-          system = "aarch64-linux";
-          modules = [
-            nixos-hardware.nixosModules.raspberry-pi-4
-            machines/raspite/configuration.nix
-            (mkHome "xin" "raspite")
           ];
         };
       } // self.colmenaHive.nodes;
 
-      images.raspite = (mkNixos {
-        system = "aarch64-linux";
-        modules = [
-          "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix"
-          nixos-hardware.nixosModules.raspberry-pi-4
-          machines/raspite/configuration.nix
-          {
-            nixpkgs.config.allowUnsupportedSystem = true;
-            nixpkgs.hostPlatform.system = "aarch64-linux";
-            nixpkgs.buildPlatform.system = "x86_64-linux";
-          }
-        ];
-      }).config.system.build.sdImage;
     } // flake-utils.lib.eachDefaultSystem (system:
       let pkgs = nixpkgs.legacyPackages.${system}; in
       {
         devShells = {
           default = pkgs.mkShell {
-            packages = with pkgs; [ git colmena sops nix-output-monitor rnix-lsp nvd ];
+            packages = with pkgs; [ git colmena sops nix-output-monitor nil nvd ];
           };
         };
       }
diff --git a/modules/home-manager/alacritty.nix b/modules/home-manager/alacritty.nix
index 4c79b19..b4b7c2a 100644
--- a/modules/home-manager/alacritty.nix
+++ b/modules/home-manager/alacritty.nix
@@ -18,6 +18,7 @@ in
           args = [
             "attach"
             "-c"
+            "alacritty-zellij"
           ];
         };
         font.size = 10.0;
@@ -25,14 +26,7 @@ in
           resize_increments = true;
           dynamic_padding = true;
         };
-        import = [
-          "${config.xdg.configHome}/alacritty/catppuccin-macchiato.toml"
-        ];
       };
     };
-    xdg.configFile."alacritty/catppuccin-macchiato.toml".source = builtins.fetchurl {
-      url = "https://raw.githubusercontent.com/catppuccin/alacritty/main/catppuccin-macchiato.toml";
-      sha256 = "sha256:1iq187vg64h4rd15b8fv210liqkbzkh8sw04ykq0hgpx20w3qilv";
-    };
   };
 }
diff --git a/modules/home-manager/git.nix b/modules/home-manager/git.nix
index e198c0b..5b2bc63 100644
--- a/modules/home-manager/git.nix
+++ b/modules/home-manager/git.nix
@@ -36,7 +36,6 @@ in
         signByDefault = true;
         key = cfg.signing.keyFile;
       };
-      
       extraConfig.user = mkIf cfg.signing.enable {
         signingkey = cfg.signing.keyFile;
       };
diff --git a/modules/home-manager/vscode.nix b/modules/home-manager/vscode.nix
index ef5f45a..6405310 100644
--- a/modules/home-manager/vscode.nix
+++ b/modules/home-manager/vscode.nix
@@ -22,11 +22,13 @@ let
         llvm-vs-code-extensions.vscode-clangd
         (ms-vscode.cmake-tools.overrideAttrs (_: { sourceRoot = "extension"; }))
         twxs.cmake
+        ms-vscode.cpptools
       ];
       settings = {
         "cmake.configureOnEdit" = false;
         "cmake.showOptionsMovedNotification" = false;
         "cmake.showNotAllDocumentsSavedQuestion" = false;
+        "C_Cpp.intelliSenseEngine" = "Disabled";
       };
     };
     pythonPackages = {
@@ -37,7 +39,7 @@ let
       settings = { };
     };
     scalaPackages = {
-      systemPackages = with pkgs; [ ];
+      systemPackages = with pkgs; [ coursier ];
       extension = with inputs.nix-vscode-extensions.extensions.${pkgs.system}.vscode-marketplace; [
         scala-lang.scala
         scalameta.metals
@@ -54,7 +56,7 @@ let
         "latex-workshop.latex.tools" = [
           { "name" = "xelatex";
             "command" = "xelatex";
-            "args" = [ "-synctex=1" "-interaction=nonstopmode" "-file-line-error" "-pdf" "%DOCFILE%" ];
+            "args" = [ "-synctex=1" "-interaction=nonstopmode" "-file-line-error" "%DOCFILE%" ];
           }
           { "name" = "pdflatex";
             "command" = "pdflatex";
@@ -104,6 +106,7 @@ in
     ] ++ zipAttrsWithLanguageOption "systemPackages");
     programs.vscode = {
       enable = true;
+      package = pkgs.vscode.override { commandLineArgs = "--enable-wayland-ime"; };
       enableUpdateCheck = false;
       enableExtensionUpdateCheck = false;
       mutableExtensionsDir = false;
@@ -131,7 +134,6 @@ in
           catppuccin.catppuccin-vsc
           # Rust
           rust-lang.rust-analyzer
-        # ]) ++ ;
         ])
       ] ++ zipAttrsWithLanguageOption "extension");
       userSettings = lib.mkMerge ([
diff --git a/modules/home-manager/zellij.nix b/modules/home-manager/zellij.nix
index 16d0d70..6eda3e5 100644
--- a/modules/home-manager/zellij.nix
+++ b/modules/home-manager/zellij.nix
@@ -20,7 +20,6 @@ in
             "Ctrl n"
           ];
         };
-        theme = "catppuccin-macchiato";
       };
     };
   };