All Projects → emacs-dashboard → Emacs Dashboard

emacs-dashboard / Emacs Dashboard

Licence: gpl-3.0
An extensible emacs dashboard

Programming Languages

elisp
30 projects

Projects that are alternatives of or similar to Emacs Dashboard

Counsel Spotify
Control Spotify App through Emacs
Stars: ✭ 49 (-92.94%)
Mutual labels:  hacktoberfest, emacs
Build Emacs For Macos
Somewhat hacky script to automate building of Emac.app on macOS.
Stars: ✭ 192 (-72.33%)
Mutual labels:  hacktoberfest, emacs
Emacs Doom Themes
A megapack of themes for GNU Emacs.
Stars: ✭ 1,706 (+145.82%)
Mutual labels:  hacktoberfest, emacs
Literate Calc Mode.el
🧮 Literate programming for M-x calc
Stars: ✭ 201 (-71.04%)
Mutual labels:  hacktoberfest, emacs
Vscode Emacs Mcx
Awesome Emacs Keymap - VSCode emacs keybinding with multi cursor support
Stars: ✭ 135 (-80.55%)
Mutual labels:  hacktoberfest, emacs
Lsp Mode
Emacs client/library for the Language Server Protocol
Stars: ✭ 3,691 (+431.84%)
Mutual labels:  hacktoberfest, emacs
Linq.ts
🌀LINQ for TypeScript
Stars: ✭ 687 (-1.01%)
Mutual labels:  hacktoberfest
Rich
Rich is a Python library for rich text and beautiful formatting in the terminal.
Stars: ✭ 31,664 (+4462.54%)
Mutual labels:  hacktoberfest
Mali
A minimalistic gRPC microservice framework for Node.js
Stars: ✭ 689 (-0.72%)
Mutual labels:  hacktoberfest
Contribute To Open Source
Learn the GitHub workflow by contributing code in a fun simulation project
Stars: ✭ 684 (-1.44%)
Mutual labels:  hacktoberfest
Tidb
TiDB is an open source distributed HTAP database compatible with the MySQL protocol
Stars: ✭ 29,871 (+4204.18%)
Mutual labels:  hacktoberfest
Date Fns
⏳ Modern JavaScript date utility library ⌛️
Stars: ✭ 27,650 (+3884.15%)
Mutual labels:  hacktoberfest
Mevn Cli
Light speed setup for MEVN(Mongo Express Vue Node) Apps
Stars: ✭ 696 (+0.29%)
Mutual labels:  hacktoberfest
Clj Refactor.el
A collection of Clojure refactoring functions for Emacs
Stars: ✭ 694 (+0%)
Mutual labels:  emacs
Symfony
The Symfony PHP framework
Stars: ✭ 26,220 (+3678.1%)
Mutual labels:  hacktoberfest
Wg Ui
WireGuard Web UI for self-serve client configurations, with optional auth.
Stars: ✭ 690 (-0.58%)
Mutual labels:  hacktoberfest
Open Source Mac Os Apps
🚀 Awesome list of open source applications for macOS. https://t.me/s/opensourcemacosapps
Stars: ✭ 28,908 (+4065.42%)
Mutual labels:  hacktoberfest
Shellhub
💻 ShellHub enables teams to easily access any Linux device behind firewall and NAT.
Stars: ✭ 686 (-1.15%)
Mutual labels:  hacktoberfest
H1st
The AI Application Platform We All Need. Human AND Machine Intelligence. Based on experience building AI solutions at Panasonic: robotics predictive maintenance, cold-chain energy optimization, Gigafactory battery mfg, avionics, automotive cybersecurity, and more.
Stars: ✭ 697 (+0.43%)
Mutual labels:  hacktoberfest
Powershell
PowerShell for every system!
Stars: ✭ 31,244 (+4402.02%)
Mutual labels:  hacktoberfest

