Files
dotfiles/nix/flake.nix
2024-07-12 19:44:23 +02:00

60 lines
1.7 KiB
Nix

{
description = "My Darwin and home-manager dotfiles";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
nix-darwin = {
url = "github:LnL7/nix-darwin";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
mac-app-util.url = "github:hraban/mac-app-util";
};
outputs = { self, nix-darwin, home-manager, nixpkgs, mac-app-util }:
let
mkDarwinConfig = { system, hostname, username }:
let
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
in
nix-darwin.lib.darwinSystem {
inherit system;
specialArgs = { inherit pkgs; };
modules = [
./hosts/${hostname}/configuration.nix
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";
};
};
};
}