Manage dotfiles declaratively and reuse your setup across machines
Docs • Quick start • Install • Changelog • Release
dots helps you manage machine configuration. Create symlinks, install
packages, start and enable services, install fonts, and run commands in a
declarative way.
Use it for your computers, dotfiles, or servers. Declare the setup once and reuse it across your machines.
Install the latest release:
curl -fsSL https://raw.githubusercontent.com/phcurado/dots/main/install.sh | shCreate a dotfiles repo, or use one you already have:
dots initThe command above creates the file dots.lua, the main entrypoint for your configuration.
You can manage symlinks, packages, services, and more:
local packages = { "bat", "ripgrep" }
dots.symlink("~/.zshrc", ".zshrc")
if dots.platform.family == "arch" then
dots.pacman.install({ "base-devel", "git" })
dots.yay.enable({ method = "aur" })
dots.yay.install(packages)
dots.systemd.enable({ "docker.service" })
dots.systemd.start({ "docker.service" })
end
if dots.platform.family == "darwin" then
dots.brew.enable()
dots.brew.install(packages)
dots.brew.cask({ "firefox" })
endPlan the changes:
dots checkOn a fresh Arch distro, it should show:
Symlinks:
+ symlink ~/.zshrc -> .zshrc
Packages:
+ pacman base-devel
+ pacman git
+ yay bat
+ yay ripgrep
Services:
+ systemd enable docker.service
+ systemd start docker.service
Check: 7 to create, 0 to update, 0 to destroy.Apply the changes:
dots applydots will create the symlinks, install the packages, and start the services you declared.
You declare what the system should have and how it should behave, then reuse the
same setup across the machines that need it.
See the docs for more.
