Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.jylhis.com/llms.txt

Use this file to discover all available pages before exploring further.

Jotain follows Emacs conventions: only global rebindings live in lisp/init-keys.el; per-package bindings stay colocated with the package’s use-package block. which-key is enabled by default, so after any prefix key a paged menu of available continuations appears in the echo area. The prefix labels listed below are registered via which-key-add-key-based-replacements in init-keys.el, so they show up in those menus instead of the bare command names.

C-c — user namespace

Reserved by Emacs convention for user bindings. Jotain claims the following:
KeyLabelCommand
C-c aorg-agendaorg-agenda
C-c corg-captureorg-capture
C-c ddirvishdirvish
C-c Ddirvish-sidedirvish-side
C-c gmagit-filemagit-file-dispatch
C-c hconsult-historyconsult-history
C-c iconsult-infoconsult-info
C-c kconsult-kmacroconsult-kmacro
C-c lorg-store-linkorg-store-link
C-c mconsult-man
C-c norg-roam prefixn f find, n i insert, n c capture
C-c ocombobulate prefixstructural editing dispatch
C-c reglot-refactor prefixr r rename, r f format, r a actions, r o organize-imports, r q quickfix
C-c ttoggle-themeauto-dark-toggle-appearance
C-c RETgptel-sendgptel-send
C-c M-RETgptel-menugptel-menu
C-c M-xconsult-mode-commandconsult-mode-command
C-c C-'claude-code-ideclaude-code-ide-menu
C-c C-<mc/mark-all-like-this

C-x — control namespace

Built-in Emacs prefix extended with a handful of Jotain additions:
KeyLabelCommand
C-x bconsult-buffer
C-x gmagit-statusmagit-status
C-x M-gmagit-dispatchmagit-dispatch
C-x jrotate-window-splitjotain-toggle-window-split
C-x p bconsult-project-buffer
C-x r bconsult-bookmark
C-x t bconsult-buffer-other-tab
C-x uvundovundo
C-x 1jotain-nav-toggle-delete-other-windows
C-x Pproject (projection) prefixprojection-map — multi-language project commands

Other global bindings

Single-keystroke globals that don’t fit a C-c / C-x namespace — window switching, spell-check, region growth, and multi-cursor.
KeyCommand
M-oother-window
M-$jinx-correct
C-M-$jinx-languages
C-=expreg-expand
C->mc/mark-next-like-this
C-<mc/mark-previous-like-this

Disabled by default

KeyReason
C-zAccidentally suspending Emacs from a GUI frame is never what you want
C-x C-zSame

Mode-local overrides

A few major modes rebind C-c leaves locally:
  • dired-mode: C-c C-ewdired-change-to-wdired-mode (toggle writable dired)
  • helpful-mode: C-c C-dhelpful-at-point
  • sops-mode: C-c C-c save, C-c C-k cancel, C-c C-d edit
  • embark exports: C-c C-oembark-export

Window navigation

Shift + arrow keys move focus between split windows, courtesy of the built-in windmove-default-keybindings. M-o cycles through windows linearly; C-x j rotates a two-window layout between horizontal and vertical splits.

Why no leader-key framework?

The article “general.el to conquer Emacs keybindings” makes a persuasive case for adopting general.el as a unified keybinding layer. Jotain considered and rejected the migration: general.el’s primary differentiator is :states for evil-mode integration, which Jotain does not use, and Emacs 30’s keymap-set plus built-in which-key plus use-package :bind already cover the article’s discoverability and leader-key ergonomics without an extra dependency. The spirit of the article — memorable, categorised, self-documenting prefixes — is realised here through the which-key-add-key-based-replacements table in init-keys.el. See Inspiration & Resources for the full rationale.
Last modified on May 16, 2026