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

268 lines
13 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>I just released version <code>1.7.0</code> of <a href="https://protesilaos.com/emacs/modus-themes">the Modus
themes</a>. The 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>I will now prepare the patch for the <code>master</code> branch on emacs.git
(currently this corresponds to Emacs version 29). The <code>modus-themes</code>
package in GNU ELPA fetches its contents from emacs.git, so expect an
update to trickle down shortly after my patch is merged.</p>
<hr />
<h2>Modus themes version 1.7.0</h2>
<p>By Protesilaos Stavrou <a href="mailto:info@protesilaos.com">info@protesilaos.com</a> on 2021-11-18</p>
<p>The present entry records the changes made to the project since the
release of version 1.6.0 on 2021-09-29. There have been more than 60
commits since then.</p>
<p>Every modification pertaining to colour combinations referenced herein
is implemented in accordance with the primary 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).
Edits also account for colour-coding that is optimised for the needs of
users with red-green colour deficiency (deuteranopia).</p>
<p>To access the URL of the manual visit this web page:
<a href="https://protesilaos.com/emacs/modus-themes">https://protesilaos.com/emacs/modus-themes</a>. Or read it from Emacs by
evaluating this form:</p>
<pre><code>(info "(modus-themes) Top")
</code></pre>
<p>The themes are built into Emacs version 28 (next stable release), and
are available on GNU ELPA as well as other archives. This release is
the first one that is included with Emacs 29, or else the <code>master</code>
branch in emacs.git.</p>
<h3>Customisation options</h3>
<ul>
<li>
<p>The <code>modus-themes-no-mixed-fonts</code> has been deprecated and replaced by
the <code>modus-themes-mixed-fonts</code>. This is a breaking change for users
who want to use “mixed fonts”: they must set the new variable to
non-nil.</p>
<p>As the name implies, the new variable changes the meaning of the
feature to make it opt-in by default. This is consistent with the
principle of least surprise, as users may not know why some fonts look
different than others in certain cases.</p>
<p>Thanks to Christian Tietze for clarifying the doc string of this new
user option in merge request 51:
<a href="https://gitlab.com/protesilaos/modus-themes/-/merge_requests/51">https://gitlab.com/protesilaos/modus-themes/-/merge_requests/51</a>.</p>
<p>For context, “mixed fonts” refers to a design where spacing-sensitive
constructs, such as code blocks and Org tables, inherit from the
<code>fixed-pitch</code> face to remain monospaced (and properly aligned) at all
times. Depending on the users configurations, the <code>fixed-pitch</code> face
may not use the typeface that the user expects.</p>
<p>The manual provides information on how to set the desired fonts by
editing the <code>default</code>, <code>fixed-pitch</code>, and <code>variable-pitch</code> faces.</p>
</li>
<li>
<p>The new <code>modus-themes-mode-line-padding</code> can be used to control the
apparent padding of the mode line when the user option
<code>modus-themes-mode-line</code> includes the <code>padded</code> property. The padding
must be a positive integer (otherwise the code would be needlessly
complex to guard against values that make the mode line look awkward,
like anything lower than -3 or maybe even -2).</p>
<p>Thanks to Guilherme Semente and Manuel Uberti for the feedback in
issue 245: <a href="https://gitlab.com/protesilaos/modus-themes/-/issues/245">https://gitlab.com/protesilaos/modus-themes/-/issues/245</a>.</p>
<p>Note that the out-of-the-box style of the themes has a padding of 1
(technically a <code>:line-width</code> of 1 for the <code>:box</code> attribute), whereas
the default style of Emacs has it at -1. This is a design choice to
avoid an overlap between the outer boundaries of a fonts glyphs and
the borders of the mode line, when using certain common typefaces at
various point sizes. Such an overlap can hinder readability.</p>
<p>The manual contains a new Do-It-Yourself (DIY) section with detailed
code samples on how to apply a negative value.</p>
</li>
<li>
<p>The new <code>modus-themes-intense-markup</code> option can be set to non-nil to
make constructs such as inline code and verbatim text more colourful.
This has a general utility, though its consideration was prompted by a
phenomenon reported by Stefan Kangas in issue 238 where the overlay of
the <code>hl-line-face</code> overrides the subtle background these constructs
use and can thus make them virtually indistinguishable from ordinary
text: <a href="https://gitlab.com/protesilaos/modus-themes/-/issues/238">https://gitlab.com/protesilaos/modus-themes/-/issues/238</a>.</p>
<p>Such is the standard behaviour of <code>hl-line-mode</code> and there is nothing
a theme can (or rather “should”) do about it. Thanks to Stefan Kangas
for the feedback.</p>
</li>
<li>
<p>The <code>modus-themes-headings</code> option can now accept and apply an exact
font weight such as <code>semibold</code> or <code>light</code>. (The list of available
weights is the value of the <code>modus-themes--heading-weights</code> internal
variable.) This supersedes the now-deprecated <code>no-bold</code> property:
<code>no-bold</code> is henceforth understood as the presence of a <code>regular</code>
weight.</p>
<p>Recall that this user option is an alist and can be used to target
heading levels individually, which further reinforces the utility of
this new property.</p>
<p>Thanks to Christian Tietze for suggesting this idea in issue 248:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/248">https://gitlab.com/protesilaos/modus-themes/-/issues/248</a>. And
thanks to Daniel Mendler for refining its implementation in commit
54bfd62, which was sent as a patch file (yes, we accept those and I
actually prefer them over a web apps UI).</p>
</li>
<li>
<p>The <code>modus-themes-org-agenda</code> has seen improvements to its <code>event</code> key
(this is an alist that has multiple keys). It now accepts a <code>varied</code>
property which differentiates between (i) plain timestamp entries and
(ii) entries that are generated from either the diary or a symbolic
expression. The <code>varied</code> property combines with the other available
properties to particularise their effects. Consult the doc string or
the manual for the technicalities.</p>
<p>Thanks to Gustavo Barros for the detailed commentary in issue 241:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/241">https://gitlab.com/protesilaos/modus-themes/-/issues/241</a>.</p>
</li>
<li>
<p>The <code>modus-themes-lang-checkers</code> now accepts a <code>faint</code> property. This
has the effect of toning down the colours in use. By default, the
only colour is that of the underline, though more can be added by
combining the properties accepted by this user option. Consult its
doc string or the manual for further details.</p>
<p>Thanks to Morgan Smith for suggesting the idea in issue 239:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/239">https://gitlab.com/protesilaos/modus-themes/-/issues/239</a>.</p>
</li>
</ul>
<h3>Add support for new packages or face groups</h3>
<ul>
<li>
<p><code>company-tooltip-deprecated</code> face. Thanks to Roman Rudakov for the
feedback in issue 247: <a href="https://gitlab.com/protesilaos/modus-themes/-/issues/247">https://gitlab.com/protesilaos/modus-themes/-/issues/247</a>.</p>
</li>
<li>
<p><code>corfu-default</code> face. Thanks to Daniel Mendler (Corfus developer)
for the feedback in issue 254:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/254">https://gitlab.com/protesilaos/modus-themes/-/issues/254</a>.</p>
</li>
<li>
<p><code>image-dired</code> package (Emacs 29). Thanks to Stefan Kangas for making it
happen in emacs.git and for the feedback in issue 250:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/250">https://gitlab.com/protesilaos/modus-themes/-/issues/250</a>.</p>
</li>
<li>
<p><code>nano-modeline</code> package.</p>
</li>
<li>
<p><code>vertico-quick</code> package. Thanks to Nicolas De Jaeghere for the
contribution in merge request 48:
<a href="https://gitlab.com/protesilaos/modus-themes/-/merge_requests/51">https://gitlab.com/protesilaos/modus-themes/-/merge_requests/51</a>.</p>
</li>
</ul>
<h3>Changes to existing faces or face groups</h3>
<ul>
<li>
<p>Added support for the new Org agenda faces that improve the
contextuality of various views. We implemented those upstream for Org
version 9.5 in close cooperation with Gustavo Barros. Thanks to
Gustavo for the detailed feedback in issue 241:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/241">https://gitlab.com/protesilaos/modus-themes/-/issues/241</a>. The
thread about the patch upstream:
<a href="https://list.orgmode.org/87lf7q7gpq.fsf@protesilaos.com/">https://list.orgmode.org/87lf7q7gpq.fsf@protesilaos.com/</a></p>
</li>
<li>
<p>Refined Org agenda date faces in the interest of consistency and in
accordance with the aforementioned change. Thanks again to Gustavo
Barros for the discussion in issue 241.</p>
</li>
<li>
<p>Applied the <code>shadow</code> face more consistently across all contexts where
only a subtle foreground value is expected. This design choice makes
it possible for users to manually edit the foreground colour of
<code>shadow</code> to something even more subtle than the <code>fg-alt</code> palette
variable we use, which maps to a gray colour (e.g. they could use
“gray50”).</p>
</li>
<li>
<p>Implemented a subtle background colour to the <code>widget-inactive</code> face.
This makes it easier to discern inactive buttons, checkboxes, and the
like, in contexts such as the Customize User Interface. Thanks to
Stefan Kangas for the feedback in issue 242:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/242">https://gitlab.com/protesilaos/modus-themes/-/issues/242</a>.</p>
</li>
<li>
<p>Tweaked <code>file-name-shadow</code> to also use italics (inherit from the
<code>italic</code> face) in order to be more easy to distinguish it from
ordinary text in the minibuffer.</p>
<p>Recall that the manual documents the meaning of inheriting from the
<code>bold</code> and <code>italic</code> faces instead of hardcoding a bold weight and an
italic slant, respectively. In short: users can change the weight to
what they want (e.g. semibold) and/or use distinct font families.</p>
</li>
<li>
<p>Amplified the style of Version Control (VC) warnings and errors to let
them draw more attention to themselves (because these indicators need
to be acted upon).</p>
</li>
<li>
<p>Recoloured the <code>custom-group-tag</code> face to make it fit better in its
context and be consistent with the rest of the themes established
patterns.</p>
</li>
<li>
<p>Made marks for selection in Dired, Ibuffer, and related, conform with
the <code>modus-themes-success-deuteranopia</code> option. This means that they
use blue colours when the option is non-nil, instead of their default
shades of green.</p>
</li>
<li>
<p>Adjusted the box width of key bindings for Emacs 28 or higher. They
should no longer cause any alignment issues. This style is now used
throughout the themes, including in transient views (e.g. Magit) which
were the exception before. Thanks to Manuel Uberti and Kevin Fleming
for the feedback in issue 232:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/232">https://gitlab.com/protesilaos/modus-themes/-/issues/232</a>.</p>
</li>
</ul>
<h3>Miscellaneous</h3>
<ul>
<li>
<p>Wrote a brief description of every user option in the manual. Also
covered its type, as in boolean, alist, et cetera.</p>
</li>
<li>
<p>Corrected the mode line border width for one combination of properties
in the <code>modus-themes-mode-line</code> option. This should now have the same
height as all others:</p>
<pre><code>(setq modus-themes-mode-line '(accented borderless))
</code></pre>
</li>
<li>
<p>Ensured that mode line attributes would not be set to nil, but kept at
an <code>unspecified</code> value instead, where relevant. This avoids problems
with [faulty] code that unconditionally depends on something that does
not exist, as in the following while <code>:box</code> is nil:</p>
<pre><code>(face-attribute 'mode-line :box)
</code></pre>
</li>
<li>
<p>Expanded, reworded, or otherwise improved the manual, based on the
aforementioned.</p>
</li>
</ul>
<p>Thanks once again to everyone involved!</p>