Skip to content

Repository files navigation

Dotfiles

These are my dotfiles. There are many like them but these ones are mine.

Built up over a few decades of Unix use, starting with zsh in 1995.

Stack

LayerToolPurpose
DotfileschezmoiManage dotfiles across machines
Systemnix-darwinDeclarative macOS configuration
PackagesHome ManagerUser environment via Nix
Shellzsh + ZimFast, minimal zsh framework
PromptStarshipCross-shell prompt

Quick Start

# Install chezmoi and apply dotfiles
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply ijcd
# Nix setup (if not already installed)
curl -L https://nixos.org/nix/install | sh
# Apply nix-darwin + Home Manager
darwin-rebuild switch --flake ~/.config/nix

Organization

~/.local/share/chezmoi/
├── dot_config/
│ ├── nix/ # nix-darwin + Home Manager flake
│ ├── zsh/ # zsh config (zshrc, aliases, functions)
│ └── starship.toml # prompt config
├── dot_local/
│ └── bin/ # personal scripts (~/.local/bin)
├── dot_gitconfig # git configuration
├── dot_tmux.conf # tmux configuration
└── archive/ # historical configs (preserved for posterity)

Scripts

Scripts live in ~/.local/bin with namespaced prefixes:

PrefixDomain
git-*Git extensions (callable as git foo)
docker-*Docker helpers
term-*Terminal utilities
macos-*macOS-specific tools

Key Files

FilePurpose
dot_config/zsh/zshrcMain zsh config
dot_config/zsh/aliases.zshShell aliases
dot_config/zsh/functions/Autoloaded functions
dot_gitconfigGit config with aliases
dot_config/nix/flake.nixNix system configuration

Useful Commands

# Chezmoi
chezmoi apply # Apply changes
chezmoi diff # See pending changes
chezmoi edit <file># Edit a managed file
chezmoi cd# cd to chezmoi source dir# Nix
darwin-rebuild switch --flake ~/.config/nix # Rebuild system
nix flake update # Update flake inputs# Zim
zimfw update # Update Zim modules
zimfw compile # Recompile for speed

Tips

  • zmv: zmv '(*).txt' '$1.md' - powerful bulk rename
  • fzf: ctrl-r history, ctrl-t files
  • git aliases: See git config --get-regexp alias or dot_gitconfig

History

I've been using zsh since 1995. The dotfiles have evolved through many incarnations:

  1. 1995-2000s: Scattered .rc files, MIT Athena influence
  2. 2000s: Custom module system with symlinks
  3. 2010s: zgen + oh-my-zsh + prezto modules
  4. 2024+: chezmoi + nix-darwin + Home Manager + Zim

See archive/ for historical configs preserved for posterity, including my 1995 MIT Xresources, 2000s email infrastructure, and 2010s Ruby setup.

About

My dotfiles.

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages