;;; dashboard.el --- My daashboard -*- lexical-binding: t; -*- ;;;###autoload (defvar dashboard-buffer-name "durand" "The name of the buffer for the dashboard.") ;;;###autoload (defun dashboard () "Create the dashboard buffer." (interactive) (let ((dashboard-exists-p (get-buffer dashboard-buffer-name)) (dashboard (get-buffer-create dashboard-buffer-name))) (cond (dashboard-exists-p (switch-to-buffer dashboard)) (t (with-current-buffer dashboard (let ((image (create-image "~/.doom.d/banners/default.png"))) (insert (center-string-in-width (propertize " " 'display image 'rear-nonsticky '(display)) (round (- (window-body-width) (* (car (image-size image)) 0.6)))))) (newline 5) (insert (center-string-in-width "Dashboard" (window-body-width))) (read-only-mode 1) (set 'mode-line-format '("%e" (:eval (modeline-format-dashboard))))))) dashboard)) (set 'initial-buffer-choice #'dashboard) ;;; Modify killing buffers ;;;###autoload (defun dont-kill-dashboard-fn () "Don't kill the dashboard buffer." (cond ((eq (current-buffer) (get-buffer dashboard-buffer-name)) (message "Don't kill the dashboard buffer.") nil) (t))) (add-hook 'kill-buffer-query-functions 'dont-kill-dashboard-fn) (provide 'dashboard) ;;; dashboard.el ends here.