WIP Nix Darwin setup for declaratively setting up a machine
Nix 49%
Nu 16%
Lua 16%
10%
Nushell 8%
Shell 1%

README.md

Johnny's Nix Darwin Config #

Installation on MacOS #

Set the computer's name to match the config by going to General > System Settings then clicking on the Name field and changing to Big-jBook-Pro.

Ensure Developer tools are installed on machine:

xcode-select --install

Ensure Rosetta is installed for running x86_64 apps (prefer aarch64-darwin apps though)

softwareupdate --install-rosetta --agree-to-license

Install Lix (has a better installer/uninstaller than Nix and is open source vs Determinate Nix)

curl --proto '=https' --tlsv1.2 -sSf -L https://install.lix.systems/lix | sh -s -- install

NOTE: at the time of writing this, the installer fails on the first attempt. Just run it again.

FYI: the installer requires sudo. Aslo choose "enable flakes" when asked.

Install/Bootstrap nix-darwin

First move this directory to ~/.config/nix-darwin

mkdir -p ~/.config
mv ./nix-config ~/.config/nix-darwin
cd ~/.config/nix-darwin

then run this command to bootstrap nix-darwin and also set up the system:

sudo -i nix run nix-darwin/master#darwin-rebuild -- switch --flake ~/.config/nix-darwin#Big-jBook-Pro

Finally, restart the computer to ensure system changes take effect (three-finger drag, touchId for sudo, etc).

Everything should be set up, you're done!

Installing, Configuring, and Updating #

Run this to update the system after making changes to the nix config:

sudo darwin-rebuild switch --flake .#Big-jBook-Pro

Resources #

This video was really helpful: setting up nix-darwin

Conventions #

Install GUI apps with homebrew. It's less finicky.