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";
inputs = {
nixpkgs = {
url = "github:nixos/nixpkgs//nixpkgs-26.05-darwin";
# url = "github:nixos/nixpkgs/nixpkgs-unstable";
nixpkgsAarch64 = {
url = "github:nixos/nixpkgs/nixpkgs-unstable";
};
home-manager = {
nixpkgsX86 = {
url = "github:nixos/nixpkgs//nixpkgs-26.05-darwin";
};
homeManagerAarch64 = {
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 = {
url = "github:nix-community/nixd";
};
darwin = {
# url = "github:nix-darwin/nix-darwin";
darwinAarch64 = {
url = "github:nix-darwin/nix-darwin";
inputs.nixpkgs.follows = "nixpkgsAarch64";
};
darwinX86 = {
url = "github:nix-darwin/nix-darwin/nix-darwin-26.05";
inputs.nixpkgs.follows = "nixpkgs";
inputs.nixpkgs.follows = "nixpkgsX86";
};
brew-src = {
@@ -43,7 +56,7 @@
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
inputs.nixpkgs.follows = "nixpkgsAarch64";
};
nix-vscode-extensions = {
@@ -67,12 +80,15 @@
outputs =
{
self,
darwin,
darwinAarch64,
darwinX86,
nix-homebrew,
homebrew-core,
homebrew-cask,
home-manager,
nixpkgs,
homeManagerAarch64,
homeManagerX86,
nixpkgsAarch64,
nixpkgsX86,
nixd,
sops-nix,
nix-vscode-extensions,
@@ -82,17 +98,33 @@
}@inputs:
let
user = "olaf";
lib = nixpkgsAarch64.lib;
darwinSystems = [
"aarch64-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 =
system:
let
pkgs = nixpkgs.legacyPackages.${system};
pkgs = perSystem.${system}.pkgs;
in
{
default =
@@ -125,12 +157,17 @@
};
};
mkApp = scriptName: system: {
mkApp =
scriptName: system:
let
pkgs = perSystem.${system}.pkgs;
in
{
type = "app";
program = "${
(nixpkgs.legacyPackages.${system}.writeScriptBin scriptName ''
(pkgs.writeScriptBin scriptName ''
#!/usr/bin/env bash
PATH=${nixpkgs.legacyPackages.${system}.git}/bin:$PATH
PATH=${pkgs.git}/bin:$PATH
echo "Running ${scriptName} for ${system}"
sudo chmod +x ${self}/apps/${system}/${scriptName}
exec ${self}/apps/${system}/${scriptName}
@@ -147,15 +184,23 @@
in
{
devShells = forAllSystems devShell;
apps = nixpkgs.lib.genAttrs darwinSystems mkDarwinApps;
apps = lib.genAttrs darwinSystems mkDarwinApps;
darwinConfigurations = nixpkgs.lib.genAttrs darwinSystems (
darwinConfigurations = lib.genAttrs darwinSystems (
system:
darwin.lib.darwinSystem {
let
systemConfig = perSystem.${system};
in
systemConfig.darwin.lib.darwinSystem {
inherit system;
specialArgs = inputs // { inherit system; };
specialArgs = inputs // {
inherit system;
nixpkgs = systemConfig.nixpkgs;
darwin = systemConfig.darwin;
home-manager = systemConfig.home-manager;
};
modules = [
home-manager.darwinModules.home-manager
systemConfig.home-manager.darwinModules.home-manager
nix-homebrew.darwinModules.nix-homebrew
{
nix-homebrew = {
@@ -170,7 +215,7 @@
};
home-manager.sharedModules =
nixpkgs.lib.optionals (system != "x86_64-darwin") [
lib.optionals (system != "x86_64-darwin") [
catppuccin.homeModules.catppuccin
];
}