diff --git a/flake.nix b/flake.nix index 12522d4..1000f83 100644 --- a/flake.nix +++ b/flake.nix @@ -58,35 +58,56 @@ home-manager, nixpkgs, nixos-hardware, + sops-nix, flake-utils, nur, catppuccin, my-nixvim, + nix-vscode-extensions, + colmena, + nix-index-database, ... - }@inputs: + }: let - nixvimOverlay = (final: prev: { nixvim = self.packages.${prev.stdenv.system}.nixvim; }); + editorOverlay = ( + final: prev: { + inherit (nix-vscode-extensions.extensions.${prev.stdenv.system}) vscode-marketplace; + inherit (self.packages.${prev.stdenv.system}) nixvim; + } + ); overlayModule = { ... }: { nixpkgs.overlays = [ - nixvimOverlay + editorOverlay (import ./overlays/add-pkgs.nix) ]; }; deploymentModule = { deployment.targetUser = "xin"; }; - sharedColmenaModules = [ - self.nixosModules.default - deploymentModule - ]; sharedHmModules = [ - inputs.sops-nix.homeManagerModules.sops - inputs.nix-index-database.hmModules.nix-index + self.homeManagerModules.default + sops-nix.homeManagerModules.sops + nix-index-database.hmModules.nix-index catppuccin.homeManagerModules.catppuccin - self.homeManagerModules ]; + sharedNixosModules = [ + self.nixosModules.default + sops-nix.nixosModules.sops + ]; + nodeNixosModules = { + calcite = [ + nixos-hardware.nixosModules.asus-zephyrus-ga401 + nur.nixosModules.nur + catppuccin.nixosModules.catppuccin + machines/calcite/configuration.nix + (mkHome "xin" "calcite") + ]; + }; + sharedColmenaModules = [ + deploymentModule + ] ++ sharedNixosModules; mkHome = user: host: { ... }: @@ -98,43 +119,29 @@ sharedModules = sharedHmModules; useGlobalPkgs = true; useUserPackages = true; - extraSpecialArgs = { - inherit inputs; - }; }; home-manager.users.${user} = (import ./home).${user}.${host}; } ]; }; - mkHomeConfiguration = user: host: { - name = user; - value = home-manager.lib.homeManagerConfiguration { - pkgs = import nixpkgs { system = "x86_64-linux"; }; - modules = [ - (import ./home).${user}.${host} - overlayModule - ] ++ sharedHmModules; - extraSpecialArgs = { - inherit inputs; - }; - }; - }; mkNixos = { - system, - modules, - specialArgs ? { }, + hostname, + system ? null, }: nixpkgs.lib.nixosSystem { - inherit system; - specialArgs = specialArgs // { - inherit inputs system; + modules = sharedNixosModules ++ nodeNixosModules.${hostname}; + }; + # TODO: + mkColmenaHive = + { + hostname, + }: + colmena.lib.makeHive { + meta = { + # FIXME: + nixpkgs = import nixpkgs { system = "x86_64-linux"; }; }; - modules = [ - self.nixosModules.default - nur.nixosModules.nur - catppuccin.nixosModules.catppuccin - ] ++ modules; }; in { @@ -145,16 +152,12 @@ overlayModule ]; }; - homeManagerModules = import ./modules/home-manager; + homeManagerModules.default = import ./modules/home-manager; - homeConfigurations = builtins.listToAttrs [ (mkHomeConfiguration "xin" "calcite") ]; - - colmenaHive = inputs.colmena.lib.makeHive { + colmenaHive = colmena.lib.makeHive { meta = { + # FIXME: nixpkgs = import nixpkgs { system = "x86_64-linux"; }; - specialArgs = { - inherit inputs; - }; }; massicot = @@ -241,12 +244,7 @@ nixosConfigurations = { calcite = mkNixos { - system = "x86_64-linux"; - modules = [ - nixos-hardware.nixosModules.asus-zephyrus-ga401 - machines/calcite/configuration.nix - (mkHome "xin" "calcite") - ]; + hostname = "calcite"; }; } // self.colmenaHive.nodes; @@ -255,6 +253,17 @@ system: let pkgs = nixpkgs.legacyPackages.${system}; + + mkHomeConfiguration = user: host: { + name = user; + value = home-manager.lib.homeManagerConfiguration { + inherit pkgs; + modules = [ + (import ./home).${user}.${host} + overlayModule + ] ++ sharedHmModules; + }; + }; in { devShells = { @@ -262,16 +271,19 @@ packages = with pkgs; [ nix git - inputs.colmena.packages.${system}.colmena + colmena.packages.${system}.colmena sops nix-output-monitor nil nvd nh + (python3.withPackages (ps: with ps; [ requests ])) ]; }; }; + homeConfigurations = builtins.listToAttrs [ (mkHomeConfiguration "xin" "calcite") ]; + packages = { nixvim = my-nixvim.packages.${system}.default; }; diff --git a/machines/calcite/configuration.nix b/machines/calcite/configuration.nix index dec6e8b..8ad5348 100644 --- a/machines/calcite/configuration.nix +++ b/machines/calcite/configuration.nix @@ -219,6 +219,7 @@ in services.smartd.enable = true; # Allow unfree packages + nixpkgs.system = "x86_64-linux"; nixpkgs.config.allowUnfree = true; nixpkgs.config.permittedInsecurePackages = [ "openssl-1.1.1w" diff --git a/machines/massicot/default.nix b/machines/massicot/default.nix index 611b30d..e461039 100644 --- a/machines/massicot/default.nix +++ b/machines/massicot/default.nix @@ -1,12 +1,10 @@ { - inputs, pkgs, ... }: { imports = [ - inputs.sops-nix.nixosModules.sops ./hardware-configuration.nix ./networking.nix ./services.nix diff --git a/machines/massicot/services.nix b/machines/massicot/services.nix index 4be75c5..6a43aa3 100644 --- a/machines/massicot/services.nix +++ b/machines/massicot/services.nix @@ -101,7 +101,6 @@ in services.matrix-conduit = { enable = true; - # package = inputs.conduit.packages.${pkgs.system}.default; package = pkgs.matrix-conduit; settings.global = { server_name = "xinyang.life"; diff --git a/machines/sops.nix b/machines/sops.nix index aeb99d9..3f56687 100644 --- a/machines/sops.nix +++ b/machines/sops.nix @@ -1,11 +1,9 @@ { - inputs, config, lib, ... }: { - imports = [ inputs.sops-nix.nixosModules.sops ]; config = { sops = { defaultSopsFile = ./secrets.yaml; diff --git a/machines/weilite/default.nix b/machines/weilite/default.nix index 96f2f2d..8a58896 100644 --- a/machines/weilite/default.nix +++ b/machines/weilite/default.nix @@ -1,5 +1,4 @@ { - inputs, config, pkgs, lib, @@ -9,7 +8,6 @@ { imports = [ - inputs.sops-nix.nixosModules.sops (modulesPath + "/profiles/qemu-guest.nix") ./services ]; diff --git a/modules/home-manager/vscode.nix b/modules/home-manager/vscode.nix index 9af7fdd..a34febe 100644 --- a/modules/home-manager/vscode.nix +++ b/modules/home-manager/vscode.nix @@ -1,5 +1,4 @@ { - inputs, config, lib, pkgs, @@ -16,7 +15,7 @@ let nixd nixpkgs-fmt ]; - extension = with inputs.nix-vscode-extensions.extensions.${pkgs.system}.vscode-marketplace; [ + extension = with pkgs.vscode-marketplace; [ jnoortheen.nix-ide ]; settings = { @@ -30,13 +29,16 @@ let clang-tools cmake-format ]; - extension = with inputs.nix-vscode-extensions.extensions.${pkgs.system}.vscode-marketplace; [ - llvm-vs-code-extensions.vscode-clangd - (ms-vscode.cmake-tools.overrideAttrs (_: { - sourceRoot = "extension"; - })) - twxs.cmake - ] ++ (with pkgs.vscode-extensions; [ ms-vscode.cpptools ]); + extension = + with pkgs.vscode-marketplace; + [ + llvm-vs-code-extensions.vscode-clangd + (ms-vscode.cmake-tools.overrideAttrs (_: { + sourceRoot = "extension"; + })) + twxs.cmake + ] + ++ (with pkgs.vscode-extensions; [ ms-vscode.cpptools ]); settings = { "cmake.configureOnEdit" = false; "cmake.showOptionsMovedNotification" = false; @@ -50,7 +52,7 @@ let }; pythonPackages = { systemPackages = with pkgs; [ ]; - extension = with inputs.nix-vscode-extensions.extensions.${pkgs.system}.vscode-marketplace; [ + extension = with pkgs.vscode-marketplace; [ ms-python.python ]; settings = { }; @@ -60,7 +62,7 @@ let coursier metals ]; - extension = with inputs.nix-vscode-extensions.extensions.${pkgs.system}.vscode-marketplace; [ + extension = with pkgs.vscode-marketplace; [ scala-lang.scala scalameta.metals ]; @@ -68,7 +70,7 @@ let }; latexPackages = { systemPackages = with pkgs; [ texliveSmall ]; - extension = with inputs.nix-vscode-extensions.extensions.${pkgs.system}.vscode-marketplace; [ + extension = with pkgs.vscode-marketplace; [ james-yu.latex-workshop ]; settings = { @@ -184,7 +186,7 @@ in mutableExtensionsDir = false; extensions = lib.mkMerge ( [ - (with inputs.nix-vscode-extensions.extensions.${pkgs.system}.vscode-marketplace; [ + (with pkgs.vscode-marketplace; [ mkhl.direnv ms-azuretools.vscode-docker diff --git a/overlays/add-pkgs.nix b/overlays/add-pkgs.nix index 35b6981..135a2cb 100644 --- a/overlays/add-pkgs.nix +++ b/overlays/add-pkgs.nix @@ -1,3 +1,5 @@ -(final: prev: { - oidc-agent = prev.callPackage ./pkgs/oidc-agent { }; -}) +( + final: prev: + { + } +)