Dotfiles
A tracked repository of personal configuration, making a machine setup reproducible.
Dotfiles are the hidden configuration files that define a personal computing environment — shell setup, editor preferences, tool configuration — and, by extension, the tracked repository people keep them in.
The point is reproducibility: a new machine becomes a checkout and a setup script rather than weeks of rediscovery. The secondary benefit is larger than expected — having the configuration under version control makes it editable with confidence, since any change can be reverted.
A dotfiles repository has a characteristic structure. Configuration that respects XDG Base Directory Specification lives in a tracked directory the tools already look in. Configuration that does not is tracked and symlinked into place. Data directories, caches, and credential stores are deliberately excluded, which usually means a whitelist-style ignore file — ignore everything, then re-include the specific things worth keeping.
Package manifests belong here too: a declarative list of installed software makes the machine reconstructible rather than merely configured. And the maintenance activity that pays best is periodic deletion — a dotfiles repository accumulates configuration for tools that were uninstalled long ago, and every stale entry is a small piece of misdirection for the next person to read it, including yourself.
See also5
Hand-picked in the note itself — the neighbours worth reading next.
XDG Base Directory Specification
A convention placing configuration, data, cache, and state in defined directories rather than the home directory.
Systems & Tooling5 connections
Symbolic Link
A file that points at another path, resolved transparently by most operations.
Systems & Tooling5 connections
Shell
The interactive command interpreter, and a programming language with unusually sharp edges.
Systems & Tooling15 connections
Package Manager
The tool that resolves, fetches, and installs dependencies, and pins them for reproducibility.
Systems & Tooling10 connections
Environment Variable
A named value in a process's environment, inherited by its children — the standard configuration channel.
Systems & Tooling14 connections
Related1
Nearby in the graph rather than deliberately chosen. Looser, sometimes surprising.
Linked from5
Notes elsewhere in the wiki that reach for this one.
- Environment VariableSystems & Tooling
A named value in a process's environment, inherited by its children — the standard configuration channel.
- Package ManagerSystems & Tooling
The tool that resolves, fetches, and installs dependencies, and pins them for reproducibility.
- ShellSystems & Tooling
The interactive command interpreter, and a programming language with unusually sharp edges.
- Symbolic LinkSystems & Tooling
A file that points at another path, resolved transparently by most operations.
- XDG Base Directory SpecificationSystems & Tooling
A convention placing configuration, data, cache, and state in defined directories rather than the home directory.