Hacker News new | ask | show | jobs
by bigyabai 391 days ago
The "correct way" is flakes, but I don't know if it would cover every edge case. I don't use emacs, but I'd assume you'd arrange it a bit like this:

- Install nixpkgs emacs or emacs distribution to your user profile so it links into every shell you open.

- Configure system-wide settings with the default emacs config, or with home-manager (https://mynixos.com/home-manager/options/programs.emacs)

- Each project (or group of projects) gets a Nix flake with a derivation specifying which dependencies or LSP packages are needed.

When a devshell is spun up, you should have the nixpkgs version of Emacs with your system-wide config and project-specific modifications, handled via version-control. It is a hassle, but in my experience the ROI is very worthwhile. YMMV.