All Projects → oknozor → toml-bombadil

oknozor / toml-bombadil

Licence: MIT license
A dotfile manager with templating

Programming Languages

rust
11053 projects
shell
77523 projects

Projects that are alternatives of or similar to toml-bombadil

Chezmoi
Manage your dotfiles across multiple diverse machines, securely.
Stars: ✭ 5,590 (+4301.57%)
Mutual labels:  dotfile-manager, dotfile
Nephos
Project Nephos [GSoC '18]: Automated recording, processing, and uploading of TV streams for Universities.
Stars: ✭ 20 (-84.25%)
Mutual labels:  cli-app
bspwm rice
bspwm confs and rice
Stars: ✭ 31 (-75.59%)
Mutual labels:  rice
bin-version-cli
Get the version of a binary in semver format
Stars: ✭ 36 (-71.65%)
Mutual labels:  cli-app
no-mans-sky-rice-i3wm
i3WM rice themed using No Man's Sky's colors
Stars: ✭ 34 (-73.23%)
Mutual labels:  rice
wallpaper-cli
Get or set the desktop wallpaper
Stars: ✭ 151 (+18.9%)
Mutual labels:  cli-app
is-dotfile
Return true if the file is (or the file path has) a dotfile.
Stars: ✭ 13 (-89.76%)
Mutual labels:  dotfile
funRiceGenes
The knowledge of cloned rice genes lost in the information of rice functional genomics studies
Stars: ✭ 23 (-81.89%)
Mutual labels:  rice
FSDevTools
Project to support developer experience (DX) with FirstSpirit template development by offering a connection between a VCS like Git and FirstSpirit.
Stars: ✭ 29 (-77.17%)
Mutual labels:  cli-app
Beginners-Python-Examples
Basic Python CLI programs
Stars: ✭ 225 (+77.17%)
Mutual labels:  cli-app
linux.files
Configuration Files of my System
Stars: ✭ 27 (-78.74%)
Mutual labels:  dotfile
hashicorp-vault-monitor
🔑 HashiCorp Vault Monitoring Tool
Stars: ✭ 22 (-82.68%)
Mutual labels:  cli-app
Vanilla
frantic1048's grimoire
Stars: ✭ 19 (-85.04%)
Mutual labels:  dotfile
dfm
dotfile manager with 0 dependencies, minimal configuration, and automatic cleanup
Stars: ✭ 59 (-53.54%)
Mutual labels:  dotfile-manager
dotfiles
Messy configuration repository / Gentoo / Coreboot / XMonad / Ergodox / Home Cooked ZSH microframework / Eye candy stuff / Miscellaneous hacks
Stars: ✭ 43 (-66.14%)
Mutual labels:  rice
dotfiles
Poom's Neovim, Tmux, Fish and other configurations for macOS & Linux. Literally my entire world.
Stars: ✭ 36 (-71.65%)
Mutual labels:  dotfile
awesome-cli-apps
🖥 📊 🕹 🛠 A curated list of command line apps
Stars: ✭ 10,603 (+8248.82%)
Mutual labels:  cli-app
GiG
🎉 generate gitignore files for almost all languages
Stars: ✭ 24 (-81.1%)
Mutual labels:  cli-app
ck550-macos
MacOS effect control SW for a CoolMaster CK550 & CK530 Keyboard (US Layout).
Stars: ✭ 14 (-88.98%)
Mutual labels:  cli-app
spry
social media intelligence from the command line
Stars: ✭ 40 (-68.5%)
Mutual labels:  cli-app

Toml Bombadil - A dotfile manager written in rust

GitHub Actions workflow status Code coverage status AUR package
crates Conventional commits Repository license

Documentation · Installation · Configuration

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

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

Arch Linux:

pacman -S toml-bombadil

Cargo:

cargo install toml-bombadil

Quickstart

See Docs -> Quickstart.

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 > <somewhere on your $fpath>/_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!

Contributing

Found a bug, have a suggestion for a new feature? Please read the contribution guideline and submit an issue.

License

All the code in this repository is released under the MIT License, for more information take a look at the LICENSE file.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].