refactor(nix): improve reusability

This commit is contained in:
Stefan Imhoff
2024-07-12 19:44:23 +02:00
parent 79fbc14576
commit aab18de126

View File

@@ -3,37 +3,57 @@
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
nix-darwin = { nix-darwin = {
url = "github:LnL7/nix-darwin"; url = "github:LnL7/nix-darwin";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
mac-app-util.url = "github:hraban/mac-app-util"; mac-app-util.url = "github:hraban/mac-app-util";
}; };
outputs = { self, nix-darwin, home-manager, nixpkgs, mac-app-util }: { outputs = { self, nix-darwin, home-manager, nixpkgs, mac-app-util }:
# Build darwin flake using: let
# $ darwin-rebuild switch --flake ~/.dotfiles/nix/.#mac-mini mkDarwinConfig = { system, hostname, username }:
darwinConfigurations."mac-mini" = nix-darwin.lib.darwinSystem { let
modules = [ pkgs = import nixpkgs {
./hosts/mac-mini/configuration.nix inherit system;
config.allowUnfree = true;
mac-app-util.darwinModules.default };
in
home-manager.darwinModules.home-manager nix-darwin.lib.darwinSystem {
{ inherit system;
home-manager.useGlobalPkgs = true; specialArgs = { inherit pkgs; };
home-manager.useUserPackages = true; modules = [
home-manager.verbose = true; ./hosts/${hostname}/configuration.nix
home-manager.users.kogakure.imports = [ ./hosts/mac-mini/home.nix mac-app-util.homeManagerModules.default ]; mac-app-util.darwinModules.default
} home-manager.darwinModules.home-manager
]; {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.verbose = true;
home-manager.users.${username} = {
imports = [
./hosts/${hostname}/home.nix
mac-app-util.homeManagerModules.default
];
};
home-manager.extraSpecialArgs = { inherit pkgs; };
}
];
};
in
{
# Build darwin flake using:
# $ darwin-rebuild switch --flake ~/.dotfiles/nix/.#mac-mini
darwinConfigurations = {
"mac-mini" = mkDarwinConfig {
system = "aarch64-darwin";
hostname = "mac-mini";
username = "kogakure";
};
};
}; };
};
} }