I am putting it here instead of the manual. The latter is synchronised
with emacs.git and I do not want to have any issues about mentioning
projects that may not be in line with GNU policy.
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>.