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