2017-02-03 19:44:14 -05:00
|
|
|
;;; ui/doom/config.el
|
2017-01-17 00:20:59 -05:00
|
|
|
|
|
|
|
(defvar +doom-theme 'doom-one
|
2017-05-12 12:14:17 +02:00
|
|
|
"The color theme to use.")
|
2017-01-17 00:20:59 -05:00
|
|
|
|
2017-01-31 05:09:20 -05:00
|
|
|
(defvar +doom-font
|
|
|
|
(font-spec :family "Fira Mono" :size 12)
|
|
|
|
"The font currently in use.")
|
2017-01-17 00:20:59 -05:00
|
|
|
|
2017-01-31 05:09:20 -05:00
|
|
|
(defvar +doom-variable-pitch-font
|
2017-05-29 00:58:12 +02:00
|
|
|
(font-spec :family "Fira Sans" :size 12)
|
2017-01-31 05:09:20 -05:00
|
|
|
"The font currently in use.")
|
2017-01-17 00:20:59 -05:00
|
|
|
|
2017-01-31 05:09:20 -05:00
|
|
|
(defvar +doom-unicode-font
|
|
|
|
(font-spec :family "DejaVu Sans Mono" :size 12)
|
|
|
|
"Fallback font for unicode glyphs.")
|
2017-01-17 00:20:59 -05:00
|
|
|
|
2017-02-03 19:44:14 -05:00
|
|
|
|
2017-01-31 05:09:20 -05:00
|
|
|
;;; Set fonts
|
|
|
|
(when (display-graphic-p)
|
|
|
|
(with-demoted-errors "FONT ERROR: %s"
|
|
|
|
(set-frame-font +doom-font t t)
|
|
|
|
;; Fallback to `doom-unicode-font' for Unicode characters
|
|
|
|
(when +doom-unicode-font
|
|
|
|
(set-fontset-font t 'unicode +doom-unicode-font))
|
|
|
|
;; ...and for variable-pitch mode
|
|
|
|
(when +doom-variable-pitch-font
|
|
|
|
(set-face-attribute 'variable-pitch nil :font +doom-variable-pitch-font))))
|
|
|
|
|
|
|
|
|
2017-02-19 18:52:26 -05:00
|
|
|
;; doom-one: gives Emacs a look inspired by Dark One in Atom.
|
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
|
|
|
|
:load-path "~/work/plugins/emacs-doom-themes/"
|
|
|
|
:demand t
|
2017-02-03 19:44:14 -05:00
|
|
|
:config
|
2017-01-17 00:20:59 -05:00
|
|
|
(load-theme +doom-theme t)
|
|
|
|
|
2017-06-05 12:35:40 +02:00
|
|
|
;; blink mode-line on errors
|
2017-06-07 20:47:04 +02:00
|
|
|
(doom-themes-visual-bell-config)
|
2017-05-27 14:33:59 +02:00
|
|
|
|
2017-05-15 21:00:33 +02:00
|
|
|
;; Add file icons to doom-neotree
|
|
|
|
(doom-themes-neotree-config)
|
|
|
|
(setq doom-neotree-enable-variable-pitch t
|
|
|
|
doom-neotree-file-icons 'simple
|
|
|
|
doom-neotree-line-spacing 2)
|
|
|
|
|
2017-04-28 13:16:04 -04:00
|
|
|
;; Since Fira Mono doesn't have an italicized variant, highlight it instead
|
|
|
|
(set-face-attribute 'italic nil
|
|
|
|
:weight 'ultra-light
|
|
|
|
:foreground "#ffffff"
|
2017-06-05 03:13:24 +02:00
|
|
|
:background (doom-color 'current-line))
|
2017-04-28 13:16:04 -04:00
|
|
|
|
2017-02-21 16:04:35 -05:00
|
|
|
;; Dark frames by default
|
2017-04-22 01:49:15 -04:00
|
|
|
(when (display-graphic-p)
|
2017-06-05 03:13:24 +02:00
|
|
|
(push (cons 'background-color (doom-color 'bg)) initial-frame-alist)
|
|
|
|
(push (cons 'foreground-color (doom-color 'fg)) initial-frame-alist))
|
2017-05-16 17:39:42 +02:00
|
|
|
|
|
|
|
(after! neotree
|
|
|
|
(defun +doom|neotree-fix-popup ()
|
|
|
|
"Ensure the fringe settings are maintained on popup restore."
|
|
|
|
(neo-global--when-window
|
|
|
|
(doom--neotree-no-fringes)))
|
|
|
|
(add-hook 'doom-popup-mode-hook #'+doom|neotree-fix-popup nil t)))
|
2017-01-31 05:09:20 -05:00
|
|
|
|
|
|
|
|
2017-06-05 03:13:24 +02:00
|
|
|
(def-package! solaire-mode
|
|
|
|
:commands (solaire-mode turn-on-solaire-mode turn-off-solaire-mode)
|
|
|
|
:init
|
|
|
|
(add-hook 'after-change-major-mode-hook #'turn-on-solaire-mode)
|
|
|
|
(add-hook 'doom-popup-mode-hook #'turn-off-solaire-mode)
|
|
|
|
:config
|
|
|
|
(setq solaire-mode-real-buffer-fn #'doom-real-buffer-p)
|
|
|
|
|
|
|
|
;; Extra modes to activate doom-buffer-mode in
|
|
|
|
(add-hook! (gist-mode
|
|
|
|
twittering-mode
|
|
|
|
mu4e-view-mode
|
|
|
|
org-tree-slide-mode
|
|
|
|
+regex-mode)
|
|
|
|
#'solaire-mode))
|
|
|
|
|
|
|
|
|
2017-02-23 00:06:12 -05:00
|
|
|
(after! hideshow
|
2017-05-15 21:00:33 +02:00
|
|
|
(defface +doom-folded-face
|
|
|
|
`((((background dark))
|
|
|
|
(:inherit font-lock-comment-face :background ,(doom-color 'black)))
|
|
|
|
(((background light))
|
|
|
|
(:inherit font-lock-comment-face :background ,(doom-color 'light-grey))))
|
|
|
|
"Face to hightlight `hideshow' overlays."
|
|
|
|
:group 'doom)
|
|
|
|
|
2017-05-19 17:21:52 +02:00
|
|
|
;; Nicer code-folding overlays (with fringe indicators)
|
2017-01-31 05:09:20 -05:00
|
|
|
(setq hs-set-up-overlay
|
|
|
|
(lambda (ov)
|
|
|
|
(when (eq 'code (overlay-get ov 'hs))
|
2017-05-15 20:20:06 +02:00
|
|
|
(when (featurep 'vimish-fold)
|
|
|
|
(overlay-put
|
|
|
|
ov 'before-string
|
|
|
|
(propertize "…" 'display
|
|
|
|
(list vimish-fold-indication-mode
|
|
|
|
'empty-line
|
|
|
|
'vimish-fold-fringe))))
|
2017-01-31 05:09:20 -05:00
|
|
|
(overlay-put
|
2017-02-20 00:10:10 -05:00
|
|
|
ov 'display (propertize " [...] " 'face '+doom-folded-face))))))
|
2017-01-31 05:09:20 -05:00
|
|
|
|
2017-02-19 18:39:54 -05:00
|
|
|
|
2017-05-25 20:13:05 +02:00
|
|
|
(when (and (display-graphic-p) (fboundp 'define-fringe-bitmap))
|
|
|
|
;; NOTE Adjust these bitmaps if you change `doom-ui-fringe-size'
|
2017-05-16 22:21:21 +02:00
|
|
|
(after! flycheck
|
|
|
|
;; because git-gutter is in the left fringe
|
|
|
|
(setq flycheck-indication-mode 'right-fringe)
|
2017-05-19 17:21:52 +02:00
|
|
|
;; A non-descript, left-pointing arrow
|
2017-05-25 20:13:05 +02:00
|
|
|
(fringe-helper-define 'flycheck-fringe-bitmap-double-arrow 'center
|
|
|
|
"...X...."
|
|
|
|
"..XX...."
|
|
|
|
".XXX...."
|
|
|
|
"XXXX...."
|
|
|
|
".XXX...."
|
|
|
|
"..XX...."
|
|
|
|
"...X...."))
|
2017-05-16 22:21:21 +02:00
|
|
|
|
|
|
|
;; subtle diff indicators in the fringe
|
2017-05-14 11:54:18 +02:00
|
|
|
(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....")))
|