Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

accounts.calendar.accounts

List of calendars.

Type: attribute set of (submodule)

Default:

{ }

Declared by:

accounts.calendar.accounts.<name>.khal.enable

Whether to enable khal access.

Type: boolean

Default:

false

Example:

true

Declared by:

accounts.calendar.accounts.<name>.khal.addresses

Email addresses to be associated with this account. Used to check the participation status (“PARTSTAT”), refer to khal documentation.

Type: list of string

Default:

[ ]

Declared by:

accounts.calendar.accounts.<name>.khal.color

Color in which events in this calendar are displayed. For instance ‘light green’ or an RGB color ‘#ff0000’

Type: null or string

Default:

null

Example:

"light green"

Declared by:

accounts.calendar.accounts.<name>.khal.glob

The glob expansion to be searched for events or birthdays when type is set to discover.

Type: string

Default:

"*"

Declared by:

accounts.calendar.accounts.<name>.khal.priority

Priority of a calendar used for coloring (calendar with highest priority is preferred).

Type: signed integer

Default:

10

Declared by:

accounts.calendar.accounts.<name>.khal.readOnly

Keep khal from making any changes to this account.

Type: boolean

Default:

false

Declared by:

accounts.calendar.accounts.<name>.khal.type

Either a single calendar (calendar which is the default) or a directory with multiple calendars (discover).

Type: one of “calendar”, “discover”

Default:

"calendar"

Declared by:

accounts.calendar.accounts.<name>.local

Local configuration for the calendar.

Type: submodule

Default:

{ }

Declared by:

accounts.calendar.accounts.<name>.local.encoding

File encoding for items, both content and file name. Defaults to UTF-8.

Type: null or string

Default:

null

Declared by:

accounts.calendar.accounts.<name>.local.fileExt

The file extension to use.

Type: null or string

Default:

".ics"

Declared by:

accounts.calendar.accounts.<name>.local.path

The path of the storage.

Type: string

Default:

‹accounts.calendar.basePath›/‹name›

Declared by:

accounts.calendar.accounts.<name>.local.type

The type of the storage.

Type: one of “filesystem”, “singlefile”

Default:

"filesystem"

Declared by:

accounts.calendar.accounts.<name>.name

Unique identifier of the calendar. This is set to the attribute name of the calendar configuration.

Type: string (read only)

Declared by:

accounts.calendar.accounts.<name>.pimsync.enable

Whether to enable synchronization using pimsync.

Type: boolean

Default:

false

Example:

true

Declared by:

accounts.calendar.accounts.<name>.pimsync.extraLocalStorageDirectives

Extra directives that should be added under this accounts local storage directive

Type: anything

Default:

[ ]

Declared by:

accounts.calendar.accounts.<name>.pimsync.extraPairDirectives

Extra directives that should be added under this accounts pair directive

Type: anything

Default:

[ ]

Example:

[
  {
    name = "collections";
    params = [
      "all"
    ];
  }
]

Declared by:

accounts.calendar.accounts.<name>.pimsync.extraRemoteStorageDirectives

Extra directives that should be added under this accounts remote storage directive

Type: anything

Default:

[ ]

Example:

[
  {
    name = "interval";
    params = [
      60
    ];
  }
]

Declared by:

accounts.calendar.accounts.<name>.primary

Whether this is the primary account. Only one account may be set as primary.

Type: boolean

Default:

false

Declared by:

accounts.calendar.accounts.<name>.primaryCollection

The primary collection of the account. Required when an account has multiple collections.

Type: null or string

Default:

null

Declared by:

accounts.calendar.accounts.<name>.qcal.enable

Whether to enable qcal access.

Type: boolean

Default:

false

Example:

true

Declared by:

accounts.calendar.accounts.<name>.remote

Remote configuration for the calendar.

Type: null or (submodule)

Default:

null

Declared by:

accounts.calendar.accounts.<name>.remote.passwordCommand

A command that prints the password to standard output.

Type: null or (list of string)

Default:

null

Example:

[
  "pass"
  "caldav"
]

Declared by:

accounts.calendar.accounts.<name>.remote.type

The type of the storage.

Type: one of “caldav”, “http”, “google_calendar”

Declared by:

accounts.calendar.accounts.<name>.remote.url

The URL of the storage.

Type: null or string

Default:

null

Declared by:

accounts.calendar.accounts.<name>.remote.userName

User name for authentication.

Type: null or string

Default:

null

Declared by:

accounts.calendar.accounts.<name>.thunderbird.enable

Whether to enable the Thunderbird mail client for this account.

Type: boolean

Default:

false

Example:

true

Declared by:

accounts.calendar.accounts.<name>.thunderbird.color

Display color of the calendar in hex

Type: string

Default:

""

Example:

"#dc8add"

Declared by:

accounts.calendar.accounts.<name>.thunderbird.profiles

List of Thunderbird profiles for which this account should be enabled. If this list is empty (the default), this account will be enabled for all declared profiles.

Type: list of string

Default:

[ ]

Example:

[
  "profile1"
  "profile2"
]

Declared by:

accounts.calendar.accounts.<name>.thunderbird.readOnly

Mark calendar as read only

Type: boolean

Default:

false

Declared by:

accounts.calendar.accounts.<name>.thunderbird.settings

Extra settings to add to this Thunderbird calendar configuration. The id given as argument is an automatically generated account identifier.

Type: function that evaluates to a(n) attribute set of (boolean or signed integer or string)

Default:

_: { }

Example:

id: {
  "calendar.registry.${id}.refreshInterval" = 5;

  # If "my-awesome-account" is the attribute name of an email account under
  # `config.accounts.email.accounts`, the below snippet links this calendar
  # account to "my-awesome-account".

  "calendar.registry.${id}.imip.identity.key" =
    "id_${builtins.hashString "sha256" "my-awesome-account"}";
};

Declared by:

accounts.calendar.accounts.<name>.vdirsyncer.enable

Whether to enable synchronization using vdirsyncer.

Type: boolean

Default:

false

Example:

true

Declared by:

accounts.calendar.accounts.<name>.vdirsyncer.auth

Authentication settings. The default is basic.

Type: null or one of “basic”, “digest”, “guess”

Default:

null

Declared by:

accounts.calendar.accounts.<name>.vdirsyncer.authCert

Either a path to a certificate with a client certificate and the key or a list of paths to the files with them.

Type: null or string or list of string

Default:

null

Declared by:

accounts.calendar.accounts.<name>.vdirsyncer.clientIdCommand

A command that prints the OAuth credentials to standard output.

See https://vdirsyncer.pimutils.org/en/stable/config.html#google for more information.

Type: null or (list of string)

Default:

null

Example:

[
  "pass"
  "client_id"
]

Declared by:

accounts.calendar.accounts.<name>.vdirsyncer.clientSecretCommand

A command that prints the OAuth credentials to standard output.

See https://vdirsyncer.pimutils.org/en/stable/config.html#google for more information.

Type: null or (list of string)

Default:

null

Example:

[
  "pass"
  "client_secret"
]

Declared by:

accounts.calendar.accounts.<name>.vdirsyncer.collections

The collections to synchronize between the storages.

Type: null or (list of (string or list of string))

Default:

null

Declared by:

accounts.calendar.accounts.<name>.vdirsyncer.conflictResolution

What to do in case of a conflict between the storages. Either remote wins or local wins or a list that contains a command to run. By default, an error message is printed.

Type: null or one of “remote wins”, “local wins” or list of string

Default:

null

Declared by:

accounts.calendar.accounts.<name>.vdirsyncer.itemTypes

Kinds of items to show. The default is to show everything. This depends on particular features of the server, the results are not validated.

Type: null or (list of string)

Default:

null

Declared by:

accounts.calendar.accounts.<name>.vdirsyncer.metadata

Metadata keys that should be synchronized when vdirsyncer metasync is executed.

Type: list of string

