Appendix A. Home Manager Configuration Options

_module.args

Additional arguments passed to each module in addition to ones like lib, config, and pkgs, modulesPath.

This option is also available to all submodules. Submodules do not inherit args from their parent module, nor do they provide args to their parent module or sibling submodules. The sole exception to this is the argument name which is provided by parent modules to a submodule and contains the attribute name the submodule is bound to, or a unique generated name if it is not bound to an attribute.

Some arguments are already passed by default, of which the following cannot be changed with this option:

  • lib: The nixpkgs library.

  • config: The results of all options after merging the values from all modules together.

  • options: The options declared in all modules.

  • specialArgs: The specialArgs argument passed to evalModules.

  • All attributes of specialArgs

    Whereas option values can generally depend on other option values thanks to laziness, this does not apply to imports, which must be computed statically before anything else.

    For this reason, callers of the module system can provide specialArgs which are available during import resolution.

    For NixOS, specialArgs includes modulesPath, which allows you to import extra modules from the nixpkgs package tree without having to somehow make the module aware of the location of the nixpkgs or NixOS directories.

    { modulesPath, ... }: {
      imports = [
        (modulesPath + "/profiles/minimal.nix")
      ];
    }
    

For NixOS, the default value for this option includes at least this argument:

  • pkgs: The nixpkgs package set according to the nixpkgs.pkgs option.

Type: lazy attribute set of raw value

Declared by:

<nixpkgs/lib/modules.nix>
accounts.calendar.accounts

List of calendars.

Type: attribute set of (submodule)

Default: { }

Declared by:

<home-manager/modules/programs/qcal.nix>
<home-manager/modules/accounts/calendar.nix>
accounts.calendar.accounts.<name>.khal.enable

Whether to enable khal access.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/accounts/calendar.nix>
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:

<home-manager/modules/accounts/calendar.nix>
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:

<home-manager/modules/accounts/calendar.nix>
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:

<home-manager/modules/accounts/calendar.nix>
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:

<home-manager/modules/accounts/calendar.nix>
accounts.calendar.accounts.<name>.khal.readOnly

Keep khal from making any changes to this account.

Type: boolean

Default: false

Declared by:

<home-manager/modules/accounts/calendar.nix>
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:

<home-manager/modules/accounts/calendar.nix>
accounts.calendar.accounts.<name>.local

Local configuration for the calendar.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/accounts/calendar.nix>
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:

<home-manager/modules/accounts/calendar.nix>
accounts.calendar.accounts.<name>.local.fileExt

The file extension to use.

Type: null or string

Default: ".ics"

Declared by:

<home-manager/modules/accounts/calendar.nix>
accounts.calendar.accounts.<name>.local.path

The path of the storage.

Type: string

Default: "‹accounts.calendar.basePath›/‹name›"

Declared by:

<home-manager/modules/accounts/calendar.nix>
accounts.calendar.accounts.<name>.local.type

The type of the storage.

Type: one of “filesystem”, “singlefile”

Default: "filesystem"

Declared by:

<home-manager/modules/accounts/calendar.nix>
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:

<home-manager/modules/accounts/calendar.nix>
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:

<home-manager/modules/accounts/calendar.nix>
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:

<home-manager/modules/accounts/calendar.nix>
accounts.calendar.accounts.<name>.qcal.enable

Whether to enable qcal access.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/qcal.nix>
accounts.calendar.accounts.<name>.remote

Remote configuration for the calendar.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/accounts/calendar.nix>
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:

<home-manager/modules/accounts/calendar.nix>
accounts.calendar.accounts.<name>.remote.type

The type of the storage.

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

Declared by:

<home-manager/modules/accounts/calendar.nix>
accounts.calendar.accounts.<name>.remote.url

The URL of the storage.

Type: null or string

Default: null

Declared by:

<home-manager/modules/accounts/calendar.nix>
accounts.calendar.accounts.<name>.remote.userName

User name for authentication.

Type: null or string

Default: null

Declared by:

<home-manager/modules/accounts/calendar.nix>
accounts.calendar.accounts.<name>.vdirsyncer.enable

Whether to enable synchronization using vdirsyncer.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/accounts/calendar.nix>
accounts.calendar.accounts.<name>.vdirsyncer.auth

Authentication settings. The default is basic.

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

Default: null

Declared by:

<home-manager/modules/accounts/calendar.nix>
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:

<home-manager/modules/accounts/calendar.nix>
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:

<home-manager/modules/accounts/calendar.nix>
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:

<home-manager/modules/accounts/calendar.nix>
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:

<home-manager/modules/accounts/calendar.nix>
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:

<home-manager/modules/accounts/calendar.nix>
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:

<home-manager/modules/accounts/calendar.nix>
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:

<home-manager/modules/accounts/calendar.nix>
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:

<home-manager/modules/accounts/calendar.nix>
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:

<home-manager/modules/accounts/calendar.nix>
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:

<home-manager/modules/accounts/calendar.nix>
accounts.calendar.accounts.<name>.vdirsyncer.timeRange.end

End of time range to show.

Type: string

Declared by:

<home-manager/modules/accounts/calendar.nix>
accounts.calendar.accounts.<name>.vdirsyncer.timeRange.start

Start of time range to show.

Type: string

Declared by:

<home-manager/modules/accounts/calendar.nix>
accounts.calendar.accounts.<name>.vdirsyncer.tokenFile

A file path where access tokens are stored.

Type: null or string

Default: null

Declared by:

<home-manager/modules/accounts/calendar.nix>
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:

<home-manager/modules/accounts/calendar.nix>
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:

<home-manager/modules/accounts/calendar.nix>
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:

<home-manager/modules/accounts/calendar.nix>
accounts.calendar.accounts.<name>.vdirsyncer.verify

Null or path to certificate to verify SSL against

Type: null or path

Default: null

Example: "/path/to/cert.pem"

Declared by:

<home-manager/modules/accounts/calendar.nix>
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:

<home-manager/modules/accounts/calendar.nix>
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:

<home-manager/modules/accounts/calendar.nix>
accounts.contact.accounts

List of contacts.

Type: attribute set of (submodule)

Default: { }

Declared by:

<home-manager/modules/programs/khard.nix>
<home-manager/modules/accounts/contacts.nix>
accounts.contact.accounts.<name>.khal.enable

Whether to enable khal access.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/accounts/contacts.nix>
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:

<home-manager/modules/accounts/contacts.nix>
accounts.contact.accounts.<name>.khal.collections

VCARD collections to be searched for contact birthdays.

Type: null or (list of string)

Default: null

Declared by:

<home-manager/modules/accounts/contacts.nix>
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:

<home-manager/modules/accounts/contacts.nix>
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:

<home-manager/modules/accounts/contacts.nix>
accounts.contact.accounts.<name>.khal.readOnly

Keep khal from making any changes to this account.

Type: boolean

Default: false

Declared by:

<home-manager/modules/accounts/contacts.nix>
accounts.contact.accounts.<name>.khard.enable

Whether to enable khard access.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/khard.nix>
accounts.contact.accounts.<name>.khard.defaultCollection

VCARD collection to be searched by khard.

Type: string

Default: ""

Declared by:

<home-manager/modules/programs/khard.nix>
accounts.contact.accounts.<name>.local

Local configuration for the contacts.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/accounts/contacts.nix>
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:

<home-manager/modules/accounts/contacts.nix>
accounts.contact.accounts.<name>.local.fileExt

The file extension to use.

Type: null or string

Default: null

Declared by:

<home-manager/modules/accounts/contacts.nix>
accounts.contact.accounts.<name>.local.path

The path of the storage.

Type: string

Default: "‹accounts.contact.basePath›/‹name›"

Declared by:

<home-manager/modules/accounts/contacts.nix>
accounts.contact.accounts.<name>.local.type

The type of the storage.

Type: one of “filesystem”, “singlefile”

Declared by:

<home-manager/modules/accounts/contacts.nix>
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:

<home-manager/modules/accounts/contacts.nix>
accounts.contact.accounts.<name>.remote

Remote configuration for the contacts.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/accounts/contacts.nix>
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:

<home-manager/modules/accounts/contacts.nix>
accounts.contact.accounts.<name>.remote.type

The type of the storage.

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

Declared by:

<home-manager/modules/accounts/contacts.nix>
accounts.contact.accounts.<name>.remote.url

The URL of the storage.

Type: null or string

Default: null

Declared by:

<home-manager/modules/accounts/contacts.nix>
accounts.contact.accounts.<name>.remote.userName

User name for authentication.

Type: null or string

Default: null

Declared by:

<home-manager/modules/accounts/contacts.nix>
accounts.contact.accounts.<name>.vdirsyncer.enable

Whether to enable synchronization using vdirsyncer.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/accounts/contacts.nix>
accounts.contact.accounts.<name>.vdirsyncer.auth

Authentication settings. The default is basic.

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

Default: null

Declared by:

<home-manager/modules/accounts/contacts.nix>
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:

<home-manager/modules/accounts/contacts.nix>
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:

<home-manager/modules/accounts/contacts.nix>
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:

<home-manager/modules/accounts/contacts.nix>
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:

<home-manager/modules/accounts/contacts.nix>
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:

<home-manager/modules/accounts/contacts.nix>
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:

<home-manager/modules/accounts/contacts.nix>
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:

<home-manager/modules/accounts/contacts.nix>
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:

<home-manager/modules/accounts/contacts.nix>
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:

<home-manager/modules/accounts/contacts.nix>
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:

<home-manager/modules/accounts/contacts.nix>
accounts.contact.accounts.<name>.vdirsyncer.timeRange.end

End of time range to show.

Type: string

Declared by:

<home-manager/modules/accounts/contacts.nix>
accounts.contact.accounts.<name>.vdirsyncer.timeRange.start

Start of time range to show.

Type: string

Declared by:

<home-manager/modules/accounts/contacts.nix>
accounts.contact.accounts.<name>.vdirsyncer.tokenFile

A file path where access tokens are stored.

Type: null or string

Default: null

Declared by:

<home-manager/modules/accounts/contacts.nix>
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:

<home-manager/modules/accounts/contacts.nix>
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:

<home-manager/modules/accounts/contacts.nix>
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:

<home-manager/modules/accounts/contacts.nix>
accounts.contact.accounts.<name>.vdirsyncer.verify

Null or path to certificate to verify SSL against

Type: null or path

Default: null

Example: "/path/to/cert.pem"

Declared by:

<home-manager/modules/accounts/contacts.nix>
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:

<home-manager/modules/accounts/contacts.nix>
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:

<home-manager/modules/accounts/contacts.nix>
accounts.email.accounts

List of email accounts.

Type: attribute set of (submodule)

Default: { }

Declared by:

<home-manager/modules/services/imapnotify.nix>
<home-manager/modules/programs/thunderbird.nix>
<home-manager/modules/programs/offlineimap.nix>
<home-manager/modules/programs/notmuch.nix>
<home-manager/modules/programs/neomutt.nix>
<home-manager/modules/programs/mujmap.nix>
<home-manager/modules/programs/mu.nix>
<home-manager/modules/programs/msmtp.nix>
<home-manager/modules/programs/mbsync.nix>
<home-manager/modules/programs/lieer.nix>
<home-manager/modules/programs/himalaya.nix>
<home-manager/modules/programs/getmail.nix>
<home-manager/modules/programs/astroid.nix>
<home-manager/modules/programs/alot.nix>
<home-manager/modules/programs/aerc.nix>
<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.address

The email address of this account.

Type: string matching the pattern .*@.*

Example: "jane.doe@example.org"

Declared by:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.aerc.enable

Whether to enable aerc.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/aerc.nix>
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:

<home-manager/modules/programs/aerc.nix>
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 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:

<home-manager/modules/programs/aerc.nix>
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 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:

<home-manager/modules/programs/aerc.nix>
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:

<home-manager/modules/programs/aerc.nix>
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:

<home-manager/modules/programs/aerc.nix>
accounts.email.accounts.<name>.aerc.imapOauth2Params.client_id

The OAuth2 client identifier.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/aerc.nix>
accounts.email.accounts.<name>.aerc.imapOauth2Params.client_secret

The OAuth2 client secret.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/aerc.nix>
accounts.email.accounts.<name>.aerc.imapOauth2Params.scope

The OAuth2 requested scope.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/aerc.nix>
accounts.email.accounts.<name>.aerc.imapOauth2Params.token_endpoint

The OAuth2 token endpoint.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/aerc.nix>
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:

<home-manager/modules/programs/aerc.nix>
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:

<home-manager/modules/programs/aerc.nix>
accounts.email.accounts.<name>.aerc.smtpOauth2Params.client_id

The OAuth2 client identifier.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/aerc.nix>
accounts.email.accounts.<name>.aerc.smtpOauth2Params.client_secret

The OAuth2 client secret.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/aerc.nix>
accounts.email.accounts.<name>.aerc.smtpOauth2Params.scope

The OAuth2 requested scope.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/aerc.nix>
accounts.email.accounts.<name>.aerc.smtpOauth2Params.token_endpoint

The OAuth2 token endpoint.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/aerc.nix>
accounts.email.accounts.<name>.aliases

Alternative email addresses of this account.

Type: list of string matching the pattern .*@.*

Default: [ ]

Example:

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

Declared by:

<home-manager/modules/accounts/email.nix>
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:

{
  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";
  type = "shellcommand";
}

Example:

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

Declared by:

<home-manager/modules/programs/alot.nix>
accounts.email.accounts.<name>.alot.extraConfig

Extra settings to add to this Alot account configuration.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/alot.nix>
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

Declared by:

<home-manager/modules/programs/alot.nix>
accounts.email.accounts.<name>.astroid.enable

Whether to enable Astroid.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/astroid.nix>
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:

<home-manager/modules/programs/astroid.nix>
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:

<home-manager/modules/programs/astroid.nix>
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 “plain”, “gmail.com”, “runbox.com”, “fastmail.com”, “yandex.com”, “outlook.office365.com”

Default: "plain"

Declared by:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.folders

Standard email folders.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.folders.drafts

Relative path of the drafts mail folder.

Type: null or string

Default: "Drafts"

Declared by:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.folders.inbox

Relative path of the inbox mail.

Type: string

Default: "Inbox"

Declared by:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.folders.sent

Relative path of the sent mail folder.

Type: null or string

Default: "Sent"

Declared by:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.folders.trash

Relative path of the deleted mail folder.

Type: string

Default: "Trash"

Declared by:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.getmail.enable

Whether to enable the getmail mail retriever for this account.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/getmail.nix>
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:

<home-manager/modules/programs/getmail.nix>
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:

<home-manager/modules/programs/getmail.nix>
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:

<home-manager/modules/programs/getmail.nix>
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:

<home-manager/modules/programs/getmail.nix>
accounts.email.accounts.<name>.gpg

GPG configuration.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.gpg.encryptByDefault

Encrypt outgoing messages by default.

Type: boolean

Default: false

Declared by:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.gpg.key

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

Type: string

Declared by:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.gpg.signByDefault

Sign messages by default.

Type: boolean

Default: false

Declared by:

<home-manager/modules/accounts/email.nix>
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:

<home-manager/modules/programs/himalaya.nix>
accounts.email.accounts.<name>.himalaya.settings

Himalaya CLI configuration for this email account. See https://pimalaya.org/himalaya/cli/latest/configuration/index.html#account-configuration for supported values.

Type: TOML value

Default: { }

Declared by:

<home-manager/modules/programs/himalaya.nix>
accounts.email.accounts.<name>.imap

The IMAP configuration to use for this account.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.imap.host

Hostname of IMAP server.

Type: string

Example: "imap.example.org"

Declared by:

<home-manager/modules/accounts/email.nix>
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:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.imap.tls

Configuration for secure connections.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.imap.tls.enable

Whether to enable TLS/SSL.

Type: boolean

Default: true

Declared by:

<home-manager/modules/accounts/email.nix>
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 path

Default: "config.accounts.email.certificatesFile"

Declared by:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.imap.tls.useStartTls

Whether to use STARTTLS.

Type: boolean

Default: false

Declared by:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.imapnotify.enable

Whether to enable imapnotify.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/imapnotify.nix>
accounts.email.accounts.<name>.imapnotify.boxes

IMAP folders to watch.

Type: list of string

Default: [ ]

Example:

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

Declared by:

<home-manager/modules/services/imapnotify.nix>
accounts.email.accounts.<name>.imapnotify.extraConfig

Additional configuration to add for this account.

Type: JSON value

Default: { }

Example:

{
  wait = 10;
}

Declared by:

<home-manager/modules/services/imapnotify.nix>
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:

<home-manager/modules/services/imapnotify.nix>
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:

<home-manager/modules/services/imapnotify.nix>
accounts.email.accounts.<name>.jmap

The JMAP configuration to use for this account.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.jmap.host

Hostname of JMAP server.

If both this option and accounts.email.accounts.<name>.jmap.sessionUrl are specified, host is preferred by applications when establishing a session.

Type: null or string

Default: null

Example: "jmap.example.org"

Declared by:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.jmap.sessionUrl

URL for the JMAP Session resource.

If both this option and accounts.email.accounts.<name>.jmap.host 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:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.lieer.enable

Whether to enable lieer Gmail synchronization for notmuch.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/lieer.nix>
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:

<home-manager/modules/programs/lieer.nix>
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: JSON value

Default: { }

Declared by:

<home-manager/modules/programs/lieer.nix>
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:

<home-manager/modules/programs/lieer.nix>
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:

<home-manager/modules/programs/lieer.nix>
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:

<home-manager/modules/programs/lieer.nix>
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:

<home-manager/modules/programs/lieer.nix>
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:

<home-manager/modules/programs/lieer.nix>
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:

<home-manager/modules/programs/lieer.nix>
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:

<home-manager/modules/programs/lieer.nix>
accounts.email.accounts.<name>.lieer.settings.replace_slash_with_dot

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

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/lieer.nix>
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:

<home-manager/modules/programs/lieer.nix>
accounts.email.accounts.<name>.lieer.sync.enable

Whether to enable lieer synchronization service.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/lieer.nix>
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:

<home-manager/modules/programs/lieer.nix>
accounts.email.accounts.<name>.maildir

Maildir configuration for this account.

Type: null or (submodule)

Default:

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

Declared by:

<home-manager/modules/accounts/email.nix>
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:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.mbsync.enable

Whether to enable synchronization using mbsync.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/mbsync.nix>
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:

<home-manager/modules/programs/mbsync.nix>
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:

<home-manager/modules/programs/mbsync.nix>
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:

{
  PipelineDepth = 10;
  Timeout = 60;
};

Declared by:

<home-manager/modules/programs/mbsync.nix>
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:

<home-manager/modules/programs/mbsync.nix>
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:

<home-manager/modules/programs/mbsync.nix>
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:

<home-manager/modules/programs/mbsync.nix>
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:

<home-manager/modules/programs/mbsync.nix>
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:

<home-manager/modules/programs/mbsync.nix>
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:

<home-manager/modules/programs/mbsync.nix>
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:

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

Declared by:

<home-manager/modules/programs/mbsync.nix>
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:

<home-manager/modules/programs/mbsync.nix>
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:

<home-manager/modules/programs/mbsync.nix>
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:

<home-manager/modules/programs/mbsync.nix>
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:

<home-manager/modules/programs/mbsync.nix>
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:

<home-manager/modules/programs/mbsync.nix>
accounts.email.accounts.<name>.mbsync.patterns

Pattern of mailboxes to synchronize.

Type: list of string

Default:

[
  "*"
]

Declared by:

<home-manager/modules/programs/mbsync.nix>
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:

<home-manager/modules/programs/mbsync.nix>
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:

<home-manager/modules/programs/mbsync.nix>
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:

<home-manager/modules/programs/msmtp.nix>
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:

<home-manager/modules/programs/msmtp.nix>
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:

<home-manager/modules/programs/msmtp.nix>
accounts.email.accounts.<name>.mu.enable

Whether to enable mu indexing.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/mu.nix>
accounts.email.accounts.<name>.mujmap.enable

Whether to enable mujmap JMAP synchronization for notmuch.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/mujmap.nix>
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:

<home-manager/modules/programs/mujmap.nix>
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: TOML value

Default: { }

Declared by:

<home-manager/modules/programs/mujmap.nix>
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:

<home-manager/modules/programs/mujmap.nix>
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:

<home-manager/modules/programs/mujmap.nix>
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 accounts.email.accounts.<name>.mujmap.settings.session_url.

If null, defaults to accounts.email.accounts.<name>.jmap.host.

Type: null or string

Default: null

Example: "example.com"

Declared by:

<home-manager/modules/programs/mujmap.nix>
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 accounts.email.accounts.<name>.passwordCommand.

Type: null or string or list of string

Default: null

Example: "pass alice@example.com"

Declared by:

<home-manager/modules/programs/mujmap.nix>
accounts.email.accounts.<name>.mujmap.settings.session_url

Session URL to connect to.

Mutually exclusive with accounts.email.accounts.<name>.mujmap.settings.fqdn.

If null, defaults to accounts.email.accounts.<name>.jmap.sessionUrl.

Type: null or string

Default: null

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

Declared by:

<home-manager/modules/programs/mujmap.nix>
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: TOML value

Default: { }

Declared by:

<home-manager/modules/programs/mujmap.nix>
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:

<home-manager/modules/programs/mujmap.nix>
accounts.email.accounts.<name>.mujmap.settings.tags.directory_separator

Directory separator for mapping notmuch tags to maildirs.

Type: string

Default: "/"

Example: "."

Declared by:

<home-manager/modules/programs/mujmap.nix>
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:

<home-manager/modules/programs/mujmap.nix>
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:

<home-manager/modules/programs/mujmap.nix>
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:

<home-manager/modules/programs/mujmap.nix>
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:

<home-manager/modules/programs/mujmap.nix>
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:

<home-manager/modules/programs/mujmap.nix>
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:

<home-manager/modules/programs/mujmap.nix>
accounts.email.accounts.<name>.mujmap.settings.username

Username for basic HTTP authentication.

If null, defaults to accounts.email.accounts.<name>.userName.

Type: null or string

Default: null

Example: "alice@example.com"

Declared by:

<home-manager/modules/programs/mujmap.nix>
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:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.neomutt.enable

Whether to enable NeoMutt.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/neomutt.nix>
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:

<home-manager/modules/programs/neomutt.nix>
accounts.email.accounts.<name>.neomutt.extraMailboxes

List of extra mailboxes

Type: list of (string or (submodule))

Default: [ ]

Declared by:

<home-manager/modules/programs/neomutt.nix>
accounts.email.accounts.<name>.neomutt.mailboxName

Use a different name as mailbox name

Type: null or string

Default: null

Example: "==== <mailbox-name> ==="

Declared by:

<home-manager/modules/programs/neomutt.nix>
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:

<home-manager/modules/programs/neomutt.nix>
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:

<home-manager/modules/programs/neomutt.nix>
accounts.email.accounts.<name>.neomutt.showDefaultMailbox

Show the default mailbox (INBOX)

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/neomutt.nix>
accounts.email.accounts.<name>.notmuch.enable

Whether to enable notmuch indexing.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/notmuch.nix>
accounts.email.accounts.<name>.notmuch.neomutt.enable

Whether to enable Notmuch support in NeoMutt.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/neomutt.nix>
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:

<home-manager/modules/programs/neomutt.nix>
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:

<home-manager/modules/programs/notmuch-virtual-mailbox.nix>
accounts.email.accounts.<name>.notmuch.neomutt.virtualMailboxes.*.name

Name to display

Type: string

Default: "My INBOX"

Example: "My INBOX"

Declared by:

<home-manager/modules/programs/notmuch-virtual-mailbox.nix>
accounts.email.accounts.<name>.notmuch.neomutt.virtualMailboxes.*.query

Notmuch query

Type: string

Default: "tag:inbox"

Example: "tag:inbox"

Declared by:

<home-manager/modules/programs/notmuch-virtual-mailbox.nix>
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:

<home-manager/modules/programs/notmuch-virtual-mailbox.nix>
accounts.email.accounts.<name>.offlineimap.enable

Whether to enable OfflineIMAP.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/offlineimap.nix>
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:

<home-manager/modules/programs/offlineimap.nix>
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:

<home-manager/modules/programs/offlineimap.nix>
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:

<home-manager/modules/programs/offlineimap.nix>
accounts.email.accounts.<name>.offlineimap.postSyncHookCommand

