Standard themes for GNU Emacs
Like the default theme but more consistent.
This manual, written by Protesilaos Stavrou, describes the Emacs package
called standard-themes, and provides every other piece of information
pertinent to it.
The documentation furnished herein corresponds to stable version 2.2.0, released on 2024-12-29. Any reference to a newer feature which does not yet form part of the latest tagged commit, is explicitly marked as such.
Current development target is 3.0.0-dev.
- Package name (GNU ELPA): standard-themes
- Official manual: https://protesilaos.com/emacs/standard-themes
- Change log: https://protesilaos.com/emacs/standard-themes-changelog
- Sample pictures: https://protesilaos.com/emacs/standard-themes-pictures
- Git repositories:
- Backronym: Standard Themes Are Not Derivatives but the Affectionately Reimagined Default … themes.
If you are viewing the README.org version of this file, please note that the GNU ELPA machinery automatically generates an Info manual out of it.
Table of Contents
1. COPYING
Copyright (C) 2022-2025 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with the Front-Cover Texts being “A GNU Manual,” and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled “GNU Free Documentation License.”
(a) The FSF’s Back-Cover Text is: “You have the freedom to copy and modify this GNU manual.”
2. About the Standard themes
The standard-themes are a collection of light and dark themes for
GNU Emacs. The standard-light and standard-dark emulate the
out-of-the-box looks of Emacs (which technically do NOT constitute a
theme) while bringing to them thematic consistency, customizability,
and extensibility. Other themes are stylistic variations of those.
Why call them “standard”? Obviously because: Standard Themes Are Not Derivatives but the Affectionately Reimagined Default … themes.
Starting with version 3.0.0, the standard-themes are built on top
of the modus-themes. This means that all customisation options of
the Modus themes apply to the Standard themes (Sample configuration).
Same for all Modus commands that load a theme. Enable
standard-themes-take-over-modus-themes-mode to set up this
arrangement (or enable modus-themes-include-derivatives-mode instead
to blend Standard and Modus into one collection).
3. Installation
3.1. GNU ELPA package
The package is available as standard-themes.  Simply do:
M-x package-refresh-contents M-x package-install
And search for it.
GNU ELPA provides the latest stable release. Those who prefer to follow the development process in order to report bugs or suggest changes, can use the version of the package from the GNU-devel ELPA archive. Read: https://protesilaos.com/codelog/2022-05-13-emacs-elpa-devel/.
3.2. Manual installation
Assuming your Emacs files are found in ~/.emacs.d/, execute the
following commands in a shell prompt:
cd ~/.emacs.d # Create a directory for manually-installed packages mkdir manual-packages # Go to the new directory cd manual-packages # Clone this repo, naming it "standard-themes" git clone https://github.com/protesilaos/standard-themes standard-themes
Finally, in your init.el (or equivalent) evaluate this:
;; Make Elisp files in that directory available to the user. (add-to-list 'load-path "~/.emacs.d/manual-packages/standard-themes")
Everything is in place to set up the package.
4. Sample configuration
[ Updated as part of 3.0.0-dev, to build on top of the modus-themes. ]
Starting with version 3.0.0, the standard-themes are built on top of the
modus-themes. This means that all customisation options of the Modus
themes apply to the Standard themes. Same for all Modus commands that load a
theme. Enable standard-themes-take-over-modus-themes-mode to set up this
arrangement (or enable modus-themes-include-derivatives-mode instead
to blend Standard and Modus into one collection).
(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))
5. Customization options
[ Redone as part of 3.0.0-dev. ]
Starting with version 3.0.0 of the standard-themes, all
customisation is done via the modus-themes. Consult the latter’s
manual for all the technicalities (Sample configuration).
6. Acknowledgements
This project is meant to be a collective effort. Every bit of help matters.
- Author/maintainer
- Protesilaos Stavrou.
- Contributions to code
- Clemens Radermacher, Trevor Arjeski.
- Ideas and/or user feedback
- EyoelYT, Filippo Argiolas, Fritz Grabo, Manuel Uberti, Tassilo Horn, Zack Weinberg.
7. GNU Free Documentation License
                GNU Free Documentation License
                 Version 1.3, 3 November 2008
 Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.