Skip to main content

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, npins, nil, nixfmt-rfc-style, treefmt, and the Nerd Fonts the UI config looks up. With direnv installed it activates automatically; otherwise enter it manually:
devenv shell

Run Emacs with the Jotain configuration

just run            # GUI
just debug          # GUI with --debug-init and debug-on-error
just tty            # terminal (-nw)
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.

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

npins manages the nixpkgs pin (and any other sources under npins/).
just update-pins        # update every pin
just update-pin NAME    # update a single pin
just show-pins          # list current pins
Last modified on April 8, 2026