Command to run after fetching new mails.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/offlineimap.nix>
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:

<home-manager/modules/accounts/email.nix>
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:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.realName

Name displayed when sending mails.

Type: string

Example: "Jane Doe"

Declared by:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.signature

Signature configuration.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.signature.command

A command that generates a signature.

Type: null or path

Default: null

Example:

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

Declared by:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.signature.delimiter

The delimiter used between the document and the signature.

Type: string

Default:

''
  --
''

Example:

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

Declared by:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.signature.showSignature

Method to communicate the signature.

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

Default: "none"

Declared by:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.signature.text

Signature content.

Type: string

Default: ""

Example:

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

Declared by:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.smtp

The SMTP configuration to use for this account.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.smtp.host

Hostname of SMTP server.

Type: string

Example: "smtp.example.org"

Declared by:

<home-manager/modules/accounts/email.nix>
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:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.smtp.tls

Configuration for secure connections.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.smtp.tls.enable

Whether to enable TLS/SSL.

Type: boolean

Default: true

Declared by:

<home-manager/modules/accounts/email.nix>
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 path

Default: "config.accounts.email.certificatesFile"

Declared by:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.smtp.tls.useStartTls

Whether to use STARTTLS.

Type: boolean

Default: false

Declared by:

<home-manager/modules/accounts/email.nix>
accounts.email.accounts.<name>.thunderbird.enable

Whether to enable the Thunderbird mail client for this account.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/thunderbird.nix>
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:

<home-manager/modules/programs/thunderbird.nix>
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:

<home-manager/modules/programs/thunderbird.nix>
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:

<home-manager/modules/programs/thunderbird.nix>
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:

<home-manager/modules/accounts/email.nix>
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 path

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

Declared by:

<home-manager/modules/accounts/email.nix>
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:

<home-manager/modules/accounts/email.nix>
dconf.settings

Settings to write to the dconf configuration system.

Note that the database is strongly-typed so you need to use the same types as described in the GSettings schema. For example, if an option is of type uint32 (u), you need to wrap the number using the lib.hm.gvariant.mkUint32 constructor. Otherwise, since Nix integers are implicitly coerced to int32 (i), it would get stored in the database as such, and GSettings might be confused when loading the setting.

You might want to use dconf2nix to convert dconf database dumps into compatible Nix expression.

Type: attribute set of attribute set of (GVariant value)

Default: { }

Example:

{
  "org/gnome/calculator" = {
    button-mode = "programming";
    show-thousands = true;
    base = 10;
    word-size = 64;
    window-position = lib.hm.gvariant.mkTuple [100 100];
  };
}

Declared by:

<home-manager/modules/misc/dconf.nix>
editorconfig.enable

Whether to enable EditorConfig home configuration file.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/misc/editorconfig.nix>
editorconfig.settings

Configuration written to $HOME/.editorconfig. root = true is automatically added to the file, it must not be added here. See https://editorconfig.org for documentation.

Type: attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))

Default: { }

Example:

{
  "*" = {
    charset = "utf-8";
    end_of_line = "lf";
    trim_trailing_whitespace = true;
    insert_final_newline = true;
    max_line_width = 78;
    indent_style = "space";
    indent_size = 4;
  };
};

Declared by:

<home-manager/modules/misc/editorconfig.nix>
fonts.fontconfig.enable

Whether to enable fontconfig configuration. This will, for example, allow fontconfig to discover fonts and configurations installed through home.packages and nix-env.

Type: boolean

Default: false

Declared by:

<home-manager/modules/misc/fontconfig.nix>
fonts.fontconfig.defaultFonts.emoji

Per-user default emoji font(s). Multiple fonts may be listed in case a font does not support all emoji.

Note that fontconfig matches color emoji fonts preferentially, so if you want to use a black and white font while having a color font installed (eg. Noto Color Emoji installed alongside Noto Emoji), fontconfig will still choose the color font even when it is later in the list.

Type: list of string

Default: [ ]

Declared by:

<home-manager/modules/misc/fontconfig.nix>
fonts.fontconfig.defaultFonts.monospace

Per-user default monospace font(s). Multiple fonts may be listed in case multiple languages must be supported.

Type: list of string

Default: [ ]

Declared by:

<home-manager/modules/misc/fontconfig.nix>
fonts.fontconfig.defaultFonts.sansSerif

Per-user default sans serif font(s). Multiple fonts may be listed in case multiple languages must be supported.

Type: list of string

Default: [ ]

Declared by:

<home-manager/modules/misc/fontconfig.nix>
fonts.fontconfig.defaultFonts.serif

Per-user default serif font(s). Multiple fonts may be listed in case multiple languages must be supported.

Type: list of string

Default: [ ]

Declared by:

<home-manager/modules/misc/fontconfig.nix>
gtk.enable

Whether to enable GTK 2/3 configuration.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/misc/gtk.nix>
gtk.cursorTheme

The cursor theme to use.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/misc/gtk.nix>
gtk.cursorTheme.package

Package providing the cursor theme. This package will be installed to your profile. If null then the theme is assumed to already be available in your profile.

Type: null or package

Default: null

Example: pkgs.vanilla-dmz

Declared by:

<home-manager/modules/misc/gtk.nix>
gtk.cursorTheme.name

The name of the cursor theme within the package.

Type: string

Example: "Vanilla-DMZ"

Declared by:

<home-manager/modules/misc/gtk.nix>
gtk.cursorTheme.size

The size of the cursor.

Type: null or signed integer

Default: null

Example: 16

Declared by:

<home-manager/modules/misc/gtk.nix>
gtk.font

The font to use in GTK+ 2/3 applications.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/misc/gtk.nix>
gtk.font.package

Package providing the font. This package will be installed to your profile. If null then the font is assumed to already be available in your profile.

Type: null or package

Default: null

Example: pkgs.dejavu_fonts

Declared by:

<home-manager/modules/misc/gtk.nix>
gtk.font.name

The family name of the font within the package.

Type: string

Example: "DejaVu Sans"

Declared by:

<home-manager/modules/misc/gtk.nix>
gtk.font.size

The size of the font.

Type: null or signed integer or floating point number

Default: null

Example: "8"

Declared by:

<home-manager/modules/misc/gtk.nix>
gtk.gtk2.configLocation

The location to put the GTK configuration file.

Type: path

Default: "${config.home.homeDirectory}/.gtkrc-2.0"

Example: "${config.xdg.configHome}/gtk-2.0/gtkrc"

Declared by:

<home-manager/modules/misc/gtk.nix>
gtk.gtk2.extraConfig

Extra configuration lines to add verbatim to ~/.gtkrc-2.0.

Type: strings concatenated with “\n”

Default: ""

Example: "gtk-can-change-accels = 1"

Declared by:

<home-manager/modules/misc/gtk.nix>
gtk.gtk3.bookmarks

Bookmarks in the sidebar of the GTK file browser

Type: list of string

Default: [ ]

Example:

[
  "file:///home/jane/Documents"
]

Declared by:

<home-manager/modules/misc/gtk.nix>
gtk.gtk3.extraConfig

Extra configuration options to add to $XDG_CONFIG_HOME/gtk-3.0/settings.ini.

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

Default: { }

Example:

{
  gtk-cursor-blink = false;
  gtk-recent-files-limit = 20;
}

Declared by:

<home-manager/modules/misc/gtk.nix>
gtk.gtk3.extraCss

Extra configuration lines to add verbatim to $XDG_CONFIG_HOME/gtk-3.0/gtk.css.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/misc/gtk.nix>
gtk.gtk4.extraConfig

Extra configuration options to add to $XDG_CONFIG_HOME/gtk-4.0/settings.ini.

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

Default: { }

Example:

{
  gtk-cursor-blink = false;
  gtk-recent-files-limit = 20;
}

Declared by:

<home-manager/modules/misc/gtk.nix>
gtk.gtk4.extraCss

Extra configuration lines to add verbatim to $XDG_CONFIG_HOME/gtk-4.0/gtk.css.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/misc/gtk.nix>
gtk.iconTheme

The icon theme to use.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/misc/gtk.nix>
gtk.iconTheme.package

Package providing the icon theme. This package will be installed to your profile. If null then the theme is assumed to already be available in your profile.

Type: null or package

Default: null

Example: pkgs.gnome.adwaita-icon-theme

Declared by:

<home-manager/modules/misc/gtk.nix>
gtk.iconTheme.name

The name of the icon theme within the package.

Type: string

Example: "Adwaita"

Declared by:

<home-manager/modules/misc/gtk.nix>
gtk.theme

The GTK+2/3 theme to use.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/misc/gtk.nix>
gtk.theme.package

Package providing the theme. This package will be installed to your profile. If null then the theme is assumed to already be available in your profile.

For the theme to apply to GTK 4, this option is mandatory.

Type: null or package

Default: null

Example: pkgs.gnome.gnome-themes-extra

Declared by:

<home-manager/modules/misc/gtk.nix>
gtk.theme.name

The name of the theme within the package.

Type: string

Example: "Adwaita"

Declared by:

<home-manager/modules/misc/gtk.nix>
home.enableDebugInfo

Some Nix packages provide debug symbols for gdb in the debug output. This option ensures that those are automatically fetched from the binary cache if available and gdb is configured to find those symbols.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/misc/debug.nix>
home.enableNixpkgsReleaseCheck

Determines whether to check for release version mismatch between Home Manager and Nixpkgs. Using mismatched versions is likely to cause errors and unexpected behavior. It is therefore highly recommended to use a release of Home Manager that corresponds with your chosen release of Nixpkgs.

When this option is enabled and a mismatch is detected then a warning will be printed when the user configuration is being built.

Type: boolean

Default: true

Declared by:

<home-manager/modules/home-environment.nix>
home.packages

The set of packages to appear in the user environment.

Type: list of package

Default: [ ]

Declared by:

<home-manager/modules/home-environment.nix>
home.activation

The activation scripts blocks to run when activating a Home Manager generation. Any entry here should be idempotent, meaning running twice or more times produces the same result as running it once.

If the script block produces any observable side effect, such as writing or deleting files, then it must be placed after the special writeBoundary script block. Prior to the write boundary one can place script blocks that verifies, but does not modify, the state of the system and exits if an unexpected state is found. For example, the checkLinkTargets script block checks for collisions between non-managed files and files defined in home.file.

A script block should respect the DRY_RUN variable. If it is set then the actions taken by the script should be logged to standard out and not actually performed. A convenient shell function run is provided for activation script blocks. It is used as follows:

run {command}

Runs the given command on live run, otherwise prints the command to standard output.

run --quiet {command}

Runs the given command on live run and sends its standard output to /dev/null, otherwise prints the command to standard output.

run --silence {command}

Runs the given command on live run and sends its standard and error output to /dev/null, otherwise prints the command to standard output.

The --quiet and --silence flags are mutually exclusive.

A script block should also respect the VERBOSE variable, and if set print information on standard out that may be useful for debugging any issue that may arise. The variable VERBOSE_ARG is set to --verbose if verbose output is enabled. You can also use the provided shell function verboseEcho, which acts as echo when verbose output is enabled.

Type: DAG of string

Default: { }

Example:

{
  myActivationAction = lib.hm.dag.entryAfter ["writeBoundary"] ''
    run ln -s $VERBOSE_ARG \
        ${builtins.toPath ./link-me-directly} $HOME
  '';
}

Declared by:

<home-manager/modules/home-environment.nix>
home.extraOutputsToInstall

List of additional package outputs of the packages home.packages that should be installed into the user environment.

Type: list of string

Default: [ ]

Example:

[
  "doc"
  "info"
  "devdoc"
]

Declared by:

<home-manager/modules/home-environment.nix>
home.file

Attribute set of files to link into the user home.

Type: attribute set of (submodule)

Default: { }

Declared by:

<home-manager/modules/files.nix>
home.file.<name>.enable

Whether this file should be generated. This option allows specific files to be disabled.

Type: boolean

Default: true

Declared by:

<home-manager/modules/files.nix>
home.file.<name>.executable

Set the execute bit. If null, defaults to the mode of the source file or to false for files created through the text option.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/files.nix>
home.file.<name>.onChange

Shell commands to run when file has changed between generations. The script will be run after the new files have been linked into place.

Note, this code is always run when recursive is enabled.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/files.nix>
home.file.<name>.recursive

If the file source is a directory, then this option determines whether the directory should be recursively linked to the target location. This option has no effect if the source is a file.

If false (the default) then the target will be a symbolic link to the source directory. If true then the target will be a directory structure matching the source’s but whose leafs are symbolic links to the files of the source directory.

Type: boolean

Default: false

Declared by:

<home-manager/modules/files.nix>
home.file.<name>.source

Path of the source file or directory. If home.file.<name>.text is non-null then this option will automatically point to a file containing that text.

Type: path

Declared by:

<home-manager/modules/files.nix>
home.file.<name>.target

Path to target file relative to HOME.

Type: string

Default: name

Declared by:

<home-manager/modules/files.nix>
home.file.<name>.text

Text of the file. If this option is null then home.file.<name>.source must be set.

Type: null or strings concatenated with “\n”

Default: null

Declared by:

<home-manager/modules/files.nix>
home.homeDirectory

The user’s home directory. Must be an absolute path.

Type: path

Default:

"$HOME"   for state version < 20.09,
undefined for state version ≥ 20.09

Example: "/home/jane.doe"

Declared by:

<home-manager/modules/home-environment.nix>
home.keyboard

Keyboard configuration. Set to null to disable Home Manager keyboard management.

Type: null or (submodule)

Default:

"{ }"  for state version < 21.11,
"null" for state version ≥ 21.11

Declared by:

<home-manager/modules/home-environment.nix>
home.keyboard.layout

Keyboard layout. If null, then the system configuration will be used.

This defaults to null for state version ≥ 19.09 and "us" otherwise.

Type: null or string

Default: null

Declared by:

<home-manager/modules/home-environment.nix>
home.keyboard.model

Keyboard model.

Type: null or string

Default: null

Example: "presario"

Declared by:

<home-manager/modules/home-environment.nix>
home.keyboard.options

X keyboard options; layout switching goes here.

Type: list of string

Default: [ ]

Example:

[
  "grp:caps_toggle"
  "grp_led:scroll"
]

Declared by:

<home-manager/modules/home-environment.nix>
home.keyboard.variant

X keyboard variant. If null, then the system configuration will be used.

This defaults to null for state version ≥ 19.09 and "" otherwise.

Type: null or string

Default: null

Example: "colemak"

Declared by:

<home-manager/modules/home-environment.nix>
home.language

Language configuration.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/home-environment.nix>
home.language.address

The language to use for addresses.

Type: null or string

Default: null

Declared by:

<home-manager/modules/home-environment.nix>
home.language.base

The language to use unless overridden by a more specific option.

Type: null or string

Default: null

Declared by:

<home-manager/modules/home-environment.nix>
home.language.collate

The language to use for collation (alphabetical ordering).

Type: null or string

Default: null

Declared by:

<home-manager/modules/home-environment.nix>
home.language.ctype

Character classification category.

Type: null or string

Default: null

Declared by:

<home-manager/modules/home-environment.nix>
home.language.measurement

The language to use for measurement values.

Type: null or string

Default: null

Declared by:

<home-manager/modules/home-environment.nix>
home.language.messages

The language to use for messages, application UI languages, etc.

Type: null or string

Default: null

Declared by:

<home-manager/modules/home-environment.nix>
home.language.monetary

The language to use for formatting currencies and money amounts.

Type: null or string

Default: null

Declared by:

<home-manager/modules/home-environment.nix>
home.language.name

The language to use for personal names.

Type: null or string

Default: null

Declared by:

<home-manager/modules/home-environment.nix>
home.language.numeric

The language to use for numerical values.

Type: null or string

Default: null

Declared by:

<home-manager/modules/home-environment.nix>
home.language.paper

The language to use for paper sizes.

Type: null or string

Default: null

Declared by:

<home-manager/modules/home-environment.nix>
home.language.telephone

The language to use for telephone numbers.

Type: null or string

Default: null

Declared by:

<home-manager/modules/home-environment.nix>
home.language.time

The language to use for formatting times.

Type: null or string

Default: null

Declared by:

<home-manager/modules/home-environment.nix>
home.pointerCursor

Cursor configuration. Set to null to disable.

Top-level options declared under this submodule are backend independent options. Options declared under namespaces such as x11 are backend specific options. By default, only backend independent cursor configurations are generated. If you need configurations for specific backends, you can toggle them via the enable option. For example, home.pointerCursor.x11.enable will enable x11 cursor configurations.

Note that this will merely generate the cursor configurations. To apply the configurations, the relevant subsytems must also be configured. For example, home.pointerCursor.gtk.enable will generate the gtk cursor configuration, but gtk.enable needs to be set for it to be applied.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/config/home-cursor.nix>
home.pointerCursor.package

Package providing the cursor theme.

Type: package

Example: pkgs.vanilla-dmz

Declared by:

<home-manager/modules/config/home-cursor.nix>
home.pointerCursor.gtk.enable

Whether to enable gtk config generation for home.pointerCursor .

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/config/home-cursor.nix>
home.pointerCursor.name

The cursor name within the package.

Type: string

Example: "Vanilla-DMZ"

Declared by:

<home-manager/modules/config/home-cursor.nix>
home.pointerCursor.size

The cursor size.

Type: signed integer

Default: 32

Example: 64

Declared by:

<home-manager/modules/config/home-cursor.nix>
home.pointerCursor.x11.enable

Whether to enable x11 config generation for home.pointerCursor .

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/config/home-cursor.nix>
home.pointerCursor.x11.defaultCursor

The default cursor file to use within the package.

Type: string

Default: "left_ptr"

Example: "X_cursor"

Declared by:

<home-manager/modules/config/home-cursor.nix>
home.preferXdgDirectories

Whether to make programs use XDG directories whenever supported.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/home-environment.nix>
home.profileDirectory

The profile directory where Home Manager generations are installed.

Type: path (read only)

Default:

"${home.homeDirectory}/.nix-profile"  or
"/etc/profiles/per-user/${home.username}"

Declared by:

<home-manager/modules/home-environment.nix>
home.sessionPath

Extra directories to add to PATH.

These directories are added to the PATH variable in a double-quoted context, so expressions like $HOME are expanded by the shell. However, since expressions like ~ or * are escaped, they will end up in the PATH verbatim.

Type: list of string

Default: [ ]

Example:

[
  "$HOME/.local/bin"
  "\${xdg.configHome}/emacs/bin"
  ".git/safe/../../bin"
]

Declared by:

<home-manager/modules/home-environment.nix>
home.sessionVariables

Environment variables to always set at login.

The values may refer to other environment variables using POSIX.2 style variable references. For example, a variable parameter may be referenced as $parameter or ${parameter}. A default value foo may be given as per ${parameter:-foo} and, similarly, an alternate value bar can be given as per ${parameter:+bar}.

Note, these variables may be set in any order so no session variable may have a runtime dependency on another session variable. In particular code like

home.sessionVariables = {
  FOO = "Hello";
  BAR = "$FOO World!";
};

may not work as expected. If you need to reference another session variable, then do so inside Nix instead. The above example then becomes

home.sessionVariables = {
  FOO = "Hello";
  BAR = "${config.home.sessionVariables.FOO} World!";
};

Type: lazy attribute set of (string or path or signed integer or floating point number)

Default: { }

Example:

{
  EDITOR = "emacs";
  GS_OPTIONS = "-sPAPERSIZE=a4";
}

Declared by:

<home-manager/modules/home-environment.nix>
home.shellAliases

An attribute set that maps aliases (the top level attribute names in this option) to command strings or directly to build outputs.

This option should only be used to manage simple aliases that are compatible across all shells. If you need to use a shell specific feature then make sure to use a shell specific option, for example programs.bash.shellAliases for Bash.

Type: attribute set of string

Default: { }

Example:

{
  g = "git";
  "..." = "cd ../..";
}

Declared by:

<home-manager/modules/home-environment.nix>
home.stateVersion

It is occasionally necessary for Home Manager to change configuration defaults in a way that is incompatible with stateful data. This could, for example, include switching the default data format or location of a file.

The state version indicates which default settings are in effect and will therefore help avoid breaking program configurations. Switching to a higher state version typically requires performing some manual steps, such as data conversion or moving files.

Type: one of “18.09”, “19.03”, “19.09”, “20.03”, “20.09”, “21.03”, “21.05”, “21.11”, “22.05”, “22.11”, “23.05”, “23.11”, “24.05”, “24.11”

Declared by:

<home-manager/modules/misc/version.nix>
home.username

The user’s username.

Type: string

Default:

"$USER"   for state version < 20.09,
undefined for state version ≥ 20.09

Example: "jane.doe"

Declared by:

<home-manager/modules/home-environment.nix>
i18n.glibcLocales

Customized glibcLocales package providing the LOCALE_ARCHIVE_* environment variable.

This option only applies to the Linux platform.

When Home Manager is configured with NixOS, the default value will be set to i18n.glibcLocales from the system configuration.

Type: path

Default: pkgs.glibcLocales

Example:

pkgs.glibcLocales.override {
  allLocales = false;
  locales = [ "en_US.UTF-8/UTF-8" ];
}

Declared by:

<home-manager/modules/config/i18n.nix>
i18n.inputMethod.enabled

Select the enabled input method. Input methods are software to input symbols that are not available on standard input devices.

Input methods are especially used to input Chinese, Japanese and Korean characters.

Currently the following input methods are available in Home Manager:

fcitx5

A customizable lightweight input method. The next generation of fcitx. Addons (including engines, dictionaries, skins) can be added using i18n.inputMethod.fcitx5.addons.

nabi

A Korean input method based on XIM. Nabi doesn’t support Qt 5.

uim

The “universal input method” is a library with an XIM bridge. uim mainly supports Chinese, Japanese and Korean.

hime

An extremely easy-to-use input method framework.

kime

A Korean IME.

Type: null or one of “fcitx”, “fcitx5”, “nabi”, “uim”, “hime”, “kime”

Default: null

Example: "fcitx5"

Declared by:

<home-manager/modules/i18n/input-method/default.nix>
i18n.inputMethod.fcitx5.addons

Enabled Fcitx5 addons.

Type: list of package

Default: [ ]

Example: with pkgs; [ fcitx5-rime ]

Declared by:

<home-manager/modules/i18n/input-method/fcitx5.nix>
i18n.inputMethod.kime.extraConfig

kime configuration. Refer to https://github.com/Riey/kime/blob/develop/docs/CONFIGURATION.md for details on supported values.

Type: strings concatenated with “\n”

Default: ""

Example:

daemon:
  modules: [Xim,Indicator]
indicator:
  icon_color: White
engine:
  hangul:
    layout: dubeolsik

Declared by:

<home-manager/modules/i18n/input-method/kime.nix>
i18n.inputMethod.uim.toolbar

Selected UIM toolbar.

Type: one of “gtk”, “gtk3”, “gtk-systray”, “gtk3-systray”, “qt4”

Default: "gtk"

Example: "gtk-systray"

Declared by:

<home-manager/modules/i18n/input-method/uim.nix>
launchd.enable

Whether to enable Home Manager to define per-user daemons by making use of launchd’s LaunchAgents.

Type: boolean

Default: pkgs.stdenv.hostPlatform.isDarwin

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents

Define LaunchAgents.

Type: attribute set of (submodule)

Default: { }

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.enable

Whether to enable ‹name›.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config

Define a launchd job. See launchd.plist(5) for details.

Type: attribute set of anything

Default: { }

Example:

{
  ProgramArguments = [ "/usr/bin/say" "Good afternoon" ];
  StartCalendarInterval = [
    {
      Hour = 12;
      Minute = 0;
    }
  ];
}

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.AbandonProcessGroup

When a job dies, launchd kills any remaining processes with the same process group ID as the job. Setting this key to true disables that behavior.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.Debug

This optional key specifies that launchd should adjust its log mask temporarily to LOG_DEBUG while dealing with this job.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.Disabled

This optional key is used as a hint to launchctl(1) that it should not submit this job to launchd when loading a job or jobs. The value of this key does NOT reflect the current state of the job on the running system. If you wish to know whether a job is loaded in launchd, reading this key from a configuration file yourself is not a sufficient test. You should query launchd for the presence of the job using the launchctl(1) list subcommand or use the ServiceManagement framework’s SMJobCopyDictionary() method.

