emacs/var/elfeed/db/data/3b/3b97a191f55d7b19c6ec3bea6e71b037ec754fb6
2022-01-03 12:49:32 -06:00

389 lines
18 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<p>Published version <code>1.4.0</code> of <a href="https://protesilaos.com/emacs/modus-themes">the Modus
themes</a>. The detailed release
notes are provided below. For a general overview of the project watch
<a href="https://protesilaos.com/codelog/2021-05-19-modus-themes-status-update/">the status update of
2021-05-19</a>.
For any questions pertaining to this publication feel welcome to
<a href="https://protesilaos.com/contact/">contact me</a>.</p>
<p>A patch to update the version of the themes that are shipped with Emacs
will be prepared right after this announcement is published. GNU ELPA
syncs from emacs.git, so expect an update shortly thereafter.</p>
<hr />
<h2>Modus themes version 1.4.0</h2>
<p>By Protesilaos Stavrou <a href="mailto:info@protesilaos.com">info@protesilaos.com</a> on 2021-05-25</p>
<p>This entry records the changes made to the project since the release of
version 1.3.0 on 2021-04-17. There have been around 100 commits in the
meantime, as is the norm.</p>
<p>If you are coming from older versions, please consult the change log
entry for version 1.0.0 with regard to the breaking changes that were
introduced.</p>
<p>Every colour-related modification is always done in accordance with the
overarching accessibility objective of the themes for a minimum contrast
ratio of 7:1 between background and foreground values in their given
combination (the WCAG AAA standard).</p>
<p>URL of the official manual: <a href="https://protesilaos.com/emacs/modus-themes">https://protesilaos.com/emacs/modus-themes</a>. Or
read it with Emacs Info reader by evaluating this form:</p>
<pre><code>(info "(modus-themes) Top")
</code></pre>
<p>Remember that the themes are built into Emacs version 28 (current
development target), and are available on GNU ELPA, as well as other
archives.</p>
<h2>Customisations variables</h2>
<ul>
<li>
<p>Redefined the style of <code>fg-only</code> that <code>modus-themes-diffs</code> accepts, so
that it no longer uses a red-green colour coding, but applies a
red-blue distinction instead. The symbol <code>fg-only</code> is a deprecated
alias for the more descriptive <code>fg-only-deuteranopia</code>.</p>
<p>This is done because green text on a light background is one of the
worst combinations for the purposes of legibility, as it does not
stand out in its context and thus forces undesirable compromises.
Whereas red and blue work well in this case, while making the style
accessible to users with red-green colour deficiency (deuteranopia).
To avoid inconsistencies between Modus Operandi and Modus Vivendi, we
replace green with blue in both themes. A full report is available in
issue 183 which was created on April 21, 2021:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/183">https://gitlab.com/protesilaos/modus-themes/-/issues/183</a>.</p>
</li>
<li>
<p>Introduced the boolean <code>modus-themes-success-deuteranopia</code> which
replaces all instances of green with blue in contexts where a
red-green colour coding is in effect (e.g. Org TODO vs DONE keywords,
isearch current match…).</p>
</li>
<li>
<p>Implemented <code>modus-themes-mail-citations</code> to control the colouration
of cited text in email-related buffers, such as Gnus or message.el.
It accepts values nil, <code>faint</code>, and <code>monochrome</code>. By default (the nil
value) the text of citations cycles through blue, green, red, yellow
depending on the level of depth.</p>
</li>
<li>
<p>Expanded the set of options for <code>modus-themes-mode-line</code> to encompass
the values <code>borderless-accented</code>, <code>borderless-accented-3d</code>, and
<code>borderless-accented-moody</code>. Those are variations of existing styles.
The complete list:</p>
<ul>
<li>nil (default)</li>
<li>3d</li>
<li>moody</li>
<li>borderless</li>
<li>borderless-3d</li>
<li>borderless-moody</li>
<li>accented</li>
<li>accented-3d</li>
<li>accented-moody</li>
<li>borderless-accented</li>
<li>borderless-accented-3d</li>
<li>borderless-accented-moody</li>
</ul>
</li>
<li>
<p>Renamed the non-nil values that <code>modus-themes-org-blocks</code> accepts from
<code>grayscale</code>, <code>rainbow</code> to <code>gray-background</code> and <code>tinted-background</code>,
respectively. The new symbols better describe their effect on Org
source blocks, namely, that they affect the background of the block
rather than the foreground. The old symbols will still work but are
considered deprecated aliases of the newer ones.</p>
</li>
<li>
<p>Altered the intensity of the <code>modus-themes-hl-line</code> option
<code>accented-background</code> to a more noticeable shade of cyan/teal. The
old style was too subtle to have the desired effect. The value
<code>underline-accented</code> is not affected by this change, as it still uses
the same subtle background it did before in combination with a more
pronounced underline colour.</p>
</li>
<li>
<p>Deleted all deprecation warnings that concerned the transition from
version 0.13.0 of the themes to 1.0.0. Those had been in effect for
several months, spanning four tagged releases.</p>
</li>
</ul>
<h2>Faces or face groups</h2>
<ul>
<li>
<p>Reconsidered the use of colour in all email-related citation faces to
avoid exaggerations and reduce complexity. Colour values have been
tweaked to tone down their overall intensity, while the number of
colours has been reduced to four. Gnus and Mu4e have faces for more
levels of citation depth, though those will simply repeat the
four-colour cycle.</p>
</li>
<li>
<p>Made the <code>message-mml</code> face look consistent with the rest of the
buffer while composing an email by changing its foreground colour from
a yellow to a cyan variant.</p>
</li>
<li>
<p>Refined several faces in the Notmuch group in the interest of harmony:</p>
<ul>
<li>
<p>Individual message headers in <code>notmuch-show-mode</code> use bold text in
addition to their existing subtle background to better stand out in
their context. The face is <code>notmuch-message-summary-face</code>.</p>
</li>
<li>
<p>Tags are no longer set unconditionally to a bold typographic weight.
They become such for unread threads in <code>notmuch-search-mode</code>
buffers, as well as for headers of <code>notmuch-show-mode</code>.</p>
</li>
<li>
<p>Removal and addition of tags is now denoted by a strike-through and
an underline effect, respectively, whereas before they both used
underlines with the only difference being their colour.</p>
</li>
<li>
<p>The subject line in <code>notmuch-search-mode</code> buffers uses the main
foreground instead of a dimmed one. The field of matching authors
has a tweaked foreground to keep the tabular view easy to read.</p>
</li>
<li>
<p>All cryptography-related faces are simplified to not show a coloured
background but only use a foreground colour instead.</p>
</li>
</ul>
</li>
<li>
<p>Removed direct support for <code>counsel-notmuch</code> as it already inherits
from the relevant notmuch faces. The package is thus considered
indirectly supported.</p>
</li>
<li>
<p>Refrained from setting a background to the <code>csv-separator-face</code> as it
would inevitably colourise the negative space in the tabular view
created by <code>csv-align-mode</code>. A red text colour is used instead, even
though this is not common practice: it is easier to spot for small,
single characters, such as a comma or a semicolon that is meant to
have a special meaning. Thanks to Kevin Fleming for reporting the
problem and for offering feedback on the choice of colour in issue
194: <a href="https://gitlab.com/protesilaos/modus-themes/-/issues/194">https://gitlab.com/protesilaos/modus-themes/-/issues/194</a>.</p>
</li>
<li>
<p>Distinguished between ordinary links and widget buttons by removing
the underline from the latter (the <code>widget-button</code> face) and altering
the shade of its foreground colour. Such widgets are used in Emacs
Custom interfaces and can also be found in the default Notmuch “hello”
buffer that runs <code>notmuch-hello-mode</code>.</p>
</li>
<li>
<p>Tweaked the Ediff current faces to be consistent with <code>diff-mode</code> and
related. In practice, this only applies when <code>modus-themes-diffs</code> is
set to a value of <code>fg-only-deuteranopia</code>, as it adds a dim background
to the current diff hunk. All other styles of <code>modus-themes-diffs</code>
look the same as before while using Ediff.</p>
</li>
<li>
<p>Simplified the faces of <code>corfu</code> to match the current state of the
upstream project. Thanks to Daniel Mendler (its developer) for
reporting this in issue 184:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/184">https://gitlab.com/protesilaos/modus-themes/-/issues/184</a>.</p>
</li>
<li>
<p>Refined all Eshell faces so that the output of <code>ls</code> is consistent with
the overall aesthetic of the themes. Also made <code>eshell-prompt</code>
inherit from <code>comint-highlight-prompt</code> to look the same as other such
prompts (all are configurable by <code>modus-themes-prompts</code>).</p>
</li>
<li>
<p>Revised <code>eshell-prompt-extras</code> and <code>eshell-git-prompt</code> to use colours
and typographic weight that better match the style of the various
configurations they offer.</p>
</li>
<li>
<p>Simplified <code>eshell-syntax-highlighting</code> to inherit from the standard
Eshell faces, where appropriate.</p>
</li>
<li>
<p>Adjusted the colour of <code>centaur-tabs-active-bar-face</code> and removed the
bespoke <code>fg-tab-accent</code> colour from <code>modus-themes-operandi-colors</code> and
<code>modus-themes-vivendi-colors</code> that was only used by it (and which
should have never been introduced to begin with).</p>
</li>
<li>
<p>Updated the <code>tab-bar-groups</code> faces to match changes upstream. Thanks
to Fritz Grabo (its developer) for the patch in merge request 35:
<a href="https://gitlab.com/protesilaos/modus-themes/-/merge_requests/35">https://gitlab.com/protesilaos/modus-themes/-/merge_requests/35</a>.</p>
</li>
<li>
<p>Changed the Ibuffer title and group faces to better differentiate
between group titles and special or non-file-visiting buffers. Thanks
to Nicolas De Jaeghere for the patch in merge request 37:
<a href="https://gitlab.com/protesilaos/modus-themes/-/merge_requests/37">https://gitlab.com/protesilaos/modus-themes/-/merge_requests/37</a>.</p>
</li>
<li>
<p>Ensured that all faces that denote a “success” state, or which are
expected to be coloured in green in a red-green binary, can use an
appropriate blue colour (or colour combination that involves blue)
instead when <code>modus-themes-success-deuteranopia</code> is set to a non-nil
value.</p>
</li>
<li>
<p>Added support for the new <code>bookmark-face</code> in Emacs version 28. This
means that the built-in bookmark.el library is directly supported by
the themes. This face can be disabled by setting <code>bookmark-fontify</code>
to nil. Thanks to Mark Barton for reporting the presence of this new
face and for providing feedback on its style in issue 189:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/189">https://gitlab.com/protesilaos/modus-themes/-/issues/189</a>.</p>
</li>
<li>
<p>Aligned <code>hes-mode</code> (<code>highlight-escape-sequences</code>) with the standard
font-lock faces for regexp grouping. This means that it conforms with
changes to the <code>modus-themes-syntax</code> variable.</p>
</li>
<li>
<p>Reconfigured the <code>org-quote</code> face to adapt its style depending on the
value of <code>modus-themes-org-blocks</code>. The default is a subtle blue/cold
foreground colour against the main background. When a value of
<code>gray-background</code> is assigned to <code>modus-themes-org-blocks</code>, the texts
colour becomes that of the main foreground in order to maintain a good
level of legibility. Thanks to Rudolf Adamkovič for the feedback in
issue 190: <a href="https://gitlab.com/protesilaos/modus-themes/-/issues/190">https://gitlab.com/protesilaos/modus-themes/-/issues/190</a>.</p>
</li>
<li>
<p>Refashioned the <code>show-paren-match-expression</code> face to make it apply a
bespoke background colour and not override the expressions foreground
colours. This face is used by <code>show-paren-mode</code> when the
customisation variable <code>show-paren-style</code> is set to the <code>expression</code>
value. Thanks to Rudolf Adamkovič for the feedback in issue 191:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/191">https://gitlab.com/protesilaos/modus-themes/-/issues/191</a>.</p>
</li>
<li>
<p>Made headings level 8 use a fine shade of magenta by default instead
of gray (notwithstanding user changes to <code>modus-themes-headings</code>).
This should have a negligible difference in Org or Outline buffers,
but is more noticeable when editing Elisp in Emacs28 while also using
<code>outline-minor-mode</code> and with <code>outline-minor-mode-highlight</code> set to
<code>override</code>. That is because several top-level forms use that heading
level with those configurations.</p>
</li>
</ul>
<h2>Documentation (the manual)</h2>
<ul>
<li>
<p>Incorporated a sample configuration block with all customisation
variables and with comment annotations of their available options, in
an attempt to make it easier for users to discover what the themes
provide.</p>
</li>
<li>
<p>Replaced all instances of “modeline” with “mode line” for consistency
with the Emacs style. Thanks to Rudolf Adamkovič for the patch that
started this process in merge request 33:
<a href="https://gitlab.com/protesilaos/modus-themes/-/merge_requests/33">https://gitlab.com/protesilaos/modus-themes/-/merge_requests/33</a>.</p>
</li>
<li>
<p>Wrote note on setting mode line faces that indicate the state of
<code>god-mode</code>. Thanks to Rudolf Adamkovič for the feedback in issue 187:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/187">https://gitlab.com/protesilaos/modus-themes/-/issues/187</a>. Also
thanks to Rudolf for updating the applicable hook in merge request 34:
<a href="https://gitlab.com/protesilaos/modus-themes/-/merge_requests/34">https://gitlab.com/protesilaos/modus-themes/-/merge_requests/34</a>.</p>
</li>
<li>
<p>Listed <code>org-mode</code> variables that affect fontification in blocks:
<code>org-src-fontify-natively</code>, <code>org-fontify-whole-block-delimiter-line</code>,
and <code>org-fontify-quote-and-verse-blocks</code>. This complements the
already documented variables <code>org-fontify-whole-heading-line</code> and
<code>org-fontify-done-headline</code> that pertain to headings.</p>
</li>
<li>
<p>Included note on fontifying inline Latex expressions in Org buffers.
Thanks to Rudolf Adamkovič for the feedback in issue 190:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/190">https://gitlab.com/protesilaos/modus-themes/-/issues/190</a>.</p>
</li>
<li>
<p>Elaborated on the use of <code>face-remap-add-relative</code> by means of sample
code that cycles through arbitrary colours for the <code>region</code> face.
This is filed under the “Do It Yourself” (DIY) section.</p>
</li>
<li>
<p>Provided a DIY method for adapting the fontification of Org source
block delimiter lines to the value of <code>modus-themes-org-blocks</code>.</p>
</li>
<li>
<p>Expanded the DIY entry on overriding the saturation of the active
themes colours with a method that combines the programmatic approach
with manual overrides. The user can thus specify the colour values
they want to override and let the rest be handled by Elisp.</p>
</li>
<li>
<p>Introduced a section with answers to Frequently Asked Questions (FAQ)
about the design of the themes as well as recommendations on how to
ensure optimal reading conditions or start thinking about them. The
questions are:</p>
<ul>
<li>Is the contrast ratio about adjacent colors?</li>
<li>What does it mean to avoid exaggerations?</li>
<li>Why are colors mostly variants of blue, magenta, cyan?</li>
<li>What is the best setup for legibility?</li>
</ul>
</li>
</ul>
<h2>Miscellaneous</h2>
<ul>
<li>
<p>Removed superfluous code from internal functions and adapted their
indentation to make them easier to read.</p>
</li>
<li>
<p>Recalibrated some values in <code>modus-themes-vivendi-colors</code> to ensure
consistency in luminance with other colours that are used in their
context. Those are subtle changes that can only be discerned in
side-by-side comparisons of the before and after states. Thanks to
André Alexandre Gomes for the feedback in issue 193:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/193">https://gitlab.com/protesilaos/modus-themes/-/issues/193</a>.</p>
</li>
<li>
<p>Changed the saturation and hueness of the bespoke <code>fg-comment-yellow</code>
in <code>modus-themes-operandi-colors</code> and <code>modus-themes-vivendi-colors</code> to
better contrast with its context, while still keeping its luminance
consistent with its role as a colour for comments in code. This is
used when <code>modus-themes-syntax</code> is configured appropriately (read its
doc string or consult the manual).</p>
</li>
<li>
<p>Attempted to add explicit support for the faces of the built-in
pulse.el library, but ultimately opted against them as the doc string
of <code>pulse-highlight-face</code> advises against customising it, even though
it is not clear from the source code in emacs.git what the problem
could be. We shall reconsider this case for the next release cycle.
Thanks to Gustavo Barros for the feedback on several aspects of this
topic in issues 185 and 200:</p>
<ul>
<li><a href="https://gitlab.com/protesilaos/modus-themes/-/issues/185">https://gitlab.com/protesilaos/modus-themes/-/issues/185</a></li>
<li><a href="https://gitlab.com/protesilaos/modus-themes/-/issues/200">https://gitlab.com/protesilaos/modus-themes/-/issues/200</a></li>
</ul>
</li>
<li>
<p>Took the feedback of John Haman in issue 199 as a reminder to complete
the set of possible values for the <code>modus-themes-mode-line</code> variable:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/199">https://gitlab.com/protesilaos/modus-themes/-/issues/199</a>.</p>
</li>
</ul>