:ui doom-dashboard

Welcome to your doom

1. Description

This module adds a minimalistic, Atom-inspired dashboard to Emacs.

Besides eye candy, the dashboard serves two other purposes:

  1. To improve Doom’s startup times (the dashboard is lighter than the scratch buffer in many cases).
  2. And to preserve the “last open directory” you were in. Occasionally, I kill the last buffer in my project and I end up who-knows-where (in the working directory of another buffer/project). It can take some work to find my way back to where I was. Not with the Dashboard.

    Since the dashboard cannot be killed, and it remembers the working directory of the last open buffer, M-x find-file will work from the directory I expect.

1.1. Maintainers

1.2. Module flags

This module has no flags.

1.3. Packages

This module doesn’t install any packages.

1.4. Hacks

No hacks documented for this module.

2. Prerequisites

This module only requires that all-the-icons’s icon fonts are installed.

It should’ve been installed when you first installed Doom, but M-x all-the-icons-install-fonts will install them again.

3. TODO Usage

This module has no usage documentation yet. Write some?

4. Configuration

4.1. A custom banner

To use a custom image as your banner, change fancy-splash-image:

(setq fancy-splash-image "~/my/banners/image.png")

Doom will fall back to its ASCII banner in Terminal Emacs. To replace the ASCII banner, replace the doom-dashboard-widget-banner function in +doom-dashboard-functions with a function that inserts your new banner into the current file.

4.2. Adding text to the dashboard

Doom’s dashboard iterates over +doom-dashboard-functions when it is told to redraw. Add your own functions to operate on the buffer and potentially add whatever you like to Doom’s splash screen.

Keep in mind that inserting text from expensive sources, e.g. your org agenda, will negate most of Doom’s startup benefits.

4.3. Customizing Faces

Doom’s dashboard defaults to inheriting faces set by the current theme. If you wish to customize it independently of the theme (or just inherit a different color from the theme) you can make use of custom-set-faces! or custom-theme-set-faces!

(custom-set-faces!
  '(doom-dashboard-banner :foreground "red" :background "#000000" :weight bold)
  '(doom-dashboard-footer :inherit font-lock-constant-face)
  '(doom-dashboard-footer-icon :inherit all-the-icons-red)
  '(doom-dashboard-loaded :inherit font-lock-warning-face)
  '(doom-dashboard-menu-desc :inherit font-lock-string-face)
  '(doom-dashboard-menu-title :inherit font-lock-function-name-face))

or for a per-theme setting

(custom-theme-set-faces! 'doom-tomorrow-night
  '(doom-dashboard-banner :foreground "red" :background "#000000" :weight bold)
  '(doom-dashboard-footer :inherit font-lock-constant-face)
  '(doom-dashboard-footer-icon :inherit all-the-icons-red)
  '(doom-dashboard-loaded :inherit font-lock-warning-face)
  '(doom-dashboard-menu-desc :inherit font-lock-string-face)
  '(doom-dashboard-menu-title :inherit font-lock-function-name-face))

5. Troubleshooting

There are no known problems with this module. Report one?

6. TODO Appendix

This module has no appendix yet. Write one?