X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=emacstips.mdwn;h=820d181725c7b02b2a16f7a80fe467638a9a9aac;hb=4f2481e3c1e193f931b015499040820e6ed0bdc2;hp=90b7a2553ae65a2fce61dcdbe1875aac5c775463;hpb=421f06648355e3becb1a8f9b3f57aa8d3b615322;p=obsolete%2Fnotmuch-wiki diff --git a/emacstips.mdwn b/emacstips.mdwn index 90b7a25..820d181 100644 --- a/emacstips.mdwn +++ b/emacstips.mdwn @@ -275,12 +275,19 @@ And in search mode: The Emacs interface to notmuch will automatically add an `Fcc` header to your outgoing mail so that any messages you send will also be saved in your mail store. You can control where this copy of the -message is saved by setting the variables `message-directory` (which -defines a base directory) and `notmuch-fcc-dirs` which defines the -subdirectory relative to `message-directory` in which to save the -mail. Enter a directory (without the maildir `/cur` ending which -will be appended automatically). To customize both variables at the -same time, use the fancy command: +message is saved by setting the variable `notmuch-fcc-dirs` which defines the +subdirectory relative to the `database.path` setting from your +notmuch configuration in which to save the mail. Enter a directory +(without the maildir `/cur` ending which will be appended +automatically). Additional information can be found as usual using: + + M-x describe-variable notmuch-fcc-dirs + +An additional variable that can affect FCC settings in some cases is +`message-directory`. Emacs message-mode uses this variable for +postponed messages. + +To customize both variables at the same time, use the fancy command: M-x customize-apropos\(notmuch-fcc-dirs\)\|\(message-directory\) @@ -613,3 +620,54 @@ notmuch version 0.15): (replace-regexp-in-string "\t" " " (notmuch-show-get-subject))))) (add-hook 'notmuch-show-hook 'notmuch-show-header-tabs-to-spaces) + +## Hiding unread messages in notmuch-show + +I like to have an inbox saved search, but only show unread messages when they +view a thread. This takes two steps: + +1. Apply +[this patch from Mark Walters](http://notmuchmail.org/pipermail/notmuch/2012/010817.html) +to add the `notmuch-show-filter-thread` function. +1. Add the following hook to your emacs configuration: + + (defun expand-only-unread-hook () (interactive) + (let ((unread nil) + (open (notmuch-show-get-message-ids-for-open-messages))) + (notmuch-show-mapc (lambda () + (when (member "unread" (notmuch-show-get-tags)) + (setq unread t)))) + (when unread + (let ((notmuch-show-hook (remove 'expand-only-unread-hook notmuch-show-hook))) + (notmuch-show-filter-thread "tag:unread"))))) + + (add-hook 'notmuch-show-hook 'expand-only-unread-hook) + +## Changing the color of a saved search based on some other search + +I like to have a saved search for my inbox, but have it change color when there +are thread with unread messages in the inbox. I accomplish this with the +following code in my emacs config: + + (defun color-inbox-if-unread () (interactive) + (save-excursion + (goto-char (point-min)) + (let ((cnt (car (process-lines "notmuch" "count" "tag:inbox and tag:unread")))) + (when (> (string-to-number cnt) 0) + (save-excursion + (when (search-forward "inbox" (point-max) t) + (let* ((overlays (overlays-in (match-beginning 0) (match-end 0))) + (overlay (car overlays))) + (when overlay + (overlay-put overlay 'face '((:inherit bold) (:foreground "green"))))))))))) + (add-hook 'notmuch-hello-refresh-hook 'color-inbox-if-unread) + +## Linking to notmuch messages and threads from the Circe IRC client + +[Circe](https://github.com/jorgenschaefer/circe/wiki) is an IRC client for emacs. +To have clickable buttons for notmuch messages and threads, add the following to +`lui-buttons-list` (using, e.g. M-x customize-variable) + + ("\\(?:id\\|mid\\|thread\\):[0-9A-Za-z][0-9A-Za-z.@-]*" 0 notmuch-show 0) + +If you have notmuch-pick installed, it works fine for this as well.