Default:

[ ]

Example:

[
  "color"
  "displayname"
]

Declared by:

accounts.calendar.accounts.<name>.vdirsyncer.partialSync

What should happen if synchronization in one direction is impossible due to one storage being read-only. Defaults to revert.

See https://vdirsyncer.pimutils.org/en/stable/config.html#pair-section for more information.

Type: null or one of “revert”, “error”, “ignore”

Default:

null

Declared by:

accounts.calendar.accounts.<name>.vdirsyncer.postHook

Command to call for each item creation and modification. The command will be called with the path of the new/updated file.

Type: null or strings concatenated with “\n”

Default:

null

Declared by:

accounts.calendar.accounts.<name>.vdirsyncer.timeRange

A time range to synchronize. start and end can be any Python expression that returns a datetime.datetime object.

Type: null or (submodule)

Default:

null

Example:

{
  end = "datetime.now() + timedelta(days=365)";
  start = "datetime.now() - timedelta(days=365)";
}

Declared by:

accounts.calendar.accounts.<name>.vdirsyncer.timeRange.end

End of time range to show.

Type: string

Declared by:

accounts.calendar.accounts.<name>.vdirsyncer.timeRange.start

Start of time range to show.

Type: string

Declared by:

accounts.calendar.accounts.<name>.vdirsyncer.tokenFile

A file path where access tokens are stored.

Type: null or string

Default:

null

Declared by:

accounts.calendar.accounts.<name>.vdirsyncer.urlCommand

A command that prints the URL of the storage.

Type: null or (list of string)

Default:

null

Example:

[
  "~/get-url.sh"
]

Declared by:

accounts.calendar.accounts.<name>.vdirsyncer.useVcard4

Specifies whether vdirsyncer should request vCards in version 4.0. If set to false then vdirsyncer will default to version 3.0.

Type: boolean

Default:

false

Declared by:

accounts.calendar.accounts.<name>.vdirsyncer.userAgent

The user agent to report to the server. Defaults to vdirsyncer.

Type: null or string

Default:

null

Declared by:

accounts.calendar.accounts.<name>.vdirsyncer.userNameCommand

A command that prints the user name to standard output.

Type: null or (list of string)

Default:

null

Example:

[
  "~/get-username.sh"
]

Declared by:

accounts.calendar.accounts.<name>.vdirsyncer.verify

Null or path to certificate to verify SSL against

Type: null or absolute path

Default:

null

Example:

"/path/to/cert.pem"

Declared by:

accounts.calendar.accounts.<name>.vdirsyncer.verifyFingerprint

Optional. SHA1 or MD5 fingerprint of the expected server certificate.

See https://vdirsyncer.pimutils.org/en/stable/ssl-tutorial.html#ssl-tutorial for more information.

Type: null or string

Default:

null

Declared by:

accounts.calendar.basePath

The base directory in which to save calendars. May be a relative path, in which case it is relative the home directory.

Type: string

Example:

".calendar"

Declared by:

accounts.contact.accounts

List of contacts.

Type: attribute set of (submodule)

Default:

{ }

Declared by:

accounts.contact.accounts.<name>.khal.enable

Whether to enable khal access.

Type: boolean

Default:

false

Example:

true

Declared by:

accounts.contact.accounts.<name>.khal.addresses

Email addresses to be associated with this account. Used to check the participation status (“PARTSTAT”), refer to khal documentation.

Type: list of string

Default:

[ ]

Declared by:

accounts.contact.accounts.<name>.khal.collections

VCARD collections to be searched for contact birthdays.

Type: null or (list of string)

Default:

null

Declared by:

accounts.contact.accounts.<name>.khal.color

Color in which events in this calendar are displayed. For instance ‘light green’ or an RGB color ‘#ff0000’

Type: null or string

Default:

null

Example:

"light green"

Declared by:

accounts.contact.accounts.<name>.khal.priority

Priority of a calendar used for coloring (calendar with highest priority is preferred).

Type: signed integer

Default:

10

Declared by:

accounts.contact.accounts.<name>.khal.readOnly

Keep khal from making any changes to this account.

Type: boolean

Default:

false

Declared by:

accounts.contact.accounts.<name>.khard.enable

Whether to enable khard access.

Type: boolean

Default:

false

Example:

true

Declared by:

accounts.contact.accounts.<name>.khard.addressbooks

If provided, each item on this list will generate an entry on khard configuration file as a separate addressbook (vdir).

This is used for hardcoding sub-directories under the local storage path (accounts.contact.accounts.<name>.local.path) for khard. The default value will set the aforementioned path as a single vdir.

Type: (list of string) or string convertible to it

Default:

[
  ""
]

Declared by:

accounts.contact.accounts.<name>.khard.glob

The glob expansion to be searched for contacts when type is set to discover.

Type: string

Default:

"*"

Declared by:

accounts.contact.accounts.<name>.khard.type

Either a single vdir located in or multiple automatically discovered vdirs in /.

Type: one of “vdir”, “discover”

Default:

"vdir"

Declared by:

accounts.contact.accounts.<name>.local

Local configuration for the contacts.

Type: submodule

Default:

{ }

Declared by:

accounts.contact.accounts.<name>.local.encoding

File encoding for items, both content and file name. Defaults to UTF-8.

Type: null or string

Default:

null

Declared by:

accounts.contact.accounts.<name>.local.fileExt

The file extension to use.

Type: null or string

Default:

".vcf"

Declared by:

accounts.contact.accounts.<name>.local.path

The path of the storage.

Type: string

Default:

‹accounts.contact.basePath›/‹name›

Declared by:

accounts.contact.accounts.<name>.local.type

The type of the storage.

Type: one of “filesystem”, “singlefile”

Default:

"filesystem"

Declared by:

accounts.contact.accounts.<name>.name

Unique identifier of the contact account. This is set to the attribute name of the contact configuration.

Type: string (read only)

Declared by:

accounts.contact.accounts.<name>.pimsync.enable

Whether to enable synchronization using pimsync.

Type: boolean

Default:

false

Example:

true

Declared by:

accounts.contact.accounts.<name>.pimsync.extraLocalStorageDirectives

Extra directives that should be added under this accounts local storage directive

Type: anything

Default:

[ ]

Declared by:

accounts.contact.accounts.<name>.pimsync.extraPairDirectives

Extra directives that should be added under this accounts pair directive

Type: anything

Default:

[ ]

Example:

[
  {
    name = "collections";
    params = [
      "all"
    ];
  }
]

Declared by:

accounts.contact.accounts.<name>.pimsync.extraRemoteStorageDirectives

Extra directives that should be added under this accounts remote storage directive

Type: anything

Default:

[ ]

Example:

[
  {
    name = "interval";
    params = [
      60
    ];
  }
]

Declared by:

accounts.contact.accounts.<name>.remote

Remote configuration for the contacts.

Type: null or (submodule)

Default:

null

Declared by:

accounts.contact.accounts.<name>.remote.passwordCommand

A command that prints the password to standard output.

Type: null or (list of string)

Default:

null

Example:

[
  "pass"
  "caldav"
]

Declared by:

accounts.contact.accounts.<name>.remote.type

The type of the storage.

Type: one of “carddav”, “http”, “google_contacts”

Declared by:

accounts.contact.accounts.<name>.remote.url

The URL of the storage.

Type: null or string

Default:

null

Declared by:

accounts.contact.accounts.<name>.remote.userName

User name for authentication.

Type: null or string

Default:

null

Declared by:

accounts.contact.accounts.<name>.thunderbird.enable

Whether to enable the Thunderbird mail client for this account.

Type: boolean

Default:

false

Example:

true

Declared by:

accounts.contact.accounts.<name>.thunderbird.profiles

List of Thunderbird profiles for which this account should be enabled. If this list is empty (the default), this account will be enabled for all declared profiles.

Type: list of string

Default:

[ ]

Example:

