Rudy’s OBTF Rudolf Adamkovič

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))))

© 2025 Rudolf Adamkovič under GNU General Public License version 3.
Made with Emacs and secret alien technologies of yesteryear.