doomemacs/modules/ui/doom/config.el

84 lines
2.7 KiB
EmacsLisp
Raw Normal View History

;;; ui/doom/config.el -*- lexical-binding: t; -*-
2017-01-17 00:20:59 -05:00
(defvar +doom-solaire-themes
'((doom-city-lights . t)
(doom-dracula . t)
(doom-molokai . t)
(doom-nord . t)
(doom-nord-light . t)
(doom-nova . nil)
(doom-one . t)
(doom-one-light . t)
2018-06-17 12:12:13 +02:00
(doom-opera . t)
(doom-solarized-light . nil)
(doom-spacegrey . nil)
(doom-vibrant . nil))
"An alist of themes that support `solaire-mode'. If CDR is t, then use
`solaire-mode-swap-bg'.")
;;
;; Plugins
;;
2017-01-31 05:09:20 -05:00
;; <https://github.com/hlissner/emacs-doom-theme>
2017-06-05 03:12:49 +02:00
(def-package! doom-themes
:defer t
:init
(unless doom-theme
(setq doom-theme 'doom-one))
:config
2017-12-08 22:57:08 -05:00
;; improve integration w/ org-mode
(add-hook 'doom-load-theme-hook #'doom-themes-org-config)
;; more Atom-esque file icons for neotree/treemacs
(when (featurep! :ui neotree)
(add-hook 'doom-load-theme-hook #'doom-themes-neotree-config)
(setq doom-neotree-enable-variable-pitch t
doom-neotree-file-icons 'simple
doom-neotree-line-spacing 2))
(when (featurep! :ui treemacs)
(add-hook 'doom-load-theme-hook #'doom-themes-treemacs-config)
(setq doom-treemacs-enable-variable-pitch t)))
2017-01-31 05:09:20 -05:00
2017-06-05 03:13:24 +02:00
(def-package! solaire-mode
:defer t
:init
(defun +doom|solaire-mode-swap-bg-maybe ()
(when-let* ((rule (assq doom-theme +doom-solaire-themes)))
(require 'solaire-mode)
(if (cdr rule) (solaire-mode-swap-bg))))
(add-hook 'doom-load-theme-hook #'+doom|solaire-mode-swap-bg-maybe t)
2017-06-05 03:13:24 +02:00
:config
(add-hook 'change-major-mode-after-body-hook #'turn-on-solaire-mode)
;; fringe can become unstyled when deleting or focusing frames
(add-hook 'focus-in-hook #'solaire-mode-reset)
;; Prevent color glitches when reloading either DOOM or loading a new theme
(add-hook! :append '(doom-load-theme-hook doom-reload-hook)
#'solaire-mode-reset)
;; org-capture takes an org buffer and narrows it. The result is erroneously
;; considered an unreal buffer, so solaire-mode must be restored.
(add-hook 'org-capture-mode-hook #'turn-on-solaire-mode))
2017-06-05 03:13:24 +02:00
(after! hideshow
(defface +doom-folded-face `((t (:inherit font-lock-comment-face :weight light)))
2017-05-15 21:00:33 +02:00
"Face to hightlight `hideshow' overlays."
:group 'doom-themes)
2017-05-15 21:00:33 +02:00
;; Nicer code-folding overlays (with fringe indicators)
(defun +doom-set-up-overlay (ov)
(when (eq 'code (overlay-get ov 'hs))
(when (featurep 'vimish-fold)
(overlay-put
ov 'before-string
(propertize "" 'display
(list vimish-fold-indication-mode
'empty-line
'vimish-fold-fringe))))
(overlay-put
ov 'display (propertize " [...] " 'face '+doom-folded-face))))
(setq hs-set-up-overlay #'+doom-set-up-overlay))
2017-01-31 05:09:20 -05:00