Architecture split.
This commit is contained in:
@@ -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,18 +157,23 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
mkApp = scriptName: system: {
|
mkApp =
|
||||||
type = "app";
|
scriptName: system:
|
||||||
program = "${
|
let
|
||||||
(nixpkgs.legacyPackages.${system}.writeScriptBin scriptName ''
|
pkgs = perSystem.${system}.pkgs;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
type = "app";
|
||||||
|
program = "${
|
||||||
|
(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}
|
||||||
'')
|
'')
|
||||||
}/bin/${scriptName}";
|
}/bin/${scriptName}";
|
||||||
};
|
};
|
||||||
|
|
||||||
mkDarwinApps = system: {
|
mkDarwinApps = system: {
|
||||||
"apply" = mkApp "apply" system;
|
"apply" = mkApp "apply" system;
|
||||||
@@ -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
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user