From 9cb4542b05340833789bbebe42fa65cee936d838 Mon Sep 17 00:00:00 2001 From: Mohammad Rafiq Date: Wed, 9 Jul 2025 06:36:42 +0800 Subject: [PATCH] feat(configurations): add darwin config support --- nix/configurations.nix | 6 ++++++ nix/manifest.nix | 1 + nix/meta.nix | 9 ++++++--- nix/modules/machine/platform.nix | 1 + 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/nix/configurations.nix b/nix/configurations.nix index 1d27ceb..737700d 100644 --- a/nix/configurations.nix +++ b/nix/configurations.nix @@ -6,6 +6,7 @@ }: let inherit (lib) nixosSystem; + inherit (inputs.nix-darwin.lib) darwinSystem; inherit (lib.lists) optional; inherit (lib.attrsets) mapAttrs; inherit (cfg.lib.modules) forAllUsers'; @@ -35,6 +36,10 @@ let (value.extraCfg or { }) ] ++ optional value.graphical cfg.modules.nixos.graphical; } + else if class == "darwin" then + darwinSystem { + modules = [ cfg.modules.darwin.default ]; + } else { } ) hosts; @@ -42,4 +47,5 @@ in { imports = [ inputs.home-manager.flakeModules.home-manager ]; flake.nixosConfigurations = mkConfigurations "nixos" hosts.nixos; + flake.darwinConfigurations = mkConfigurations "darwin" hosts.darwin; } diff --git a/nix/manifest.nix b/nix/manifest.nix index 0643eb8..306e2ae 100644 --- a/nix/manifest.nix +++ b/nix/manifest.nix @@ -7,6 +7,7 @@ shell = "fish"; pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILdsZyY3gu8IGB8MzMnLdh+ClDxQQ2RYG9rkeetIKq8n rafiq"; }; + hosts.darwin.venus = { }; hosts.nixos = { nemesis = { graphical = true; diff --git a/nix/meta.nix b/nix/meta.nix index 0d95bd7..a10a6da 100644 --- a/nix/meta.nix +++ b/nix/meta.nix @@ -74,9 +74,12 @@ in type = lazyAttrsOf userOpts; default = { }; }; - hosts = mkOption { - # hosts.nixos, hosts.darwin, etc. - type = lazyAttrsOf (lazyAttrsOf hostOpts); + hosts.nixos = mkOption { + type = lazyAttrsOf hostOpts; + default = { }; + }; + hosts.darwin = mkOption { + type = lazyAttrsOf raw; default = { }; }; }; diff --git a/nix/modules/machine/platform.nix b/nix/modules/machine/platform.nix index ae8ab61..62db2d1 100644 --- a/nix/modules/machine/platform.nix +++ b/nix/modules/machine/platform.nix @@ -11,4 +11,5 @@ boot.kernelModules = [ "kvm-${platform}" ]; nixpkgs.hostPlatform = "${arch}-linux"; }; + flake.modules.darwin.default.nixpkgs.hostPlatform = "x86_64-darwin"; }