summaryrefslogtreecommitdiff
path: root/dashboard.el
diff options
context:
space:
mode:
Diffstat (limited to 'dashboard.el')
-rw-r--r--dashboard.el50
1 files changed, 50 insertions, 0 deletions
diff --git a/dashboard.el b/dashboard.el
new file mode 100644
index 0000000..a8f753f
--- /dev/null
+++ b/dashboard.el
@@ -0,0 +1,50 @@
+;;; 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.