State
dots keeps local state in the dotfiles repo:
text
.dots/state.jsonDo not commit this file. It belongs to one machine.
State is what lets dots remove things safely. When dots check or dots apply sees that a declared resource already matches the machine, it records that resource. If the declaration is later removed from dots.lua, dots check can show the matching remove without touching unrelated files.
List managed entries
Run:
sh
dots state listExample entries:
text
symlink:/home/me/.zshrc
package:paru:ripgrep
service:systemd:start:docker.service
font:/home/me/.local/share/fonts/dots/runcat.ttf
group:media
user-group:mediaForget an entry
Use forget when something should stay on the machine but stop being managed by dots:
sh
dots state forget symlink:/home/me/.zshrc
dots state forget package:paru:ripgrep
dots state forget service:systemd:start:docker.service
dots state forget group:mediaThis only edits state. It does not remove files, uninstall packages, or stop services.