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

325 lines
11 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 published version <code>0.11.0</code> of the Modus themes. These are my
highly-accessible themes for GNU Emacs. They conform with the WCAG AAA
standard for colour contrast accessibility (a minimum contrast ratio of
7:1 between the foreground and background values). You can find the
packages on GNU ELPA, MELPA, MELPA Stable:</p>
<ul>
<li><code>modus-operandi-theme</code> (light)</li>
<li><code>modus-vivendi-theme</code> (dark)</li>
</ul>
<p>Below are the release notes.</p>
<hr />
<h2>Modus Operandi and Modus Vivendi version 0.11.0</h2>
<p>By Protesilaos Stavrou <a href="mailto:info@protesilaos.com">info@protesilaos.com</a> on 2020-07-31</p>
<p>This entry records the changes since version 0.10.0 (2020-06-24). The
present release covers close to 100 commits, some of which introduce
far-reaching changes. It is not just the quantity that matters.
Sometimes even a minor tweak requires lots of testing and forethought.
This release represents another month of intense work and attention to
detail.</p>
<h2>Palette review of “nuanced” colours</h2>
<p>The themes contain a subset of palette variables that have a two-fold
utility:</p>
<ol>
<li>
<p>Provide a subtle coloured background that can be combined with all
foreground colours that are intended for text/code highlighting.</p>
</li>
<li>
<p>Produce variegated text in cases where complementary information
needs to be displayed alongside some more prominent construct
(e.g. Org table formulas).</p>
</li>
</ol>
<p>In early July 2020, these colours went through a comprehensive review to
improve their intended use. The complete report is available on my
website:
<a href="https://protesilaos.com/codelog/2020-07-08-modus-themes-nuanced-colours/">https://protesilaos.com/codelog/2020-07-08-modus-themes-nuanced-colours/</a></p>
<p>This formed the preparatory work that enabled several of the changes
documented herein, most noticeable among which is the “Org blocks”
customisation option.</p>
<h2>Customisation options</h2>
<h3>Org blocks</h3>
<ol>
<li>
<p>The symbols <code>modus-operandi-theme-distinct-org-blocks</code> and
<code>modus-vivendi-theme-distinct-org-blocks</code> are DEPRECATED. They are
now REPLACED by the general-purpose <code>modus-operandi-theme-org-blocks</code>
and <code>modus-vivendi-theme-org-blocks</code> respectively.</p>
</li>
<li>
<p>The aforementioned new symbols allow users to configure different
styles for Org blocks.</p>
<ul>
<li>
<p>Option <code>greyscale</code> (which you must quote like this: greyscale)
will apply a subtle grey background to the contents of the block,
while it will extend its beginning and end lines to ensure that the
area is distinct from the rest of the buffer. This is the style
you would normally get with the old customisation options.</p>
</li>
<li>
<p>Option <code>rainbow</code> (again, must be quoted) will instead apply a
colour-coded subtle background in the main area of the block. The
exact colour depends on the programming language being used. You
would need to check the source code for how these are currently
mapped (search for “org-src-block-faces”). The basic idea is to
have different colours that make it easier for mixing the
input/output of multiple programming languages. Users who engage
in literate programming may find this particularly useful. Because
the block is already quite apparent, the beginning and end lines
are not extended to the edge of the window, to avoid exaggerations
that could create distractions.</p>
</li>
</ul>
</li>
</ol>
<h3>Variable pitch headings (proportionately-spaced headings)</h3>
<p>The symbols <code>modus-operandi-theme-proportional-fonts</code> and
<code>modus-vivendi-theme-proportional-fonts</code> are DEPRECATED. They are now
REPLACED by the more appropriately-named
<code>modus-operandi-theme-variable-pitch-headings</code> and
<code>modus-vivendi-theme-variable-pitch-headings</code> respectively.</p>
<p>The intended effect is exactly the same as before, namely, to let
headings in Org and relevant modes use a proportionately-spaced font
regardless of what the default is (typically a monospaced typeface).</p>
<p>Remember that to configure the exact font family for the generic
<code>variable-pitch</code> face, you can use something like this:</p>
<pre><code>(set-face-attribute 'variable-pitch nil :family "FiraGO")
</code></pre>
<p>Check the README for further details on setting and mixing fonts.</p>
<h3>Faint syntax for programming</h3>
<p>Users can now enable <code>modus-operandi-theme-faint-syntax</code> or
<code>modus-vivendi-theme-faint-syntax</code>. The intended effect is to tone down
all syntax highlighting in programming modes, while always respecting
the overarching objective of these themes for a minimum contrast ratio
of 7:1 (highest accessibility standard for colour contrast—WCAG AAA).</p>
<p>The default is to use more saturated colours.</p>
<h3>Intense hl-line</h3>
<p>Toggling on <code>modus-operandi-theme-intense-hl-line</code> or
<code>modus-vivendi-theme-intense-hl-line</code> will apply a more pronounced grey
to the background of faces that highlight the current line. This
affects tools such as the built-in <code>hl-line-mode</code>, which is in turn
enabled automatically by lots of other packages, like <code>elfeed</code> and
<code>mu4e</code>.</p>
<p>The default is to use a subtle grey.</p>
<h3>Intense paren-match</h3>
<p>Same principle as above. <code>modus-operandi-theme-intense-paren-match</code> and
<code>modus-vivendi-theme-intense-paren-match</code> will make the matching
parentheses more intense than the default subtle warm background. This
concerns modes such as that of the <code>smartparens</code> package as well as the
built-in <code>show-paren-mode</code>.</p>
<h2>Refactored the use of bold</h2>
<p>A major review of the themes now makes it possible to specify the exact
weight of what a “bold” typeface is. This is only meaningful for cases
where a font family has variants such as “semibold”.</p>
<p>Evaluate this, replacing “semibold” with the one your typeface supports:</p>
<pre><code>(set-face-attribute 'bold nil :weight 'semibold)
</code></pre>
<p>The default is to use a standard bold weight.</p>
<h2>Packages and face groups</h2>
<h3>Refine already-supported faces</h3>
<ul>
<li>
<p>The following packages now use more appropriate colour combinations:</p>
<ul>
<li>diary</li>
<li>annotate</li>
<li>transient (magit pop-up menu, though also used elsewhere)</li>
<li>fountain</li>
<li>calendar</li>
<li>mu4e</li>
<li>markdown-mode</li>
<li>outline-minor-faces</li>
</ul>
</li>
<li>
<p>Other changes:</p>
<ul>
<li>
<p>org-agenda has undergone a thoroughgoing review to improve the
semantics of colour for scheduled tasks, deadlines, modeline
filters, current date etc.</p>
</li>
<li>
<p>org and outline-mode headings have been refined to look better with
the “rainbow headings” option that was introduced in an earlier
release (check the README).</p>
</li>
<li>
<p>org-quote now works properly with the “Org blocks” option mentioned
above.</p>
</li>
<li>
<p>org-checkbox-statistics uses the same foreground colour as org-todo,
for the sake of consistency.</p>
</li>
<li>
<p>org-date now always inherits from <code>fixed-pitch</code>, to ensure proper
alignment of elements when a mixed fonts setup is used (tools for
achieving this effect are documented at length in the README). The
relevant patch was contributed by Matthew Stevenson.</p>
</li>
<li>
<p>org-meta-line no longer looks like a comment, which helps denote its
special utility (e.g. when evaluating a tables formula).</p>
</li>
<li>
<p>org-warning now uses a variant of red for its text, which works
better in the contexts this face is used (e.g. the agenda or the
export dispatcher).</p>
</li>
<li>
<p>We now apply a slightly more accented colour combination for
<code>secondary-selection</code>, which is chiefly used by Org and Calendar in
various contexts.</p>
</li>
<li>
<p>Gnus group level faces make more considerate use of colour to better
denote their significance.</p>
</li>
<li>
<p>Cited text in message buffers has a better sequence of colours.</p>
</li>
<li>
<p>Two new Helm faces are supported.</p>
</li>
<li>
<p>Let <code>keycast</code> use a different border colour when the “3D modeline”
option is enabled (refer to the README for that option).</p>
</li>
<li>
<p>Extend <code>hl-todo-keyword-faces</code> with the “bug” keyword.</p>
</li>
<li>
<p>More intense colour for <code>diff-hl-reverted-hunk-highlight</code>.</p>
</li>
<li>
<p>Tone down the focused modelines border colour.</p>
</li>
<li>
<p>Define new bespoke faces that the themes use internally.</p>
</li>
<li>
<p>Use more appropriate colours for <code>header-line-highlight</code>.</p>
</li>
<li>
<p>Apply greyscale line highlight for flycheck current line in the
diagnostics buffer, instead of the warmer colour combination it had
before.</p>
</li>
<li>
<p>Tweak text colour difference between MU4E read and unread messages.</p>
</li>
</ul>
</li>
</ul>
<h3>Added support for new packages</h3>
<ul>
<li>bongo</li>
<li>boon</li>
<li>dictionary</li>
<li>eshell-fringe-status</li>
<li>eshell-git-prompt</li>
<li>eshell-prompt-extras</li>
<li>highlight-tail</li>
<li>hl-defined</li>
<li>notmuch</li>
<li>tty-menu</li>
</ul>
<h2>Miscellaneous</h2>
<ul>
<li>
<p>Expand the README with new documentation and clarify parts of the
existing one.</p>
</li>
<li>
<p>Update the Wiki page with screenshots and their descriptions (this in
itself is a days worth of work):
https://gitlab.com/protesilaos/modus-themes/-/wikis/Screenshots</p>
</li>
<li>
<p>Make the source code of each theme work better with the built-in
<code>outline-minor-mode</code>. Check my video if you need a demo on how I use
this in tandem with <code>imenu</code>:
https://protesilaos.com/codelog/2020-07-20-emacs-outline-imenu/</p>
</li>
</ul>
<p>Thanks to, in no particular order:</p>
<ul>
<li>
<p>Shreyas Ragavan (https://gitlab.com/shrysr) for introducing me to the
idea that derived the “rainbow” Org blocks and for providing valuable
feedback in several issues.</p>
</li>
<li>
<p>Matthew Stevenson (https://gitlab.com/matth0204) for contributing the
aforementioned patch for the <code>org-date</code> face.</p>
</li>
<li>
<p>Manuel Uberti (https://gitlab.com/muberti) for offering valuable
feedback in a number of issues (and special thanks for doing this for
several months now).</p>
</li>
<li>
<p>Dinko (https://gitlab.com/dinkonin) for noticing a not-so-obvious bug
in the initial implementation of the “rainbow Org blocks” option.</p>
</li>
<li>
<p>okamsn (https://gitlab.com/okamsn) for providing the necessary
feedback that allowed me to refactor the use of “bold”, mentioned
above.</p>
</li>
</ul>
<p>Refer to the issue tracker (or commit log) for further details:
https://gitlab.com/protesilaos/modus-themes/-/issues</p>