{
description = "WeetHet's darwin system flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
darwin = {
url = "github:lnl7/nix-darwin";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
rust-overlay = {
url = "github:oxalica/rust-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
fh = {
url = "https://flakehub.com/f/DeterminateSystems/fh/*.tar.gz";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{
self,
darwin,
nixpkgs,
home-manager,
rust-overlay,
nixvim,
fh,
...
}@inputs:
let
nixpkgsConfig = {
config = {
allowUnfree = true;
};
overlays = [
(import rust-overlay)
(final: prev: { fh = fh.packages.${prev.system}.default; })
];
};
pinNixpkgs = (
{ ... }:
{
nix.registry.nixpkgs.flake = nixpkgs;
}
);
system = "aarch64-darwin";
in
{
darwinConfigurations.weethet = darwin.lib.darwinSystem {
inherit system;
modules = [
./configuration.nix
./system.nix
pinNixpkgs
home-manager.darwinModules.home-manager
{
nixpkgs = nixpkgsConfig;
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users.weethet = import ./home;
extraSpecialArgs = inputs;
};
}
];
};
formatter.${system} = (import nixpkgs { inherit system; }).nixfmt-rfc-style;
};
}