Quickstart
Clone the repository
Enter the development shell
Jotain ships a devenv shell that provides the tooling —just, nil, nixfmt-rfc-style, treefmt, Nix linters, the language servers the config shells out to, and the fonts the UI config looks up. Emacs itself is not in the shell (see Launching Emacs); it is built via Nix on demand. With direnv installed the shell activates automatically; otherwise enter it manually:
Build and run Emacs with the Jotain configuration
just run-built builds the full distribution (Emacs 31 + packages + tree-sitter grammars — usually a binary-cache pull, not a compile) and launches ./result/bin/emacs with --init-directory=<repo>, so it never touches ~/.emacs.d. The first launch bootstraps any package not provided by Nix from MELPA; subsequent launches load from the package cache.
The direct-launch recipes (just run, just debug, just tty, just daemon, just client, just client-tty, just quick) are currently disabled stubs — see the note in Launching Emacs, which also covers the daemon + client pattern and the emd / em / emg shell aliases via services.jotain.shellAliases.
Sanity-check the configuration
Clean build artifacts
Update pinned sources
flake.lock is the single source of truth for input revs; devenv.yaml mirrors the shared ones (nixpkgs, treefmt-nix, emacs-overlay).