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.


This package provides a simple approach to setting up a “focus mode”. It uses the page-delimiter or the outline together with some commands to move between pages whether narrowing is in effect or not. It also provides some optional aesthetic tweaks which come into effect when the buffer-local logos-focus-mode is enabled. The manual shows how to extend the code to achieve the desired result.


This is a small package that temporarily highlights the current line after a given function is invoked. The affected functions are defined in the user option pulsar-pulse-functions. What Pulsar does is set up an advice so that those functions run a hook after they are called. The pulse effect is added there (pulsar-after-function-hook).


Lin is a stylistic enhancement for Emacs’ built-in hl-line-mode. It remaps the hl-line face (or equivalent) buffer-locally to a style that is optimal for major modes where line selection is the primary mode of interaction.

The idea is that hl-line-mode 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: the user has to select a line. 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 reminder of the point’s location on the vertical axis.


Fontaine allows the user to define detailed font configurations and set them on demand. For example, one can have a regular-editing preset and another for presentation-mode (these are arbitrary, user-defined symbols): the former uses small fonts which are optimised for writing, while the latter applies typefaces that are pleasant to read at comfortable point sizes.

TMR May Ring (tmr)

TMR is an Emacs package that provides facilities for setting timers using a convenient notation. The point of entry is the tmr command. It prompts for a unit of time, which is represented as a string that consists of a number and, optionally, a single character suffix which specifies the unit of time.


Cursory provides a thin wrapper around built-in variables that affect the style of the Emacs cursor. The intent is to allow the user to define preset configurations such as “block with slow blinking” or “bar with fast blinking” and set them on demand.

The official Emacs TUTORIAL in Greek

I am the author and maintainer of the TUTORIAL.el_GR file that is part of Emacs 29 (current development target) since 2022-05-08. You can find it in the Emacs source code inside the etc/tutorials/ directory. If you report a bug about it with M-x report-emacs-bug, consider adding me in carbon copy (Cc). The etc/tutorials/TUTORIAL.translators file mentions the email address you should use.

Iosevka Comfy

This is not an “Emacs package” per se though I use it full time in my Emacs setup (it complements my work on the modus-themes and fontaine).

Iosevka Comfy is a build of the Iosevka typeface with a rounded style and open shapes, adjusted metrics, and overrides for almost all individual glyphs in both roman (upright) and italic (slanted) variants. It is more vertically compact than the standard upstream configuration. Glyphs are rounder and have tailed ends or serifs only when those are required to both impose a predictable rhythm and keep characters distinct from each other.

The README file in the git repository covers all the technicalities.

Minibuffer and Completions in Tandem (mct.el)

UPDATE 2022-04-14: Development of this package has been discontinued:

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.

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