Appendix A. Configuration Options

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 of this account in $HOME/.config/aerc/accounts.conf. See aerc-config(5).

Type: attribute set of (values (null, bool, int, string of 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/accounts.conf. See aerc-config(5).

Type: attribute set of attribute set of (values (null, bool, int, string of 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

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

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

Default: { }

Example: { ui = { sidebar-width = 42; }; }

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

Type: null or string

Default: null

Declared by:

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

Type: null or string

Default: null

Declared by:

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

Type: null or string

Default: null

Declared by:

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

Type: null or string

Default: null

Declared by:

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

Type: null or string

Default: null

Declared by:

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

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/aerc.nix>
accounts.email.accounts.<name>.aerc.smtpOauth2Params.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 Enable Himalaya for this email account..

Type: boolean

Default: false

Example: true

Declared by:

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

Specifying 'accounts.email.accounts.*.himalaya.backend' is deprecated, set 'accounts.email.accounts.*.himalaya.settings.backend' instead.

Type: null or string

Default: null

Declared by:

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

Specifying 'accounts.email.accounts.*.himalaya.sender' is deprecated, set 'accounts.email.accounts.*.himalaya.settings.sender' instead.

Type: null or string

Declared by:

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

Himalaya configuration for this email account. See https://pimalaya.org/himalaya/cli/configuration/account.html 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: attribute set of (boolean or signed integer or string)

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.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>.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.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.identity.id_${id}.protectSubject" = false;
  "mail.identity.id_${id}.autoEncryptDrafts" = 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, in which case it is relative the home directory.

Type: string

Default: "$HOME/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 attribute set 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>
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.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.

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 than 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: false

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. The variable DRY_RUN_CMD is set to echo if dry run is enabled.

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.

Type: DAG of string

Default: { }

Example:

{
  myActivationAction = lib.hm.dag.entryAfter ["writeBoundary"] ''
    $DRY_RUN_CMD 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.

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.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"

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.inputMethod.enabled

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

Input methods are specially 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 a XIM bridge. uim mainly support 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.config

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

Type: YAML value

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.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.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 https://nixos.org/manual/nix/stable/#sec-conf-file or 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 which 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.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 of 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 of 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 of 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 of 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. See https://github.com/alacritty/alacritty/blob/master/alacritty.yml for the default configuration.

Type: YAML value

Default: { }

Example:

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

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 %1, %2, and %3 to refer respectively to:

  1. file name

  2. server name

  3. socket ID

See https://github.com/astroidmail/astroid/wiki/Customizing-editor.

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

Example: 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.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.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")

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.config

Bat configuration.

Type: attribute set of (string or list of string)

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.themes

Additional themes to provide.

Type: attribute set of strings concatenated with "\n"

Default: { }

Example:

{
  dracula = builtins.readFile (pkgs.fetchFromGitHub {
    owner = "dracula";
    repo = "sublime"; # Bat uses sublime syntax for its themes
    rev = "26c57ec282abcaa76e57e055f38432bd827ac34e";
    sha256 = "019hfl4zbn4vm4154hh3bwk6hm7bdxbr1hdww83nabxwjn99ndhv";
  } + "/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 { enableCheck = true; })

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.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>.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.repositories

Paths to repositories.

Type: list of string

Example: ["ssh://myuser@myrepo.myserver.com/./repo"]

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.location.sourceDirectories

Directories to backup.

Type: list of string

Example: [config.home.homeDirectory]

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.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.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 colors.

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 https://dystroy.org/broot/documentation/configuration/#verb-definition-attributes.

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)

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", "vivaldi")

Default:

[
  "brave"
  "chrome"
  "chromium"
  "firefox"
  "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.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.

Note this option does not have any effect when using a custom package for programs.chromium.package.

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.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.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.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.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.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.exa.enable

Whether to enable exa, a modern replacement for ls.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/exa.nix>
programs.exa.enableAliases

Whether to enable recommended exa aliases (ls, ll…).

Type: boolean

Default: false

Example: true

Declared by:

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

The exa package to use.

Type: package

Default: pkgs.exa

Declared by:

<home-manager/modules/programs/exa.nix>
programs.exa.extraOptions

Extra command line options passed to exa.

Type: list of string

Default: [ ]

Example:

[
  "--group-directories-first"
  "--header"
]

Declared by:

<home-manager/modules/programs/exa.nix>
programs.exa.git

List each file's Git status if tracked or ignored (--git argument).

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/exa.nix>
programs.exa.icons

Display icons next to file names (--icons argument).

Type: boolean

Default: false

Declared by:

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

Type: package

Default: pkgs.firefox

Example:

pkgs.firefox.override {
  # See nixpkgs' firefox/wrapper.nix to check which options you can use
  cfg = {
    # Gnome shell native connector
    enableGnomeExtensions = true;
    # Tridactyl native connector
    enableTridactylNative = true;
  };
}

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://nixos.wiki/";
      }
    ];
  }
]

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.extensions

List of Firefox add-on packages to install for this profile. Some pre-packaged add-ons are accessible from NUR, https://github.com/nix-community/NUR. Once you have NUR installed run

  $ nix-env -f '<nixpkgs>' -qaP -A nur.repos.rycee.firefox-addons

to list the available Firefox add-ons.

Note that it is necessary to manually enable these extensions inside Firefox after the first installation.

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 Firefox.

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://nixos.wiki/index.php?search={searchTerms}"; }];
    iconUpdateURL = "https://nixos.wiki/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 Firefox 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>.settings

Attribute set of Firefox preferences. Firefox 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 (Firefox 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 Firefox user chrome CSS.

Type: strings concatenated with "\n"

Default: ""

Example:

''
  /* Hide tab bar in FF Quantum */
  @-moz-document url("chrome://browser/content/browser.xul") {
    #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 Firefox 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

Default: { }

Example:

{
  gco = "git checkout";
  l = "less";
}

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.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 attribute set 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.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 attribute set 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.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.enableGitCredentialHelper

Whether to enable the gh git credential helper for github.com.

Type: boolean

Default: true

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.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.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.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.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-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.

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 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 https://www.gnupg.org/gph/en/manual/x334.html 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.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 attribute set 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.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. Certify 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. Blocking Nix/Home Manager updates 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 Enable the Himalaya email client..

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 global configuration. See https://pimalaya.org/himalaya/cli/configuration/global.html 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.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.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.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 https://stedolan.github.io/jq/manual/#Colors.

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.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Declared by:

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

Whether to enable Fish integration.

Type: boolean

Default: true

Declared by:

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

Whether to enable Zsh integration.

Type: boolean

Default: 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.settings

Options to add to the .jjconfig.toml file. See https://github.com/martinvonz/jj/blob/main/docs/config.md for options.

Type: TOML value

Default: { }

Example:

{
  user = {
    name = "John Doe";
    email = "jdoe@example.org";
  };
}

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.settings

Configuration written to $XDG_CONFIG_HOME/k9s/config.yml. 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.skin

Skin written to $XDG_CONFIG_HOME/k9s/skin.yml. See https://k9scli.io/topics/skins/ for supported values.

Type: YAML value

Default: { }

Example:

k9s = {
  body = {
    fgColor = "dodgerblue";
  };
};

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.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.numberLines.highlightCursor

Highlight the cursor line with a separate face.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.numberLines.relative

Show line numbers relative to the main cursor line.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.numberLines.separator

String that separates the line number column from the buffer contents. The kakoune default is "|".

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.scrollOff

How many lines and columns to keep visible around the cursor.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.scrollOff.columns

The number of columns to keep visible around the cursor.

Type: unsigned integer, meaning >=0

Default: 0

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.scrollOff.lines

The number of lines to keep visible around the cursor.

Type: unsigned integer, meaning >=0

Default: 0

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.showMatching

Highlight the matching char of the character under the selections' cursor using the MatchingChar face.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.showWhitespace

Settings for the show whitespaces highlighter.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.showWhitespace.enable

Whether to enable the show whitespace highlighter.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.showWhitespace.lineFeed

The character to display for line feeds. The kakoune default is "¬".

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.showWhitespace.nonBreakingSpace

The character to display for non-breaking spaces. The kakoune default is "⍽".

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.showWhitespace.space

The character to display for spaces. The kakoune default is "·".

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.showWhitespace.tab

The character to display for tabs. The kakoune default is "→".

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.showWhitespace.tabStop

The character to append to tabs to reach the width of a tabstop. The kakoune default is " ".

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.tabStop

The width of a tab in spaces. The kakoune default is 6.

Type: null or unsigned integer, meaning >=0

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.ui

Settings for the ncurses interface.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.ui.enableMouse

Whether to enable mouse support.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.ui.assistant

The assistant displayed in info boxes.

Type: one of "clippy", "cat", "dilbert", "none"

Default: "clippy"

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.ui.changeColors

Change color palette.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.ui.setTitle

Change the title of the terminal emulator.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.ui.shiftFunctionKeys

Amount by which shifted function keys are offset. That is, if the terminal sends F13 for Shift-F1, this should be 12.

Type: null or unsigned integer, meaning >=0

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.ui.statusLine

Where to display the status line.

Type: one of "top", "bottom"

Default: "bottom"

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.ui.useBuiltinKeyParser

Bypass ncurses key parser and use an internal one.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.ui.wheelDownButton

Button to send for wheel down events.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.ui.wheelUpButton

Button to send for wheel up events.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.wrapLines

Settings for the wrap lines highlighter.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.wrapLines.enable

Whether to enable the wrap lines highlighter.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.wrapLines.indent

Preserve line indentation when wrapping.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.wrapLines.marker

Prefix wrapped lines with marker text. If not null, the marker text will be displayed in the indentation if possible.

Type: null or string

Default: null

Example: "⏎"

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.wrapLines.maxWidth

Wrap text at maxWidth, even if the window is wider.

Type: null or unsigned integer, meaning >=0

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.wrapLines.word

Wrap at word boundaries instead of codepoint boundaries.

Type: boolean

Default: false

Declared by:

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

Extra configuration lines to add to $XDG_CONFIG_HOME/kak/kakrc.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.plugins

List of kakoune plugins to install. To get a list of supported plugins run: nix-env -f '<nixpkgs>' -qaP -A kakounePlugins.

Type: list of package

Default: [ ]

Example: [ pkgs.kakounePlugins.kak-fzf ]

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.keychain.enable

Whether to enable keychain.

Type: boolean

Default: false

Example: true

Declared by:

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

Whether to enable Bash integration.

Type: boolean

Default: true

Declared by:

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

Whether to enable Fish integration.

Type: boolean

Default: true

Declared by:

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

Whether to enable Nushell integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/keychain.nix>
programs.keychain.enableXsessionIntegration

Whether to run keychain from your ~/.xsession.

Type: boolean

Default: true

Declared by:

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

Whether to enable Zsh integration.

Type: boolean

Default: true

Declared by:

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

Keychain package to install.

Type: package

Default: pkgs.keychain

Declared by:

<home-manager/modules/programs/keychain.nix>
programs.keychain.agents

Agents to add.

Type: list of string

Default: [ ]

Declared by:

<home-manager/modules/programs/keychain.nix>
programs.keychain.extraFlags

Extra flags to pass to keychain.

Type: list of string

Default:

[
  "--quiet"
]

Declared by:

<home-manager/modules/programs/keychain.nix>
programs.keychain.inheritType

Inherit type to attempt from agent variables from the environment.

Type: null or one of "local", "any", "local-once", "any-once"

Default: null

Declared by:

<home-manager/modules/programs/keychain.nix>
programs.keychain.keys

Keys to add to keychain.

Type: list of string

Default:

[
  "id_rsa"
]

Declared by:

<home-manager/modules/programs/keychain.nix>
programs.kitty.enable

Whether to enable Kitty terminal emulator.

Type: boolean

Default: false

Example: true

Declared by:

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

Kitty package to install.

Type: package

Default: pkgs.kitty

Declared by:

<home-manager/modules/programs/kitty.nix>
programs.kitty.darwinLaunchOptions

Command-line options to use when launched by Mac OS GUI

Type: null or (list of string)

Default: null

Example:

[
  "--single-instance"
  "--directory=/tmp/my-dir"
  "--listen-on=unix:/tmp/my-socket"
]

Declared by:

<home-manager/modules/programs/kitty.nix>
programs.kitty.environment

Environment variables to set or override.

Type: attribute set of string

Default: { }

Example:

{
  "LS_COLORS" = "1";
}

Declared by:

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

Additional configuration to add.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<home-manager/modules/programs/kitty.nix>
programs.kitty.font

The font to use.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/programs/kitty.nix>
programs.kitty.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/programs/kitty.nix>
programs.kitty.font.name

The family name of the font within the package.

Type: string

Example: "DejaVu Sans"

Declared by:

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

Mapping of keybindings to actions.

Type: attribute set of string

Default: { }

Example:

{
  "ctrl+c" = "copy_or_interrupt";
  "ctrl+f>2" = "set_font_size 20";
}

Declared by:

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

Configuration written to $XDG_CONFIG_HOME/kitty/kitty.conf. See https://sw.kovidgoyal.net/kitty/conf.html for the documentation.

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

Default: { }

Example:

{
  scrollback_lines = 10000;
  enable_audio_bell = false;
  update_check_interval = 0;
}

Declared by:

<home-manager/modules/programs/kitty.nix>
programs.kitty.shellIntegration.enableBashIntegration

Whether to enable Kitty Bash integration.

Type: boolean

Default:

config.programs.kitty.shellIntegration.mode != "disabled"

Example: true

Declared by:

<home-manager/modules/programs/kitty.nix>
programs.kitty.shellIntegration.enableFishIntegration

Whether to enable Kitty fish integration.

Type: boolean

Default:

config.programs.kitty.shellIntegration.mode != "disabled"

Example: true

Declared by:

<home-manager/modules/programs/kitty.nix>
programs.kitty.shellIntegration.enableZshIntegration

Whether to enable Kitty Z Shell integration.

Type: boolean

Default:

config.programs.kitty.shellIntegration.mode != "disabled"

Example: true

Declared by:

<home-manager/modules/programs/kitty.nix>
programs.kitty.shellIntegration.mode

Set the mode of the shell integration. This accepts the same options as the shell_integration option of Kitty. Note that no-rc is always implied. See https://sw.kovidgoyal.net/kitty/shell-integration for more details.

Type: string

Default: "enabled"

Example: "no-cursor"

Declared by:

<home-manager/modules/programs/kitty.nix>
programs.kitty.theme

Apply a Kitty color theme. This option takes the friendly name of any theme given by the command kitty +kitten themes. See https://github.com/kovidgoyal/kitty-themes for more details.

Type: null or string

Default: null

Example: "Space Gray Eighties"

Declared by:

<home-manager/modules/programs/kitty.nix>
programs.kodi.enable

Whether to enable Kodi.

Type: boolean

Default: false

Example: true

Declared by:

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

The kodi package to use. Can be used to specify extensions.

Type: package

Default: pkgs.kodi

Example: pkgs.kodi.withPackages (exts: [ exts.pvr-iptvsimple ])

Declared by:

<home-manager/modules/programs/kodi.nix>
programs.kodi.addonSettings

Attribute set with the plugin namespace as toplevel key and the plugins settings as lower level key/value pairs.

Kodi will still show the settings of plugins configured via this mechanism in the GUI and they appear to be mutable. This however is not the case and the settings will stay as specified via Home Manager.

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

Default: null

Example:

{ "service.xbmc.versioncheck".versioncheck_enable = "false"; }

Declared by:

<home-manager/modules/programs/kodi.nix>
programs.kodi.datadir

Directory to store configuration and metadata.

Type: path

Default: "${config.home.homeDirectory}/.kodi"

Example: "${config.xdg.dataHome}/kodi"

Declared by:

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

Configuration to write to the advancedsettings.xml file in kodis userdata directory. Settings specified here will be immutable from inside kodi and be hidden from the GUI settings dialog.

See https://kodi.wiki/view/Advancedsettings.xml as reference for how settings need to be specified.

The innermost attributes must be of type str.

Type: null or attribute sets of strings

Default: null

Example:

{ videolibrary.showemptytvshows = "true"; }

Declared by:

<home-manager/modules/programs/kodi.nix>
programs.kodi.sources

Contents to populate the file sources.xml in kodis userdata directory.

See https://kodi.wiki/view/Sources.xml as reference for how sources need to be specified.

Kodi will still show the dialogs to modify sources in the GUI and they appear to be mutable. This however is not the case and the sources will stay as specified via Home Manager.

The innermost attributes must be of type str.

Type: null or attribute sets or lists of strings

Default: null

Example:

{
  video = {
    default = "movies";
    source = [
      { name = "videos"; path = "/path/to/videos"; allowsharing = "true"; }
      { name = "movies"; path = "/path/to/movies"; allowsharing = "true"; }
    ];
  };
}

Declared by:

<home-manager/modules/programs/kodi.nix>
programs.lazygit.enable

Whether to enable lazygit, a simple terminal UI for git commands.

Type: boolean

Default: false

Example: true

Declared by:

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

The lazygit package to use.

Type: package

Default: pkgs.lazygit

Declared by:

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

Configuration written to $XDG_CONFIG_HOME/lazygit/config.yml on Linux or on Darwin if xdg.enable is set, otherwise ~/Library/Application Support/lazygit/config.yml. See https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md for supported values.

Type: YAML value

Default: { }

Example:

{
  gui.theme = {
    lightTheme = true;
    activeBorderColor = [ "blue" "bold" ];
    inactiveBorderColor = [ "black" ];
    selectedLineBgColor = [ "default" ];
  };
}

Declared by:

<home-manager/modules/programs/lazygit.nix>
programs.ledger.enable

Whether to enable ledger, a double-entry accounting system.

Type: boolean

Default: false

Example: true

Declared by:

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

The ledger package to use.

Type: package

Default: pkgs.ledger

Declared by:

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

Extra configuration to add to $XDG_CONFIG_HOME/ledger/ledgerrc.

Type: strings concatenated with "\n"

Default: ""

Example:

--sort date
--effective
--date-format %Y-%m-%d

Declared by:

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

Configuration written to $XDG_CONFIG_HOME/ledger/ledgerrc. See https://www.ledger-cli.org/3.0/doc/ledger3.html#Detailed-Option-Description for explanation about possible values.

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

Default: { }

Example:

{
  date-format = "%Y-%m-%d";
  file = [
    "~/finances/journal.ledger"
    "~/finances/assets.ledger"
    "~/finances/income.ledger"
  ];
  sort = "date";
  strict = true;
}

Declared by:

<home-manager/modules/programs/ledger.nix>
programs.less.enable

Whether to enable less, opposite of more.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/less.nix>
programs.less.keys

Extra configuration for less written to $XDG_CONFIG_HOME/lesskey.

Type: strings concatenated with "\n"

Default: ""

Example:

''
  s        back-line
  t        forw-line
''

Declared by:

<home-manager/modules/programs/less.nix>
programs.lesspipe.enable

Whether to enable lesspipe preprocessor for less.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/lesspipe.nix>
programs.lf.enable

Whether to enable lf.

Type: boolean

Default: false

Example: true

Declared by:

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

lf package to use.

Type: package

Default: pkgs.lf

Declared by:

<home-manager/modules/programs/lf.nix>
programs.lf.cmdKeybindings

Keys to bind to command line commands which can only be one of the builtin commands. Keys set to null or an empty string are deleted.

Type: attribute set of (null or string)

Default: { }

Example: { "<c-g>" = "cmd-escape"; }

Declared by:

<home-manager/modules/programs/lf.nix>
programs.lf.commands

Commands to declare. Commands set to null or an empty string are deleted.

Type: attribute set of (null or string)

Default: { }

Example:

{
  get-mime-type = "%xdg-mime query filetype \"$f\"";
  open = "$$OPENER $f";
}

Declared by:

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

Custom lfrc lines.

Type: strings concatenated with "\n"

Default: ""

Example:

''
  $mkdir -p ~/.trash
''

Declared by:

<home-manager/modules/programs/lf.nix>
programs.lf.keybindings

Keys to bind. Keys set to null or an empty string are deleted.

Type: attribute set of (null or string)

Default: { }

Example:

{
  D = "trash";
  U = "!du -sh";
  gg = null;
  gh = "cd ~";
  i = "$less $f";
}

Declared by:

<home-manager/modules/programs/lf.nix>
programs.lf.previewer.keybinding

Key to bind to the script at previewer.source and pipe through less. Setting to null will not bind any key.

Type: null or string

Default: null

Example: "i"

Declared by:

<home-manager/modules/programs/lf.nix>
programs.lf.previewer.source

Script or executable to use to preview files. Sets lf's previewer option.

Type: null or path

Default: null

Example:

pkgs.writeShellScript "pv.sh" ''
  #!/bin/sh

  case "$1" in
      *.tar*) tar tf "$1";;
      *.zip) unzip -l "$1";;
      *.rar) unrar l "$1";;
      *.7z) 7z l "$1";;
      *.pdf) pdftotext "$1" -;;
      *) highlight -O ansi "$1" || cat "$1";;
  esac
