summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2025-11-15 05:54:34 -0600
committerCraig Jennings <c@cjennings.net>2025-11-15 05:54:34 -0600
commit158643275b985d5876e11db2e8c4c1b7e27b37b8 (patch)
tree2ba170c74e2d2a686b991ba060d18daee74c8ff4 /modules
parentb7a5f272fa0205818bd028b6bed9b828fc441aff (diff)
feat(dashboard): Comprehensive dashboard navigation improvements
- Add single-key navigation (e, c, a, b, f, r, i, t, d) for all dashboard items - Add new navigator buttons: Code (projects), Agenda, Terminal - Reorganize buttons into two balanced rows (5 top, 4 bottom) - Remove bracket decoration around buttons for cleaner look - Add proper spacing between buttons for better readability - Rename labels: "Feeds" → "RSS/Feeds", "Files" → "Directory/Files" - Disable package count and startup time display - Disable 'q' keybinding to prevent accidental dashboard quit Navigator buttons now include: Row 1: Code, Email, Agenda, Flashcards, Books Row 2: RSS/Feeds, IRC, Terminal, Directory/Files 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Diffstat (limited to 'modules')
-rw-r--r--modules/dashboard-config.el69
1 files changed, 55 insertions, 14 deletions
diff --git a/modules/dashboard-config.el b/modules/dashboard-config.el
index 6e78038c..918acdf2 100644
--- a/modules/dashboard-config.el
+++ b/modules/dashboard-config.el
@@ -83,7 +83,7 @@
dashboard-insert-newline
dashboard-insert-newline
dashboard-insert-navigator
- dashboard-insert-init-info
+ ;; dashboard-insert-init-info ; Disabled: package count and startup time
dashboard-insert-newline
dashboard-insert-newline
dashboard-insert-items
@@ -109,37 +109,78 @@
;; == navigation
(setq dashboard-set-navigator t)
(setq dashboard-navigator-buttons
- `(((,(nerd-icons-faicon "nf-fa-envelope")
+ `(;; Row 1
+ ((,(nerd-icons-faicon "nf-fa-code")
+ "Code" "Switch Project"
+ (lambda (&rest _) (projectile-switch-project))
+ nil " " "")
+
+ (,(nerd-icons-faicon "nf-fa-envelope")
"Email" "Mu4e Email Client"
- (lambda (&rest _) (mu4e)))
+ (lambda (&rest _) (mu4e))
+ nil " " "")
- (,(nerd-icons-faicon "nf-fae-book_open_o")
- "Books" "Calibre Ebook Reader"
- (lambda (&rest _) (calibredb)))
+ (,(nerd-icons-mdicon "nf-md-calendar")
+ "Agenda" "Main Org Agenda"
+ (lambda (&rest _) (cj/main-agenda-display))
+ nil " " "")
(,(nerd-icons-mdicon "nf-md-school")
"Flashcards" "Org-Drill"
- (lambda (&rest _) (cj/drill-start)))
+ (lambda (&rest _) (cj/drill-start))
+ nil " " "")
+
+ (,(nerd-icons-faicon "nf-fae-book_open_o")
+ "Books" "Calibre Ebook Reader"
+ (lambda (&rest _) (calibredb))
+ nil " " ""))
- (,(nerd-icons-faicon "nf-fa-rss_square")
- "Feeds" "Elfeed Feed Reader"
- (lambda (&rest _) (cj/elfeed-open)))
+ ;; Row 2
+ ((,(nerd-icons-faicon "nf-fa-rss_square")
+ "RSS/Feeds" "Elfeed Feed Reader"
+ (lambda (&rest _) (cj/elfeed-open))
+ nil " " "")
(,(nerd-icons-faicon "nf-fa-comments")
"IRC" "Emacs Relay Chat"
- (lambda (&rest _) (cj/erc-switch-to-buffer-with-completion)))
+ (lambda (&rest _) (cj/erc-switch-to-buffer-with-completion))
+ nil " " "")
+
+ (,(nerd-icons-devicon "nf-dev-terminal")
+ "Terminal" "Launch VTerm"
+ (lambda (&rest _) (vterm))
+ nil " " "")
;; (,(nerd-icons-faicon "nf-fae-telegram")
;; "Telegram" "Telega Chat Client"
- ;; (lambda (&rest _) (telega)))
+ ;; (lambda (&rest _) (telega))
+ ;; nil " " "")
(,(nerd-icons-faicon "nf-fa-folder_o")
- "Files" "Dirvish File Manager"
- (lambda (&rest _) (dirvish user-home-dir))))))
+ "Directory/Files" "Dirvish File Manager"
+ (lambda (&rest _) (dirvish user-home-dir))
+ nil " " ""))))
;; == content
(setq dashboard-show-shortcuts nil) ;; don't show dashboard item abbreviations
) ;; end use-package dashboard
+;; ------------------------ Dashboard Keybindings ------------------------------
+
+(with-eval-after-load 'dashboard
+ ;; Disable 'q' to quit dashboard
+ (define-key dashboard-mode-map (kbd "q") nil)
+
+ ;; Dashboard launcher keybindings
+ (define-key dashboard-mode-map (kbd "e") (lambda () (interactive) (mu4e)))
+ (define-key dashboard-mode-map (kbd "c") (lambda () (interactive) (projectile-switch-project)))
+ (define-key dashboard-mode-map (kbd "a") (lambda () (interactive) (cj/main-agenda-display)))
+ (define-key dashboard-mode-map (kbd "b") (lambda () (interactive) (calibredb)))
+ (define-key dashboard-mode-map (kbd "f") (lambda () (interactive) (cj/drill-start)))
+ (define-key dashboard-mode-map (kbd "r") (lambda () (interactive) (cj/elfeed-open)))
+ (define-key dashboard-mode-map (kbd "i") (lambda () (interactive) (cj/erc-switch-to-buffer-with-completion)))
+ (define-key dashboard-mode-map (kbd "t") (lambda () (interactive) (vterm)))
+ (define-key dashboard-mode-map (kbd "d") (lambda () (interactive) (dirvish user-home-dir))))
+
(provide 'dashboard-config)
;;; dashboard-config.el ends here.