Commit 3372dcde24e7
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: "