]> git.notmuchmail.org Git - notmuch/blobdiff - doc/man1/notmuch-config.rst
emacs: Add new option notmuch-search-hide-excluded
[notmuch] / doc / man1 / notmuch-config.rst
index 7483b75f1727e0490b70c001604173815173bb5b..bd34afa40ee6975a7f1aa316bd4e22e3f1605070 100644 (file)
@@ -1,3 +1,5 @@
+.. _notmuch-config(1):
+
 ==============
 notmuch-config
 ==============
@@ -7,7 +9,7 @@ SYNOPSIS
 
 **notmuch** **config** **get** <*section*>.<*item*>
 
-**notmuch** **config** **set** <*section*>.<*item*> [*value* ...]
+**notmuch** **config** **set** [--database] <*section*>.<*item*> [*value* ...]
 
 **notmuch** **config** **list**
 
@@ -15,149 +17,369 @@ DESCRIPTION
 ===========
 
 The **config** command can be used to get or set settings in the notmuch
-configuration file.
+configuration file and corresponding database.
 
-    **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.
+.. program:: config
 
-    **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.
+.. option:: get
 
-        If no values are provided, the specified configuration item will
-        be removed from the configuration file.
+   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.
 
-    **list**
-        Every configuration item is printed to stdout, each on a
-        separate line of the form:
+.. option:: set
 
-        *section*.\ *item*\ =\ *value*
+   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.
 
-        No additional whitespace surrounds the dot or equals sign
-        characters. In a multiple-value item (a list), the values are
-        separated by semicolon characters.
+   If no values are provided, the specified configuration item will
+   be removed from the configuration file.
 
-The available configuration items are described below.
+   With the `--database` option, updates configuration metadata
+   stored in the database, rather than the default (text)
+   configuration file.
 
-    **database.path**
-        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. Notmuch will store its database
-        within a sub-directory of the path configured here named
-        ``.notmuch``.
+.. option:: list
 
-        Default: ``$MAILDIR`` variable if set, otherwise ``$HOME/mail``.
+   Every configuration item is printed to stdout, each on a separate
+   line of the form::
 
-    **user.name**
-        Your full name.
+     section.item=value
 
-        Default: ``$NAME`` variable if set, otherwise read from
-        ``/etc/passwd``.
+   No additional whitespace surrounds the dot or equals sign
+   characters. In a multiple-value item (a list), the values are
+   separated by semicolon characters.
 
-    **user.primary\_email**
-        Your primary email address.
+The available configuration items are described below. Non-absolute
+paths are presumed relative to `$HOME` for items in section
+**database**.
 
-        Default: ``$EMAIL`` variable if set, otherwise constructed from the
-        username and hostname of the current machine.
+.. nmconfig:: built_with.<name>
 
-    **user.other\_email**
-        A list of other email addresses at which you receive email.
+    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.)
 
-        Default: not set.
+.. nmconfig:: database.autocommit
 
-    **new.tags**
-        A list of tags that will be added to all messages incorporated
-        by **notmuch new**.
+    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.
 
-        Default: ``unread;inbox``.
+    History: this configuration value was introduced in notmuch 0.33.
 
-    **new.ignore**
-        A list of file and directory names, without path, that will not
-        be searched for messages by **notmuch new**. All the files and
-        directories matching any of the names specified here will be
-        ignored, regardless of the location in the mail store directory
-        hierarchy.
+.. nmconfig:: database.backup_dir
 
-        Default: empty list.
+    Directory to store tag dumps when upgrading database.
 
-    **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.
+    History: this configuration value was introduced in notmuch 0.32.
 
-        Default: empty list. Note that **notmuch-setup(1)** puts
-        ``deleted;spam`` here when creating new configuration file.
+    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)`.
 
-    **maildir.synchronize\_flags**
-        If true, then the following maildir flags (in message filenames)
-        will be synchronized with the corresponding notmuch tags:
+    History: this configuration value was introduced in notmuch 0.32.
 
-        +--------+-----------------------------------------------+
-        | Flag   | Tag                                           |
-        +========+===============================================+
-        | D      | draft                                         |
-        +--------+-----------------------------------------------+
-        | F      | flagged                                       |
-        +--------+-----------------------------------------------+
-        | P      | passed                                        |
-        +--------+-----------------------------------------------+
-        | R      | replied                                       |
-        +--------+-----------------------------------------------+
-        | S      | unread (added when 'S' flag is not present)   |
-        +--------+-----------------------------------------------+
+    Default: See HOOKS, below.
 
-        The **notmuch new** command will notice flag changes in
-        filenames and update tags, while the **notmuch tag** and
-        **notmuch restore** commands will notice tag changes and update
-        flags in filenames.
+.. nmconfig:: database.mail_root
 
-        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 **notmuch new** before **notmuch
-        tag** or **notmuch restore** 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.
+    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.
 
-        Default: ``true``.
+    History: this configuration value was introduced in notmuch 0.32.
 
-    **crypto.gpg_path**
+    Default: For compatibility with older configurations, the value of
+    database.path is used if :nmconfig:`database.mail_root` is unset.
 
-        Name (or full path) of gpg binary to use in verification and
-        decryption of PGP/MIME messages.
+.. nmconfig:: database.path
 
-        Default: ``gpg``.
+    Notmuch will store its database here, (in
+    sub-directory named ``.notmuch`` if :nmconfig:`database.mail_root`
+    is unset).
 
-    **built_with.<name>**
+    Default: see :ref:`database`
 
-        Compile time feature <name>. Current possibilities include
-        "compact" (see **notmuch-compact(1)**)
-        and "field_processor" (see **notmuch-search-terms(7)**).
+.. nmconfig:: git.path
 
-    **query.<name>**
+    Default location for git repository for :any:`notmuch-git`.
 
-        Expansion for named query called <name>. See
-        **notmuch-search-terms(7)** for more information about named
-        queries.
+.. nmconfig:: git.safe_fraction
 
-ENVIRONMENT
-===========
+   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:: 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.
 
-The following environment variables can be used to control the behavior
-of notmuch.
+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.
 
-**NOTMUCH\_CONFIG**
-    Specifies the location of the notmuch configuration file. Notmuch
-    will use ${HOME}/.notmuch-config if this variable is not set.
+3. ``<database.path>/.notmuch/hooks``
 
 SEE ALSO
 ========
 
-**notmuch(1)**, **notmuch-count(1)**, **notmuch-dump(1)**,
-**notmuch-hooks(5)**, **notmuch-insert(1)**, **notmuch-new(1)**,
-**notmuch-reply(1)**, **notmuch-restore(1)**, **notmuch-search(1)**,
-**notmuch-search-terms(7)**, **notmuch-show(1)**, **notmuch-tag(1)**
+: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)`