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 also14
Symbolic Link
A file that points at another path, resolved transparently by most operations.
Systems & Tooling14 connections
Terminal User Interface
An interface rendered as text in a terminal, and the design conventions that make command-line tools humane.
Graphics & Rendering16 connections
Shell
The interactive command interpreter, and a programming language with unusually sharp edges.
Systems & Tooling24 connections
Package Manager
The tool that resolves, fetches, and installs dependencies, and pins them for reproducibility.
Systems & Tooling27 connections
Environment Variable
A named value in a process's environment, inherited by its children — the standard configuration channel.
Systems & Tooling23 connections
Silent Failure
A failure that produces no signal, so the absence of an error reads as success.
Method73 connections
Time Zone
Civil time is a political layer over solar time, and its rules change often enough to be data.
Systems & Tooling21 connections
Secret Management
Storing, distributing, and rotating credentials without embedding them in code or history.
Systems & Tooling33 connections
Containerization
Packaging an application with its dependencies into an isolated, reproducible runtime unit.
Systems & Tooling33 connections
Linux Distribution
A complete operating system assembled around the Linux kernel, combining it with system tools, a package manager, and a set of opinions about release cadence, defaults, and freedom, with hundreds in active use.
Systems & Tooling13 connections
Desktop Environment
The bundle of software that makes up a graphical desktop, including the window manager, panels, file manager, settings and a shared look, which on Linux is a choice among independent projects rather than part of the operating system.
Systems & Tooling14 connections
Ricing
The hobby of customizing a computer desktop's appearance into a coherent look, and the online culture of sharing screenshots and configuration files.
Meaning & Society9 connections
Secure Shell
The encrypted protocol for logging into and running commands on remote machines, authenticated by key pairs, that also tunnels other traffic and underpins Git.
Systems & Tooling18 connections
Command-Line Interface
Operating a computer by typing commands and reading text replies, the interface inherited from teletypes that remains the fastest, most scriptable, and least discoverable way to control software.
Systems & Tooling14 connections
Linked from11
- Atomic File WriteSystems & Tooling
Replacing a file so that readers and crashes see either the complete old version or the complete new one, never a half-written mix, by writing a temporary file and renaming it over the original.
- Command-Line InterfaceSystems & Tooling
Operating a computer by typing commands and reading text replies, the interface inherited from teletypes that remains the fastest, most scriptable, and least discoverable way to control software.
- Desktop EnvironmentSystems & Tooling
The bundle of software that makes up a graphical desktop, including the window manager, panels, file manager, settings and a shared look, which on Linux is a choice among independent projects rather than part of the operating system.
- Environment VariableSystems & Tooling
A named value in a process's environment, inherited by its children — the standard configuration channel.
- GitignoreVersion Control & Delivery
The file of patterns telling Git which files to leave untracked, such as build output, dependencies, editor clutter, and local secrets, along with the traps of files that were already tracked and secrets already committed.
- Linux DistributionSystems & Tooling
A complete operating system assembled around the Linux kernel, combining it with system tools, a package manager, and a set of opinions about release cadence, defaults, and freedom, with hundreds in active use.
- Package ManagerSystems & Tooling
The tool that resolves, fetches, and installs dependencies, and pins them for reproducibility.
- RicingMeaning & Society
The hobby of customizing a computer desktop's appearance into a coherent look, and the online culture of sharing screenshots and configuration files.
- 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.