init.el
init.el is deliberately tiny. Its only jobs are:
- Register MELPA, MELPA-stable, and NonGNU ELPA as fallback archives for anything Nix does not ship.
- Put
lisp/on the load-path. - Point
custom-fileatvar/custom.elsoM-x customizehas somewhere to scribble. - Refresh archive contents on first run, then
requireeach module in the right order.
early-init.el or one of the lisp/init-*.el modules.
Package archives
load-path, so use-package finds them without touching the network. The archives above only come into play for packages that Nix does not ship.
Load path
Custom file
custom.el is write-only: Jotain never loads it back. The declarative config in git remains the single source of truth; the file exists only so M-x customize has somewhere to scribble without touching init.el.
Module loading
init.el then requires each module in order. See Modules for what each file owns and the full load order.