Skip to Content
GuidesUse Determinate with nix-darwin

Use Determinate with nix-darwin

If you don’t yet have a nix-darwin configuration, we recommend creating one using one of Determinate Nix’s flake templates:

Generate a nix-darwin configuration using Nix
nix flake init --template "https://flakehub.com/f/DeterminateSystems/flake-templates/0#nix-darwin"

Follow the instructions in the welcome text to get started.

You can use nix-darwin with Determinate without issue provided that you let Determinate Nix handle your Nix configuration rather than nix-darwin. To that end, you need to add this line to your nix-darwin configuration:

flake.nix
{ darwinConfigurations.my-system-aarch64-darwin = nix-darwin.lib.darwinSystem { system = "aarch64-darwin"; modules = [ ({ ... }: { # Let Determinate Nix handle Nix configuration nix.enable = false; }) ]; }; }

To supply custom Nix configuration, such as values for trusted-substituters and trusted-public-keys, you can use the /etc/nix/nix.custom.conf file. See our documentation on configuring Determinate Nix for more information.

If you’d like to set that custom configuration using nix-darwin, you can use the determinate nix-darwin module. Here’s an example nix-darwin configuration that writes custom settings:

flake.nix
{ inputs.determinate.url = "https://flakehub.com/f/DeterminateSystems/determinate/3"; inputs.nix-darwin = { url = "https://flakehub.com/f/nix-darwin/nix-darwin/0"; inputs.nixpkgs.follows = "nixpkgs"; }; inputs.nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0"; outputs = { determinate, nixpkgs, ... }: { darwinConfigurations."my-username-aarch64-darwin" = inputs.nix-darwin.lib.darwinSystem { inherit system; modules = [ # Add the determinate nix-darwin module inputs.determinate.darwinModules.default ({ ... }: { # Let Determinate Nix handle Nix configuration rather than nix-darwin nix.enable = false; # Custom settings written to /etc/nix/nix.custom.conf determinate-nix.customSettings = { flake-registry = "/etc/nix/flake-registry.json"; }; }) ]; }; }; }
Last updated on