[
  "profile1"
  "profile2"
]

Declared by:

accounts.contact.accounts.<name>.thunderbird.token

A token is generated when adding an address book manually to Thunderbird, this can be entered here.

Type: null or string

Default:

null

Example:

"secret_token"

Declared by:

accounts.contact.accounts.<name>.vdirsyncer.enable

Whether to enable synchronization using vdirsyncer.

Type: boolean

Default:

false

Example:

true

Declared by:

accounts.contact.accounts.<name>.vdirsyncer.auth

Authentication settings. The default is basic.

Type: null or one of “basic”, “digest”, “guess”

Default:

null

Declared by:

accounts.contact.accounts.<name>.vdirsyncer.authCert

Either a path to a certificate with a client certificate and the key or a list of paths to the files with them.

Type: null or string or list of string

Default:

null

Declared by:

accounts.contact.accounts.<name>.vdirsyncer.clientIdCommand

A command that prints the OAuth credentials to standard output.

See https://vdirsyncer.pimutils.org/en/stable/config.html#google for more information.

Type: null or (list of string)

Default:

null

Example:

[
  "pass"
  "client_id"
]

Declared by:

accounts.contact.accounts.<name>.vdirsyncer.clientSecretCommand

A command that prints the OAuth credentials to standard output.

See https://vdirsyncer.pimutils.org/en/stable/config.html#google for more information.

Type: null or (list of string)

Default:

null

Example:

[
  "pass"
  "client_secret"
]

Declared by:

accounts.contact.accounts.<name>.vdirsyncer.collections

The collections to synchronize between the storages.

Type: null or (list of (string or list of string))

Default:

null

Declared by:

accounts.contact.accounts.<name>.vdirsyncer.conflictResolution

What to do in case of a conflict between the storages. Either remote wins or local wins or a list that contains a command to run. By default, an error message is printed.

Type: null or one of “remote wins”, “local wins” or list of string

Default:

null

Declared by:

accounts.contact.accounts.<name>.vdirsyncer.itemTypes

Kinds of items to show. The default is to show everything. This depends on particular features of the server, the results are not validated.

Type: null or (list of string)

Default:

null

Declared by:

accounts.contact.accounts.<name>.vdirsyncer.metadata

Metadata keys that should be synchronized when vdirsyncer metasync is executed.

Type: list of string

Default:

[ ]

Example:

[
  "color"
  "displayname"
]

Declared by:

accounts.contact.accounts.<name>.vdirsyncer.partialSync

What should happen if synchronization in one direction is impossible due to one storage being read-only. Defaults to revert.

See https://vdirsyncer.pimutils.org/en/stable/config.html#pair-section for more information.

Type: null or one of “revert”, “error”, “ignore”

Default:

null

Declared by:

accounts.contact.accounts.<name>.vdirsyncer.postHook

Command to call for each item creation and modification. The command will be called with the path of the new/updated file.

Type: null or strings concatenated with “\n”

Default:

null

Declared by:

accounts.contact.accounts.<name>.vdirsyncer.timeRange

A time range to synchronize. start and end can be any Python expression that returns a datetime.datetime object.

Type: null or (submodule)

Default:

null

Example:

{
  end = "datetime.now() + timedelta(days=365)";
  start = "datetime.now() - timedelta(days=365)";
}

Declared by:

accounts.contact.accounts.<name>.vdirsyncer.timeRange.end

End of time range to show.

Type: string

Declared by:

accounts.contact.accounts.<name>.vdirsyncer.timeRange.start

Start of time range to show.

Type: string

Declared by:

accounts.contact.accounts.<name>.vdirsyncer.tokenFile

A file path where access tokens are stored.

Type: null or string

Default:

null

Declared by:

accounts.contact.accounts.<name>.vdirsyncer.urlCommand

A command that prints the URL of the storage.

Type: null or (list of string)

Default:

null

Example:

[
  "~/get-url.sh"
]

Declared by:

accounts.contact.accounts.<name>.vdirsyncer.useVcard4

Specifies whether vdirsyncer should request vCards in version 4.0. If set to false then vdirsyncer will default to version 3.0.

Type: boolean

Default:

false

Declared by:

accounts.contact.accounts.<name>.vdirsyncer.userAgent

The user agent to report to the server. Defaults to vdirsyncer.

Type: null or string

Default:

null

Declared by:

accounts.contact.accounts.<name>.vdirsyncer.userNameCommand

A command that prints the user name to standard output.

Type: null or (list of string)

Default:

null

Example:

[
  "~/get-username.sh"
]

Declared by:

accounts.contact.accounts.<name>.vdirsyncer.verify

Null or path to certificate to verify SSL against

Type: null or absolute path

Default:

null

Example:

"/path/to/cert.pem"

Declared by:

accounts.contact.accounts.<name>.vdirsyncer.verifyFingerprint

Optional. SHA1 or MD5 fingerprint of the expected server certificate.

See https://vdirsyncer.pimutils.org/en/stable/ssl-tutorial.html#ssl-tutorial for more information.

Type: null or string

Default:

null

Declared by:

accounts.contact.basePath

The base directory in which to save contacts. May be a relative path, in which case it is relative the home directory.

Type: string

Declared by:

accounts.email.accounts

List of email accounts.

Type: attribute set of (submodule)

Default:

{ }

Declared by:

accounts.email.accounts.<name>.enable

Whether this account is enabled. Potentially useful to allow setting email configuration globally then enabling or disabling on specific systems.

Type: boolean

Default:

true

Declared by:

accounts.email.accounts.<name>.address

The email address of this account.

Type: string matching the pattern .*@.*

Example:

"jane.doe@example.org"

Declared by:

accounts.email.accounts.<name>.aerc.enable

Whether to enable aerc.

Type: boolean

Default:

false

Example:

true

Declared by:

accounts.email.accounts.<name>.aerc.extraAccounts

Extra config added to the configuration section for this account in $HOME/.config/aerc/accounts.conf. See aerc-accounts(5).

Type: attribute set of (values (null, bool, int, string, or float) or a list of values, that will be joined with a comma)

Default:

{ }

Example:

{
  source = "maildir://~/Maildir/example";
}

Declared by:

accounts.email.accounts.<name>.aerc.extraBinds

Extra bindings specific to this account, added to $HOME/.config/aerc/binds.conf. See aerc-binds(5).

Type: attribute set of (strings concatenated with “\n” or attribute set of (values (null, bool, int, string, or float) or a list of values, that will be joined with a comma))

Default:

{ }

Example:

{ messages = { d = ":move ${folder.trash}<Enter>"; }; }

Declared by:

accounts.email.accounts.<name>.aerc.extraConfig

Config specific to this account, added to $HOME/.config/aerc/aerc.conf. Aerc only supports per-account UI configuration. For other sections of $HOME/.config/aerc/aerc.conf, use programs.aerc.extraConfig. See aerc-config(5).

Type: attribute set of (strings concatenated with “\n” or attribute set of (values (null, bool, int, string, or float) or a list of values, that will be joined with a comma))

Default:

{ }

Example:

{
  ui = {
    sidebar-width = 25;
  };
}

Declared by:

accounts.email.accounts.<name>.aerc.imapAuth

Sets the authentication mechanism if imap is used as the incoming method. See aerc-imap(5).

Type: null or one of “oauthbearer”, “xoauth2”

Default:

null

Example:

"auth"

Declared by:

accounts.email.accounts.<name>.aerc.imapOauth2Params

Sets the oauth2 params if authentication mechanism oauthbearer or xoauth2 is used. See aerc-imap(5).

Type: null or (submodule)

Default:

null

Example:

{
  token_endpoint = "<token_endpoint>";
}

Declared by:

accounts.email.accounts.<name>.aerc.imapOauth2Params.client_id

The OAuth2 client identifier.

Type: null or string

Default:

null

Declared by:

accounts.email.accounts.<name>.aerc.imapOauth2Params.client_secret

The OAuth2 client secret.

Type: null or string

Default:

null

Declared by:

accounts.email.accounts.<name>.aerc.imapOauth2Params.scope

The OAuth2 requested scope.

Type: null or string

Default:

null

Declared by:

accounts.email.accounts.<name>.aerc.imapOauth2Params.token_endpoint

The OAuth2 token endpoint.

Type: null or string

Default:

null

Declared by:

accounts.email.accounts.<name>.aerc.smtpAuth

Sets the authentication mechanism if smtp is used as the outgoing method. See aerc-smtp(5).

Type: null or one of “none”, “plain”, “login”, “oauthbearer”, “xoauth2”

Default:

"plain"

Example:

"auth"

Declared by:

accounts.email.accounts.<name>.aerc.smtpOauth2Params

Sets the oauth2 params if authentication mechanism oauthbearer or xoauth2 is used. See aerc-imap(5).

Type: null or (submodule)

Default:

null

Example:

{
  token_endpoint = "<token_endpoint>";
}

Declared by:

accounts.email.accounts.<name>.aerc.smtpOauth2Params.client_id

The OAuth2 client identifier.

Type: null or string

Default:

null

Declared by:

accounts.email.accounts.<name>.aerc.smtpOauth2Params.client_secret

The OAuth2 client secret.

Type: null or string

Default:

null

Declared by:

accounts.email.accounts.<name>.aerc.smtpOauth2Params.scope

The OAuth2 requested scope.

Type: null or string

Default:

null

Declared by:

accounts.email.accounts.<name>.aerc.smtpOauth2Params.token_endpoint

The OAuth2 token endpoint.

Type: null or string

Default:

null

Declared by:

accounts.email.accounts.<name>.aliases

Alternative identities of this account.

Type: list of (string matching the pattern .*@.* or (submodule))

Default:

[ ]

Example:

[
  "webmaster@example.org"
  "admin@example.org"
]

Declared by:

accounts.email.accounts.<name>.alot.contactCompletion

Contact completion configuration as expected per alot. See alot’s wiki for explanation about possible values.

Type: attribute set of string

Default:

{
  type = "shellcommand";
  command = "'${pkgs.notmuch}/bin/notmuch address --format=json --output=recipients  date:6M..'";
  regexp =
  "'\\[?{" + ''"name": "(?P<name>.*)", "address": "(?P<email>.+)", "name-addr": ".*"'' + "}[,\\]]?'";
  shellcommand_external_filtering = "False";
}

Example:

{
  type = "shellcommand";
  command = "abook --mutt-query";
  regexp = "'^(?P<email>[^@]+@[^\t]+)\t+(?P<name>[^\t]+)'";
  ignorecase = "True";
}

Declared by:

accounts.email.accounts.<name>.alot.extraConfig

Extra settings to add to this Alot account configuration.

Type: strings concatenated with “\n”

Default:

""

Declared by:

accounts.email.accounts.<name>.alot.sendMailCommand

Command to send a mail. If msmtp is enabled for the account, then this is set to msmtpq --read-envelope-from --read-recipients.

Type: null or string

Default:

null

Declared by:

accounts.email.accounts.<name>.astroid.enable

Whether to enable Astroid.

Type: boolean

Default:

false

Example:

true

Declared by:

accounts.email.accounts.<name>.astroid.extraConfig

Extra settings to add to this astroid account configuration.

Type: attribute set of anything

Default:

{ }

Example:

{
  select_query = "";
}

Declared by:

accounts.email.accounts.<name>.astroid.sendMailCommand

Command to send a mail. If msmtp is enabled for the account, then this is set to msmtpq --read-envelope-from --read-recipients.

Type: string

Declared by:

accounts.email.accounts.<name>.ews

The EWS configuration to use for this account.

Type: null or (submodule)

Default:

null

Declared by:

accounts.email.accounts.<name>.ews.authentication

The authentication mechanism.

Type: null or string or one of “anonymous”, “apop”, “clear”, “cram_md5”, “digest_md5”, “gssapi”, “login”, “ntlm”, “plain”, “xoauth2”

Default:

null

Example:

"plain"

Declared by:

accounts.email.accounts.<name>.ews.host

Hostname of EWS server.

Type: string

Example:

"ews.example.org"

Declared by:

accounts.email.accounts.<name>.ews.serviceDescriptionURL

URL to EWS service description.

Type: string

Example:

"https://ews.example.org/ews/exchange.asmx"

Declared by:

accounts.email.accounts.<name>.ews.tls

Configuration for secure connections.

Type: submodule

Default:

{ }

Declared by:

accounts.email.accounts.<name>.ews.tls.enable

Whether to enable TLS/SSL.

Type: boolean

Default:

true

Declared by:

accounts.email.accounts.<name>.ews.tls.certificatesFile

Path to file containing certificate authorities that should be used to validate the connection authenticity. If null then the system default is used. Note, if set then the system default may still be accepted.

Type: null or absolute path

Default:

"config.accounts.email.certificatesFile"

Declared by:

accounts.email.accounts.<name>.ews.tls.useStartTls

Whether to use STARTTLS. This is discouraged and should be avoided if possible. See https://datatracker.ietf.org/doc/html/rfc8314 for more.

Type: boolean

Default:

false

Declared by:

accounts.email.accounts.<name>.flavor

Some email providers have peculiar behavior that require special treatment. This option is therefore intended to indicate the nature of the provider.

When this indicates a specific provider then, for example, the IMAP, SMTP, and JMAP server configuration may be set automatically.

Type: one of “davmail”, “fastmail.com”, “gmail.com”, “mailbox.org”, “migadu.com”, “outlook.office365.com-ews”, “outlook.office365.com”, “plain”, “posteo.de”, “runbox.com”, “yandex.com”

Default:

"plain"

Declared by:

accounts.email.accounts.<name>.folders

Standard email folders.

Type: submodule

Default:

{ }

Declared by:

accounts.email.accounts.<name>.folders.drafts

Relative path of the drafts mail folder.

Type: null or string

Default:

"Drafts"

Declared by:

accounts.email.accounts.<name>.folders.inbox

Relative path of the inbox mail.

Type: string

Default:

"Inbox"

Declared by:

accounts.email.accounts.<name>.folders.sent

Relative path of the sent mail folder.

Type: null or string

Default:

"Sent"

Declared by:

accounts.email.accounts.<name>.folders.trash

Relative path of the deleted mail folder.

Type: string

Default:

"Trash"

Declared by:

accounts.email.accounts.<name>.getmail.enable

Whether to enable the getmail mail retriever for this account.

Type: boolean

Default:

false

Example:

true

Declared by:

accounts.email.accounts.<name>.getmail.delete

Enable if you want to delete read messages from the server. Most users should either enable delete or disable readAll.

Type: boolean

Default:

false

Declared by:

accounts.email.accounts.<name>.getmail.destinationCommand

Specify a command delivering the incoming mail to your maildir.

Type: null or string

Default:

null

Example:

"\${pkgs.maildrop}/bin/maildrop"

Declared by:

accounts.email.accounts.<name>.getmail.mailboxes

A non-empty list of mailboxes. To download all mail you can use the ALL mailbox.

Type: non-empty (list of string)

Default:

[ ]

Example:

[
  "INBOX"
  "INBOX.spam"
]

Declared by:

accounts.email.accounts.<name>.getmail.readAll

Enable if you want to fetch all, even the read messages from the server. Most users should either enable delete or disable readAll.

Type: boolean

Default:

true

Declared by:

accounts.email.accounts.<name>.gpg

GPG configuration.

Type: null or (submodule)

Default:

null

Declared by:

accounts.email.accounts.<name>.gpg.encryptByDefault

Encrypt outgoing messages by default.

Type: boolean

Default:

false

Declared by:

accounts.email.accounts.<name>.gpg.key

The key to use as listed in gpg --list-keys.

Type: string

Declared by:

accounts.email.accounts.<name>.gpg.signByDefault

Sign messages by default.

Type: boolean

Default:

false

Declared by:

accounts.email.accounts.<name>.himalaya.enable

Whether to enable the email client Himalaya CLI for this email account.

Type: boolean

Default:

false

Example:

true

Declared by:

accounts.email.accounts.<name>.himalaya.settings

Himalaya CLI configuration for this email account. See https://github.com/pimalaya/himalaya/blob/master/config.sample.toml for supported values.

Type: open submodule of (TOML value)

Default:

{ }

Declared by:

accounts.email.accounts.<name>.imap

The IMAP configuration to use for this account.

Type: null or (submodule)

Default:

null

Declared by:

accounts.email.accounts.<name>.imap.authentication

The authentication mechanism.

Type: null or string or one of “anonymous”, “apop”, “clear”, “cram_md5”, “digest_md5”, “gssapi”, “login”, “ntlm”, “plain”, “xoauth2”

Default:

null

Example:

"plain"

Declared by:

accounts.email.accounts.<name>.imap.host

Hostname of IMAP server.

Type: string

Example:

"imap.example.org"

Declared by:

accounts.email.accounts.<name>.imap.port

The port on which the IMAP server listens. If null then the default port is used.

Type: null or 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default:

null

Example:

993

Declared by:

accounts.email.accounts.<name>.imap.tls

Configuration for secure connections.

Type: submodule

Default:

{ }

Declared by:

accounts.email.accounts.<name>.imap.tls.enable

Whether to enable TLS/SSL.

Type: boolean

Default:

true

Declared by:

accounts.email.accounts.<name>.imap.tls.certificatesFile

Path to file containing certificate authorities that should be used to validate the connection authenticity. If null then the system default is used. Note, if set then the system default may still be accepted.

Type: null or absolute path

Default:

"config.accounts.email.certificatesFile"

Declared by:

accounts.email.accounts.<name>.imap.tls.useStartTls

Whether to use STARTTLS. This is discouraged and should be avoided if possible. See https://datatracker.ietf.org/doc/html/rfc8314 for more.

Type: boolean

Default:

false

Declared by:

accounts.email.accounts.<name>.imapnotify.enable

Whether to enable imapnotify.

Type: boolean

Default:

false

Example:

true

Declared by:

accounts.email.accounts.<name>.imapnotify.boxes

IMAP folders to watch.

Type: list of string

Default:

[ ]

Example:

[
  "Inbox"
  "[Gmail]/MyLabel"
]

Declared by:

accounts.email.accounts.<name>.imapnotify.extraArgs

Extra arguments to pass to goimapnotify.

Type: list of string

Default:

[ ]

Example:

[
  "-wait 1"
]

Declared by:

accounts.email.accounts.<name>.imapnotify.extraConfig

Additional configuration to add for this account.

Type: JSON value

Default:

{ }

Declared by:

accounts.email.accounts.<name>.imapnotify.onNotify

Shell commands to run on any event.

Type: string or attribute set of string

Default:

""

Example:

"\${pkgs.isync}/bin/mbsync test-%s"

Declared by:

accounts.email.accounts.<name>.imapnotify.onNotifyPost

Shell commands to run after onNotify event.

Type: string or attribute set of string

Default:

""

Example:

{
  mail = "\${pkgs.notmuch}/bin/notmuch new && \${pkgs.libnotify}/bin/notify-send 'New mail arrived'";
}

Declared by:

accounts.email.accounts.<name>.jmap

The JMAP configuration to use for this account.

Type: null or (submodule)

Default:

null

Declared by:

accounts.email.accounts.<name>.jmap.host

Hostname of JMAP server.

If both this option and are specified, host is preferred by applications when establishing a session.

Type: null or string

Default:

null

Example:

"jmap.example.org"

Declared by:

accounts.email.accounts.<name>.jmap.sessionUrl

URL for the JMAP Session resource.

If both this option and are specified, host is preferred by applications when establishing a session.

Type: null or string

Default:

null

Example:

"https://jmap.example.org:443/.well-known/jmap"

Declared by:

accounts.email.accounts.<name>.lieer.enable

Whether to enable lieer Gmail synchronization for notmuch.

Type: boolean

Default:

false

Example:

true

Declared by:

accounts.email.accounts.<name>.lieer.notmuchSetupWarning

Warn if Notmuch is not also enabled for this account.

This can safely be disabled if notmuch init has been used to configure this account outside of Home Manager.

Type: boolean

Default:

true

Declared by:

accounts.email.accounts.<name>.lieer.settings

Settings which are applied to .gmailieer.json for the account.

See the lieer manual for documentation of settings not explicitly covered by this module.

Type: open submodule of (JSON value)

Default:

{ }

Declared by:

accounts.email.accounts.<name>.lieer.settings.drop_non_existing_label

Allow missing labels on the Gmail side to be dropped.

Type: boolean

Default:

false

Declared by:

accounts.email.accounts.<name>.lieer.settings.file_extension

Extension to include in local file names, which can be useful for indexing with third-party programs.

Type: string

Default:

""

Example:

"mbox"

Declared by:

accounts.email.accounts.<name>.lieer.settings.ignore_empty_history

Work around a Gmail API quirk where an empty change history is sometimes returned.

See this GitHub issue for more details.

Type: boolean

Default:

false

Declared by:

accounts.email.accounts.<name>.lieer.settings.ignore_remote_labels

Set Gmail labels to ignore when syncing from remote labels to local tags (before translations).

Type: list of string

Default:

[
  "CATEGORY_FORUMS"
  "CATEGORY_PROMOTIONS"
  "CATEGORY_UPDATES"
  "CATEGORY_SOCIAL"
  "CATEGORY_PERSONAL"
]

Declared by:

accounts.email.accounts.<name>.lieer.settings.ignore_tags

Set labels to ignore when syncing from local tags to remote labels (after translations).

Type: list of string

Default:

[ ]

Declared by:

accounts.email.accounts.<name>.lieer.settings.local_trash_tag

Local tag to which the remote Gmail ‘TRASH’ label is translated.

Type: string

Default:

"trash"

Declared by:

accounts.email.accounts.<name>.lieer.settings.remove_local_messages

Remove local messages that have been deleted on the remote.

Type: boolean

Default:

true

Declared by:

accounts.email.accounts.<name>.lieer.settings.replace_slash_with_dot

Replace ‘/’ with ‘.’ in Gmail labels.

Type: boolean

Default:

false

Declared by:

accounts.email.accounts.<name>.lieer.settings.timeout

HTTP timeout in seconds. 0 means forever or system timeout.

Type: unsigned integer, meaning >=0

Default:

600

Declared by:

accounts.email.accounts.<name>.lieer.sync.enable

Whether to enable lieer synchronization service.

Type: boolean

Default:

false

Example:

true

Declared by:

accounts.email.accounts.<name>.lieer.sync.frequency

How often to synchronize the account.

This value is passed to the systemd timer configuration as the onCalendar option. See systemd.time(7) for more information about the format.

Type: string

Default:

"*:0/5"

Declared by:

accounts.email.accounts.<name>.maildir

Maildir configuration for this account.

Type: null or (submodule)

Default:

{
  path = "\${name}";
}

Declared by:

accounts.email.accounts.<name>.maildir.path

Path to maildir directory where mail for this account is stored. This is relative to the base maildir path.

Type: string

Declared by:

accounts.email.accounts.<name>.mbsync.enable

Whether to enable synchronization using mbsync.

Type: boolean

Default:

false

Example:

true

Declared by:

accounts.email.accounts.<name>.mbsync.create

Automatically create missing mailboxes within the given mail store.

Type: one of “none”, “maildir”, “imap”, “both”

Default:

"none"

Example:

"maildir"

Declared by:

accounts.email.accounts.<name>.mbsync.expunge

Permanently remove messages marked for deletion from the given mail store.

Type: one of “none”, “maildir”, “imap”, “both”

Default:

"none"

Example:

"both"

Declared by:

accounts.email.accounts.<name>.mbsync.extraConfig.account

Account section extra configuration.

Type: attribute set of (string or signed integer or boolean or list of string)

Default:

{ }

Example:

{
  TLSType = "IMAP";
  TLSVersions = [ "+1.3" "+1.2" "-1.1" ];
  PipelineDepth = 10;
  Timeout = 60;
};

Declared by:

accounts.email.accounts.<name>.mbsync.extraConfig.channel

Per channel extra configuration.

Type: attribute set of (string or signed integer or boolean or list of string)

Default:

{ }

Example:

{
  MaxMessages = 10000;
  MaxSize = "1m";
};

Declared by:

accounts.email.accounts.<name>.mbsync.extraConfig.local

Local store extra configuration.

Type: attribute set of (string or signed integer or boolean or list of string)

Default:

{ }

Declared by:

accounts.email.accounts.<name>.mbsync.extraConfig.remote

Remote store extra configuration.

Type: attribute set of (string or signed integer or boolean or list of string)

Default:

{ }

Declared by:

accounts.email.accounts.<name>.mbsync.flatten

If set, flattens the hierarchy within the maildir by substituting the canonical hierarchy delimiter / with this value.

Type: null or string

Default:

null

Example:

"."

Declared by:

accounts.email.accounts.<name>.mbsync.groups

Some email providers (Gmail) have a different directory hierarchy for synchronized email messages. Namely, when using mbsync without specifying a set of channels into a group, all synchronized directories end up beneath the [Gmail]/ directory.

This option allows you to specify a group, and subsequently channels that will allow you to sync your mail into an arbitrary hierarchy.

Type: attribute set of (submodule)

Default:

{ }

Declared by:

accounts.email.accounts.<name>.mbsync.groups.<name>.channels

List of channels that should be grouped together into this group. When performing a synchronization, the groups are synchronized, rather than the individual channels.

Using these channels and then grouping them together allows for you to define the maildir hierarchy as you see fit.

Type: attribute set of (submodule)

Default:

{ }

Declared by:

accounts.email.accounts.<name>.mbsync.groups.<name>.channels.<name>.extraConfig

Extra configuration lines to add to THIS channel’s configuration.

Type: attribute set of (string or signed integer or boolean or list of string)

Default:

{ }

Example:

{
  CopyArrivalDate = "yes";
  Create = "both";
  MaxMessages = 10000;
  MaxSize = "1m";
}

Declared by:

accounts.email.accounts.<name>.mbsync.groups.<name>.channels.<name>.farPattern

IMAP4 patterns for which mailboxes on the remote mail server to sync. If Patterns are specified, farPattern is interpreted as a prefix which is not matched against the patterns, and is not affected by mailbox list overrides.

If this is left as the default, then mbsync will default to the pattern INBOX.

Type: string

Default:

""

Example:

"[Gmail]/Sent Mail"

Declared by:

accounts.email.accounts.<name>.mbsync.groups.<name>.channels.<name>.name

The unique name for THIS channel in THIS group. The group will refer to this channel by this name.

In addition, you can manually sync just this channel by specifying this name to mbsync on the command line.

Type: string (read only)

Default:

"‹name›"

Declared by:

accounts.email.accounts.<name>.mbsync.groups.<name>.channels.<name>.nearPattern

Name for where mail coming from the remote (far) mail server will end up locally. The mailbox specified by the far pattern will be placed in this directory.

If this is left as the default, then mbsync will default to the pattern INBOX.

Type: string

Default:

""

Example:

"Sent"

Declared by:

accounts.email.accounts.<name>.mbsync.groups.<name>.channels.<name>.patterns

Instead of synchronizing just the mailboxes that match the farPattern, use it as a prefix which is not matched against the patterns, and is not affected by mailbox list overrides.

Type: list of string

Default:

[ ]

Example:

[
  "INBOX"
]

Declared by:

accounts.email.accounts.<name>.mbsync.groups.<name>.name

The name of this group for this account. These names are different than some others, because they will hide channel names that are the same.

Type: string (read only)

Default:

"‹name›"

Declared by:

accounts.email.accounts.<name>.mbsync.patterns

Pattern of mailboxes to synchronize.

Type: list of string

Default:

[
  "*"
]

Declared by:

accounts.email.accounts.<name>.mbsync.remove

Propagate mailbox deletions to the given mail store.

Type: one of “none”, “maildir”, “imap”, “both”

Default:

"none"

Example:

"imap"

Declared by:

accounts.email.accounts.<name>.mbsync.subFolders

The on-disk folder naming style. This option has no effect when flatten is used.

Type: one of “Verbatim”, “Maildir++”, “Legacy”

Default:

"Verbatim"

Example:

"Maildir++"

Declared by:

accounts.email.accounts.<name>.meli.enable

Whether to enable the meli mail client for this account. Requires SMTP settings…

Type: boolean

Default:

false

Example:

true

Declared by:

accounts.email.accounts.<name>.meli.mailboxAliases

Folder display name

Type: attribute set of (attribute set)

Default:

{ }

Example:

{
  INBOX = {
    alias = "📥 Inbox";
  };
  Sent = {
    alias = "📤 Sent";
  };
}

Declared by:

accounts.email.accounts.<name>.meli.mailboxes

Mailboxes to show in meli

Type: list of string

Default:

[
  "Inbox"
  "Sent"
  "Trash"
  "Drafts"
]

Example:

[
  "INBOX"
  "Sent"
  "Trash"
  "Drafts"
]

Declared by:

accounts.email.accounts.<name>.meli.settings

Account specific meli configuration

Type: open submodule of (TOML value)

Default:

{ }

Declared by:

accounts.email.accounts.<name>.msmtp.enable

Whether to enable msmtp.

If enabled then it is possible to use the --account command line option to send a message for a given account using the msmtp or msmtpq tool. For example, msmtp --account=private would send using the account defined in accounts.email.accounts.private. If the --account option is not given then the primary account will be used.

Type: boolean

Default:

false

Declared by:

accounts.email.accounts.<name>.msmtp.extraConfig

Extra configuration options to add to ~/.msmtprc. See https://marlam.de/msmtp/msmtprc.txt for examples.

Type: attribute set of string

Default:

{ }

Example:

{
  auth = "login";
}

Declared by:

accounts.email.accounts.<name>.msmtp.tls.fingerprint

Fingerprint of a trusted TLS certificate. The fingerprint can be obtained by executing msmtp --serverinfo --tls --tls-certcheck=off.

Type: null or string matching the pattern ([[:alnum:]]{2}:)+[[:alnum:]]{2}

Default:

null

Example:

"my:SH:a2:56:ha:sh"

Declared by:

accounts.email.accounts.<name>.mu.enable

Whether to enable mu indexing.

Type: boolean

Default:

false

Example:

true

Declared by:

accounts.email.accounts.<name>.mujmap.enable

Whether to enable mujmap JMAP synchronization for notmuch.

Type: boolean

Default:

false

Example:

true

Declared by:

accounts.email.accounts.<name>.mujmap.notmuchSetupWarning

Warn if Notmuch is not also enabled for this account.

This can safely be disabled if mujmap.toml is managed outside of Home Manager.

Type: boolean

Default:

true

Declared by:

accounts.email.accounts.<name>.mujmap.settings

Settings which are applied to mujmap.toml for the account.

See the mujmap project for documentation of settings not explicitly covered by this module.

Type: open submodule of (TOML value)

Default:

{ }

Declared by:

accounts.email.accounts.<name>.mujmap.settings.auto_create_new_mailboxes

Whether to create new mailboxes automatically on the server from notmuch tags.

Type: boolean

Default:

true

Declared by:

accounts.email.accounts.<name>.mujmap.settings.cache_dir

The cache directory in which to store mail files while they are being downloaded. The default is operating-system specific.

Type: null or string

Default:

null

Declared by:

accounts.email.accounts.<name>.mujmap.settings.fqdn

Fully qualified domain name of the JMAP service.

mujmap looks up the JMAP SRV record for this host to determine the JMAP session URL. Mutually exclusive with .

If null, defaults to .

Type: null or string

Default:

null

Example:

"example.com"

Declared by:

accounts.email.accounts.<name>.mujmap.settings.password_command

Shell command which will print a password to stdout for basic HTTP authentication.

If null, defaults to .

Type: null or string or list of string

Default:

null

Example:

"pass alice@example.com"

Declared by:

accounts.email.accounts.<name>.mujmap.settings.session_url

Session URL to connect to.

Mutually exclusive with .

If null, defaults to .

Type: null or string

Default:

null

Example:

"https://jmap.example.com/.well-known/jmap"

Declared by:

accounts.email.accounts.<name>.mujmap.settings.tags

Tag configuration.

Beware that there are quirks that require manual consideration if changing the values of these files; please see https://github.com/elizagamedev/mujmap/blob/main/mujmap.toml.example for more details.

Type: open submodule of (TOML value)

Default:

{ }

Declared by:

accounts.email.accounts.<name>.mujmap.settings.tags.deleted

Tag for notmuch to use for messages stored in the mailbox labeled with the Trash name attribute.

If set to an empty string, this mailbox and its child mailboxes are not synchronized with a tag.

Type: string

Default:

"deleted"

Declared by:

accounts.email.accounts.<name>.mujmap.settings.tags.directory_separator

Directory separator for mapping notmuch tags to maildirs.

Type: string

Default:

"/"

Example:

"."

Declared by:

accounts.email.accounts.<name>.mujmap.settings.tags.important

Tag for notmuch to use for messages stored in the mailbox labeled with the Important name attribute and/or with the $Important keyword.

If set to an empty string, this mailbox, its child mailboxes, and these keywords are not synchronized with a tag.

Type: string

Default:

"important"

Declared by:

accounts.email.accounts.<name>.mujmap.settings.tags.inbox

Tag for notmuch to use for messages stored in the mailbox labeled with the Inbox name attribute.

If set to an empty string, this mailbox and its child mailboxes are not synchronized with a tag.

Type: string

Default:

"inbox"

Declared by:

accounts.email.accounts.<name>.mujmap.settings.tags.lowercase

If true, translate all mailboxes to lowercase names when mapping to notmuch tags.

Type: boolean

Default:

false

Declared by:

accounts.email.accounts.<name>.mujmap.settings.tags.phishing

Tag for notmuch to use for the IANA $Phishing keyword.

If set to an empty string, this keyword is not synchronized with a tag.

Type: string

Default:

"phishing"

Declared by:

accounts.email.accounts.<name>.mujmap.settings.tags.sent

Tag for notmuch to use for messages stored in the mailbox labeled with the Sent name attribute.

If set to an empty string, this mailbox and its child mailboxes are not synchronized with a tag.

Type: string

Default:

"sent"

Declared by:

accounts.email.accounts.<name>.mujmap.settings.tags.spam

Tag for notmuch to use for messages stored in the mailbox labeled with the Junk name attribute and/or with the $Junk keyword, except for messages with the $NotJunk keyword.

If set to an empty string, this mailbox, its child mailboxes, and these keywords are not synchronized with a tag.

Type: string

Default:

"spam"

Declared by:

accounts.email.accounts.<name>.mujmap.settings.username

Username for basic HTTP authentication.

If null, defaults to .

Type: null or string

Default:

null

Example:

"alice@example.com"

Declared by:

accounts.email.accounts.<name>.name

Unique identifier of the account. This is set to the attribute name of the account configuration.

Type: string (read only)

Declared by:

accounts.email.accounts.<name>.neomutt.enable

Whether to enable NeoMutt.

Type: boolean

Default:

false

Example:

true

Declared by:

accounts.email.accounts.<name>.neomutt.extraConfig

Extra lines to add to the folder hook for this account.

Type: strings concatenated with “\n”

Default:

""

Example:

"color status cyan default"

Declared by:

accounts.email.accounts.<name>.neomutt.extraMailboxes

List of extra mailboxes

Type: list of (string or (submodule))

Default:

[ ]

Declared by:

accounts.email.accounts.<name>.neomutt.extraMailboxes.*.mailbox

Name of mailbox folder to be included

Type: string

Example:

"Sent"

accounts.email.accounts.<name>.neomutt.extraMailboxes.*.name

Name to display

Type: null or string

Default:

null

Example:

"Junk"

accounts.email.accounts.<name>.neomutt.extraMailboxes.*.type

Whether this mailbox is a maildir folder or an IMAP mailbox

Type: null or one of “maildir”, “imap”

Default:

null

Example:

"imap"

accounts.email.accounts.<name>.neomutt.mailboxName

Use a different name as mailbox name

Type: null or string

Default:

null

Example:

"==== <mailbox-name> ==="

Declared by:

accounts.email.accounts.<name>.neomutt.mailboxType

Whether this account uses maildir folders or IMAP mailboxes

Type: one of “maildir”, “imap”

Default:

"maildir"

Example:

"imap"

Declared by:

accounts.email.accounts.<name>.neomutt.sendMailCommand

Command to send a mail. If not set, neomutt will be in charge of sending mails.

Type: null or string

Default:

if config.msmtp.enable then
  "msmtpq --read-envelope-from --read-recipients"
else
  null

Example:

"msmtpq --read-envelope-from --read-recipients"

Declared by:

accounts.email.accounts.<name>.neomutt.showDefaultMailbox

Show the default mailbox (INBOX)

Type: boolean

Default:

true

Declared by:

accounts.email.accounts.<name>.notmuch.enable

Whether to enable notmuch indexing.

Type: boolean

Default:

false

Example:

true

Declared by:

accounts.email.accounts.<name>.notmuch.neomutt.enable

Whether to enable Notmuch support in NeoMutt.

Type: boolean

Default:

true

Example:

true

Declared by:

accounts.email.accounts.<name>.notmuch.neomutt.virtualMailboxes

List of virtual mailboxes using Notmuch queries

Type: list of (submodule)

Default:

[
  {
    name = "My INBOX";
    query = "tag:inbox";
  }
]

Example:

[
  {
    name = "My INBOX";
    query = "tag:inbox";
  }
]

Declared by:

accounts.email.accounts.<name>.notmuch.neomutt.virtualMailboxes.*.limit

Restricts number of messages/threads in the result.

Type: null or signed integer

Default:

null

Example:

10

Declared by:

accounts.email.accounts.<name>.notmuch.neomutt.virtualMailboxes.*.name

Name to display

Type: string

Default:

"My INBOX"

Example:

"My INBOX"

Declared by:

accounts.email.accounts.<name>.notmuch.neomutt.virtualMailboxes.*.query

Notmuch query

Type: string

Default:

"tag:inbox"

Example:

"tag:inbox"

Declared by:

accounts.email.accounts.<name>.notmuch.neomutt.virtualMailboxes.*.type

Reads all matching messages or whole-threads. The default is ‘messages’ or nm_query_type.

Type: null or one of “threads”, “messages”

Default:

null

Example:

"threads"

Declared by:

accounts.email.accounts.<name>.offlineimap.enable

Whether to enable OfflineIMAP.

Type: boolean

Default:

false

Example:

true

Declared by:

accounts.email.accounts.<name>.offlineimap.extraConfig.account

Extra configuration options to add to the account section.

Type: attribute set of (string or signed integer or boolean)

Default:

{ }

Example:

{
  autorefresh = 20;
}

Declared by:

accounts.email.accounts.<name>.offlineimap.extraConfig.local

