I’m completely new to nixos, finding my way around.
I’ve managed to install and configure the following (via "nix-env -i "):
I’ve also installed and configured doom-emacs and org-roam (via doom’s conf files).
This is a two-part question:
How do I declaratively do all this in the overlays?
How can I get org-roam to see the sqlite3 binary? “No EmacSQL binary available. Aborting.”
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.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.
Amusingly, unless you just created a new account, someone else just asked the exact same thing. You can get emacs-sqlite to work like so, apparently doom comes with its own version that is of course totally broken on NixOS: How to install org-roam declaratively (Doom Emacs) - #9 by midchildan