/emacs-doom-themes

An opinionated pack of modern color-themes

Primary LanguageEmacs LispMIT LicenseMIT

Release tag MELPA Build Status MIT

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.

See the screenshots.

Table of Contents

Features

  • Color 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.
  • Resources that may interest you:

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 or linum 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.