Commit 3372dcde24e7

Vincent Demeester <vincent@sbr.pm>
2026-01-15 16:17:18
feat(emacs): add comprehensive mu4e bookmark collection
Add 25 organized mu4e bookmarks covering: - Priority & unread mail (u, U, f, t, w) - RedHat projects (p, k, s, d, c) - Work communication (m, a, l) - Trackers & automation (j, z, T, B) - Personal folders (g, r, n, h) - Sent & drafts (S, D) - Advanced queries (A, L, M) - Recent activity (W, P) Also updated oldest-first sorting configuration to include unread, flagged, and direct message bookmarks. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent f83a95e
Changed files (1)
dots
.config
emacs
dots/.config/emacs/init.el
@@ -2121,7 +2121,7 @@ Add this function to the `after-save-hook'."
   (declare-function mu4e-file-is-note-p "mu4e")
   :custom
   (mu4e-mu-home (expand-file-name "mu" (or (getenv "XDG_DATA_HOME")
-                                            (expand-file-name ".local/share" (getenv "HOME")))))
+                                           (expand-file-name ".local/share" (getenv "HOME")))))
   (mu4e-context-policy 'pick-first)
   (mu4e-change-filenames-when-moving t)
   (mu4e-attachment-dir "~/desktop/downloads")
@@ -2232,24 +2232,165 @@ Add this function to the `after-save-hook'."
 				   ;; (mu4e-get-mail-command . "mbsync redhat")
 				   ))
 			 ))
