Skip to content

Latest commit

 

History

History

rich-demo

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Nix Darwin Kickstarter - Rich Demo

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.

How to Use

  1. Start your nix-darwin journey by following the minimal configuration.
  2. Read all the files in this repository, and understand what they do.
    1. If you have trouble understanding, ryan4yin/nixos-and-flakes-book is a good resource to learn nix and flakes.
  3. Copy and CUSTOMIZE the configuration you need from this demo to your own configuration.
  4. 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

Configuration Structure

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.

Notes on Network Proxy

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: