A shell-agnostic, git-based dotfiles package manager that merges configs from multiple environments.
Dotfiler is a dotfiles package manager written in Python that uses Git to version and manage configuration files. It solves the problem of organizing and deploying dotfiles across multiple machines by allowing users to separate configs into modular environments and merge them as needed.
Developers and system administrators who manage multiple machines and want a simple, version-controlled way to handle their shell and application configurations.
Unlike other dotfile managers, Dotfiler uniquely supports merging configs from different environments into a single directory, enabling flexible separation of private and public configurations without duplication.
Shell agnostic git based dotfiles package manager, written in Python.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Organizes dotfiles into separate subdirectories (environments) for different contexts, such as work vs. personal, enabling flexible deployment across machines without duplication.
Automatically merges files from multiple environments into a single target directory, allowing shared and private configs to coexist seamlessly, as demonstrated with zsh examples in the README.
Offers only three core commands (update, add, status), adhering to the KISS principle and making it easy to learn and use for basic dotfile management.
Includes a dry run mode with verbose output to preview changes and warns when files conflict across environments, reducing the risk of errors during updates.
The README admits that 'meta-environments' for automatic dependency pulling are planned but not yet implemented, requiring manual setup of environment dependencies.
Installation requires cloning the tool, adding its bin directory to PATH, and manually managing environments, which can be cumbersome compared to more automated solutions.
Has fewer shared environments and community contributions than popular alternatives, with only a short list of example repositories provided in the README.
Relies solely on symlinks, which may not handle all file types well or work on all systems, and lacks support for copying, templating, or other deployment methods.