{"id":13443195,"url":"https://github.com/rougier/mu4e-dashboard","last_synced_at":"2025-12-29T23:39:21.881Z","repository":{"id":40369610,"uuid":"313433881","full_name":"rougier/mu4e-dashboard","owner":"rougier","description":"A dashboard for mu4e (mu for emacs) ","archived":false,"fork":false,"pushed_at":"2024-01-22T12:46:05.000Z","size":1467,"stargazers_count":473,"open_issues_count":22,"forks_count":43,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-03-15T22:32:54.022Z","etag":null,"topics":["emacs","mail","mu4e","org-mode"],"latest_commit_sha":null,"homepage":"","language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rougier.png","metadata":{"files":{"readme":"README.org","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2020-11-16T21:40:37.000Z","updated_at":"2025-03-11T02:27:35.000Z","dependencies_parsed_at":"2024-04-08T16:59:02.612Z","dependency_job_id":"6fb2c621-398f-4d5d-bd33-2f5f6d496f99","html_url":"https://github.com/rougier/mu4e-dashboard","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rougier%2Fmu4e-dashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rougier%2Fmu4e-dashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rougier%2Fmu4e-dashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rougier%2Fmu4e-dashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rougier","download_url":"https://codeload.github.com/rougier/mu4e-dashboard/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244649690,"owners_count":20487469,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["emacs","mail","mu4e","org-mode"],"created_at":"2024-07-31T03:01:57.365Z","updated_at":"2025-12-29T23:39:21.827Z","avatar_url":"https://github.com/rougier.png","language":"Emacs Lisp","funding_links":[],"categories":["Emacs Lisp"],"sub_categories":[],"readme":"\n*mu4e Dashboard*\n\nmu4e dashboard provides a new =mu4e= org link type that allows to execute\nvarious mu4e queries when clicked. Such links can be organised into a\ndashboard, by simply writing an org file as shown below:\n\n*Screenshot 1*: Full page dashboard\n\n[[./dashboard.png]]\n\n*Screenshot 2*: Side dashboard\n\n[[./dashboard-2.png]]\n\n** Installation\n\nEvaluate the buffer and you're good to go. It is your responsibility to\nwrite an org file with links pointing to varius queries on your mailboxes.\n\n** Configuration\n\n*** Links\n\nThe link syntax is quite intuitive:\n\n#+begin_src org\n[[mu:query|format|count][description]]\n#+end_src\n\n=query= must be a valid mu4e query and =count= (optional) is the maximum\nnumber of results to be returned. When the link is clicked,\n=mu4e-headers-search= is called with the proper query.\n\n#+begin_src org\n[[mu:flag:unread][All unread]]\n[[mu:flag:unread||10][Last 10 unread]]\n#+end_src\n\n=format= can be used to specify that =query= results are to be counted in\norder to update the description using the given format:\n\n#+begin_src org\n[[mu:flag:unread|%3d][---]]\n#+end_src\n\nWith the example above, when the link is cliked, the =---= part will be\nreplaced by the number of unread mails.\n\n*** Using mu4e-bookmarks\n\nQueries can include references to mu4e-bookmarks. A bookmark is denoted with\n~bm:\u003cbookmarkName\u003e~\n \n~bookmarkName~ cannot contain spaces nor ]. A query can contain several bookmarks,\nbut their expansion is not recursive.\n\nFor example, assuming the following bookmark exists:\n\n#+begin_src emacs-lisp   :exports both\n(add-to-list 'mu4e-bookmarks\n     '(:name \"Unread\"\n           :query \"flag:unread and not flag:trashed\"\n           :key ?f)\n     t)\n#+end_src\n\nthe dashboard query:\n\n#+begin_src emacs-lisp   :exports both\nmu:bm:Unread and date:7d..now\n#+end_src\n\nwill be expanded to:\n\n#+begin_src emacs-lisp   :exports both\nmu:(flag:unread and not flag:trashed) and date:7d..now\n#+end_src\n\nNote that parenthesis are added around the bookmark to make sure the expansion is hygienic.\n\n*** Key bindings\n\nKeybindings can be configured using the =KEYMAP= keyword in your org file:\n\n#+begin_src org\n#+KEYMAP: key | elisp function\n#+end_src\n\nFor example, if you want to bind =;= to context switch, you would write:\n\n#+begin_src org\n#+KEYMAP: ; | mu4e-context-switch\n#+end_src\n\n*** Query test\n\nIn the provided [[dashboard.org]], there's a definition for a mu query that can be\ncalled directly inside the org file using [[https://orgmode.org/worg/org-contrib/babel/][org-babel]]. This can be convenient if\nyou want to test a query before creating a link. Usage is quite simple:\n\n#+begin_src org\n#+CALL: query(flag:unread, 10)\n#+RESULTS:\n#+end_src\n\nJust type *C-c C-c* on the call line and you should see query results under the\nRESULTS line.\n\n** Usage\n\nTo activate the dashboard, type =mu4e-dashboard-mode=. This will turn on\n=mu4e-dashboard-mode= minor mode and install any custom keybindings in\nthe current buffer.\n\nTo edit the org file, you'll need to turn off =mu4e-dashboard-mode=.\n\n\n\n** Related\n\nThere is a fork of this software which is designed to be used with\n[[https://notmuchmail.org/][notmuch]] instead of with mu4e. It replaces the standard =notmuch-hello=\ndashboard with an org-mode version. You can find it [[https://git.sr.ht/~inwit/org-notmuch-hello][here]].\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frougier%2Fmu4e-dashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frougier%2Fmu4e-dashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frougier%2Fmu4e-dashboard/lists"}