Skip to content

An opinionated pack of modern color-themes

License

Notifications You must be signed in to change notification settings

Whil-/emacs-doom-themes

 
 

Repository files navigation

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

Theme list

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): two treemacs icon themes, one that takes after Atom's, and a second more colorful implementation (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:

Themes customization

There are several themes which have their own customization options. For example, doom-dark+ default modeline color can be changed with the doom-dark+-blue-modeline custom variable, or you can switch between doom-gruvbox-light variants with the doom-gruvbox-light-variant custom variable.

Install

Doom Emacs

The built-in :ui doom module installs doom-themes for you, and loads doom-one by default. You can change the theme by changing the doom-theme variable from ~/.doom.d/config.el:

(setq doom-theme 'doom-city-lights)

Or by loading it manually:

(load-theme 'doom-city-lights t)

Manually

doom-themes is available on MELPA.

  • Straight users can install it with M-x straight-use-package RET doom-themes
  • And package.el users: M-x package-install RET doom-themes

Here is a example configuration for doom-theme:

(use-package doom-themes
  :config
  ;; 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-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
  (setq doom-themes-treemacs-theme "doom-colors") ; use the colorful treemacs theme
  (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.

About

An opinionated pack of modern color-themes

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Emacs Lisp 100.0%