;;; config-dashboard.el --- Generated package (no.5) from my config -*- lexical-binding: t; -*- ;; ;; Copyright (C) 2024 TEC ;; ;; Author: TEC <https://code.tecosaur.net/tec> ;; Maintainer: TEC <contact@tecosaur.net> ;; Created: June 26, 2024 ;; Modified: June 26, 2024 ;; Version: 2024.06.26 ;; Homepage: https://code.tecosaur.net/tec/emacs-config ;; Package-Requires: ((emacs "29.1")) ;; ;; This file is not part of GNU Emacs. ;; ;;; Commentary: ;; ;; Generated package (no.5) from my config. ;; ;; During generation, dependency on other aspects of my configuration and ;; packages is inferred via (regexp-based) static analysis. While this seems ;; to do a good job, this method is imperfect. This code likely depends on ;; utilities provided by Doom, and if you try to run it in isolation you may ;; discover the code makes more assumptions. ;; ;; That said, I've found pretty good results so far. ;; ;;; Code: (require 'fancy-splash) (require 'splash-phrases) (defun doom-dashboard-draw-ascii-emacs-banner-fn () (let* ((banner '(",---.,-.-.,---.,---.,---." "|---'| | |,---|| `---." "`---'` ' '`---^`---'`---'")) (longest-line (apply #'max (mapcar #'length banner)))) (put-text-property (point) (dolist (line banner (point)) (insert (+doom-dashboard--center +doom-dashboard--width (concat line (make-string (max 0 (- longest-line (length line))) 32))) "\n")) 'face 'doom-dashboard-banner))) (unless (display-graphic-p) ; for some reason this messes up the graphical splash screen atm (setq +doom-dashboard-ascii-banner-fn #'doom-dashboard-draw-ascii-emacs-banner-fn)) (defun +doom-dashboard-setup-modified-keymap () (setq +doom-dashboard-mode-map (make-sparse-keymap)) (map! :map +doom-dashboard-mode-map :desc "Find file" :ng "f" #'find-file :desc "Recent files" :ng "r" #'consult-recent-file :desc "Config dir" :ng "C" #'doom/open-private-config :desc "Open config.org" :ng "c" (cmd! (find-file (expand-file-name "config.org" doom-user-dir))) :desc "Open org-mode root" :ng "O" (cmd! (find-file (expand-file-name "lisp/org/" doom-user-dir))) :desc "Open dotfile" :ng "." (cmd! (doom-project-find-file "~/.config/")) :desc "Notes (roam)" :ng "n" #'org-roam-node-find :desc "Switch buffer" :ng "b" #'+vertico/switch-workspace-buffer :desc "Switch buffers (all)" :ng "B" #'consult-buffer :desc "IBuffer" :ng "i" #'ibuffer :desc "Previous buffer" :ng "p" #'previous-buffer :desc "Set theme" :ng "t" #'consult-theme :desc "Quit" :ng "Q" #'save-buffers-kill-terminal :desc "Show keybindings" :ng "h" (cmd! (which-key-show-keymap '+doom-dashboard-mode-map)))) (add-transient-hook! #'+doom-dashboard-mode (+doom-dashboard-setup-modified-keymap)) (add-transient-hook! #'+doom-dashboard-mode :append (+doom-dashboard-setup-modified-keymap)) (add-hook! 'doom-init-ui-hook :append (+doom-dashboard-setup-modified-keymap)) (map! :leader :desc "Dashboard" "d" #'+doom-dashboard/open) (defun +doom-dashboard-benchmark-line () "Insert the load time line." (when doom-init-time (insert "\n\n" (propertize (+doom-dashboard--center +doom-dashboard--width (doom-display-benchmark-h 'return)) 'face 'doom-dashboard-loaded)))) (remove-hook 'doom-after-init-hook #'doom-display-benchmark-h) (setq +doom-dashboard-functions (list #'doom-dashboard-widget-banner #'+doom-dashboard-benchmark-line #'splash-phrase-dashboard-insert)) (defun +doom-dashboard-tweak (&optional _) (with-current-buffer (get-buffer +doom-dashboard-name) (setq-local line-spacing 0.2 mode-line-format nil mode-name "" evil-normal-state-cursor (list nil)))) (add-hook '+doom-dashboard-mode-hook #'+doom-dashboard-tweak) (add-hook 'doom-after-init-hook #'+doom-dashboard-tweak 1) (setq +doom-dashboard-name "► Doom" doom-fallback-buffer-name +doom-dashboard-name) (add-hook 'window-size-change-functions #'fancy-splash-apply-appropriate-image) (add-hook 'doom-load-theme-hook #'fancy-splash-apply-appropriate-image) (provide 'config-dashboard) ;;; config-dashboard.el ends here