Home / Emacs / Notmuch Hello / My saved searches
Step 2: Update
(with-eval-after-load 'notmuch
(let* ((functions #'(my-notmuch-search-area-banks
my-notmuch-search-area-school
my-notmuch-search-area-services
my-notmuch-search-area-stores
my-notmuch-search-area-work
my-notmuch-search-git-citar
my-notmuch-search-git-corfu
my-notmuch-search-git-gptel
my-notmuch-search-git-magit
my-notmuch-search-git-marginalia
my-notmuch-search-git-mentor
my-notmuch-search-git-sensor-watch
my-notmuch-search-git-textbooks
my-notmuch-search-git-vertico
my-notmuch-search-git-other
my-notmuch-search-list-egghead-games
my-notmuch-search-list-emacs-bug
my-notmuch-search-list-emacs-devel
my-notmuch-search-list-emacs-help
my-notmuch-search-list-emacs-org
my-notmuch-search-list-emacs-tangents
my-notmuch-search-list-emms
my-notmuch-search-list-fennel
my-notmuch-search-list-geiser
my-notmuch-search-list-lua
my-notmuch-search-list-modus-themes
my-notmuch-search-list-notmuch
my-notmuch-search-list-s7
my-notmuch-search-maildir-all-drafts
my-notmuch-search-maildir-all-sent
my-notmuch-search-maildir-spam
my-notmuch-search-misc-youtube))
(named-sexps
(mapcar (lambda (search)
(if-let* ((doc-regexp "Notmuch saved search '\\\(.*\\\)'.")
(doc (documentation search t))
(name (and (string-match doc-regexp doc)
(match-string 1 doc))))
(cons name (funcall search))
(user-error
"Function `%s' documentation not matching: %s"
search doc-regexp)))
functions))
(inbox
(list :name "! Inbox"
:query (my-notmuch-query
`(and (tag unread)
(not (or ,@(mapcar #'cdr named-sexps)))))))
(searches
(mapcar (lambda (sexp)
(list :name (car sexp)
:query (my-notmuch-query (cdr sexp))))
named-sexps)))
(setopt notmuch-saved-searches
(cons inbox searches))))