1 [[!meta date="2010-04-27"]]
3 Notmuch 0.3 (2010-04-27)
4 ========================
5 New command-line features
6 -------------------------
7 User-configurable tags for new messages
9 A new "new.tags" option is available in the configuration file to
10 determine which tags are applied to new messages. Run "notmuch
11 setup" to generate new documentation within ~/.notmuch-config on how
12 to specify this value.
14 Threads search results named based on subjects that match search
16 This means that when new mails arrived to a thread you've previously
17 read, and the new mails have a new subject, you will see that
18 subject in the search results rather than the old subject.
20 Faster operation of "notmuch tag" (avoid unneeded sorting)
22 Since the user just wants to tag all matching messages, we can make
23 things perform a bit faster by avoiding the sort.
25 Even Better guessing of From: header for "notmuch reply"
27 Notmuch now looks at a number of headers when trying to figure out
28 the best From: header to use in a reply. This is helpful if you have
29 several configured email addresses, and you also subscribe to various
30 mailing lists with different addresses, (so that mails you are
31 replying to won't always include your subscribed address in the To:
34 Indication of author names that match a search
36 When notmuch displays threads as the result of a search, it now
37 lists the authors that match the search before listing the other
38 authors in the thread. It inserts a pipe '|' symbol between the last
39 matching and first non-matching author. This is especially useful in
40 a search that includes tag:unread. Now the authors of the unread
41 messages in the thread are listed first.
45 Sebastian Spaeth has contributed his python bindings for the notmuch
46 library to the central repository. These bindings were previously
47 known as "cnotmuch" within python but have now been renamed to be
48 accessible with a simple, and more official-looking "import notmuch".
50 The bindings have already proven very useful as people proficient in
51 python have been able to easily develop programs to do notmuch-based
52 searches for email-address completion, maildir-flag synchronization,
55 These bindings are available within the bindings/python directory, but
56 are not yet integrated into the top-level Makefiles, nor the top-level
57 package-building scripts. Improvements are welcome.
59 Emacs interface improvements
60 ----------------------------
61 An entirely new initial view for notmuch, (friendly yet powerful)
63 Some of us call the new view "notmuch hello" but you can get at it
64 by simply calling "emacs -f notmuch". The new view provides a search
65 bar where new searches can be performed. It also displays a list of
66 recent searches, along with a button to save any of these, giving it
67 a new name as a "saved search". Many people find these "saved
68 searches" one of the most convenient ways of organizing their mail,
69 (providing all of the features of "folders" in other mail clients,
70 but without any of the disadvantages).
72 Finally, this view can also optionally display all of the tags that
73 exist in the database, along with a count for each tag, and a custom
74 search of messages with that tag that's simply a click (or keypress)
77 Note: For users that liked the original mode of "emacs -f notmuch"
78 immediately displaying a particular search result, we
79 recommend instead running something like:
81 emacs --eval '(notmuch search "tag:inbox" t)'
83 The "t" means to sort the messages in an "oldest first" order,
84 (as notmuch would do previously by default). You can also
85 leave that off to have your search results in "newest first"
88 Full-featured "customize" support for configuring notmuch
90 Notmuch now plugs in well to the emacs "customize" mode to make it
91 much simpler to find things about the notmuch interface that can be
94 You can get to this mode by starting at the main "Customize" menu in
95 emacs, then browsing through "Applications", "Mail", and
96 "Notmuch". Or you can go straight to "M-x customize-group"
99 Once you're at the customize screen, you'll see a list of documented
100 options that can be manipulated along with checkboxes, drop-down
101 selectors, and text-entry boxes for configuring the various
104 Support for doing tab-completion of email addresses
106 This support currently relies on an external program,
107 (notmuch-addresses), that is not yet shipped with notmuch
108 itself. But multiple, suitable implementations of this program have
109 already been written that generate address completions by doing
110 notmuch searches of your email collection. For example, providing
111 first those addresses that you have composed messages to in the
114 One such program (implemented in python with the python bindings to
115 notmuch) is available via:
117 git clone http://jkr.acm.jhu.edu/git/notmuch_addresses.git
119 Install that program as notmuch-addresses on your PATH, and then
120 hitting TAB on a partial email address or name within the To: or Cc:
121 line of an email message will provide matching completions.
123 Support for file-based (Fcc) delivery of sent messages to mail store
125 This isn't yet enabled by default. To enable this, one will have to
126 set the "Notmuch Fcc Dirs" setting within the notmuch customize
127 screen, (see its documentation there for details). We anticipate
128 making this automatic in a future release.
130 New 'G' key binding to trigger mail refresh (G == "Get new mail")
132 The 'G' key works wherever '=' works. Before refreshing the screen
133 it calls an external program that can be used to poll email servers,
134 run notmuch new and setup specific tags for the new emails. The
135 script to be called should be configured with the "Notmuch Poll
136 Script" setting in the customize interface. This script will
137 typically invoke "notmuch new" and then perhaps several "notmuch
140 Implement emacs message display with the JSON output from notmuch.
142 This is much more robust than the previous implementation, (where
143 some HTML mails and mail quoting the notmuch code with the delimiter
144 characters in it would cause the parser to fall over).
146 Better handling of HTML messages and MIME attachments (inline images!)
148 Allow for any MIME parts that emacs can display to be displayed
149 inline. This includes inline viewing of image attachments, (provided
150 the window is large enough to fit the image at its natural size).
152 Much more robust handling of HTML messages. Currently both text/plain
153 and text/html alternates will be rendered next to each other. In a
154 future release, users will be able to decide to see only one or the
155 other representation.
157 Each attachment now has its own button so that attachments can be
158 saved individually (the 'w' key is still available to save all
161 Customizable support for tidying of text/plain message content
163 Many new functions are available for tidying up message
164 content. These include options such as wrapping long lines,
165 compressing duplicate blank lines, etc.
167 Most of these are disabled by default, but can easily be enabled by
168 clicking the available check boxes under the "Notmuch Show Insert
169 Text/Plain Hook" within the notmuch customize screen.
171 New support for searchable citations (even when hidden)
173 When portions of overly-long citations are hidden, the contents of
174 these citations will still be available for emacs' standard
175 "incremental search" functions. When the search matches any portion
176 of a hidden citation, the citation will become visible temporarily
177 to display the search result.
179 More flexible handling of header visibility
181 As an answer to complaints from many users, the To, Cc, and Date
182 headers of messages are no longer hidden by default. For those users
183 that liked that these were hidden, a new "Notmuch Messages Headers
184 Visible" option in the customize interface can be set to nil. The
185 visibility of headers can still be toggled on a per-message basis
186 with the 'h' keybinding.
188 For users that don't want to see some subset of those headers, the
189 new "Notmuch Message Headers" variable can be customized to list
190 only those headers that should be present in the display of a message.
192 The Return key now toggles message visibility anywhere
194 Previously this worked only on the first summary-line of a message.
196 Customizable formatting of search results
198 The user can easily customize the order, width, and formatting of
199 the various fields in a "notmuch search" buffer. See the "Notmuch
200 Search Result Format" section of the customize interface.
202 Generate nicer names for search buffers when using a saved search.
204 Add a notmuch User-Agent header when sending mail from notmuch/emacs.
206 New keybinding (M-Ret) to open all collapsed messages in a thread.
210 Provide a new NOTMUCH\_SORT\_UNSORTED value for queries
212 This can be somewhat faster when sorting simply isn't desired. For
213 example when collecting a set of messages that will all be
214 manipulated identically, (adding a tag, removing a tag, deleting the
215 messages), then there's no advantage to sorting the messages by
220 Fix to compile against GMime 2.6
222 Previously notmuch insisted on being able to find GMime 2.4, (even
223 though GMime 2.6 would have worked all along).
225 Fix configure script to accept (and ignore) various standard options.
227 For example, those that the Gentoo build scripts expect configure to
228 accept are now all accepted.
232 A large number of new tests for the many new features.
234 Better display of output from failed tests.
236 Now shows failures with diff rather than forcing the user to gaze at
237 complete actual and expected output looking for deviation.