| dev-envs | ||
| hosts | ||
| modules/darwin/services | ||
| overlays | ||
| pkgs | ||
| .gitignore | ||
| AGENTS.md | ||
| flake.lock | ||
| flake.nix | ||
| README.md | ||
Nix Configuration
Declarative, reproducible system configuration using Nix for macOS (nix-darwin) and NixOS. Includes cross-platform development environments for VA projects.
Hosts
darwin-common (all macOS)
Nix packages: vim, neovim, git, gh, alacritty, ripgrep, fd, wget, tree, htop Homebrew brews: powerlevel10k, zsh-autosuggestions, zsh-syntax-highlighting, bat, eza, fzf, direnv, redis, libpq, gnupg, ca-certificates, stow, tmux, ncurses, pinentry-mac Homebrew casks: claude, cursor, obsidian, rectangle-pro Font: MesloLGS Nerd Font
mbp (personal)
Includes darwin-common plus:
Homebrew casks: bambu-studio, steam
a6mbp (work)
Includes darwin-common plus:
Nix packages: awscli2, docker-compose Homebrew brews: ddev Homebrew casks: notion, slack, zoom
gnarbox (NixOS)
System: GNOME desktop, systemd-boot, NetworkManager Packages: vim, neovim, git, gh, alacritty, ripgrep, fd, wget, tree, htop, bat, eza, fzf, direnv, stow, tmux, redis, libpq, gnupg, vlc, discord, obsidian, claude-code, cursor, firefox, steam (with proton-ge-bin) Zsh plugins: powerlevel10k, autosuggestions, syntax-highlighting Font: MesloLGS Nerd Font
Prerequisites
macOS only: Install Determinate Nix Installer:
curl -fsSL https://install.determinate.systems/nix | sh -s -- install --determinate
NixOS: Nix comes pre-installed.
Installation
Clone the repository:
git clone https://git.snowboardtechie.com/bryan/nix-configs.git ~/code/nix-configs
cd ~/code/nix-configs
Build and activate:
macOS:
darwin-rebuild switch --flake '.#mbp' # or '.#a6mbp' for work machine
NixOS (first build requires experimental features flag):
sudo nixos-rebuild switch --flake '.#gnarbox' --extra-experimental-features 'nix-command flakes'
Usage
Apply Changes
macOS:
darwin-rebuild switch --flake '~/code/nix-configs#mbp'
NixOS:
sudo nixos-rebuild switch --flake '~/code/nix-configs#gnarbox'
Update Dependencies
nix flake update
# then rebuild using commands above
Development Environments
Cross-platform development environments for VA projects:
- vets-website: Node 14.15.0, Yarn 1.x, Cypress → vets-website
- vets-api: Ruby 3.3.6, PostgreSQL, Redis, Kafka → vets-api
- next-build: Node 24, Yarn 3.x, Playwright → next-build
- component-library: Node 22, Yarn 4.x, Puppeteer → component-library
Activate manually:
nix develop '~/code/nix-configs#vets-website'
Auto-activate with direnv:
cd ~/code/nix-configs
./dev-envs/setup-va-envrcs.sh # Creates .envrc files for all VA repos
Resources
3 gits, one repo
This repository syncs to multiple remotes. The primary repository is at git.snowboardtechie.com, with backups on Codeberg and GitHub.
License
This configuration is free to use and modify for your own purposes.