From 92248682cb855a6a5d898ec6fdd6fcfcf3c0758c Mon Sep 17 00:00:00 2001 From: sinanmohd Date: Tue, 16 Jul 2024 10:46:04 +0530 Subject: flake/nixosConfigurations: integrate home manager modules --- flake.nix | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/flake.nix b/flake.nix index 70153b4..9a411fc 100644 --- a/flake.nix +++ b/flake.nix @@ -18,36 +18,53 @@ outputs = { self, nixpkgs, sops-nix, home-manager }: let lib = nixpkgs.lib; + makeGlobalImports = host: [ + ./global/common + ] ++ lib.optional (builtins.pathExists ./global/${host}) + ./global/${host}; + makeNixos = host: system: lib.nixosSystem { inherit system; modules = [ + sops-nix.nixosModules.sops + + ./os/${host}/configuration.nix { networking.hostName = host; nix.nixPath = [ "nixpkgs=${nixpkgs}" ]; } - ./global/common - ./os/${host}/configuration.nix - sops-nix.nixosModules.sops - ] ++ lib.optional (builtins.pathExists ./global/${host}) - ./global/${host}; + home-manager.nixosModules.home-manager + ({ config, ... }: let + username = config.global.userdata.name; + in { + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + users.${username} = { ... }: { + imports = [ + ./home/${host}/home.nix + ] ++ (makeGlobalImports host); + }; + }; + }) + ] ++ (makeGlobalImports host); }; makeHome = host: system: home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages.${system}; modules = [ - ./global/common ./home/${host}/home.nix - ] ++ lib.optional (builtins.pathExists ./global/${host}) - ./global/${host}; + ] ++ (makeGlobalImports host); }; in { nixosConfigurations = lib.genAttrs [ "cez" "kay" "lia" "fscusat" "dspace" ] (host: makeNixos host "x86_64-linux"); + homeConfigurations = - lib.genAttrs [ "common" "wayland" "cez" ] + lib.genAttrs [ "common" "wayland" "pc" "cez" ] (host: makeHome host "x86_64-linux"); }; } -- cgit v1.2.3