Architecture split.

This commit is contained in:
kolkman
2026-09-15 20:46:52 +02:00
parent 1fdb0cdc3e
commit 3e6a7391df
+67 -22
View File
@@ -2,23 +2,36 @@
description = "Starter configuration for macOS with nix-darwin"; description = "Starter configuration for macOS with nix-darwin";
inputs = { inputs = {
nixpkgs = { nixpkgsAarch64 = {
url = "github:nixos/nixpkgs//nixpkgs-26.05-darwin"; url = "github:nixos/nixpkgs/nixpkgs-unstable";
# url = "github:nixos/nixpkgs/nixpkgs-unstable";
}; };
home-manager = { nixpkgsX86 = {
url = "github:nixos/nixpkgs//nixpkgs-26.05-darwin";
};
homeManagerAarch64 = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgsAarch64";
};
homeManagerX86 = {
url = "github:nix-community/home-manager/release-26.05";
inputs.nixpkgs.follows = "nixpkgsX86";
}; };
nixd = { nixd = {
url = "github:nix-community/nixd"; url = "github:nix-community/nixd";
}; };
darwin = { darwinAarch64 = {
# url = "github:nix-darwin/nix-darwin"; url = "github:nix-darwin/nix-darwin";
inputs.nixpkgs.follows = "nixpkgsAarch64";
};
darwinX86 = {
url = "github:nix-darwin/nix-darwin/nix-darwin-26.05"; url = "github:nix-darwin/nix-darwin/nix-darwin-26.05";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgsX86";
}; };
brew-src = { brew-src = {
@@ -43,7 +56,7 @@
sops-nix = { sops-nix = {
url = "github:Mic92/sops-nix"; url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgsAarch64";
}; };
nix-vscode-extensions = { nix-vscode-extensions = {
@@ -67,12 +80,15 @@
outputs = outputs =
{ {
self, self,
darwin, darwinAarch64,
darwinX86,
nix-homebrew, nix-homebrew,
homebrew-core, homebrew-core,
homebrew-cask, homebrew-cask,
home-manager, homeManagerAarch64,
nixpkgs, homeManagerX86,
nixpkgsAarch64,
nixpkgsX86,
nixd, nixd,
sops-nix, sops-nix,
nix-vscode-extensions, nix-vscode-extensions,
@@ -82,17 +98,33 @@
}@inputs: }@inputs:
let let
user = "olaf"; user = "olaf";
lib = nixpkgsAarch64.lib;
darwinSystems = [ darwinSystems = [
"aarch64-darwin" "aarch64-darwin"
"x86_64-darwin" "x86_64-darwin"
]; ];
forAllSystems = f: nixpkgs.lib.genAttrs darwinSystems f; perSystem = {
aarch64-darwin = {
nixpkgs = nixpkgsAarch64;
darwin = darwinAarch64;
home-manager = homeManagerAarch64;
pkgs = nixpkgsAarch64.legacyPackages.aarch64-darwin;
};
x86_64-darwin = {
nixpkgs = nixpkgsX86;
darwin = darwinX86;
home-manager = homeManagerX86;
pkgs = nixpkgsX86.legacyPackages.x86_64-darwin;
};
};
forAllSystems = f: lib.genAttrs darwinSystems f;
devShell = devShell =
system: system:
let let
pkgs = nixpkgs.legacyPackages.${system}; pkgs = perSystem.${system}.pkgs;
in in
{ {
default = default =
@@ -125,12 +157,17 @@
}; };
}; };
mkApp = scriptName: system: { mkApp =
scriptName: system:
let
pkgs = perSystem.${system}.pkgs;
in
{
type = "app"; type = "app";
program = "${ program = "${
(nixpkgs.legacyPackages.${system}.writeScriptBin scriptName '' (pkgs.writeScriptBin scriptName ''
#!/usr/bin/env bash #!/usr/bin/env bash
PATH=${nixpkgs.legacyPackages.${system}.git}/bin:$PATH PATH=${pkgs.git}/bin:$PATH
echo "Running ${scriptName} for ${system}" echo "Running ${scriptName} for ${system}"
sudo chmod +x ${self}/apps/${system}/${scriptName} sudo chmod +x ${self}/apps/${system}/${scriptName}
exec ${self}/apps/${system}/${scriptName} exec ${self}/apps/${system}/${scriptName}
@@ -147,15 +184,23 @@
in in
{ {
devShells = forAllSystems devShell; devShells = forAllSystems devShell;
apps = nixpkgs.lib.genAttrs darwinSystems mkDarwinApps; apps = lib.genAttrs darwinSystems mkDarwinApps;
darwinConfigurations = nixpkgs.lib.genAttrs darwinSystems ( darwinConfigurations = lib.genAttrs darwinSystems (
system: system:
darwin.lib.darwinSystem { let
systemConfig = perSystem.${system};
in
systemConfig.darwin.lib.darwinSystem {
inherit system; inherit system;
specialArgs = inputs // { inherit system; }; specialArgs = inputs // {
inherit system;
nixpkgs = systemConfig.nixpkgs;
darwin = systemConfig.darwin;
home-manager = systemConfig.home-manager;
};
modules = [ modules = [
home-manager.darwinModules.home-manager systemConfig.home-manager.darwinModules.home-manager
nix-homebrew.darwinModules.nix-homebrew nix-homebrew.darwinModules.nix-homebrew
{ {
nix-homebrew = { nix-homebrew = {
@@ -170,7 +215,7 @@
}; };
home-manager.sharedModules = home-manager.sharedModules =
nixpkgs.lib.optionals (system != "x86_64-darwin") [ lib.optionals (system != "x86_64-darwin") [
catppuccin.homeModules.catppuccin catppuccin.homeModules.catppuccin
]; ];
} }