Note that as of Mac OS X v10.6, this key’s value in a configuration file conveys a default value, which is changed with the [-w] option of the launchctl(1) load and unload subcommands. These subcommands no longer modify the configuration file, so the value displayed in the configuration file is not necessarily the value that launchctl(1) will apply. See launchctl(1) for more information.

Please also be mindful that you should only use this key if the provided on-demand and KeepAlive criteria are insufficient to describe the conditions under which your job needs to run. The cost to have a job loaded in launchd is negligible, so there is no harm in loading a job which only runs once or very rarely.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.EnableGlobbing

This flag causes launchd to use the glob(3) mechanism to update the program arguments before invocation.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.EnableTransactions

This flag instructs launchd that the job promises to use vproc_transaction_begin(3) and vproc_transaction_end(3) to track outstanding transactions that need to be reconciled before the process can safely terminate. If no outstanding transactions are in progress, then launchd is free to send the SIGKILL signal.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.EnvironmentVariables

This optional key is used to specify additional environment variables to be set before running the job.

Type: null or (attribute set of string)

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.ExitTimeOut

The amount of time launchd waits before sending a SIGKILL signal. The default value is 20 seconds. The value zero is interpreted as infinity.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.GroupName

This optional key specifies the group to run the job as. This key is only applicable when launchd is running as root. If UserName is set and GroupName is not, the the group will be set to the default group of the user.

Type: null or string

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.HardResourceLimits

Resource limits to be imposed on the job. These adjust variables set with setrlimit(2). The following keys apply:

Type: null or (submodule)

Default: null

Example:

{
  NumberOfFiles = 4096;
}

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.HardResourceLimits.CPU

The maximum amount of cpu time (in seconds) to be used by each process.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.HardResourceLimits.Core

The largest size (in bytes) core file that may be created.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.HardResourceLimits.Data

The maximum size (in bytes) of the data segment for a process; this defines how far a program may extend its break with the sbrk(2) system call.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.HardResourceLimits.FileSize

The largest size (in bytes) file that may be created.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.HardResourceLimits.MemoryLock

The maximum size (in bytes) which a process may lock into memory using the mlock(2) function.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.HardResourceLimits.NumberOfFiles

The maximum number of open files for this process. Setting this value in a system wide daemon will set the sysctl(3) kern.maxfiles (SoftResourceLimits) or kern.maxfilesperproc (HardResourceLimits) value in addition to the setrlimit(2) values.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.HardResourceLimits.NumberOfProcesses

The maximum number of simultaneous processes for this user id. Setting this value in a system wide daemon will set the sysctl(3) kern.maxproc (SoftResourceLimits) or kern.maxprocperuid (HardResourceLimits) value in addition to the setrlimit(2) values.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.HardResourceLimits.ResidentSetSize

The maximum size (in bytes) to which a process’s resident set size may grow. This imposes a limit on the amount of physical memory to be given to a process; if memory is tight, the system will prefer to take memory from processes that are exceeding their declared resident set size.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.HardResourceLimits.Stack

The maximum size (in bytes) of the stack segment for a process; this defines how far a program’s stack segment may be extended. Stack extension is performed automatically by the system.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.InitGroups

This optional key specifies whether initgroups(3) should be called before running the job. The default is true in 10.5 and false in 10.4. This key will be ignored if the UserName key is not set.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.KeepAlive

This optional key is used to control whether your job is to be kept continuously running or to let demand and conditions control the invocation. The default is false and therefore only demand will start the job. The value may be set to true to unconditionally keep the job alive. Alternatively, a dictionary of conditions may be specified to selectively control whether launchd keeps a job alive or not. If multiple keys are provided, launchd ORs them, thus providing maximum flexibility to the job to refine the logic and stall if necessary. If launchd finds no reason to restart the job, it falls back on demand based invocation. Jobs that exit quickly and frequently when configured to be kept alive will be throttled to converve system resources.

Type: null or boolean or (submodule)

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.Label

This required key uniquely identifies the job to launchd.

Type: string

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.LaunchEvents

Specifies higher-level event types to be used as launch-on-demand event sources. Each sub-dictionary defines events for a particular event subsystem, such as “com.apple.iokit.matching”, which can be used to launch jobs based on the appearance of nodes in the IORegistry. Each dictionary within the sub-dictionary specifies an event descriptor that is specified to each event subsystem. With this key, the job promises to use the xpc_set_event_stream_handler(3) API to consume events. See xpc_events(3) for more details on event sources.

Type: null or (attribute set)

Default: null

Example:

{
  "com.apple.iokit.matching" = {
    "com.apple.usb.device" = {
      IOMatchLaunchStream = true;
      IOProviderClass = "IOUSBDevice";
      idProduct = "*";
      idVendor = "*";
    };
  };
}

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.LaunchOnlyOnce

This optional key specifies whether the job can only be run once and only once. In other words, if the job cannot be safely respawned without a full machine reboot, then set this key to be true.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.LimitLoadFromHosts

This configuration file only applies to hosts NOT listed with this key. Note: One should set kern.hostname in sysctl.conf(5) for this feature to work reliably.

Type: null or (list of string)

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.LimitLoadToHosts

This configuration file only applies to the hosts listed with this key. Note: One should set kern.hostname in sysctl.conf(5) for this feature to work reliably.

Type: null or (list of string)

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.LimitLoadToSessionType

This configuration file only applies to sessions of the type specified. This key is used in concert with the -S flag to launchctl.

Type: null or string

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.LowPriorityIO

This optional key specifies whether the kernel should consider this daemon to be low priority when doing file system I/O.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.MachServices

This optional key is used to specify Mach services to be registered with the Mach bootstrap sub-system. Each key in this dictionary should be the name of service to be advertised. The value of the key must be a boolean and set to true. Alternatively, a dictionary can be used instead of a simple true value.

Finally, for the job itself, the values will be replaced with Mach ports at the time of check-in with launchd.

Type: null or (submodule)

Default: null

Example:

{
  ResetAtClose = true;
}

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.MachServices.HideUntilCheckIn

Reserve the name in the namespace, but cause bootstrap_look_up() to fail until the job has checked in with launchd.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.MachServices.ResetAtClose

If this boolean is false, the port is recycled, thus leaving clients to remain oblivious to the demand nature of job. If the value is set to true, clients receive port death notifications when the job lets go of the receive right. The port will be recreated atomically with respect to bootstrap_look_up() calls, so that clients can trust that after receiving a port death notification, the new port will have already been recreated. Setting the value to true should be done with care. Not all clients may be able to handle this behavior. The default value is false.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.Nice

This optional key specifies what nice(3) value should be applied to the daemon.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.OnDemand

This key was used in Mac OS X 10.4 to control whether a job was kept alive or not. The default was true. This key has been deprecated and replaced in Mac OS X 10.5 and later with the more powerful KeepAlive option.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.ProcessType

This optional key describes, at a high level, the intended purpose of the job. The system will apply resource limits based on what kind of job it is. If left unspecified, the system will apply light resource limits to the job, throttling its CPU usage and I/O bandwidth. The following are valid values:

Background

Background jobs are generally processes that do work that was not directly requested by the user. The resource limits applied to Background jobs are intended to prevent them from disrupting the user experience.

Standard

Standard jobs are equivalent to no ProcessType being set.

Adaptive

Adaptive jobs move between the Background and Interactive classifications based on activity over XPC connections. See xpc_transaction_begin(3) for details.

Interactive

Interactive jobs run with the same resource limitations as apps, that is to say, none. Interactive jobs are critical to maintaining a responsive user experience, and this key should only be used if an app’s ability to be responsive depends on it, and cannot be made Adaptive.

Type: null or one of “Background”, “Standard”, “Adaptive”, “Interactive”

Default: null

Example: "Background"

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.Program

This key maps to the first argument of execvp(3). If this key is missing, then the first element of the array of strings provided to the ProgramArguments will be used instead. This key is required in the absence of the ProgramArguments key.

Type: null or path

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.ProgramArguments

This key maps to the second argument of execvp(3). This key is required in the absence of the Program key. Please note: many people are confused by this key. Please read execvp(3) very carefully!

Type: null or (list of string)

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.QueueDirectories

Much like the WatchPaths option, this key will watch the paths for modifications. The difference being that the job will only be started if the path is a directory and the directory is not empty.

Type: null or (list of string)

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.RootDirectory

This optional key is used to specify a directory to chroot(2) to before running the job.

Type: null or string

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.RunAtLoad

This optional key is used to control whether your job is launched once at the time the job is loaded. The default is false.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.Sockets

This optional key is used to specify launch on demand sockets that can be used to let launchd know when to run the job. The job must check-in to get a copy of the file descriptors using APIs outlined in launch(3). The keys of the top level Sockets dictionary can be anything. They are meant for the application developer to use to differentiate which descriptors correspond to which application level protocols (e.g. http vs. ftp vs. DNS…). At check-in time, the value of each Sockets dictionary key will be an array of descriptors. Daemon/Agent writers should consider all descriptors of a given key to be to be effectively equivalent, even though each file descriptor likely represents a different networking protocol which conforms to the criteria specified in the job configuration file.

The parameters below are used as inputs to call getaddrinfo(3).

Type: null or (attribute set of (submodule))

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.Sockets.<name>.Bonjour

This optional key can be used to request that the service be registered with the mDNSResponder(8). If the value is boolean, the service name is inferred from the SockServiceName.

Type: null or boolean or list of string

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.Sockets.<name>.MulticastGroup

This optional key can be used to request that the datagram socket join a multicast group. If the value is a hostname, then getaddrinfo(3) will be used to join the correct multicast address for a given socket family. If an explicit IPv4 or IPv6 address is given, it is required that the SockFamily family also be set, otherwise the results are undefined.

Type: null or string

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.Sockets.<name>.SecureSocketWithKey

This optional key is a variant of SockPathName. Instead of binding to a known path, a securely generated socket is created and the path is assigned to the environment variable that is inherited by all jobs spawned by launchd.

Type: null or string

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.Sockets.<name>.SockFamily

This optional key can be used to specifically request that “IPv4” or “IPv6” socket(s) be created.

Type: null or one of “IPv4”, “IPv6”

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.Sockets.<name>.SockNodeName

This optional key specifies the node to connect(2) or bind(2) to.

Type: null or string

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.Sockets.<name>.SockPassive

This optional key specifies whether listen(2) or connect(2) should be called on the created file descriptor. The default is true (“to listen”).

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.Sockets.<name>.SockPathMode

This optional key specifies the mode of the socket. Known bug: Property lists don’t support octal, so please convert the value to decimal.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.Sockets.<name>.SockPathName

This optional key implies SockFamily is set to “Unix”. It specifies the path to connect(2) or bind(2) to.

Type: null or path

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.Sockets.<name>.SockProtocol

This optional key specifies the protocol to be passed to socket(2). The only value understood by this key at the moment is “TCP”.

Type: null or value “TCP” (singular enum)

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.Sockets.<name>.SockServiceName

This optional key specifies the service on the node to connect(2) or bind(2) to.

Type: null or string

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.Sockets.<name>.SockType

This optional key tells launchctl what type of socket to create. The default is “stream” and other valid values for this key are “dgram” and “seqpacket” respectively.

Type: null or one of “stream”, “dgram”, “seqpacket”

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.SoftResourceLimits

Resource limits to be imposed on the job. These adjust variables set with setrlimit(2). The following keys apply:

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.SoftResourceLimits.CPU

The maximum amount of cpu time (in seconds) to be used by each process.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.SoftResourceLimits.Core

The largest size (in bytes) core file that may be created.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.SoftResourceLimits.Data

The maximum size (in bytes) of the data segment for a process; this defines how far a program may extend its break with the sbrk(2) system call.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.SoftResourceLimits.FileSize

The largest size (in bytes) file that may be created.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.SoftResourceLimits.MemoryLock

The maximum size (in bytes) which a process may lock into memory using the mlock(2) function.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.SoftResourceLimits.NumberOfFiles

The maximum number of open files for this process. Setting this value in a system wide daemon will set the sysctl(3) kern.maxfiles (SoftResourceLimits) or kern.maxfilesperproc (HardResourceLimits) value in addition to the setrlimit(2) values.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.SoftResourceLimits.NumberOfProcesses

The maximum number of simultaneous processes for this user id. Setting this value in a system wide daemon will set the sysctl(3) kern.maxproc (SoftResourceLimits) or kern.maxprocperuid (HardResourceLimits) value in addition to the setrlimit(2) values.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.SoftResourceLimits.ResidentSetSize

The maximum size (in bytes) to which a process’s resident set size may grow. This imposes a limit on the amount of physical memory to be given to a process; if memory is tight, the system will prefer to take memory from processes that are exceeding their declared resident set size.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.SoftResourceLimits.Stack

The maximum size (in bytes) of the stack segment for a process; this defines how far a program’s stack segment may be extended. Stack extension is performed automatically by the system.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.StandardErrorPath

This optional key specifies what file should be used for data being sent to stderr when using stdio(3).

Type: null or path

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.StandardInPath

This optional key specifies what file should be used for data being supplied to stdin when using stdio(3).

Type: null or path

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.StandardOutPath

This optional key specifies what file should be used for data being sent to stdout when using stdio(3).

Type: null or path

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.StartCalendarInterval

This optional key causes the job to be started every calendar interval as specified. Missing arguments are considered to be wildcard. The semantics are much like crontab(5). Unlike cron which skips job invocations when the computer is asleep, launchd will start the job the next time the computer wakes up. If multiple intervals transpire before the computer is woken, those events will be coalesced into one event upon wake from sleep.

Type: null or (list of (submodule))

Default: null

Example:

{
  Hour = 2;
  Minute = 30;
}

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.StartCalendarInterval.*.Day

The day on which this job will be run.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.StartCalendarInterval.*.Hour

The hour on which this job will be run.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.StartCalendarInterval.*.Minute

The minute on which this job will be run.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.StartCalendarInterval.*.Month

The month on which this job will be run.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.StartCalendarInterval.*.Weekday

The weekday on which this job will be run (0 and 7 are Sunday).

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.StartInterval

This optional key causes the job to be started every N seconds. If the system is asleep, the job will be started the next time the computer wakes up. If multiple intervals transpire before the computer is woken, those events will be coalesced into one event upon wake from sleep.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.StartOnMount

This optional key causes the job to be started every time a filesystem is mounted.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.ThrottleInterval

This key lets one override the default throttling policy imposed on jobs by launchd. The value is in seconds, and by default, jobs will not be spawned more than once every 10 seconds. The principle behind this is that jobs should linger around just in case they are needed again in the near future. This not only reduces the latency of responses, but it encourages developers to amortize the cost of program invocation.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.TimeOut

The recommended idle time out (in seconds) to pass to the job. If no value is specified, a default time out will be supplied by launchd for use by the job at check in time.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.Umask

This optional key specifies what value should be passed to umask(2) before running the job. Known bug: Property lists don’t support octal, so please convert the value to decimal.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.UserName

This optional key specifies the user to run the job as. This key is only applicable when launchd is running as root.

Type: null or string

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.WaitForDebugger

This optional key specifies that launchd should instruct the kernel to have the job wait for a debugger to attach before any code in the job is executed.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.WatchPaths

This optional key causes the job to be started if any one of the listed paths are modified.

Type: null or (list of path)

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.WorkingDirectory

This optional key is used to specify a directory to chdir(2) to before running the job.

Type: null or string

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.inetdCompatibility

The presence of this key specifies that the daemon expects to be run as if it were launched from inetd.

Type: null or (submodule)

Default: null

Example:

{
  Wait = true;
}

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.inetdCompatibility.Wait

This flag corresponds to the “wait” or “nowait” option of inetd. If true, then the listening socket is passed via the standard in/out/error file descriptors. If false, then accept(2) is called on behalf of the job, and the result is passed via the standard in/out/error descriptors.

Type: null or boolean or string

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
lib

This option allows modules to define helper functions, constants, etc.

Type: attribute set of (attribute set)

Default: { }

Declared by:

<home-manager/modules/misc/lib.nix>
manual.html.enable

Whether to install the HTML manual. This also installs the home-manager-help tool, which opens a local copy of the Home Manager manual in the system web browser.

Type: boolean

Default: false

Declared by:

<home-manager/modules/manual.nix>
manual.json.enable

Whether to install a JSON formatted list of all Home Manager options. This can be located at <profile directory>/share/doc/home-manager/options.json, and may be used for navigating definitions, auto-completing, and other miscellaneous tasks.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/manual.nix>
manual.manpages.enable

Whether to install the configuration manual page. The manual can be reached by man home-configuration.nix.

When looking at the manual page pretend that all references to NixOS stuff are actually references to Home Manager stuff. Thanks!

Type: boolean

Default: true

Example: false

Declared by:

<home-manager/modules/manual.nix>
news.display

How unread and relevant news should be presented when running home-manager build and home-manager switch.

The options are

silent

Do not print anything during build or switch. The home-manager news command still works for viewing the entries.

notify

The number of unread and relevant news entries will be printed to standard output. The home-manager news command can later be used to view the entries.

show

A pager showing unread news entries is opened.

Type: one of “silent”, “notify”, “show”

Default: "notify"

Declared by:

<home-manager/modules/misc/news.nix>
nix.package

The Nix package that the configuration should be generated for.

Type: null or package

Default: null

Example: pkgs.nix

Declared by:

<home-manager/modules/misc/nix.nix>
nix.channels

A declarative alternative to Nix channels. Whereas with stock channels, you would register URLs and fetch them into the Nix store with nix-channel(1), this option allows you to register the store path directly. One particularly useful example is registering flake inputs as channels.

This option can coexist with stock Nix channels. If the same channel is defined in both, this option takes precedence.

Type: attribute set of package

Default: { }

Example: { inherit nixpkgs; }

Declared by:

<home-manager/modules/misc/nix.nix>
nix.checkConfig

If enabled (the default), checks for data type mismatches and that Nix can parse the generated nix.conf.

Type: boolean

Default: true

Declared by:

<home-manager/modules/misc/nix.nix>
nix.extraOptions

Additional text appended to nix.conf.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  keep-outputs = true
  keep-derivations = true
''

Declared by:

<home-manager/modules/misc/nix.nix>
nix.gc.automatic

Automatically run the garbage collector at a specific time.

Note: This will only garbage collect the current user’s profiles.

Type: boolean

Default: false

Declared by:

<home-manager/modules/services/nix-gc.nix>
nix.gc.frequency

When to run the Nix garbage collector.

On Linux this is a string as defined by systemd.time(7).

On Darwin it must be one of: hourly daily weekly monthly semiannually annually, which are implemented as defined in the manual page above.

Type: string

Default: "weekly"

Example: "03:15"

Declared by:

<home-manager/modules/services/nix-gc.nix>
nix.gc.options

Options given to nix-collect-garbage when the garbage collector is run automatically.

Type: null or string

Default: null

Example: "--max-freed $((64 * 1024**3))"

Declared by:

<home-manager/modules/services/nix-gc.nix>
nix.gc.persistent

If true, the time when the service unit was last triggered is stored on disk. When the timer is activated, the service unit is triggered immediately if it would have been triggered at least once during the time when the timer was inactive.

Type: boolean

Default: true

Example: false

Declared by:

<home-manager/modules/services/nix-gc.nix>
nix.keepOldNixPath

Whether nix.nixPath should keep the previously set values in NIX_PATH.

Type: boolean

Default: true

Example: false

Declared by:

<home-manager/modules/misc/nix.nix>
nix.nixPath

Adds new directories to the Nix expression search path.

Used by Nix when looking up paths in angular brackets (e.g. <nixpkgs>).

Type: list of string

Default: [ ]

Example:

[
  "$HOME/.nix-defexpr/channels"
  "darwin-config=$HOME/.config/nixpkgs/darwin-configuration.nix"
]

Declared by:

<home-manager/modules/misc/nix.nix>
nix.registry

User level flake registry.

Type: attribute set of (submodule)

Default: { }

Declared by:

<home-manager/modules/misc/nix.nix>
nix.registry.<name>.exact

Whether the from reference needs to match exactly. If set, a from reference like nixpkgs does not match with a reference like nixpkgs/nixos-20.03.

Type: boolean

Default: true

Declared by:

<home-manager/modules/misc/nix.nix>
nix.registry.<name>.flake

The flake input to which from> is to be rewritten.

Type: null or (attribute set)

Default: null

Example: nixpkgs

Declared by:

<home-manager/modules/misc/nix.nix>
nix.registry.<name>.from

The flake reference to be rewritten.

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

Example:

{
  id = "nixpkgs";
  type = "indirect";
}

Declared by:

<home-manager/modules/misc/nix.nix>
nix.registry.<name>.to

The flake reference to which from> is to be rewritten.

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

Example:

{
  owner = "my-org";
  repo = "my-nixpkgs";
  type = "github";
}

Declared by:

<home-manager/modules/misc/nix.nix>
nix.settings

Configuration for Nix; see nix.conf(5) for available options. The value declared here will be translated directly to the key-value pairs Nix expects.

Configuration specified in nix.extraOptions will be appended verbatim to the resulting config file.

Type: attribute set of (Nix config atom (null, bool, int, float, str, path or package) or list of (Nix config atom (null, bool, int, float, str, path or package)))

Default: { }

Example:

{
  use-sandbox = true;
  show-trace = true;
  system-features = [ "big-parallel" "kvm" "recursive-nix" ];
}

Declared by:

<home-manager/modules/misc/nix.nix>
nixpkgs.config

The configuration of the Nix Packages collection. (For details, see the Nixpkgs documentation.) It allows you to set package configuration options.

If null, then configuration is taken from the fallback location, for example, ~/.config/nixpkgs/config.nix.

Note, this option will not apply outside your Home Manager configuration like when installing manually through nix-env. If you want to apply it both inside and outside Home Manager you can put it in a separate file and include something like

  nixpkgs.config = import ./nixpkgs-config.nix;
  xdg.configFile."nixpkgs/config.nix".source = ./nixpkgs-config.nix;

in your Home Manager configuration.

Type: null or (nixpkgs config)

Default: null

Example:

{
  allowBroken = true;
}

Declared by:

<home-manager/modules/misc/nixpkgs.nix>
nixpkgs.overlays

List of overlays to use with the Nix Packages collection. (For details, see the Nixpkgs documentation.) It allows you to override packages globally. This is a function that takes as an argument the original Nixpkgs. The first argument should be used for finding dependencies, and the second should be used for overriding recipes.

If null, then the overlays are taken from the fallback location, for example, ~/.config/nixpkgs/overlays.

Like nixpkgs.config this option only applies within the Home Manager configuration. See nixpkgs.config for a suggested setup that works both internally and externally.

Type: null or (list of (nixpkgs overlay))

Default: null

Example:

[
  (final: prev: {
    openssh = prev.openssh.override {
      hpnSupport = true;
      withKerberos = true;
      kerberos = final.libkrb5;
    };
  })
]

Declared by:

<home-manager/modules/misc/nixpkgs.nix>
pam.sessionVariables

Environment variables that will be set for the PAM session. The variable values must be as described in pam_env.conf(5).

Note, this option will become deprecated in the future and its use is therefore discouraged.

Type: attribute set

Default: { }

Example:

{
  EDITOR = "vim";
}

Declared by:

<home-manager/modules/misc/pam.nix>
pam.yubico.authorizedYubiKeys.ids

List of authorized YubiKey token IDs. Refer to https://developers.yubico.com/yubico-pam for details on how to obtain the token ID of a YubiKey.

Type: list of string of length 12

Default: [ ]

Declared by:

<home-manager/modules/misc/pam.nix>
pam.yubico.authorizedYubiKeys.path

File path to write the authorized YubiKeys, relative to HOME.

Type: string

Default: ".yubico/authorized_yubikeys"

Declared by:

<home-manager/modules/misc/pam.nix>
programs.abook.enable

Whether to enable Abook.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/abook.nix>
programs.abook.extraConfig

Extra lines added to $HOME/.config/abook/abookrc. Available configuration options are described in the abook repository: https://sourceforge.net/p/abook/git/ci/master/tree/sample.abookrc.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  field pager = Pager
  view CONTACT = name, email
  set autosave=true
''

Declared by:

<home-manager/modules/programs/abook.nix>
programs.aerc.enable

Whether to enable aerc.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/aerc.nix>
programs.aerc.package

