doom-themes
DOOM Themes is an opinionated UI plugin and pack of themes extracted from my emacs.d, inspired by some of my favorite color themes.
Table of Contents
Features
- Color themes:
- Flagship themes
- Additional themes
-
doom-city-lights
(thanks to fuxialexander) -
doom-dracula
(thanks to fuxialexander) -
doom-molokai
: based on Textmate's monokai -
doom-nord
(thanks to fuxialexander) -
doom-nord-light
(thanks to fuxialexander) -
doom-opera
(thanks to [jwintz]) -
doom-opera-light
(thanks to [jwintz]) -
doom-nova
: adapted from Nova (thanks to bigardone) -
doom-peacock
: based on Peacock from daylerees' themes (thanks to teesloane) -
doom-solarized-light
: light variant of Solarized (thanks to fuxialexander) -
doom-sourcerer
: based on Sourcerer (thanks to defphil) -
doom-spacegrey
: I'm sure you've heard of it (thanks to teesloane) -
doom-tomorrow-night
: by Chris Kempson -
doom-tomorrow-day
: by Chris Kempson (thanks to emacswatcher) -
doom-mono-dark
/doom-mono-light
: a minimalistic, monochromatic theme -
doom-tron
: based on Tron Legacy from daylerees' themes
-
- Included features:
-
(doom-themes-visual-bell-config)
: flash the mode-line when the Emacs bell rings (i.e. an error occurs). -
(doom-themes-neotree-config)
: a neotree theme that takes after Atom's file drawer, and is simpler than the built in icon theme in neotree (screenshot, more details).This requires
all-the-icons
' fonts to be installed:M-x all-the-icons-install-fonts
-
(doom-themes-treemacs-config)
: a treemacs icon theme that takes after Atom's (WIP). -
(doom-themes-org-config)
: corrects and improves some of org-mode's native fontification.- Re-set
org-todo' &
org-headline-done' faces to make them respect underlying faces (i.e. don't override the :height or :background of underlying faces). - Make statistic cookies respect underlying faces.
- Fontify item bullets (make them stand out)
- Fontify item checkboxes (and when they're marked done), like TODOs that are marked done.
- Fontify dividers/separators (5+ dashes)
- Fontify #hashtags and @at-tags, for personal convenience; see
doom-org-special-tags
to disable this.
- Re-set
-
- Resources that may interest you:
- To get dimmed sidebars and brighter source buffers (like in the screenshots), see solaire-mode.
- To get line number highlighting for
nlinum
, setnlinum-highlight-current-line
to non-nil (or see hlinum forlinum
). - AnthonyDiGirolamo added doom-one (screenshot) and doom-molokai (screenshot) skins to airline-themes.
- I'm working on making my modeline more accessible. In the meantime, check out my mode-line configuration in my emacs.d.
Install
M-x package-install RET doom-themes
A comprehensive configuration example:
(require 'doom-themes)
;; Global settings (defaults)
(setq doom-themes-enable-bold t ; if nil, bold is universally disabled
doom-themes-enable-italic t) ; if nil, italics is universally disabled
;; Load the theme (doom-one, doom-molokai, etc); keep in mind that each theme
;; may have their own settings.
(load-theme 'doom-one t)
;; Enable flashing mode-line on errors
(doom-themes-visual-bell-config)
;; Enable custom neotree theme (all-the-icons must be installed!)
(doom-themes-neotree-config)
;; or for treemacs users
(doom-themes-treemacs-config)
;; Corrects (and improves) org-mode's native fontification.
(doom-themes-org-config)
The wiki contains details for customizing the neotree theme.
Common Issues
-
If you use
nlinum
orlinum
in org-mode, the larger headline sizes in some themes could bleed into the line numbers.Fix this by setting :height explicitly for your line number plugins, after you've loaded the theme. e.g.
(let ((height (face-attribute 'default :height))) ;; for all linum/nlinum users (set-face-attribute 'linum nil :height height) ;; only for `linum-relative' users: (set-face-attribute 'linum-relative-current-face nil :height height) ;; only for `nlinum-relative' users: (set-face-attribute 'nlinum-relative-current-face nil :height height))
Contribute
I welcome contributions of any kind, be they pull requests, bug reports or elisp pointers. Additional theme and plugin support requests are welcome too.