''

Declared by:

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

An attribute set of lf settings. The attribute names and corresponding values must be among the following supported options.

anchorfindboolean
color256boolean
dircountsboolean
dirfirstboolean
drawboxboolean
errorfmtstring
filesepstring
findlensigned integer
globsearchboolean
hiddenboolean
iconsboolean
ifsstring
ignorecaseboolean
ignorediaboolean
incsearchboolean
infostring
numberboolean
periodsigned integer
previewboolean
promptfmtstring
ratiosstring
relativenumberboolean
reverseboolean
scrolloffsigned integer
shellstring
shelloptsstring
smartcaseboolean
smartdiaboolean
sortbystring
tabstopsigned integer
timefmtstring
wrapscanboolean
wrapscrollboolean

See the lf documentation for detailed descriptions of these options. Note, use previewer to set lf's previewer option, and extraConfig for any other option not listed above. All string options are quoted with double quotes.

Type: submodule

Default: { }

Example:

{
  number = true;
  ratios = "1:1:2";
  tabstop = 4;
}

Declared by:

<home-manager/modules/programs/lf.nix>
programs.librewolf.enable

Whether to enable Librewolf browser, a privacy enhanced Firefox fork.

Type: boolean

Default: false

Example: true

Declared by:

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

The LibreWolf package to use.