The aerc package to use.

Type: package

Default: pkgs.aerc

Declared by:

<home-manager/modules/programs/aerc.nix>
programs.aerc.extraAccounts

Extra lines added to $HOME/.config/aerc/accounts.conf.

See aerc-config(5).

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

Default: { }

Example: { Work = { source = "maildir://~/Maildir/work"; }; }

Declared by:

<home-manager/modules/programs/aerc.nix>
programs.aerc.extraBinds

Extra lines added to $HOME/.config/aerc/binds.conf. Global keybindings can be set in the global section.

See aerc-config(5).

Type: strings concatenated with “\n” or attribute set of 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 = { q = ":quit<Enter>"; }; }

Declared by:

<home-manager/modules/programs/aerc.nix>
programs.aerc.extraConfig

Extra lines added to $HOME/.config/aerc/aerc.conf.

See aerc-config(5).

Type: strings concatenated with “\n” or attribute set of 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 = { sort = "-r date"; }; }

Declared by:

<home-manager/modules/programs/aerc.nix>
programs.aerc.stylesets

Stylesets added to $HOME/.config/aerc/stylesets/.

See aerc-stylesets(7).

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

Default: { }

Example:

{ default = { ui = { "tab.selected.reverse" = toggle; }; }; };

Declared by:

<home-manager/modules/programs/aerc.nix>
programs.aerc.templates

Templates added to $HOME/.config/aerc/templates/.

See aerc-templates(7).

Type: attribute set of strings concatenated with “\n”

Default: { }

Example:

{ new_message = "Hello!"; };

Declared by:

<home-manager/modules/programs/aerc.nix>
programs.afew.enable

Whether to enable the afew initial tagging script for Notmuch.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/afew.nix>
programs.afew.extraConfig

Extra lines added to afew configuration file. Available configuration options are described in the afew manual: https://afew.readthedocs.io/en/latest/configuration.html.

Type: strings concatenated with “\n”

Default:

''
  [SpamFilter]
  [KillThreadsFilter]
  [ListMailsFilter]
  [ArchiveSentMailsFilter]
  [InboxFilter]
''

Example:

''
  [SpamFilter]
  
  [Filter.0]
  query = from:pointyheaded@boss.com
  tags = -new;+boss
  message = Message from above
  
  [InboxFilter]
''

Declared by:

<home-manager/modules/programs/afew.nix>
programs.alacritty.enable

Whether to enable Alacritty.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/alacritty.nix>
programs.alacritty.package

The Alacritty package to install.

Type: package

Default: pkgs.alacritty

Declared by:

<home-manager/modules/programs/alacritty.nix>
programs.alacritty.settings

Configuration written to $XDG_CONFIG_HOME/alacritty/alacritty.yml or $XDG_CONFIG_HOME/alacritty/alacritty.toml (the latter being used for alacritty 0.13 and later). See https://github.com/alacritty/alacritty/tree/master#configuration for more info.

Type: TOML value

Default: { }

Example:

{
  window.dimensions = {
    lines = 3;
    columns = 200;
  };
  keyboard.bindings = [
    {
      key = "K";
      mods = "Control";
      chars = "\\u000c";
    }
  ];
}

Declared by:

<home-manager/modules/programs/alacritty.nix>
programs.alot.enable

Whether to enable the Alot mail user agent. Alot uses the Notmuch email system and will therefore be automatically enabled for each email account that is managed by Notmuch.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.bindings

Keybindings.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.bindings.bufferlist

Bufferlist mode keybindings.

Type: attribute set of string

Default: { }

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.bindings.envelope

Envelope mode keybindings.

Type: attribute set of string

Default: { }

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.bindings.global

Global keybindings.

Type: attribute set of string

Default: { }

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.bindings.search

Search mode keybindings.

Type: attribute set of string

Default: { }

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.bindings.taglist

Taglist mode keybindings.

Type: attribute set of string

Default: { }

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.bindings.thread

Thread mode keybindings.

Type: attribute set of string

Default: { }

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.extraConfig

Extra lines added to alot configuration file.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.hooks

Content of the hooks file.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.settings

Configuration options added to alot configuration file.

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

Default:

{
  auto_remove_unread = true;
  handle_mouse = true;
  initial_command = "search tag:inbox AND NOT tag:killed";
  prefer_plaintext = true;
}

Example:

{
  auto_remove_unread = true;
  ask_subject = false;
  thread_indent_replies = 2;
}

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.tags

How to display the tags.

Type: attribute set of (submodule)

Default: { }

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.tags.<name>.focus

How to display the tag when focused.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.tags.<name>.normal

How to display the tag when unfocused. See https://alot.readthedocs.io/en/latest/configuration/theming.html#tagstring-formatting.

Type: null or string

Default: null

Example: "'','', 'white','light red', 'white','#d66'"

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.tags.<name>.translated

Fixed string representation for this tag. The tag can be hidden from view, if the key translated is set to "", the empty string.

Type: null or string

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.tags.<name>.translation

A pair of strings that define a regular substitution to compute the string representation on the fly using re.sub.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/alot.nix>
programs.aria2.enable

Whether to enable aria2.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/aria2.nix>
programs.aria2.extraConfig

Extra lines added to aria2.conf file.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/aria2.nix>
programs.aria2.settings

Options to add to aria2.conf file. See aria2c(1) for options.

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

Default: { }

Example:

{
  listen-port = 60000;
  dht-listen-port = 60000;
  seed-ratio = 1.0;
  max-upload-limit = "50K";
  ftp-pasv = true;
}

Declared by:

<home-manager/modules/programs/aria2.nix>
programs.astroid.enable

Whether to enable Astroid.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/astroid.nix>
programs.astroid.externalEditor

You can use the following variables:

%1

file name

%2

server name

%3

socket ID

See Customizing editor on the Astroid wiki.

Type: null or string

Default: null

Example: "nvim-qt -- -c 'set ft=mail' '+set fileencoding=utf-8' '+set ff=unix' '+set enc=utf-8' '+set fo+=w' %1"

Declared by:

<home-manager/modules/programs/astroid.nix>
programs.astroid.extraConfig

JSON config that will override the default Astroid configuration.

Type: JSON value

Default: { }

Example:

{
  poll.interval = 0;
}

Declared by:

<home-manager/modules/programs/astroid.nix>
programs.astroid.pollScript

Script to run to fetch/update mails.

Type: string

Default: ""

Example: "mbsync gmail"

Declared by:

<home-manager/modules/programs/astroid.nix>
programs.atuin.enable

Whether to enable atuin.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/atuin.nix>
programs.atuin.enableBashIntegration

Whether to enable Atuin’s Bash integration. This will bind ctrl-r to open the Atuin history.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/atuin.nix>
programs.atuin.enableFishIntegration

Whether to enable Atuin’s Fish integration.

If enabled, this will bind the up-arrow key to open the Atuin history.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/atuin.nix>
programs.atuin.enableNushellIntegration

Whether to enable Nushell integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/atuin.nix>
programs.atuin.enableZshIntegration

Whether to enable Atuin’s Zsh integration.

If enabled, this will bind ctrl-r and the up-arrow key to open the Atuin history.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/atuin.nix>
programs.atuin.package

The package to use for atuin.

Type: package

Default: pkgs.atuin

Declared by:

<home-manager/modules/programs/atuin.nix>
programs.atuin.flags

Flags to append to the shell hook.

Type: list of string

Default: [ ]

Example:

[
  "--disable-up-arrow"
  "--disable-ctrl-r"
]

Declared by:

<home-manager/modules/programs/atuin.nix>
programs.atuin.settings

Configuration written to $XDG_CONFIG_HOME/atuin/config.toml.

See https://atuin.sh/docs/config/ for the full list of options.

Type: Atuin configuration

Default: { }

Example:

{
  auto_sync = true;
  sync_frequency = "5m";
  sync_address = "https://api.atuin.sh";
  search_mode = "prefix";
}

Declared by:

<home-manager/modules/programs/atuin.nix>
programs.autojump.enable

Whether to enable autojump.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/autojump.nix>
programs.autojump.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/autojump.nix>
programs.autojump.enableFishIntegration

Whether to enable Fish integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/autojump.nix>
programs.autojump.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/autojump.nix>
programs.autorandr.enable

Whether to enable Autorandr.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.hooks

Global hook scripts

Type: submodule

Default: { }

Example:

{
  postswitch = {
    "notify-i3" = "${pkgs.i3}/bin/i3-msg restart";
    "change-background" = readFile ./change-background.sh;
    "change-dpi" = ''
      case "$AUTORANDR_CURRENT_PROFILE" in
        default)
          DPI=120
          ;;
        home)
          DPI=192
          ;;
        work)
          DPI=144
          ;;
        *)
          echo "Unknown profile: $AUTORANDR_CURRENT_PROFILE"
          exit 1
      esac

      echo "Xft.dpi: $DPI" | ${pkgs.xorg.xrdb}/bin/xrdb -merge
    ''
  };
}

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.hooks.postswitch

Postswitch hook executed after mode switch.

Type: attribute set of strings concatenated with “\n”

Default: { }

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.hooks.predetect

Predetect hook executed before autorandr attempts to run xrandr.

Type: attribute set of strings concatenated with “\n”

Default: { }

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.hooks.preswitch

Preswitch hook executed before mode switch.

Type: attribute set of strings concatenated with “\n”

Default: { }

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles

Autorandr profiles specification.

Type: attribute set of (submodule)

Default: { }

Example:

{
  "work" = {
    fingerprint = {
      eDP1 = "<EDID>";
      DP1 = "<EDID>";
    };
    config = {
      eDP1.enable = false;
      DP1 = {
        enable = true;
        crtc = 0;
        primary = true;
        position = "0x0";
        mode = "3840x2160";
        gamma = "1.0:0.909:0.833";
        rate = "60.00";
        rotate = "left";
      };
    };
    hooks.postswitch = readFile ./work-postswitch.sh;
  };
}

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config

Per output profile configuration.

Type: attribute set of (submodule)

Default: { }

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.enable

Whether to enable the output.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.crtc

Output video display controller.

Type: null or (unsigned integer, meaning >=0)

Default: null

Example: 0

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.dpi

Output DPI configuration.

Type: null or (positive integer, meaning >0)

Default: null

Example: 96

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.filter

Interpolation method to be used for scaling the output.

Type: null or one of “bilinear”, “nearest”

Default: null

Example: "nearest"

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.gamma

Output gamma configuration.

Type: string

Default: ""

Example: "1.0:0.909:0.833"

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.mode

Output resolution.

Type: string

Default: ""

Example: "3840x2160"

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.position

Output position

Type: string

Default: ""

Example: "5760x0"

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.primary

Whether output should be marked as primary

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.rate

Output framerate.

Type: string

Default: ""

Example: "60.00"

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.rotate

Output rotate configuration.

Type: null or one of “normal”, “left”, “right”, “inverted”

Default: null

Example: "left"

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.scale

Output scale configuration.

Either configure by pixels or a scaling factor. When using pixel method the xrandr(1) option --scale-from will be used; when using factor method the option --scale will be used.

This option is a shortcut version of the transform option and they are mutually exclusive.

Type: null or (submodule)

Default: null

Example:

{
  x = 1.25;
  y = 1.25;
}

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.scale.method

Output scaling method.

Type: one of “factor”, “pixel”

Default: "factor"

Example: "pixel"

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.scale.x

Horizontal scaling factor/pixels.

Type: floating point number or (positive integer, meaning >0)

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.scale.y

Vertical scaling factor/pixels.

Type: floating point number or (positive integer, meaning >0)

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.transform

Refer to xrandr(1) for the documentation of the transform matrix.

Type: null or (3×3 matrix of floating point numbers)

Default: null

Example:

[
  [ 0.6 0.0 0.0 ]
  [ 0.0 0.6 0.0 ]
  [ 0.0 0.0 1.0 ]
]

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.fingerprint

Output name to EDID mapping. Use autorandr --fingerprint to get current setup values.

Type: attribute set of string

Default: { }

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.hooks

Profile hook scripts.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.hooks.postswitch

Postswitch hook executed after mode switch.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.hooks.predetect

Predetect hook executed before autorandr attempts to run xrandr.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.hooks.preswitch

Preswitch hook executed before mode switch.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.awscli.enable

Whether to enable AWS CLI tool.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/awscli.nix>
programs.awscli.package

Package providing aws.

Type: package

Default: pkgs.awscli2

Declared by:

<home-manager/modules/programs/awscli.nix>
programs.awscli.credentials

Configuration written to $HOME/.aws/credentials.

For security reasons, never store cleartext passwords here. We recommend that you use credential_process option to retrieve the IAM credentials from your favorite password manager during runtime, or use AWS IAM Identity Center to get short-term credentials.

See https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-authentication.html.

Type: attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))

Default: { }

Example:

{
  "default" = {
    "credential_process" = "${pkgs.pass}/bin/pass show aws";
  };
};

Declared by:

<home-manager/modules/programs/awscli.nix>
programs.awscli.settings

Configuration written to $HOME/.aws/config.

Type: attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))

Default: { }

Example:

{
  "default" = {
    region = "eu-west-3";
    output = "json";
  };
};

Declared by:

<home-manager/modules/programs/awscli.nix>
programs.bacon.enable

Whether to enable bacon, a background rust code checker.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/bacon.nix>
programs.bacon.package

The bacon package to use.

Type: package

Default: pkgs.bacon

Declared by:

<home-manager/modules/programs/bacon.nix>
programs.bacon.settings

Bacon configuration. For available settings see https://dystroy.org/bacon/#global-preferences.

Type: TOML value

Default: { }

Example:

{
  jobs = {
    default = {
      command = [
        "cargo"
        "build"
        "--all-features"
        "--color"
        "always"
      ];
      need_stdout = true;
    };
  };
}

Declared by:

<home-manager/modules/programs/bacon.nix>
programs.bash.enable

Whether to enable GNU Bourne-Again SHell.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.enableCompletion

Whether to enable Bash completion for all interactive Bash shells.

Note, if you use NixOS or nix-darwin and do not have Bash completion enabled in the system configuration, then make sure to add

  environment.pathsToLink = [ "/share/bash-completion" ];

to your system configuration to get completion for system packages. Note, the legacy /etc/bash_completion.d path is not supported by Home Manager.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.enableVteIntegration

Whether to enable integration with terminals using the VTE library. This will let the terminal track the current working directory.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/misc/vte.nix>
programs.bash.package

The bash package to use.

Type: package

Default: pkgs.bashInteractive

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.bashrcExtra

Extra commands that should be placed in ~/.bashrc. Note that these commands will be run even in non-interactive shells.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.historyControl

Controlling how commands are saved on the history list.

Type: list of (one of “erasedups”, “ignoredups”, “ignorespace”, “ignoreboth”)

Default: [ ]

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.historyFile

Location of the bash history file.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.historyFileSize

Number of history lines to keep on file.

Type: signed integer

Default: 100000

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.historyIgnore

List of commands that should not be saved to the history list.

Type: list of string

Default: [ ]

Example:

[
  "ls"
  "cd"
  "exit"
]

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.historySize

Number of history lines to keep in memory.

Type: signed integer

Default: 10000

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.initExtra

Extra commands that should be run when initializing an interactive shell.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.logoutExtra

Extra commands that should be run when logging out of an interactive shell.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.profileExtra

Extra commands that should be run when initializing a login shell.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.sessionVariables

Environment variables that will be set for the Bash session.

Type: attribute set

Default: { }

Example:

{
  MAILCHECK = 30;
}

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.shellAliases

An attribute set that maps aliases (the top level attribute names in this option) to command strings or directly to build outputs.

Type: attribute set of string

Default: { }

Example:

{
  ll = "ls -l";
  ".." = "cd ..";
}

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.shellOptions

Shell options to set. Prefix an option with “-” to unset.

Type: list of string

Default:

[
  "histappend"
  "checkwinsize"
  "extglob"
  "globstar"
  "checkjobs"
]

Example:

[
  "extglob"
  "-cdspell"
]

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bashmount.enable

Whether to enable bashmount.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/bashmount.nix>
programs.bashmount.extraConfig

Configuration written to $XDG_CONFIG_HOME/bashmount/config. Look at https://github.com/jamielinux/bashmount/blob/master/bashmount.conf for explanation about possible values.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/bashmount.nix>
programs.bat.enable

Whether to enable bat, a cat clone with wings.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/bat.nix>
programs.bat.package

The bat package to use.

Type: package

Default: pkgs.bat

Declared by:

<home-manager/modules/programs/bat.nix>
programs.bat.config

Bat configuration.

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

Default: { }

Example:

{
  map-syntax = [
    "*.jenkinsfile:Groovy"
    "*.props:Java Properties"
  ];
  pager = "less -FR";
  theme = "TwoDark";
}

Declared by:

<home-manager/modules/programs/bat.nix>
programs.bat.extraPackages

Additional bat packages to install.

Type: list of package

Default: [ ]

Example: with pkgs.bat-extras; [ batdiff batman batgrep batwatch ];

Declared by:

<home-manager/modules/programs/bat.nix>
programs.bat.syntaxes

Additional syntaxes to provide.

Type: attribute set of (strings concatenated with “\n” or (submodule))

Default: { }

Example:

{
  gleam = {
    src = pkgs.fetchFromGitHub {
      owner = "molnarmark";
      repo = "sublime-gleam";
      rev = "2e761cdb1a87539d827987f997a20a35efd68aa9";
      hash = "sha256-Zj2DKTcO1t9g18qsNKtpHKElbRSc9nBRE2QBzRn9+qs=";
    };
    file = "syntax/gleam.sublime-syntax";
  };
}

Declared by:

<home-manager/modules/programs/bat.nix>
programs.bat.themes

Additional themes to provide.

Type: attribute set of (strings concatenated with “\n” or (submodule))

Default: { }

Example:

{
  dracula = {
    src = pkgs.fetchFromGitHub {
      owner = "dracula";
      repo = "sublime"; # Bat uses sublime syntax for its themes
      rev = "26c57ec282abcaa76e57e055f38432bd827ac34e";
      sha256 = "019hfl4zbn4vm4154hh3bwk6hm7bdxbr1hdww83nabxwjn99ndhv";
    };
    file = "Dracula.tmTheme";
  };
}

Declared by:

<home-manager/modules/programs/bat.nix>
programs.beets.enable

Whether to enable the beets music library manager. This defaults to false for state version ≥ 19.03. For earlier versions beets is enabled if programs.beets.settings is non-empty.

Type: boolean

Default: "false"

Declared by:

<home-manager/modules/programs/beets.nix>
programs.beets.package

The beets package to use. Can be used to specify extensions.

Type: package

Default: pkgs.beets

Example: (pkgs.beets.override { pluginOverrides = { beatport.enable = false; }; })

Declared by:

<home-manager/modules/programs/beets.nix>
programs.beets.mpdIntegration.enableStats

Whether to enable mpdstats plugin and service.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/beets.nix>
programs.beets.mpdIntegration.enableUpdate

Whether to enable mpdupdate plugin.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/beets.nix>
programs.beets.mpdIntegration.host

The host that mpdstats will connect to.

Type: string

Default: "localhost"

Example: "10.0.0.42"

Declared by:

<home-manager/modules/programs/beets.nix>
programs.beets.mpdIntegration.port

The port that mpdstats will connect to.

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

Default: config.services.mpd.network.port

Example: 6601

Declared by:

<home-manager/modules/programs/beets.nix>
programs.beets.settings

Configuration written to $XDG_CONFIG_HOME/beets/config.yaml

Type: YAML value

Default: { }

Declared by:

<home-manager/modules/programs/beets.nix>
programs.bemenu.enable

Whether to enable bemenu.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/bemenu.nix>
programs.bemenu.package

The bemenu package to use.

Type: package

Default: pkgs.bemenu

Declared by:

<home-manager/modules/programs/bemenu.nix>
programs.bemenu.settings

Configuration options for bemenu. See bemenu(1).

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

Default: { }

Example:

{
  line-height = 28;
  prompt = "open";
  ignorecase = true;
  fb = "#1e1e2e";
  ff = "#cdd6f4";
  nb = "#1e1e2e";
  nf = "#cdd6f4";
  tb = "#1e1e2e";
  hb = "#1e1e2e";
  tf = "#f38ba8";
  hf = "#f9e2af";
  af = "#cdd6f4";
  ab = "#1e1e2e";
  width-factor = 0.3;
}

Declared by:

<home-manager/modules/programs/bemenu.nix>
programs.borgmatic.enable

Whether to enable Borgmatic.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.package

The borgmatic package to use.

Type: package

Default: pkgs.borgmatic

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups

Borgmatic allows for several named backup configurations, each with its own source directories and repositories.

Type: attribute set of (submodule)

Example:

{
  personal = {
    location = {
      sourceDirectories = [ "/home/me/personal" ];
      repositories = [ "ssh://myuser@myserver.com/./personal-repo" ];
    };
  };
  work = {
    location = {
      sourceDirectories = [ "/home/me/work" ];
      repositories = [ "ssh://myuser@myserver.com/./work-repo" ];
    };
  };
};

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.consistency.checks

Consistency checks to run

Type: list of (submodule)

Default: [ ]

Example:

[
  {
    name = "repository";
    frequency = "2 weeks";
  }
  {
    name = "archives";
    frequency = "4 weeks";
  }
  {
    name = "data";
    frequency = "6 weeks";
  }
  {
    name = "extract";
    frequency = "6 weeks";
  }
];

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.consistency.checks.*.frequency

Frequency of this type of check

Type: null or string matching the pattern ([[:digit:]]+ .*)|always

Default: null

Example: "2 weeks"

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.consistency.checks.*.name

Name of consistency check to run.

Type: one of “repository”, “archives”, “data”, “extract”

Example: "repository"

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.consistency.extraConfig

Extra settings.

Type: YAML value

Default: { }

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.hooks.extraConfig

Extra settings.

Type: YAML value

Default: { }

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.location.excludeHomeManagerSymlinks

Whether to exclude Home Manager generated symbolic links from the backups. This facilitates restoring the whole home directory when the Nix store doesn’t contain the latest Home Manager generation.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.location.extraConfig

Extra settings.

Type: YAML value

Default: { }

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.location.patterns

Patterns to include/exclude.

See the output of borg help patterns for the syntax. Pattern paths are relative to / even when a different recursion root is set.

Mutually exclusive with programs.borgmatic.backups.<name>.location.sourceDirectories.

Type: null or (list of string)

Default: null

Example:

[
  "R /home/user"
  "- home/user/.cache"
  "- home/user/Downloads"
  "+ home/user/Videos/Important Video"
  "- home/user/Videos"
]

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.location.repositories

List of local or remote repositories with paths and optional labels.

Type: list of (string or (submodule))

Example:

[
  {
    "path" = "ssh://myuser@myrepo.myserver.com/./repo";
    "label" = "server";
  }
  {
    "path" = "/var/lib/backups/local.borg";
    "label" = "local";
  }
]

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.location.sourceDirectories

Directories to backup.

Mutually exclusive with programs.borgmatic.backups.<name>.location.patterns.

Type: null or (list of string)

Default: null

Example: [config.home.homeDirectory]

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.output.extraConfig

Extra settings.

Type: YAML value

Default: { }

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.retention.extraConfig

Extra settings.

Type: YAML value

Default: { }

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.retention.keepDaily

Number of daily archives to keep. Use -1 for no limit.

Type: null or signed integer

Default: null

Example: 3

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.retention.keepHourly

Number of hourly archives to keep. Use -1 for no limit.

Type: null or signed integer

Default: null

Example: 3

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.retention.keepMinutely

Number of minutely archives to keep. Use -1 for no limit.

Type: null or signed integer

Default: null

Example: 3

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.retention.keepMonthly

Number of monthly archives to keep. Use -1 for no limit.

Type: null or signed integer

Default: null

Example: 3

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.retention.keepSecondly

Number of secondly archives to keep. Use -1 for no limit.

Type: null or signed integer

Default: null

Example: 3

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.retention.keepWeekly

Number of weekly archives to keep. Use -1 for no limit.

Type: null or signed integer

Default: null

Example: 3

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.retention.keepWithin

Keep all archives within this time interval.

Type: null or string matching the pattern [[:digit:]]+[Hdwmy]

Default: null

Example: "2d"

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.retention.keepYearly

Number of yearly archives to keep. Use -1 for no limit.

