Home

Awesome

flakelight-darwin

A nix-darwin module for flakelight.

About

Provides integration for darwinConfigurations & darwinModules into your flakelight config, like so:

{
  inputs = {
    flakelight.url = "github:nix-community/flakelight";
    flakelight-darwin.url = "github:cmacrae/flakelight-darwin";
  };
  outputs = { flakelight, flakelight-darwin, ... }: flakelight ./. {
    imports = [ flakelight-darwin.flakelightModules.default ];
    darwinConfigurations.example = {
      system = "aarch64-darwin";
      modules = [{ system.stateVersion = 4; }];
    };
  };
}

This mimics the expression of nixosConfigurations & nixosModules found in flakelight. Thus it benefits from the same directory and module(s) conventions, such that:

For further guidance, consult flakelight's excellent API guide and note the documentation on nixosConfigurations & nixosModules, wherein you can substitute darwinConfigurations & darwinModules

Getting Started

There are two example templates provided

basic

Provides a minimal example Darwin system declaration, directly in flake.nix.

Instantiate your own with:

nix flake init -t github:cmacrae/flakelight-darwin

autoload

Provides an example configuration comprised of multiple Darwin system declarations, importing an example module, represented in a directory structure:

.
├── flake.nix
└── nix
    ├── darwin
    │   ├── host1
    │   │   ├── configuration.nix
    │   │   └── default.nix
    │   └── host2
    │       ├── configuration.nix
    │       └── default.nix
    └── darwinModules
        └── example.nix

Instantiate your own with:

nix flake init -t github:cmacrae/flakelight-darwin#autoload