I'm a Linux noob, (but MacOS/Unix forever). But I found kidnapping your Nix config and getting going to be quick and solid. The "Nix Way" reminds me of NeXT's "Frameworks" which MacOS still has, but doesn't use to the level of each-build. I wonder if there's a "fix" in there that would obscure and effectively eliminate the hash-in-filename-is-overbearing-to-newbs aspects. Framewoks are basedon swapping symlinks too, but I can't quite recall why it's just not an issue. Knowing Apple it might be something like breaking all the shell's rules for "No symlinks in shebang" ... but it works to hide all the underpinnings well.
I know this might be over the head of what you're trying to accomplish but these types of configuration seem prime for a tool like Ansible. Put everything in a role and have all of this stuff done. Then you can change your variables and ansible will only update the things you changed. Definitely more complex than "run this bash script" but also infinitely more configurable and less prone to accidental breaking of stuff.
I believe dmenu uses your $PATH variable to grab binaries - so what if you added the path to the nix-env binaries to your PATH, wouldn't that solve the issue of dmenu not showing chatterino? Been loving this Debian configuration series so far.