Skip to main content

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).
Last modified on August 23, 2026