Type: null or signed integer

Default: null

Example: 3

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.storage.encryptionPasscommand

Command writing the passphrase to standard output.

Type: null or string

Default: null

Example: "${pkgs.password-store}/bin/pass borg-repo"

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.storage.extraConfig

Extra settings.

Type: YAML value

Default: { }

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.bottom.enable

Whether to enable bottom, a cross-platform graphical process/system monitor with a customizable interface.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/bottom.nix>
programs.bottom.package

Package providing bottom.

Type: package

Default: pkgs.bottom

Declared by:

<home-manager/modules/programs/bottom.nix>
programs.bottom.settings

Configuration written to $XDG_CONFIG_HOME/bottom/bottom.toml.

See https://github.com/ClementTsang/bottom/blob/master/sample_configs/default_config.toml for the default configuration.

Type: TOML value

Default: { }

Example:

{
  flags = {
    avg_cpu = true;
    temperature_type = "c";
  };

  colors = {
    low_battery_color = "red";
  };
}

Declared by:

<home-manager/modules/programs/bottom.nix>
programs.boxxy.enable

Whether to enable boxxy: Boxes in badly behaving applications.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/boxxy.nix>
programs.boxxy.package

The boxxy package to use.

Type: package

Default: pkgs.boxxy

Declared by:

<home-manager/modules/programs/boxxy.nix>
programs.boxxy.rules

List of boxxy rules

Type: list of (YAML value)

Default: [ ]

Declared by:

<home-manager/modules/programs/boxxy.nix>
programs.boxxy.rules.*.context

Apply redirection ONLY when in a certain directory.

Type: list of string

Default: [ ]

Example:

[
  "/home/example/Projects/my-project"
]

Declared by:

<home-manager/modules/programs/boxxy.nix>
programs.boxxy.rules.*.env

Give certain environment variables for said match.

Type: attribute set of string

Default: { }

Example:

{
  MY_ENV_VAR = "my_env_var_value";
}

Declared by:

<home-manager/modules/programs/boxxy.nix>
programs.boxxy.rules.*.mode

Does the current path redirect a file or a directory?

Type: one of “file”, “directory”

Default: "directory"

Declared by:

<home-manager/modules/programs/boxxy.nix>
programs.boxxy.rules.*.name

Unique identifier of the boxxy rule. This can be any single-line string.

Type: string

Declared by:

<home-manager/modules/programs/boxxy.nix>
programs.boxxy.rules.*.only

Apply redirection ONLY to specified executable names.

Type: list of string

Default: [ ]

Example:

[
  "bash"
  "/usr/bin/sh"
]

Declared by:

<home-manager/modules/programs/boxxy.nix>
programs.boxxy.rules.*.rewrite

Where that file/directory should be rewritten to.

Type: string

Default: ""

Example: "${config.xdg.configHome}/ssh"

Declared by:

<home-manager/modules/programs/boxxy.nix>
programs.boxxy.rules.*.target

What directory/file to redirect.

Type: string

Default: ""

Example: "~/.ssh"

Declared by:

<home-manager/modules/programs/boxxy.nix>
programs.broot.enable

Whether to enable Broot, a better way to navigate directories.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/broot.nix>
programs.broot.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/broot.nix>
programs.broot.enableFishIntegration

Whether to enable Fish integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/broot.nix>
programs.broot.enableNushellIntegration

Whether to enable Nushell integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/broot.nix>
programs.broot.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/broot.nix>
programs.broot.package

Package providing broot

Type: package

Default: pkgs.broot

Declared by:

<home-manager/modules/programs/broot.nix>
programs.broot.settings

Verbatim config entries

Type: TOML value

Default: { }

Declared by:

<home-manager/modules/programs/broot.nix>
programs.broot.settings.modal

Whether to enable modal (vim) mode.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/broot.nix>
programs.broot.settings.skin

Color configuration.

Complete list of keys (expected to change before the v1 of broot):

  • char_match

  • code

  • directory

  • exe

  • file

  • file_error

  • flag_label

  • flag_value

  • input

  • link

  • permissions

  • selected_line

  • size_bar_full

  • size_bar_void

  • size_text

  • spinner

  • status_error

  • status_normal

  • table_border

  • tree

  • unlisted

Add _fg for a foreground color and _bg for a background color.

Type: attribute set of string

Default: { }

Example:

{
  status_normal_fg = "grayscale(18)";
  status_normal_bg = "grayscale(3)";
  status_error_fg = "red";
  status_error_bg = "yellow";
  tree_fg = "red";
  selected_line_bg = "grayscale(7)";
  permissions_fg = "grayscale(12)";
  size_bar_full_bg = "red";
  size_bar_void_bg = "black";
  directory_fg = "lightyellow";
  input_fg = "cyan";
  flag_value_fg = "lightyellow";
  table_border_fg = "red";
  code_fg = "lightyellow";
}

Declared by:

<home-manager/modules/programs/broot.nix>
programs.broot.settings.verbs

Define new verbs. For more information, see Verb Definition Attributes in the broot documentation.

The possible attributes are:

invocation (optional)

how the verb is called by the user, with placeholders for arguments

execution (mandatory)

how the verb is executed

key (optional)

a keyboard key triggering execution

shortcut (optional)

an alternate way to call the verb (without the arguments part)

leave_broot (optional)

whether to quit broot on execution (default: true)

from_shell (optional)</term>

whether the verb must be executed from the parent shell (default: false)

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

Default: [ ]

Example:

[
  { invocation = "p"; execution = ":parent"; }
  { invocation = "edit"; shortcut = "e"; execution = "$EDITOR {file}" ; }
  { invocation = "create {subpath}"; execution = "$EDITOR {directory}/{subpath}"; }
  { invocation = "view"; execution = "less {file}"; }
  {
    invocation = "blop {name}\\.{type}";
    execution = "mkdir {parent}/{type} && ${pkgs.neovim}/bin/nvim {parent}/{type}/{name}.{type}";
    from_shell = true;
  }
]

Declared by:

<home-manager/modules/programs/broot.nix>
programs.browserpass.enable

Whether to enable the browserpass extension host application.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/browserpass.nix>
programs.browserpass.browsers

Which browsers to install browserpass for

Type: list of (one of “brave”, “chrome”, “chromium”, “firefox”, “librewolf”, “vivaldi”)

Default:

[
  "brave"
  "chrome"
  "chromium"
  "firefox"
  "librewolf"
  "vivaldi"
]

Example:

[
  "firefox"
]

Declared by:

<home-manager/modules/programs/browserpass.nix>
programs.btop.enable

Whether to enable btop.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/btop.nix>
programs.btop.package

The btop package to use.

Type: package

Default: pkgs.btop

Declared by:

<home-manager/modules/programs/btop.nix>
programs.btop.extraConfig

Extra lines added to the btop.conf file.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/btop.nix>
programs.btop.settings

Options to add to btop.conf file. See https://github.com/aristocratos/btop#configurability for options.

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

Default: { }

Example:

{
  color_theme = "Default";
  theme_background = false;
}

Declared by:

<home-manager/modules/programs/btop.nix>
programs.bun.enable

Whether to enable Bun JavaScript runtime.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/bun.nix>
programs.bun.enableGitIntegration

Whether to enable Git integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/bun.nix>
programs.bun.package

The bun package to use.

Type: package

Default: pkgs.bun

Declared by:

<home-manager/modules/programs/bun.nix>
programs.bun.settings

Configuration written to $XDG_CONFIG_HOME/.bunfig.toml.

See https://bun.sh/docs/runtime/bunfig for the full list of options.

Type: TOML value

Default: { }

Example:

{
  smol = true;
  telemetry = false;
  test = {
    coverage = true;
    coverageThreshold = 0.9;
  };
  install.lockfile = {
    print = "yarn";
  };
}

Declared by:

<home-manager/modules/programs/bun.nix>
programs.carapace.enable

Whether to enable carapace, a multi-shell multi-command argument completer.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/carapace.nix>
programs.carapace.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/carapace.nix>
programs.carapace.enableFishIntegration

Whether to enable Fish integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/carapace.nix>
programs.carapace.enableNushellIntegration

Whether to enable Nushell integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/carapace.nix>
programs.carapace.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/carapace.nix>
programs.carapace.package

The carapace package to use.

Type: package

Default: pkgs.carapace

Declared by:

<home-manager/modules/programs/carapace.nix>
programs.cava.enable

Whether to enable Cava audio visualizer.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/cava.nix>
programs.cava.package

The cava package to use.

Type: package

Default: pkgs.cava

Declared by:

<home-manager/modules/programs/cava.nix>
programs.cava.settings

Settings to be written to the Cava configuration file. See https://github.com/karlstav/cava/blob/master/example_files/config for all available options.

Type: attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))

Default: { }

Example:

{
  general.framerate = 60;
  input.method = "alsa";
  smoothing.noise_reduction = 88;
  color = {
    background = "'#000000'";
    foreground = "'#FFFFFF'";
  };
}

Declared by:

<home-manager/modules/programs/cava.nix>
programs.chromium.enable

Whether to enable Chromium.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/chromium.nix>
programs.chromium.package

The Chromium package to use.

Type: package

Default: pkgs.chromium

Declared by:

<home-manager/modules/programs/chromium.nix>
programs.chromium.commandLineArgs

List of command-line arguments to be passed to Chromium.

For a list of common switches, see Chrome switches.

To search switches for other components, see Chromium codesearch.

Type: list of string

Default: [ ]

Example:

[
  "--enable-logging=stderr"
  "--ignore-gpu-blocklist"
]

Declared by:

<home-manager/modules/programs/chromium.nix>
programs.chromium.dictionaries

List of Chromium dictionaries to install.

Type: list of package

Default: [ ]

Example:

[
  pkgs.hunspellDictsChromium.en_US
]

Declared by:

<home-manager/modules/programs/chromium.nix>
programs.chromium.extensions

List of Chromium extensions to install. To find the extension ID, check its URL on the Chrome Web Store.

To install extensions outside of the Chrome Web Store set updateUrl or crxPath and version as explained in the Chrome documentation.

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

Default: [ ]

Example:

[
  { id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; } # ublock origin
  {
    id = "dcpihecpambacapedldabdbpakmachpb";
    updateUrl = "https://raw.githubusercontent.com/iamadamdev/bypass-paywalls-chrome/master/updates.xml";
  }
  {
    id = "aaaaaaaaaabbbbbbbbbbcccccccccc";
    crxPath = "/home/share/extension.crx";
    version = "1.0";
  }
]

Declared by:

<home-manager/modules/programs/chromium.nix>
programs.chromium.extensions.*.crxPath

Path to the extension’s crx file. Linux only.

Type: null or path

Default: null

Declared by:

<home-manager/modules/programs/chromium.nix>
programs.chromium.extensions.*.id

The extension’s ID from the Chrome Web Store url or the unpacked crx.

Type: string matching the pattern [a-zA-Z]{32}

Default: ""

Declared by:

<home-manager/modules/programs/chromium.nix>
programs.chromium.extensions.*.updateUrl

URL of the extension’s update manifest XML file. Linux only.

Type: string

Default: "https://clients2.google.com/service/update2/crx"

Declared by:

<home-manager/modules/programs/chromium.nix>
programs.chromium.extensions.*.version

The extension’s version, required for local installation. Linux only.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/chromium.nix>
programs.command-not-found.enable

Whether to enable command-not-found hook for interactive shell.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/command-not-found/command-not-found.nix>
programs.command-not-found.dbPath

Absolute path to programs.sqlite. By default this file will be provided by your channel (nixexprs.tar.xz).

Type: path

Default: "/nix/var/nix/profiles/per-user/root/channels/nixos/programs.sqlite"

Declared by:

<home-manager/modules/programs/command-not-found/command-not-found.nix>
programs.comodoro.enable

Whether to enable Comodoro, a CLI to manage your time.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/comodoro.nix>
programs.comodoro.package

The comodoro package to use.

Type: package

Default: pkgs.comodoro

Declared by:

<home-manager/modules/programs/comodoro.nix>
programs.comodoro.settings

Comodoro configuration. See https://pimalaya.org/comodoro/cli/configuration/ for supported values.

Type: TOML value

Default: { }

Declared by:

<home-manager/modules/programs/comodoro.nix>
programs.darcs.enable

Whether to enable darcs.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/darcs.nix>
programs.darcs.package

The darcs package to use.

Type: package

Default: pkgs.darcs

Declared by:

<home-manager/modules/programs/darcs.nix>
programs.darcs.author

If this list has a single entry, it will be used as the author when you record a patch. If there are multiple entries, Darcs will prompt you to choose one of them.

Type: list of string

Default: [ ]

Example:

[
  "Fred Bloggs <fred@example.net>"
]

Declared by:

<home-manager/modules/programs/darcs.nix>
programs.darcs.boring

File patterns to ignore

Type: list of string

Default: [ ]

Example:

[
  "^.idea$"
  ".iml$"
  "^.stack-work$"
]

Declared by:

<home-manager/modules/programs/darcs.nix>
programs.dircolors.enable

Whether to manage .dir_colors and set LS_COLORS.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/dircolors.nix>
programs.dircolors.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/dircolors.nix>
programs.dircolors.enableFishIntegration

Whether to enable Fish integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/dircolors.nix>
programs.dircolors.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/dircolors.nix>
programs.dircolors.extraConfig

Extra lines added to .dir_colors file.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/dircolors.nix>
programs.dircolors.settings

Options to add to .dir_colors file. See dircolors --print-database for options.

Type: attribute set of string

Default: { }

Example:

{
  OTHER_WRITABLE = "30;46";
  ".sh" = "01;32";
  ".csh" = "01;32";
}

Declared by:

<home-manager/modules/programs/dircolors.nix>
programs.direnv.enable

Whether to enable direnv, the environment switcher.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/direnv.nix>
programs.direnv.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/direnv.nix>
programs.direnv.enableFishIntegration

Whether to enable Fish integration. Note, enabling the direnv module will always active its functionality for Fish since the direnv package automatically gets loaded in Fish. If this is not the case try adding

  environment.pathsToLink = [ "/share/fish" ];

to the system configuration.

Type: boolean (read only)

Default: true

Declared by:

<home-manager/modules/programs/direnv.nix>
programs.direnv.enableNushellIntegration

Whether to enable Nushell integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/direnv.nix>
programs.direnv.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/direnv.nix>
programs.direnv.package

The direnv package to use.

Type: package

Default: pkgs.direnv

Declared by:

<home-manager/modules/programs/direnv.nix>
programs.direnv.config

Configuration written to $XDG_CONFIG_HOME/direnv/direnv.toml.

See direnv.toml(1). for the full list of options.

Type: TOML value

Default: { }

Declared by:

<home-manager/modules/programs/direnv.nix>
programs.direnv.nix-direnv.enable

Whether to enable nix-direnv, a fast, persistent use_nix implementation for direnv.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/direnv.nix>
programs.direnv.nix-direnv.package

The nix-direnv package to use.

Type: package

Default: pkgs.nix-direnv

Declared by:

<home-manager/modules/programs/direnv.nix>
programs.direnv.silent

Whether to enable silent mode, that is, disabling direnv logging.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/direnv.nix>
programs.direnv.stdlib

Custom stdlib written to $XDG_CONFIG_HOME/direnv/direnvrc.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/direnv.nix>
programs.discocss.enable

Whether to enable discocss, a tiny Discord CSS injector for Linux and MacOS.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/discocss.nix>
programs.discocss.package

The discocss package to use.

Type: package

Default: pkgs.discocss

Declared by:

<home-manager/modules/programs/discocss.nix>
programs.discocss.css

The custom CSS for discocss to use.

Type: string

Default: ""

Declared by:

<home-manager/modules/programs/discocss.nix>
programs.discocss.discordAlias

Whether to alias discocss to discord.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/discocss.nix>
programs.discocss.discordPackage

The discord package to use.

Type: package

Default: pkgs.discord

Declared by:

<home-manager/modules/programs/discocss.nix>
programs.eclipse.enable

Whether to enable Eclipse.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/eclipse.nix>
programs.eclipse.enableLombok

Whether to enable the Lombok Java Agent in Eclipse. This is necessary to use the Lombok class annotations.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/eclipse.nix>
programs.eclipse.package

The Eclipse package to install.

Type: package

Default: pkgs.eclipses.eclipse-platform

Example: pkgs.eclipses.eclipse-java

Declared by:

<home-manager/modules/programs/eclipse.nix>
programs.eclipse.jvmArgs

JVM arguments to use for the Eclipse process.

Type: list of string

Default: [ ]

Declared by:

<home-manager/modules/programs/eclipse.nix>
programs.eclipse.plugins

Plugins that should be added to Eclipse.

Type: list of package

Default: [ ]

Declared by:

<home-manager/modules/programs/eclipse.nix>
programs.emacs.enable

Whether to enable Emacs.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/emacs.nix>
programs.emacs.package

The Emacs package to use.

Type: package

Default: pkgs.emacs

Example: pkgs.emacs25-nox

Declared by:

<home-manager/modules/programs/emacs.nix>
programs.emacs.extraConfig

Configuration to include in the Emacs default init file. See https://www.gnu.org/software/emacs/manual/html_node/elisp/Init-File.html for more.

Note, the inhibit-startup-message Emacs option cannot be set here since Emacs disallows setting it from the default initialization file.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  (setq standard-indent 2)
''

Declared by:

<home-manager/modules/programs/emacs.nix>
programs.emacs.extraPackages

Extra packages available to Emacs. To get a list of available packages run: nix-env -f '<nixpkgs>' -qaP -A emacsPackages.

Type: Function that takes an attribute set and returns a list containing a selection of the values of the input set

Default: "epkgs: []"

Example: epkgs: [ epkgs.emms epkgs.magit ]

Declared by:

<home-manager/modules/programs/emacs.nix>
programs.emacs.overrides

Allows overriding packages within the Emacs package set.

Type: An overlay function, takes self and super and returns an attribute set overriding the desired attributes.

Default: "self: super: {}"

Example:

self: super: rec {
  haskell-mode = self.melpaPackages.haskell-mode;
  # ...
};

Declared by:

<home-manager/modules/programs/emacs.nix>
programs.eww.enable

Whether to enable eww.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/eww.nix>
programs.eww.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/eww.nix>
programs.eww.enableFishIntegration

Whether to enable Fish integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/eww.nix>
programs.eww.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/eww.nix>
programs.eww.package

The eww package to install.

Type: package

Default: pkgs.eww

Example: pkgs.eww

Declared by:

<home-manager/modules/programs/eww.nix>
programs.eww.configDir

The directory that gets symlinked to $XDG_CONFIG_HOME/eww.

Type: path

Example: ./eww-config-dir

Declared by:

<home-manager/modules/programs/eww.nix>
programs.eza.enable

Whether to enable eza, a modern replacement for ls.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/eza.nix>
programs.eza.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/eza.nix>
programs.eza.enableFishIntegration

Whether to enable Fish integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/eza.nix>
programs.eza.enableIonIntegration

Whether to enable Ion integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/eza.nix>
programs.eza.enableNushellIntegration

Whether to enable Nushell integration.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/eza.nix>
programs.eza.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/eza.nix>
programs.eza.package

The eza package to use.

Type: package

Default: pkgs.eza

Declared by:

<home-manager/modules/programs/eza.nix>
programs.eza.extraOptions

Extra command line options passed to eza.

Type: list of string

Default: [ ]

Example:

[
  "--group-directories-first"
  "--header"
]

Declared by:

<home-manager/modules/programs/eza.nix>
programs.eza.git

List each file’s Git status if tracked or ignored (--git argument).

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/eza.nix>
programs.eza.icons

Display icons next to file names (--icons argument).

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/eza.nix>
programs.fastfetch.enable

Whether to enable Fastfetch.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/fastfetch.nix>
programs.fastfetch.package

The fastfetch package to use.

Type: package

Default: pkgs.fastfetch

Declared by:

<home-manager/modules/programs/fastfetch.nix>
programs.fastfetch.settings

Configuration written to $XDG_CONFIG_HOME/fastfetch/config.jsonc. See https://github.com/fastfetch-cli/fastfetch/wiki/Json-Schema for the documentation.

Type: JSON value

Default: { }

Example:

{
  logo = {
    source = "nixos_small";
    padding = {
      right = 1;
    };
  };
  display = {
    size = {
      binaryPrefix = "si";
    };
    color = "blue";
    separator = "  ";
  };
  modules = [
    {
      type = "datetime";
      key = "Date";
      format = "{1}-{3}-{11}";
    }
    {
      type = "datetime";
      key = "Time";
      format = "{14}:{17}:{20}";
    }
    "break"
    "player"
    "media"
  ];
};

Declared by:

<home-manager/modules/programs/fastfetch.nix>
programs.fd.enable

Whether to enable fd, a simple, fast and user-friendly alternative to find.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/fd.nix>
programs.fd.package

The fd package to use.

Type: package

Default: pkgs.fd

Declared by:

<home-manager/modules/programs/fd.nix>
programs.fd.extraOptions

Extra command line options passed to fd.

Type: list of string

Default: [ ]

Example:

[
  "--no-ignore"
  "--absolute-path"
]

Declared by:

<home-manager/modules/programs/fd.nix>
programs.fd.hidden

Search hidden files and directories (--hidden argument).

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/fd.nix>
programs.fd.ignores

List of paths that should be globally ignored.

Type: list of string

Default: [ ]

Example:

[
  ".git/"
  "*.bak"
]

Declared by:

<home-manager/modules/programs/fd.nix>
programs.feh.enable

Whether to enable feh - a fast and light image viewer.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/feh.nix>
programs.feh.package

The feh package to use.

Type: package

Default: pkgs.feh

Declared by:

<home-manager/modules/programs/feh.nix>
programs.feh.buttons

Override feh’s default mouse button mapping. If you want to disable an action, set its value to null. If you want to bind multiple buttons to an action, set its value to a list. See https://man.finalrewind.org/1/feh/#x425554544f4e53 for default bindings and available commands.

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

Default: { }

Example:

{
  prev_img = [
    3
    "C-3"
  ];
  zoom_in = 4;
  zoom_out = "C-4";
}

Declared by:

<home-manager/modules/programs/feh.nix>
programs.feh.keybindings

Override feh’s default keybindings. If you want to disable a keybinding set its value to null. If you want to bind multiple keys to an action, set its value to a list. See https://man.finalrewind.org/1/feh/#x4b455953 for default bindings and available commands.

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

Default: { }

Example:

{
  prev_img = [
    "h"
    "Left"
  ];
  zoom_in = "plus";
  zoom_out = "minus";
}

Declared by:

<home-manager/modules/programs/feh.nix>
programs.firefox.enable

Whether to enable Firefox.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.enableGnomeExtensions

Whether to enable the GNOME Shell native host connector. Note, you also need to set the NixOS option services.gnome.gnome-browser-connector.enable to true.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.package

The Firefox package to use. If state version ≥ 19.09 then this should be a wrapped Firefox package. For earlier state versions it should be an unwrapped Firefox package. Set to null to disable installing Firefox.

Type: null or package

Default: pkgs.firefox

Example:

pkgs.firefox.override {
  # See nixpkgs' firefox/wrapper.nix to check which options you can use
  nativeMessagingHosts = [
    # Gnome shell native connector
    pkgs.gnome-browser-connector
    # Tridactyl native connector
    pkgs.tridactyl-native
  ];
}

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.finalPackage

Resulting Firefox package.

Type: null or package (read only)

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.languagePacks

The language packs to install. Available language codes can be found on the releases page: https://releases.mozilla.org/pub/firefox/releases/${version}/linux-x86_64/xpi/, replacing ${version} with the version of Firefox you have.

Type: list of string

Default: [ ]

Example:

[
  "en-GB"
  "de"
]

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.nativeMessagingHosts

Additional packages containing native messaging hosts that should be made available to Firefox extensions.

Type: list of package

Default: [ ]

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.policies

See list of policies.

Type: attribute set of (JSON value)

Default: { }

Example:

{
  BlockAboutConfig = true;
  DefaultDownloadDirectory = "\${home}/Downloads";
}

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles

Attribute set of Firefox profiles.

Type: attribute set of (submodule)

Default: { }

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.bookmarks

Preloaded bookmarks. Note, this may silently overwrite any previously existing bookmarks!

Type: (list of ((bookmark submodule) or (directory submodule))) or (attribute set of ((bookmark submodule) or (directory submodule))) convertible to it

Default: [ ]

Example:

[
  {
    name = "wikipedia";
    tags = [ "wiki" ];
    keyword = "wiki";
    url = "https://en.wikipedia.org/wiki/Special:Search?search=%s&go=Go";
  }
  {
    name = "kernel.org";
    url = "https://www.kernel.org";
  }
  {
    name = "Nix sites";
    toolbar = true;
    bookmarks = [
      {
        name = "homepage";
        url = "https://nixos.org/";
      }
      {
        name = "wiki";
        tags = [ "wiki" "nix" ];
        url = "https://wiki.nixos.org/";
      }
    ];
  }
]

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.containers

Attribute set of container configurations. See Multi-Account Containers for more information.

Type: attribute set of (submodule)

Default: { }

Example:

{
  dangerous = {
    color = "red";
    icon = "fruit";
    id = 2;
  };
  shopping = {
    color = "blue";
    icon = "cart";
    id = 1;
  };
}

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.containers.<name>.color

Container color.

Type: one of “blue”, “turquoise”, “green”, “yellow”, “orange”, “red”, “pink”, “purple”, “toolbar”

Default: "pink"

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.containers.<name>.icon

Container icon.

Type: one of “briefcase”, “cart”, “circle”, “dollar”, “fence”, “fingerprint”, “gift”, “vacation”, “food”, “fruit”, “pet”, “tree”, “chill”

Default: "fruit"

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.containers.<name>.id

Container ID. This should be set to a unique number per container in this profile.

Type: unsigned integer, meaning >=0

Default: 0

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.containers.<name>.name

Container name, e.g., shopping.

Type: string

Default: "‹name›"

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.containersForce

Whether to force replace the existing containers configuration. This is recommended since Firefox will replace the symlink on every launch, but note that you’ll lose any existing configuration by enabling this.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.extensions

List of ‹name› add-on packages to install for this profile. Some pre-packaged add-ons are accessible from the Nix User Repository. Once you have NUR installed run

$ nix-env -f '<nixpkgs>' -qaP -A nur.repos.rycee.firefox-addons

to list the available ‹name› add-ons.

Note that it is necessary to manually enable these extensions inside ‹name› after the first installation.

To automatically enable extensions add "extensions.autoDisableScopes" = 0; to programs.firefox.profiles.<profile>.settings

Type: list of package

Default: [ ]

Example:

with pkgs.nur.repos.rycee.firefox-addons; [
  privacy-badger
]

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.extraConfig

Extra preferences to add to user.js.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.id

Profile ID. This should be set to a unique number per profile.

Type: unsigned integer, meaning >=0

Default: 0

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.isDefault

Whether this is a default profile.

Type: boolean

Default: "true if profile ID is 0"

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.name

Profile name.

Type: string

Default: "‹name›"

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.path

Profile path.

Type: string

Default: "‹name›"

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.search.default

The default search engine used in the address bar and search bar.

Type: null or string

Default: null

Example: "DuckDuckGo"

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.search.engines

Attribute set of search engine configurations. Engines that only have metaData specified will be treated as builtin to ‹name›.

See SearchEngine.jsm in Firefox’s source for available options. We maintain a mapping to let you specify all options in the referenced link without underscores, but it may fall out of date with future options.

Note, icon is also a special option added by Home Manager to make it convenient to specify absolute icon paths.

Type: attribute set of attribute set of (JSON value)

Default: { }

Example:

{
  "Nix Packages" = {
    urls = [{
      template = "https://search.nixos.org/packages";
      params = [
        { name = "type"; value = "packages"; }
        { name = "query"; value = "{searchTerms}"; }
      ];
    }];

    icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
    definedAliases = [ "@np" ];
  };

  "NixOS Wiki" = {
    urls = [{ template = "https://wiki.nixos.org/index.php?search={searchTerms}"; }];
    iconUpdateURL = "https://wiki.nixos.org/favicon.png";
    updateInterval = 24 * 60 * 60 * 1000; # every day
    definedAliases = [ "@nw" ];
  };

  "Bing".metaData.hidden = true;
  "Google".metaData.alias = "@g"; # builtin engines only support specifying one additional alias
}

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.search.force

Whether to force replace the existing search configuration. This is recommended since ‹name› will replace the symlink for the search configuration on every launch, but note that you’ll lose any existing configuration by enabling this.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.search.order

The order the search engines are listed in. Any engines that aren’t included in this list will be listed after these in an unspecified order.

Type: list of string

Default: [ ]

Example:

[
  "DuckDuckGo"
  "Google"
]

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.search.privateDefault

The default search engine used in the Private Browsing.

Type: null or string

Default: null

Example: "DuckDuckGo"

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.settings

Attribute set of ‹name› preferences.

‹name› only supports int, bool, and string types for preferences, but home-manager will automatically convert all other JSON-compatible values into strings.

Type: attribute set of (‹name› preference (int, bool, string, and also attrs, list, float as a JSON string))

Default: { }

Example:

{
  "browser.startup.homepage" = "https://nixos.org";
  "browser.search.region" = "GB";
  "browser.search.isUS" = false;
  "distribution.searchplugins.defaultLocale" = "en-GB";
  "general.useragent.locale" = "en-GB";
  "browser.bookmarks.showMobileBookmarks" = true;
  "browser.newtabpage.pinned" = [{
    title = "NixOS";
    url = "https://nixos.org";
  }];
}

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.userChrome

Custom ‹name› user chrome CSS.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  /* Hide tab bar in FF Quantum */
  @-moz-document url(chrome://browser/content/browser.xul), url(chrome://browser/content/browser.xhtml) {
    #TabsToolbar {
      visibility: collapse !important;
      margin-bottom: 21px !important;
    }
  
    #sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"] #sidebar-header {
      visibility: collapse !important;
    }
  }
''

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.userContent

Custom ‹name› user content CSS.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  /* Hide scrollbar in FF Quantum */
  *{scrollbar-width:none !important}
''

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.fish.enable

Whether to enable fish, the friendly interactive shell.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/fish.nix>
programs.fish.package

The fish package to install. May be used to change the version.

Type: package

Default: pkgs.fish

Declared by:

<home-manager/modules/programs/fish.nix>
programs.fish.functions

Basic functions to add to fish. For more information see https://fishshell.com/docs/current/cmds/function.html.

Type: attribute set of (strings concatenated with “\n” or (submodule))

Default: { }

Example:

{
  __fish_command_not_found_handler = {
    body = "__fish_default_command_not_found_handler $argv[1]";
    onEvent = "fish_command_not_found";
  };

  gitignore = "curl -sL https://www.gitignore.io/api/$argv";
}

Declared by:

<home-manager/modules/programs/fish.nix>
programs.fish.interactiveShellInit

Shell script code called during interactive fish shell initialisation.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/fish.nix>
programs.fish.loginShellInit

Shell script code called during fish login shell initialisation.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/fish.nix>
programs.fish.plugins

The plugins to source in conf.d/99plugins.fish.

Type: list of (submodule)

Default: [ ]

Example:

[
  {
    name = "z";
    src = pkgs.fetchFromGitHub {
      owner = "jethrokuan";
      repo = "z";
      rev = "ddeb28a7b6a1f0ec6dae40c636e5ca4908ad160a";
      sha256 = "0c5i7sdrsp0q3vbziqzdyqn4fmp235ax4mn4zslrswvn8g3fvdyh";
    };
  }

  # oh-my-fish plugins are stored in their own repositories, which
  # makes them simple to import into home-manager.
  {
    name = "fasd";
    src = pkgs.fetchFromGitHub {
      owner = "oh-my-fish";
      repo = "plugin-fasd";
      rev = "38a5b6b6011106092009549e52249c6d6f501fba";
      sha256 = "06v37hqy5yrv5a6ssd1p3cjd9y3hnp19d3ab7dag56fs1qmgyhbs";
    };
  }
]

Declared by:

<home-manager/modules/programs/fish.nix>
programs.fish.plugins.*.name

The name of the plugin.

Type: string

Declared by:

<home-manager/modules/programs/fish.nix>
programs.fish.plugins.*.src

Path to the plugin folder.

Relevant pieces will be added to the fish function path and the completion path. The init.fish and key_binding.fish files are sourced if they exist.

Type: path

Declared by:

<home-manager/modules/programs/fish.nix>
programs.fish.shellAbbrs

An attribute set that maps aliases (the top level attribute names in this option) to abbreviations. Abbreviations are expanded with the longer phrase after they are entered.

Type: attribute set of (string or (submodule))

Default: { }

Example:

{
  l = "less";
  gco = "git checkout";
  "-C" = {
    position = "anywhere";
    expansion = "--color";
  };
}

Declared by:

<home-manager/modules/programs/fish.nix>
programs.fish.shellAliases

An attribute set that maps aliases (the top level attribute names in this option) to command strings or directly to build outputs.

Type: attribute set of string

Default: { }

Example:

{
  g = "git";
  "..." = "cd ../..";
}

Declared by:

<home-manager/modules/programs/fish.nix>
programs.fish.shellInit

Shell script code called during fish shell initialisation.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/fish.nix>
programs.fish.shellInitLast

Shell script code called during interactive fish shell initialisation, this will be the last thing executed in fish startup.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/fish.nix>
programs.foot.enable

Whether to enable Foot terminal.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/foot.nix>
programs.foot.package

The foot package to install

Type: package

Default: pkgs.foot

Declared by:

<home-manager/modules/programs/foot.nix>
programs.foot.server.enable

Whether to enable Foot terminal server.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/foot.nix>
programs.foot.settings

Configuration written to $XDG_CONFIG_HOME/foot/foot.ini. See https://codeberg.org/dnkl/foot/src/branch/master/foot.ini for a list of available options.

Type: attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))

Default: { }

Example:

{
  main = {
    term = "xterm-256color";

    font = "Fira Code:size=11";
    dpi-aware = "yes";
  };

  mouse = {
    hide-when-typing = "yes";
  };
}

Declared by:

<home-manager/modules/programs/foot.nix>
programs.freetube.enable

Whether to enable FreeTube, a YT client for Windows, Mac, and Linux.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/freetube.nix>
programs.freetube.package

The freetube package to use.

Type: package

Default: pkgs.freetube

Declared by:

<home-manager/modules/programs/freetube.nix>
programs.freetube.settings

Configuration settings for FreeTube.

All configurable options can be deduced by enabling them through the GUI and observing the changes in settings.db.

Type: attribute set

Default: { }

Example:

{
  allowDashAv1Formats = true;
  checkForUpdates     = false;
  defaultQuality      = "1080";
  baseTheme           = "catppuccinMocha";
}

Declared by:

<home-manager/modules/programs/freetube.nix>
programs.fuzzel.enable

Whether to enable fuzzel.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/fuzzel.nix>
programs.fuzzel.package

The fuzzel package to use.

Type: package

Default: pkgs.fuzzel

Declared by:

<home-manager/modules/programs/fuzzel.nix>
programs.fuzzel.settings

Configuration for fuzzel written to $XDG_CONFIG_HOME/fuzzel/fuzzel.ini. See fuzzel.ini(5) for a list of available options.

Type: attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))

Default: { }

Example:

{
  main = {
    terminal = "${pkgs.foot}/bin/foot";
    layer = "overlay";
  };
  colors.background = "ffffffff";
}

Declared by:

<home-manager/modules/programs/fuzzel.nix>
programs.fzf.enable

Whether to enable fzf - a command-line fuzzy finder.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.enableFishIntegration

Whether to enable Fish integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.package

Package providing the fzf tool.

Type: package

Default: pkgs.fzf

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.changeDirWidgetCommand

The command that gets executed as the source for fzf for the ALT-C keybinding.

Type: null or string

Default: null

Example: "fd --type d"

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.changeDirWidgetOptions

Command line options for the ALT-C keybinding.

Type: list of string

Default: [ ]

Example:

[
  "--preview 'tree -C {} | head -200'"
]

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.colors

Color scheme options added to FZF_DEFAULT_OPTS. See https://github.com/junegunn/fzf/wiki/Color-schemes for documentation.

Type: attribute set of string

Default: { }

Example:

{
  bg = "#1e1e1e";
  "bg+" = "#1e1e1e";
  fg = "#d4d4d4";
  "fg+" = "#d4d4d4";
}

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.defaultCommand

The command that gets executed as the default source for fzf when running.

Type: null or string

Default: null

Example: "fd --type f"

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.defaultOptions

Extra command line options given to fzf by default.

Type: list of string

Default: [ ]

Example:

[
  "--height 40%"
  "--border"
]

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.fileWidgetCommand

The command that gets executed as the source for fzf for the CTRL-T keybinding.

Type: null or string

Default: null

Example: "fd --type f"

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.fileWidgetOptions

Command line options for the CTRL-T keybinding.

Type: list of string

Default: [ ]

Example:

[
  "--preview 'head {}'"
]

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.historyWidgetOptions

Command line options for the CTRL-R keybinding.

Type: list of string

Default: [ ]

Example:

[
  "--sort"
  "--exact"
]

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.tmux.enableShellIntegration

Whether to enable setting FZF_TMUX=1 which causes shell integration to use fzf-tmux .

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.tmux.shellIntegrationOptions

If programs.fzf.tmux.enableShellIntegration is set to true, shell integration will use these options for fzf-tmux. See fzf-tmux --help for available options.

Type: list of string

Default: [ ]

Example: [ "-d 40%" ]

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.gallery-dl.enable

Whether to enable gallery-dl.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/gallery-dl.nix>
programs.gallery-dl.package

The gallery-dl package to use.

Type: package

Default: pkgs.gallery-dl

Declared by:

<home-manager/modules/programs/gallery-dl.nix>
programs.gallery-dl.settings

Configuration written to $XDG_CONFIG_HOME/gallery-dl/config.json. See https://github.com/mikf/gallery-dl#configuration for supported values.

Type: JSON value

Default: { }

Example:

{
  extractor.base-directory = "~/Downloads";
}

Declared by:

<home-manager/modules/programs/gallery-dl.nix>
programs.gh.enable

Whether to enable GitHub CLI tool.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/gh.nix>
programs.gh.package

Package providing gh.

Type: package

Default: pkgs.gh

Declared by:

<home-manager/modules/programs/gh.nix>
programs.gh.extensions

gh extensions, see https://cli.github.com/manual/gh_extension.

Type: list of package

Default: [ ]

Example: [ pkgs.gh-eco ]

Declared by:

<home-manager/modules/programs/gh.nix>
programs.gh.gitCredentialHelper.enable

Whether to enable the gh git credential helper.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/gh.nix>
programs.gh.gitCredentialHelper.hosts

GitHub hosts to enable the gh git credential helper for

Type: list of string

Default:

[
  "https://github.com"
  "https://gist.github.com"
]

Example:

[ "https://github.com" "https://github.example.com" ]

Declared by:

<home-manager/modules/programs/gh.nix>
programs.gh.settings

Configuration written to $XDG_CONFIG_HOME/gh/config.yml.

Type: YAML value

Default: { }

Example:

{
  git_protocol = "ssh";

  prompt = "enabled";

  aliases = {
    co = "pr checkout";
    pv = "pr view";
  };
};

Declared by:

<home-manager/modules/programs/gh.nix>
programs.gh.settings.aliases

Aliases that allow you to create nicknames for gh commands.

Type: attribute set of string

Default: { }

Example:

{
  co = "pr checkout";
  pv = "pr view";
}

Declared by:

<home-manager/modules/programs/gh.nix>
programs.gh.settings.editor

The editor that gh should run when creating issues, pull requests, etc. If blank, will refer to environment.

Type: string

Default: ""

Declared by:

<home-manager/modules/programs/gh.nix>
programs.gh.settings.git_protocol

The protocol to use when performing Git operations.

Type: string

Default: "https"

Example: "ssh"

Declared by:

<home-manager/modules/programs/gh.nix>
programs.gh-dash.enable

Whether to enable GitHub CLI dashboard plugin.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/gh-dash.nix>
programs.gh-dash.package

The gh-dash package to use.

Type: package

Default: pkgs.gh-dash

Declared by:

<home-manager/modules/programs/gh-dash.nix>
programs.gh-dash.settings

Configuration written to $XDG_CONFIG_HOME/gh-dash/config.yml.

Type: YAML value

Default: { }

Example:

{
  prSections = [{
    title = "My Pull Requests";
    filters = "is:open author:@me";
  }];
}

Declared by:

<home-manager/modules/programs/gh-dash.nix>
programs.git.enable

Whether to enable Git.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.package

Git package to install. Use pkgs.gitAndTools.gitFull to gain access to git send-email for instance.

Type: package

Default: pkgs.git

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.aliases

Git aliases to define.

Type: attribute set of string

Default: { }

Example:

{
  co = "checkout";
}

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.attributes

List of defining attributes set globally.

Type: list of string

Default: [ ]

Example:

[
  "*.pdf diff=pdf"
]

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.delta.enable

Whether to enable the delta syntax highlighter. See https://github.com/dandavison/delta.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.delta.package

The delta package to use.

Type: package

Default: pkgs.delta

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.delta.options

Options to configure delta.

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

Default: { }

Example:

{
  decorations = {
    commit-decoration-style = "bold yellow box ul";
    file-decoration-style = "none";
    file-style = "bold yellow ul";
  };
  features = "decorations";
  whitespace-error-style = "22 reverse";
}

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.diff-so-fancy.enable

Enable the diff-so-fancy diff colorizer. See https://github.com/so-fancy/diff-so-fancy.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.diff-so-fancy.changeHunkIndicators

Simplify git header chunks to a more human readable format.

Type: boolean

Default: true

Example: false

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.diff-so-fancy.markEmptyLines

Whether the first block of an empty line should be colored.

Type: boolean

Default: true

Example: false

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.diff-so-fancy.pagerOpts

Arguments to be passed to less.

Type: list of string

Default:

[
  "--tabs=4"
  "-RFX"
]

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.diff-so-fancy.rulerWidth

By default, the separator for the file header spans the full width of the terminal. Use this setting to set the width of the file header manually.

Type: null or signed integer

Default: null

Example: false

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.diff-so-fancy.stripLeadingSymbols

Whether the + or - at line-start should be removed.

Type: boolean

Default: true

Example: false

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.diff-so-fancy.useUnicodeRuler

By default, the separator for the file header uses Unicode line-drawing characters. If this is causing output errors on your terminal, set this to false to use ASCII characters instead.

Type: boolean

Default: true

Example: false

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.difftastic.enable

Enable the difftastic syntax highlighter. See https://github.com/Wilfred/difftastic.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.difftastic.package

The difftastic package to use.

Type: package

Default: pkgs.difftastic

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.difftastic.background

Determines whether difftastic should use the lighter or darker colors for syntax highlighting.

Type: one of “light”, “dark”

Default: "light"

Example: "dark"

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.difftastic.color

Determines when difftastic should color its output.

Type: one of “always”, “auto”, “never”

Default: "auto"

Example: "always"

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.difftastic.display

Determines how the output displays - in one column or two columns.

Type: one of “side-by-side”, “side-by-side-show-both”, “inline”

Default: "side-by-side"

Example: "inline"

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.extraConfig

Additional configuration to add. The use of string values is deprecated and will be removed in the future.

Type: strings concatenated with “\n” or attribute set of attribute set of (string or boolean or signed integer or list of (string or boolean or signed integer) or attribute set of (string or boolean or signed integer or list of (string or boolean or signed integer)))

Default: { }

Example:

{
  core = {
    whitespace = "trailing-space,space-before-tab";
  };
  url = {
    "ssh://git@host" = {
      insteadOf = "otherhost";
    };
  };
}

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.hooks

Configuration helper for Git hooks. See https://git-scm.com/docs/githooks for reference.

Type: attribute set of path

Default: { }

Example:

{
  pre-commit = ./pre-commit-script;
}

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.ignores

List of paths that should be globally ignored.

Type: list of string

Default: [ ]

Example:

[
  "*~"
  "*.swp"
]

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.includes

List of configuration files to include.

Type: list of (submodule)

Default: [ ]

Example:

[
  { path = "~/path/to/config.inc"; }
  {
    path = "~/path/to/conditional.inc";
    condition = "gitdir:~/src/dir";
  }
]

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.includes.*.condition

Include this configuration only when condition matches. Allowed conditions are described in git-config(1).

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.includes.*.contentSuffix

Nix store name for the git configuration text file, when generating the configuration text from nix options.

Type: string

Default: "gitconfig"

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.includes.*.contents

Configuration to include. If empty then a path must be given.

This follows the configuration structure as described in git-config(1).

Type: attribute set of anything

Default: { }

Example:

{
  user = {
    email = "bob@work.example.com";
    name = "Bob Work";
    signingKey = "1A2B3C4D5E6F7G8H";
  };
  commit = {
    gpgSign = true;
  };
};

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.includes.*.path

Path of the configuration file to include.

Type: string or path

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.lfs.enable

Whether to enable Git Large File Storage.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.lfs.skipSmudge

Skip automatic downloading of objects on clone or pull. This requires a manual git lfs pull every time a new commit is checked out on your repository.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.signing

Options related to signing commits using GnuPG.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.signing.gpgPath

Path to GnuPG binary to use.

Type: string

Default: "\${pkgs.gnupg}/bin/gpg2"

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.signing.key

The default GPG signing key fingerprint.

Set to null to let GnuPG decide what signing key to use depending on commit’s author.

Type: null or string

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.signing.signByDefault

Whether commits and tags should be signed by default.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.userEmail

Default user email to use.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.userName

Default user name to use.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/git.nix>
programs.git-cliff.enable

Whether to enable git-cliff changelog generator.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/git-cliff.nix>
programs.git-cliff.package

The git-cliff package to use.

Type: package

Default: pkgs.git-cliff

Declared by:

<home-manager/modules/programs/git-cliff.nix>
programs.git-cliff.settings

Configuration written to $XDG_CONFIG_HOME/git-cliff/cliff.toml. See https://git-cliff.org/docs/configuration for the documentation.

Type: TOML value

Default: { }

Example:

{
  header = "Changelog";
  trim = true;
}

Declared by:

<home-manager/modules/programs/git-cliff.nix>
programs.git-credential-oauth.enable

Whether to enable Git authentication handler for OAuth.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/git-credential-oauth.nix>
programs.git-credential-oauth.package

The git-credential-oauth package to use.

Type: package

Default: pkgs.git-credential-oauth

Declared by:

<home-manager/modules/programs/git-credential-oauth.nix>
programs.gitui.enable

Whether to enable gitui, blazing fast terminal-ui for git written in rust.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/gitui.nix>
programs.gitui.package

The package to use.

Type: package

Default: "pkgs.gitui"

Declared by:

<home-manager/modules/programs/gitui.nix>
programs.gitui.keyConfig

Key config in Ron file format. This is written to $XDG_CONFIG_HOME/gitui/key_config.ron.

Type: path or strings concatenated with “\n”

Default: ""

Example:

''
  exit: Some(( code: Char('c'), modifiers: ( bits: 2,),)),
  quit: Some(( code: Char('q'), modifiers: ( bits: 0,),)),
  exit_popup: Some(( code: Esc, modifiers: ( bits: 0,),)),
''

Declared by:

<home-manager/modules/programs/gitui.nix>
programs.gitui.theme

Theme in Ron file format. This is written to $XDG_CONFIG_HOME/gitui/theme.ron.

Type: path or strings concatenated with “\n”

Default:

''
  (
    selected_tab: Reset,
    command_fg: White,
    selection_bg: Blue,
    selection_fg: White,
    cmdbar_bg: Blue,
    cmdbar_extra_lines_bg: Blue,
    disabled_fg: DarkGray,
    diff_line_add: Green,
    diff_line_delete: Red,
    diff_file_added: LightGreen,
    diff_file_removed: LightRed,
    diff_file_moved: LightMagenta,
    diff_file_modified: Yellow,
    commit_hash: Magenta,
    commit_time: LightCyan,
    commit_author: Green,
    danger_fg: Red,
    push_gauge_bg: Blue,
    push_gauge_fg: Reset,
    tag_fg: LightMagenta,
    branch_fg: LightYellow,
  )
''

Declared by:

<home-manager/modules/programs/gitui.nix>
programs.gnome-shell.enable

Whether to enable GNOME Shell customization.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/gnome-shell.nix>
programs.gnome-shell.extensions

