Quickstart
Clone the repository
git clone https://github.com/Jylhis/jotain.git
cd jotain
Enter the development shell
Jotain ships a devenv shell that provides Emacs (built from the local emacs.nix), just, nil, nixfmt-rfc-style, treefmt, and the Nerd Fonts the UI config looks up. With direnv installed it activates automatically; otherwise enter it manually:
Run Emacs with the Jotain configuration
just run # GUI
just debug # GUI with --debug-init and debug-on-error
just tty # terminal (-nw)
just daemon # foreground daemon for emacsclient
just client # graphical emacsclient frame
just client-tty # terminal emacsclient frame
just quick # emacs -Q -nw with the wombat theme (no Jotain config)
just run launches 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.
See Launching Emacs for when to reach for each pattern (one-shot vs. daemon + client vs. -Q -nw quick edit) and how to enable the emd / em / emg shell aliases via services.jotain.shellAliases.
Build a standalone Emacs
If you want a Nix-built binary outside the devenv shell:
just build # mainline Emacs 30 + all 275 tree-sitter grammars
just run-built # build for the current platform, then launch result/bin/emacs
Sanity-check the configuration
just check # parse-only: every .el file under lisp/ + early-init + init
just compile # byte-compile with byte-compile-error-on-warn
just test # run any ERT tests under test/ (currently none)
just fmt # treefmt — Nix formatting via nixfmt-rfc-style
Clean build artifacts
just clean # .elc files, autosaves, eln-cache, result/
just clean-all # also elpa/, var/, etc/, .dev-home/ — forces a full re-fetch
Update pinned sources
flake.lock is the single source of truth for input revs; devenv.yaml mirrors the shared ones (nixpkgs, treefmt-nix).
just update # update every flake input, then sync devenv.yaml + devenv.lock
just verify # assert flake.lock and devenv.lock agree on every shared input
Last modified on May 17, 2026