let doom-emacs = (pkgs.emacs).overrideAttrs (attrs: {
postInstall = (attrs.postInstall or "") + ''
mv ${inputs.doom-emacs} ${config.home.homeDirectory}/.emacs.d
'';
});
but the service.emacs.package = pkgs.emacsGcc has no effect on the pkgs.emacs above, I have to change it to pkgs.emacsGcc directly instead. Also, for default pkgs.emacs, it starts to build the entire emacs where as normally it should be a binary and should not trigger a build. What is the correct way to override the Overlay?
I was trying to clone the doom emacs repo in .emacs.d along with emacs and run ~/.emacs.d/bin/doom install. Is there an actual way to do something like this or is my best bet just using nix-straight.el?
Yes, nix-doom-emacs uses nix-straight.el. It completely manages doom-emacs where as I wanted to partially manage it (install doom-emacs and update it myself with ~/.emacs.d/bin/doom upgrade rather than through nix rebuild switch). This is because nix-straight.el gives much higher startup times than doing it manually myself. I just want to run
In HM you could perhaps use activation scripts, though as they should be idempotent, its probably not a good idea to make them create folders without taking precautions.
I have previously looked into activation scripts. But I want to run this script exactly once (when I install emacs). A clever workaround would be to check if .emacs.d exists and write it if it doesn’t. Is there a way to run something like an activation script only once?