List of GNOME Shell extensions.

Type: list of (submodule)

Default: [ ]

Example:

[
  { package = pkgs.gnomeExtensions.dash-to-panel; }
  {
    id = "user-theme@gnome-shell-extensions.gcampax.github.com";
    package = pkgs.gnome.gnome-shell-extensions;
  }
]

Declared by:

<home-manager/modules/programs/gnome-shell.nix>
programs.gnome-shell.extensions.*.package

Package providing a GNOME Shell extension in $out/share/gnome-shell/extensions/${id}.

Type: package

Example: "pkgs.gnome.gnome-shell-extensions"

Declared by:

<home-manager/modules/programs/gnome-shell.nix>
programs.gnome-shell.extensions.*.id

ID of the GNOME Shell extension. If not provided, it will be obtained from package.extensionUuid.

Type: string

Example: "user-theme@gnome-shell-extensions.gcampax.github.com"

Declared by:

<home-manager/modules/programs/gnome-shell.nix>
programs.gnome-shell.theme

Theme to use for GNOME Shell.

Type: null or (submodule)

Default: null

Example:

{
  name = "Plata-Noir";
  package = pkgs.plata-theme;
}

Declared by:

<home-manager/modules/programs/gnome-shell.nix>
programs.gnome-shell.theme.package

Package providing a GNOME Shell theme in $out/share/themes/${name}/gnome-shell.

Type: null or package

Default: null

Example: pkgs.plata-theme

Declared by:

<home-manager/modules/programs/gnome-shell.nix>
programs.gnome-shell.theme.name

Name of the GNOME Shell theme.

Type: string

Example: "Plata-Noir"

Declared by:

<home-manager/modules/programs/gnome-shell.nix>
programs.gnome-terminal.enable

Whether to enable Gnome Terminal.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile

A set of Gnome Terminal profiles. Note, the name of a profile must be a UUID. You can generate one, for example, using uuidgen (from util-linux).

Type: attribute set of (submodule)

Default: { }

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.allowBold

If true, allow applications in the terminal to make text boldface.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.audibleBell

Turn on/off the terminal’s bell.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.backspaceBinding

Which string the terminal should send to an application when the user presses the Backspace key.

auto

Attempt to determine the right value from the terminal’s IO settings.

ascii-backspace

Send an ASCII backspace character (0x08).

ascii-delete

Send an ASCII delete character (0x7F).

delete-sequence

Send the @7 control sequence.

tty

Send terminal’s “erase” setting.

Type: one of “auto”, “ascii-backspace”, “ascii-delete”, “delete-sequence”, “tty”

Default: "ascii-delete"

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.boldIsBright

Whether bold text is shown in bright colors.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.colors

The terminal colors, null to use system default.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.colors.backgroundColor

The background color.

Type: string

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.colors.boldColor

The bold color, null to use same as foreground.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.colors.cursor

The color for the terminal cursor.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.colors.cursor.background

The background color.

Type: string

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.colors.cursor.foreground

The foreground color.

Type: string

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.colors.foregroundColor

The foreground color.

Type: string

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.colors.highlight

The colors for the terminal’s highlighted area.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.colors.highlight.background

The background color.

Type: string

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.colors.highlight.foreground

The foreground color.

Type: string

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.colors.palette

The terminal palette.

Type: list of string

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.cursorBlinkMode

The cursor blink mode.

Type: one of “system”, “on”, “off”

Default: "system"

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.cursorShape

The cursor shape.

Type: one of “block”, “ibeam”, “underline”

Default: "block"

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.customCommand

The command to use to start the shell, or null for default shell.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.default

Whether this should be the default profile.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.deleteBinding

Which string the terminal should send to an application when the user presses the Delete key.

auto

Send the @7 control sequence.

ascii-backspace

Send an ASCII backspace character (0x08).

ascii-delete

Send an ASCII delete character (0x7F).

delete-sequence

Send the @7 control sequence.

tty

Send terminal’s “erase” setting.

Type: one of “auto”, “ascii-backspace”, “ascii-delete”, “delete-sequence”, “tty”

Default: "delete-sequence"

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.font

The font name, null to use system default.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.loginShell

Run command as a login shell.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.scrollOnOutput

Whether to scroll when output is written.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.scrollbackLines

The number of scrollback lines to keep, null for infinite.

Type: null or signed integer

Default: 10000

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.showScrollbar

Whether the scroll bar should be visible.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.transparencyPercent

Background transparency in percent.

Type: null or integer between 0 and 100 (both inclusive)

Default: null

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.visibleName

The profile name.

Type: string

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.showMenubar

Whether to show the menubar by default

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.themeVariant

The theme variation to request

Type: one of “default”, “light”, “dark”, “system”

Default: "default"

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.go.enable

Whether to enable Go.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/go.nix>
programs.go.package

The Go package to use.

Type: package

Default: pkgs.go

Declared by:

<home-manager/modules/programs/go.nix>
programs.go.packages

Packages to add to GOPATH.

Type: attribute set of path

Default: { }

Example:

{
  "golang.org/x/text" = builtins.fetchGit "https://go.googlesource.com/text";
  "golang.org/x/time" = builtins.fetchGit "https://go.googlesource.com/time";
}

Declared by:

<home-manager/modules/programs/go.nix>
programs.go.extraGoPaths

Extra GOPATHs relative to HOME appended after programs.go.goPath, if that option is set.

Type: list of string

Default: [ ]

Example:

[
  "extraGoPath1"
  "extraGoPath2"
]

Declared by:

<home-manager/modules/programs/go.nix>
programs.go.goBin

GOBIN relative to HOME

Type: null or string

Default: null

Example: ".local/bin.go"

Declared by:

<home-manager/modules/programs/go.nix>
programs.go.goPath

Primary GOPATH relative to HOME. It will be exported first and therefore used by default by the Go tooling.

Type: null or string

Default: null

Example: "go"

Declared by:

<home-manager/modules/programs/go.nix>
programs.go.goPrivate

The GOPRIVATE environment variable controls which modules the go command considers to be private (not available publicly) and should therefore not use the proxy or checksum database.

Type: list of string

Default: [ ]

Example:

[
  "*.corp.example.com"
  "rsc.io/private"
]

Declared by:

<home-manager/modules/programs/go.nix>
programs.gpg.enable

Whether to enable GnuPG.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/gpg.nix>
programs.gpg.package

The Gnupg package to use (also used by the gpg-agent service).

Type: package

Default: pkgs.gnupg

Example: pkgs.gnupg23

Declared by:

<home-manager/modules/programs/gpg.nix>
programs.gpg.homedir

Directory to store keychains and configuration.

Type: path

Default: "${config.home.homeDirectory}/.gnupg"

Example: "${config.xdg.dataHome}/gnupg"

Declared by:

<home-manager/modules/programs/gpg.nix>
programs.gpg.mutableKeys

If set to true, you may manage your keyring as a user using the gpg command. Upon activation, the keyring will have managed keys added without overwriting unmanaged keys.

If set to false, the path $GNUPGHOME/pubring.kbx will become an immutable link to the Nix store, denying modifications.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/gpg.nix>
programs.gpg.mutableTrust

If set to true, you may manage trust as a user using the gpg command. Upon activation, trusted keys have their trust set without overwriting unmanaged keys.

If set to false, the path $GNUPGHOME/trustdb.gpg will be overwritten on each activation, removing trust for any unmanaged keys. Be careful to make a backup of your old trustdb.gpg before switching to immutable trust!

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/gpg.nix>
programs.gpg.publicKeys

A list of public keys to be imported into GnuPG. Note, these key files will be copied into the world-readable Nix store.

Type: list of (submodule)

Default: [ ]

Example:

[ { source = ./pubkeys.txt; } ]

Declared by:

<home-manager/modules/programs/gpg.nix>
programs.gpg.publicKeys.*.source

Path of an OpenPGP public key file.

Type: path

Declared by:

<home-manager/modules/programs/gpg.nix>
programs.gpg.publicKeys.*.text

Text of an OpenPGP public key.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/gpg.nix>
programs.gpg.publicKeys.*.trust

The amount of trust you have in the key ownership and the care the owner puts into signing other keys. The available levels are

unknown or 1

I don’t know or won’t say.

never or 2

I do not trust.

marginal or 3

I trust marginally.

full or 4

I trust fully.

ultimate or 5

I trust ultimately.

See the Key Management chapter of the GNU Privacy Handbook for more.

Type: null or one of “unknown”, 1, “never”, 2, “marginal”, 3, “full”, 4, “ultimate”, 5

Default: null

Declared by:

<home-manager/modules/programs/gpg.nix>
programs.gpg.scdaemonSettings

SCdaemon configuration options. Available options are described in scdaemon(1) .

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

Example:

{
  disable-ccid = true;
}

Declared by:

<home-manager/modules/programs/gpg.nix>
programs.gpg.settings

GnuPG configuration options. Available options are described in gpg(1) .

Note that lists are converted to duplicate keys.

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

Example:

{
  no-comments = false;
  s2k-cipher-algo = "AES128";
}

Declared by:

<home-manager/modules/programs/gpg.nix>
programs.gradle.enable

Whether to enable Gradle Build Tool.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/gradle.nix>
programs.gradle.package

The gradle package to use.

Type: package

Default: pkgs.gradle

Example: pkgs.gradle_7

Declared by:

<home-manager/modules/programs/gradle.nix>
programs.gradle.home

The Gradle home directory, relative to home.homeDirectory.

If set, the GRADLE_USER_HOME environment variable will be set accordingly. Defaults to .gradle.

Type: string

Default: ".gradle"

Declared by:

<home-manager/modules/programs/gradle.nix>
programs.gradle.initScripts

Definition of init scripts to link into the Gradle home directory.

For more information about init scripts, including naming conventions see https://docs.gradle.org/current/userguide/init_scripts.html.

Type: attribute set of (submodule)

Default: { }

Example:

{
  "maven-local.gradle".text = ''
      allProject {
        repositories {
          mavenLocal()
        }
      }
  '';
  "another.init.gradle.kts".source = ./another.init.gradle.kts;
}

Declared by:

<home-manager/modules/programs/gradle.nix>
programs.gradle.initScripts.<name>.source

Path of the init script file. If text is non-null then this option will automatically point to a file containing that text.

Type: path

Declared by:

<home-manager/modules/programs/gradle.nix>
programs.gradle.initScripts.<name>.text

Text of the init script file. if this option is null then source must be set.

Type: null or strings concatenated with “\n”

Default: null

Declared by:

<home-manager/modules/programs/gradle.nix>
programs.gradle.settings

Key value pairs to write to gradle.properties in the Gradle home directory.

Type: attribute set of (string, package, bool, int or float)

Default: { }

Example:

{
  "org.gradle.caching" = true;
  "org.gradle.parallel" = true;
  "org.gradle.jvmargs" = "-XX:MaxMetaspaceSize=384m";
  "org.gradle.home" = pkgs.jdk17;
};

Declared by:

<home-manager/modules/programs/gradle.nix>
programs.granted.enable

Whether to enable granted.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/granted.nix>
programs.granted.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/granted.nix>
programs.havoc.enable

Whether to enable Havoc terminal.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/havoc.nix>
programs.havoc.package

The havoc package to use.

Type: package

Default: pkgs.havoc

Declared by:

<home-manager/modules/programs/havoc.nix>
programs.havoc.settings

Configuration written to $XDG_CONFIG_HOME/havoc.cfg. See https://raw.githubusercontent.com/ii8/havoc/master/havoc.cfg for a list of available options.

Type: attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))

Default: { }

Example:

{
  child.program = "bash";
  window.opacity = 240;
  window.margin = no;
  terminal = {
    rows = 80;
    columns = 24;
    scrollback = 2000;
  };
  bind = {
    "C-S-c" = "copy";
    "C-S-v" = "paste";
    "C-S-r" = "reset";
    "C-S-Delete" = "hard reset";
    "C-S-j" = "scroll down";
    "C-S-k" = "scroll up";
    "C-S-Page_Down" = "scroll down page";
    "C-S-Page_Up" = "scroll up page";
    "C-S-End" = "scroll to bottom";
    "C-S-Home" = "scroll to top";
  };
}

Declared by:

<home-manager/modules/programs/havoc.nix>
programs.helix.enable

Whether to enable helix text editor.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/helix.nix>
programs.helix.package

The package to use for helix.

Type: package

Default: pkgs.helix

Declared by:

<home-manager/modules/programs/helix.nix>
programs.helix.defaultEditor

Whether to configure hx as the default editor using the EDITOR environment variable.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/helix.nix>
programs.helix.extraPackages

Extra packages available to hx.

Type: list of package

Default: [ ]

Example: [ pkgs.marksman ]

Declared by:

<home-manager/modules/programs/helix.nix>
programs.helix.ignores

List of paths that should be globally ignored for file picker. Supports the usual ignore and negative ignore (unignore) rules used in .gitignore files.

Type: list of string

Default: [ ]

Example:

[
  ".build/"
  "!.gitignore"
]

Declared by:

<home-manager/modules/programs/helix.nix>
programs.helix.languages

Language specific configuration at $XDG_CONFIG_HOME/helix/languages.toml.

See https://docs.helix-editor.com/languages.html for more information.

Type: (TOML value) or (list of (TOML value)) convertible to it

Default: { }

Example:

{
  # the language-server option currently requires helix from the master branch at https://github.com/helix-editor/helix/
  language-server.typescript-language-server = with pkgs.nodePackages; {
    command = "${typescript-language-server}/bin/typescript-language-server";
    args = [ "--stdio" "--tsserver-path=${typescript}/lib/node_modules/typescript/lib" ];
  };

  language = [{
    name = "rust";
    auto-format = false;
  }];
}

Declared by:

<home-manager/modules/programs/helix.nix>
programs.helix.settings

Configuration written to $XDG_CONFIG_HOME/helix/config.toml.

See https://docs.helix-editor.com/configuration.html for the full list of options.

Type: TOML value

Default: { }

Example:

{
  theme = "base16";
  editor = {
    line-number = "relative";
    lsp.display-messages = true;
  };
  keys.normal = {
    space.space = "file_picker";
    space.w = ":w";
    space.q = ":q";
    esc = [ "collapse_selection" "keep_primary_selection" ];
  };
}

Declared by:

<home-manager/modules/programs/helix.nix>
programs.helix.themes

Each theme is written to $XDG_CONFIG_HOME/helix/themes/theme-name.toml. Where the name of each attribute is the theme-name (in the example “base16”).

See https://docs.helix-editor.com/themes.html for the full list of options.

Type: attribute set of (TOML value)

Default: { }

Example:

{
  base16 = let
    transparent = "none";
    gray = "#665c54";
    dark-gray = "#3c3836";
    white = "#fbf1c7";
    black = "#282828";
    red = "#fb4934";
    green = "#b8bb26";
    yellow = "#fabd2f";
    orange = "#fe8019";
    blue = "#83a598";
    magenta = "#d3869b";
    cyan = "#8ec07c";
  in {
    "ui.menu" = transparent;
    "ui.menu.selected" = { modifiers = [ "reversed" ]; };
    "ui.linenr" = { fg = gray; bg = dark-gray; };
    "ui.popup" = { modifiers = [ "reversed" ]; };
    "ui.linenr.selected" = { fg = white; bg = black; modifiers = [ "bold" ]; };
    "ui.selection" = { fg = black; bg = blue; };
    "ui.selection.primary" = { modifiers = [ "reversed" ]; };
    "comment" = { fg = gray; };
    "ui.statusline" = { fg = white; bg = dark-gray; };
    "ui.statusline.inactive" = { fg = dark-gray; bg = white; };
    "ui.help" = { fg = dark-gray; bg = white; };
    "ui.cursor" = { modifiers = [ "reversed" ]; };
    "variable" = red;
    "variable.builtin" = orange;
    "constant.numeric" = orange;
    "constant" = orange;
    "attributes" = yellow;
    "type" = yellow;
    "ui.cursor.match" = { fg = yellow; modifiers = [ "underlined" ]; };
    "string" = green;
    "variable.other.member" = red;
    "constant.character.escape" = cyan;
    "function" = blue;
    "constructor" = blue;
    "special" = blue;
    "keyword" = magenta;
    "label" = magenta;
    "namespace" = blue;
    "diff.plus" = green;
    "diff.delta" = yellow;
    "diff.minus" = red;
    "diagnostic" = { modifiers = [ "underlined" ]; };
    "ui.gutter" = { bg = black; };
    "info" = blue;
    "hint" = dark-gray;
    "debug" = dark-gray;
    "warning" = yellow;
    "error" = red;
  };
}

Declared by:

<home-manager/modules/programs/helix.nix>
programs.hexchat.enable

Whether to enable HexChat, a graphical IRC client.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels

Configures $XDG_CONFIG_HOME/hexchat/servlist.conf.

Type: attribute set of (submodule)

Default: { }

Example:

{
  oftc = {
    autojoin = [
      "#home-manager"
      "#linux"
    ];
    charset = "UTF-8 (Unicode)";
    commands = [
      "ECHO Buzz Lightyear sent you a message: 'To Infinity... and Beyond!'"
    ];
    loginMethod = sasl;
    nickname = "my_nickname";
    nickname2 = "my_secondchoice";
    options = {
      acceptInvalidSSLCertificates = false;
      autoconnect = true;
      bypassProxy = true;
      connectToSelectedServerOnly = true;
      useGlobalUserInformation = false;
      forceSSL = false;
    };
    password = "my_password";
    realName = "my_realname";
    servers = [
      "irc.oftc.net"
    ];
    userName = "my_username";
  };
}

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.autojoin

Channels list to autojoin on connecting to server.

Type: list of string

Default: [ ]

Example:

[
  "#home-manager"
  "#linux"
  "#nix"
]

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.charset

Character set.

Type: null or string

Default: null

Example: "UTF-8 (Unicode)"

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.commands

Commands to be executed on connecting to server.

Type: list of string

Default: [ ]

Example: [ "ECHO Greetings fellow Nixer! ]

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.loginMethod

The login method. The allowed options are:

null

Default

"nickServMsg"

NickServ (/MSG NickServ + password)

"nickServ"

NickServ (/NICKSERV + password)

"challengeAuth"

Challenge Auth (username + password)

"sasl"

SASL (username + password)

"serverPassword"

Server password (/PASS password)

"saslExternal"

SASL EXTERNAL (cert)

"customCommands"

Use “commands” field for auth. For example

commands = [ "/msg NickServ IDENTIFY my_password" ]

Type: null or one of “challengeAuth”, “customCommands”, “nickServ”, “nickServMsg”, “sasl”, “saslExternal”, “serverPassword”

Default: null

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.nickname

Primary nickname.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.nickname2

Secondary nickname.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.options

Channel options.

Type: null or (submodule)

Default: null

Example:

{
  autoconnect = true;
  useGlobalUserInformation = true;
}

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.options.acceptInvalidSSLCertificates

Accept invalid SSL certificates.

Type: null or boolean

Default: false

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.options.autoconnect

Autoconnect to network.

Type: null or boolean

Default: false

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.options.bypassProxy

Bypass proxy.

Type: null or boolean

Default: true

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.options.connectToSelectedServerOnly

Connect to selected server only.

Type: null or boolean

Default: true

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.options.forceSSL

Use SSL for all servers.

Type: null or boolean

Default: false

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.options.useGlobalUserInformation

Use global user information.

Type: null or boolean

Default: false

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.password

Password to use. Note this password will be readable by all user’s in the Nix store.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.realName

Real name. Is used to populate the real name field that appears when someone uses the WHOIS command on your nick.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.servers

IRC Server Address List.

Type: list of string

Default: [ ]

Example:

[
  "irc.oftc.net"
]

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.userName

User name. Part of your user@host hostmask that appears to other on IRC.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.overwriteConfigFiles

Enables overwriting HexChat configuration files (hexchat.conf, servlist.conf). Any existing HexChat configuration will be lost. Make sure to back up any previous configuration before enabling this.

Enabling this setting is recommended, because everytime HexChat application is closed it overwrites Nix/Home Manager provided configuration files, causing:

  1. Nix/Home Manager provided configuration to be out of sync with actual active HexChat configuration.

  2. Nix/Home Manager updates to be blocked until configuration files are manually removed.

Type: null or boolean

Default: false

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.settings

Configuration for $XDG_CONFIG_HOME/hexchat/hexchat.conf, see https://hexchat.readthedocs.io/en/latest/settings.html#list-of-settings for supported values.

Type: null or (attribute set of string)

Default: null

Example:

{
  irc_nick1 = "mynick";
  irc_username = "bob";
  irc_realname = "Bart Simpson";
  text_font = "Monospace 14";
};

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.theme

Theme package for HexChat. Expects a derivation containing decompressed theme files. Note, .hct files are actually ZIP files, as seen in example.

Type: null or package

Default: null

Example:

source = pkgs.fetchzip {
  url = "https://dl.hexchat.net/themes/Monokai.hct#Monokai.zip";
  sha256 = "sha256-WCdgEr8PwKSZvBMs0fN7E2gOjNM0c2DscZGSKSmdID0=";
  stripRoot = false;
};

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.himalaya.enable

Whether to enable the email client Himalaya CLI.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/himalaya.nix>
programs.himalaya.package

The himalaya package to use.

Type: package

Default: pkgs.himalaya

Declared by:

<home-manager/modules/programs/himalaya.nix>
programs.himalaya.settings

Himalaya CLI global configuration. See https://pimalaya.org/himalaya/cli/latest/configuration/index.html#global-configuration for supported values.

Type: TOML value

Default: { }

Declared by:

<home-manager/modules/programs/himalaya.nix>
programs.home-manager.enable

Whether to enable Home Manager.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/home-manager.nix>
programs.home-manager.path

The default path to use for Home Manager. When null, then the home-manager channel, $HOME/.config/nixpkgs/home-manager, and $HOME/.nixpkgs/home-manager will be attempted.

Type: null or string

Default: null

Example: "$HOME/devel/home-manager"

Declared by:

<home-manager/modules/programs/home-manager.nix>
programs.hstr.enable

Whether to enable Bash And Zsh shell history suggest box - easily view, navigate, search and manage your command history.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/hstr.nix>
programs.hstr.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/hstr.nix>
programs.hstr.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/hstr.nix>
programs.hstr.package

The hstr package to use.

Type: package

Default: pkgs.hstr

Declared by:

<home-manager/modules/programs/hstr.nix>
programs.htop.enable

Whether to enable htop.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/htop.nix>
programs.htop.package

Package containing the htop program.

Type: package

Default: pkgs.htop

Declared by:

<home-manager/modules/programs/htop.nix>
programs.htop.settings

Configuration options to add to $XDG_CONFIG_HOME/htop/htoprc.

Type: attribute set

Default: { }

Example:

{
  color_scheme = 6;
  cpu_count_from_one = 0;
  delay = 15;
  fields = with config.lib.htop.fields; [
    PID
    USER
    PRIORITY
    NICE
    M_SIZE
    M_RESIDENT
    M_SHARE
    STATE
    PERCENT_CPU
    PERCENT_MEM
    TIME
    COMM
  ];
  highlight_base_name = 1;
  highlight_megabytes = 1;
  highlight_threads = 1;
} // (with config.lib.htop; leftMeters [
  (bar "AllCPUs2")
  (bar "Memory")
  (bar "Swap")
  (text "Zram")
]) // (with config.lib.htop; rightMeters [
  (text "Tasks")
  (text "LoadAverage")
  (text "Uptime")
  (text "Systemd")
]);

Declared by:

<home-manager/modules/programs/htop.nix>
programs.hyfetch.enable

Whether to enable hyfetch.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/hyfetch.nix>
programs.hyfetch.package

The hyfetch package to use.

Type: package

Default: pkgs.hyfetch

Declared by:

<home-manager/modules/programs/hyfetch.nix>
programs.hyfetch.settings

JSON config for HyFetch

Type: JSON value

Default: { }

Example:

{
  preset = "rainbow";
  mode = "rgb";
  color_align = {
    mode = "horizontal";
  };
}

Declared by:

<home-manager/modules/programs/hyfetch.nix>
programs.hyprlock.enable

Whether to enable Hyprlock, Hyprland’s GPU-accelerated lock screen utility.

Note that PAM must be configured to enable hyprlock to perform authentication. The package installed through home-manager will not be able to unlock the session without this configuration.

On NixOS, it can be enabled using:

security.pam.services.hyprlock = {};

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/hyprlock.nix>
programs.hyprlock.package

The hyprlock package to use.

Type: package

Default: pkgs.hyprlock

Declared by:

<home-manager/modules/programs/hyprlock.nix>
programs.hyprlock.extraConfig

Extra configuration lines to add to ~/.config/hypr/hyprlock.conf.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/hyprlock.nix>
programs.hyprlock.importantPrefixes

List of prefix of attributes to source at the top of the config.

Type: list of string

Default:

[
  "$"
  "monitor"
  "size"
  "source"
]

Example:

[
  "$"
  "monitor"
  "size"
]

Declared by:

<home-manager/modules/programs/hyprlock.nix>
programs.hyprlock.settings

Hyprlock configuration written in Nix. Entries with the same key should be written as lists. Variables’ and colors’ names should be quoted. See https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/ for more examples.

Type: Hyprlock configuration value

Default: { }

Example:

{
  general = {
    disable_loading_bar = true;
    grace = 300;
    hide_cursor = true;
    no_fade_in = false;
  };

  background = [
    {
      path = "screenshot";
      blur_passes = 3;
      blur_size = 8;
    }
  ];

  input-field = [
    {
      size = "200, 50";
      position = "0, -80";
      monitor = "";
      dots_center = true;
      fade_on_empty = false;
      font_color = "rgb(202, 211, 245)";
      inner_color = "rgb(91, 96, 120)";
      outer_color = "rgb(24, 25, 38)";
      outline_thickness = 5;
      placeholder_text = '\'<span foreground="##cad3f5">Password...</span>'\';
      shadow_passes = 2;
    }
  ];
}

Declared by:

<home-manager/modules/programs/hyprlock.nix>
programs.hyprlock.sourceFirst

Whether to enable putting source entries at the top of the configuration .

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/hyprlock.nix>
programs.i3blocks.enable

Whether to enable i3blocks i3 status command scheduler.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/i3blocks.nix>
programs.i3blocks.package

Package providing i3blocks.

Type: package

Default: pkgs.i3blocks

Declared by:

<home-manager/modules/programs/i3blocks.nix>
programs.i3blocks.bars

Configuration written to i3blocks config

Type: attribute set of (DAG of attribute set of (INI atom (null, int, bool, string, or float)))

Example:

{
  top = {
    # The title block
    title = {
      interval = "persist";
      command = "xtitle -s";
    };
  };
  bottom = {
    time = {
      command = "date +%r";
      interval = 1;
    };
    # Make sure this block comes after the time block
    date = lib.hm.dag.entryAfter [ "time" ] {
      command = "date +%d";
      interval = 5;
    };
    # And this block after the example block
    example = lib.hm.dag.entryAfter [ "date" ] {
      command = "echo hi $(date +%s)";
      interval = 3;
    };
  };
}

Declared by:

<home-manager/modules/programs/i3blocks.nix>
programs.i3status.enable

Whether to enable i3status.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/i3status.nix>
programs.i3status.enableDefault

Whether or not to enable the default configuration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/i3status.nix>
programs.i3status.package

The i3status package to use.

Type: package

Default: pkgs.i3status

Declared by:

<home-manager/modules/programs/i3status.nix>
programs.i3status.general

Configuration to add to i3status config general section. See i3status(1) for options.

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

Default: { }

Example:

{
  colors = true;
  color_good = "#e0e0e0";
  color_degraded = "#d7ae00";
  color_bad = "#f69d6a";
  interval = 1;
}

Declared by:

<home-manager/modules/programs/i3status.nix>
programs.i3status.modules

Modules to add to i3status config file. See i3status(1) for options.

Type: attribute set of (submodule)

Default: { }

Example:

{
  "volume master" = {
    position = 1;
    settings = {
      format = "♪ %volume";
      format_muted = "♪ muted (%volume)";
      device = "pulse:1";
    };
  };
  "disk /" = {
    position = 2;
    settings = {
      format = "/ %avail";
    };
  };
}

Declared by:

<home-manager/modules/programs/i3status.nix>
programs.i3status.modules.<name>.enable

Whether or not to enable this module.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/i3status.nix>
programs.i3status.modules.<name>.position

Position of this module in i3status order.

Type: signed integer or floating point number

Declared by:

<home-manager/modules/programs/i3status.nix>
programs.i3status.modules.<name>.settings

Configuration to add to this i3status module. See i3status(1) for options.

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

Default: { }

Example:

{
  format = "♪ %volume";
  format_muted = "♪ muted (%volume)";
  device = "pulse:1";
}

Declared by:

<home-manager/modules/programs/i3status.nix>
programs.i3status-rust.enable

Whether to enable a replacement for i3-status written in Rust.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/i3status-rust.nix>
programs.i3status-rust.package

Package providing i3status-rust

Type: package

Default: pkgs.i3status-rust

Declared by:

<home-manager/modules/programs/i3status-rust.nix>
programs.i3status-rust.bars

Attribute set of i3status-rust bars, each with their own configuration. Each bar name generates a config file suffixed with the bar’s name from the attribute set, like so: config-${name}.toml.

This way, multiple config files can be generated, such as for having a top and a bottom bar.

See i3status-rust(1) for options.

Type: attribute set of (submodule)

Default:

{
  default = {
    blocks = [
      {
        alert = 10.0;
        block = "disk_space";
        info_type = "available";
        interval = 60;
        path = "/";
        warning = 20.0;
      }
      {
        block = "memory";
        format = " $icon mem_used_percents ";
        format_alt = " $icon $swap_used_percents ";
      }
      {
        block = "cpu";
        interval = 1;
      }
      {
        block = "load";
        format = " $icon $1m ";
        interval = 1;
      }
      {
        block = "sound";
      }
      {
        block = "time";
        format = " $timestamp.datetime(f:'%a %d/%m %R') ";
        interval = 60;
      }
    ];
  };
}

Example:

bottom = {
  blocks = [
    {
       block = "disk_space";
       path = "/";
       info_type = "available";
       interval = 60;
       warning = 20.0;
       alert = 10.0;
     }
     {
       block = "memory";
       format_mem = " $icon $mem_used_percents ";
       format_swap = " $icon $swap_used_percents ";
     }
     {
       block = "cpu";
       interval = 1;
     }
     {
       block = "load";
       interval = 1;
       format = " $icon $1m ";
     }
     { block = "sound"; }
     {
       block = "time";
       interval = 60;
       format = " $timestamp.datetime(f:'%a %d/%m %R') ";
     }
  ];
  settings = {
    theme =  {
      theme = "solarized-dark";
      overrides = {
        idle_bg = "#123456";
        idle_fg = "#abcdef";
      };
    };
  };
  icons = "awesome5";
  theme = "gruvbox-dark";
};

Declared by:

<home-manager/modules/programs/i3status-rust.nix>
programs.i3status-rust.bars.<name>.blocks

Configuration blocks to add to i3status-rust config. See https://github.com/greshake/i3status-rust/blob/master/blocks.md for block options.

Type: TOML value

Default:

[
  {
    block = "cpu";
  }
  {
    alert = 10.0;
    block = "disk_space";
    format = " $icon root: $available.eng(w:2) ";
    info_type = "available";
    interval = 20;
    path = "/";
    warning = 20.0;
  }
  {
    block = "memory";
    format = " $icon $mem_total_used_percents.eng(w:2) ";
    format_alt = " $icon_swap $swap_used_percents.eng(w:2) ";
  }
  {
    block = "sound";
    click = [
      {
        button = "left";
        cmd = "pavucontrol";
      }
    ];
  }
  {
    block = "time";
    format = " $timestamp.datetime(f:'%a %d/%m %R') ";
    interval = 5;
  }
]

Example:

[
  {
    block = "disk_space";
    path = "/";
    info_type = "available";
    interval = 60;
    warning = 20.0;
    alert = 10.0;
  }
  {
    block = "sound";
    format = " $icon $output_name {$volume.eng(w:2) |}";
    click = [
      {
        button = "left";
        cmd = "pavucontrol --tab=3";
      }
    ];
    mappings = {
      "alsa_output.pci-0000_00_1f.3.analog-stereo" = "";
      "bluez_sink.70_26_05_DA_27_A4.a2dp_sink" = "";
    };
  }
];

Declared by:

<home-manager/modules/programs/i3status-rust.nix>
programs.i3status-rust.bars.<name>.icons

The icons set to use. See https://github.com/greshake/i3status-rust/blob/master/doc/themes.md for a list of available icon sets.

Type: string

Default: "none"

Example: "awesome6"

Declared by:

<home-manager/modules/programs/i3status-rust.nix>
programs.i3status-rust.bars.<name>.settings

Any extra options to add to i3status-rust config.

Type: TOML value

Default: { }

Example:

{
  theme =  {
    theme = "solarized-dark";
    overrides = {
      idle_bg = "#123456";
      idle_fg = "#abcdef";
    };
  };
}

Declared by:

<home-manager/modules/programs/i3status-rust.nix>
programs.i3status-rust.bars.<name>.theme

The theme to use. See https://github.com/greshake/i3status-rust/blob/master/doc/themes.md for a list of available themes.

Type: string

Default: "plain"

Example: "gruvbox-dark"

Declared by:

<home-manager/modules/programs/i3status-rust.nix>
programs.imv.enable

Whether to enable imv: a command line image viewer intended for use with tiling window managers.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/imv.nix>
programs.imv.package

The imv package to use.

Type: package

Default: pkgs.imv

Declared by:

<home-manager/modules/programs/imv.nix>
programs.imv.settings

Configuration options for imv. See imv(5).

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

Default: { }

Example:

{
  options.background = "ffffff";
  aliases.x = "close";
}

Declared by:

<home-manager/modules/programs/imv.nix>
programs.info.enable

Whether to enable GNU Info.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/info.nix>
programs.ion.enable

Whether to enable the Ion Shell. Compatible with Redox and Linux.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/ion.nix>
programs.ion.package

The ion package to install. May be used to change the version.

Type: package

Default: pkgs.ion

Declared by:

<home-manager/modules/programs/ion.nix>
programs.ion.initExtra

Ion script which is called during ion initialization.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/ion.nix>
programs.ion.shellAliases

An attribute set that maps aliases (the top level attribute names in this option) to command strings or directly to build outputs.

Type: attribute set of string

Default: { }

Example:

{
  g = "git";
}

Declared by:

<home-manager/modules/programs/ion.nix>
programs.irssi.enable

Whether to enable the Irssi chat client.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.aliases

An attribute set that maps aliases to commands.

Type: attribute set of string

Default: { }

Example:

{
  BYE = "quit";
  J = "join";
}

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.extraConfig

These lines are appended to the Irssi configuration.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.networks

An attribute set of chat networks.

Type: attribute set of (submodule)

Default: { }

Example:

{
  liberachat = {
    nick = "hmuser";
    server = {
      address = "irc.libera.chat";
      port = 6697;
      autoConnect = true;
    };
    channels = {
      nixos.autoJoin = true;
    };
  };
}

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.networks.<name>.autoCommands

List of commands to execute on connect.

Type: list of string

Default: [ ]

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.networks.<name>.channels

Channels for the given network.

Type: attribute set of (submodule)

Default: { }

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.networks.<name>.channels.<name>.autoJoin

Whether to join this channel on connect.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.networks.<name>.nick

Nickname in that network.

Type: string

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.networks.<name>.saslExternal

Enable SASL external authentication. This requires setting a path in programs.irssi.networks.<name>.server.ssl.certificateFile.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.networks.<name>.server.address

Address of the chat server.

Type: string

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.networks.<name>.server.autoConnect

Whether Irssi connects to the server on launch.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.networks.<name>.server.port

Port of the chat server.

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

Default: 6667

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.networks.<name>.server.ssl.enable

Whether SSL should be used.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.networks.<name>.server.ssl.certificateFile

Path to a file containing the certificate used for client authentication to the server.

Type: null or path

Default: null

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.networks.<name>.server.ssl.verify

Whether the SSL certificate should be verified.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.networks.<name>.type

Type of the network.

Type: string

Default: "IRC"

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.java.enable

Install the Java development kit and set the JAVA_HOME variable.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/java.nix>
programs.java.package

Java package to install. Typical values are pkgs.jdk or pkgs.jre.

Type: package

Default: "pkgs.jdk"

Declared by:

<home-manager/modules/programs/java.nix>
programs.jetbrains-remote.enable

Whether to enable JetBrains remote development system.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/jetbrains-remote.nix>
programs.jetbrains-remote.ides

IDEs accessible to the JetBrains remote development system.

Type: list of package

Default: [ ]

Example:

with pkgs.jetbrains; [ clion pycharm-professional ];

Declared by:

<home-manager/modules/programs/jetbrains-remote.nix>
programs.joplin-desktop.enable

Whether to enable joplin-desktop.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/joplin-desktop.nix>
programs.joplin-desktop.package

The joplin-desktop package to use.

Type: package

Default: pkgs.joplin-desktop

Declared by:

<home-manager/modules/programs/joplin-desktop.nix>
programs.joplin-desktop.extraConfig

Use this to add other options to the Joplin config file. Settings are written in JSON, so "sync.interval": 600 would be written as "sync.interval" = 600.

Type: attribute set

Default: { }

Example:

{
  "markdown.plugin.mark" = true;
  newNoteFocus = "title";
}

Declared by:

<home-manager/modules/programs/joplin-desktop.nix>
programs.joplin-desktop.general.editor

The editor command (may include arguments) that will be used to open a note. If none is provided Joplin will try to auto-detect the default editor.

Type: null or string

Default: null

Example: "kate"

Declared by:

<home-manager/modules/programs/joplin-desktop.nix>
programs.joplin-desktop.sync.interval

Set the synchronisation interval.

Type: one of “undefined”, “disabled”, “5m”, “10m”, “30m”, “1h”, “12h”, “1d”

Default: "undefined"

Example: "10m"

Declared by:

<home-manager/modules/programs/joplin-desktop.nix>
programs.joplin-desktop.sync.target

What is the type of sync target.

Type: one of “undefined”, “none”, “file-system”, “onedrive”, “nextcloud”, “webdav”, “dropbox”, “s3”, “joplin-server”, “joplin-cloud”

Default: "undefined"

Example: "dropbox"

Declared by:

<home-manager/modules/programs/joplin-desktop.nix>
programs.joshuto.enable

Whether to enable joshuto file manager.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/joshuto.nix>
programs.joshuto.package

The package to use for joshuto.

Type: package

Default: pkgs.joshuto

Declared by:

<home-manager/modules/programs/joshuto.nix>
programs.joshuto.keymap

Configuration written to $XDG_CONFIG_HOME/joshuto/keymap.toml.

See https://github.com/kamiyaa/joshuto/blob/main/docs/configuration/keymap.toml.md for the full list of options. Note that this option will overwrite any existing keybinds.

Type: TOML value

Default: { }

Declared by:

<home-manager/modules/programs/joshuto.nix>
programs.joshuto.mimetype

Configuration written to $XDG_CONFIG_HOME/joshuto/mimetype.toml.

See https://github.com/kamiyaa/joshuto/blob/main/docs/configuration/mimetype.toml.md for the full list of options

Type: TOML value

Default: { }

Declared by:

<home-manager/modules/programs/joshuto.nix>
programs.joshuto.settings

Configuration written to $XDG_CONFIG_HOME/joshuto/joshuto.toml.

See https://github.com/kamiyaa/joshuto/blob/main/docs/configuration/joshuto.toml.md for the full list of options.

Type: TOML value

Default: { }

Declared by:

<home-manager/modules/programs/joshuto.nix>
programs.joshuto.theme

Configuration written to $XDG_CONFIG_HOME/joshuto/theme.toml.

See https://github.com/kamiyaa/joshuto/blob/main/docs/configuration/theme.toml.md for the full list of options

Type: TOML value

Default: { }

Declared by:

<home-manager/modules/programs/joshuto.nix>
programs.jq.enable

Whether to enable the jq command-line JSON processor.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/jq.nix>
programs.jq.package

jq package to use.

Type: package

Default: pkgs.jq

Declared by:

<home-manager/modules/programs/jq.nix>
programs.jq.colors

The colors used in colored JSON output.

See the Colors section of the jq manual.

Type: submodule

Default:

{
  arrays = "1;37";
  false = "0;37";
  null = "1;30";
  numbers = "0;37";
  objects = "1;37";
  strings = "0;32";
  true = "0;37";
}

Example:

{
  null    = "1;30";
  false   = "0;31";
  true    = "0;32";
  numbers = "0;36";
  strings = "0;33";
  arrays  = "1;35";
  objects = "1;37";
}

Declared by:

<home-manager/modules/programs/jq.nix>
programs.jujutsu.enable

Whether to enable a Git-compatible DVCS that is both simple and powerful.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/jujutsu.nix>
programs.jujutsu.package

The jujutsu package to use.

Type: package

Default: pkgs.jujutsu

Declared by:

<home-manager/modules/programs/jujutsu.nix>
programs.jujutsu.ediff

Enable ediff as a merge tool

Type: boolean

Default: config.programs.emacs.enable

Declared by:

<home-manager/modules/programs/jujutsu.nix>
programs.jujutsu.settings

Options to add to the config.toml file. See https://github.com/martinvonz/jj/blob/main/docs/config.md for options.

Type: TOML value

Default: { }

Example:

{
  user = {
    email = "jdoe@example.org";
    name = "John Doe";
  };
}

Declared by:

<home-manager/modules/programs/jujutsu.nix>
programs.k9s.enable

Whether to enable k9s - Kubernetes CLI To Manage Your Clusters In Style.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/k9s.nix>
programs.k9s.package

The k9s package to use.

Type: package

Default: pkgs.k9s

Declared by:

<home-manager/modules/programs/k9s.nix>
programs.k9s.aliases

Aliases written to $XDG_CONFIG_HOME/k9s/aliases.yaml (linux) or Library/Application Support/k9s/aliases.yaml (darwin). See https://k9scli.io/topics/aliases/ for supported values.

Type: YAML value

Default: { }

Example:

alias = {
  # Use pp as an alias for Pod
  pp = "v1/pods";
};

Declared by:

<home-manager/modules/programs/k9s.nix>
programs.k9s.hotkey

Hotkeys written to $XDG_CONFIG_HOME/k9s/hotkeys.yaml (linux) or Library/Application Support/k9s/hotkeys.yaml (darwin). See https://k9scli.io/topics/hotkeys/ for supported values.

Type: YAML value

Default: { }

Example:

hotkey = {
  # Make sure this is camel case
  hotKey = {
    shift-0 = {
      shortCut = "Shift-0";
      description = "Viewing pods";
      command = "pods";
    };
  };
};

Declared by:

<home-manager/modules/programs/k9s.nix>
programs.k9s.plugin

Plugins written to $XDG_CONFIG_HOME/k9s/plugins.yaml (linux) or Library/Application Support/k9s/plugins.yaml (darwin). See https://k9scli.io/topics/plugins/ for supported values.

Type: YAML value

Default: { }

Example:

plugin = {
  # Defines a plugin to provide a `ctrl-l` shortcut to
  # tail the logs while in pod view.
  fred = {
    shortCut = "Ctrl-L";
    description = "Pod logs";
    scopes = [ "po" ];
    command = "kubectl";
    background = false;
    args = [
      "logs"
      "-f"
      "$NAME"
      "-n"
      "$NAMESPACE"
      "--context"
      "$CLUSTER"
    ];
  };
};

Declared by:

<home-manager/modules/programs/k9s.nix>
programs.k9s.settings

Configuration written to $XDG_CONFIG_HOME/k9s/config.yaml (linux) or Library/Application Support/k9s/config.yaml (darwin), See https://k9scli.io/topics/config/ for supported values.

Type: YAML value

Default: { }

Example:

k9s = {
  refreshRate = 2;
};

Declared by:

<home-manager/modules/programs/k9s.nix>
programs.k9s.skins

Skin files written to $XDG_CONFIG_HOME/k9s/skins/ (linux) or Library/Application Support/k9s/skins/ (darwin). See https://k9scli.io/topics/skins/ for supported values.

Type: attribute set of (YAML value)

Default: { }

Example:

my_blue_skin = {
  k9s = {
    body = {
      fgColor = "dodgerblue";
    };
  };
};

Declared by:

<home-manager/modules/programs/k9s.nix>
programs.k9s.views

Resource column views written to $XDG_CONFIG_HOME/k9s/views.yaml (linux) or Library/Application Support/k9s/views.yaml (darwin). See https://k9scli.io/topics/columns/ for supported values.

Type: YAML value

Default: { }

Example:

k9s = {
  views = {
    "v1/pods" = {
      columns = [
        "AGE"
        "NAMESPACE"
        "NAME"
        "IP"
        "NODE"
        "STATUS"
        "READY"
      ];
    };
  };
};

Declared by:

<home-manager/modules/programs/k9s.nix>
programs.kakoune.enable

Whether to enable the kakoune text editor.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.package

The kakoune-unwrapped package to use.

Type: package

Default: pkgs.kakoune-unwrapped

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config

kakoune configuration options.

Type: null or (submodule)

Default: { }

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.alignWithTabs

Use tabs for the align command.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.autoComplete

Modes in which to display possible completions. The kakoune default is [ "insert" "prompt" ].

Type: null or (list of (one of “insert”, “prompt”))

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.autoInfo

Contexts in which to display automatic information box. The kakoune default is [ "command" "onkey" ].

Type: null or (list of (one of “command”, “onkey”, “normal”))

Default: null

Example:

[
  "command"
  "normal"
]

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.autoReload

Reload buffers when an external modification is detected. The kakoune default is "ask".

Type: null or one of “yes”, “no”, “ask”

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.colorScheme

Set the color scheme. To see available schemes, enter colorscheme at the kakoune prompt.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.hooks

Global hooks. For documentation, see https://github.com/mawww/kakoune/blob/master/doc/pages/hooks.asciidoc.

Type: list of (submodule)

Default: [ ]

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.hooks.*.commands

Commands to run when the hook is activated.

Type: strings concatenated with “\n”

Default: ""

Example: "set-option window indentwidth 2"

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.hooks.*.group

Add the hook to the named group.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.hooks.*.name

The name of the hook. For a description, see https://github.com/mawww/kakoune/blob/master/doc/pages/hooks.asciidoc#default-hooks.

Type: one of “NormalIdle”, “NormalKey”, “InsertIdle”, “InsertKey”, “InsertChar”, “InsertDelete”, “InsertMove”, “WinCreate”, “WinClose”, “WinResize”, “WinDisplay”, “WinSetOption”, “BufSetOption”, “BufNewFile”, “BufOpenFile”, “BufCreate”, “BufWritePre”, “BufWritePost”, “BufReload”, “BufClose”, “BufOpenFifo”, “BufReadFifo”, “BufCloseFifo”, “RuntimeError”, “ModeChange”, “PromptIdle”, “GlobalSetOption”, “KakBegin”, “KakEnd”, “FocusIn”, “FocusOut”, “RawKey”, “InsertCompletionShow”, “InsertCompletionHide”, “ModuleLoaded”, “ClientCreate”, “ClientClose”, “RegisterModified”, “User”

Example: "SetOption"

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.hooks.*.once

Remove the hook after running it once.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.hooks.*.option

Additional option to pass to the hook.

Type: null or string

Default: null

Example: "filetype=latex"

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.incrementalSearch

Execute a search as it is being typed.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.indentWidth

The width of an indentation in spaces. The kakoune default is 4. If 0, a tab will be used instead.

Type: null or (unsigned integer, meaning >=0)

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.keyMappings

User-defined key mappings. For documentation, see https://github.com/mawww/kakoune/blob/master/doc/pages/mapping.asciidoc.

Type: list of (submodule)

Default: [ ]

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.keyMappings.*.docstring

Optional documentation text to display in info boxes.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.keyMappings.*.effect

The sequence of keys to be mapped.

Type: string

Example: ":wq<ret>"

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.keyMappings.*.key

The key to be mapped. See https://github.com/mawww/kakoune/blob/master/doc/pages/mapping.asciidoc#mappable-keys for possible values.

Type: string

Example: "<a-x>"

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.keyMappings.*.mode

The mode in which the mapping takes effect.

Type: string

Example: "user"

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.numberLines

Settings for the number lines highlighter.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.numberLines.enable

Whether to enable the number lines highlighter.