My system configuration (currently for an M-series macOS device.)
I use nix-darwin to manage my system. This allows me to rebuild the state as and when, and do so across multiple machines.
- Nix installation docs
- The nix-darwin & nix-homebrew docs (see above)
- This great blog post by Dhananjay Balan
- How to auto refresh all (most?) macOS settings after applying flake
- Investigate nix-colors pkg (for settings consistent colours across apps)
- Update fish config with aliases (gp, gpa, gswm etc)
- Get working with multiple users
- Install xcode dev tools.
xcode-select --install
-
Give Terminal.app full disk access (see here)
This allows nix-darwin to configure things like com.apple.universalaccess.
System Settings > Privacy & Security > Full Disk Acces > select Terminal.app
TODO: Find out if I need to do this for kitty too, for future runs after everything including kitty is installed.
-
Install nix (see here).
sh <(curl -L https://nixos.org/nix/install)
- Clone this repo.
cd ~/Developer
git clone [email protected]:jakecleary/sys.git
- Install nix-darwin.
nix run nix-darwin -- switch --flake ~/Developer/sys
- Init system using nix-darwin
darwin-rebuild switch --flake ~/Developer/sys
darwin-rebuild switch --flake ~/Developer/sys
- Update input sources.
nix flake update
- Update packages based on updated input sources.
darwin-rebuild switch --flake /Developer/sys