439 lines
19 KiB
Plaintext
439 lines
19 KiB
Plaintext
|
||
|
||
<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 >=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->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 hunk’s 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 (Consult’s 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 header’s 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
|
||
Markdown’s 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 manual’s 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 Agenda’s 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 manual’s 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>
|
||
|
||
|