Emacs: ef-themes version 1.9.0
The ef-themes
are a collection of light and dark themes for GNU
Emacs that 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 repositories:
- Backronym: Eclectic Fashion in Themes Hides Exaggerated Markings, Embellishments, and Sparkles.
Below are the release notes.
Version 1.9.0 on 2024-11-16
This version introduces several small refinements to an already comprehensive basis.
No interference with org-modern
The org-modern
package is not meant to be touched by a theme. This
is what I am doing with the modus-themes
, but I forgot to remove the
changes made by the ef-themes
.
Thanks to Daniel Mendler, author of org-modern
, for bringing this
matter to my attention. This was done in issue 48:
https://github.com/protesilaos/ef-themes/issues/48.
Colour refinements for several themes
I document those, though most of them will not be noticeable, unless on a side-by-side comparison.
-
The
ef-day
palette value forgreen-warmer
has a marginally greater contribution from the red channel of light, making it a tiny bit “warmer”. Thegreen-faint
is made less warm. In context, these tweaks make certain elements easier to tell apart, while retaining the character of the theme. -
The
ef-reverie
value forblue-faint
is less saturated, so its blue impression is diminished. It still performs its role in all the relevant contexts, only now it does it better by not competing with other shades of blue. -
The
ef-light
value forfg-dim
is much less intense, though still within the desired contrast range. This way, it works better in context. The “added” background colours (used indiff-mode
, Ediff, Magit, etc.) are a little bit more intense to be more harmonious with other elements in a diff output. Theblue-faint
has lower contribution from the blue channel of light in the interest of not interfering with other blue hues, while still looking alright itself. The semantic palette mapping for links now uses theblue-warmer
colour instead ofblue
, as the former is less ambiguous in context. Thefg-alt
is recalibrated to be closer to a grey value, improving its use in several places. Thered-cooler
value is redone to not be conflated with magenta: it now delivers a rosy red impression. Lastly, therainbow-2
mapping usesmagenta
instead ofmagenta-warmer
for consistency in all relevant situations. -
The
ef-night
semantic colour mapping ofpreprocessor
is toned down in intensity to remove what was a stylistic exaggeration. Thevariable
mapping is tweaked to usecyan-warmer
instead of thecyan
colour, as the former is slightly more suited to the role due to how it combines with other colours. Thetype
semantic mapping is bound to a less intense shade of magenta, making it not overpower other constructs in a competition for attention. Finally, the value of themagenta-faint
colour has a greater contribution from the blue channel of light to shift its hue slightly closer to purple. -
The
ef-deuteranopia-light
palette entry forred-faint
is more yellow to be discernible where needed. Similarly, thecyan-cooler
has a reduced contribution from the red channel of light.[ Note that the “deuteranopia” and “tritanopia” themes define all colours in the palette to be consistent with the overall project, but only use hues that are appropriate for red-green and blue-yellow colour deficiency, respectively. ]
-
The “subtle” backgrounds of all themes (e.g.
bg-red-subtle
) are redone to feel more natural in the context of their respective theme. Before, some values were a bit exaggerated and/or not aligned with the overall aesthetic. Still, the changes are small: do not expect your preferred theme to be refashioned.
More accurate faces for Org agenda dates
The faces used by Org agenda to style events with a scheduled date or deadline are redesigned to better complement the semantics of what is on display. Pressing tasks stand out more, while those that do not require immediate attention are rendered in a more subtle style.
Thanks to Adam Porter (aka GitHub alphapapa) for suggesting this revision and discussing the technicalities with me. This was done in issue 102 of the Modus themes repository (but the principles apply to the Ef themes as well): https://github.com/protesilaos/modus-themes/issues/102.
The forge
package is fully supported
All of its faces will now look consistent in context as they get the appropriate colours of the active Ef theme.
Thanks to Len Trigg for reporting that some attributes were not suitable for the intended purpose of certain Forge faces. I fixed those accordingly. This was done in issue 47: https://github.com/protesilaos/ef-themes/issues/47.
Support for the tldr
package
This makes it look consistent with the rest of the theme.
Support for the built-in window-tool-bar-mode
This is a mode available in Emacs 30. Its faces will look right at all times.
Support for the built-in hexl-mode
Instead of using shades of grey backgrounds, the themes use carefully chosen foreground values that are easier to spot.
The embark
faces are brought up-to-date
Old symbols are removed and the current ones are added in their stead.
Miscellaneous
-
The
:background-mode
property of theef-melissa-dark
theme is set to the correct symbol. Thanks to Pedro Cunha for making the change in pull request 46: https://github.com/protesilaos/ef-themes/pull/46. The change is small, so Pedro does not need to assign copyright to the Free Software Foundation. -
Graphical buttons inherit the
ef-themes-button
face, which makes it easier to ensure theme-wide consistency for all relevant faces. -
The
all-the-icons
faces for Ibuffer use different colours that refine how everything looks in context. -
The popup produced by the
corfu
andcompany
packages will use a monospaced font (inherit fromfixed-pitch
) if the user optionef-themes-mixed-fonts
is set to a non-nil value. -
The annotation function used by the command
ef-themes-select
or related now uses thecompletions-annotations
face, as it should.