This repo contains my macOS configuration managed with nix-darwin, home-manager, and nix-homebrew.
It currently defines:
- macOS defaults such as Dock layout, Finder settings, screenshots location, and Touch ID for
sudo - Homebrew-managed GUI apps such as Dropbox, Google Drive, VS Code, Spotify, Obsidian, and KeePassXC
- Home Manager-managed user packages, shell configuration, Git settings, GPG agent configuration, Vim settings, and dotfiles such as
.tmux.confand.autorestic.yaml - A one-time activation step that symlinks
~/.sshto~/Dropbox/Github/mac-setup/sshif~/.sshdoes not already exist
Install the Apple developer tools first:
xcode-select --installClone the repo into Dropbox so the SSH activation hook points at the expected location:
mkdir -p ~/Dropbox/Github
git clone https://github.com/daniel-wells/mac-setup.git ~/Dropbox/Github/mac-setup
cd ~/Dropbox/Github/mac-setupInstall Nix with Determinate Systems:
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- installLoad Nix into the current shell, then apply the configuration:
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
nix run nix-darwin -- switch --flake .#Daniels-MacBook-ProAfter the first switch, subsequent updates are applied from the repo with:
darwin-rebuild switch --flake .#Daniels-MacBook-Pro