An extensive demo featuring a plethora of configurations that can serve as a reference for your setup. However, exercise caution, as it may OVERWRITE your system configuration. DO NOT deploy it directly to your system.
- Start your nix-darwin journey by following the minimal configuration.
- Read all the files in this repository, and understand what they do.
- If you have trouble understanding, ryan4yin/nixos-and-flakes-book is a good resource to learn nix and flakes.
- Copy and CUSTOMIZE the configuration you need from this demo to your own configuration.
- Run
just darwin
in the root of your nix configuration to deploy your configuration.
Other Juse commands:
# See all available commands
just
# Clean up the nix store
just clean
just gc
Your current nix-darwin configuration's structure should be as follows:
› tree
.
├── flake.lock # a lock file generated by nix, you can ignore it for now
├── flake.nix # the entry point of your nix configuration, you need to add your hostname here
├── home # home-manager's configuration folder, help you manage your dotfiles & user-level apps.
│ ├── shell.nix # customize zsh's dotfiles
│ ├── core.nix # user-level apps from nixpkgs(nix's official package repository)
│ ├── default.nix # home-manager's entry point, you need to import all other nix files in home folder here.
│ ├── git.nix # customize git's dotfiles
│ └── starship.nix # customize starship's dotfiles
├── Justfile # a Justfile to simplify your nix-darwin workflow.
├── README.md
├── modules # a folder contains all your nix-darwin configuration files
│ ├── apps.nix # contains all your homebrew & nix apps(both GUI & CLI)
│ ├── host-users.nix # defines your hostname & all your system users
│ ├── nix-core.nix # nix's core configuration, you can ignore it for now
│ └── system.nix # defines your macOS's system configuration(like dock, trackpad, keyboard, finder, loginwindow, etc.)
└── scripts
└── darwin_set_proxy.py # a script to set http proxy for nix & homebrew.
If you are in a network environment that requires proxy(such as China), you may need to set up proxy for nix and homebrew.
Related files: