Disambiguate Debian notmuch package and notmuch for emacs package.
[notmuch-wiki] / notmuch-mutt.mdwn
1 [[!img notmuch-logo.png alt="Notmuch logo" class="left"]]
2 # Using Notmuch with bare Mutt, the old fashioned way
3
4 Notmuch is a great mail indexing tool that can also be used *in conjunction*
5 with existing Mail User Agents (MUA) instead of replacing them. The advantage of
6 such mixed solutions is that users can benefit from notmuch features (such as
7 full-text search and thread reconstruction) without *having to* change MUA.
8
9 The `notmuch-mutt` script shipping with Notmuch bridges the gap between Notmuch
10 and Mutt.
11
12 ## Using
13   [notmuch-mutt](https://git.notmuchmail.org/git/notmuch/tree/HEAD:/contrib/notmuch-mutt),
14   which will create a "virtual" maildir folder with search results whenever a
15   search is made. The upside is that you can search all your folders
16   simultaneously; the downside is that your modifications in the results listing
17   do not carry over, also having to switch folders comes with some more
18   annoyances.
19
20   A
21   [how to use Notmuch with Mutt](http://upsilon.cc/~zack/blog/posts/2011/01/how_to_use_Notmuch_with_Mutt/)
22   has been written by Stefano Zacchiroli.
23
24   <small>(Note by the howto author: I've linked the howto from this wiki rather
25   than splicing it in, in order to avoid duplication of information. If you
26   think it would be better to have it here, feel free to copy the text
27   here. The howto is
28   [available](http://git.upsilon.cc/cgi-bin/gitweb.cgi?p=zack-homepage.git;a=history;f=blog/posts/2011/01/how_to_use_Notmuch_with_Mutt.mdwn)
29   in markdown syntax from the Git repository of my homepage.)</small>
30
31 ## Using a simple macro that will emulate the "limit" mutt functionality
32   using notmuch.
33
34   See the [alternative notmuch integration](http://log.or.cz/?p=228)
35   blog post for instructions and details,
36   or simply put these two macros to your muttrc:
37
38         # 'L' performs a notmuch query, showing only the results
39         macro index L "<enter-command>unset wait_key<enter><shell-escape>read -p 'notmuch query: ' x; echo \$x >~/.cache/mutt_terms<enter><limit>~i \"\`notmuch search --output=messages \$(cat ~/.cache/mutt_terms) | head -n 600 | perl -le '@a=<>;chomp@a;s/\^id:// for@a;$,=\"|\";print@a'\`\"<enter>" "show only messages matching a notmuch pattern"
40         # 'a' shows all messages again (supersedes default <alias> binding)
41         macro index a "<limit>all\n" "show all messages (undo limit)"
42
43   The upside (if you are used to working in the context of a single folder) is
44   that this really does use the limit functionality of mutt and you are still in
45   your original folder.  The downside is that this approach has scaling problems
46   and works well only for reasonably specific queries.
47
48 ## Using [notmuchfs](https://github.com/tsto/notmuchfs)
49
50   Notmuchfs provides virtual maildirs at the file system level, and mutt can be
51   placed on top. See [README.mutt](https://github.com/tsto/notmuchfs/blob/master/README.MUTT.md)