Regarding home-manager, I have no particular reason against it but just don’t want to introduce new dependency without reason. I’m using Nix as rather “conventional” package manager which for me has great advantage of being distro-independent. My environment consists of small number of developer tools, and I don’t want Nix to manage my config files, python packages, vim plugins etc. What additional benefit does home-manager have for me?
what you probably want is an overlay(s), they can be composed in ways that you’re describing Overlays - NixOS Wiki
Taking a step back though, doing nix-env -iA nixpkgs.myVim seems more like you’re trying to add programs to your user environment. I would highly recommend to use home-manager for this.
Most seem to do, though it seems as if the op wouldn’t want to use the config management parts of it, and only using home.packages wouldn’t be that much different from what they do now I think…
I really can’t think of any USP for home manager which wasn’t configuration management, which the op actively doesn’t want to use as they said.
I’ve heard good things about home-manager but haven’t checked it out yet. Instead I use a variant of @LnL7’s overlay (what I’m actually using is a further refinement on that but I haven’t posted the new version anywhere). With this overlay you just edit the packages referred to in the userPackages set and run nix-rebuild and it replaces your current environment with the new one.
If you have the inclination to do so I’d suggest checking out home-manager, but this overlay is a lightweight way to get declarative package sets. I only haven’t gone down the home-manager route myself yet because I don’t have the time to mess with a system that works.
I would rewrite all modules, to be honest. Indeed I am thinking about it in that exact moment!
As an example, I have my own externally maintained Emacs init.org file (yes, literate org files!). It is almost impossible to put it in the home-manager.
(Please, don’t think I think HM is poorly built. It just isn’t ideal for me.)