I will explain everything on my website as well as the change log,
once version 4.0.0 is released. What I have here is not final and I
am still testing for regressions.
The user option 'modus-themes-completions' now accepts an alist value
instead of a symbol. For example:
(setq modus-themes-completions '((matches . (extrabold))
(selection . (semibold accented))
(popup . (accented intense))))
The doc string or the manual explains the details.
All old values, such as 'opinionated' and 'moderate' ARE IGNORED.
This change is necessary as the old design was inflexible and led to
awkward compromises with the choice of colours and overall looks.
This is a MAJOR CHANGE for Ivy and Helm, as their default looks are now
subtle, aligning them with all other completions UIs. Users who
preferred the old style can use 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)))
Again, please read the docs.
Furthermore, the new 'modus-themes-completions' finally harmonises all
completion UIs supported by the themes. This means that it also applies
to Corfu, Company, and the Popup library.
The faces of all affected packages have been reviewed to ensure
theme-wide consistency and/or keep things simple.
Thanks to Daniel Mendler for the feedback in issue 278:
<https://gitlab.com/protesilaos/modus-themes/-/issues/278>.
This affects constructs such as =verbatim= and ~code~ in Org, `code` in
Markdown, `code' in Info, and more.
* Change the default style for code markup in Org and others so that it
only uses a foreground value instead of a combination of foreground
and gray background.
* The old style of a gray background with a very subtle foreground has
been retired. It did not work well in certain contexts and it no
longer feels consistent with the rest of the theme due to changes such
as in commit 2d5ed2f.
* The new default works better for literate programming with Org, as
#+RESULTS which output lines with the 'org-code' face do not have a
background (same as the default for source blocks, which makes things
look consistent).
* The new default also combines naturally with the default style of Org
mode to show emphasis markers.
Thanks to Rudolf Adamkovič for the feedback in issue 274:
<https://gitlab.com/protesilaos/modus-themes/-/issues/274>.
Deprecated the user option 'modus-themes-mode-line-padding' and made the
user option 'modus-themes-mode-line' accept a natural number directly.
When the number is greater than 1, it adds N extra padding.
This is part of the major refactoring that is underway to clean up and
simplify the code of the themes for version 2.0.0:
<https://gitlab.com/protesilaos/modus-themes/-/issues/259>.
The following variables no longer have any effect:
+ modus-themes-scale-headings
+ modus-themes-variable-pitch-headings
+ modus-themes-scale-1
+ modus-themes-scale-2
+ modus-themes-scale-3
+ modus-themes-scale-4
+ modus-themes-scale-title
Instead everything is consolidated in two variables:
+ modus-themes-headings
+ modus-themes-org-agenda
The paradigm for those is the same (read their doc strings for further
details):
+ To set the height of a heading, just specify a floating point.
+ To make a specific heading use a proportionately spaced font, simply
include variable-pitch in the list of properties.
This is part of the major refactor that is underway to clean up and
simplify the code of the themes for version 2.0.0:
<https://gitlab.com/protesilaos/modus-themes/-/issues/259>.
It never worked well, as it caused alignment issues. There is nothing
we can do at the theme level to fix the issue: Org should have another
way to aligning to a specific length instead of font-based spacing.
This is part of the progress towards version 2.0.0 of the themes. See
issue 259: <https://gitlab.com/protesilaos/modus-themes/-/issues/259>.
Everything should now be subject to a single toggle:
modus-themes-deuteranopia. The modus-themes-success-deuteranopia is
thus superseded, while the individual deuteranopia-friendly styles for
diffs and the Org agenda's habit graph are altogether removed (there is
no clean way to notify the user of their deprecation---apologies for the
inconvenience!).
* * *
Also read issue 259 for other possible changes for version 2.0.0:
<https://gitlab.com/protesilaos/modus-themes/-/issues/259>.
There is a new section in the manual for those who want to restore that
style. I have been meaning to remove it for a long time, because it is
not up to the established standard of the themes, but there was no good
opportunity to do so. Now that we are approaching version 2.0.0 of the
themes, it is right to make such backward-incompatible changes.
Short version of what is in the manual:
(defun my-modus-themes-custom-faces ()
(modus-themes-with-colors
(custom-set-faces
`(modus-themes-diff-added ((,class :background unspecified :foreground ,green))) ; OR ,blue for deuteranopia
`(modus-themes-diff-changed ((,class :background unspecified :foreground ,yellow)))
`(modus-themes-diff-removed ((,class :background unspecified :foreground ,red)))
`(modus-themes-diff-refine-added ((,class :background ,bg-diff-added :foreground ,fg-diff-added)))
;; `(modus-themes-diff-refine-added ((,class :background ,bg-diff-added-deuteran :foreground ,fg-diff-added-deuteran)))
`(modus-themes-diff-refine-changed ((,class :background ,bg-diff-changed :foreground ,fg-diff-changed)))
`(modus-themes-diff-refine-removed ((,class :background ,bg-diff-removed :foreground ,fg-diff-removed)))
`(modus-themes-diff-focus-added ((,class :background ,bg-dim :foreground ,green))) ; OR ,blue for deuteranopia
`(modus-themes-diff-focus-changed ((,class :background ,bg-dim :foreground ,yellow)))
`(modus-themes-diff-focus-removed ((,class :background ,bg-dim :foreground ,red)))
`(modus-themes-diff-heading ((,class :background ,bg-alt :foreground ,fg-main)))
`(diff-indicator-added ((,class :foreground ,green))) ; OR ,blue for deuteranopia
`(diff-indicator-changed ((,class :foreground ,yellow)))
`(diff-indicator-removed ((,class :foreground ,red)))
`(magit-diff-added ((,class :background unspecified :foreground ,green-faint)))
`(magit-diff-changed ((,class :background unspecified :foreground ,yellow-faint)))
`(magit-diff-removed ((,class :background unspecified :foreground ,red-faint)))
`(magit-diff-context-highlight ((,class :background ,bg-dim :foreground ,fg-dim))))))
;; This is so that the changes persist when switching between
;; modus-operandi and modus-vivendi
(add-hook 'modus-themes-after-load-theme-hook #'my-modus-themes-custom-faces)
Thank you for your understanding!
* * *
Also read issue 259 for other possible changes for version 2.0.0:
<https://gitlab.com/protesilaos/modus-themes/-/issues/259>.
Thanks to Morgan Smith for suggesting the idea in issue 239:
<https://gitlab.com/protesilaos/modus-themes/-/issues/239>.
I also fixed some errors with the doc string and the corresponding entry
in the manual which referenced a nonexistent symbol of 'text-only'
instead of the correct 'text-also'.
+ The new style of setting possible combinations is that of a list of
properties (symbols) as explained in the variable's doc string or in
the manual. This makes it easier to extend the set of possible
options. We do just that by adding three new properties, which
combine to more styles overall.
+ Old styles are preserved and will continue to be valid for the
foreseeable future---definitely until after version 2.0.0 of the
themes. There should be no breaking changes though users are
encouraged to switch to the new format.
This refactoring pertains to the longer-term commitment to make the
customisation options more flexible and easier to maintain, as sketched
out in issue 210 together with Philip Kaludercic:
<https://gitlab.com/protesilaos/modus-themes/-/issues/210>.
+ The new style of setting possible combinations per heading level is
that of a list of properties (symbols) as explained in the variable's
doc string or in the manual.
+ There is a breaking change where a 'nil' value per heading level is no
longer acceptable. That was used to signify the original styles for
that level. Now you must use 't' (which also worked before).
+ New stylistic sets are possible, by combining the properties
'background' and 'monochrome'. To those one may add 'overline'
and/or 'no-bold'.
This refactoring pertains to the longer-term commitment to make the
customisation options more flexible and easier to maintain, as outlined
in issue 210 together with Philip Kaludercic:
<https://gitlab.com/protesilaos/modus-themes/-/issues/210>.
+ The new approach of setting possible combinations is that of a list of
properties (symbols) as explained in the variable's doc string or in
the manual.
+ A new style is now available which adds an underline (in addition to
what was before).
+ Old styles are preserved and will continue to be valid for the
foreseeable future---definitely until after version 2.0.0 of the themes.
This refactoring pertains to the longer-term commitment to make the
customisation options more flexible and easier to maintain, as sketched
out in issue 210 together with Philip Kaludercic:
<https://gitlab.com/protesilaos/modus-themes/-/issues/210>.
+ The new style of setting possible combinations is that of a list of
properties (symbols) as explained in the variable's doc string or in
the manual. This offers us more combinations, such as amalgams of
'alt-syntax' and 'faint', 'faint' and 'green-strings', and so on.
+ Old styles are preserved and will continue to be valid for the
foreseeable future---definitely until after version 2.0.0 of the
themes.
+ There is a breaking change in terms of visuals with regard to the
style of the 'alt-syntax' property, which changes how strings and doc
strings are colored. The old colors used to be green, whereas now
this only happens when the list of properties includes both
'alt-syntax' and 'green-strings'.
This refactoring pertains to the longer-term commitment to make the
customisation options more flexible and easier to maintain, as sketched
out in issue 210 together with Philip Kaludercic:
<https://gitlab.com/protesilaos/modus-themes/-/issues/210>.
The old 'modus-themes-slanted-constructs' was unnecessarily technical
with its use of the "slant" terminology. That could potentially hinder
the dicoverability of this option.