2017-06-08 11:47:56 +02:00
|
|
|
;;; ui/doom/config.el -*- lexical-binding: t; -*-
|
2017-01-17 00:20:59 -05:00
|
|
|
|
2018-03-22 19:28:03 -04:00
|
|
|
(defvar +doom-solaire-themes
|
2018-03-28 06:49:49 -04:00
|
|
|
'((doom-city-lights . t)
|
|
|
|
(doom-dracula . t)
|
|
|
|
(doom-molokai . t)
|
|
|
|
(doom-nord . t)
|
2018-05-02 23:41:17 +02:00
|
|
|
(doom-nord-light . t)
|
2018-03-28 06:49:49 -04:00
|
|
|
(doom-nova . nil)
|
|
|
|
(doom-one . t)
|
|
|
|
(doom-one-light . 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'.")
|
2018-03-22 19:28:03 -04:00
|
|
|
|
|
|
|
|
|
|
|
;;
|
|
|
|
;; 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
|
2017-02-03 19:44:14 -05:00
|
|
|
:config
|
2017-12-09 16:52:23 -05:00
|
|
|
(unless doom-theme
|
2018-03-22 19:28:03 -04:00
|
|
|
(setq doom-theme 'doom-one))
|
2017-06-28 16:18:22 +02:00
|
|
|
|
2018-03-22 23:27:31 -04:00
|
|
|
;; Reload common faces when reloading doom-themes live
|
2018-03-28 03:32:52 -04:00
|
|
|
(defun +doom*reload-common (&rest _) (load "doom-themes-common.el" nil t))
|
2018-03-22 23:27:31 -04:00
|
|
|
(advice-add #'doom//reload-theme :before #'+doom*reload-common)
|
2017-06-29 14:58:10 +02:00
|
|
|
|
2017-12-08 22:57:08 -05:00
|
|
|
;; improve integration w/ org-mode
|
2018-03-22 19:28:03 -04:00
|
|
|
(add-hook 'doom-load-theme-hook #'doom-themes-org-config)
|
2017-08-03 21:24:03 +02:00
|
|
|
|
2017-12-08 22:57:08 -05:00
|
|
|
;; more Atom-esque file icons for neotree
|
2018-03-22 19:28:03 -04:00
|
|
|
(add-hook 'doom-load-theme-hook #'doom-themes-neotree-config)
|
2017-05-15 21:00:33 +02:00
|
|
|
(setq doom-neotree-enable-variable-pitch t
|
|
|
|
doom-neotree-file-icons 'simple
|
2018-01-06 01:23:22 -05:00
|
|
|
doom-neotree-line-spacing 2))
|
2017-01-31 05:09:20 -05:00
|
|
|
|
|
|
|
|
2017-06-05 03:13:24 +02:00
|
|
|
(def-package! solaire-mode
|
2018-03-22 19:28:03 -04:00
|
|
|
:commands (solaire-mode turn-on-solaire-mode solaire-mode-swap-bg)
|
|
|
|
:init
|
|
|
|
(defun +doom|solaire-mode-swap-bg-maybe ()
|
2018-03-28 06:49:49 -04:00
|
|
|
(when-let* ((rule (assq doom-theme +doom-solaire-themes)))
|
2018-03-22 19:28:03 -04:00
|
|
|
(require 'solaire-mode)
|
2018-03-28 06:49:49 -04:00
|
|
|
(if (cdr rule) (solaire-mode-swap-bg))))
|
2018-03-22 19:28:03 -04:00
|
|
|
(add-hook 'doom-load-theme-hook #'+doom|solaire-mode-swap-bg-maybe t)
|
2017-06-05 03:13:24 +02:00
|
|
|
:config
|
2018-03-22 19:28:03 -04:00
|
|
|
(add-hook 'after-change-major-mode-hook #'turn-on-solaire-mode)
|
2017-06-05 03:13:24 +02:00
|
|
|
(setq solaire-mode-real-buffer-fn #'doom-real-buffer-p)
|
2018-02-18 03:14:33 -05:00
|
|
|
;; fringe can become unstyled when deleting or focusing frames
|
|
|
|
(add-hook 'focus-in-hook #'solaire-mode-reset)
|
2018-03-22 19:27:17 -04:00
|
|
|
;; Prevent color glitches when reloading either DOOM or loading a new theme
|
|
|
|
(add-hook! :append '(doom-load-theme-hook doom-reload-hook)
|
2018-02-07 01:36:16 -05:00
|
|
|
#'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
|
|
|
|
|
|
|
|
2017-02-23 00:06:12 -05:00
|
|
|
(after! hideshow
|
2017-05-15 21:00:33 +02:00
|
|
|
(defface +doom-folded-face
|
|
|
|
`((((background dark))
|
2018-03-18 03:36:36 -04:00
|
|
|
(:inherit font-lock-comment-face :background ,(doom-color 'base0) :weight light))
|
2017-05-15 21:00:33 +02:00
|
|
|
(((background light))
|
2018-03-18 03:36:36 -04:00
|
|
|
(:inherit font-lock-comment-face :background ,(doom-color 'base3) :weight light)))
|
2017-05-15 21:00:33 +02:00
|
|
|
"Face to hightlight `hideshow' overlays."
|
2018-02-18 03:04:36 -05:00
|
|
|
:group 'doom-themes)
|
2017-05-15 21:00:33 +02:00
|
|
|
|
2017-05-19 17:21:52 +02:00
|
|
|
;; Nicer code-folding overlays (with fringe indicators)
|
2018-01-03 14:28:00 -05:00
|
|
|
(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
|
|
|
|
2017-02-19 18:39:54 -05:00
|
|
|
|
2017-06-28 16:18:22 +02:00
|
|
|
;; NOTE Adjust these bitmaps if you change `doom-fringe-size'
|
2017-06-09 00:32:49 +02:00
|
|
|
(after! flycheck
|
|
|
|
;; because git-gutter is in the left fringe
|
|
|
|
(setq flycheck-indication-mode 'right-fringe)
|
|
|
|
;; A non-descript, left-pointing arrow
|
|
|
|
(fringe-helper-define 'flycheck-fringe-bitmap-double-arrow 'center
|
|
|
|
"...X...."
|
|
|
|
"..XX...."
|
|
|
|
".XXX...."
|
|
|
|
"XXXX...."
|
|
|
|
".XXX...."
|
|
|
|
"..XX...."
|
|
|
|
"...X...."))
|
|
|
|
|
|
|
|
;; subtle diff indicators in the fringe
|
|
|
|
(after! git-gutter-fringe
|
|
|
|
;; places the git gutter outside the margins.
|
|
|
|
(setq-default fringes-outside-margins t)
|
|
|
|
;; thin fringe bitmaps
|
|
|
|
(fringe-helper-define 'git-gutter-fr:added '(center repeated)
|
|
|
|
"XXX.....")
|
|
|
|
(fringe-helper-define 'git-gutter-fr:modified '(center repeated)
|
|
|
|
"XXX.....")
|
|
|
|
(fringe-helper-define 'git-gutter-fr:deleted 'bottom
|
|
|
|
"X......."
|
|
|
|
"XX......"
|
|
|
|
"XXX....."
|
|
|
|
"XXXX...."))
|