I have a huge and complex Emacs config (in its own git repo) including a significant EXWM setup. I want to use this as my primary DE in my Nixos config (currently in a separate repo), but I also want the same Emacs config available in other sessions (e.g. in XFCE). I use home-manager, but I’m not wedded to managing Emacs with it. What is the best approach to structuring my setup? I want everything to be as declarative as possible and easily deployed to other machines and kept in sync.
Some more details. I’m currently transitioning to a new laptop and I’m taking the opportunity to try NixOS. I’m attracted by the idea of declarative/immutable config, and I want to set it up so that in future, the same config could be deployed to new machines, and then changes to the two could be kept in sync. In particular, I want that kind of distributed structure to work both for the overall NixOS setup and the Emacs config. I want to be able to push changes made to either config on either machine to the other machine.
But I also want the Emacs config to live in my user’s ~/.config/emacs
dir like it normally would (obviously, this is not where my NixOS config lives).
Finally, I would like it to be as straightforward as possible to deploy this system to another new machine, and have both the NixOS config and the Emacs config ‘land’, up to date, during the initial deployment,
I don’t really have much experience or further vocabulary for this sort of thing, so I’m not sure where to look. Any advice, other configs to look at, etc. would be appreciated.
TIA!
P.S. I don’t use flakes at the moment, because I’m still learning a lot very fast and they seem scary. I’d be willing to learn, but only really if it would make the above significantly easier.