From Dotfile Managers
Dotfile managers focus on one job: keeping dotfiles in sync between a repo and your home directory. Dotkit does that too, but it’s also responsible for installing tools, packages, and running any other setup steps. If you’re already using a dotfile manager, you can keep it, wrap it, or replace its symlinking job with dotkit link.
Keeping your current tool
Section titled “Keeping your current tool”If your dotfile manager is working well, you don’t need to replace it. Just call it from a dotkit shell script:
cd ~/dotfilesstow -t ~ . # or: chezmoi apply, or: rcup, etc.Dotkit handles execution order and bootstrap. Your existing tool handles symlinking. They don’t conflict. You can use dotkit for packages, tools, and configs while keeping your dotfile manager for dotfiles.
It’s also possible to use any subfolder of a run.env folder, as it will skip execution. Then use a runner to execute your dotfile manager on the subfolder.
If you want to keep your dotfiles colocated in your dotkit profile at the dir level, ignore it’s execution with !dotfiles in order.txt.
Replacing symlinking with dotkit link
Section titled “Replacing symlinking with dotkit link”If you want dotkit to own the symlinking, just add a link.env file with DEST=~:
Before (separate dotfiles repo with a symlink tool):
~/dotfiles/ .zshrc .gitconfig .config/nvim/init.luaAfter (with link.env):
~/dotfiles/ link.env ← DEST=~ .zshrc .gitconfig .config/nvim/init.luaThen install dotkit CLI and run dotkit link ~/dotfiles to symlink every file to ~/, mirroring the structure. Existing files are backed up before being replaced.
Migrating dotfiles to a dotkit profile
Section titled “Migrating dotfiles to a dotkit profile”- Copy your dotfiles into
profiles/personal/dotfiles/ - Add
link.envwithDEST=~ - Run
dotkit link dotfiles --dry-run(ordotkit apply --dry-run) to preview - Run
dotkit link dotfilesto apply (existing files are backed up automatically)