Rotz: Cross platform dotfile manager written in Rust
volllly.github.io
volllly.github.io
I use https://github.com/thoughtbot/rcm and I find my dotfiles share _quite a bit_ in some respects (e.g. neovim config) but are drastically different in others (SSH config as one example) -- keeping things synced _across_ branches sounds very difficult. rcm handles this well, without branches, IMO.
Aren't you supposed to "not" commit secrets/sensitive values to git repos as "best practice"?
those are the formats available for configuring rotz itself; it's agnostic to the content of your actual dotfiles
Previously I used xstow for 10 years which served me well and is less of a challenge to get started with compared to chezmoi.
The developer seems to be from Austria, so yeah, he knew what he was doing.
One of our goals is to run anywhere too, we have support for BSD as well as Windows, macOS, and Linux; as well as first class variant support for "define once, run everywhere" functionality.
Our core lib is available and built to support other dot file managers, perhaps it could be useful to you.
The only problem I've run into is that while chezmoi supports tracking files/directories as read-only, once they are created they can't be updated anymore because chezmoi isn't smart enough to swap them to writable and back.
It talks about symlinking your dotfiles from somewhere else on your system, so is this only useful if you have multiple users and they share dotfiles? How does that help if you want to sync dotfiles between machines?
Then it talks about YAML and toml formats but it's not very clear to me if that is the format of the dotfiles that it manages, or if that is only the config file for Rotz itself?
Also it looks like you have to write a config file for every dot file you manage?
This seems overly complicated to, say, a simple git repo. A simple example would have been helpful in the documentation I guess....
Might make sense if you have a large amount of time to keep tinkering with your computer, but probably not a productivity boost in any form.
Nice idea!
no_secrets=$(git diff --staged --name-only -z | xargs -0 detect-secrets-hook --baseline .secrets.baseline)
test -z $no_secrets && exit $no_secrets
1: https://github.com/Yelp/detect-secrets[1] https://github.com/danieljaouen/dotfiles/blob/main/Rakefile
Edit: I agree that the path/old_path/new_path naming is confusing, I just never got around to refactoring it. :/