Introduction
DotR is a dotfiles manager that is as dear as a daughter.
It keeps a repository of your configuration files (“dotfiles”) separate from
where they’re actually used on disk, and manages copying — or symlinking —
them into place. The repository is the source of truth; your ~/.bashrc,
~/.config/nvim/, and friends are deployments of it.
Why DotR?
- Plain files, not magic. Your dotfiles repository is just files and
directories under
dotfiles/, described by a singleconfig.toml. - Copy or symlink, your choice. Deploy as copies for a snapshot-based workflow, or as symlinks for live-editing.
- Environment-aware. Profiles let the same repository describe different machines — work, home, server — with different packages, variables, and destinations.
- Templated when you need it. Config files can embed Tera template syntax, compiled at deploy time with live variables, so the same template can render differently per machine or profile.
- Hooks for the messy parts. Pre/post actions run shell commands around deployment — installing dependencies, reloading a service, fixing permissions.
- Safe by default. Dry-run mode previews every operation, diff shows exactly what would change, and deploys only touch files that actually changed.
How it fits together
- You import an existing file or directory into the repository:
dotr import ~/.bashrc. DotR copies it intodotfiles/and registers it as a package inconfig.toml. - On a new machine, you deploy:
dotr deploy. DotR copies (or symlinks) every package from the repository to its destination. - After editing a deployed file, you update:
dotr update. DotR copies the changed file back into the repository, sodotfiles/always reflects what’s actually deployed.
Everything else in this book — profiles, variables, templating, actions, prompts, symlinks, clean mode, ignoring files, dependencies — builds on that loop.
Where to go next
- New to DotR? Start with Installation and Quick Start.
- Looking for a specific flag or config field? Jump straight to the CLI Reference or Configuration File Reference.