Type: package

Default: pkgs.librewolf

Declared by:

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

Attribute set of LibreWolf settings and overrides. Refer to https://librewolf.net/docs/settings/ for details on supported values.

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

Default: { }

Example:

{
  "webgl.disabled" = false;
  "privacy.resistFingerprinting" = false;
}

Declared by:

<home-manager/modules/programs/librewolf.nix>
programs.lieer.enable

Whether to enable lieer Gmail synchronization for notmuch.

Type: boolean

Default: false

Example: true

Declared by:

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

lieer package to use.

Type: package

Default: "pkgs.lieer"

Declared by:

<home-manager/modules/programs/lieer.nix>
programs.looking-glass-client.enable

Whether to enable looking-glass-client.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/looking-glass-client.nix>
programs.looking-glass-client.package

The looking-glass-client package to use.

Type: package

Default: pkgs.looking-glass-client

Declared by:

<home-manager/modules/programs/looking-glass-client.nix>
programs.looking-glass-client.settings

looking-glass-client settings.

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

Default: { }

Example:

{
  app = {
    allowDMA = true;
    shmFile = "/dev/kvmfr0";
  };

  win = {
    fullScreen = true;
    showFPS = false;
    jitRender = true;
  };

  spice = {
    enable = true;
    audio = true;
  };

  input = {
    rawMouse = true;
    escapeKey = 62;
  };
}

Declared by:

<home-manager/modules/programs/looking-glass-client.nix>
programs.lsd.enable

Whether to enable lsd.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/lsd.nix>
programs.lsd.enableAliases

Whether to enable recommended lsd aliases.

Type: boolean

Default: false

Declared by:

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

Configuration written to $XDG_CONFIG_HOME/lsd/config.yaml. See https://github.com/Peltoche/lsd#config-file-content for supported values.

Type: YAML value

Default: { }

Example:

{
  date = "relative";
  ignore-globs = [
    ".git"
    ".hg"
  ];
}

Declared by:

<home-manager/modules/programs/lsd.nix>
programs.man.enable

Whether to enable manual pages and the man command. This also includes "man" outputs of all home.packages.

Type: boolean

Default: true

Declared by:

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

The man package to use.

Type: package

Default: pkgs.man

Declared by:

<home-manager/modules/programs/man.nix>
programs.man.generateCaches

Whether to generate the manual page index caches using mandb(8). This allows searching for a page or keyword using utilities like apropos(1).

This feature is disabled by default because it slows down building. If you don't mind waiting a few more seconds when Home Manager builds a new generation, you may safely enable this option.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/man.nix>
programs.mangohud.enable

Whether to enable Mangohud.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/mangohud.nix>
programs.mangohud.enableSessionWide

Sets environment variables so that MangoHud is started on any application that supports it.

Type: boolean

Default: false

Declared by:

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

The Mangohud package to install.

Type: package

Default: pkgs.mangohud

Declared by:

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

Configuration written to $XDG_CONFIG_HOME/MangoHud/MangoHud.conf. See https://github.com/flightlessmango/MangoHud/blob/master/data/MangoHud.conf for the default configuration.

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

Default: { }

Example:

{
  output_folder = ~/Documents/mangohud/;
  full = true;
}

Declared by:

<home-manager/modules/programs/mangohud.nix>
programs.mangohud.settingsPerApplication

Sets MangoHud settings per application. Configuration written to $XDG_CONFIG_HOME/MangoHud/{application_name}.conf. See https://github.com/flightlessmango/MangoHud/blob/master/data/MangoHud.conf for the default configuration.

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

Default: { }

Example:

{
  mpv = {
    no_display = true;
  }
}

Declared by:

<home-manager/modules/programs/mangohud.nix>
programs.matplotlib.enable

Whether to enable matplotlib, a plotting library for python.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/matplotlib.nix>
programs.matplotlib.config

Add terms to the matplotlibrc file to control the default matplotlib behavior.

Type: attribute set of anything

Default: { }

Example:

{
  backend = "Qt5Agg";
  axes = {
    grid = true;
    facecolor = "black";
    edgecolor = "FF9900";
  };
  grid.color = "FF9900";
}

Declared by:

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

Additional commands for matplotlib that will be added to the matplotlibrc file.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<home-manager/modules/programs/matplotlib.nix>
programs.mbsync.enable

Whether to enable mbsync IMAP4 and Maildir mailbox synchronizer.

Type: boolean

Default: false

Example: true

Declared by:

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

The package to use for the mbsync binary.

Type: package

Default: pkgs.isync

Example: pkgs.isync

Declared by:

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

Extra configuration lines to add to the mbsync configuration.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<home-manager/modules/programs/mbsync.nix>
programs.mbsync.groups

Definition of groups.

Type: attribute set of attribute set of list of string

Default: { }

Example:

{
  inboxes = {
    account1 = [ "Inbox" ];
    account2 = [ "Inbox" ];
  };
}

Declared by:

<home-manager/modules/programs/mbsync.nix>
programs.mcfly.enable

Whether to enable mcfly.

Type: boolean

Default: false

Example: true

Declared by:

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

Whether to enable Bash integration.

Type: boolean

Default: true

Declared by:

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

Whether to enable Fish integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/mcfly.nix>
programs.mcfly.enableLightTheme

Whether to enable light mode theme.

Type: boolean

Default: false

Declared by:

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

Whether to enable Zsh integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/mcfly.nix>
programs.mcfly.fuzzySearchFactor

Whether to enable fuzzy searching. 0 is off; higher numbers weight toward shorter matches. Values in the 2-5 range get good results so far.

Type: unsigned integer, meaning >=0

Default: 0

Declared by:

<home-manager/modules/programs/mcfly.nix>
programs.mcfly.keyScheme

Key scheme to use.

Type: one of "emacs", "vim"

Default: "emacs"

Declared by:

<home-manager/modules/programs/mcfly.nix>
programs.mercurial.enable

Whether to enable Mercurial.

Type: boolean

Default: false

Example: true

Declared by:

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

Mercurial package to install.

Type: package

Default: pkgs.mercurial

Declared by:

<home-manager/modules/programs/mercurial.nix>
programs.mercurial.aliases

Mercurial aliases to define.

Type: attribute set of anything

Default: { }

Declared by:

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

Additional configuration to add.

Type: (attribute set of anything) or strings concatenated with "\n"

Default: { }

Declared by:

<home-manager/modules/programs/mercurial.nix>
programs.mercurial.ignores

List of globs for files to be globally ignored.

Type: list of string

Default: [ ]

Example:

[
  "*~"
  "*.swp"
]

Declared by:

<home-manager/modules/programs/mercurial.nix>
programs.mercurial.ignoresRegexp

List of regular expressions for files to be globally ignored.

Type: list of string

Default: [ ]

Example:

[
  "^.*~$"
  "^.*\\.swp$"
]

Declared by:

<home-manager/modules/programs/mercurial.nix>
programs.mercurial.userEmail

Default user email to use.

Type: string

Declared by:

<home-manager/modules/programs/mercurial.nix>
programs.mercurial.userName

Default user name to use.

Type: string

Declared by:

<home-manager/modules/programs/mercurial.nix>
programs.micro.enable

Whether to enable micro, a terminal-based text editor.

Type: boolean

Default: false

Example: true

Declared by:

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

Configuration written to $XDG_CONFIG_HOME/micro/settings.json. See https://github.com/zyedidia/micro/blob/master/runtime/help/options.md for supported values.

Type: JSON value

Default: { }

Example:

{
  autosu = false;
  cursorline = false;
}

Declared by:

<home-manager/modules/programs/micro.nix>
programs.mpv.enable

Whether to enable mpv.

Type: boolean

Default: false

Example: true

Declared by:

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

Package providing mpv.

Type: package

Default: <derivation mpv-with-scripts-0.35.1>

Example: pkgs.wrapMpv (pkgs.mpv-unwrapped.override { vapoursynthSupport = true; }) { youtubeSupport = true; }

Declared by:

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

Input configuration written to $XDG_CONFIG_HOME/mpv/input.conf. See mpv(1) for the full list of options.

Type: attribute set of string

Default: { }

Example:

{
  WHEEL_UP = "seek 10";
  WHEEL_DOWN = "seek -10";
  "Alt+0" = "set window-scale 0.5";
}

Declared by:

<home-manager/modules/programs/mpv.nix>
programs.mpv.config

Configuration written to $XDG_CONFIG_HOME/mpv/mpv.conf. See mpv(1) for the full list of options.

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

Default: { }

Example:

{
  profile = "gpu-hq";
  force-window = true;
  ytdl-format = "bestvideo+bestaudio";
  cache-default = 4000000;
}

Declared by:

<home-manager/modules/programs/mpv.nix>
programs.mpv.defaultProfiles

Profiles to be applied by default. Options set by them are overridden by options set in programs.mpv.config.

Type: list of string

Default: [ ]

Example:

[
  "gpu-hq"
]

Declared by:

<home-manager/modules/programs/mpv.nix>
programs.mpv.profiles

Sub-configuration options for specific profiles written to $XDG_CONFIG_HOME/mpv/mpv.conf. See programs.mpv.config for more information.

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

Default: { }

Example:

{
  fast = {
    vo = "vdpau";
  };
  "protocol.dvd" = {
    profile-desc = "profile for dvd:// streams";
    alang = "en";
  };
}

Declared by:

<home-manager/modules/programs/mpv.nix>
programs.mpv.scriptOpts

Script options added to $XDG_CONFIG_HOME/mpv/script-opts/. See mpv(1) for the full list of options of builtin scripts.

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

Default: { }

Example:

{
  osc = {
    scalewindowed = 2.0;
    vidscale = false;
    visibility = "always";
  };
}

Declared by:

<home-manager/modules/programs/mpv.nix>
programs.mpv.scripts

List of scripts to use with mpv.

Type: list of package

Default: [ ]

Example: [ pkgs.mpvScripts.mpris ]

Declared by:

<home-manager/modules/programs/mpv.nix>
programs.mr.enable

Whether to enable mr, a tool to manage all your version control repositories.

Type: boolean

Default: false

Example: true

Declared by:

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

The mr package to use.

Type: package

Default: pkgs.mr

Declared by:

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

Configuration written to $HOME/.mrconfig See https://myrepos.branchable.com/ for an example configuration.

Type: attribute set of attribute set of (INI atom (null, bool, int, float or string) or a non-empty list of them)

Default: { }

Example:

{
  foo = {
    checkout = "git clone git@github.com:joeyh/foo.git";
    update = "git pull --rebase";
  };
  ".local/share/password-store" = {
    checkout = "git clone git@github.com:myuser/password-store.git";
  };
}

Declared by:

<home-manager/modules/programs/mr.nix>
programs.msmtp.enable

Whether to enable msmtp.

Type: boolean

Default: false

Example: true

Declared by:

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

Extra configuration lines to add to the end of ~/.msmtprc. See https://marlam.de/msmtp/msmtprc.txt for examples.

Type: strings concatenated with "\n"

Default: ""

Declared by:

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

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

Note, if running msmtp fails with the error message "account default was already defined" then you probably have an account command here. Account commands should be placed in accounts.email.accounts.<name>.msmtp.extraConfig.

Type: strings concatenated with "\n"

Default: ""

Declared by:

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

Whether to enable mu, a maildir indexer and searcher.

Type: boolean

Default: false

Example: true

Declared by:

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

Whether to enable mujmap Gmail synchronization for notmuch.

Type: boolean

Default: false

Example: true

Declared by:

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

mujmap package to use.

Type: package

Default: "pkgs.mujmap"

Declared by:

<home-manager/modules/programs/mujmap.nix>
programs.navi.enable

