X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=doc%2Fman1%2Fnotmuch-config.rst;h=bc597957f7bb93d5f2521303470fccc8b84a90df;hp=773fd9da2cd735cbc38c5157c0ae158e3ded8012;hb=HEAD;hpb=fccebbaeef1e4b6489425afb13f419543d53d285 diff --git a/doc/man1/notmuch-config.rst b/doc/man1/notmuch-config.rst index 773fd9da..bd34afa4 100644 --- a/doc/man1/notmuch-config.rst +++ b/doc/man1/notmuch-config.rst @@ -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** @@ -17,189 +19,367 @@ DESCRIPTION The **config** command can be used to get or set settings in the notmuch configuration file and corresponding database. -Items marked **[STORED IN DATABASE]** are only in the database. They -should not be placed in the configuration file, and should be accessed -programmatically as described in the SYNOPSIS above. +.. program:: config - **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:: get - **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. + 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. - If no values are provided, the specified configuration item will - be removed from the configuration file. +.. option:: set - **list** - Every configuration item is printed to stdout, each on a - separate line of the form: + 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. - *section*.\ *item*\ =\ *value* + If no values are provided, the specified configuration item will + be removed from the configuration file. - No additional whitespace surrounds the dot or equals sign - characters. In a multiple-value item (a list), the values are - separated by semicolon characters. + With the `--database` option, updates configuration metadata + stored in the database, rather than the default (text) + configuration file. -The available configuration items are described below. +.. option:: list - **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``. + Every configuration item is printed to stdout, each on a separate + line of the form:: - Default: ``$MAILDIR`` variable if set, otherwise ``$HOME/mail``. + section.item=value - **user.name** - Your full name. + No additional whitespace surrounds the dot or equals sign + characters. In a multiple-value item (a list), the values are + separated by semicolon characters. - Default: ``$NAME`` variable if set, otherwise read from - ``/etc/passwd``. +The available configuration items are described below. Non-absolute +paths are presumed relative to `$HOME` for items in section +**database**. - **user.primary\_email** - Your primary email address. +.. nmconfig:: built_with. - Default: ``$EMAIL`` variable if set, otherwise constructed from the - username and hostname of the current machine. + Compile time feature . Current possibilities include + "retry_lock" (configure option, included by default). + (since notmuch 0.30, "compact" and "field_processor" are + always included.) - **user.other\_email** - A list of other email addresses at which you receive email. +.. nmconfig:: database.autocommit - Default: not set. + 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. - **new.tags** - A list of tags that will be added to all messages incorporated - by **notmuch new**. + History: this configuration value was introduced in notmuch 0.33. - Default: ``unread;inbox``. +.. nmconfig:: database.backup_dir - **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. + Directory to store tag dumps when upgrading database. - Default: empty list. + History: this configuration value was introduced in notmuch 0.32. - **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: A sibling directory of the Xapian database called + `backups`. - Default: empty list. Note that **notmuch-setup(1)** puts - ``deleted;spam`` here when creating new configuration file. +.. 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. - **maildir.synchronize\_flags** - If true, then the following maildir flags (in message filenames) - will be synchronized with the corresponding notmuch tags: + Default: See HOOKS, below. - +--------+-----------------------------------------------+ - | Flag | Tag | - +========+===============================================+ - | D | draft | - +--------+-----------------------------------------------+ - | F | flagged | - +--------+-----------------------------------------------+ - | P | passed | - +--------+-----------------------------------------------+ - | R | replied | - +--------+-----------------------------------------------+ - | S | unread (added when 'S' flag is not present) | - +--------+-----------------------------------------------+ +.. nmconfig:: database.mail_root - 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. + 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. - 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. + History: this configuration value was introduced in notmuch 0.32. - Default: ``true``. + Default: For compatibility with older configurations, the value of + database.path is used if :nmconfig:`database.mail_root` is unset. - **crypto.gpg_path** +.. nmconfig:: database.path - Name (or full path) of gpg binary to use in verification and - decryption of PGP/MIME messages. NOTE: This configuration - item is deprecated, and will be ignored if notmuch is built - against GMime 3.0 or later. + Notmuch will store its database here, (in + sub-directory named ``.notmuch`` if :nmconfig:`database.mail_root` + is unset). - Default: ``gpg``. + Default: see :ref:`database` - **index.decrypt** +.. nmconfig:: git.path - **[STORED IN DATABASE]** + Default location for git repository for :any:`notmuch-git`. - One of ``false``, ``auto``, ``nostash``, or ``true``. +.. nmconfig:: git.safe_fraction - 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. + 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". - ``nostash`` is the same as ``true`` except that it will not - stash newly-discovered session keys in the database. +.. nmconfig:: git.tag_prefix - 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 tag prefix (filter) for :any:`notmuch-git`. - Default: ``auto``. +.. nmconfig:: index.as_text - **built_with.** + 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. - Compile time feature . Current possibilities include - "compact" (see **notmuch-compact(1)**) - and "field_processor" (see **notmuch-search-terms(7)**). + History: This configuration value was introduced in notmuch 0.38. - **query.** +.. nmconfig:: index.decrypt - **[STORED IN DATABASE]** - Expansion for named query called . See - **notmuch-search-terms(7)** for more information about named - queries. + Policy for decrypting encrypted messages during indexing. Must be + one of: ``false``, ``auto``, ``nostash``, or ``true``. -ENVIRONMENT -=========== + 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. + + Define the query 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. + + Expansion for named query called . 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. + + Expansion for named query called , 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//config`` where ```` + is defined by :envvar:`NOTMUCH_PROFILE` environment variable if + set, ``$XDG_CONFIG_HOME/notmuch/default/config`` otherwise. + +4. ``$HOME/.notmuch-config.`` where ```` 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/`` where ```` + 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//hooks`` where ```` + 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. ``/.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)`