Extra configuration options to add to the local account section.

Type: attribute set of (string or signed integer or boolean)

Default:

{ }

Example:

{
  sync_deletes = true;
}

Declared by:

accounts.email.accounts.<name>.offlineimap.extraConfig.remote

Extra configuration options to add to the remote account section.

Type: attribute set of (string or signed integer or boolean)

Default:

{ }

Example:

{
  expunge = false;
  maxconnections = 2;
}

Declared by:

accounts.email.accounts.<name>.offlineimap.postSyncHookCommand

Command to run after fetching new mails.

Type: strings concatenated with “\n”

Default:

""

Declared by:

accounts.email.accounts.<name>.passwordCommand

A command, which when run writes the account password on standard output.

Type: null or string or list of string

Default:

null

Example:

"secret-tool lookup email me@example.org"

Declared by:

accounts.email.accounts.<name>.primary

Whether this is the primary account. Only one account may be set as primary.

Type: boolean

Default:

false

Declared by:

accounts.email.accounts.<name>.realName

Name displayed when sending mails.

Type: string

Example:

"Jane Doe"

Declared by:

accounts.email.accounts.<name>.signature

Signature configuration.

Type: submodule

Default:

{ }

Declared by:

accounts.email.accounts.<name>.signature.command

A command that generates a signature.

Type: null or absolute path

Default:

null

Example:

pkgs.writeScript "signature" "echo This is my signature"

Declared by:

accounts.email.accounts.<name>.signature.delimiter

The delimiter used between the document and the signature.

Type: string

Default:

''
  --
''

Example:

~*~*~*~*~*~*~*~*~*~*~*~

Declared by:

accounts.email.accounts.<name>.signature.htmlFormat

Whether Thunderbird should interpret text as an HTML signature.

This maps to Thunderbird’s mail.identity.id_*.htmlSigFormat preference. The signature content itself is still written through mail.identity.id_*.htmlSigText.

Type: boolean

Default:

false

Declared by:

accounts.email.accounts.<name>.signature.showSignature

Method to communicate the signature.

Type: one of “append”, “attach”, “none”

Default:

"none"

Declared by:

accounts.email.accounts.<name>.signature.text

Signature content.

Type: string

Default:

""

Example:

''
  --
  Luke Skywalker
  May the force be with you.
''

Declared by:

accounts.email.accounts.<name>.smtp

The SMTP configuration to use for this account.

Type: null or (submodule)

Default:

null

Declared by:

accounts.email.accounts.<name>.smtp.authentication

The authentication mechanism.

Type: null or string or one of “anonymous”, “apop”, “clear”, “cram_md5”, “digest_md5”, “gssapi”, “login”, “ntlm”, “plain”, “xoauth2”

Default:

null

Example:

"plain"

Declared by:

accounts.email.accounts.<name>.smtp.host

Hostname of SMTP server.

Type: string

Example:

"smtp.example.org"

Declared by:

accounts.email.accounts.<name>.smtp.port

The port on which the SMTP server listens. If null then the default port is used.

Type: null or 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default:

null

Example:

465

Declared by:

accounts.email.accounts.<name>.smtp.tls

Configuration for secure connections.

Type: submodule

Default:

{ }

Declared by:

accounts.email.accounts.<name>.smtp.tls.enable

Whether to enable TLS/SSL.

Type: boolean

Default:

true

Declared by:

accounts.email.accounts.<name>.smtp.tls.certificatesFile

Path to file containing certificate authorities that should be used to validate the connection authenticity. If null then the system default is used. Note, if set then the system default may still be accepted.

Type: null or absolute path

Default:

"config.accounts.email.certificatesFile"

Declared by:

accounts.email.accounts.<name>.smtp.tls.useStartTls

Whether to use STARTTLS. This is discouraged and should be avoided if possible. See https://datatracker.ietf.org/doc/html/rfc8314 for more.

Type: boolean

Default:

false

Declared by:

accounts.email.accounts.<name>.thunderbird.enable

Whether to enable the Thunderbird mail client for this account.

Type: boolean

Default:

false

Example:

true

Declared by:

accounts.email.accounts.<name>.thunderbird.messageFilters

List of message filters to add to this Thunderbird account configuration.

Home Manager writes these to Thunderbird’s per-account msgFilterRules.dat file under the profile mail server directory, for example ImapMail/<server>/msgFilterRules.dat.

Thunderbird does not publish a stable reference for all fields in this file. To migrate existing filters, inspect an existing msgFilterRules.dat file and translate each filter block into this option.

Type: list of (submodule)

Default:

[ ]

Example:

[
  {
    action = "Mark read";
    condition = "ALL";
    enabled = true;
    name = "Mark as Read on Archive";
    type = "128";
  }
]

Declared by:

accounts.email.accounts.<name>.thunderbird.messageFilters.*.enabled

Whether this filter is currently active.

Type: boolean

Default:

true

Declared by:

accounts.email.accounts.<name>.thunderbird.messageFilters.*.action

Action to perform on matched messages.

Type: string

Declared by:

accounts.email.accounts.<name>.thunderbird.messageFilters.*.actionValue

Argument passed to the filter action, e.g. a folder path.

Type: null or string

Default:

null

Declared by:

accounts.email.accounts.<name>.thunderbird.messageFilters.*.condition

Condition to match messages against.

Type: string

Declared by:

accounts.email.accounts.<name>.thunderbird.messageFilters.*.extraConfig

Extra settings to apply to the filter

Type: null or string

Default:

null

Declared by:

accounts.email.accounts.<name>.thunderbird.messageFilters.*.name

Name for the filter.

Type: string

Declared by:

accounts.email.accounts.<name>.thunderbird.messageFilters.*.text

The raw text of the filter. Note that this will override all other options.

Type: null or string

Default:

null

Declared by:

accounts.email.accounts.<name>.thunderbird.messageFilters.*.type

Thunderbird filter type bitmask written as the type="..." field in msgFilterRules.dat.

Thunderbird does not publish a stable table for this bitmask. To reuse an existing value, inspect the account’s msgFilterRules.dat file and copy the type="..." field from a comparable filter.

Type: string

Declared by:

accounts.email.accounts.<name>.thunderbird.perIdentitySettings

Extra settings to add to each identity of this Thunderbird account configuration. The id given as argument is an automatically generated identifier.

Type: function that evaluates to a(n) attribute set of (boolean or signed integer or string)

Default:

_: { }

Example:

id: {
  "mail.identity.id_${id}.protectSubject" = false;
  "mail.identity.id_${id}.autoEncryptDrafts" = false;
};

Declared by:

accounts.email.accounts.<name>.thunderbird.profiles

List of Thunderbird profiles for which this account should be enabled. If this list is empty (the default), this account will be enabled for all declared profiles.

Type: list of string

Default:

[ ]

Example:

[
  "profile1"
  "profile2"
]

Declared by:

accounts.email.accounts.<name>.thunderbird.settings

Extra settings to add to this Thunderbird account configuration. The id given as argument is an automatically generated account identifier.

Type: function that evaluates to a(n) attribute set of (boolean or signed integer or string)

Default:

_: { }

Example:

id: {
  "mail.server.server_${id}.check_new_mail" = false;
};

Declared by:

accounts.email.accounts.<name>.userName

The server username of this account. This will be used as the SMTP, IMAP, and JMAP user name.

Type: null or string

Default:

null

Declared by:

accounts.email.certificatesFile

Path to default file containing certificate authorities that should be used to validate the connection authenticity. This path may be overridden on a per-account basis.

Type: null or absolute path

Default:

"/etc/ssl/certs/ca-certificates.crt"

Declared by:

accounts.email.maildirBasePath

The base directory for account maildir directories. May be a relative path (e.g. the user setting this value as “MyMaildir”), in which case it is relative the home directory (e.g. resulting in “~/MyMaildir”).

Type: string

Default:

"Maildir"

Declared by: