Modus themes 2.7.0 for GNU Emacs
I just published the latest stable release of the Modus themes. The change log entry is reproduced below. For any questions, feel welcome to contact me.
I will now prepare the patch for emacs.git (currently Emacs 29) which
will then trickle down to GNU ELPA (the modus-themes
is a :core
package). Thank you for your patience!
- Package name (GNU ELPA):
modus-themes
(also built into Emacs >= 28) - Official manual: https://protesilaos.com/emacs/modus-themes
- Change log: https://protesilaos.com/emacs/modus-themes-changelog
- Colour palette: https://protesilaos.com/emacs/modus-themes-colors
- Sample pictures: https://protesilaos.com/emacs/modus-themes-pictures
- Git repo on SourceHut: https://git.sr.ht/~protesilaos/modus-themes
- Mirrors:
- Mailing list: https://lists.sr.ht/~protesilaos/modus-themes
- Backronym: My Old Display Unexpectedly Sharpened ā¦ themes
Support for packages or faces
-
Reinstated support for
centaur-tabs
. I had removed it in commit 2235ce5 (done on 2022-08-02) for version 2.5.0 of the modus-themes. At the time I wrote:centaur-tabs has a bug where it cannot read the value of a face if it uses the standard `:inherit` attribute. I have sent a patch to fix it, but have received no response since February: <https://github.com/ema2159/centaur-tabs/pull/179>. Relevant reports: - <https://github.com/protesilaos/modus-themes/issues/30> - <https://gitlab.com/protesilaos/modus-themes/-/issues/288> - <https://github.com/protesilaos/modus-themes/issues/15> I am happy to reinstate support for centaur-tabs as soon as the package gets the maintenance it needs.
My patch/pull-request is now merged and the package is actively maintained once again. Hence the decision to bring back support for it, as promised.
-
Applied styles for the
icon-button
face of Emacs 29. -
Styled the
log-edit-headers-separator
face of Emacs 29 (it was introduced upstream by a patch of mine). -
Made the
gnus-summary-low-unread
face inherit from theitalic
face like the rest of that subgroup of faces. This helps differentiate it from thegnus-summary-high-unread
face. Thanks to Mark Simpson for pointing out the possibility of conflating those two faces: https://lists.sr.ht/~protesilaos/modus-themes/%3Cm2r0zszc2z.fsf@gmail.com%3E. -
Covered the
read-multiple-choice-face
by adding a noticeable background colour to it. The default attributes it has, which look like other key bindings (bold and blue) plus an underline are technically okay, though the context of this face is in the echo area which is one line tall. Moreover, the highlighted keys are inlined with other text. These make it difficult to spot the highlights without some extra spacing. I use the addition of a background in Orgās export dispatcher interface which also has some unique requirements (theorg-dispatcher-highlight
face). The principle is to have theme-wide consistency (e.g. āall key bindings must look the sameā) EXCEPT when the specifics require a different set of styles in the interest of usability. -
Extended the coverage of the
auctex
packageās faces to include thefont-latex-underline-face
. Thanks to Luis Miguel CastaƱeda for reporting a typo I made which caused an error: https://lists.sr.ht/~protesilaos/modus-themes/%3C7h7d2oudpb.fsf@imaginarymagnitude.net%3E -
Added support for
crontab-mode
. Thanks to Antonio Ruiz for the patch: https://lists.sr.ht/~protesilaos/modus-themes/patches/35080. It is below the ~15 line threshold and thus requires no copyright assignment to the Free Software Foundation. -
Extended support for the
company
packageāscompany-scrollbar-bg
andcompany-scrollbar-fg
faces. -
Added support for the
spell-fu
package. Thanks to Antonio Ruiz for the patch: https://lists.sr.ht/~protesilaos/modus-themes/%3C87fshnq7uv.fsf%40purelymail.com%3E. Same as further above for Antonioās copyright status. -
Moved the
selectrum-prescient
faces to theprescient
group, to be consistent with changes in the respective upstream packages. Thanks to okamsn for the contribution, which was done in pull request 41 on the GitHub mirror: https://github.com/protesilaos/modus-themes/pull/41. The user okamsn has assigned copyright assignment to the Free Software Foundation, although this patch is within the allowed limits.
Change to āfill-column-indicatorā
Made the fill-column-indicator
face more noticeable. It is what the
display-fill-column-indicator-mode
uses to draw a line on where the
fill-column
is.
This change is in response to private messages I received as well as this, at parts impolite and toxic, thread that I refrained from participating in: https://lists.gnu.org/archive/html/help-gnu-emacs/2022-08/msg00255.html.
[ I do not follow that mailing list, by the way. All my projects have multiple communication channels and I always reply in a timely fashion. Social media, fora about Emacs, generic mailing lists, etc. are not among those channels. https://protesilaos.com/codelog/2022-07-24-report-issues-official-channels/. ]
The core idea is that the previous design was (1) considered
āinvisibleā and (2) it prevented the customisation of the user option
display-fill-column-indicator-character
.
I am addressing point 1, but point 2 puts us in an awkward spot as we
would then not be allowed to use a background and a height value. Not
doing so produces a dashed line by default, with the dashes further
apart the greater the line-spacing is (especially in, say, Org
headings that can have a greater height than paragraph text). It
looks broken and I keep getting requests to fix what is not the
themesā fault. So no, the themes will remain opinionated in this
regard by ignoring display-fill-column-indicator-character
through
the styling they apply to make the line contiguous.
For context, also read Emacs bug#57424 and please donāt take my words in a private message out of context. If I need to state my opinion in a public setting, I know how to do it. https://debbugs.gnu.org/cgi/bugreport.cgi?bug=57424.
Refinement to modus-vivendi ābg-diff-focus-removedā colour
Made the default removed diff background slightly more luminant. The colour is seen in diff-mode, ediff, and the Magit focused diff hunk.
When the user option modus-themes-diffs
is set to either bg-only
or
desaturated
, this colour is used to highlight word-wise (ārefinedā)
changes. The increased luminance lets it stand out more compared to the
more subtle backdrop.
Thanks to KĆ©vin Le Gouguec for bringing this issue to my attention and for discussing it with me: https://lists.sr.ht/~protesilaos/modus-themes/%3C87bks4i9tg.fsf@gmail.com%3E
Note about āgoto-address-modeā
Quote from the manual:
The built-in 'goto-address-mode' uses heuristics to identify URLs and
email addresses in the current buffer. It then applies a face to them
to change their style. Some packages, such as 'notmuch', use this
minor-mode automatically.
The faces are not declared with 'defface', meaning that it is better
that the theme does not modify them. The user is thus encouraged to
consider including (or equivalent) this in their setup:
(setq goto-address-url-face 'link
goto-address-url-mouse-face 'highlight
goto-address-mail-face 'link
goto-address-mail-mouse-face 'highlight)
My personal preference is to set 'goto-address-mail-face' to nil, as
it otherwise adds too much visual noise to the buffer (email addresses
stand out more, due to the use of the uncommon '@' character but also
because they are often enclosed in angled brackets).
Changes to the manual
-
Fixed a few typos and ensured that spelling using American English as that is what emacs.git requires.
-
Added the missing
:config
keywords from the example configuration of thecircadian
package. Thanks to Koen van Greevenbroek for the patch: https://lists.sr.ht/~protesilaos/modus-themes/%3C8735cb6zm3.fsf%40posteo.net%3E.