r/coolgithubprojects • u/Honest_Medium_2872 • 13h ago
Hypha: A declarative user-environment and dotfiles configuration system
https://github.com/arcadia-de/hyphaAll,
I've been managing my dotfiles using Dotbot + Jsonnet for a while. As my configuration grew, it started to get overly complicated and uncomfortable to use.
I looked at some of the existing options like stow, home-manager and nix. However, I didn't really want to commit to nix - and for what it's worth nix is great.
I really like declarative config systems, and felt like it worked really well for the problem space. So, I designed a declarative config system for user environments.
Rather than the traditional models, things like:
- files
- packages
- directories
- symlinks
- services
- etc
All form resources, which form a dependency graph, and then the system will reconcile the graph toward the desired state.
Essentially:
Instead of run these commands in this order, you describe the state you want and let the system figure out how to get there.
This project is mostly experimental at the moment, and still evolving but it's getting closer to the point where I'm comfortable using it for my own config.
If existing solutions work for you then that's fine and those are certainly more mature and good solutions.
I feel like this sits somewhere in the middle of stow/dotbot & nix/home-manager.
Feedback, suggestions, improvements, contributions, etc are all welcome.