My personal dotfiles managed with GNU Stow and Nix-Darwin.
- Shell: Zsh with Starship prompt, syntax highlighting, and autosuggestions
- Editor: Neovim configuration
- Terminal: Tmux, Ghostty, WezTerm configurations
- Window Management: Aerospace, Hammerspoon, SKHD
- Status Bar: Sketchybar
- Package Management: Nix-Darwin for declarative macOS configuration
- Development Tools: Docker, Kubernetes, Terraform, Ansible, and more
cd ~/dotfiles
stow .First time setup from this checkout:
cd ~/dotfiles
./nix-darwin/setup.shThe setup script installs Determinate Nix if nix is missing, rewrites the
nix-darwin flake for the current user and host, then bootstraps darwin-rebuild
from the flake.
After modifying flake.nix or home.nix:
cd ~/dotfiles/nix-darwin
darwin-rebuild switch --flake .To update flake inputs first:
cd ~/dotfiles/nix-darwin
nix flake update
darwin-rebuild switch --flake .If you see "cached failure" errors:
cd ~/dotfiles/nix-darwin
nix flake update
nix store gc # Clear old builds
darwin-rebuild switch --flake .After modifying .zshrc:
source ~/.zshrcnix-darwin/flake.nix- System packages and macOS settingsnix-darwin/home.nix- User-specific home-manager configurationnix/nix.conf- Nix configuration
zshrc/.zshrc- Zsh configuration with aliases and functions
nvim/- Neovim configurationtmux/- Tmux configurationstarship/- Starship prompt configurationghostty/- Ghostty terminal configurationaerospace/- Aerospace window managersketchybar/- Sketchybar status bar
- Git, GitHub CLI
- Docker, Docker Compose
- Neovim, Vim
- Go, Direnv
- kubectl, kubectx, helm
- AWS CLI, Google Cloud SDK, Azure CLI
- Terraform, Ansible, Packer, Vault
- PostgreSQL (psql), MySQL, Redis, MongoDB
- eza (modern ls), bat (modern cat), fd (modern find)
- fzf (fuzzy finder), ripgrep, zoxide
- jq, yq, wget, curl
- htop, btop
- nmap, ffuf, gobuster, ngrok
Managed declaratively in flake.nix:
- Dock: Auto-hide, no recent apps, 48px icons
- Finder: Show all extensions, hidden files, path bar, status bar
- Keyboard: Fast key repeat, no auto-correct
- Trackpad: Tap to click, three-finger drag
- Screenshots: Saved to
~/Pictures/screenshotsas PNG - Security: Touch ID for sudo enabled
# Search for packages
nix search nixpkgs <package-name>
# List installed packages
nix-env -q
# Update flake inputs
nix flake update ~/dotfiles/nix-darwin# Navigation
l # List files with eza
lt # Tree view
fcd # Fuzzy find directory and cd
fv # Fuzzy find file and open in nvim
# Git shortcuts
gc # git commit -m
gp # git push origin HEAD
gst # git status
# Kubernetes
k # kubectl
kx # kubectx
kns # kubens
# Docker
dco # docker compose
dps # docker ps
# Utilities
C # pbcopy (copy to clipboard)If you encounter SSL errors, ensure the certificate path is set:
export NIX_SSL_CERT_FILE=/etc/nix/macos-keychain.crtRestart the Nix daemon:
sudo launchctl kickstart -k system/systems.determinate.nix-daemonPersonal dotfiles - use at your own risk!