summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flake.nix35
1 files 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");
};
}