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
andsymlinkJoin
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.