My packages and/or custom code for GNU Emacs


My personal Emacs configuration. It is comprehensive, both in terms of the [custom] code it contains as well as the documentation on what each piece of functionality does.

Modus themes

Highly accessible themes, conforming with the highest standard for colour contrast between background and foreground values (WCAG AAA). They also are optimised for users with red-green colour deficiency.

The themes are very customisable and provide support for a very wide range of packages. Their manual is detailed so that new users can get started, while it also provides custom code for all sorts of more advanced customisations.

Since August 2020, the Modus themes (modus-operandi, modus-vivendi) are built into Emacs version 28 or higher.

Minibuffer and Completions in Tandem (mct.el)

Enhancements for the default minibuffer completion UI of Emacs. In essence, MCT is (i) a very thin layer of interactivity on top of the out-of-the-box completion experience, and (ii) glue code that combines built-in functionalities to make the default completion framework work like that of more featureful third-party options.

Requires Emacs version 27 or higher.

LIN Is Noticeable

LIN locally remaps the hl-line face to a style that is optimal for major modes where line selection is the primary mode of interaction.

The idea is that hl-line cannot work equally well for contexts with competing priorities: (i) line selection, or (ii) simple line highlight. In the former case, the current line needs to be made prominent because it carries a specific meaning of some significance in the given context. Whereas in the latter case, the primary mode of interaction does not revolve around the line highlight itself: it may be because the focus is on editing text or reading through the buffer’s contents, so the current line highlight is more of a gentle reminder of the point’s location on the vertical axis.

TMR Must Recur (tmr.el)

A simple timer package for Emacs.

For more on my Emacs-related contributions, check my coding blog which includes lots of videos and written publications on the topic.