This repository contains my personal development environment configuration using Nix and Home Manager, with support for modular tooling like zsh, VSCode, dbt, ClickHouse, terraform, and python.
- 🧑💻 Shell config with
zsh+oh-my-zsh - 🛠 VSCode user settings
- 🐍 Python + virtualenv/pyenv
- 🏗 dbt + ClickHouse tools
- ☁️ Terraform & AWS CLI
- 🧙 Managed via
flake.nixwith Home Manager - 🔄 Shareable, reproducible dotfiles
.dotfiles/
├── flake.nix
├── flake.lock
├── home/
│ ├── colter.nix # Entry point for your user
│ └── shared/
│ ├── shell.nix # zsh + oh-my-zsh setup
│ ├── devtools.nix # python, dbt, terraform, clickhouse
│ └── vscode.nix # VSCode extensions and config
├── config/
│ └── vscode/
│ └── settings.json # VSCode settings
└── README.md
sh <(curl -L https://nixos.org/nix/install)Then enable Flakes:
mkdir -p ~/.config/nix
echo "experimental-features = nix-command flakes" >> ~/.config/nix/nix.confgit clone https://github.com/yourusername/dotfiles.git ~/.dotfiles
cd ~/.dotfileshome-manager switch --flake .#colter- Nix (with flakes enabled)
- Home Manager (
nix profile install home-manageror via flake) - A
zshshell - Optional:
pyenv,direnv, etc.
If you'd like to share this with teammates or others:
- Add additional user files in
home/(e.g.,home/cassi.nix) - Parameterize shared configs via
shared/*.nix - Avoid absolute paths in settings like
vscode/settings.json - Use
.envrcor host-specific overrides if needed
- Add secrets/SSH setup module
- Add
direnvand.envrcbootstrap - Modularize language-specific configs (e.g., Python, Terraform)