Manage macOS using Nix, nix-darwin and Home Manager.
Set hostname to a known (configured) value:
- m4-mbp (macOS)
- macos-virtual (macOS)
- drummer (NixOS)
- xcel (Debian, Home Manager)
- pi-01 (Debian/Pi, Home Manager)
Install Nix:
sh <(curl -L https://nixos.org/nix/install) --daemonInstall command line tools for git (brute force):
xcode-select --installGive Terminal.app "Full Disk Access" in System Preferences > Privacy & Security > Privacy > Full Disk Access. This is required for some of the I've disabled this for now.nix-darwin system settings to apply successfully.
Install Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Clone system-config
mkdir -p ~/dev/src
cd ~/dev/src
git clone https://github.com/johnallen3d/system-config.git
cd system-configInstall nix-darwin and initial apply:
nix \
--extra-experimental-features "flakes nix-command" \
run nix-darwin \
-- switch --flake ~/dev/src/system-config# on macOS
set -xg NIXPKGS_ALLOW_UNFREE 1; darwin-rebuild switch --impure --flake ~/dev/src/system-config/
# on NixOS
sudo nixos-rebuild switch --impure --flake ~/dev/src/system-config/.#
# on Debian/Pi (using home-manager)
home-manager switch -b backup --flake ~/dev/src/system-config/.#john.allen@pi-01
# on Debian/Orb (using home-manager)
home-manager switch -b backup --flake ~/dev/src/system-config/.#john.allen@xcel --impurenix flake update --commit-lock-file
# or from another directory
pushd ~/dev/src/system-config; nix flake update --commit-lock-file; nixswitch; popd