Refactor DOOM init & add new init hooks

+ Add doom-init-hook and doom-post-init-hook to simplify Emacs init
  hooks into less ambiguous ones.
+ Attach former after-init-hook and emacs-startup-hook hooks to new doom
  init hooks.
+ Vastly improves daemon and tty support: preventing incorrect colors
  from bleeding across face class barriers, and into GUI Emacs and vice
  versa, when spawned with emacsclient.
+ Fix persp-mode breaking Emacs daemon, and ensuring that initialization
  is done properly in terminal Emacs (and emacsclient frames).
This commit is contained in:
Henrik Lissner 2017-06-12 00:20:30 +02:00
parent d3054f4679
commit 4984a548d1
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
17 changed files with 121 additions and 80 deletions

View file

@ -95,14 +95,14 @@ local value, whether or not it's permanent-local. Therefore, we cycle
;; undo/redo changes to Emacs' window layout
(defvar winner-dont-bind-my-keys t) ; I'll bind keys myself
(require 'winner)
(add-hook 'window-setup-hook #'winner-mode)
(autoload 'winner-mode "winner" nil t)
(add-hook 'doom-init-hook #'winner-mode)
;; highlight matching delimiters
(setq show-paren-delay 0.1
show-paren-highlight-openparen t
show-paren-when-point-inside-paren t)
(add-hook 'window-setup-hook #'show-paren-mode)
(add-hook 'doom-init-hook #'show-paren-mode)
;;; More reliable inter-window border
;; The native border "consumes" a pixel of the fringe on righter-most splits,
@ -110,7 +110,7 @@ local value, whether or not it's permanent-local. Therefore, we cycle
(setq-default window-divider-default-places t
window-divider-default-bottom-width 1
window-divider-default-right-width 1)
(add-hook 'window-setup-hook #'window-divider-mode)
(add-hook 'doom-init-hook #'window-divider-mode)
;; like diminish, but for major-modes. [pedantry intensifies]
(defvar doom-ui-mode-names
@ -132,24 +132,27 @@ mode is detected.")
(global-set-key [remap delete-frame] #'doom/delete-frame)
;; auto-enabled in Emacs 25+; I'd rather enable it manually
(global-eldoc-mode -1)
(global-eldoc-mode -1) ; auto-enabled in Emacs 25+; I'll do it myself
(blink-cursor-mode +1) ; a good indicator that Emacs isn't frozen
;; draw me like one of your French editors
(tooltip-mode -1) ; relegate tooltips to echo area only
(menu-bar-mode -1)
(when (fboundp 'tool-bar-mode)
(tool-bar-mode -1))
(when (display-graphic-p)
(scroll-bar-mode -1)
;; buffer name in frame title
(setq-default frame-title-format '("DOOM Emacs"))
;; standardize fringe width
(push (cons 'left-fringe doom-ui-fringe-size) default-frame-alist)
(push (cons 'right-fringe doom-ui-fringe-size) default-frame-alist)
;; no fringe in the minibuffer
(add-hook! '(emacs-startup-hook minibuffer-setup-hook)
(set-window-fringes (minibuffer-window) 0 0 nil)))
(when (fboundp 'scroll-bar-mode)
(scroll-bar-mode -1))
;; buffer name in frame title
(setq-default frame-title-format '("DOOM Emacs"))
;; standardize fringe width
(push (cons 'left-fringe doom-ui-fringe-size) default-frame-alist)
(push (cons 'right-fringe doom-ui-fringe-size) default-frame-alist)
;; no fringe in the minibuffer
(defun doom|no-fringes-in-minibuffer ()
(set-window-fringes (minibuffer-window) 0 0 nil))
(add-hook! '(doom-init-hook minibuffer-setup-hook)
#'doom|no-fringes-in-minibuffer)
;;
@ -320,9 +323,8 @@ file."
;; indicators for empty lines past EOF
(def-package! vi-tilde-fringe
:when (display-graphic-p)
:commands global-vi-tilde-fringe-mode
:init (add-hook 'window-setup-hook #'global-vi-tilde-fringe-mode))
:init (add-hook 'doom-init-hook #'global-vi-tilde-fringe-mode))
;; For a distractions-free-like UI, that dynamically resizes margets and can
;; center a buffer.