Announcing Casual Compile, Elisp, and Eshell
28 Jul 2025 Charles Choi
Another update to Casual has been recently made (v2.8.0) which adds two new interfaces:
-
Compile for
compilation-mode
andgrep-mode
. -
Elisp for
emacs-lisp-mode
.
Belatedly, this post also announces an interface for Eshell which was released in v2.7.0 without much fanfare. We’ll remedy this here.
The v2.8.0 update also does an overhaul of the documentation for Casual, emphasizing the usage of Texinfo (by way of Org) to author it. A benefit for doing so is the ability to export its output to both Info and HTML.
Casual Compile
A common workflow is to use the compile
command to run a command line tool, typically make
(see also Casual User Guide (make)). If errors occur, then they are listed in a buffer named ✳︎compilation✳︎
which can be navigated upon. The major mode of this buffer is compilation-mode
and it offers two ways to navigate this list:
- Moving the current selection while simultaneously showing the selected error at its source in another window (aka “following” the selection.)
- Moving the current selection only.
By default, the keymap compilation-mode-map
binds a number of its commands to use a modifier key (M-
or C-
) which is too much work for my taste. I prefer a single key binding when possible, so have made the following changes for Casual Compile:
Default Binding | Casual Binding | Command | Note |
---|---|---|---|
M-p | k | compilation-previous-error | Use vi convention. |
M-n | j | compilation-next-error | Use vi convention. |
M-{ | [ | compilation-previous-file | Single key on en keyboard. |
M-} | ] | compilation-next-file | Single key on en keyboard. |
C-o | o | compilation-display-error | Single key on en keyboard. |
The menu for Casual Compile (casual-compile-tmenu
) is shown below:
This same menu also applies to Grep results when called from Emacs. This is because Grep output uses a major mode (grep-mode
) that is derived from compilation-mode
.
Learn more about Casual Compile in the Casual User Guide (Compile).
Casual Elisp
While I’ve been an Emacs user for decades, I’ve only been writing Emacs Lisp (Elisp) for about a year and half now. The menu I’ve created for Elisp is largely a collection of commands that I’ve found useful to have around when developing for it.
This includes functions for evaluation, cross-referencing, byte-compiling, and balanced expression (sexp) navigation.
Learn more about Casual Elisp in the Casual User Guide (Elisp).
Casual Eshell
Eshell has a number of commands to help save you from typing too much. Probably my most favorite command is eshell-insert-buffer-name
which will let you choose a buffer via completion. This command is mapped to the binding B
in casual-eshell-tmenu
.
Learn more about Casual Eshell in the Casual User Guide (Eshell).
Casual User Guide
The User Guide for Casual has been revamped in v2.8.0. Notable features include:
- Menu screenshots are now included in the Info file. They can be seen in the Emacs Info reader.
- The HTML generated from the same source as the Info file is now published at https://kickingvegas.github.io/casual.
- Supports appearance changes (light/dark mode).
- Responsive for both mobile and desktop screens.
Closing Thoughts
Casual v2.8.0 was a big push, particularly with regards to the documentation. Please provide any feedback on any of the new features in the discussions section for it.
If you enjoy using Casual, please consider making a modest financial contribution to help support its development and maintenance. Thanks!