Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/oknozor/toml-bombadil
A dotfile manager with templating
https://github.com/oknozor/toml-bombadil
cli cli-app dotfile dotfile-manager dotfile-templates dotfiles hacktoberfest rice rust rust-tools symlink toml-bombadil
Last synced: about 14 hours ago
JSON representation
A dotfile manager with templating
- Host: GitHub
- URL: https://github.com/oknozor/toml-bombadil
- Owner: oknozor
- License: mit
- Created: 2020-07-26T12:00:36.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-10-24T14:33:58.000Z (3 months ago)
- Last Synced: 2024-10-25T02:31:13.144Z (3 months ago)
- Topics: cli, cli-app, dotfile, dotfile-manager, dotfile-templates, dotfiles, hacktoberfest, rice, rust, rust-tools, symlink, toml-bombadil
- Language: Rust
- Homepage:
- Size: 5.86 MB
- Stars: 227
- Watchers: 4
- Forks: 24
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- jimsghstars - oknozor/toml-bombadil - A dotfile manager with templating (Rust)
README
**A dotfile manager written in Rust**
- **Dotfile template:** define your dotfiles templates and link them as needed.
- **Dotfile profiles:** create profiles for different machines and situations and combine them on the flow.
- **Installation hooks:** run custom commands before and after installing your dotfiles.
- **Gpg encryption:** add encrypted secrets to your dotfile configuration with gpg.
Explore Toml Bombadil's docs ▶![example gif](asset/toml-bombadil.gif)
## Why another dotfile manager ?
I wrote Toml Bombadil because I kept changing my desktop environment:
switching from i3 to sway, from sway to xfce, from xfce to gnome and back to sway.
When you keep changing your working environment like this you end up with several problems:
- Some symlinks will end up orphans.
- Not every program you use support Xresources and you will most probably have to manually edit some themes/config.
- When starting a fresh installation you will very likely need to adapt your existing dotfiles to your new machine.
- It is a mess.Toml Bombadil try to solve this with a simple addition to the symlink method used by other tools: instead of creating
a symlink from a dotfile to the actual config path of a program, it will create a copy of it and symlink the copy.
This additional step allow to use your original dotfile as a template and inject variables in the copy.
You can have multiple value files in the same dotfile repository and change color scheme, or any value on the fly.In addition, this is completely optional, you could start using Toml Bombadil only to generate symlinks and templatize
your dot file progressively.## Installation
[![Packaging status](https://repology.org/badge/vertical-allrepos/toml-bombadil.svg)](https://repology.org/project/toml-bombadil/versions)
**Arch Linux:**
```bash
pacman -S toml-bombadil
```**Cargo:**
```bash
cargo install toml-bombadil
```## Quickstart
See [Docs -> Quickstart](https://oknozor.github.io/toml-bombadil/quickstart.html).
## Shell completions
Command line completion scripts for several popular shells can be generated by running `bombadil generate-completions`. An example for generating a completion script and outputting it to a file for zsh would be `bombadil generate-completions zsh > /_bombadil`. Available shells are: bash, elvish, fish, and zsh.
## Troubleshooting
If you get lost you can use `bombadil get {resource_name}` to see what is currently configured.
Available resources are `dots`, `hooks`, `path`, `profiles`, `vars`, `secrets`.Optionally you can display resources for a profile with the `--profiles` flag.
## Example repositories
If you use Bombadil please submit an issue, or a PR to update this section, we will be happy to reference your dotfiles here!
- [https://github.com/oknozor/dotfiles](https://github.com/oknozor/dotfiles)
- [https://github.com/mrkajetanp/dotfiles](https://github.com/mrkajetanp/dotfiles)
- [https://github.com/HaoZeke/Dotfiles](https://github.com/HaoZeke/Dotfiles/tree/bombadil)## Contributing
Found a bug, have a suggestion for a new feature?
Please read the [contribution guideline](CONTRIBUTING.md) and submit an [issue](https://github.com/oknozor/toml-bombadil/issues).## License
All the code in this repository is released under the MIT License, for more information take a look at the [LICENSE](LICENSE) file.