Skip to content

richban/system

Repository files navigation

Nix System Config & dotfiles

This repository manages system configurations for all of my OSX based machines. The system configurations are defined as a flake.nix.

🧠 Philosophy

  • nix-darwin and home-manager configurations are decoupled. Meaning both can be used independently.
  • home-manager can be (is) used as a module within nix-darwin. See common.nix file.
  # bootstrap home-manager
  hm = import ./home-manager;
  • home-manager is fully compatible as a standalone configuration, managed with the home-manager CLI - this requires standalone installation.
  • flake outputs define platform specific darwinConfigurations and home profile specific configurations homeConfigurations.

⚙️ Installation

Run the installer script to perform a multi-user installation. The installer also installs nix-darwin, since it doesn't work with flakes out of the box.

./bin/install_nix.sh

🚀 Bootstrapping

Darwin

Clone this repository into ~/Developer:

git@github.com:richban/dotfiles.git

Bootstrap a nix-darwin system using:

nix --extra-experimental-features "nix-command flakes" develop -c sysdo bootstrap --darwin

Bootstrap a home-manager configuration using:

nix --extra-experimental-features "nix-command flakes" develop -c sysdo bootstrap --home-manager