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
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

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