This repository contains the configuration for Seanβs macOS system, built using nix-darwin and home-manager, fully modularized via Nix flakes.
It manages:
- System-wide settings (defaults, packages, services)
- Homebrew (via nix-darwin + nix-homebrew integration)
- User environment (shell setup, dotfiles, tools) using Home Manager
- Modular split across multiple focused .nix files
.
βββ flake.nix # Top-level flake defining inputs, outputs, and module imports
βββ flake.lock # Locked dependencies (generated automatically)
βββ modules/ # Modular system configuration
β βββ configuration.nix # Basic system settings
β βββ homebrew.nix # Homebrew and nix-homebrew setup
β βββ system-defaults.nix # macOS defaults
β βββ users.nix # User account and Home Manager environment
βββ dotfiles/ # Linked dotfiles managed via Home Manager
β βββ zshrc
β βββ vimrc
β βββ p10k.zsh
β βββ gitconfig
β βββ kitty.conf
β βββ vscode_settings.json
Follow the nix-darwin installation instructions:
sh <(curl -L https://nixos.org/nix/install)
nix run github:LnL7/nix-darwin
git clone https://github.com/sbenson09/macos-nix.git
cd sbenson-macos-flake
For personal computers:
darwin-rebuild switch --flake .#sbenson
For work computers:
darwin-rebuild switch --flake .#sbenson
nix flake update
This updates flake.lock to the latest upstream revisions.
- Apps installed via Homebrewβs mas-cli may require manual App Store login.
- macOS System extensions may require manual approval in macOS System Settings.
- Certain apps and configurations are only applied to personal computers.
- Different usernames anticipated for personal and work computers.