Folder structure
This document outlines several recommended approaches for structuring your .hermitgrab directory. Each has its pros and cons, so choose the one that best fits your workflow.
Flexible Structure
When HermitGrab starts, it scans the .hermitgrab folder for all hermit.toml files it contains. This allows you to arrange your subdirectories in any way that suits your organizational preferences.
Pros
- It provides maximum flexibility for organizing your files.
Cons
- The resulting folder structure may not be compatible with other tools that expect a more conventional layout, such as GNU Stow.
- .bashrc
- hermit.toml
- config.fish
- hermit.toml
Home-aligned Hierarchy
With this approach, the structure inside .hermitgrab mirrors the target structure in your home directory. For instance, a config.fish file destined for ~/.config/fish would live at .hermitgrab/.config/fish/config.fish, with its hermit.toml in the same directory.
Pros
- This structure is highly compatible with other dotfile managers, with the only addition being the
hermit.tomlfiles.
Cons
- The root
hermit.tomlcan become crowded with configurations for many different tools. - A top-level
requireskey in the roothermit.tomlis problematic. For example,requires = ["bash", "zsh"]could imply an illogical dependency.
- config.fish
- hermit.toml
- .bashrc
- hermit.toml
Dedicated hermit.toml Folder
This strategy introduces a .hermitgrab/hermit_configs/ directory to hold your hermit.toml files, separated from the dotfiles they manage. You can create subdirectories within hermit_configs for each tool or group of tools. The rest of your dotfiles remain aligned with the home directory structure.
Pros
- This layout remains compatible with most other dotfile managers.
- The
hermit_configsfolder allows for a clean and organized separation of configurations. - Each
hermit.tomlcan make effective use of a top-levelrequireskey.
Cons
- Source paths within your
hermit.tomlfiles will need to use..to reference the dotfiles in the parent directory structure.
- config.fish
- hermit.toml
- hermit.toml
- .bashrc