Whether to enable Navi.

Type: boolean

Default: false

Example: true

Declared by:

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

Whether to enable Bash integration.

Type: boolean

Default: true

Example: true

Declared by:

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

Whether to enable Fish integration.

Type: boolean

Default: true

Example: true

Declared by:

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

Whether to enable Zsh integration.

Type: boolean

Default: true

Example: true

Declared by:

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

The package to use for the navi binary.

Type: package

Default: pkgs.navi

Declared by:

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

Configuration written to $XDG_CONFIG_HOME/navi/config.yaml on Linux or $HOME/Library/Application Support/navi/config.yaml on Darwin. See https://github.com/denisidoro/navi/blob/master/docs/config_file.md for more information.

Type: YAML value

Default: { }

Example:

{
  cheats = {
    paths = [
      "~/cheats/"
    ];
  };
}

Declared by:

<home-manager/modules/programs/navi.nix>
programs.ncmpcpp.enable

Whether to enable ncmpcpp - an ncurses Music Player Daemon (MPD) client.

Type: boolean

Default: false

Example: true

Declared by:

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

Package providing the ncmpcpp command.

Type: package

Default: pkgs.ncmpcpp

Example: pkgs.ncmpcpp.override { visualizerSupport = true; }

Declared by:

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

List of keybindings.

Type: list of (submodule)

Default: [ ]

Example:

[
  { key = "j"; command = "scroll_down"; }
  { key = "k"; command = "scroll_up"; }
  { key = "J"; command = [ "select_item" "scroll_down" ]; }
  { key = "K"; command = [ "select_item" "scroll_up" ]; }
]

Declared by:

<home-manager/modules/programs/ncmpcpp.nix>
programs.ncmpcpp.bindings.*.command

Command or sequence of commands to be executed.

Type: string or list of string

Example: "scroll_down"

Declared by:

<home-manager/modules/programs/ncmpcpp.nix>
programs.ncmpcpp.bindings.*.key

Key to bind.

Type: string

Example: "j"

Declared by:

<home-manager/modules/programs/ncmpcpp.nix>
programs.ncmpcpp.mpdMusicDir

Value of the mpd_music_dir setting. On Linux platforms the value of services.mpd.musicDirectory is used as the default if services.mpd.enable is true.

Type: null or (string or path convertible to it)

Default:

if pkgs.stdenv.hostPlatform.isLinux && config.services.mpd.enable then
  config.services.mpd.musicDirectory
else
  null

Example: "~/music"

Declared by:

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

Attribute set from name of a setting to its value. For available options see ncmpcpp(1).

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

Default: { }

Example:

{
  ncmpcpp_directory = "~/.local/share/ncmpcpp";
}

Declared by:

<home-manager/modules/programs/ncmpcpp.nix>
programs.ncspot.enable

Whether to enable ncspot.

Type: boolean

Default: false

Example: true

Declared by:

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

The package to use for ncspot.

Type: package

Default: pkgs.ncspot

Declared by:

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

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

See https://github.com/hrkfdn/ncspot#configuration for the full list of options.

Type: TOML value

Default: { }

Example:

{
  shuffle = true;
  gapless = true;
}

Declared by:

<home-manager/modules/programs/ncspot.nix>
programs.ne.enable

Whether to enable ne.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/ne.nix>
programs.ne.automaticPreferences

Automatic preferences files for ne.

Type: attribute set of strings concatenated with "\n"

Default: { }

Example:

{
  nix = ''
    TAB 0
    TS 2
  '';
  js = ''
    TS 4
  '';
}

Declared by:

<home-manager/modules/programs/ne.nix>
programs.ne.defaultPreferences

Default preferences for ne.

Equivalent to programs.ne.automaticPreferences.".default".

Type: strings concatenated with "\n"

Default: ""

Declared by:

<home-manager/modules/programs/ne.nix>
programs.ne.keybindings

Keybinding file for ne.

Type: strings concatenated with "\n"

Default: ""

Example:

''
  KEY 7f BS
  SEQ "\x1b[1;5D" 7f
''

Declared by:

<home-manager/modules/programs/ne.nix>
programs.ne.menus

Menu configuration file for ne.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<home-manager/modules/programs/ne.nix>
programs.ne.virtualExtensions

Virtual extensions configuration file for ne.

Type: strings concatenated with "\n"

Default: ""

Example:

''
  sh   1  ^#!\s*/.*\b(bash|sh|ksh|zsh)\s*
  csh  1  ^#!\s*/.*\b(csh|tcsh)\s*
''

Declared by:

<home-manager/modules/programs/ne.nix>
programs.neomutt.enable

Whether to enable the NeoMutt mail client.

Type: boolean

Default: false

Example: true

Declared by:

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

The neomutt package to use.

Type: package

Default: pkgs.neomutt

Declared by:

<home-manager/modules/programs/neomutt.nix>
programs.neomutt.binds

List of keybindings.

Type: list of (submodule)

Default: [ ]

Declared by:

<home-manager/modules/programs/neomutt.nix>
programs.neomutt.binds.*.action

Specify the action to take.

Type: string

Example: "<enter-command>toggle sidebar_visible<enter><refresh>"

Declared by:

<home-manager/modules/programs/neomutt.nix>
programs.neomutt.binds.*.key

The key to bind.

Type: string

Example: "<left>"

Declared by:

<home-manager/modules/programs/neomutt.nix>
programs.neomutt.binds.*.map

Select the menu to bind the command to.

Type: one of "alias", "attach", "browser", "compose", "editor", "generic", "index", "mix", "pager", "pgp", "postpone", "query", "smime" or list of (one of "alias", "attach", "browser", "compose", "editor", "generic", "index", "mix", "pager", "pgp", "postpone", "query", "smime")

Default: "index"

Declared by:

<home-manager/modules/programs/neomutt.nix>
programs.neomutt.changeFolderWhenSourcingAccount

Whether to enable changing the folder when sourcing an account.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/neomutt.nix>
programs.neomutt.checkStatsInterval

Enable and set the interval of automatic mail check.

Type: null or signed integer

Default: null

Example: 60

Declared by:

<home-manager/modules/programs/neomutt.nix>
programs.neomutt.editor

Select the editor used for writing mail.

Type: string

Default: "$EDITOR"

Declared by:

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

Extra configuration appended to the end.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<home-manager/modules/programs/neomutt.nix>
programs.neomutt.macros

List of macros.

Type: list of (submodule)

Default: [ ]

Declared by:

<home-manager/modules/programs/neomutt.nix>
programs.neomutt.macros.*.action

Specify the action to take.

Type: string

Example: "<enter-command>toggle sidebar_visible<enter><refresh>"

Declared by:

<home-manager/modules/programs/neomutt.nix>
programs.neomutt.macros.*.key

The key to bind.

Type: string

Example: "<left>"

Declared by:

<home-manager/modules/programs/neomutt.nix>
programs.neomutt.macros.*.map

Select the menu to bind the command to.

Type: one of "alias", "attach", "browser", "compose", "editor", "generic", "index", "mix", "pager", "pgp", "postpone", "query", "smime" or list of (one of "alias", "attach", "browser", "compose", "editor", "generic", "index", "mix", "pager", "pgp", "postpone", "query", "smime")

Default: "index"

Declared by:

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

Extra configuration appended to the end.

Type: attribute set of string

Default: { }

Declared by:

<home-manager/modules/programs/neomutt.nix>
programs.neomutt.sidebar

Options related to the sidebar.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/programs/neomutt.nix>
programs.neomutt.sidebar.enable

Whether to enable sidebar support.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/neomutt.nix>
programs.neomutt.sidebar.format

Sidebar format. Check neomutt documentation for details.

Type: string

Default: "%D%?F? [%F]?%* %?N?%N/?%S"

Declared by:

<home-manager/modules/programs/neomutt.nix>
programs.neomutt.sidebar.shortPath

By default sidebar shows the full path of the mailbox, but with this enabled only the relative name is shown.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/neomutt.nix>
programs.neomutt.sidebar.width

Width of the sidebar

Type: signed integer

Default: 22

Declared by:

<home-manager/modules/programs/neomutt.nix>
programs.neomutt.sort

Sorting method on messages.

Type: one of "date", "date-received", "from", "mailbox-order", "score", "size", "spam", "subject", "threads", "to", "reverse-date", "reverse-date-received", "reverse-from", "reverse-mailbox-order", "reverse-score", "reverse-size", "reverse-spam", "reverse-subject", "reverse-threads", "reverse-to"

Default: "threads"

Declared by:

<home-manager/modules/programs/neomutt.nix>
programs.neomutt.vimKeys

Enable vim-like bindings.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/neomutt.nix>
programs.neovim.enable

Whether to enable Neovim.

Type: boolean

Default: false

Example: true

Declared by:

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

The package to use for the neovim binary.

Type: package

Default: pkgs.neovim-unwrapped

Declared by:

<home-manager/modules/programs/neovim.nix>
programs.neovim.coc.enable

Whether to enable Coc.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/neovim.nix>
programs.neovim.coc.package

The package to use for the CoC plugin.

Type: package

Default: pkgs.vimPlugins.coc-nvim

Declared by:

<home-manager/modules/programs/neovim.nix>
programs.neovim.coc.pluginConfig

Script to configure CoC. Must be viml.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<home-manager/modules/programs/neovim.nix>
programs.neovim.coc.settings

Extra configuration lines to add to $XDG_CONFIG_HOME/nvim/coc-settings.json See https://github.com/neoclide/coc.nvim/wiki/Using-the-configuration-file for options.

Type: JSON value

Default: { }

Example:

{
  "suggest.noselect" = true;
  "suggest.enablePreview" = true;
  "suggest.enablePreselect" = false;
  "suggest.disableKind" = true;
  languageserver = {
    haskell = {
      command = "haskell-language-server-wrapper";
      args = [ "--lsp" ];
      rootPatterns = [
        "*.cabal"
        "stack.yaml"
        "cabal.project"
        "package.yaml"
        "hie.yaml"
      ];
      filetypes = [ "haskell" "lhaskell" ];
    };
  };
};

Declared by:

<home-manager/modules/programs/neovim.nix>
programs.neovim.defaultEditor

Whether to configure nvim as the default editor using the EDITOR environment variable.

Type: boolean

Default: false

Declared by:

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

Custom vimrc lines.

Type: strings concatenated with "\n"

Default: ""

Example:

''
  set nobackup
''

Declared by:

<home-manager/modules/programs/neovim.nix>
programs.neovim.extraLuaConfig

Custom lua lines.

Type: strings concatenated with "\n"

Default: ""

Example:

''
  vim.opt.nobackup = true
''

Declared by:

<home-manager/modules/programs/neovim.nix>
programs.neovim.extraLuaPackages

The extra Lua packages required for your plugins to work. This option accepts a function that takes a Lua package set as an argument, and selects the required Lua packages from this package set. See the example for more info.

Type: (function that evaluates to a(n) list of package) or (list of package) convertible to it

Default: ps: [ ]

Example: luaPkgs: with luaPkgs; [ luautf8 ]

Declared by:

<home-manager/modules/programs/neovim.nix>
programs.neovim.extraPackages

Extra packages available to nvim.

Type: list of package

Default: [ ]

Example: [ pkgs.shfmt ]

Declared by:

<home-manager/modules/programs/neovim.nix>
programs.neovim.extraPython3Packages

The extra Python 3 packages required for your plugins to work. This option accepts a function that takes a Python 3 package set as an argument, and selects the required Python 3 packages from this package set. See the example for more info.

Type: (function that evaluates to a(n) list of package) or (list of package) convertible to it

Default: ps: [ ]

Example: pyPkgs: with pyPkgs; [ python-language-server ]

Declared by:

<home-manager/modules/programs/neovim.nix>
programs.neovim.generatedConfigViml

Generated vimscript config.

Type: strings concatenated with "\n" (read only)

Declared by:

<home-manager/modules/programs/neovim.nix>
programs.neovim.generatedConfigs

Generated configurations with as key their language (set via type).

Type: attribute set of strings concatenated with "\n" (read only)

Example:

{
  viml = ''
    " Generated by home-manager
    map <leader> ,
  '';

  lua = ''
    -- Generated by home-manager
    vim.opt.background = "dark"
  '';
}

Declared by:

<home-manager/modules/programs/neovim.nix>
programs.neovim.plugins

List of vim plugins to install optionally associated with configuration to be placed in init.vim.

This option is mutually exclusive with configure.

Type: list of (package or (submodule))

Default: [ ]

Example:

with pkgs.vimPlugins; [
  yankring
  vim-nix
  { plugin = vim-startify;
    config = "let g:startify_change_to_vcs_root = 0";
  }
]

Declared by:

<home-manager/modules/programs/neovim.nix>
programs.neovim.viAlias

Symlink vi to nvim binary.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/neovim.nix>
programs.neovim.vimAlias

Symlink vim to nvim binary.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/neovim.nix>
programs.neovim.vimdiffAlias

Alias vimdiff to nvim -d.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/neovim.nix>
programs.neovim.withNodeJs

Enable node provider. Set to true to use Node plugins.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/neovim.nix>
programs.neovim.withPython3

Enable Python 3 provider. Set to true to use Python 3 plugins.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/neovim.nix>
programs.neovim.withRuby

Enable ruby provider.

Type: null or boolean

Default: true

Declared by:

<home-manager/modules/programs/neovim.nix>
programs.newsboat.enable

Whether to enable the Newsboat feed reader.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/newsboat.nix>
programs.newsboat.autoReload

Whether to enable automatic reloading while newsboat is running.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/newsboat.nix>
programs.newsboat.browser

External browser to use.

Type: string

