Wrapper-manager - configuration for your applications without $HOME

I want to annouce this nix project I’ve been working on.

Wrapper-manager is a Nix library that allows you to configure your favorite applications without adding files into ~/.config. This is done by creating wrapper scripts that set the appropriate environment variables, like PATH, or pass extra flags to the wrapped program.

Nix offers very good reliability and reproducibility thanks to its read-only store. However, putting symlinks to it in your $HOME starts breaking this property. Because any program can tamper files in ~, the stability of your system is a bit more fragile.

Wrapper-manager leverages the nixpkgs’ functions wrapProgram and symlinkJoin to create wrappers around your applications, providing an easy-to use interface, and also getting around some of their shortcomings.

Personally I have been configuring many of my applications through symlinkJoin/wrapProgram for a long time. So I decided to move all the ad-hoc implementations into a custom module system that is ergonomic, easy to use and has all the fixes that I find along the way.

22 Likes

This is a super cool idea! I will definitely have to play around with it.

I am imagining something like this and nix bundle glued together to allow me to instantly get a pre configured copy of a program and all it’s dependencies on any Linux server.

2 Likes

Thanks @viperML, I’ve been happy to see both nh and this! Nix UX is what’s missing and you’re making great strides towards world domination! :slight_smile:

1 Like