doomemacs/modules/ui/doom/config.el
Henrik Lissner 91357a3e5d
💥 Replace core-popup with new feature/popup module
This is a breaking change! Update your :popup settings. Old ones will
throw errors!

Doom's new popup management system casts off its shackles (hur hur) and
replaces them with the monster that is `display-buffer-alist`, and
window parameters.

However, this is highly experimental! Expect edge cases.  Particularly
with org-mode and magit (or anything that does its own window
management).

Relevant to #261, #263, #325
2018-01-06 02:17:43 -05:00

84 lines
2.7 KiB
EmacsLisp

;;; ui/doom/config.el -*- lexical-binding: t; -*-
;; <https://github.com/hlissner/emacs-doom-theme>
(def-package! doom-themes
:config
(unless doom-theme
(setq doom-theme 'doom-one)
(after! solaire-mode
(add-hook 'doom-init-theme-hook #'solaire-mode-swap-bg t)))
;; Ensure `doom/reload-load-path' reloads common faces
(defun +doom|reload-theme () (load "doom-themes-common.el" nil t))
(add-hook 'doom-pre-reload-theme-hook #'+doom|reload-theme)
;; improve integration w/ org-mode
(add-hook 'doom-init-theme-hook #'doom-themes-org-config)
;; more Atom-esque file icons for neotree
(add-hook 'doom-init-theme-hook #'doom-themes-neotree-config)
(setq doom-neotree-enable-variable-pitch t
doom-neotree-file-icons 'simple
doom-neotree-line-spacing 2))
(def-package! solaire-mode
:hook (after-change-major-mode . turn-on-solaire-mode)
:config
(setq solaire-mode-real-buffer-fn #'doom-real-buffer-p)
;; Prevent color glitches when reloading either DOOM or the theme
(add-hook! '(doom-init-theme-hook doom-reload-hook) #'solaire-mode-reset))
(after! hideshow
(defface +doom-folded-face
`((((background dark))
(:inherit font-lock-comment-face :background ,(doom-color 'base0)))
(((background light))
(:inherit font-lock-comment-face :background ,(doom-color 'base3))))
"Face to hightlight `hideshow' overlays."
:group 'doom)
;; 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))
;; NOTE Adjust these bitmaps if you change `doom-fringe-size'
(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...."))