Default: "\${pkgs.xdg-utils}/bin/xdg-open"

Declared by:

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

Extra configuration values that will be appended to the end.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<home-manager/modules/programs/newsboat.nix>
programs.newsboat.maxItems

Maximum number of items per feed, 0 for infinite.

Type: signed integer

Default: 0

Declared by:

<home-manager/modules/programs/newsboat.nix>
programs.newsboat.queries

A list of queries to use.

Type: attribute set of string

Default: { }

Example:

{
  foo = "rssurl =~ \"example.com\"";
}

Declared by:

<home-manager/modules/programs/newsboat.nix>
programs.newsboat.reloadThreads

How many threads to use for updating the feeds.

Type: signed integer

Default: 5

Declared by:

<home-manager/modules/programs/newsboat.nix>
programs.newsboat.reloadTime

Time in minutes between reloads.

Type: null or signed integer

Default: 60

Declared by:

<home-manager/modules/programs/newsboat.nix>
programs.newsboat.urls

List of news feeds. Leave it empty if you want to manage feeds imperatively, for example, using Syncthing.

Type: list of (submodule)

Default: [ ]

Example:

[
  {
    tags = [
      "foo"
      "bar"
    ];
    url = "http://example.com";
  }
]

Declared by:

<home-manager/modules/programs/newsboat.nix>
programs.newsboat.urls.*.tags

Feed tags.

Type: list of string

Default: [ ]

Example:

[
  "foo"
  "bar"
]

Declared by:

<home-manager/modules/programs/newsboat.nix>
programs.newsboat.urls.*.title

Feed title.

Type: null or string

Default: null

Example: "ORF News"

Declared by:

<home-manager/modules/programs/newsboat.nix>
programs.newsboat.urls.*.url

Feed URL.

Type: string

Example: "http://example.com"

Declared by:

<home-manager/modules/programs/newsboat.nix>
programs.nheko.enable

Whether to enable Qt desktop client for Matrix.

Type: boolean

Default: false

Example: true

Declared by:

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

The nheko package to use.

Type: package

Default: pkgs.nheko

Declared by:

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

Attribute set of Nheko preferences (converted to an INI file).

For now, it is recommended to run nheko and sign-in before filling in the configuration settings in this module, as nheko writes the access token to $XDG_CONFIG_HOME/nheko/nheko.conf the first time we sign in, and we need that data into these settings for the correct functionality of the application.

This a temporary inconvenience, however, as nheko has plans to move the authentication stuff into the local database they currently use. Once this happens, this will no longer be an issue.

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

Default: { }

Example:

{
  general.disableCertificateValidation = false;
  auth = {
    accessToken = "SECRET";
    deviceId = "MY_DEVICE";
    homeServer = "https://matrix-client.matrix.org:443";
    userId = "@@user:matrix.org";
  };
  settings.scaleFactor = 1.0;
  sidebar.width = 416;
  user = {
    alertOnNotification = true;
    animateImagesOnHover = false;
    "sidebar\\roomListWidth" = 308;
  };
}

Declared by:

<home-manager/modules/programs/nheko.nix>
programs.nix-index.enable

Whether to enable nix-index, a file database for nixpkgs.

Type: boolean

Default: false

Example: true

Declared by:

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

Whether to enable Bash integration.

Type: boolean

Default: true

Example: true

Declared by:

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

Whether to enable Fish integration.

Type: boolean

Default: true

Example: true

Declared by:

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

Whether to enable Zsh integration.

Type: boolean

Default: true

Example: true

Declared by:

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

Package providing the nix-index tool.

Type: package

Default: pkgs.nix-index

Declared by:

<home-manager/modules/programs/nix-index.nix>
programs.nnn.enable

Whether to enable nnn.

Type: boolean

Default: false

Example: true

Declared by:

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

Package containing the nnn program.

Type: package

Default: pkgs.nnn

Example: pkgs.nnn.override ({ withNerdIcons = true; });

Declared by:

<home-manager/modules/programs/nnn.nix>
programs.nnn.bookmarks

Directory bookmarks.

Type: attribute set of string

Default: { }

Example:

{
  d = "~/Documents";
  D = "~/Downloads";
  p = "~/Pictures";
  v = "~/Videos";
};

Declared by:

<home-manager/modules/programs/nnn.nix>
programs.nnn.extraPackages

Extra packages available to nnn.

Type: list of package

Default: [ ]

Example: with pkgs; [ ffmpegthumbnailer mediainfo sxiv ]

Declared by:

<home-manager/modules/programs/nnn.nix>
programs.nnn.plugins

Manage nnn plugins.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/programs/nnn.nix>
programs.nnn.plugins.mappings

Key mappings to the plugins.

Type: attribute set of string

Default: { }

Example:

{
  c = "fzcd";
  f = "finder";
  v = "imgview";
};

Declared by:

<home-manager/modules/programs/nnn.nix>
programs.nnn.plugins.src

Path to the plugin folder.

Type: null or path

Default: null

Example:

(pkgs.fetchFromGitHub {
  owner = "jarun";
  repo = "nnn";
  rev = "v4.0";
  sha256 = "sha256-Hpc8YaJeAzJoEi7aJ6DntH2VLkoR6ToP6tPYn3llR7k=";
}) + "/plugins";

Declared by:

<home-manager/modules/programs/nnn.nix>
programs.noti.enable

Whether to enable Noti.

Type: boolean

Default: false

Example: true

Declared by:

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

Configuration written to $XDG_CONFIG_HOME/noti/noti.yaml.

See noti.yaml(5). for the full list of options.

Type: attribute set of attribute set of string

Default: { }

Example:

{
  say = {
    voice = "Alex";
  };
  slack = {
    token = "1234567890abcdefg";
    channel = "@jaime";
  };
}

Declared by:

<home-manager/modules/programs/noti.nix>
programs.notmuch.enable

Whether to enable Notmuch mail indexer.

Type: boolean

Default: false

Example: true

Declared by:

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

Options that should be appended to the notmuch configuration file.

Type: attribute set of attribute set of string

Default: { }

Declared by:

<home-manager/modules/programs/notmuch.nix>
programs.notmuch.hooks.postInsert

Bash statements run after a message has been inserted into the database and initial tags have been applied.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<home-manager/modules/programs/notmuch.nix>
programs.notmuch.hooks.postNew

Bash statements run after new messages have been imported into the database and initial tags have been applied.

Type: strings concatenated with "\n"

Default: ""

Example:

''
  notmuch tag +nixos -- tag:new and from:nixos1@discoursemail.com
''

Declared by:

<home-manager/modules/programs/notmuch.nix>
programs.notmuch.hooks.preNew

Bash statements run before scanning or importing new messages into the database.

Type: strings concatenated with "\n"

Default: ""

Example: "mbsync --all"

Declared by:

<home-manager/modules/programs/notmuch.nix>
programs.notmuch.maildir.synchronizeFlags

Whether to synchronize Maildir