Firstly, on nixos, we really don’t recommend using nix-env
. Install packages with environment.systemPackages
in your configuration.nix
, or use home-manager and install them through home.packages
in home.nix
. See Stop using nix-env and Depreciate the use of nix-env to install packages? for more on that.
As for configuring emacs declaratively, it can get a bit more complicated. Doom emacs in particular already has its own systems for managing the config, so making it play nicely with nix can take a bit of doing. I wouldn’t recommend tackling the project of making that declarative as one of your first projects. Do something easier first.
When you’re ready, though, nix-doom-emacs can be used. You basically make your doom.d part of your configuration rather than part of your runtime homedir, and doom emacs’ setup process happens inside a derivation to produce the runtime setup.
Unfortunately, I don’t know what the issue is with org-roam, however I suspect it may be fixed if you use org-roam as packaged for nix, rather than the one deployed through emacs’ own mechanisms.