Back to terminal tools
dotfiles cover

dotfiles

This is what you install if you want your terminal to look like mine.

GitHub

Setting a machine up

install.sh installs uv first, because the setup UI is itself a uv script, then opens it: two accent colours, the machine name, which pills belong in the status bars, and which tools to put on the machine. The panes on the right are real: the prompt is oh-my-posh print on a rendered copy of the actual template, the status bar is the string the installer assembles with its #(...) segments really executed, and the install plan is the same route resolution the run performs. A machine without uv, or without the network to fetch it, falls back to a plain text wizard.

The dotfiles setup UI
The setup UI: colours, machine name, status-bar pills and the tool catalogue.

What it does to the machine

Anything carrying a colour or the machine name is a *.in template with @PRIMARY@-style placeholders, because tmux.conf, JSON and TOML cannot indirect through a variable. Each one is rendered into .generated/ and the real config path is pointed at the rendered copy, so ~ still shows what is managed and re-running the installer updates live config. A real file already sitting at a path is moved to <file>.bak, once, and a backup is never written over.

install.sh rendering templates and linking them
Templates rendered into .generated/, then symlinked into place.

The dotfiles command

Installing puts a dotfiles CLI on PATH, so none of this needs the checkout to be your working directory again. It is a wrapper rather than a second implementation: every subcommand runs install.sh, reset.sh or lib/tools.sh out of the checkout, and options pass straight through.

The dotfiles CLI help
dotfiles wraps the scripts in the checkout; it does not reimplement them.

Taking it back off

reset.sh reads the manifest back, removes everything on it, restores each path's .bak and strips the block it added to ~/.bashrc and ~/.zshrc. Numbered backups it reports and leaves alone, since choosing between several saved files is a human's job. It undoes config, not software: the tools stay installed.

dotfiles uninstall restoring the machine
Uninstall walks the manifest backwards and puts the .bak files back.

The catalogue

Try it
bash: a machine with nothing on it
$curl -fsSL albertorota.dev/setmeup.sh | bash
>cloning into ~/dotfiles ...
# already have the checkout? it pulls instead
$dotfiles install
$dotfiles uninstall

Alberto Rota · Research · Contact