aboutsummaryrefslogtreecommitdiff
path: root/modules/flake/nixos.nix
diff options
context:
space:
mode:
authorschererleander <leander@schererleander.de>2026-01-09 16:57:15 +0100
committerschererleander <leander@schererleander.de>2026-01-09 23:13:49 +0100
commit3b5a73c436eb22e0cda59469263490705e149cb9 (patch)
treeae3f20ca6008b11f71247dfc6e2df8218de9b95c /modules/flake/nixos.nix
parentec45aae780da92e12cf82c5a32e336b14b7540ba (diff)
refactor: use flake-parts, change modules structure
Diffstat (limited to 'modules/flake/nixos.nix')
-rw-r--r--modules/flake/nixos.nix45
1 files changed, 45 insertions, 0 deletions
diff --git a/modules/flake/nixos.nix b/modules/flake/nixos.nix
new file mode 100644
index 0000000..efc6d15
--- /dev/null
+++ b/modules/flake/nixos.nix
@@ -0,0 +1,45 @@
+{ inputs, config, self, ... }:
+
+let
+ inherit (inputs.nixpkgs) lib;
+ import-tree = inputs.import-tree.withLib lib;
+
+ # Use import-tree.leafs to get list of NixOS module paths
+ nixosModuleFiles = import-tree.leafs (self + /modules/nixos);
+
+ # Common NixOS modules for all hosts
+ commonNixosModules = nixosModuleFiles ++ [
+ {
+ nixpkgs.config.allowUnfree = true;
+ nix.settings.experimental-features = [ "nix-command" "flakes" ];
+ }
+ ];
+
+ # Home-manager modules for hosts that use it
+ homeManagerModules = [
+ inputs.home-manager.nixosModules.home-manager
+ {
+ home-manager.extraSpecialArgs = { inherit inputs; };
+ home-manager.sharedModules = [ config.flake.homeModules.default ];
+ }
+ ];
+in
+{
+ flake.nixosConfigurations = {
+ adam = lib.nixosSystem {
+ system = "x86_64-linux";
+ specialArgs = { inherit inputs; host = "adam"; };
+ modules = commonNixosModules ++ homeManagerModules ++ [
+ (self + /hosts/adam/configuration.nix)
+ ];
+ };
+
+ sachiel = lib.nixosSystem {
+ system = "x86_64-linux";
+ specialArgs = { inherit inputs; host = "sachiel"; };
+ modules = commonNixosModules ++ [
+ (self + /hosts/sachiel/configuration.nix)
+ ];
+ };
+ };
+}