Personal dotfiles managed by dotman, a small Rust dotfiles deployer inspired
by Dotbot's ordered configuration model.
- Rust toolchain with Cargo
- GNU Make
- fish shell
Build the deployer:
make buildPreview the deployment:
make deploy DRY_RUN=1Deploy dotfiles:
make deploySkip shell commands such as plugin sync:
make deploy EXCEPT=shellRun only link steps:
make deploy ONLY=linkDeployment steps live in dotman.yaml.
Supported directives:
defaultslinkcreateshellclean(dry-run placeholder only)
Example:
- defaults:
link:
create: true
relink: true
relative: true
- link:
~/.config/fish: config/fish
~/.config/nvim: config/nvim
- create:
- ~/.config/fish/local.d
- shell:
- command: fish -lc 'fisher update'
description: Sync fish plugins
stdout: true
stderr: trueMachine-specific paths, tokens, and temporary tool setup should stay out of the shared repository.
Fish loads local-only files from:
~/.config/fish/local.d/*.fish
config/: tracked source dotfilesdotman.yaml: deploy stepssrc/: Rust deployer sourcetests/: CLI integration tests
make lint
make test
make ci