emacs/var/elfeed/db/data/4a/4a08b4892002dc3ea40a42c668f530d69304228e
2022-01-03 12:49:32 -06:00

600 lines
25 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.1.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,
or anything else for that matter, feel welcome to <a href="https://protesilaos.com/contact/">contact
me</a>.</p>
<p>Please note that the version of the themes currently in Emacs 28 is
<code>0.13.0</code>, though we are working towards keeping everything in sync.
Likewise, GNU ELPA is at <code>0.12.0</code> and will eventually be made to pull
directly from emacs.git. This is a volunteer effort: things need their
time, also in light of the prevailing conditions.</p>
<hr />
<h2>Modus themes version 1.1.0</h2>
<p>By Protesilaos Stavrou <a href="mailto:info@protesilaos.com">info@protesilaos.com</a> on 2021-01-24</p>
<p>This entry records the changes introduced to the project since the
publication of version 1.0.0 (2020-12-05). There have been around 150
commits in the meantime, qualifying this as one of the largest releases
to date.</p>
<p>As always, 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 (conformance with the WCAG AAA standard).</p>
<p>As the official manual is referenced several times, make sure to store
its URL: <a href="https://protesilaos.com/emacs/modus-themes">https://protesilaos.com/emacs/modus-themes</a>.</p>
<p>If you are coming from older versions, please consult the change log
entry for version 1.0.0.</p>
<h2>Overview</h2>
<ul>
<li>
<p>We have brought back the options that were present in version 0.13.0
or earlier which allowed users to override colors for either—or
both—of Modus Operandi and Modus Vivendi. Compared to the old
mechanism, the new one is more robust and should work regardless of
whether users run byte compiled code or not. This is considered and
advanced, “do-it-yourself” pathway to theme customisation. It is
discussed at length in the manual.</p>
</li>
<li>
<p>The new <code>modus-themes-with-colors</code> macro makes it possible to read
palette variables from the active theme and, thus, pass them to
arbitrary functions or variables. Again, this is part of the advanced
customisations that are covered in the manual.</p>
</li>
<li>
<p>Several of the existing customisation options provide new stylistic
variants, further expanding their utility. While there are some new
customisations altogether. Combined with the above, we provide the
infrastructure that allows the themes to adapt gracefully to a variety
of circumstances and cover a broad range of demands.</p>
</li>
<li>
<p>More packages are added to the already comprehensive list of supported
face groups.</p>
</li>
<li>
<p>Some of the supported faces have benefited from further, albeit
subtle, refinements, demonstrating our commitment to consistency as
well as our attention to detail.</p>
</li>
<li>
<p>Two reports on such “further refinements” were published on the code
log section of protesilaos.com: <a href="https://protesilaos.com/codelog">https://protesilaos.com/codelog</a>.</p>
</li>
<li>
<p>We have more people contributing to the project (and assigning
copyright to the FSF—as the themes are part of Emacs) and newer
users reporting issues. Also, there is anecdotal evidence from
several sources on an increased interest to make new or existing faces
accessible by default (such as by copying colour combinations from the
themes).</p>
</li>
</ul>
<h2>New customisation options</h2>
<ul>
<li>
<p>The existing <code>modus-themes-mode-line</code> variable now supports three new
borderless styles: <code>borderless</code>, <code>borderless-3d</code>, <code>borderless-moody</code>.</p>
<ul>
<li>
<p>The <code>borderless</code> value uses the same colors as the default (nil
value), but removes the border effect. This is done by making the
box property use the same color as the background, effectively
blending the two and creating some padding.</p>
</li>
<li>
<p>The <code>borderless-3d</code> and <code>borderless-moody</code> approximate the <code>3d</code> and
<code>moody</code> options respectively, while removing the borders. However,
to ensure that the inactive modelines remain visible, they apply a
slightly more prominent background to them than what their
counterparts do (same inactive background as with the default).</p>
</li>
</ul>
<p>The complete list of options:</p>
<ol>
<li>nil (default)</li>
<li>3d</li>
<li>moody</li>
<li>borderless</li>
<li>borderless-3d</li>
<li>borderless-moody</li>
</ol>
</li>
<li>
<p><code>modus-themes-lang-checkers</code> provides several styles for spell
checkers and code linters with regard to how they underline text. The
default (nil) is to use a colour-coded wavy underline, without
changing the foreground of the affected text. Other options include
the ability to set a straight underline and to control the saturation
of the foreground, while one also provides for a change in the
background of the text in question. The valid symbols are as follows
(read the manual for more on the matter):</p>
<ol>
<li>nil (default)</li>
<li>straight-underline</li>
<li>subtle-foreground</li>
<li>subtle-foreground-straight-underline</li>
<li>intense-foreground</li>
<li>intense-foreground-straight-underline</li>
<li>colored-background</li>
</ol>
</li>
<li>
<p>The <code>modus-themes-org-habit</code> lets users pick between three styles for
the <code>org-habit</code> table: (1) nil (the default), which uses a total of
eight colours, (2) simplified which reduces the effective colours to
four, while applying less saturated hues, and (3) <code>traffic-light</code>
which bring the colour count to three, thus blending the “clear” and
“ready” states for workflows where the distinction between is not
useful.</p>
<p>Please read the manual for a more detailed description of those
variants.</p>
<p>Thanks to Gustavo Barros for suggesting the idea, providing user
feedback on stylistic choices, as well as sharing insights on the
workflow that made the <code>traffic-light</code> style possible:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/135">https://gitlab.com/protesilaos/modus-themes/-/issues/135</a>.</p>
</li>
<li>
<p><code>modus-themes-variable-pitch-ui</code> when set to a non-nil value applies a
proportionately spaced typeface (controlled by the <code>variable-pitch</code>
face) to the User Interface, specifically the mode line, header line,
and tab-{bar,line}.</p>
</li>
<li>
<p>The existing <code>modus-themes-links</code> variable now has a colourless
stylistic alternative: <code>underline-only</code>. The available styles:</p>
<ol>
<li>nil (default)</li>
<li>faint</li>
<li>neutral-underline</li>
<li>faint-neutral-underline</li>
<li>no-underline</li>
<li>underline-only</li>
</ol>
</li>
<li>
<p>The existing <code>modus-themes-prompts</code> variable has two new grayscale
styles: <code>subtle-gray</code>, <code>intense-gray</code>. Furthermore, their old
<code>subtle</code> and <code>intense</code> values have more informative aliases in the
form of <code>subtle-accented</code> and <code>intense-accented</code>. All available
values:</p>
<ol>
<li>nil (default)</li>
<li>subtle-accented (<code>subtle</code> remains for backward-compatibility)</li>
<li>intense-accented (<code>intense</code> remains for backward-compatibility)</li>
<li>subtle-gray</li>
<li>intense-gray</li>
</ol>
</li>
<li>
<p>The existing <code>modus-themes-headings</code> variable now accepts two new
styles: <code>no-color</code>, <code>no-color-no-bold</code>. All stylistic variants:</p>
<ol>
<li>nil (default fallback option—covers all heading levels)</li>
<li>t (default style for a single heading, when the fallback differs)</li>
<li>no-bold</li>
<li>line</li>
<li>line-no-bold</li>
<li>rainbow</li>
<li>rainbow-line</li>
<li>rainbow-line-no-bold</li>
<li>highlight</li>
<li>highlight-no-bold</li>
<li>rainbow-highlight</li>
<li>rainbow-highlight-no-bold</li>
<li>section</li>
<li>section-no-bold</li>
<li>rainbow-section</li>
<li>rainbow-section-no-bold</li>
<li>no-color</li>
<li>no-color-no-bold</li>
</ol>
<p>Please read the manual for instructions on how to apply those
universally or on a per-level basis.</p>
</li>
</ul>
<h2>Added support for packages</h2>
<ul>
<li>cfrs (used by treemacs)</li>
<li>cperl-mode</li>
<li>
<p>diredc</p>
</li>
<li>
<p>display-fill-column-indicator-mode. Thanks to Gustavo Barros for the
feedback: <a href="https://gitlab.com/protesilaos/modus-themes/-/issues/148">https://gitlab.com/protesilaos/modus-themes/-/issues/148</a>.</p>
</li>
<li>
<p>evil-snipe. Thanks to Peter Wu for the feedback:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/139">https://gitlab.com/protesilaos/modus-themes/-/issues/139</a>.</p>
</li>
<li>
<p>isl (isearch-light). Thanks to Manuel Uberti for the feedback:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/144">https://gitlab.com/protesilaos/modus-themes/-/issues/144</a>.</p>
</li>
<li>marginalia</li>
<li>org-tree-slide</li>
<li>
<p>recursion-indicator</p>
</li>
<li>solaire. Thanks to CsBigDataHub1 for the feedback:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/137">https://gitlab.com/protesilaos/modus-themes/-/issues/137</a>.</li>
</ul>
<h2>Refinements to already supported faces</h2>
<ul>
<li>
<p>Reviewed the <code>rainbow-delimiters</code> faces. Everything is documented in
a separate report (with screenshots). The short version is that we
pay close attention to detail and are willing to go to great lengths
in pursuit of improving the overall user experience:
<a href="https://protesilaos.com/codelog/2020-12-27-modus-themes-review-rainbow-delimiters/">https://protesilaos.com/codelog/2020-12-27-modus-themes-review-rainbow-delimiters/</a>.</p>
</li>
<li>
<p>Updated the dedicated colours for <code>whitespace-mode</code>. The background
should now be easier to discern. Also removed any remaining
inconsistencies. Thanks to Toon Claes for the feedback:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/149">https://gitlab.com/protesilaos/modus-themes/-/issues/149</a>.</p>
</li>
<li>
<p>Refined the faces of regexp constructs for strings affected by certain
values passed to the <code>modus-themes-syntax</code> option. This is done to
disambiguate the backslashes and grouping delimiters from the rest of
the string. The relevant values for <code>modus-themes-syntax</code> are:</p>
<ul>
<li>green-strings</li>
<li>yellow-comments-green-strings</li>
<li>alt-syntax</li>
<li>alt-syntax-yellow-comments</li>
</ul>
<p>The default colour for strings is blue, while regexp faces are yellow
and red, whereas in those variants the strings become green, hence the
need to make regexp faces more distinct (blue and magenta contrast
better with green and also between themselves, thus matching the
alternative aesthetics).</p>
</li>
<li>
<p>Reviewed dictionary.el faces (which ships with Emacs 28):</p>
<ul>
<li>
<p>Made <code>dictionary-reference-face</code> look like all other links.</p>
</li>
<li>
<p>Removed all properties from <code>dictionary-word-definition-face</code>:
the default sets a font family, which can create inconsistencies.</p>
</li>
<li>
<p>Converted <code>dictionary-word-entry-face</code> into comment-like text.</p>
</li>
</ul>
</li>
<li>
<p>Refined and expanded the faces of Consult.</p>
<ul>
<li>
<p>Made its grep commands look the same as those of all other grep
tools.</p>
</li>
<li>
<p>Ensured that line number previews, such as for the <code>consult-line</code>
command use their own style of a subtle foreground instead of
inheriting from the <code>line-number</code> face. This is to avoid cases
where previewed numbers and actual line numbers could be conflated
for one another.</p>
</li>
<li>
<p>Removed the foreground pertinent to <code>consult-imenu-prefix</code>, as its
bold weight combined with the structure of Imenu indices was deemed
sufficient to differentiate it from actual <code>consult-imenu</code> targets.</p>
</li>
</ul>
</li>
<li>
<p>Eliminated exaggerations in the use of colour for various <code>which-key</code>
faces.</p>
</li>
<li>
<p>Removed the needless background from the <code>log-view-commit-body</code> face.
This is a new face that ships with Emacs 28 (its inclusion upstream
was documented in the last changelog entry).</p>
</li>
<li>
<p>Applied a subtle background to the <code>log-view-message</code> face, in the
interest of improving the usability of its interface, in particular,
to contribute to heightened situational awareness while invoking
<code>log-view-toggle-entry-display</code> in buffers such as those produced by
<code>vc-print-root-log</code>.</p>
</li>
<li>
<p>Introduced a neutral background for all <code>outline-minor-faces</code> instead
of merely mirroring the style of <code>outline-mode</code> headings. This is
because it can sometimes be hard to tell whether <code>outline-minor-mode</code>
is active, provided certain fairly common configurations in the
<code>modus-themes-headings</code> user option (refer to the manual for all
customisation options).</p>
</li>
<li>
<p>Tweaked <code>diff-mode</code> headings.</p>
<ul>
<li>
<p>Adjusted the values of the dedicated colours for diff headings in
order to amplify their relative contrast.</p>
</li>
<li>
<p>Assigned a bold typographic weight to the <code>diff-hunk-header</code> face so
as to enforce a greater sense of structure.</p>
</li>
<li>
<p>Instructed <code>diff-function</code> to inherit <code>modus-theme-diff-heading</code> in
order to eliminate exaggerations in colouration.</p>
</li>
</ul>
</li>
<li>
<p>Removed unnecessary underline from <code>selectrum-current-candidate</code>.
Thanks to Daniel Mendler for the feedback:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/132">https://gitlab.com/protesilaos/modus-themes/-/issues/132</a>.</p>
</li>
<li>
<p>Made <code>counsel-outline</code> inherit from the underlying Org faces. Also
corrected the style of <code>counsel-outline-default</code> to use the main
foreground colour. Thanks to Gustavo Barros for the feedback:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/134">https://gitlab.com/protesilaos/modus-themes/-/issues/134</a>.</p>
</li>
<li>
<p>Prevented headings, ultimately governed by the <code>modus-themes-headings</code>
user option, from inheriting the <code>default</code> face as that could lead to
unintended consequences, such as by retaining a background colour when
none was expected.</p>
</li>
<li>
<p>Refashioned all faces that specified a foreground value of <code>fg-alt</code> to
inherit the <code>shadow</code> face instead (<code>fg-alt</code> is the colour that is
used, for example, in code comments by default). This makes it
possible for users to enact change across the theme just by tweaking
<code>shadow</code>.</p>
</li>
<li>
<p>Fixed <code>ruler-mode</code> text scaling adjustment, to make it cope well with
<code>text-scale-adjust</code> and relevant commands. Also introduced minor
stylistic changes to the remainder of the <code>ruler-mode</code> faces.</p>
</li>
<li>
<p>Eliminated the potentially problematic form of <code>:foreground nil</code> from
the <code>org-ellipsis</code> face. In such cases it is always better to either
specify no foreground whatsoever, or declare an unspecified value.</p>
</li>
</ul>
<h2>Patches from the community</h2>
<p>Remember that the themes are part of Emacs and, thus, contributions that
exceed a cumulative total of ~15 lines require the assignment of
copyright to the Free Software Foundation. Please consult the themes
manual on the matter.</p>
<ul>
<li>
<p>Nicolas De Jaeghere added support for <code>exwm-floating-border-color</code>:
<a href="https://gitlab.com/protesilaos/modus-themes/-/merge_requests/15">https://gitlab.com/protesilaos/modus-themes/-/merge_requests/15</a>.</p>
</li>
<li>
<p>Anders Johansson added support for <code>helm-fd-finish</code>:
<a href="https://gitlab.com/protesilaos/modus-themes/-/merge_requests/16">https://gitlab.com/protesilaos/modus-themes/-/merge_requests/16</a>.</p>
</li>
<li>
<p>Carlo Zancanaro fixed misquoting of <code>tuareg-font-lock-multistage-face</code>:
<a href="https://gitlab.com/protesilaos/modus-themes/-/merge_requests/17">https://gitlab.com/protesilaos/modus-themes/-/merge_requests/17</a>.</p>
</li>
<li>
<p>Xinglu Chen expanded Notmuch support to all its remaining faces:
<a href="https://gitlab.com/protesilaos/modus-themes/-/merge_requests/18">https://gitlab.com/protesilaos/modus-themes/-/merge_requests/18</a>.</p>
</li>
<li>
<p>Kostadin Ninev added support for Dired+:
<a href="https://gitlab.com/protesilaos/modus-themes/-/merge_requests/19">https://gitlab.com/protesilaos/modus-themes/-/merge_requests/19</a>.</p>
</li>
<li>
<p>Nicolas De Jaeghere expanded the supported items of <code>pdf-faces</code>. Also
added an entry to the manual pertaining to link hints and the
requisite setup:
<a href="https://gitlab.com/protesilaos/modus-themes/-/merge_requests/20">https://gitlab.com/protesilaos/modus-themes/-/merge_requests/20</a>.</p>
</li>
<li>
<p>Nicolas De Jaeghere wrote the new <code>modus-themes-with-colors</code> macro,
which is documented at length in the manual:
<a href="https://gitlab.com/protesilaos/modus-themes/-/merge_requests/21">https://gitlab.com/protesilaos/modus-themes/-/merge_requests/21</a>.</p>
</li>
<li>
<p>Nicolas De Jaeghere set up the infrastructure that grants users the
ability to override palette colors; an option that was removed in the
transition from version 0.13.0 to 1.0.0. The relevant variables are
<code>modus-themes-colors-operandi</code>, <code>modus-themes-colors-vivendi</code> (again,
consult the manual):
<a href="https://gitlab.com/protesilaos/modus-themes/-/merge_requests/23">https://gitlab.com/protesilaos/modus-themes/-/merge_requests/23</a>.</p>
</li>
<li>
<p>Nicolas De Jaeghere deleted the <code>modus-themes-core.el</code> file and merged
its contents into the main <code>modus-themes.el</code> library:
<a href="https://gitlab.com/protesilaos/modus-themes/-/merge_requests/24">https://gitlab.com/protesilaos/modus-themes/-/merge_requests/24</a> and
<a href="https://gitlab.com/protesilaos/modus-themes/-/merge_requests/25">https://gitlab.com/protesilaos/modus-themes/-/merge_requests/25</a>.</p>
</li>
<li>
<p>Nicolas De Jaeghere made the <code>compilation-info</code> face consistent with
other compilation faces in terms of their optional bold weight:
<a href="https://gitlab.com/protesilaos/modus-themes/-/merge_requests/26">https://gitlab.com/protesilaos/modus-themes/-/merge_requests/26</a>.</p>
</li>
</ul>
<p>Any remaining faults that may exist, despite our best intentions to
remove them, are those of the maintainer and will be addressed as soon
as they are identified.</p>
<p>FSF copyright status:</p>
<table>
<thead>
<tr>
<th>Full name</th>
<th>Copyright</th>
</tr>
</thead>
<tbody>
<tr>
<td>Anders Johansson</td>
<td>covered</td>
</tr>
<tr>
<td>Carlo Zancanaro</td>
<td>not required</td>
</tr>
<tr>
<td>Kostadin Ninev</td>
<td>covered</td>
</tr>
<tr>
<td>Nicolas De Jaeghere</td>
<td>covered</td>
</tr>
<tr>
<td>Xinglu Chen</td>
<td>not required</td>
</tr>
</tbody>
</table>
<h2>Theme-related contributions to the wider community</h2>
<ul>
<li>
<p>Helped address an incomplete colour value in <code>org-transclusion-block</code>:
<a href="https://github.com/nobiot/org-transclusion/issues/41">https://github.com/nobiot/org-transclusion/issues/41</a>.</p>
</li>
<li>
<p>Contributed to the formation of the zebra striping of <code>embark</code>:
<a href="https://github.com/oantolin/embark/commit/bb4ae2a666ab1f4a307edd71f77bcbb90fb25cef">https://github.com/oantolin/embark/commit/bb4ae2a666ab1f4a307edd71f77bcbb90fb25cef</a>.</p>
</li>
<li>
<p>Reviewed the faces of <code>goggles</code>:
<a href="https://github.com/minad/goggles/commit/d6e584a2c9487d3df4aee818c43485e437cb87ef">https://github.com/minad/goggles/commit/d6e584a2c9487d3df4aee818c43485e437cb87ef</a>.</p>
</li>
<li>
<p>Helped raise awareness about refactoring <code>org-tree-slide-header-overlay-face</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>Reported an issue for Moody that would affect the subset of Emacs 28
users who enable the new <code>mode-line-compact</code> option:
<a href="https://github.com/tarsius/moody/issues/28">https://github.com/tarsius/moody/issues/28</a>.</p>
</li>
<li>
<p>Did the same for Keycast: <a href="https://github.com/tarsius/keycast/issues/13">https://github.com/tarsius/keycast/issues/13</a>.</p>
</li>
<li>
<p>Defined the new <code>perl-non-scalar-variable</code> in upstream Emacs:
<a href="https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45840">https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45840</a>.</p>
</li>
</ul>
<h2>Miscellaneous</h2>
<ul>
<li>
<p>Created a new palette subset for “graph” colours, as none of the
existing paradigms would suffice for cases where faithfulness to
colour huenesss is important. Those are currently used by
<code>modus-themes-org-habit</code>.</p>
</li>
<li>
<p>Ensured that theme functions which need to produce an error message do
so by calling <code>error</code> instead of <code>user-error</code>.</p>
</li>
<li>
<p>Added a <code>modus-themes-load-themes</code> function that users can add to
their init files.</p>
</li>
<li>
<p>Expanded the projects git repo README file with a sample
<code>use-package</code> configuration.</p>
</li>
<li>
<p>The previous two points followed from an inquiry into the subtleties
between <code>enable-theme</code> and <code>load-theme</code>. Those are now documented at
length in the manual.</p>
</li>
<li>
<p>Added screenshots to the web page that holds the official manual.
Thanks to Damien Cassou for the feedback:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/147">https://gitlab.com/protesilaos/modus-themes/-/issues/147</a>.</p>
</li>
<li>
<p>Swapped the values of <code>cyan-faint</code> and <code>cyan-alt-faint</code> for Modus
Vivendi.</p>
</li>
<li>
<p>Tweaked <code>font-lock-doc-face</code> and <code>font-lock-type-face</code> variations when
“faint syntax” is in effect: (setq modus-themes-syntax faint).</p>
</li>
<li>
<p>Refined <code>font-lock-doc-face</code> for when modus-themes-syntax is given a
value of either <code>yellow-comments-green-strings</code> or <code>green-strings</code>.
The changes are minor when treated in isolation, though they have
helped improve the overall consistency of the end result: the gestalt.</p>
</li>
<li>
<p>Reviewed select “faint” colours for both Modus Operandi and Modus
Vivendi. The technicalities are discussed in a complete report:
<a href="https://protesilaos.com/codelog/2021-01-11-modus-themes-review-select-faint-colours/">https://protesilaos.com/codelog/2021-01-11-modus-themes-review-select-faint-colours/</a>.</p>
</li>
<li>
<p>Ensured that (setq modus-themes-syntax alt-syntax) and its “yellow
comments” variant are more truthful to their intended style, by
eliminating any exaggerations in the use of colour.</p>
</li>
<li>
<p>Adjusted the saturation of the green-alt value of Modus Vivendi.</p>
</li>
<li>
<p>Updated the manual to reflect all of the aforementioned.</p>
</li>
</ul>
<p>Thanks once again to everyone who contributed patches or reported an
issue. This has been yet another period of intense work; work which
helps solidify the Modus themes as (i) uncompromisingly accessible in
accordance with the highest legibility standard, (ii) highly
customisable in true Emacs fashion, (iii) thoroughly comprehensive in
terms of face coverage, and (iv) meticulously designed throughout.</p>