Emacs: doric-themes version 0.5.0

These are my minimalist themes. They use few colours and will appear mostly monochromatic in many contexts. Styles involve the careful use of typography, such as italics and bold italics.

If you want maximalist themes in terms of colour, check my ef-themes package. For something in-between, which I would consider the best “default theme” for a text editor, opt for my modus-themes.

Below are the release notes.


Update to doric-themes 0.5.0

Enjoy the two new members of the collection

These are doric-siren and doric-mermaid. The former is a light theme while the latter is dark. Both themes offer a marine vibe combined with warm hues. Check the updated screenshots of all the Doric themes: https://protesilaos.com/emacs/doric-themes-pictures.

Support for transient.el semantic faces

Those are used when the user option transient-semantic-coloring is set to a non-nil value (the default). They are designed to indicate different types of key, such as those that keep the transient in place as opposed to exiting it.

The old style of making all key bindings look the same is still available if transient-semantic-coloring is set to nil.

Semantic Emacs Lisp faces

This is a new feature coming in Emacs 31. Users can opt in to it by setting the user option elisp-fontify-semantically to a non-nil value. When active, Emacs Lisp buffers will apply highlights to more elements of the syntax. Those will still conform with the minimalist style of the Doric themes, but users at least get the benefits of elisp-add-help-echo.

Font-lock faces for function calls and use of variables

Those are typically applied by major modes that are power by tree-sitter. Again, the styles are minimalist.

More faces or face groups are covered

These include:

  • ibuffer’s Emacs 31 faces (patched by me in emacs.git)
  • flymake’s Emacs 31 faces (again, my patch in core)
  • diff-hl package
  • git-gutter package
  • org-habit
  • minibuffer-nonselected for Emacs 31
  • eglot-highlight-symbol-face
  • ert-test-result-unexpected and ert-test-result-expected, courtesy of Rudolf Adamkovič in pull request 19: https://github.com/protesilaos/doric-themes/pull/19.

Refinements to already supported faces

  • The calendar-today and org-date-selected are similar but different enough to stand apart. I initially made them look identical because I thought they would never appear in the same context. Thanks to Rudolf Adamkovič for telling me they could actually be collocated, hence their disambiguation. This was done in issue 20: https://github.com/protesilaos/doric-themes/issues/20.

  • The transient-argument and transient-value have a background to make them easier to spot. This is because they convey information about the state of the transient interface, which typically is important.

  • Transient’s mismatching keys are dimmed out instead of being underlined, because this looks better in context.

  • Similarly, org-agenda-clocking has a more pronounced background.

  • Idem for eldoc-highlight-function-argument and its counterparts in lsp-mode and geiser.

  • The Org check boxes are rendered with a bold weight, while quote blocks are in italics. Thanks to Rudolf Adamkovič for the patch in pull request 18: https://github.com/protesilaos/doric-themes/pull/18.

  • All Notmuch cryptography-related faces have more refined styles to both stand out better while avoiding exaggerations.

  • The Custom user interface buttons inherit from variable-pitch.

  • The current line number in display-line-numbers-mode uses just a bold weight to avoid exaggerations.