268 lines
		
	
	
		
			No EOL
		
	
	
		
			13 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			268 lines
		
	
	
		
			No EOL
		
	
	
		
			13 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
<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 user’s 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 font’s 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 app’s 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 (Corfu’s 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> |