Emacs: the 'standard-themes' are also built on top of the 'modus-themes'
In previous entries I explained how I have reworked the modus-themes
to optionally work as the basis for other theme packages. The official
documentation is in the manual of the Modus themes (my manuals are the
only source of truth; blog posts—including this one—become outdated):
https://protesilaos.com/emacs/modus-themes#h:86eb375b-9be4-43ce-879a-0686a524a63b.
I already mentioned how version 2.0.0
of the ef-themes
will be
done this way. I am happy to announce that as of this morning the same
is true for my standard-themes
. Specifically, version 3.0.0
of the
Standard themes will be built on top of the modus-themes
.
Users are now expected to customise the themes via the user options provided by Modus and to load the themes with the relevant Modus commands. Here is a sample configuration:
(use-package standard-themes
:ensure t
:init
;; This makes the Modus commands listed below consider only the
;; Standard themes. For an alternative that includes Modus and all
;; derivative themes (like Standard), enable the
;; `modus-themes-include-derivatives-mode' instead.
(standard-themes-take-over-modus-themes-mode 1)
:bind
(("<f5>" . modus-themes-rotate)
("C-<f5>" . modus-themes-select)
("M-<f5>" . modus-themes-load-random))
:config
;; All customisations here.
(setq modus-themes-mixed-fonts t)
(setq modus-themes-italic-constructs t)
;; Finally, load your theme of choice (or a random one with
;; `modus-themes-load-random', `modus-themes-load-random-dark',
;; `modus-themes-load-random-light').
(modus-themes-load-theme 'standard-light-tinted))
The modus-themes-theme
macro is flexible
This morning, I extended the modus-themes-theme
macro to optionally
accept custom faces and user options that complement or override those
provided by core Modus (the modus-themes-theme
macro is documented
at length with concrete examples in the aforementioned link to the
manual). For the standard-themes
, this means that we can inherit all
the goodies from Modus but still deviate stylistically in important
ways wherever necessary. One case where this is evident is the design
of the active mode line: Modus has a flat appearance, while Standard
uses a 3D effect.
Standard does not need to deviate substantively from Modus, though there is no technical constraint in this regard. A derivative theme can implement all the requisite deviations to achieve the exact design it aims for, all while reusing Modus.
My plan is to release all new theme versions in the coming days, depending on my availability. Please let me know if you have any questions or want some things to change.