[[https://circleci.com/gh/emacs-dashboard][https://github.com/emacs-dashboard/emacs-dashboard/workflows/CI/badge.svg]] [[https://melpa.org/#/dashboard][https://melpa.org/packages/dashboard-badge.svg]] [[https://stable.melpa.org/#/dashboard][https://stable.melpa.org/packages/dashboard-badge.svg]]

  • Emacs Dashboard

An extensible emacs startup screen showing you what's most important.

  • Features

    1. Displays an awesome Emacs banner!
    2. Recent files
    3. Bookmarks list
    4. Recent projects list (Depends on projectile or project.el package)
    5. Org mode agenda
    6. Register list
  • Screenshot

[[./etc/screenshot.png]]

  • Dependencies You will need the following packages which are all available on Melpa:
  1. page-break-lines - [[https://github.com/purcell/page-break-lines]]
  2. (optional) projectile - [[https://github.com/bbatsov/projectile]]
  3. (optional) all-the-icons - [[https://github.com/domtronn/all-the-icons.el]]
  • Usage

#+BEGIN_SRC shell M-x package-install RET dashboard #+END_SRC

#+BEGIN_SRC elisp (require 'dashboard) (dashboard-setup-startup-hook) ;; Or if you use use-package (use-package dashboard :ensure t :config (dashboard-setup-startup-hook)) #+END_SRC

By default, this will show three lists, recent files and bookmarks and org-agenda items.

The widget “projects”, which shows a list of recent projects, is not enabled by default since it depends on packages that might not be available. To activate the widget, set the variable =dashboard-projects-backend= to either ='projectile= (projectile, available from melpa) or ='project-el= (project.el, available from GNU elpa), then add an entry like =(projects . 5)= to the variable =dashboard-items=.

** Emacs Daemon

In addition to the above, configure =initial-buffer-choice= to show Dashboard in frames created with =emacsclient -c= as follows:

#+BEGIN_SRC elisp (setq initial-buffer-choice (lambda () (get-buffer "dashboard"))) #+END_SRC

  • Configuration

To update the banner or banner title

#+BEGIN_SRC elisp ;; Set the title (setq dashboard-banner-logo-title "Welcome to Emacs Dashboard") ;; Set the banner (setq dashboard-startup-banner [VALUE]) ;; Value can be ;; 'official which displays the official emacs logo ;; 'logo which displays an alternative emacs logo ;; 1, 2 or 3 which displays one of the text banners ;; "path/to/your/image.png" or "path/to/your/text.txt" which displays whatever image/text you would prefer

;; Content is not centered by default. To center, set (setq dashboard-center-content t)

;; To disable shortcut "jump" indicators for each section, set (setq dashboard-show-shortcuts nil) #+END_SRC

To customize which widgets are displayed, you can use the following snippet #+BEGIN_SRC elisp (setq dashboard-items '((recents . 5) (bookmarks . 5) (projects . 5) (agenda . 5) (registers . 5))) #+END_SRC This will add the recent files, bookmarks, projects, org-agenda and registers widgets to your dashboard each displaying 5 items.

To add your own custom widget is pretty easy, define your widget's callback function and add it to dashboard-items as such: #+BEGIN_SRC elisp (defun dashboard-insert-custom (list-size) (insert "Custom text")) (add-to-list 'dashboard-item-generators '(custom . dashboard-insert-custom)) (add-to-list 'dashboard-items '(custom) t) #+END_SRC

To add icons to the widget headings and their items: #+BEGIN_SRC elisp (setq dashboard-set-heading-icons t) (setq dashboard-set-file-icons t) #+END_SRC

To modify heading icons with another icon from all-the-icons octicons: #+BEGIN_SRC elisp (dashboard-modify-heading-icons '((recents . "file-text") (bookmarks . "book"))) #+END_SRC

To show navigator below the banner: #+BEGIN_SRC emacs-lisp (setq dashboard-set-navigator t) #+END_SRC

To customize the buttons of the navigator like this: #+BEGIN_SRC emacs-lisp ;; Format: "(icon title help action face prefix suffix)" (setq dashboard-navigator-buttons `(;; line1 ((,(all-the-icons-octicon "mark-github" :height 1.1 :v-adjust 0.0) "Homepage" "Browse homepage" (lambda (&rest _) (browse-url "homepage"))) ("★" "Star" "Show stars" (lambda (&rest _) (show-stars)) warning) ("?" "" "?/h" #'show-help nil "<" ">")) ;; line 2 ((,(all-the-icons-faicon "linkedin" :height 1.1 :v-adjust 0.0) "Linkedin" "" (lambda (&rest _) (browse-url "homepage"))) ("⚑" nil "Show flags" (lambda (&rest _) (message "flag")) error)))) #+END_SRC

To show info about the packages loaded and the init time: #+BEGIN_SRC elisp (setq dashboard-set-init-info t) #+END_SRC

Also, the message can be customized like this: #+BEGIN_SRC elisp (setq dashboard-init-info "This is an init message!") #+END_SRC

A randomly selected footnote will be displayed. To disable it: #+BEGIN_SRC elisp (setq dashboard-set-footer nil) #+END_SRC

To customize it and customize its icon;

#+BEGIN_SRC elisp (setq dashboard-footer-messages '("Dashboard is pretty cool!")) (setq dashboard-footer-icon (all-the-icons-octicon "dashboard" :height 1.1 :v-adjust -0.05 :face 'font-lock-keyword-face)) #+END_SRC

To use it with [[https://github.com/ericdanan/counsel-projectile][counsel-projectile]] or [[https://github.com/bbatsov/persp-projectile][persp-projectile]]

#+begin_src elisp (setq dashboard-projects-switch-function 'counsel-projectile-switch-project-by-name) #+end_src

Or

#+begin_src elisp (setq dashboard-projects-switch-function 'projectile-persp-switch-project) #+end_src

** Org mode’s agenda

To display today’s agenda items on the dashboard, add agenda to dashboard-items:

#+BEGIN_SRC elisp (add-to-list 'dashboard-items '(agenda) t) #+END_SRC

To show agenda for the upcoming seven days set the variable dashboard-week-agenda to t. #+BEGIN_SRC elisp (setq dashboard-week-agenda t) #+END_SRC

Note that setting list-size for the agenda list is intentionally ignored; all agenda items for the current day will be displayed.

To customize which categories from the agenda items should be visible in the dashboard set the dashboard-org-agenda-categories to the list of categories you need.

#+BEGIN_SRC elisp (setq dashboard-org-agenda-categories '("Tasks" "Appointments")) #+END_SRC

By default org-agenda entries are filter by time, only showing those task with DEADLINE or SCHEDULE-TIME. To show all agenda entries (except DONE)

#+begin_src elisp (setq dashboard-filter-agenda-entry 'dashboard-no-filter-agenda) #+end_src

To have an extra filter, MATCH parameter is exposed as dashboard-match-agenda-entry variable, by default is nil #+begin_quote ‘MATCH’ is a tags/property/TODO match. Org iterates only matched headlines. Org iterates over all headlines when MATCH is nil or t. #+end_quote

See [[https://www.gnu.org/software/emacs/manual/html_node/org/Using-the-mapping-API.html][Org Manual]] for more information.

Once the agenda appears in the dashboard, org-agenda-files stay open. With (setq dashboard-agenda-release-buffers t) the org files are close. Note that this could slow down the dashboard buffer refreshment.

** Faces

It is possible to customize Dashboard's appearance using the following faces:

  • dashboard-banner-logo-title :: Highlights the banner title.
  • dashboard-text-banner :: Highlights text banners.
  • dashboard-heading :: Highlights widget headings.
  • dashboard-items-face :: Highlights widget items.
  • Shortcuts

You can use any of the following shortcuts inside Dashboard

|----------------------------+------------------| | Shortcut | Function | |----------------------------+------------------| | Tab Or C-i | Next Item | | Shift-Tab | Previous Item | | Return / Mouse Click / C-m | Open | | r | Recent files | | m | Bookmarks | | p | Projects | | a | Org-Mode Agenda | | e | Registers | | g | Refresh contents | | { | Previous section | | } | Next section | |----------------------------+------------------|

  • Wish List

    1. [X] Center content
    2. [X] More banner options
    3. [X] Customizing the list of widgets to display
    4. [X] Integrate Org-mode's agenda
    5. [ ] Listing Perspectives
  • Contributions

To contribute your changes to this package, please do the following:

  1. Fork the repo
  2. Clone a local copy
  3. Make your changes
  4. Push and create your PR

When working on this package, it's typical to uninstall dashboard, develop your changes and then install this as "development version".

This is accomplished with the following steps:

#+BEGIN_SRC shell

In emacs:

M-x package-delete dashboard- RET #+END_SRC

#+BEGIN_SRC shell make build make install #+END_SRC

** Prerequisites

  • [[https://github.com/cask/cask][Cask]]
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].