1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
| | .. _notmuch-config(1):
==============
notmuch-config
==============
SYNOPSIS
========
**notmuch** **config** **get** <*section*>.<*item*>
**notmuch** **config** **set** [--database] <*section*>.<*item*> [*value* ...]
**notmuch** **config** **list**
DESCRIPTION
===========
The **config** command can be used to get or set settings in the notmuch
configuration file and corresponding database.
.. program:: config
.. option:: get
The value of the specified configuration item is printed to
stdout. If the item has multiple values (it is a list), each value
is separated by a newline character.
.. option:: set
The specified configuration item is set to the given value. To
specify a multiple-value item (a list), provide each value as a
separate command-line argument.
If no values are provided, the specified configuration item will
be removed from the configuration file.
With the `--database` option, updates configuration metadata
stored in the database, rather than the default (text)
configuration file.
.. option:: list
Every configuration item is printed to stdout, each on a separate
line of the form::
section.item=value
No additional whitespace surrounds the dot or equals sign
characters. In a multiple-value item (a list), the values are
separated by semicolon characters.
The available configuration items are described below. Non-absolute
paths are presumed relative to `$HOME` for items in section
**database**.
.. nmconfig:: built_with.<name>
Compile time feature <name>. Current possibilities include
"retry_lock" (configure option, included by default).
(since notmuch 0.30, "compact" and "field_processor" are
always included.)
.. nmconfig:: database.autocommit
How often to commit transactions to disk. `0` means wait until
command completes, otherwise an integer `n` specifies to commit to
disk after every `n` completed transactions.
History: this configuration value was introduced in notmuch 0.33.
.. nmconfig:: database.backup_dir
Directory to store tag dumps when upgrading database.
History: this configuration value was introduced in notmuch 0.32.
Default: A sibling directory of the Xapian database called
`backups`.
.. nmconfig:: database.hook_dir
Directory containing hooks run by notmuch commands. See
:any:`notmuch-hooks(5)`.
History: this configuration value was introduced in notmuch 0.32.
Default: See HOOKS, below.
.. nmconfig:: database.mail_root
The top-level directory where your mail currently exists and to
where mail will be delivered in the future. Files should be
individual email messages.
History: this configuration value was introduced in notmuch 0.32.
Default: For compatibility with older configurations, the value of
database.path is used if :nmconfig:`database.mail_root` is unset.
.. nmconfig:: database.path
Notmuch will store its database here, (in
sub-directory named ``.notmuch`` if :nmconfig:`database.mail_root`
is unset).
Default: see :ref:`database`
.. nmconfig:: git.path
Default location for git repository for :any:`notmuch-git`.
.. nmconfig:: git.safe_fraction
Some :any:`notmuch-git` operations check that the fraction of
messages changed (in the database or in git, as appropriate) is not
too large. This item controls what fraction of total messages is
considered "not too large".
.. nmconfig:: git.tag_prefix
Default tag prefix (filter) for :any:`notmuch-git`.
.. nmconfig:: index.as_text
List of regular expressions (without delimiters) for MIME types to
be indexed as text. Currently this applies only to attachments. By
default the regex matches anywhere in the content type; if the
user wants an anchored match, they should include anchors in their
regexes.
History: This configuration value was introduced in notmuch 0.38.
.. nmconfig:: index.decrypt
Policy for decrypting encrypted messages during indexing. Must be
one of: ``false``, ``auto``, ``nostash``, or ``true``.
When indexing an encrypted e-mail message, if this variable is set
to ``true``, notmuch will try to decrypt the message and index the
cleartext, stashing a copy of any discovered session keys for the
message. If ``auto``, it will try to index the cleartext if a
stashed session key is already known for the message (e.g. from a
previous copy), but will not try to access your secret keys. Use
``false`` to avoid decrypting even when a stashed session key is
already present.
``nostash`` is the same as ``true`` except that it will not stash
newly-discovered session keys in the database.
From the command line (i.e. during :any:`notmuch-new(1)`,
:any:`notmuch-insert(1)`, or :any:`notmuch-reindex(1)`), the user can
override the database's stored decryption policy with the
``--decrypt=`` option.
Here is a table that summarizes the functionality of each of these
policies:
+------------------------+-------+------+---------+------+
| | false | auto | nostash | true |
+========================+=======+======+=========+======+
| Index cleartext using | | X | X | X |
| stashed session keys | | | | |
+------------------------+-------+------+---------+------+
| Index cleartext | | | X | X |
| using secret keys | | | | |
+------------------------+-------+------+---------+------+
| Stash session keys | | | | X |
+------------------------+-------+------+---------+------+
| Delete stashed session | X | | | |
| keys on reindex | | | | |
+------------------------+-------+------+---------+------+
Stashed session keys are kept in the database as properties
associated with the message. See ``session-key`` in
:any:`notmuch-properties(7)` for more details about how they can be
useful.
Be aware that the notmuch index is likely sufficient (and a
stashed session key is certainly sufficient) to reconstruct the
cleartext of the message itself, so please ensure that the notmuch
message index is adequately protected. DO NOT USE
``index.decrypt=true`` or ``index.decrypt=nostash`` without
considering the security of your index.
Default: ``auto``.
.. _index.header:
.. nmconfig:: index.header.<prefix>
Define the query prefix <prefix>, based on a mail header. For
example ``index.header.List=List-Id`` will add a probabilistic
prefix ``List:`` that searches the ``List-Id`` field. User
defined prefixes must not start with 'a'...'z'; in particular
adding a prefix with same name as a predefined prefix is not
supported. See :any:`notmuch-search-terms(7)` for a list of existing
prefixes, and an explanation of probabilistic prefixes.
.. nmconfig:: maildir.synchronize_flags
If true, then the following maildir flags (in message filenames)
will be synchronized with the corresponding notmuch tags:
+--------+-----------------------------------------------+
| Flag | Tag |
+========+===============================================+
| D | draft |
+--------+-----------------------------------------------+
| F | flagged |
+--------+-----------------------------------------------+
| P | passed |
+--------+-----------------------------------------------+
| R | replied |
+--------+-----------------------------------------------+
| S | unread (added when 'S' flag is not present) |
+--------+-----------------------------------------------+
The :any:`notmuch-new(1)` command will notice flag changes in
filenames and update tags, while the :any:`notmuch-tag(1)` and
:any:`notmuch-restore(1)` commands will notice tag changes and
update flags in filenames.
If there have been any changes in the maildir (new messages added,
old ones removed or renamed, maildir flags changed, etc.), it is
advisable to run :any:`notmuch-new(1)` before
:any:`notmuch-tag(1)` or :any:`notmuch-restore(1)` commands to
ensure the tag changes are properly synchronized to the maildir
flags, as the commands expect the database and maildir to be in
sync.
Default: ``true``.
.. nmconfig:: new.ignore
A list to specify files and directories that will not be searched
for messages by :any:`notmuch-new(1)`. Each entry in the list is either:
A file or a directory name, without path, that will be ignored,
regardless of the location in the mail store directory hierarchy.
Or:
A regular expression delimited with // that will be matched
against the path of the file or directory relative to the database
path. Matching files and directories will be ignored. The
beginning and end of string must be explicitly anchored. For
example, /.*/foo$/ would match "bar/foo" and "bar/baz/foo", but
not "foo" or "bar/foobar".
Default: empty list.
.. nmconfig:: new.tags
A list of tags that will be added to all messages incorporated by
**notmuch new**.
Default: ``unread;inbox``.
.. nmconfig:: query.<name>
Expansion for named query called <name>. See
:any:`notmuch-search-terms(7)` for more information about named
queries.
.. nmconfig:: search.exclude_tags
A list of tags that will be excluded from search results by
default. Using an excluded tag in a query will override that
exclusion.
Default: empty list. Note that :any:`notmuch-setup(1)` puts
``deleted;spam`` here when creating new configuration file.
.. nmconfig:: search.authors_separator
The string to separate authors when showing a thread.
Default: ,
.. nmconfig:: search.authors_matched_separator
The string to separate matched from non-matched authors when showing a
thread.
Default: |
.. nmconfig:: show.extra_headers
By default :any:`notmuch-show(1)` includes the following headers
in structured output if they are present in the message:
`Subject`, `From`, `To`, `Cc`, `Bcc`, `Reply-To`, `Date`. This
option allows the specification of a list of further
headers to output.
History: This configuration value was introduced in notmuch 0.35.
Default: empty list.
.. nmconfig:: squery.<name>
Expansion for named query called <name>, using s-expression syntax. See
:any:`notmuch-sexp-queries(7)` for more information about s-expression
queries.
.. nmconfig:: user.name
Your full name.
Default: ``$NAME`` variable if set, otherwise read from
``/etc/passwd``.
.. nmconfig:: user.other_email
A list of other email addresses at which you receive email
(see also, :nmconfig:`user.primary_email`)
Default: not set.
.. nmconfig:: user.primary_email
Your primary email address.
Default: ``$EMAIL`` variable if set, otherwise constructed from
the username and hostname of the current machine.
FILES
=====
.. _config_search:
CONFIGURATION
-------------
Notmuch configuration file search order:
1. File specified by :option:`notmuch --config` global option; see
:any:`notmuch(1)`.
2. File specified by :envvar:`NOTMUCH_CONFIG` environment variable.
3. ``$XDG_CONFIG_HOME/notmuch/<profile>/config`` where ``<profile>``
is defined by :envvar:`NOTMUCH_PROFILE` environment variable if
set, ``$XDG_CONFIG_HOME/notmuch/default/config`` otherwise.
4. ``$HOME/.notmuch-config.<profile>`` where ``<profile>`` is defined
by :envvar:`NOTMUCH_PROFILE` environment variable if set,
``$HOME/.notmuch-config`` otherwise.
.. _database:
DATABASE LOCATION
-----------------
Notmuch database search order:
1. Directory specified by :envvar:`NOTMUCH_DATABASE` environment variable.
2. Directory specified by config key ``database.path``.
3. ``$XDG_DATA_HOME/notmuch/<profile>`` where ``<profile>``
is defined by :envvar:`NOTMUCH_PROFILE` environment variable if
set, ``$XDG_DATA_HOME/notmuch/default`` otherwise.
4. Directory specified by :envvar:`MAILDIR` environment variable.
5. ``$HOME/mail``
HOOKS
-----
Notmuch hook directory search order:
1. Directory specified by ``database.hook_dir`` configuration option.
2. ``$XDG_CONFIG_HOME/notmuch/<profile>/hooks`` where ``<profile>``
is defined by :envvar:`NOTMUCH_PROFILE` environment variable if
set, ``$XDG_CONFIG_HOME/notmuch/default/hooks`` otherwise.
3. ``<database.path>/.notmuch/hooks``
SEE ALSO
========
:any:`notmuch(1)`,
:any:`notmuch-count(1)`,
:any:`notmuch-dump(1)`,
:any:`notmuch-hooks(5)`,
:any:`notmuch-insert(1)`,
:any:`notmuch-new(1)`,
:any:`notmuch-properties(7)`,
:any:`notmuch-reply(1)`,
:any:`notmuch-restore(1)`,
:any:`notmuch-search(1)`,
:any:`notmuch-search-terms(7)`,
:any:`notmuch-show(1)`,
:any:`notmuch-tag(1)`
|