Skip to content
Modus themes version 2.2.0

By Protesilaos Stavrou <info@protesilaos.com> on 2022-02-23

The present entry records the changes made to the project since the
publication of version 2.1.0 on 2022-02-17.  This spans about 10 commits
(though one of them is massive).  Normally the release cycle occurs over
periods of 4-5 weeks.  This is a necessary exception.

To access the URL of the manual visit this web page:
<https://protesilaos.com/emacs/modus-themes>.  Or read it in the Emacs
Info reader by evaluating this form:

    (info "(modus-themes) Top")

The 'modus-operandi' and 'modus-vivendi' themes are built into Emacs-28
(next stable release) or later, and are available on GNU ELPA as well as
other archives.  Emacs-28 ships version 1.6.0, while the current
'master' branch (i.e. Emacs-29) and, by extension, GNU ELPA include the
latest tagged release.

Initialisation of user options
==============================

Removed a superfluous default value that hampered the initialisation of
defcustom forms in the M-x customize interface.  Things would still
work, but the interface was not looking right while editing the relevant
variables.  Thanks to Gustavo Barros for reporting the bug in issue 267:
<https://gitlab.com/protesilaos/modus-themes/-/issues/267>.

Refactor 'modus-themes-completions'
===================================

Implemented thoroughgoing reforms across all completion User Interfaces
(UIs) in order to make them more flexible/powerful and harmonise their
looks.

'modus-themes-completions' now accepts an alist instead of a symbol.
Each cons cell is in the form of '(key . list-of-properties)'.  The doc
string describes all the details.

In terms of out-of-the-box appearences, all completion UIs have a subtle
aesthetic.  This was always the case for the likes of Vertico, Icomplete
(Fido), and related, though it constitutes a marked departure from what
Ivy and Helm used to look like.  Users of the latter two can still get
the more colourful or intense style with something like this:

    (setq modus-themes-completions '((matches . (background intense))
                                     (selection . (accented intense))
                                     (popup . (accented intense))))

Or simply:

    (setq modus-themes-completions '((t background intense accented)))

The documentation explains all those associations in-depth.  There also
are other styles on offer (and combinations thereof).

Furthermore, the new 'modus-themes-completions' encompasses more UIs
than its predecessor, including Company and Corfu.

In the interest of theme-wide consistency, all applicable faces have
been reviewed.

Finally, note that the previous tagged release also made changes on this
front, but it did not disrupt the status quo that was in place from
before the release of version 1.0.0 of the themes (more than a year
ago).  In other words, it tried to make unnecessary compromises within
the confines of an outdated design that did not fit in with the rest of
the code base.  The new 'modus-themes-completions' might require manual
intervention from users who want to customise things to their liking,
though I feel this change is to our long-term benefit.

Thanks to Daniel Mendler and Rudolf Adamkovič for their feedback in
issue 278: <https://gitlab.com/protesilaos/modus-themes/-/issues/278>.
And thanks to Kenta Usami for recommending the use of a warning in issue
286: <https://gitlab.com/protesilaos/modus-themes/-/issues/286>.

Miscellaneous changes
=====================

+ Removed the pseudo-button effect from the 'org-checkbox' face.  It was
  not up-to-date with the current style of the rest of the themes,
  including the Org constructs for source block delimiters, the TODO
  keywords, the priority cookies (e.g. '[#A]'), and others.

+ Introduced a section in the manual which provides an alternative to
  the standard 'modus-themes-toggle' that leverages 'enable-theme'
  instead of 'load-theme' under the hood.  These technicalities are all
  explained in the manual.

+ Provided an alternative greyscale palette subset for 'modus-operandi'
  in the manual's section about overriding colours.

+ Added support for the built-in 'custom-variable-obsolete' face.

+ Fixed typo in the 'modus-themes-box-buttons' variable.  Thanks to
  Illia Ostapyshyn for the patch in merge request 58:
  <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/58>.