325 lines
11 KiB
Plaintext
325 lines
11 KiB
Plaintext
|
||
|
||
<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 table’s 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 modeline’s 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 day’s 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>
|
||
|
||
|