Fix dashboard in daemon/clients (#111)

This commit is contained in:
Henrik Lissner
2017-06-16 00:08:51 +02:00
parent 1606deb046
commit a3adc1de29

View File

@ -58,9 +58,8 @@
(add-hook 'after-make-frame-functions #'+doom-dashboard-deferred-reload) (add-hook 'after-make-frame-functions #'+doom-dashboard-deferred-reload)
(add-hook 'window-configuration-change-hook #'+doom-dashboard-reload) (add-hook 'window-configuration-change-hook #'+doom-dashboard-reload)
(add-hook 'kill-buffer-query-functions #'+doom-dashboard|kill-buffer-query-fn) (add-hook 'kill-buffer-query-functions #'+doom-dashboard|kill-buffer-query-fn)
(+doom-dashboard-reload) (unless (daemonp)
(when (equal (buffer-name) "*scratch*") (+doom-dashboard/open t))))
(switch-to-buffer (doom-fallback-buffer)))))
(add-hook 'doom-post-init-hook #'+doom-dashboard|init) (add-hook 'doom-post-init-hook #'+doom-dashboard|init)
@ -69,13 +68,15 @@
(push +doom-dashboard-name clean-buffer-list-kill-never-buffer-names) (push +doom-dashboard-name clean-buffer-list-kill-never-buffer-names)
(push "^\\s-*\\*doom.+" clean-buffer-list-kill-never-regexps)) (push "^\\s-*\\*doom.+" clean-buffer-list-kill-never-regexps))
;; ;;
(defun +doom-dashboard/open () (defun +doom-dashboard/open (&optional startup)
"Open the dashboard buffer." "Open the dashboard buffer."
(interactive) (interactive)
(+doom-dashboard-reload) (when (or (not startup)
(switch-to-buffer (doom-fallback-buffer))) (one-window-p t)
(eq (buffer-name (window-buffer (car (window-list)))) "*scratch*"))
(+doom-dashboard-reload)
(switch-to-buffer (doom-fallback-buffer))))
(defun +doom-dashboard-p (&optional buffer) (defun +doom-dashboard-p (&optional buffer)
"Returns t if BUFFER is the dashboard buffer." "Returns t if BUFFER is the dashboard buffer."
@ -83,16 +84,20 @@
(and (buffer-live-p buffer) (and (buffer-live-p buffer)
(eq buffer (doom-fallback-buffer))))) (eq buffer (doom-fallback-buffer)))))
(defun +doom-dashboard-deferred-reload (&rest _) (defun +doom-dashboard-deferred-reload (frame)
"Reload the dashboard after a brief pause. This is necessary for new frames, "Reload the dashboard after a brief pause. This is necessary for new frames,
whose dimensions may not be fully initialized by the time this is run." whose dimensions may not be fully initialized by the time this is run."
(run-with-timer 0.1 nil #'+doom-dashboard-reload)) (run-with-timer 0.05 nil
(lambda (frame)
(with-selected-frame frame
(+doom-dashboard/open t)))
frame))
(defun +doom-dashboard-reload (&optional dir) (defun +doom-dashboard-reload (&optional dir)
"Update the DOOM scratch buffer (or create it, if it doesn't exist)." "Update the DOOM scratch buffer (or create it, if it doesn't exist)."
(when (and (not +doom-dashboard-inhibit-refresh) (when (and (not +doom-dashboard-inhibit-refresh)
(not (minibuffer-window-active-p (minibuffer-window))) (not (minibuffer-window-active-p (minibuffer-window)))
(get-buffer-window-list (doom-fallback-buffer) nil t)) (get-buffer-window-list (doom-fallback-buffer)))
(unless +doom-dashboard-modeline (unless +doom-dashboard-modeline
(setq +doom-dashboard--old-modeline mode-line-format) (setq +doom-dashboard--old-modeline mode-line-format)
(setq +doom-dashboard-modeline (setq +doom-dashboard-modeline