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.


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.