Nix configs for my machines
Find a file
2025-12-06 17:12:06 -08:00
dev-envs add yarn-install-with-scripts for when needed, add content-build 2025-12-04 12:20:32 -08:00
hosts add monal 2025-12-05 09:19:22 -08:00
modules/darwin/services extract studio services into modules 2025-11-29 11:14:02 -08:00
overlays add pinentry and nix-direnv 2025-11-13 19:07:22 -08:00
pkgs disable dualsense controller touchpad as mouse 2025-11-23 21:15:13 -08:00
.gitignore Initial commit 2025-10-27 20:21:42 -07:00
AGENTS.md add opencode and first draft AGENTS.md 2025-10-31 12:56:37 -07:00
flake.lock upgrade mbp 2025-12-06 17:12:06 -08:00
flake.nix add yarn-install-with-scripts for when needed, add content-build 2025-12-04 12:20:32 -08:00
README.md add note about repo syncing 2025-11-12 22:37:25 -08:00

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.