emacs/var/elfeed/db/data/84/84b7148f3b0905717436ad9115368c0865f6b9cf
2022-01-03 12:49:32 -06:00

439 lines
19 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>Just published version <code>1.2.0</code> of <a href="https://protesilaos.com/emacs/modus-themes">the Modus themes</a>.
The detailed release notes are reproduced below. For any questions
pertaining to this publication feel welcome to <a href="https://protesilaos.com/contact/">contact me</a>.</p>
<p>My immediate task now is to prepare patches for upstream Emacs so that
the <code>modus-operandi-theme</code> and <code>modus-vivendi-theme</code> can be updated from
version <code>0.13.0</code> to the current one.</p>
<hr />
<h2>Modus themes version 1.2.0</h2>
<p>By Protesilaos Stavrou <a href="mailto:info@protesilaos.com">info@protesilaos.com</a> on 2021-03-04</p>
<p>This entry records the changes introduced to the project since the
publication of version 1.1.0 (2021-01-24). There have been close to 100
commits in the meantime.</p>
<p>Every colour-related modification documented herein conforms 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>As the official manual is referenced several times throughout this log,
make sure to store its URL: <a href="https://protesilaos.com/emacs/modus-themes">https://protesilaos.com/emacs/modus-themes</a>. Or
read it from Emacs Info reader by evaluating this form:</p>
<pre><code>(info "(modus-themes) Top")
</code></pre>
<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>
<h2>Prior notice: Upgrading the themes in Emacs28 and GNU ELPA</h2>
<p>Emacs28, the current development target, now includes a <code>require-theme</code>
function. It is a prerequisite to upgrading the Modus themes to their
current version. Prior to the definition of that function, the themes
could not transition from their 0.13.0 version to &gt;=1.0.0. Special
thanks to Basil L. Contovounesios for making it happen, as well Mauro
Aranda and Eli Zaretskii for their feedback and support.</p>
<p>Expect the Modus themes in upstream Emacs to be updated shortly after
the publication of this document.</p>
<p>GNU ELPA currently ships version 0.12.0 of the two standalone packages
<code>modus-operandi-theme</code> and <code>modus-vivendi-theme</code>. This will change in
the immediate future, as a new <code>modus-themes</code> package will succeed them.
That new package will be built directly from emacs.git, as it must now
become a <code>:core</code> entity instead of being listed as an <code>:external</code> one.</p>
<p>Again, expect a patch to be applied to elpa.git shortly after this
document goes live.</p>
<h2>Customisation options</h2>
<p>[ All variables and their values are documented in the themes manual.
The default value is always nil. ]</p>
<ul>
<li>
<p>The new boolean <code>modus-themes-subtle-line-numbers</code> variable will make
the effect of <code>display-line-numbers-mode</code> more subtle when set to a
non-nil value. It removes the underlying background of the unfocused
lines while toning down their foreground.</p>
</li>
<li>
<p>The <code>modus-themes-diffs</code> variable now accepts a <code>deuteranopia</code> value.
This optimises for red-green colour deficiency in all modes that show
diffs (diff-mode, ediff, Magit…). In practice, all instances of
green are replaced with appropriate blue hues. For more on the
matter, read the report which also includes pictures:
<a href="https://protesilaos.com/codelog/2021-02-25-modus-themes-diffs-deuteranopia/">https://protesilaos.com/codelog/2021-02-25-modus-themes-diffs-deuteranopia/</a>.</p>
</li>
<li>
<p>The <code>modus-themes-syntax</code> variable now reads <code>faint-yellow-comments</code>
as a valid value. This has the same scope as the existing <code>faint</code>
value with the added effect of assigning a yellow tint to comments: it
tones down the saturation of colours that apply to code syntax
(standard font-lock faces and others inheriting from them).</p>
</li>
<li>
<p>The <code>modus-themes-links</code> variable is expanded to accept the new value
of <code>neutral-underline-only</code>: it removes the foreground from the link
and draws a neutral gray underline below it.</p>
</li>
</ul>
<h2>Refinements to existing packages or face groups</h2>
<ul>
<li>
<p>Refashioned all faces that pertain to emails, including Gnus, Mu4e,
Notmuch, and the standard <code>message.el</code> library. This concerns the
colours that apply to the message header keys and their values, as
well as quote levels.</p>
<ul>
<li>
<p>Introduced more contrasting hues for headings and made more
considerate use of bold typography. The new colour combinations are
better suited for the task of delivering a sense of structure;
structure that is at once effective and subtle.</p>
</li>
<li>
<p>Applied less intense colours throughout all quotation levels.</p>
</li>
<li>
<p>Revised the sequencing of hues in quotation levels to allow distinct
levels to stand out more without relying on excessive saturation.</p>
</li>
<li>
<p>Aligned the styling of Notmuch header dates with their counterparts
in other similar contexts, in pursuit of theme-wide consistency.</p>
</li>
</ul>
</li>
<li>
<p>Rewrote the faces of EBDB to achieve a better sense of structure.</p>
</li>
<li>
<p>Refined the colour combinations of change-log and log-view buffers to
make it easier to discern distinct elements.</p>
</li>
<li>
<p>Tweaked the colours of certain Elfeed constructs to improve the
overall presentation of its search buffers.</p>
</li>
<li>
<p>Changed the colour combinations of <code>M-x re-builder</code> to amplify the
distinction between the matching regexp groups while still reducing
their overall intensity.</p>
</li>
<li>
<p>Reconfigured the <code>diff-changed</code> face to always extend its background
to the edge of the window. Such “changed” lines are visible in
<code>diff-mode</code> buffers when the command <code>diff-unified-&gt;context</code> is
invoked.</p>
</li>
<li>
<p>Tweaked the colour combinations of ancillary faces in diff buffers
when the variable <code>modus-themes-diffs</code> is set to the value <code>fg-only</code>.
In particular:</p>
<ul>
<li>
<p>Removed the subtle background from the diff hunk headings and changed
their colour to ensure good visibility—guarantees a sense of
structure.</p>
</li>
<li>
<p>Made the context lines inherit the default foreground colour (pure
black/white), so that it contrasts better with red, green, and
yellow text.</p>
</li>
<li>
<p>Applied an accented foreground to the diff header. This is to
ensure that it is not mistaken for a diff hunks context.</p>
</li>
</ul>
<p>All these guarantee that the foreground-only highlights in line-wise
differences draw more attention to themselves.</p>
</li>
<li>
<p>Aligned all the standard hi-* faces with their default aesthetics.
Those are used by commands such as <code>highlight-symbol-at-point</code>.
Thanks to Philip K. for the valuable feedback in issue 157:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/157">https://gitlab.com/protesilaos/modus-themes/-/issues/157</a>.</p>
</li>
<li>
<p>Removed obsolete Consult faces and added new ones, so as to remain in
sync with the latest developments in that project. Thanks to Daniel
Mendler (Consults maintainer) for reporting the inconsistency in
issue 155: <a href="https://gitlab.com/protesilaos/modus-themes/-/issues/155">https://gitlab.com/protesilaos/modus-themes/-/issues/155</a>.</p>
<ul>
<li>
<p><code>consult-preview-line</code> now retains fontification on the current
line, instead of applying its own foreground.</p>
</li>
<li>
<p><code>consult-narrow-indicator</code> is refashioned to be colour-coded in a
consistent way with <code>consult-async-split</code>, as both denote the
delineation of a given scope.</p>
</li>
<li>
<p><code>consult-imenu-prefix</code> contrasts better with text on its current
line, while it adapts to possible customisations performed on the
Consult front.</p>
</li>
</ul>
</li>
<li>
<p>Expanded the coverage of <code>marginalia</code> faces to two include
<code>marginalia-char</code> and <code>marginalia-type</code>. This is done in the interest
of internal consistency between the elements of this set, as their
defaults were also accessible (they inherit from standard faces that
we already support).</p>
</li>
<li>
<p>Opted to render the Notmuch logo in a neutral gray backdrop. This was
deemed necessary as the logo is an immutable image file that consists
of black and white strokes. Black and white are the main background
values of <code>modus-vivendi</code> and <code>modus-operandi</code> respectively, which
could lead to confusion. The neutral gray ensures that the logo is
visible at all times. Thanks to Utkarsh Singh for the feedback in
issue 122: <a href="https://gitlab.com/protesilaos/modus-themes/-/issues/122">https://gitlab.com/protesilaos/modus-themes/-/issues/122</a>.</p>
</li>
<li>
<p>Refined the dedicated colour values used for diff hunk headings, as
seen in diff-mode buffers or Magit. The new colours yield text that
is easier to read by slightly toning down the combined intensity of
background+foreground.</p>
</li>
<li>
<p>Removed the subtle background of <code>diff-header</code> and <code>diff-file-header</code>.
The headers foreground and textual representation suffice to render
it distinct in its context.</p>
</li>
<li>
<p>Tweaked <code>org-agenda-structure</code> and <code>org-scheduled</code> to enhance the
usability of Org Agenda buffers.</p>
<ul>
<li>
<p>Made <code>org-agenda-structure</code> use the largest possible height that we
expose to users: <code>modus-themes-scale-5</code>.</p>
</li>
<li>
<p>Re-calibrated the hueness of <code>org-scheduled</code> and amplified its
saturation, in order to better convey the meaning of a scheduled
task.</p>
</li>
</ul>
<p>Thanks to Morgan Smith for the valuable feedback in issue 153:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/153">https://gitlab.com/protesilaos/modus-themes/-/issues/153</a>.</p>
</li>
<li>
<p>Tweaked the faces of the <code>bongo</code> package to enhance the
distinctiveness of the constructs they style.</p>
</li>
<li>
<p>Adjusted the overall aesthetic of calendar faces in the interest of
theme-wide consistency.</p>
</li>
<li>
<p>Aligned the visual metaphors of <code>org-code</code> with those of <code>org-macro</code>
and <code>org-verbatim</code>, by ensuring that a subtle background is present
behind the affected text, while the foreground conforms with the norms
of the <code>modus-themes-no-mixed-fonts</code> customisation option.</p>
</li>
<li>
<p>Made quoted text in Info buffers look the same as <code>org-verbatim</code> and
Markdowns inline code.</p>
</li>
<li>
<p>Instructed the faces of <code>info-colors</code> to inherit from appropriate
font-lock faces. This guarantees that everything works as intended
with the various values of <code>modus-themes-syntax</code>.</p>
</li>
<li>
<p>Refined the language tag of Markdown fenced blocks so that it does
attract unwarranted attention while delivering on its intended
purpose.</p>
</li>
<li>
<p>Rendered explicit the slant of ace-window hints, guaranteeing that it
does not inherit from the underlying text. Thanks to Nicolas De
Jaeghere for the patch:
<a href="https://gitlab.com/protesilaos/modus-themes/-/merge_requests/27">https://gitlab.com/protesilaos/modus-themes/-/merge_requests/27</a>.</p>
<p>[ Some more changes have been discussed, but those require tweaks to
the upstream package. ]</p>
</li>
<li>
<p>Ensured that the <code>org-tree-slide-header-overlay-face</code> never draws an
overline when the variable <code>modus-themes-headings</code> includes a relevant
setting for heading level 1. Such as with the following example (all
customisation options are documented in the themes manual):</p>
<p>(setq modus-themes-headings
((1 . section)
…))</p>
</li>
<li>
<p>Extended support for the new <code>tab-line-tab-inactive-alternate</code> face as
that occurs in Emacs28 (current development target). It comes into
effect when the variable <code>tab-line-tab-face-functions</code> includes a
value of <code>tab-line-tab-face-inactive-alternating</code>.</p>
</li>
</ul>
<h2>Newly supported packages</h2>
<ul>
<li>
<p>bbdb :: Thanks to Nicolas De Jaeghere in issue 128:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/128">https://gitlab.com/protesilaos/modus-themes/-/issues/128</a>.</p>
</li>
<li>
<p>mmm-mode :: Thanks to Davor Rotim for the feedback in issue 161:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/161">https://gitlab.com/protesilaos/modus-themes/-/issues/161</a>.</p>
</li>
<li>
<p>quick-peek :: Thanks to Burgess Chang for the feedback in issue 151:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/151">https://gitlab.com/protesilaos/modus-themes/-/issues/151</a></p>
</li>
<li>
<p>selectrum-prescient :: This new package was brought to my attention by
Manuel Uberti. The intent is to phase out the faces in Selectrum,
namely <code>selectrum-primary-highlight</code>, <code>selectrum-secondary-highlight</code>,
though those will still be supported by the Modus themes for the
foreseeable future.</p>
</li>
<li>
<p>shortdoc</p>
</li>
<li>
<p>spray</p>
</li>
<li>
<p>terraform-mode :: Thanks to Kevin Fleming for the feedback in issue
159: <a href="https://gitlab.com/protesilaos/modus-themes/-/issues/159">https://gitlab.com/protesilaos/modus-themes/-/issues/159</a>.</p>
</li>
<li>
<p>vc-dir (Emacs28)</p>
</li>
</ul>
<h2>Theme-related contributions to the wider community</h2>
<ul>
<li>
<p>Contributed the faces for <code>vc-dir</code> in Emacs28 and applied them to all
VC backends: <a href="https://debbugs.gnu.org/cgi/bugreport.cgi?bug=46358">https://debbugs.gnu.org/cgi/bugreport.cgi?bug=46358</a> and
<a href="https://debbugs.gnu.org/cgi/bugreport.cgi?bug=46745">https://debbugs.gnu.org/cgi/bugreport.cgi?bug=46745</a>.</p>
</li>
<li>
<p>Contributed a new face and some related tweaks to Emacs
<code>shortdoc.el</code>: <a href="http://debbugs.gnu.org/cgi/bugreport.cgi?bug=46748">http://debbugs.gnu.org/cgi/bugreport.cgi?bug=46748</a>.</p>
</li>
<li>
<p>Added faces to the <code>tab-bar-echo-area.el</code> package:
<a href="https://github.com/fritzgrabo/tab-bar-echo-area/pull/2">https://github.com/fritzgrabo/tab-bar-echo-area/pull/2</a>.</p>
</li>
<li>
<p>Reported issue that led to the review of the header face in
<code>org-tree-slide</code>: <a href="https://github.com/takaxp/org-tree-slide/issues/38">https://github.com/takaxp/org-tree-slide/issues/38</a>.</p>
</li>
<li>
<p>Helped refine the faces of the <code>rlist.el</code> package:
<a href="https://gitlab.com/mmemmew/rlist/-/commit/386f506d0110bebedd3a48ff972adba96e2232eb">https://gitlab.com/mmemmew/rlist/-/commit/386f506d0110bebedd3a48ff972adba96e2232eb</a>.</p>
</li>
</ul>
<h2>Documentation updates</h2>
<ul>
<li>
<p>Wrote about the indirect support for the <code>goggles</code> package. I had
helped write its faces, as was documented in the changelog for version
1.1.0 of the themes. Thanks to Manuel Uberti for bringing this to my
attention in issue 158:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/158">https://gitlab.com/protesilaos/modus-themes/-/issues/158</a>.</p>
</li>
<li>
<p>Explained that any changes to <code>custom-theme-load-path</code> and/or
<code>custom-theme-directory</code> should be performed before the themes are
loaded. Thanks to Adrian Manea for the feedback in issue 156:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/156">https://gitlab.com/protesilaos/modus-themes/-/issues/156</a>.</p>
</li>
<li>
<p>Included the symbol <code>bg-only</code> in the <code>modus-themes-diffs</code> section of
the manual. Thanks to user “iSeeU” for reporting the omission:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/154">https://gitlab.com/protesilaos/modus-themes/-/issues/154</a>.</p>
</li>
<li>
<p>Expanded the manuals entry on the semantics of the optional heading
scale used by the themes (the variables <code>modus-themes-scale-[1-5]</code>).
The values 1-4 apply to regular headings, with 4 being the largest on
the scale. While <code>modus-themes-scale-5</code> is reserved for special
headers, such as Org <code>#+title:</code> or the Org Agendas structure. Recall
that those variables only come into effect if the boolean variable
<code>modus-themes-scale-headings</code> is set to a non-nil value (it is nil by
default).</p>
</li>
<li>
<p>Made several changes to the <code>modus-themes.org</code> file in an effort to
improve the accuracy of the generated Texinfo markup. Thanks to Glenn
Morris and Richard Stallman for their valuable feedback in
<a href="https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45143">https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45143</a>.</p>
</li>
<li>
<p>Recorded a note in the manual on the intended colouration of
backgrounds applied by <code>mmm-mode</code>. It explains what the constraints
are from an accessibility standpoint and how users can configure
things locally for more colourful, yet inaccessible, backgrounds.
Thanks to Davor Rotim for the valuable feedback in issue 161:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/161">https://gitlab.com/protesilaos/modus-themes/-/issues/161</a>.</p>
</li>
<li>
<p>Refined the manuals note on prism.el, simplifying the code samples
and clarifying the commentary.</p>
</li>
<li>
<p>Wrote indices for concepts, variables, functions, which are rendered
in the Info manual.</p>
</li>
<li>
<p>Elaborated on the possibility—and relative merits—of implementing
a theme-agnostic hook for advanced face configurations, as opposed to
relying on <code>modus-themes-after-load-theme-hook</code>. Thanks to Daniel
Mendler for the valuable feedback in issue 131:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/131">https://gitlab.com/protesilaos/modus-themes/-/issues/131</a>.</p>
</li>
</ul>
<h2>Miscellaneous</h2>
<ul>
<li>
<p>Rewrote the documentation string of the <code>deftheme</code> declaration of
<code>modus-operandi</code> and <code>modus-vivendi</code>.</p>
</li>
<li>
<p>Provided links to the Info nodes that discuss each of the <code>defcustom</code>
declarations.</p>
</li>
<li>
<p>Wrote doc strings for every custom face that the themes define.</p>
</li>
</ul>