+  ;; === Priority & Unread ===
   (add-to-list 'mu4e-bookmarks
-	       '( :name  "All Inboxes"
-		  :query "maildir:/icloud/INBOX OR maildir:/gmail/INBOX OR maildir:/redhat/INBOX"
-		  :key   ?b))
+	       '(:name "All Inboxes"
+		       :query "maildir:/icloud/Inbox OR maildir:/gmail/INBOX OR maildir:/redhat/Inbox"
+		       :key ?b))
+
+  (add-to-list 'mu4e-bookmarks
+	       '(:name "Unread (All)"
+		       :query "flag:unread AND NOT flag:trashed"
+		       :key ?u))
+
+  (add-to-list 'mu4e-bookmarks
+	       '(:name "Unread Inboxes"
+		       :query "flag:unread AND (maildir:/icloud/Inbox OR maildir:/gmail/INBOX OR maildir:/redhat/Inbox)"
+		       :key ?U))
+
+  (add-to-list 'mu4e-bookmarks
+	       '(:name "Flagged"
+		       :query "flag:flagged AND NOT flag:trashed"
+		       :key ?f))
+
+  (add-to-list 'mu4e-bookmarks
+	       '(:name "Today"
+		       :query "date:today..now AND NOT flag:trashed"
+		       :key ?t))
+
+  (add-to-list 'mu4e-bookmarks
+	       '(:name "This Week"
+		       :query "date:7d..now AND NOT flag:trashed"
+		       :key ?w))
+
+  ;; === Work - RedHat Projects ===
+  (add-to-list 'mu4e-bookmarks
+	       '(:name "Pipelines/Tekton"
+		       :query "maildir:/redhat/pipelines/* OR maildir:/redhat/tekton/*"
+		       :key ?p))
+
+  (add-to-list 'mu4e-bookmarks
+	       '(:name "Konflux"
+		       :query "maildir:/redhat/konflux/*"
+		       :key ?k))
+
+  (add-to-list 'mu4e-bookmarks
+	       '(:name "Serverless (Knative)"
+		       :query "maildir:/redhat/serverless/* OR maildir:/redhat/knative/*"
+		       :key ?s))
+
+  (add-to-list 'mu4e-bookmarks
+	       '(:name "DevTools Team"
+		       :query "maildir:/redhat/devtools/*"
+		       :key ?d))
+
+  (add-to-list 'mu4e-bookmarks
+	       '(:name "Cloud & Insights"
+		       :query "maildir:/redhat/cloud/* OR maildir:/redhat/insights/*"
+		       :key ?c))
+
+  ;; === Work - Management & Communication ===
+  (add-to-list 'mu4e-bookmarks
+	       '(:name "Managers"
+		       :query "maildir:/redhat/managers/*"
+		       :key ?m))
+
+  (add-to-list 'mu4e-bookmarks
+	       '(:name "Announcements"
+		       :query "maildir:/redhat/announce/* OR maildir:/redhat/area/*"
+		       :key ?a))
+
+  (add-to-list 'mu4e-bookmarks
+	       '(:name "Local (France/Remote)"
+		       :query "maildir:/redhat/local/*"
+		       :key ?l))
+
+  ;; === Work - Trackers & Automation ===
+  (add-to-list 'mu4e-bookmarks
+	       '(:name "Jira Tickets"
+		       :query "maildir:/redhat/_tracker/jira/*"
+		       :key ?j))
+
+  (add-to-list 'mu4e-bookmarks
+	       '(:name "All Trackers"
+		       :query "maildir:/redhat/_tracker/*"
+		       :key ?T))
+
+  (add-to-list 'mu4e-bookmarks
+	       '(:name "Build Notifications"
+		       :query "maildir:/redhat/_build/*"
+		       :key ?B))
+
+  (add-to-list 'mu4e-bookmarks
+	       '(:name "Receipts"
+		       :query "maildir:/icloud/Receipts/*"
+		       :key ?r))
+
+  (add-to-list 'mu4e-bookmarks
+	       '(:name "Newsletters"
+		       :query "maildir:/icloud/Newsletters/*"
+		       :key ?n))
+
+  (add-to-list 'mu4e-bookmarks
+	       '(:name "House Hunting"
+		       :query "maildir:\"/icloud/house hunting/*\""
+		       :key ?h))
+
+  ;; === Sent & Drafts ===
+  (add-to-list 'mu4e-bookmarks
+	       '(:name "Sent (All)"
+		       :query "maildir:\"/icloud/Sent Messages\" OR maildir:\"/gmail/[Gmail]/Sent Mail\" OR maildir:\"/redhat/[Gmail]/Sent Mail\""
+		       :key ?S))
+
+  (add-to-list 'mu4e-bookmarks
+	       '(:name "Drafts (All)"
+		       :query "maildir:/icloud/Drafts OR maildir:\"/gmail/[Gmail]/Drafts\" OR maildir:\"/redhat/[Gmail]/Drafts\""
+		       :key ?D))
+
+  ;; === Advanced Queries ===
+  (add-to-list 'mu4e-bookmarks
+	       '(:name "With Attachments"
+		       :query "flag:attach AND NOT flag:trashed"
+		       :key ?A))
+
+  (add-to-list 'mu4e-bookmarks
+	       '(:name "Large Emails (>1MB)"
+		       :query "size:1M..500M AND NOT flag:trashed"
+		       :key ?L))
+
+  (add-to-list 'mu4e-bookmarks
+	       '(:name "To Me Directly"
+		       :query "(to:vincent@demeester.fr OR to:vdemeest@redhat.com OR to:vinc.demeester@gmail.com) AND NOT flag:trashed AND NOT maildir:/_tracker/*"
+		       :key ?M))
+
+  ;; === Recent Activity ===
+  (add-to-list 'mu4e-bookmarks
+	       '(:name "Unread This Week (Work)"
+		       :query "flag:unread AND date:7d..now AND maildir:/redhat/*"
+		       :key ?W))
+
+  (add-to-list 'mu4e-bookmarks
+	       '(:name "Unread This Week (Personal)"
+		       :query "flag:unread AND date:7d..now AND (maildir:/icloud/* OR maildir:/gmail/*)"
+		       :key ?P))
 
   ;; Custom sorting: oldest-first for active folders, newest-first for archives
   (declare-function mu4e-search-change-sorting "mu4e")
   (declare-function vde/mu4e-set-sort-order-by-bookmark nil)
 
   (defcustom vde/mu4e-oldest-first-bookmarks '(
-    "maildir:/icloud/INBOX"
-    "maildir:/gmail/INBOX"
-    "maildir:/redhat/INBOX"
-    "maildir:/icloud/INBOX OR maildir:/gmail/INBOX OR maildir:/redhat/INBOX"  ; All Inboxes
-    "maildir:/icloud/Drafts"
-    "maildir:/gmail/[Gmail]/Drafts"
-    "maildir:/redhat/[Gmail]/Drafts"
-  )
+					       "maildir:/icloud/Inbox"
+					       "maildir:/gmail/INBOX"
+					       "maildir:/redhat/Inbox"
+					       "maildir:/icloud/Inbox OR maildir:/gmail/INBOX OR maildir:/redhat/Inbox"  ; All Inboxes
+					       "maildir:/icloud/Drafts"
+					       "maildir:/gmail/[Gmail]/Drafts"
+					       "maildir:/redhat/[Gmail]/Drafts"
+					       "flag:unread AND NOT flag:trashed"  ; Unread (All)
+					       "flag:unread AND (maildir:/icloud/Inbox OR maildir:/gmail/INBOX OR maildir:/redhat/Inbox)"  ; Unread Inboxes
+					       "flag:flagged AND NOT flag:trashed"  ; Flagged
+					       "(to:vincent@demeester.fr OR to:vdemeest@redhat.com OR to:vinc.demeester@gmail.com) AND NOT flag:trashed AND NOT maildir:/_tracker/*"  ; To Me Directly
+					       )
     "Bookmarks/folders to sort oldest-first (ascending).
 Active folders like INBOX and Drafts show oldest messages first to prioritize
 pending items by age. All other folders (Sent, Archives) will sort newest-first."
@@ -2295,8 +2436,8 @@ the appropriate file in ~/.local/share/imapfilter-rules/"
                           (concat "@" (replace-regexp-in-string "^.*@" "" from-email))))
               ("subject" (read-string "Subject pattern: " subject))
               ("header" (let ((header-name (read-string "Header name: "))
-                             (header-value (read-string "Header value: ")))
-                         (format "%s:%s" header-name header-value)))))
+                              (header-value (read-string "Header value: ")))
+                          (format "%s:%s" header-name header-value)))))
 
            ;; Prompt for category
            (category (completing-read "Category: "