Emacs: modus-themes version 4.5.0
I just published the latest stable release of the Modus themes. The change log entry is reproduced further below. For any questions, feel welcome to contact me.
I will soon install the changes in emacs.git so please wait a little longer for the updates to trickle down to you.
- Package name (GNU ELPA):
modus-themes
(also built into Emacs 28+) - Official manual: https://protesilaos.com/emacs/modus-themes
- Change log: https://protesilaos.com/emacs/modus-themes-changelog
- Colour palette: https://protesilaos.com/emacs/modus-themes-colors
- Sample pictures: https://protesilaos.com/emacs/modus-themes-pictures
- Git repositories:
- Backronym: My Old Display Unexpectedly Sharpened … themes.
4.5.0 on 2024-08-21
The themes are in a stable state. They cover a wide range of packages and interfaces, while they are highly configurable. The present version provides further scope for customisation as well as some quality-of-life refinements.
Users can now extend the palette of each/all themes
In addition to palette overrides, users can now define extensions for
the palette of each theme or for all themes. The idea is to define new
colours while keeping the existing ones intact. Then, those colours
can be accessed in all the usual ways via (i) the
modus-themes-with-colors
macro, (ii) the function
modus-themes-get-color-value
, and (iii) in the palette override user
options.
I wrote about this on my website: https://protesilaos.com/codelog/2024-06-25-emacs-modus-themes-user-palette/.
And, as always, the manual is the up-to-date reference for everything you need.
The relevant user options are the following:
modus-themes-common-palette-user
modus-operandi-palette-user
modus-operandi-tinted-palette-user
modus-operandi-deuteranopia-palette-user
modus-operandi-tritanopia-palette-user
modus-vivendi-palette-user
modus-vivendi-tinted-palette-user
modus-vivendi-deuteranopia-palette-user
modus-vivendi-tritanopia-palette-user
More colours to chose from in customisations
A big part of the themes’ customisability is the palette overrides users can implement. The manual covers lots of examples. The short version is that the user can change how, say, the mode lines look, what an Org heading looks like, and so on.
We now have a new pair of background and foreground colours, namely,
bg-clay
and fg-clay
, as well as foreground values to complement
their already existing background counterparts: fg-ochre
,
fg-lavender
, fg-sage
.
“Graph” colours look a bit better in context
Each theme’s palette contains a subset of colour values that are
intended for use in graphs. One well-known package where those are
applied is the org-habit
consistency block.
I tweak a few colours in this subset to make them look better side-by-side as well as in other combinations. This concerns all the light themes.
The indicator for minibuffer recursion has a different style
This concerns the number shown next to the minibuffer prompt while in
a recursive minibuffer (per minibuffer-depth-indicate-mode
and
related settings to enable minibuffer recursion). Before, the style
was like a mouse highlight, which could be confusing in certain
situations. Now it is an unambiguous coloured background that still
stands out nicely.
The kmacro-menu
faces are also supported
These are the marks we see while using the interface provided by the
built-in command kmacro-menu
(alias list-keyboard-macros
).
The vtable
will respect the user choice for “mixed fonts”
The vtable
face will be rendered in a monospaced font (technically,
it will inherit fixed-pitch
) if the user sets the user option
modus-themes-mixed-fonts
to a non-nil value. Users may want to do
this to eventually apply a proportionately spaced font for regular
prose while keeping spacing-sensitive elements like blocks and tables
in a monospaced view.
[ The manual shows how to configure the individual font families via their respective faces. ]
Thanks to shipmints for bringing this matter to my attention in issue 110: https://github.com/protesilaos/modus-themes/issues/110.
The jabber
package is now supported
Thanks to Thanos Apollo for the contribution. The change is within the accepted line limit, meaning that Thanos does not need to assign copyright to the Free Software Foundation.
The doom-modeline
no longer uses bold-italic
This style was used to highlight some forms of emphasis, but it turns
out that it can clip the outline of icon fonts (per the nerd-fonts
package) under some situations.
Covered the built-in window-tool-bar-mode
Thanks to Jared Finder for the contribution. The change is small, meaning that Jared does not need to assign copyright to the Free Software Foundation.
Miscellaneous
-
The
elisp-shorthand-font-lock-face
is now easier to spot in context. This is a way for Emacs packages to define so-called “shorthands” of short prefixes in symbols that are aliases for longer ones. These shorthands will now use a style that is not found anywhere else in Elisp code, making them stand out more. -
Added partial support for the built-in
viper
package. NOTE though that this package is applying colors to cursors in a way that themes cannot override. The issue is especially problematic when switching themes. If anyone is using Viper and interested to modernise it, let me know about your work and then I will update the themes accordingly. Thanks to ZharMeny for asking me to support Viper in issue 115: https://github.com/protesilaos/modus-themes/issues/115. -
Fixed the symbol of an inherited face in
web-mode
. Thanks to Pavel Novichkov for the change. It does not require copyright assignment. -
Updated the manual to cover the aforementioned.