This is a brief description of my Mac M1 developer setup, which is currently based on Nix for Darwin and Linux. The core idea is to have a few tools like make
or git
available on both systems and have the rest available on a per-project basis. That way I switch language or database versions per project without influencing the rest of the system.
Note: The following docs contain automation, but they are not fully automated. This is on purpose. I like it more descriptive, so it's comprehensible and adaptable for other future setups.
My setup currently consists of 4 building blocks:
- Nix on Mac: nix-mac/
- Tracking dotfiles with git: track-dotfiles.md
- Linux VM with UTM and NixOS: linux-vm-nixos
- Project specific Nix configuration: nix-projects