diff options
| author | Craig Jennings <c@cjennings.net> | 2025-11-15 05:54:34 -0600 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2025-11-15 05:54:34 -0600 |
| commit | 158643275b985d5876e11db2e8c4c1b7e27b37b8 (patch) | |
| tree | 2ba170c74e2d2a686b991ba060d18daee74c8ff4 /modules | |
| parent | b7a5f272fa0205818bd028b6bed9b828fc441aff (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.el | 69 |
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. |
