This repository aims to provide full declarative configurations for my MacOS machines.
- System: Nix-darwin for declarative MacOS configuration.
- User Management: Home Manager integration for user-specific packages and dotfiles.
- Homebrew: nix-homebrew for declarative management of Casks and formulae.
- macOS only: This configuration is designed specifically for macOS (Darwin)
- sudo access: The installation requires administrator privileges
- Fresh install recommended: While this can be run on an existing system, it will modify system-level configurations
Run this one-liner to automatically install everything:
curl -fsSL https://raw.githubusercontent.com/dsalaza4/env/main/install.sh | zsh -- <machine>Where <machine> is the name of the machine you want to install. personal will be used by default.
This script will:
- Install Determinate Nix (if not already installed)
- Clone this repository to a temporary directory
- Run the nix-darwin configuration to set up your system
After installation, you can manage your system configuration using the included justfile commands:
-
just build [MACHINE](orjust b [MACHINE]): Rebuild the system configurationjust build # Rebuilds the personal machine (default) just build work # Rebuilds the work machine
Use this after making changes to your configuration files.
-
just update(orjust u): Update flake dependenciesjust update
This updates all Nix flake inputs to their latest versions.
This repository supports multiple machine configurations under machines/:
machines/personal/- Your personal machine (default)machines/test/- CI test configuration
To add a new machine:
- Copy
machines/personal/tomachines/<name>/ - Customize the configuration in
machines/<name>/ - Add a new
darwinConfigurations.<name>entry inflake.nix - Build with
just build <name>
- Edit configuration files in this repository
- Run
just buildto apply changes (orjust build <machine>for a specific machine) - Commit and push your changes to keep them synchronized
- Docker Desktop: Not available via nixpkgs or homebrew.