Emacs: ef-themes version 1.3.0
The ef-themes
is a collection of light and dark themes for GNU Emacs
whose goal is to provide colourful (“pretty”) yet legible options for
users who want something with a bit more flair than the modus-themes
(also designed by me).
- Package name (GNU ELPA):
ef-themes
- Official manual: https://protesilaos.com/emacs/ef-themes
- Change log: https://protesilaos.com/emacs/ef-themes-changelog
- Sample pictures: https://protesilaos.com/emacs/ef-themes-pictures
- Git repo on SourceHut: https://git.sr.ht/~protesilaos/ef-themes
- Mirrors:
- Mailing list: https://lists.sr.ht/~protesilaos/ef-themes
- Backronym: Eclectic Fashion in Themes Hides Exaggerated Markings, Embellishments, and Sparkles.
Below are the release notes.
Try the aquatic “Maris” variants
The ef-maris-dark
and ef-maris-light
are a pair of themes with a
grey-blue background, combined with blue, cyan, and green accents.
Much like the “Elea” variants that were published in version 1.2.0 of
the ef-themes
, the “Maris” variants are optimal for those times
where environmental lighting is neither too bright nor too dim.
The blog post announcing and demonstrating the new themes: https://protesilaos.com/codelog/2023-07-22-ef-maris-dark-light/.
Screen shots for the entire collection here: https://protesilaos.com/emacs/ef-themes-pictures.
There now are 26 themes in the ef-themes
package, covering a broad
range of preferences and needs. They all are highly legible and
customisable (consult their manual).
Shortdoc has consistent typography
The default built-in shortdoc
face inherit the variable-pitch
face, which renders the text in the buffer proportionately spaced. To
me, this feels out of place. If the user wants Help and related
ancillary material to be typeset thus, they can enable
variable-pitch-mode
(e.g. via a hook).
Thanks to Bruno Boal for pointing out that the Ef themes did not cover Shortdoc. The message was conveyed via a private channel and the information is shared with permission.
Key bindings in minibuffer prompts stand out
Steve Molinor informed me about a case where a key binding was shown as part of the minibuffer prompt. For some Ef themes, the result was suboptimal due to the proximity of the colours involved. I made all the requisite tweaks, such that key bindings in prompts will stand out (always in accordance with the principle of avoiding exaggerations). Affected themes are:
ef-bio-theme
ef-deuteranopia-dark-theme
ef-duo-light-theme
ef-elea-dark-theme
ef-elea-light-theme
ef-frost-theme
ef-night-theme
This was done in issue 24 on the GitHub mirror: https://github.com/protesilaos/ef-themes/issues/24.
The ace-window
package is supported
The ace-window
package now uses colours that are aligned with the
active Ef theme. This is mostly a stylistic consideration, except for
the deuteranopia- and tritanopia- optimised themes, where the hue
matters greatly.
The Ef commands with completion use a “completion table”
[ This is for advanced users or developers. ]
Commands such as ef-themes-select
and ef-themes-preview-colors
use
the minibuffer to pick a theme among the collection. In the past, the
set of candidates did not have any metadata associated with it, so
Emacs could not tell what it was completing against.
The collection is now annotated with the completion category theme
.
Packages that can use this data include consult
, embark
, and
marginalia
, while the built-in completion-category-overrides
may
be involved. For example, one may define a custom annotation function
for Marginalia, such that the alignment of the doc strings is at
column 40 instead of the generic default (I do not add any alignment
at the theme level to keep it agnostic of the completion front-end).
General refinements
-
The
ef-elea-light
theme’s palette entry ofbg-changed-refine
is marginally toned down. This makes it consistent with its context (e.g. in Ediff buffers). -
The
ef-deuteranopia-light
theme’s palette entry ofmagenta-faint
is desaturated to fit better in its context. TheM-x calendar
as well as Org agenda buffers that show weekends will now look more consistent. -
The
ef-bio
theme’s semantic colour mapping oflink-alt
is further differentiated fromlink
. The previous value could be conflated with that oflink
in Info buffers.