Appendix A. Home Manager Configuration Options

_module.args

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

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

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

  • lib: The nixpkgs library.

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

  • options: The options declared in all modules.

  • specialArgs: The specialArgs argument passed to evalModules.

  • All attributes of specialArgs

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

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

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

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

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

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

Type: lazy attribute set of raw value

Declared by:

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

List of calendars.

Type: attribute set of (submodule)

Default: { }

Declared by:

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

Whether to enable khal access.

Type: boolean

Default: false

Example: true

Declared by:

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

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

Type: list of string

Default: [ ]

Declared by:

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

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

Type: null or string

Default: null

Example: "light green"

Declared by:

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

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

Type: string

Default: "*"

Declared by:

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

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

Type: signed integer

Default: 10

Declared by:

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

Keep khal from making any changes to this account.

Type: boolean

Default: false

Declared by:

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

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

Type: one of “calendar”, “discover”

Default: "calendar"

Declared by:

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

Local configuration for the calendar.

Type: submodule

Default: { }

Declared by:

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

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

Type: null or string

Default: null

Declared by:

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

The file extension to use.

Type: null or string

Default: ".ics"

Declared by:

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

The path of the storage.

Type: string

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

Declared by:

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

The type of the storage.

Type: one of “filesystem”, “singlefile”

Default: "filesystem"

Declared by:

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

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

Type: string (read only)

Declared by:

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

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

Type: boolean

Default: false

Declared by:

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

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

Type: null or string

Default: null

Declared by:

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

Whether to enable qcal access.

Type: boolean

Default: false

Example: true

Declared by:

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

Remote configuration for the calendar.

Type: null or (submodule)

Default: null

Declared by:

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

A command that prints the password to standard output.

Type: null or (list of string)

Default: null

Example:

[
  "pass"
  "caldav"
]

Declared by:

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

The type of the storage.

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

Declared by:

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

The URL of the storage.

Type: null or string

Default: null

Declared by:

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

User name for authentication.

Type: null or string

Default: null

Declared by:

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

Whether to enable synchronization using vdirsyncer.

Type: boolean

Default: false

Example: true

Declared by:

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

Authentication settings. The default is basic.

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

Default: null

Declared by:

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

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

Type: null or string or list of string

Default: null

Declared by:

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

A command that prints the OAuth credentials to standard output.

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

Type: null or (list of string)

Default: null

Example:

[
  "pass"
  "client_id"
]

Declared by:

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

A command that prints the OAuth credentials to standard output.

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

Type: null or (list of string)

Default: null

Example:

[
  "pass"
  "client_secret"
]

Declared by:

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

The collections to synchronize between the storages.

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

Default: null

Declared by:

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

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

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

Default: null

Declared by:

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

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

Type: null or (list of string)

Default: null

Declared by:

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

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

Type: list of string

Default: [ ]

Example:

[
  "color"
  "displayname"
]

Declared by:

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

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

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

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

Default: null

Declared by:

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

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

Type: null or strings concatenated with “\n”

Default: null

Declared by:

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

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

Type: null or (submodule)

Default: null

Example:

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

Declared by:

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

End of time range to show.

Type: string

Declared by:

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

Start of time range to show.

Type: string

Declared by:

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

A file path where access tokens are stored.

Type: null or string

Default: null

Declared by:

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

A command that prints the URL of the storage.

Type: null or (list of string)

Default: null

Example:

[
  "~/get-url.sh"
]

Declared by:

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

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

Type: null or string

Default: null

Declared by:

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

A command that prints the user name to standard output.

Type: null or (list of string)

Default: null

Example:

[
  "~/get-username.sh"
]

Declared by:

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

Null or path to certificate to verify SSL against

Type: null or path

Default: null

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

Declared by:

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

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

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

Type: null or string

Default: null

Declared by:

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

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

Type: string

Example: ".calendar"

Declared by:

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

List of contacts.

Type: attribute set of (submodule)

Default: { }

Declared by:

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

Whether to enable khal access.

Type: boolean

Default: false

Example: true

Declared by:

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

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

Type: list of string

Default: [ ]

Declared by:

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

VCARD collections to be searched for contact birthdays.

Type: null or (list of string)

Default: null

Declared by:

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

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

Type: null or string

Default: null

Example: "light green"

Declared by:

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

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

Type: signed integer

Default: 10

Declared by:

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

Keep khal from making any changes to this account.

Type: boolean

Default: false

Declared by:

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

Whether to enable khard access.

Type: boolean

Default: false

Example: true

Declared by:

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

VCARD collection to be searched by khard.

Type: string

Default: ""

Declared by:

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

Local configuration for the contacts.

Type: null or (submodule)

Default: null

Declared by:

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

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

Type: null or string

Default: null

Declared by:

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

The file extension to use.

Type: null or string

Default: null

Declared by:

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

The path of the storage.

Type: string

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

Declared by:

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

The type of the storage.

Type: one of “filesystem”, “singlefile”

Declared by:

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

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

Type: string (read only)

Declared by:

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

Remote configuration for the contacts.

Type: null or (submodule)

Default: null

Declared by:

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

A command that prints the password to standard output.

Type: null or (list of string)

Default: null

Example:

[
  "pass"
  "caldav"
]

Declared by:

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

The type of the storage.

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

Declared by:

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

The URL of the storage.

Type: null or string

Default: null

Declared by:

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

User name for authentication.

Type: null or string

Default: null

Declared by:

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

Whether to enable synchronization using vdirsyncer.

Type: boolean

Default: false

Example: true

Declared by:

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

Authentication settings. The default is basic.

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

Default: null

Declared by:

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

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

Type: null or string or list of string

Default: null

Declared by:

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

A command that prints the OAuth credentials to standard output.

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

Type: null or (list of string)

Default: null

Example:

[
  "pass"
  "client_id"
]

Declared by:

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

A command that prints the OAuth credentials to standard output.

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

Type: null or (list of string)

Default: null

Example:

[
  "pass"
  "client_secret"
]

Declared by:

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

The collections to synchronize between the storages.

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

Default: null

Declared by:

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

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

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

Default: null

Declared by:

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

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

Type: null or (list of string)

Default: null

Declared by:

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

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

Type: list of string

Default: [ ]

Example:

[
  "color"
  "displayname"
]

Declared by:

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

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

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

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

Default: null

Declared by:

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

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

Type: null or strings concatenated with “\n”

Default: null

Declared by:

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

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

Type: null or (submodule)

Default: null

Example:

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

Declared by:

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

End of time range to show.

Type: string

Declared by:

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

Start of time range to show.

Type: string

Declared by:

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

A file path where access tokens are stored.

Type: null or string

Default: null

Declared by:

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

A command that prints the URL of the storage.

Type: null or (list of string)

Default: null

Example:

[
  "~/get-url.sh"
]

Declared by:

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

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

Type: null or string

Default: null

Declared by:

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

A command that prints the user name to standard output.

Type: null or (list of string)

Default: null

Example:

[
  "~/get-username.sh"
]

Declared by:

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

Null or path to certificate to verify SSL against

Type: null or path

Default: null

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

Declared by:

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

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

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

Type: null or string

Default: null

Declared by:

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

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

Type: string

Declared by:

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

List of email accounts.

Type: attribute set of (submodule)

Default: { }

Declared by:

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

The email address of this account.

Type: string matching the pattern .*@.*

Example: "jane.doe@example.org"

Declared by:

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

Whether to enable aerc.

Type: boolean

Default: false

Example: true

Declared by:

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

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

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

Default: { }

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

Declared by:

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

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

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

Default: { }

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

Declared by:

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

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

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

Default: { }

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

Declared by:

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

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

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

Default: null

Example: "auth"

Declared by:

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

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

Type: null or (submodule)

Default: null

Example:

{
  token_endpoint = "<token_endpoint>";
}

Declared by:

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

The OAuth2 client identifier.

Type: null or string

Default: null

Declared by:

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

The OAuth2 client secret.

Type: null or string

Default: null

Declared by:

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

The OAuth2 requested scope.

Type: null or string

Default: null

Declared by:

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

The OAuth2 token endpoint.

Type: null or string

Default: null

Declared by:

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

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

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

Default: "plain"

Example: "auth"

Declared by:

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

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

Type: null or (submodule)

Default: null

Example:

{
  token_endpoint = "<token_endpoint>";
}

Declared by:

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

The OAuth2 client identifier.

Type: null or string

Default: null

Declared by:

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

The OAuth2 client secret.

Type: null or string

Default: null

Declared by:

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

The OAuth2 requested scope.

Type: null or string

Default: null

Declared by:

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

The OAuth2 token endpoint.

Type: null or string

Default: null

Declared by:

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

Alternative email addresses of this account.

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

Default: [ ]

Example:

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

Declared by:

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

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

Type: attribute set of string

Default:

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

Example:

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

Declared by:

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

Extra settings to add to this Alot account configuration.

Type: strings concatenated with “\n”

Default: ""

Declared by:

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

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

Type: null or string

Declared by:

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

Whether to enable Astroid.

Type: boolean

Default: false

Example: true

Declared by:

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

Extra settings to add to this astroid account configuration.

Type: attribute set of anything

Default: { }

Example:

{
  select_query = "";
}

Declared by:

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

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

Type: string

Declared by:

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

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

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

Type: one of “plain”, “gmail.com”, “runbox.com”, “fastmail.com”, “yandex.com”, “outlook.office365.com”

Default: "plain"

Declared by:

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

Standard email folders.

Type: submodule

Default: { }

Declared by:

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

Relative path of the drafts mail folder.

Type: null or string

Default: "Drafts"

Declared by:

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

Relative path of the inbox mail.

Type: string

Default: "Inbox"

Declared by:

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

Relative path of the sent mail folder.

Type: null or string

Default: "Sent"

Declared by:

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

Relative path of the deleted mail folder.

Type: string

Default: "Trash"

Declared by:

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

Whether to enable the getmail mail retriever for this account.

Type: boolean

Default: false

Example: true

Declared by:

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

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

Type: boolean

Default: false

Declared by:

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

Specify a command delivering the incoming mail to your maildir.

Type: null or string

Default: null

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

Declared by:

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

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

Type: non-empty (list of string)

Default: [ ]

Example:

[
  "INBOX"
  "INBOX.spam"
]

Declared by:

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

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

Type: boolean

Default: true

Declared by:

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

GPG configuration.

Type: null or (submodule)

Default: null

Declared by:

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

Encrypt outgoing messages by default.

Type: boolean

Default: false

Declared by:

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

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

Type: string

Declared by:

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

Sign messages by default.

Type: boolean

Default: false

Declared by:

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

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

Type: boolean

Default: false

Example: true

Declared by:

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

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

Type: TOML value

Default: { }

Declared by:

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

The IMAP configuration to use for this account.

Type: null or (submodule)

Default: null

Declared by:

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

Hostname of IMAP server.

Type: string

Example: "imap.example.org"

Declared by:

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

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

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

Default: null

Example: 993

Declared by:

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

Configuration for secure connections.

Type: submodule

Default: { }

Declared by:

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

Whether to enable TLS/SSL.

Type: boolean

Default: true

Declared by:

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

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

Type: null or path

Default: "config.accounts.email.certificatesFile"

Declared by:

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

Whether to use STARTTLS.

Type: boolean

Default: false

Declared by:

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

Whether to enable imapnotify.

Type: boolean

Default: false

Example: true

Declared by:

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

IMAP folders to watch.

Type: list of string

Default: [ ]

Example:

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

Declared by:

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

Additional configuration to add for this account.

Type: JSON value

Default: { }

Example:

{
  wait = 10;
}

Declared by:

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

Shell commands to run on any event.

Type: string or attribute set of string

Default: ""

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

Declared by:

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

Shell commands to run after onNotify event.

Type: string or attribute set of string

Default: ""

Example:

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

Declared by:

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

The JMAP configuration to use for this account.

Type: null or (submodule)

Default: null

Declared by:

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

Hostname of JMAP server.

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

Type: null or string

Default: null

Example: "jmap.example.org"

Declared by:

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

URL for the JMAP Session resource.

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

Type: null or string

Default: null

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

Declared by:

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

Whether to enable lieer Gmail synchronization for notmuch.

Type: boolean

Default: false

Example: true

Declared by:

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

Warn if Notmuch is not also enabled for this account.

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

Type: boolean

Default: true

Declared by:

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

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

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

Type: JSON value

Default: { }

Declared by:

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

Allow missing labels on the Gmail side to be dropped.

Type: boolean

Default: false

Declared by:

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

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

Type: string

Default: ""

Example: "mbox"

Declared by:

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

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

See this GitHub issue for more details.

Type: boolean

Default: false

Declared by:

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

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

Type: list of string

Default:

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

Declared by:

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

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

Type: list of string

Default: [ ]

Declared by:

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

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

Type: string

Default: "trash"

Declared by:

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

Remove local messages that have been deleted on the remote.

Type: boolean

Default: true

Declared by:

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

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

Type: boolean

Default: false

Declared by:

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

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

Type: unsigned integer, meaning >=0

Default: 600

Declared by:

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

Whether to enable lieer synchronization service.

Type: boolean

Default: false

Example: true

Declared by:

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

How often to synchronize the account.

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

Type: string

Default: "*:0/5"

Declared by:

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

Maildir configuration for this account.

Type: null or (submodule)

Default:

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

Declared by:

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

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

Type: string

Declared by:

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

Whether to enable synchronization using mbsync.

Type: boolean

Default: false

Example: true

Declared by:

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

Automatically create missing mailboxes within the given mail store.

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

Default: "none"

Example: "maildir"

Declared by:

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

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

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

Default: "none"

Example: "both"

Declared by:

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

Account section extra configuration.

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

Default: { }

Example:

{
  PipelineDepth = 10;
  Timeout = 60;
};

Declared by:

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

Per channel extra configuration.

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

Default: { }

Example:

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

Declared by:

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

Local store extra configuration.

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

Default: { }

Declared by:

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

Remote store extra configuration.

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

Default: { }

Declared by:

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

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

Type: null or string

Default: null

Example: "."

Declared by:

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

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

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

Type: attribute set of (submodule)

Default: { }

Declared by:

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

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

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

Type: attribute set of (submodule)

Default: { }

Declared by:

<home-manager/modules/programs/mbsync.nix>
accounts.email.accounts.<name>.mbsync.groups.<name>.channels.<name>.extraConfig

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

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

Default: { }

Example:

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

Declared by:

<home-manager/modules/programs/mbsync.nix>
accounts.email.accounts.<name>.mbsync.groups.<name>.channels.<name>.farPattern

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

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

Type: string

Default: ""

Example: "[Gmail]/Sent Mail"

Declared by:

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

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

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

Type: string (read only)

Default: "‹name›"

Declared by:

<home-manager/modules/programs/mbsync.nix>
accounts.email.accounts.<name>.mbsync.groups.<name>.channels.<name>.nearPattern

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

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

Type: string

Default: ""

Example: "Sent"

Declared by:

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

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

Type: list of string

Default: [ ]

Example:

[
  "INBOX"
]

Declared by:

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

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

Type: string (read only)

Default: "‹name›"

Declared by:

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

Pattern of mailboxes to synchronize.

Type: list of string

Default:

[
  "*"
]

Declared by:

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

Propagate mailbox deletions to the given mail store.

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

Default: "none"

Example: "imap"

Declared by:

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

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

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

Default: "Verbatim"

Example: "Maildir++"

Declared by:

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

Whether to enable msmtp.

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

Type: boolean

Default: false

Declared by:

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

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

Type: attribute set of string

Default: { }

Example:

{
  auth = "login";
}

Declared by:

<home-manager/modules/programs/msmtp.nix>
accounts.email.accounts.<name>.msmtp.tls.fingerprint

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

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

Default: null

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

Declared by:

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

Whether to enable mu indexing.

Type: boolean

Default: false

Example: true

Declared by:

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

Whether to enable mujmap JMAP synchronization for notmuch.

Type: boolean

Default: false

Example: true

Declared by:

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

Warn if Notmuch is not also enabled for this account.

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

Type: boolean

Default: true

Declared by:

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

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

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

Type: TOML value

Default: { }

Declared by:

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

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

Type: boolean

Default: true

Declared by:

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

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

Type: null or string

Default: null

Declared by:

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

Fully qualified domain name of the JMAP service.

mujmap looks up the JMAP SRV record for this host to determine the JMAP session URL. Mutually exclusive with accounts.email.accounts.<name>.mujmap.settings.session_url.

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

Type: null or string

Default: null

Example: "example.com"

Declared by:

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

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

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

Type: null or string or list of string

Default: null

Example: "pass alice@example.com"

Declared by:

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

Session URL to connect to.

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

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

Type: null or string

Default: null

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

Declared by:

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

Tag configuration.

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

Type: TOML value

Default: { }

Declared by:

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

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

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

Type: string

Default: "deleted"

Declared by:

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

Directory separator for mapping notmuch tags to maildirs.

Type: string

Default: "/"

Example: "."

Declared by:

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

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

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

Type: string

Default: "important"

Declared by:

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

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

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

Type: string

Default: "inbox"

Declared by:

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

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

Type: boolean

Default: false

Declared by:

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

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

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

Type: string

Default: "phishing"

Declared by:

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

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

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

Type: string

Default: "sent"

Declared by:

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

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

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

Type: string

Default: "spam"

Declared by:

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

Username for basic HTTP authentication.

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

Type: null or string

Default: null

Example: "alice@example.com"

Declared by:

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

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

Type: string (read only)

Declared by:

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

Whether to enable NeoMutt.

Type: boolean

Default: false

Example: true

Declared by:

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

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

Type: strings concatenated with “\n”

Default: ""

Example: "color status cyan default"

Declared by:

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

List of extra mailboxes

Type: list of (string or (submodule))

Default: [ ]

Declared by:

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

Use a different name as mailbox name

Type: null or string

Default: null

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

Declared by:

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

Whether this account uses maildir folders or IMAP mailboxes

Type: one of “maildir”, “imap”

Default: "maildir"

Example: "imap"

Declared by:

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

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

Type: null or string

Default:

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

Example: "msmtpq --read-envelope-from --read-recipients"

Declared by:

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

Show the default mailbox (INBOX)

Type: boolean

Default: true

Declared by:

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

Whether to enable notmuch indexing.

Type: boolean

Default: false

Example: true

Declared by:

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

Whether to enable Notmuch support in NeoMutt.

Type: boolean

Default: true

Example: true

Declared by:

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

List of virtual mailboxes using Notmuch queries

Type: list of (submodule)

Default:

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

Example:

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

Declared by:

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

Restricts number of messages/threads in the result.

Type: null or signed integer

Default: null

Example: 10

Declared by:

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

Name to display

Type: string

Default: "My INBOX"

Example: "My INBOX"

Declared by:

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

Notmuch query

Type: string

Default: "tag:inbox"

Example: "tag:inbox"

Declared by:

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

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

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

Default: null

Example: "threads"

Declared by:

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

Whether to enable OfflineIMAP.

Type: boolean

Default: false

Example: true

Declared by:

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

Extra configuration options to add to the account section.

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

Default: { }

Example:

{
  autorefresh = 20;
}

Declared by:

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

Extra configuration options to add to the local account section.

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

Default: { }

Example:

{
  sync_deletes = true;
}

Declared by:

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

Extra configuration options to add to the remote account section.

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

Default: { }

Example:

{
  expunge = false;
  maxconnections = 2;
}

Declared by:

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

Command to run after fetching new mails.

Type: strings concatenated with “\n”

Default: ""

Declared by:

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

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

Type: null or string or list of string

Default: null

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

Declared by:

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

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

Type: boolean

Default: false

Declared by:

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

Name displayed when sending mails.

Type: string

Example: "Jane Doe"

Declared by:

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

Signature configuration.

Type: submodule

Default: { }

Declared by:

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

A command that generates a signature.

Type: null or path

Default: null

Example:

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

Declared by:

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

The delimiter used between the document and the signature.

Type: string

Default:

''
  --
''

Example:

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

Declared by:

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

Method to communicate the signature.

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

Default: "none"

Declared by:

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

Signature content.

Type: string

Default: ""

Example:

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

Declared by:

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

The SMTP configuration to use for this account.

Type: null or (submodule)

Default: null

Declared by:

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

Hostname of SMTP server.

Type: string

Example: "smtp.example.org"

Declared by:

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

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

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

Default: null

Example: 465

Declared by:

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

Configuration for secure connections.

Type: submodule

Default: { }

Declared by:

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

Whether to enable TLS/SSL.

Type: boolean

Default: true

Declared by:

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

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

Type: null or path

Default: "config.accounts.email.certificatesFile"

Declared by:

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

Whether to use STARTTLS.

Type: boolean

Default: false

Declared by:

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

Whether to enable the Thunderbird mail client for this account.

Type: boolean

Default: false

Example: true

Declared by:

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

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

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

Default: _: { }

Example:

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

Declared by:

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

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

Type: list of string

Default: [ ]

Example:

[ "profile1" "profile2" ]

Declared by:

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

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

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

Default: _: { }

Example:

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

Declared by:

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

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

Type: null or string

Default: null

Declared by:

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

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

Type: null or path

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

Declared by:

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

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

Type: string

Default: "Maildir"

Declared by:

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

Settings to write to the dconf configuration system.

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

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

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

Default: { }

Example:

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

Declared by:

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

Whether to enable EditorConfig home configuration file.

Type: boolean

Default: false

Example: true

Declared by:

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

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

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

Default: { }

Example:

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

Declared by:

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

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

Type: boolean

Default: false

Declared by:

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

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

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

Type: list of string

Default: [ ]

Declared by:

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

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

Type: list of string

Default: [ ]

Declared by:

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

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

Type: list of string

Default: [ ]

Declared by:

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

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

Type: list of string

Default: [ ]

Declared by:

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

Whether to enable GTK 2/3 configuration.

Type: boolean

Default: false

Example: true

Declared by:

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

The cursor theme to use.

Type: null or (submodule)

Default: null

Declared by:

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

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

Type: null or package

Default: null

Example: pkgs.vanilla-dmz

Declared by:

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

The name of the cursor theme within the package.

Type: string

Example: "Vanilla-DMZ"

Declared by:

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

The size of the cursor.

Type: null or signed integer

Default: null

Example: 16

Declared by:

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

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

Type: null or (submodule)

Default: null

Declared by:

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

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

Type: null or package

Default: null

Example: pkgs.dejavu_fonts

Declared by:

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

The family name of the font within the package.

Type: string

Example: "DejaVu Sans"

Declared by:

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

The size of the font.

Type: null or signed integer or floating point number

Default: null

Example: "8"

Declared by:

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

The location to put the GTK configuration file.

Type: path

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

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

Declared by:

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

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

Type: strings concatenated with “\n”

Default: ""

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

Declared by:

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

Bookmarks in the sidebar of the GTK file browser

Type: list of string

Default: [ ]

Example:

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

Declared by:

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

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

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

Default: { }

Example:

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

Declared by:

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

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

Type: strings concatenated with “\n”

Default: ""

Declared by:

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

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

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

Default: { }

Example:

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

Declared by:

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

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

Type: strings concatenated with “\n”

Default: ""

Declared by:

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

The icon theme to use.

Type: null or (submodule)

Default: null

Declared by:

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

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

Type: null or package

Default: null

Example: pkgs.gnome.adwaita-icon-theme

Declared by:

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

The name of the icon theme within the package.

Type: string

Example: "Adwaita"

Declared by:

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

The GTK+2/3 theme to use.

Type: null or (submodule)

Default: null

Declared by:

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

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

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

Type: null or package

Default: null

Example: pkgs.gnome.gnome-themes-extra

Declared by:

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

The name of the theme within the package.

Type: string

Example: "Adwaita"

Declared by:

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

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

Type: boolean

Default: false

Example: true

Declared by:

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

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

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

Type: boolean

Default: true

Declared by:

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

The set of packages to appear in the user environment.

Type: list of package

Default: [ ]

Declared by:

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

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

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

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

run {command}

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

run --quiet {command}

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

run --silence {command}

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

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

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

Type: DAG of string

Default: { }

Example:

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

Declared by:

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

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

Type: list of string

Default: [ ]

Example:

[
  "doc"
  "info"
  "devdoc"
]

Declared by:

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

Attribute set of files to link into the user home.

Type: attribute set of (submodule)

Default: { }

Declared by:

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

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

Type: boolean

Default: true

Declared by:

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

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

Type: null or boolean

Default: null

Declared by:

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

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

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

Type: strings concatenated with “\n”

Default: ""

Declared by:

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

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

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

Type: boolean

Default: false

Declared by:

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

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

Type: path

Declared by:

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

Path to target file relative to HOME.

Type: string

Default: name

Declared by:

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

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

Type: null or strings concatenated with “\n”

Default: null

Declared by:

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

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

Type: path

Default:

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

Example: "/home/jane.doe"

Declared by:

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

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

Type: null or (submodule)

Default:

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

Declared by:

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

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

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

Type: null or string

Default: null

Declared by:

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

Keyboard model.

Type: null or string

Default: null

Example: "presario"

Declared by:

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

X keyboard options; layout switching goes here.

Type: list of string

Default: [ ]

Example:

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

Declared by:

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

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

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

Type: null or string

Default: null

Example: "colemak"

Declared by:

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

Language configuration.

Type: submodule

Default: { }

Declared by:

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

The language to use for addresses.

Type: null or string

Default: null

Declared by:

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

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

Type: null or string

Default: null

Declared by:

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

The language to use for collation (alphabetical ordering).

Type: null or string

Default: null

Declared by:

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

Character classification category.

Type: null or string

Default: null

Declared by:

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

The language to use for measurement values.

Type: null or string

Default: null

Declared by:

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

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

Type: null or string

Default: null

Declared by:

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

The language to use for formatting currencies and money amounts.

Type: null or string

Default: null

Declared by:

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

The language to use for personal names.

Type: null or string

Default: null

Declared by:

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

The language to use for numerical values.

Type: null or string

Default: null

Declared by:

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

The language to use for paper sizes.

Type: null or string

Default: null

Declared by:

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

The language to use for telephone numbers.

Type: null or string

Default: null

Declared by:

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

The language to use for formatting times.

Type: null or string

Default: null

Declared by:

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

Cursor configuration. Set to null to disable.

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

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

Type: null or (submodule)

Default: null

Declared by:

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

Package providing the cursor theme.

Type: package

Example: pkgs.vanilla-dmz

Declared by:

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

Whether to enable gtk config generation for home.pointerCursor .

Type: boolean

Default: false

Example: true

Declared by:

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

The cursor name within the package.

Type: string

Example: "Vanilla-DMZ"

Declared by:

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

The cursor size.

Type: signed integer

Default: 32

Example: 64

Declared by:

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

Whether to enable x11 config generation for home.pointerCursor .

Type: boolean

Default: false

Example: true

Declared by:

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

The default cursor file to use within the package.

Type: string

Default: "left_ptr"

Example: "X_cursor"

Declared by:

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

Whether to make programs use XDG directories whenever supported.

Type: boolean

Default: false

Example: true

Declared by:

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

The profile directory where Home Manager generations are installed.

Type: path (read only)

Default:

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

Declared by:

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

Extra directories to add to PATH.

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

Type: list of string

Default: [ ]

Example:

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

Declared by:

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

Environment variables to always set at login.

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

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

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

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

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

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

Default: { }

Example:

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

Declared by:

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

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

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

Type: attribute set of string

Default: { }

Example:

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

Declared by:

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

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

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

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

Declared by:

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

The user’s username.

Type: string

Default:

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

Example: "jane.doe"

Declared by:

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

Customized glibcLocales package providing the LOCALE_ARCHIVE_* environment variable.

This option only applies to the Linux platform.

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

Type: path

Default: pkgs.glibcLocales

Example:

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

Declared by:

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

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

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

Currently the following input methods are available in Home Manager:

fcitx5

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

nabi

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

uim

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

hime

An extremely easy-to-use input method framework.

kime

A Korean IME.

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

Default: null

Example: "fcitx5"

Declared by:

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

Enabled Fcitx5 addons.

Type: list of package

Default: [ ]

Example: with pkgs; [ fcitx5-rime ]

Declared by:

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

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

Type: strings concatenated with “\n”

Default: ""

Example:

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

Declared by:

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

Selected UIM toolbar.

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

Default: "gtk"

Example: "gtk-systray"

Declared by:

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

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

Type: boolean

Default: pkgs.stdenv.hostPlatform.isDarwin

Declared by:

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

Define LaunchAgents.

Type: attribute set of (submodule)

Default: { }

Declared by:

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

Whether to enable ‹name›.

Type: boolean

Default: false

Example: true

Declared by:

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

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

Type: attribute set of anything

Default: { }

Example:

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

Declared by:

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

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

Type: null or boolean

Default: null

Declared by:

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

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

Type: null or boolean

Default: null

Declared by:

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

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

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

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

Type: null or boolean

Default: null

Declared by:

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

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

Type: null or boolean

Default: null

Declared by:

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

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

Type: null or boolean

Default: null

Declared by:

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

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

Type: null or (attribute set of string)

Default: null

Declared by:

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

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

Type: null or signed integer

Default: null

Declared by:

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

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

Type: null or string

Default: null

Declared by:

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

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

Type: null or (submodule)

Default: null

Example:

{
  NumberOfFiles = 4096;
}

Declared by:

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

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

Type: null or signed integer

Default: null

Declared by:

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

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

Type: null or signed integer

Default: null

Declared by:

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

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

Type: null or signed integer

Default: null

Declared by:

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

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

Type: null or signed integer

Default: null

Declared by:

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

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

Type: null or signed integer

Default: null

Declared by:

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

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

Type: null or signed integer

Default: null

Declared by:

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

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

Type: null or signed integer

Default: null

Declared by:

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

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

Type: null or signed integer

Default: null

Declared by:

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

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

Type: null or signed integer

Default: null

Declared by:

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

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

Type: null or boolean

Default: null

Declared by:

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

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

Type: null or boolean or (submodule)

Default: null

Declared by:

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

This required key uniquely identifies the job to launchd.

Type: string

Declared by:

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

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

Type: null or (attribute set)

Default: null

Example:

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

Declared by:

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

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

Type: null or boolean

Default: null

Declared by:

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

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

Type: null or (list of string)

Default: null

Declared by:

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

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

Type: null or (list of string)

Default: null

Declared by:

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

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

Type: null or string

Default: null

Declared by:

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

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

Type: null or boolean

Default: null

Declared by:

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

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

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

Type: null or (submodule)

Default: null

Example:

{
  ResetAtClose = true;
}

Declared by:

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

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

Type: null or boolean

Default: null

Declared by:

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

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

Type: null or boolean

Default: null

Declared by:

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

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

Type: null or signed integer

Default: null

Declared by:

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

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

Type: null or boolean

Default: null

Declared by:

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

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

Background

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

Standard

Standard jobs are equivalent to no ProcessType being set.

Adaptive

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

Interactive

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

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

Default: null

Example: "Background"

Declared by:

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

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

Type: null or path

Default: null

Declared by:

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

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

Type: null or (list of string)

Default: null

Declared by:

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

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

Type: null or (list of string)

Default: null

Declared by:

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

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

Type: null or string

Default: null

Declared by:

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

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

Type: null or boolean

Default: null

Declared by:

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

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

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

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

Default: null

Declared by:

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

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

Type: null or boolean or list of string

Default: null

Declared by:

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

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

Type: null or string

Default: null

Declared by:

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

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

Type: null or string

Default: null

Declared by:

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

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

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

Default: null

Declared by:

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

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

Type: null or string

Default: null

Declared by:

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

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

Type: null or boolean

Default: null

Declared by:

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

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

Type: null or signed integer

Default: null

Declared by:

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

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

Type: null or path

Default: null

Declared by:

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

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

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

Default: null

Declared by:

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

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

Type: null or string

Default: null

Declared by:

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

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

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

Default: null

Declared by:

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

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

Type: null or (submodule)

Default: null

Declared by:

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

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

Type: null or signed integer

Default: null

Declared by:

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

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

Type: null or signed integer

Default: null

Declared by:

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

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

Type: null or signed integer

Default: null

Declared by:

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

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

Type: null or signed integer

Default: null

Declared by:

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

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

Type: null or signed integer

Default: null

Declared by:

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

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

Type: null or signed integer

Default: null

Declared by:

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

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

Type: null or signed integer

Default: null

Declared by:

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

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

Type: null or signed integer

Default: null

Declared by:

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

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

Type: null or signed integer

Default: null

Declared by:

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

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

Type: null or path

Default: null

Declared by:

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

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

Type: null or path

Default: null

Declared by:

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

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

Type: null or path

Default: null

Declared by:

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

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

Type: null or (list of (submodule))

Default: null

Example:

{
  Hour = 2;
  Minute = 30;
}

Declared by:

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

The day on which this job will be run.

Type: null or signed integer

Default: null

Declared by:

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

The hour on which this job will be run.

Type: null or signed integer

Default: null

Declared by:

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

The minute on which this job will be run.

Type: null or signed integer

Default: null

Declared by:

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

The month on which this job will be run.

Type: null or signed integer

Default: null

Declared by:

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

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

Type: null or signed integer

Default: null

Declared by:

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

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

Type: null or signed integer

Default: null

Declared by:

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

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

Type: null or boolean

Default: null

Declared by:

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

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

Type: null or signed integer

Default: null

Declared by:

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

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

Type: null or signed integer

Default: null

Declared by:

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

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

Type: null or signed integer

Default: null

Declared by:

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

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

Type: null or string

Default: null

Declared by:

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

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

Type: null or boolean

Default: null

Declared by:

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

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

Type: null or (list of path)

Default: null

Declared by:

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

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

Type: null or string

Default: null

Declared by:

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

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

Type: null or (submodule)

Default: null

Example:

{
  Wait = true;
}

Declared by:

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

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

Type: null or boolean or string

Default: null

Declared by:

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

This option allows modules to define helper functions, constants, etc.

Type: attribute set of (attribute set)

Default: { }

Declared by:

<home-manager/modules/misc/lib.nix>
manual.html.enable

Whether to install the HTML manual. This also installs the home-manager-help tool, which opens a local copy of the Home Manager manual in the system web browser.

Type: boolean

Default: false

Declared by:

<home-manager/modules/manual.nix>
manual.json.enable

Whether to install a JSON formatted list of all Home Manager options. This can be located at <profile directory>/share/doc/home-manager/options.json, and may be used for navigating definitions, auto-completing, and other miscellaneous tasks.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/manual.nix>
manual.manpages.enable

Whether to install the configuration manual page. The manual can be reached by man home-configuration.nix.

When looking at the manual page pretend that all references to NixOS stuff are actually references to Home Manager stuff. Thanks!

Type: boolean

Default: true

Example: false

Declared by:

<home-manager/modules/manual.nix>
news.display

How unread and relevant news should be presented when running home-manager build and home-manager switch.

The options are

silent

Do not print anything during build or switch. The home-manager news command still works for viewing the entries.

notify

The number of unread and relevant news entries will be printed to standard output. The home-manager news command can later be used to view the entries.

show

A pager showing unread news entries is opened.

Type: one of “silent”, “notify”, “show”

Default: "notify"

Declared by:

<home-manager/modules/misc/news.nix>
nix.package

The Nix package that the configuration should be generated for.

Type: null or package

Default: null

Example: pkgs.nix

Declared by:

<home-manager/modules/misc/nix.nix>
nix.channels

A declarative alternative to Nix channels. Whereas with stock channels, you would register URLs and fetch them into the Nix store with nix-channel(1), this option allows you to register the store path directly. One particularly useful example is registering flake inputs as channels.

This option can coexist with stock Nix channels. If the same channel is defined in both, this option takes precedence.

Type: attribute set of package

Default: { }

Example: { inherit nixpkgs; }

Declared by:

<home-manager/modules/misc/nix.nix>
nix.checkConfig

If enabled (the default), checks for data type mismatches and that Nix can parse the generated nix.conf.

Type: boolean

Default: true

Declared by:

<home-manager/modules/misc/nix.nix>
nix.extraOptions

Additional text appended to nix.conf.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  keep-outputs = true
  keep-derivations = true
''

Declared by:

<home-manager/modules/misc/nix.nix>
nix.gc.automatic

Automatically run the garbage collector at a specific time.

Note: This will only garbage collect the current user’s profiles.

Type: boolean

Default: false

Declared by:

<home-manager/modules/services/nix-gc.nix>
nix.gc.frequency

When to run the Nix garbage collector.

On Linux this is a string as defined by systemd.time(7).

On Darwin it must be one of: hourly daily weekly monthly semiannually annually, which are implemented as defined in the manual page above.

Type: string

Default: "weekly"

Example: "03:15"

Declared by:

<home-manager/modules/services/nix-gc.nix>
nix.gc.options

Options given to nix-collect-garbage when the garbage collector is run automatically.

Type: null or string

Default: null

Example: "--max-freed $((64 * 1024**3))"

Declared by:

<home-manager/modules/services/nix-gc.nix>
nix.gc.persistent

If true, the time when the service unit was last triggered is stored on disk. When the timer is activated, the service unit is triggered immediately if it would have been triggered at least once during the time when the timer was inactive.

Type: boolean

Default: true

Example: false

Declared by:

<home-manager/modules/services/nix-gc.nix>
nix.gc.randomizedDelaySec

Add a randomized delay before each garbage collection. The delay will be chosen between zero and this value. This value must be a time span in the format specified by systemd.time(7)

Type: (optionally newline-terminated) single-line string

Default: "0"

Example: "45min"

Declared by:

<home-manager/modules/services/nix-gc.nix>
nix.keepOldNixPath

Whether nix.nixPath should keep the previously set values in NIX_PATH.

Type: boolean

Default: true

Example: false

Declared by:

<home-manager/modules/misc/nix.nix>
nix.nixPath

Adds new directories to the Nix expression search path.

Used by Nix when looking up paths in angular brackets (e.g. <nixpkgs>).

Type: list of string

Default: [ ]

Example:

[
  "$HOME/.nix-defexpr/channels"
  "darwin-config=$HOME/.config/nixpkgs/darwin-configuration.nix"
]

Declared by:

<home-manager/modules/misc/nix.nix>
nix.registry

User level flake registry.

Type: attribute set of (submodule)

Default: { }

Declared by:

<home-manager/modules/misc/nix.nix>
nix.registry.<name>.exact

Whether the from reference needs to match exactly. If set, a from reference like nixpkgs does not match with a reference like nixpkgs/nixos-20.03.

Type: boolean

Default: true

Declared by:

<home-manager/modules/misc/nix.nix>
nix.registry.<name>.flake

The flake input to which from> is to be rewritten.

Type: null or (attribute set)

Default: null

Example: nixpkgs

Declared by:

<home-manager/modules/misc/nix.nix>
nix.registry.<name>.from

The flake reference to be rewritten.

Type: attribute set of (string or signed integer or boolean or package)

Example:

{
  id = "nixpkgs";
  type = "indirect";
}

Declared by:

<home-manager/modules/misc/nix.nix>
nix.registry.<name>.to

The flake reference to which from> is to be rewritten.

Type: attribute set of (string or signed integer or boolean or package)

Example:

{
  owner = "my-org";
  repo = "my-nixpkgs";
  type = "github";
}

Declared by:

<home-manager/modules/misc/nix.nix>
nix.settings

Configuration for Nix; see nix.conf(5) for available options. The value declared here will be translated directly to the key-value pairs Nix expects.

Configuration specified in nix.extraOptions will be appended verbatim to the resulting config file.

Type: attribute set of (Nix config atom (null, bool, int, float, str, path or package) or list of (Nix config atom (null, bool, int, float, str, path or package)))

Default: { }

Example:

{
  use-sandbox = true;
  show-trace = true;
  system-features = [ "big-parallel" "kvm" "recursive-nix" ];
}

Declared by:

<home-manager/modules/misc/nix.nix>
nixGL.packages

The nixGL package set containing GPU library wrappers. This can be used to provide OpenGL and Vulkan access to applications on non-NixOS systems by using (config.lib.nixGL.wrap <package>) for the default wrapper, or (config.lib.nixGL.wrappers.<wrapper> <package>) for any available wrapper.

The wrapper functions are always available. If this option is empty (the default), they are a no-op. This is useful on NixOS where the wrappers are unnecessary.

Note that using any Nvidia wrapper requires building the configuration with the --impure option.

Type: null or (attribute set)

Default: null

Example: inputs.nixGL.packages

Declared by:

<home-manager/modules/misc/nixgl.nix>
nixGL.defaultWrapper

The package wrapper function available for use as (config.lib.nixGL.wrap <package>). Intended to start programs on the main GPU.

Wrapper functions can be found under config.lib.nixGL.wrappers. They can be used directly, however, setting this option provides a convenient shorthand.

The following wrappers are available:

  • mesa

  • mesaPrime

  • nvidia

  • nvidiaPrime

Type: one of “mesa”, “mesaPrime”, “nvidia”, “nvidiaPrime”

Default: "mesa"

Declared by:

<home-manager/modules/misc/nixgl.nix>
nixGL.installScripts

For each wrapper wrp named in the provided list, a wrapper script named nixGLWrp is installed into the environment. These scripts are useful for running programs not installed via Home Manager.

The following wrappers are available:

  • mesa

  • mesaPrime

  • nvidia

  • nvidiaPrime

Type: null or (list of (one of “mesa”, “mesaPrime”, “nvidia”, “nvidiaPrime”))

Default: null

Example:

[
  "mesa"
  "mesaPrime"
]

Declared by:

<home-manager/modules/misc/nixgl.nix>
nixGL.offloadWrapper

The package wrapper function available for use as (config.lib.nixGL.wrapOffload <package>). Intended to start programs on the secondary GPU.

Wrapper functions can be found under config.lib.nixGL.wrappers. They can be used directly, however, setting this option provides a convenient shorthand.

The following wrappers are available:

  • mesa

  • mesaPrime

  • nvidia

  • nvidiaPrime

Type: one of “mesa”, “mesaPrime”, “nvidia”, “nvidiaPrime”

Default: "mesaPrime"

Declared by:

<home-manager/modules/misc/nixgl.nix>
nixGL.prime.card

Selects the non-default graphics card used for PRIME render offloading. The value can be:

  • a number, selecting the n-th non-default GPU;

  • a PCI bus id in the form pci-XXX_YY_ZZ_U;

  • a PCI id in the form vendor_id:device_id

For more information, consult the Mesa documentation on the DRI_PRIME environment variable.

Type: string

Default: "1"

Example: "pci-0000_06_00_0"

Declared by:

<home-manager/modules/misc/nixgl.nix>
nixGL.prime.installScript

If this option is set, the wrapper script prime-offload is installed into the environment. It allows starting programs on the secondary GPU selected by the nixGL.prime.card option. This makes sense when the program is not already using one of nixGL PRIME wrappers, or for programs not installed from Nixpkgs.

This option can be set to either “mesa” or “nvidia”, making the script use one or the other graphics library.

Type: null or one of “mesa”, “nvidia”

Default: null

Example: "mesa"

Declared by:

<home-manager/modules/misc/nixgl.nix>
nixGL.prime.nvidiaProvider

If this option is set, it overrides the offload provider for Nvidia PRIME offloading. Consult the proprietary Nvidia driver documentation on the __NV_PRIME_RENDER_OFFLOAD_PROVIDER environment variable.

Type: null or string

Default: null

Example: "NVIDIA-G0"

Declared by:

<home-manager/modules/misc/nixgl.nix>
nixGL.vulkan.enable

Whether to enable Vulkan in nixGL wrappers.

This is disabled by default bacause Vulkan brings in several libraries that can cause symbol version conflicts in wrapped programs. Your mileage may vary.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/misc/nixgl.nix>
nixpkgs.config

The configuration of the Nix Packages collection. (For details, see the Nixpkgs documentation.) It allows you to set package configuration options.

If null, then configuration is taken from the fallback location, for example, ~/.config/nixpkgs/config.nix.

Note, this option will not apply outside your Home Manager configuration like when installing manually through nix-env. If you want to apply it both inside and outside Home Manager you can put it in a separate file and include something like

  nixpkgs.config = import ./nixpkgs-config.nix;
  xdg.configFile."nixpkgs/config.nix".source = ./nixpkgs-config.nix;

in your Home Manager configuration.

Type: null or (nixpkgs config)

Default: null

Example:

{
  allowBroken = true;
}

Declared by:

<home-manager/modules/misc/nixpkgs.nix>
nixpkgs.overlays

List of overlays to use with the Nix Packages collection. (For details, see the Nixpkgs documentation.) It allows you to override packages globally. This is a function that takes as an argument the original Nixpkgs. The first argument should be used for finding dependencies, and the second should be used for overriding recipes.

If null, then the overlays are taken from the fallback location, for example, ~/.config/nixpkgs/overlays.

Like nixpkgs.config this option only applies within the Home Manager configuration. See nixpkgs.config for a suggested setup that works both internally and externally.

Type: null or (list of (nixpkgs overlay))

Default: null

Example:

[
  (final: prev: {
    openssh = prev.openssh.override {
      hpnSupport = true;
      withKerberos = true;
      kerberos = final.libkrb5;
    };
  })
]

Declared by:

<home-manager/modules/misc/nixpkgs.nix>
pam.sessionVariables

Environment variables that will be set for the PAM session. The variable values must be as described in pam_env.conf(5).

Note, this option will become deprecated in the future and its use is therefore discouraged.

Type: attribute set

Default: { }

Example:

{
  EDITOR = "vim";
}

Declared by:

<home-manager/modules/misc/pam.nix>
pam.yubico.authorizedYubiKeys.ids

List of authorized YubiKey token IDs. Refer to https://developers.yubico.com/yubico-pam for details on how to obtain the token ID of a YubiKey.

Type: list of string of length 12

Default: [ ]

Declared by:

<home-manager/modules/misc/pam.nix>
pam.yubico.authorizedYubiKeys.path

File path to write the authorized YubiKeys, relative to HOME.

Type: string

Default: ".yubico/authorized_yubikeys"

Declared by:

<home-manager/modules/misc/pam.nix>
programs.abook.enable

Whether to enable Abook.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/abook.nix>
programs.abook.extraConfig

Extra lines added to $HOME/.config/abook/abookrc. Available configuration options are described in the abook repository: https://sourceforge.net/p/abook/git/ci/master/tree/sample.abookrc.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  field pager = Pager
  view CONTACT = name, email
  set autosave=true
''

Declared by:

<home-manager/modules/programs/abook.nix>
programs.aerc.enable

Whether to enable aerc.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/aerc.nix>
programs.aerc.package

The aerc package to use.

Type: package

Default: pkgs.aerc

Declared by:

<home-manager/modules/programs/aerc.nix>
programs.aerc.extraAccounts

Extra lines added to $HOME/.config/aerc/accounts.conf.

See aerc-config(5).

Type: strings concatenated with “\n” or attribute set of attribute set of (values (null, bool, int, string, or float) or a list of values, that will be joined with a comma)

Default: { }

Example: { Work = { source = "maildir://~/Maildir/work"; }; }

Declared by:

<home-manager/modules/programs/aerc.nix>
programs.aerc.extraBinds

Extra lines added to $HOME/.config/aerc/binds.conf. Global keybindings can be set in the global section.

See aerc-config(5).

Type: strings concatenated with “\n” or attribute set of attribute set of (values (null, bool, int, string, or float) or a list of values, that will be joined with a comma)

Default: { }

Example: { messages = { q = ":quit<Enter>"; }; }

Declared by:

<home-manager/modules/programs/aerc.nix>
programs.aerc.extraConfig

Extra lines added to $HOME/.config/aerc/aerc.conf.

See aerc-config(5).

Type: strings concatenated with “\n” or attribute set of attribute set of (values (null, bool, int, string, or float) or a list of values, that will be joined with a comma)

Default: { }

Example: { ui = { sort = "-r date"; }; }

Declared by:

<home-manager/modules/programs/aerc.nix>
programs.aerc.stylesets

Stylesets added to $HOME/.config/aerc/stylesets/.

See aerc-stylesets(7).

Type: attribute set of ((attribute set of (values (null, bool, int, string, or float) or a list of values, that will be joined with a comma)) or strings concatenated with “\n”)

Default: { }

Example:

{ default = { ui = { "tab.selected.reverse" = toggle; }; }; };

Declared by:

<home-manager/modules/programs/aerc.nix>
programs.aerc.templates

Templates added to $HOME/.config/aerc/templates/.

See aerc-templates(7).

Type: attribute set of strings concatenated with “\n”

Default: { }

Example:

{ new_message = "Hello!"; };

Declared by:

<home-manager/modules/programs/aerc.nix>
programs.afew.enable

Whether to enable the afew initial tagging script for Notmuch.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/afew.nix>
programs.afew.extraConfig

Extra lines added to afew configuration file. Available configuration options are described in the afew manual: https://afew.readthedocs.io/en/latest/configuration.html.

Type: strings concatenated with “\n”

Default:

''
  [SpamFilter]
  [KillThreadsFilter]
  [ListMailsFilter]
  [ArchiveSentMailsFilter]
  [InboxFilter]
''

Example:

''
  [SpamFilter]
  
  [Filter.0]
  query = from:pointyheaded@boss.com
  tags = -new;+boss
  message = Message from above
  
  [InboxFilter]
''

Declared by:

<home-manager/modules/programs/afew.nix>
programs.alacritty.enable

Whether to enable Alacritty.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/alacritty.nix>
programs.alacritty.package

The Alacritty package to install.

Type: package

Default: pkgs.alacritty

Declared by:

<home-manager/modules/programs/alacritty.nix>
programs.alacritty.settings

Configuration written to $XDG_CONFIG_HOME/alacritty/alacritty.yml or $XDG_CONFIG_HOME/alacritty/alacritty.toml (the latter being used for alacritty 0.13 and later). See https://github.com/alacritty/alacritty/tree/master#configuration for more info.

Type: TOML value

Default: { }

Example:

{
  window.dimensions = {
    lines = 3;
    columns = 200;
  };
  keyboard.bindings = [
    {
      key = "K";
      mods = "Control";
      chars = "\\u000c";
    }
  ];
}

Declared by:

<home-manager/modules/programs/alacritty.nix>
programs.alot.enable

Whether to enable the Alot mail user agent. Alot uses the Notmuch email system and will therefore be automatically enabled for each email account that is managed by Notmuch.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.bindings

Keybindings.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.bindings.bufferlist

Bufferlist mode keybindings.

Type: attribute set of string

Default: { }

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.bindings.envelope

Envelope mode keybindings.

Type: attribute set of string

Default: { }

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.bindings.global

Global keybindings.

Type: attribute set of string

Default: { }

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.bindings.search

Search mode keybindings.

Type: attribute set of string

Default: { }

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.bindings.taglist

Taglist mode keybindings.

Type: attribute set of string

Default: { }

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.bindings.thread

Thread mode keybindings.

Type: attribute set of string

Default: { }

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.extraConfig

Extra lines added to alot configuration file.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.hooks

Content of the hooks file.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.settings

Configuration options added to alot configuration file.

Type: attribute set of (string or signed integer or boolean or floating point number)

Default:

{
  auto_remove_unread = true;
  handle_mouse = true;
  initial_command = "search tag:inbox AND NOT tag:killed";
  prefer_plaintext = true;
}

Example:

{
  auto_remove_unread = true;
  ask_subject = false;
  thread_indent_replies = 2;
}

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.tags

How to display the tags.

Type: attribute set of (submodule)

Default: { }

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.tags.<name>.focus

How to display the tag when focused.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.tags.<name>.normal

How to display the tag when unfocused. See https://alot.readthedocs.io/en/latest/configuration/theming.html#tagstring-formatting.

Type: null or string

Default: null

Example: "'','', 'white','light red', 'white','#d66'"

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.tags.<name>.translated

Fixed string representation for this tag. The tag can be hidden from view, if the key translated is set to "", the empty string.

Type: null or string

Declared by:

<home-manager/modules/programs/alot.nix>
programs.alot.tags.<name>.translation

A pair of strings that define a regular substitution to compute the string representation on the fly using re.sub.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/alot.nix>
programs.aria2.enable

Whether to enable aria2.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/aria2.nix>
programs.aria2.extraConfig

Extra lines added to aria2.conf file.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/aria2.nix>
programs.aria2.settings

Options to add to aria2.conf file. See aria2c(1) for options.

Type: attribute set of (boolean or floating point number or signed integer or string)

Default: { }

Example:

{
  listen-port = 60000;
  dht-listen-port = 60000;
  seed-ratio = 1.0;
  max-upload-limit = "50K";
  ftp-pasv = true;
}

Declared by:

<home-manager/modules/programs/aria2.nix>
programs.astroid.enable

Whether to enable Astroid.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/astroid.nix>
programs.astroid.externalEditor

You can use the following variables:

%1

file name

%2

server name

%3

socket ID

See Customizing editor on the Astroid wiki.

Type: null or string

Default: null

Example: "nvim-qt -- -c 'set ft=mail' '+set fileencoding=utf-8' '+set ff=unix' '+set enc=utf-8' '+set fo+=w' %1"

Declared by:

<home-manager/modules/programs/astroid.nix>
programs.astroid.extraConfig

JSON config that will override the default Astroid configuration.

Type: JSON value

Default: { }

Example:

{
  poll.interval = 0;
}

Declared by:

<home-manager/modules/programs/astroid.nix>
programs.astroid.pollScript

Script to run to fetch/update mails.

Type: string

Default: ""

Example: "mbsync gmail"

Declared by:

<home-manager/modules/programs/astroid.nix>
programs.atuin.enable

Whether to enable atuin.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/atuin.nix>
programs.atuin.enableBashIntegration

Whether to enable Atuin’s Bash integration. This will bind ctrl-r to open the Atuin history.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/atuin.nix>
programs.atuin.enableFishIntegration

Whether to enable Atuin’s Fish integration.

If enabled, this will bind the up-arrow key to open the Atuin history.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/atuin.nix>
programs.atuin.enableNushellIntegration

Whether to enable Nushell integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/atuin.nix>
programs.atuin.enableZshIntegration

Whether to enable Atuin’s Zsh integration.

If enabled, this will bind ctrl-r and the up-arrow key to open the Atuin history.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/atuin.nix>
programs.atuin.package

The package to use for atuin.

Type: package

Default: pkgs.atuin

Declared by:

<home-manager/modules/programs/atuin.nix>
programs.atuin.flags

Flags to append to the shell hook.

Type: list of string

Default: [ ]

Example:

[
  "--disable-up-arrow"
  "--disable-ctrl-r"
]

Declared by:

<home-manager/modules/programs/atuin.nix>
programs.atuin.settings

Configuration written to $XDG_CONFIG_HOME/atuin/config.toml.

See https://atuin.sh/docs/config/ for the full list of options.

Type: Atuin configuration

Default: { }

Example:

{
  auto_sync = true;
  sync_frequency = "5m";
  sync_address = "https://api.atuin.sh";
  search_mode = "prefix";
}

Declared by:

<home-manager/modules/programs/atuin.nix>
programs.autojump.enable

Whether to enable autojump.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/autojump.nix>
programs.autojump.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/autojump.nix>
programs.autojump.enableFishIntegration

Whether to enable Fish integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/autojump.nix>
programs.autojump.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/autojump.nix>
programs.autorandr.enable

Whether to enable Autorandr.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.hooks

Global hook scripts

Type: submodule

Default: { }

Example:

{
  postswitch = {
    "notify-i3" = "${pkgs.i3}/bin/i3-msg restart";
    "change-background" = readFile ./change-background.sh;
    "change-dpi" = ''
      case "$AUTORANDR_CURRENT_PROFILE" in
        default)
          DPI=120
          ;;
        home)
          DPI=192
          ;;
        work)
          DPI=144
          ;;
        *)
          echo "Unknown profile: $AUTORANDR_CURRENT_PROFILE"
          exit 1
      esac

      echo "Xft.dpi: $DPI" | ${pkgs.xorg.xrdb}/bin/xrdb -merge
    ''
  };
}

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.hooks.postswitch

Postswitch hook executed after mode switch.

Type: attribute set of strings concatenated with “\n”

Default: { }

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.hooks.predetect

Predetect hook executed before autorandr attempts to run xrandr.

Type: attribute set of strings concatenated with “\n”

Default: { }

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.hooks.preswitch

Preswitch hook executed before mode switch.

Type: attribute set of strings concatenated with “\n”

Default: { }

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles

Autorandr profiles specification.

Type: attribute set of (submodule)

Default: { }

Example:

{
  "work" = {
    fingerprint = {
      eDP1 = "<EDID>";
      DP1 = "<EDID>";
    };
    config = {
      eDP1.enable = false;
      DP1 = {
        enable = true;
        crtc = 0;
        primary = true;
        position = "0x0";
        mode = "3840x2160";
        gamma = "1.0:0.909:0.833";
        rate = "60.00";
        rotate = "left";
      };
    };
    hooks.postswitch = readFile ./work-postswitch.sh;
  };
}

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config

Per output profile configuration.

Type: attribute set of (submodule)

Default: { }

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.enable

Whether to enable the output.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.crtc

Output video display controller.

Type: null or (unsigned integer, meaning >=0)

Default: null

Example: 0

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.dpi

Output DPI configuration.

Type: null or (positive integer, meaning >0)

Default: null

Example: 96

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.extraConfig

Extra lines to append to this profile’s config.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  x-prop-non_desktop 0
  some-key some-value
''

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.filter

Interpolation method to be used for scaling the output.

Type: null or one of “bilinear”, “nearest”

Default: null

Example: "nearest"

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.gamma

Output gamma configuration.

Type: string

Default: ""

Example: "1.0:0.909:0.833"

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.mode

Output resolution.

Type: string

Default: ""

Example: "3840x2160"

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.position

Output position

Type: string

Default: ""

Example: "5760x0"

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.primary

Whether output should be marked as primary

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.rate

Output framerate.

Type: string

Default: ""

Example: "60.00"

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.rotate

Output rotate configuration.

Type: null or one of “normal”, “left”, “right”, “inverted”

Default: null

Example: "left"

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.scale

Output scale configuration.

Either configure by pixels or a scaling factor. When using pixel method the xrandr(1) option --scale-from will be used; when using factor method the option --scale will be used.

This option is a shortcut version of the transform option and they are mutually exclusive.

Type: null or (submodule)

Default: null

Example:

{
  x = 1.25;
  y = 1.25;
}

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.scale.method

Output scaling method.

Type: one of “factor”, “pixel”

Default: "factor"

Example: "pixel"

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.scale.x

Horizontal scaling factor/pixels.

Type: floating point number or (positive integer, meaning >0)

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.scale.y

Vertical scaling factor/pixels.

Type: floating point number or (positive integer, meaning >0)

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.config.<name>.transform

Refer to xrandr(1) for the documentation of the transform matrix.

Type: null or (3×3 matrix of floating point numbers)

Default: null

Example:

[
  [ 0.6 0.0 0.0 ]
  [ 0.0 0.6 0.0 ]
  [ 0.0 0.0 1.0 ]
]

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.fingerprint

Output name to EDID mapping. Use autorandr --fingerprint to get current setup values.

Type: attribute set of string

Default: { }

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.hooks

Profile hook scripts.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.hooks.postswitch

Postswitch hook executed after mode switch.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.hooks.predetect

Predetect hook executed before autorandr attempts to run xrandr.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.autorandr.profiles.<name>.hooks.preswitch

Preswitch hook executed before mode switch.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/autorandr.nix>
programs.awscli.enable

Whether to enable AWS CLI tool.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/awscli.nix>
programs.awscli.package

Package providing aws.

Type: package

Default: pkgs.awscli2

Declared by:

<home-manager/modules/programs/awscli.nix>
programs.awscli.credentials

Configuration written to $HOME/.aws/credentials.

For security reasons, never store cleartext passwords here. We recommend that you use credential_process option to retrieve the IAM credentials from your favorite password manager during runtime, or use AWS IAM Identity Center to get short-term credentials.

See https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-authentication.html.

Type: attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))

Default: { }

Example:

{
  "default" = {
    "credential_process" = "${pkgs.pass}/bin/pass show aws";
  };
};

Declared by:

<home-manager/modules/programs/awscli.nix>
programs.awscli.settings

Configuration written to $HOME/.aws/config.

Type: attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))

Default: { }

Example:

{
  "default" = {
    region = "eu-west-3";
    output = "json";
  };
};

Declared by:

<home-manager/modules/programs/awscli.nix>
programs.bacon.enable

Whether to enable bacon, a background rust code checker.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/bacon.nix>
programs.bacon.package

The bacon package to use.

Type: package

Default: pkgs.bacon

Declared by:

<home-manager/modules/programs/bacon.nix>
programs.bacon.settings

Bacon configuration. For available settings see https://dystroy.org/bacon/#global-preferences.

Type: TOML value

Default: { }

Example:

{
  jobs = {
    default = {
      command = [
        "cargo"
        "build"
        "--all-features"
        "--color"
        "always"
      ];
      need_stdout = true;
    };
  };
}

Declared by:

<home-manager/modules/programs/bacon.nix>
programs.bash.enable

Whether to enable GNU Bourne-Again SHell.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.enableCompletion

Whether to enable Bash completion for all interactive Bash shells.

Note, if you use NixOS or nix-darwin and do not have Bash completion enabled in the system configuration, then make sure to add

  environment.pathsToLink = [ "/share/bash-completion" ];

to your system configuration to get completion for system packages. Note, the legacy /etc/bash_completion.d path is not supported by Home Manager.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.enableVteIntegration

Whether to enable integration with terminals using the VTE library. This will let the terminal track the current working directory.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/misc/vte.nix>
programs.bash.package

The bash package to use.

Type: package

Default: pkgs.bashInteractive

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.bashrcExtra

Extra commands that should be placed in ~/.bashrc. Note that these commands will be run even in non-interactive shells.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.historyControl

Controlling how commands are saved on the history list.

Type: list of (one of “erasedups”, “ignoredups”, “ignorespace”, “ignoreboth”)

Default: [ ]

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.historyFile

Location of the bash history file.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.historyFileSize

Number of history lines to keep on file.

Type: signed integer

Default: 100000

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.historyIgnore

List of commands that should not be saved to the history list.

Type: list of string

Default: [ ]

Example:

[
  "ls"
  "cd"
  "exit"
]

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.historySize

Number of history lines to keep in memory.

Type: signed integer

Default: 10000

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.initExtra

Extra commands that should be run when initializing an interactive shell.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.logoutExtra

Extra commands that should be run when logging out of an interactive shell.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.profileExtra

Extra commands that should be run when initializing a login shell.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.sessionVariables

Environment variables that will be set for the Bash session.

Type: attribute set

Default: { }

Example:

{
  MAILCHECK = 30;
}

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.shellAliases

An attribute set that maps aliases (the top level attribute names in this option) to command strings or directly to build outputs.

Type: attribute set of string

Default: { }

Example:

{
  ll = "ls -l";
  ".." = "cd ..";
}

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bash.shellOptions

Shell options to set. Prefix an option with “-” to unset.

Type: list of string

Default:

[
  "histappend"
  "checkwinsize"
  "extglob"
  "globstar"
  "checkjobs"
]

Example:

[
  "extglob"
  "-cdspell"
]

Declared by:

<home-manager/modules/programs/bash.nix>
programs.bashmount.enable

Whether to enable bashmount.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/bashmount.nix>
programs.bashmount.extraConfig

Configuration written to $XDG_CONFIG_HOME/bashmount/config. Look at https://github.com/jamielinux/bashmount/blob/master/bashmount.conf for explanation about possible values.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/bashmount.nix>
programs.bat.enable

Whether to enable bat, a cat clone with wings.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/bat.nix>
programs.bat.package

The bat package to use.

Type: package

Default: pkgs.bat

Declared by:

<home-manager/modules/programs/bat.nix>
programs.bat.config

Bat configuration.

Type: attribute set of (string or list of string or boolean)

Default: { }

Example:

{
  map-syntax = [
    "*.jenkinsfile:Groovy"
    "*.props:Java Properties"
  ];
  pager = "less -FR";
  theme = "TwoDark";
}

Declared by:

<home-manager/modules/programs/bat.nix>
programs.bat.extraPackages

Additional bat packages to install.

Type: list of package

Default: [ ]

Example: with pkgs.bat-extras; [ batdiff batman batgrep batwatch ];

Declared by:

<home-manager/modules/programs/bat.nix>
programs.bat.syntaxes

Additional syntaxes to provide.

Type: attribute set of (strings concatenated with “\n” or (submodule))

Default: { }

Example:

{
  gleam = {
    src = pkgs.fetchFromGitHub {
      owner = "molnarmark";
      repo = "sublime-gleam";
      rev = "2e761cdb1a87539d827987f997a20a35efd68aa9";
      hash = "sha256-Zj2DKTcO1t9g18qsNKtpHKElbRSc9nBRE2QBzRn9+qs=";
    };
    file = "syntax/gleam.sublime-syntax";
  };
}

Declared by:

<home-manager/modules/programs/bat.nix>
programs.bat.themes

Additional themes to provide.

Type: attribute set of (strings concatenated with “\n” or (submodule))

Default: { }

Example:

{
  dracula = {
    src = pkgs.fetchFromGitHub {
      owner = "dracula";
      repo = "sublime"; # Bat uses sublime syntax for its themes
      rev = "26c57ec282abcaa76e57e055f38432bd827ac34e";
      sha256 = "019hfl4zbn4vm4154hh3bwk6hm7bdxbr1hdww83nabxwjn99ndhv";
    };
    file = "Dracula.tmTheme";
  };
}

Declared by:

<home-manager/modules/programs/bat.nix>
programs.beets.enable

Whether to enable the beets music library manager. This defaults to false for state version ≥ 19.03. For earlier versions beets is enabled if programs.beets.settings is non-empty.

Type: boolean

Default: "false"

Declared by:

<home-manager/modules/programs/beets.nix>
programs.beets.package

The beets package to use. Can be used to specify extensions.

Type: package

Default: pkgs.beets

Example: (pkgs.beets.override { pluginOverrides = { beatport.enable = false; }; })

Declared by:

<home-manager/modules/programs/beets.nix>
programs.beets.mpdIntegration.enableStats

Whether to enable mpdstats plugin and service.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/beets.nix>
programs.beets.mpdIntegration.enableUpdate

Whether to enable mpdupdate plugin.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/beets.nix>
programs.beets.mpdIntegration.host

The host that mpdstats will connect to.

Type: string

Default: "localhost"

Example: "10.0.0.42"

Declared by:

<home-manager/modules/programs/beets.nix>
programs.beets.mpdIntegration.port

The port that mpdstats will connect to.

Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default: config.services.mpd.network.port

Example: 6601

Declared by:

<home-manager/modules/programs/beets.nix>
programs.beets.settings

Configuration written to $XDG_CONFIG_HOME/beets/config.yaml

Type: YAML value

Default: { }

Declared by:

<home-manager/modules/programs/beets.nix>
programs.bemenu.enable

Whether to enable bemenu.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/bemenu.nix>
programs.bemenu.package

The bemenu package to use.

Type: package

Default: pkgs.bemenu

Declared by:

<home-manager/modules/programs/bemenu.nix>
programs.bemenu.settings

Configuration options for bemenu. See bemenu(1).

Type: attribute set of (string or signed integer or floating point number or boolean)

Default: { }

Example:

{
  line-height = 28;
  prompt = "open";
  ignorecase = true;
  fb = "#1e1e2e";
  ff = "#cdd6f4";
  nb = "#1e1e2e";
  nf = "#cdd6f4";
  tb = "#1e1e2e";
  hb = "#1e1e2e";
  tf = "#f38ba8";
  hf = "#f9e2af";
  af = "#cdd6f4";
  ab = "#1e1e2e";
  width-factor = 0.3;
}

Declared by:

<home-manager/modules/programs/bemenu.nix>
programs.borgmatic.enable

Whether to enable Borgmatic.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.package

The borgmatic package to use.

Type: package

Default: pkgs.borgmatic

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups

Borgmatic allows for several named backup configurations, each with its own source directories and repositories.

Type: attribute set of (submodule)

Example:

{
  personal = {
    location = {
      sourceDirectories = [ "/home/me/personal" ];
      repositories = [ "ssh://myuser@myserver.com/./personal-repo" ];
    };
  };
  work = {
    location = {
      sourceDirectories = [ "/home/me/work" ];
      repositories = [ "ssh://myuser@myserver.com/./work-repo" ];
    };
  };
};

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.consistency.checks

Consistency checks to run

Type: list of (submodule)

Default: [ ]

Example:

[
  {
    name = "repository";
    frequency = "2 weeks";
  }
  {
    name = "archives";
    frequency = "4 weeks";
  }
  {
    name = "data";
    frequency = "6 weeks";
  }
  {
    name = "extract";
    frequency = "6 weeks";
  }
];

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.consistency.checks.*.frequency

Frequency of this type of check

Type: null or string matching the pattern ([[:digit:]]+ .*)|always

Default: null

Example: "2 weeks"

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.consistency.checks.*.name

Name of consistency check to run.

Type: one of “repository”, “archives”, “data”, “extract”

Example: "repository"

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.consistency.extraConfig

Extra settings.

Type: YAML value

Default: { }

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.hooks.extraConfig

Extra settings.

Type: YAML value

Default: { }

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.location.excludeHomeManagerSymlinks

Whether to exclude Home Manager generated symbolic links from the backups. This facilitates restoring the whole home directory when the Nix store doesn’t contain the latest Home Manager generation.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.location.extraConfig

Extra settings.

Type: YAML value

Default: { }

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.location.patterns

Patterns to include/exclude.

See the output of borg help patterns for the syntax. Pattern paths are relative to / even when a different recursion root is set.

Mutually exclusive with programs.borgmatic.backups.<name>.location.sourceDirectories.

Type: null or (list of string)

Default: null

Example:

[
  "R /home/user"
  "- home/user/.cache"
  "- home/user/Downloads"
  "+ home/user/Videos/Important Video"
  "- home/user/Videos"
]

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.location.repositories

List of local or remote repositories with paths and optional labels.

Type: list of (string or (submodule))

Example:

[
  {
    "path" = "ssh://myuser@myrepo.myserver.com/./repo";
    "label" = "server";
  }
  {
    "path" = "/var/lib/backups/local.borg";
    "label" = "local";
  }
]

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.location.sourceDirectories

Directories to backup.

Mutually exclusive with programs.borgmatic.backups.<name>.location.patterns.

Type: null or (list of string)

Default: null

Example: [config.home.homeDirectory]

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.output.extraConfig

Extra settings.

Type: YAML value

Default: { }

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.retention.extraConfig

Extra settings.

Type: YAML value

Default: { }

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.retention.keepDaily

Number of daily archives to keep. Use -1 for no limit.

Type: null or signed integer

Default: null

Example: 3

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.retention.keepHourly

Number of hourly archives to keep. Use -1 for no limit.

Type: null or signed integer

Default: null

Example: 3

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.retention.keepMinutely

Number of minutely archives to keep. Use -1 for no limit.

Type: null or signed integer

Default: null

Example: 3

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.retention.keepMonthly

Number of monthly archives to keep. Use -1 for no limit.

Type: null or signed integer

Default: null

Example: 3

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.retention.keepSecondly

Number of secondly archives to keep. Use -1 for no limit.

Type: null or signed integer

Default: null

Example: 3

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.retention.keepWeekly

Number of weekly archives to keep. Use -1 for no limit.

Type: null or signed integer

Default: null

Example: 3

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.retention.keepWithin

Keep all archives within this time interval.

Type: null or string matching the pattern [[:digit:]]+[Hdwmy]

Default: null

Example: "2d"

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.retention.keepYearly

Number of yearly archives to keep. Use -1 for no limit.

Type: null or signed integer

Default: null

Example: 3

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.storage.encryptionPasscommand

Command writing the passphrase to standard output.

Type: null or string

Default: null

Example: "${pkgs.password-store}/bin/pass borg-repo"

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.borgmatic.backups.<name>.storage.extraConfig

Extra settings.

Type: YAML value

Default: { }

Declared by:

<home-manager/modules/programs/borgmatic.nix>
programs.bottom.enable

Whether to enable bottom, a cross-platform graphical process/system monitor with a customizable interface.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/bottom.nix>
programs.bottom.package

Package providing bottom.

Type: package

Default: pkgs.bottom

Declared by:

<home-manager/modules/programs/bottom.nix>
programs.bottom.settings

Configuration written to $XDG_CONFIG_HOME/bottom/bottom.toml.

See https://github.com/ClementTsang/bottom/blob/master/sample_configs/default_config.toml for the default configuration.

Type: TOML value

Default: { }

Example:

{
  flags = {
    avg_cpu = true;
    temperature_type = "c";
  };

  colors = {
    low_battery_color = "red";
  };
}

Declared by:

<home-manager/modules/programs/bottom.nix>
programs.boxxy.enable

Whether to enable boxxy: Boxes in badly behaving applications.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/boxxy.nix>
programs.boxxy.package

The boxxy package to use.

Type: package

Default: pkgs.boxxy

Declared by:

<home-manager/modules/programs/boxxy.nix>
programs.boxxy.rules

List of boxxy rules

Type: list of (YAML value)

Default: [ ]

Declared by:

<home-manager/modules/programs/boxxy.nix>
programs.boxxy.rules.*.context

Apply redirection ONLY when in a certain directory.

Type: list of string

Default: [ ]

Example:

[
  "/home/example/Projects/my-project"
]

Declared by:

<home-manager/modules/programs/boxxy.nix>
programs.boxxy.rules.*.env

Give certain environment variables for said match.

Type: attribute set of string

Default: { }

Example:

{
  MY_ENV_VAR = "my_env_var_value";
}

Declared by:

<home-manager/modules/programs/boxxy.nix>
programs.boxxy.rules.*.mode

Does the current path redirect a file or a directory?

Type: one of “file”, “directory”

Default: "directory"

Declared by:

<home-manager/modules/programs/boxxy.nix>
programs.boxxy.rules.*.name

Unique identifier of the boxxy rule. This can be any single-line string.

Type: string

Declared by:

<home-manager/modules/programs/boxxy.nix>
programs.boxxy.rules.*.only

Apply redirection ONLY to specified executable names.

Type: list of string

Default: [ ]

Example:

[
  "bash"
  "/usr/bin/sh"
]

Declared by:

<home-manager/modules/programs/boxxy.nix>
programs.boxxy.rules.*.rewrite

Where that file/directory should be rewritten to.

Type: string

Default: ""

Example: "${config.xdg.configHome}/ssh"

Declared by:

<home-manager/modules/programs/boxxy.nix>
programs.boxxy.rules.*.target

What directory/file to redirect.

Type: string

Default: ""

Example: "~/.ssh"

Declared by:

<home-manager/modules/programs/boxxy.nix>
programs.broot.enable

Whether to enable Broot, a better way to navigate directories.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/broot.nix>
programs.broot.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/broot.nix>
programs.broot.enableFishIntegration

Whether to enable Fish integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/broot.nix>
programs.broot.enableNushellIntegration

Whether to enable Nushell integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/broot.nix>
programs.broot.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/broot.nix>
programs.broot.package

Package providing broot

Type: package

Default: pkgs.broot

Declared by:

<home-manager/modules/programs/broot.nix>
programs.broot.settings

Verbatim config entries

Type: TOML value

Default: { }

Declared by:

<home-manager/modules/programs/broot.nix>
programs.broot.settings.modal

Whether to enable modal (vim) mode.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/broot.nix>
programs.broot.settings.skin

Color configuration.

Complete list of keys (expected to change before the v1 of broot):

  • char_match

  • code

  • directory

  • exe

  • file

  • file_error

  • flag_label

  • flag_value

  • input

  • link

  • permissions

  • selected_line

  • size_bar_full

  • size_bar_void

  • size_text

  • spinner

  • status_error

  • status_normal

  • table_border

  • tree

  • unlisted

Add _fg for a foreground color and _bg for a background color.

Type: attribute set of string

Default: { }

Example:

{
  status_normal_fg = "grayscale(18)";
  status_normal_bg = "grayscale(3)";
  status_error_fg = "red";
  status_error_bg = "yellow";
  tree_fg = "red";
  selected_line_bg = "grayscale(7)";
  permissions_fg = "grayscale(12)";
  size_bar_full_bg = "red";
  size_bar_void_bg = "black";
  directory_fg = "lightyellow";
  input_fg = "cyan";
  flag_value_fg = "lightyellow";
  table_border_fg = "red";
  code_fg = "lightyellow";
}

Declared by:

<home-manager/modules/programs/broot.nix>
programs.broot.settings.verbs

Define new verbs. For more information, see Verb Definition Attributes in the broot documentation.

The possible attributes are:

invocation (optional)

how the verb is called by the user, with placeholders for arguments

execution (mandatory)

how the verb is executed

key (optional)

a keyboard key triggering execution

keys (optional)

multiple keyboard keys each 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 or list of string)

Default: [ ]

Example:

[
  { invocation = "p"; execution = ":parent"; }
  { invocation = "edit"; shortcut = "e"; execution = "$EDITOR {file}" ; }
  { invocation = "create {subpath}"; execution = "$EDITOR {directory}/{subpath}"; }
  { invocation = "view"; execution = "less {file}"; }
  {
    invocation = "blop {name}\\.{type}";
    execution = "mkdir {parent}/{type} && ${pkgs.neovim}/bin/nvim {parent}/{type}/{name}.{type}";
    from_shell = true;
  }
]

Declared by:

<home-manager/modules/programs/broot.nix>
programs.browserpass.enable

Whether to enable the browserpass extension host application.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/browserpass.nix>
programs.browserpass.browsers

Which browsers to install browserpass for

Type: list of (one of “brave”, “chrome”, “chromium”, “firefox”, “librewolf”, “vivaldi”)

Default:

[
  "brave"
  "chrome"
  "chromium"
  "firefox"
  "librewolf"
  "vivaldi"
]

Example:

[
  "firefox"
]

Declared by:

<home-manager/modules/programs/browserpass.nix>
programs.btop.enable

Whether to enable btop.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/btop.nix>
programs.btop.package

The btop package to use.

Type: package

Default: pkgs.btop

Declared by:

<home-manager/modules/programs/btop.nix>
programs.btop.extraConfig

Extra lines added to the btop.conf file.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/btop.nix>
programs.btop.settings

Options to add to btop.conf file. See https://github.com/aristocratos/btop#configurability for options.

Type: attribute set of (boolean or floating point number or signed integer or string)

Default: { }

Example:

{
  color_theme = "Default";
  theme_background = false;
}

Declared by:

<home-manager/modules/programs/btop.nix>
programs.bun.enable

Whether to enable Bun JavaScript runtime.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/bun.nix>
programs.bun.enableGitIntegration

Whether to enable Git integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/bun.nix>
programs.bun.package

The bun package to use.

Type: package

Default: pkgs.bun

Declared by:

<home-manager/modules/programs/bun.nix>
programs.bun.settings

Configuration written to $XDG_CONFIG_HOME/.bunfig.toml.

See https://bun.sh/docs/runtime/bunfig for the full list of options.

Type: TOML value

Default: { }

Example:

{
  smol = true;
  telemetry = false;
  test = {
    coverage = true;
    coverageThreshold = 0.9;
  };
  install.lockfile = {
    print = "yarn";
  };
}

Declared by:

<home-manager/modules/programs/bun.nix>
programs.carapace.enable

Whether to enable carapace, a multi-shell multi-command argument completer.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/carapace.nix>
programs.carapace.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/carapace.nix>
programs.carapace.enableFishIntegration

Whether to enable Fish integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/carapace.nix>
programs.carapace.enableNushellIntegration

Whether to enable Nushell integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/carapace.nix>
programs.carapace.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/carapace.nix>
programs.carapace.package

The carapace package to use.

Type: package

Default: pkgs.carapace

Declared by:

<home-manager/modules/programs/carapace.nix>
programs.cava.enable

Whether to enable Cava audio visualizer.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/cava.nix>
programs.cava.package

The cava package to use.

Type: package

Default: pkgs.cava

Declared by:

<home-manager/modules/programs/cava.nix>
programs.cava.settings

Settings to be written to the Cava configuration file. See https://github.com/karlstav/cava/blob/master/example_files/config for all available options.

Type: attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))

Default: { }

Example:

{
  general.framerate = 60;
  input.method = "alsa";
  smoothing.noise_reduction = 88;
  color = {
    background = "'#000000'";
    foreground = "'#FFFFFF'";
  };
}

Declared by:

<home-manager/modules/programs/cava.nix>
programs.chromium.enable

Whether to enable Chromium.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/chromium.nix>
programs.chromium.package

The Chromium package to use.

Type: package

Default: pkgs.chromium

Declared by:

<home-manager/modules/programs/chromium.nix>
programs.chromium.commandLineArgs

List of command-line arguments to be passed to Chromium.

For a list of common switches, see Chrome switches.

To search switches for other components, see Chromium codesearch.

Type: list of string

Default: [ ]

Example:

[
  "--enable-logging=stderr"
  "--ignore-gpu-blocklist"
]

Declared by:

<home-manager/modules/programs/chromium.nix>
programs.chromium.dictionaries

List of Chromium dictionaries to install.

Type: list of package

Default: [ ]

Example:

[
  pkgs.hunspellDictsChromium.en_US
]

Declared by:

<home-manager/modules/programs/chromium.nix>
programs.chromium.extensions

List of Chromium extensions to install. To find the extension ID, check its URL on the Chrome Web Store.

To install extensions outside of the Chrome Web Store set updateUrl or crxPath and version as explained in the Chrome documentation.

Type: list of ((submodule) or string convertible to it)

Default: [ ]

Example:

[
  { id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; } # ublock origin
  {
    id = "dcpihecpambacapedldabdbpakmachpb";
    updateUrl = "https://raw.githubusercontent.com/iamadamdev/bypass-paywalls-chrome/master/updates.xml";
  }
  {
    id = "aaaaaaaaaabbbbbbbbbbcccccccccc";
    crxPath = "/home/share/extension.crx";
    version = "1.0";
  }
]

Declared by:

<home-manager/modules/programs/chromium.nix>
programs.chromium.extensions.*.crxPath

Path to the extension’s crx file. Linux only.

Type: null or path

Default: null

Declared by:

<home-manager/modules/programs/chromium.nix>
programs.chromium.extensions.*.id

The extension’s ID from the Chrome Web Store url or the unpacked crx.

Type: string matching the pattern [a-zA-Z]{32}

Default: ""

Declared by:

<home-manager/modules/programs/chromium.nix>
programs.chromium.extensions.*.updateUrl

URL of the extension’s update manifest XML file. Linux only.

Type: string

Default: "https://clients2.google.com/service/update2/crx"

Declared by:

<home-manager/modules/programs/chromium.nix>
programs.chromium.extensions.*.version

The extension’s version, required for local installation. Linux only.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/chromium.nix>
programs.cmus.enable

Whether to enable Enable cmus, the music player…

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/cmus.nix>
programs.cmus.extraConfig

Extra configuration to add to cmus rc.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  set audio_backend = "mpd"
  set status_display = "default"
''

Declared by:

<home-manager/modules/programs/cmus.nix>
programs.cmus.theme

Select color theme. A list of available color themes can be found here: https://github.com/cmus/cmus/tree/master/data.

Type: strings concatenated with “\n”

Default: ""

Example: "gruvbox"

Declared by:

<home-manager/modules/programs/cmus.nix>
programs.command-not-found.enable

Whether to enable command-not-found hook for interactive shell.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/command-not-found/command-not-found.nix>
programs.command-not-found.dbPath

Absolute path to programs.sqlite. By default this file will be provided by your channel (nixexprs.tar.xz).

Type: path

Default: "/nix/var/nix/profiles/per-user/root/channels/nixos/programs.sqlite"

Declared by:

<home-manager/modules/programs/command-not-found/command-not-found.nix>
programs.comodoro.enable

Whether to enable Comodoro, a CLI to manage your time.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/comodoro.nix>
programs.comodoro.package

The comodoro package to use.

Type: package

Default: pkgs.comodoro

Declared by:

<home-manager/modules/programs/comodoro.nix>
programs.comodoro.settings

Comodoro configuration. See https://pimalaya.org/comodoro/cli/configuration/ for supported values.

Type: TOML value

Default: { }

Declared by:

<home-manager/modules/programs/comodoro.nix>
programs.darcs.enable

Whether to enable darcs.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/darcs.nix>
programs.darcs.package

The darcs package to use.

Type: package

Default: pkgs.darcs

Declared by:

<home-manager/modules/programs/darcs.nix>
programs.darcs.author

If this list has a single entry, it will be used as the author when you record a patch. If there are multiple entries, Darcs will prompt you to choose one of them.

Type: list of string

Default: [ ]

Example:

[
  "Fred Bloggs <fred@example.net>"
]

Declared by:

<home-manager/modules/programs/darcs.nix>
programs.darcs.boring

File patterns to ignore

Type: list of string

Default: [ ]

Example:

[
  "^.idea$"
  ".iml$"
  "^.stack-work$"
]

Declared by:

<home-manager/modules/programs/darcs.nix>
programs.dircolors.enable

Whether to manage .dir_colors and set LS_COLORS.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/dircolors.nix>
programs.dircolors.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/dircolors.nix>
programs.dircolors.enableFishIntegration

Whether to enable Fish integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/dircolors.nix>
programs.dircolors.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/dircolors.nix>
programs.dircolors.extraConfig

Extra lines added to .dir_colors file.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/dircolors.nix>
programs.dircolors.settings

Options to add to .dir_colors file. See dircolors --print-database for options.

Type: attribute set of string

Default: { }

Example:

{
  OTHER_WRITABLE = "30;46";
  ".sh" = "01;32";
  ".csh" = "01;32";
}

Declared by:

<home-manager/modules/programs/dircolors.nix>
programs.direnv.enable

Whether to enable direnv, the environment switcher.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/direnv.nix>
programs.direnv.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/direnv.nix>
programs.direnv.enableFishIntegration

Whether to enable Fish integration. Note, enabling the direnv module will always active its functionality for Fish since the direnv package automatically gets loaded in Fish. If this is not the case try adding

  environment.pathsToLink = [ "/share/fish" ];

to the system configuration.

Type: boolean (read only)

Default: true

Declared by:

<home-manager/modules/programs/direnv.nix>
programs.direnv.enableNushellIntegration

Whether to enable Nushell integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/direnv.nix>
programs.direnv.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/direnv.nix>
programs.direnv.package

The direnv package to use.

Type: package

Default: pkgs.direnv

Declared by:

<home-manager/modules/programs/direnv.nix>
programs.direnv.config

Configuration written to $XDG_CONFIG_HOME/direnv/direnv.toml.

See direnv.toml(1). for the full list of options.

Type: TOML value

Default: { }

Declared by:

<home-manager/modules/programs/direnv.nix>
programs.direnv.mise.enable

Whether to enable mise, integration of use_mise for direnv.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/direnv.nix>
programs.direnv.mise.package

The mise package to use.

Type: package

Default: pkgs.mise

Declared by:

<home-manager/modules/programs/direnv.nix>
programs.direnv.nix-direnv.enable

Whether to enable nix-direnv, a fast, persistent use_nix implementation for direnv.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/direnv.nix>
programs.direnv.nix-direnv.package

The nix-direnv package to use.

Type: package

Default: pkgs.nix-direnv

Declared by:

<home-manager/modules/programs/direnv.nix>
programs.direnv.silent

Whether to enable silent mode, that is, disabling direnv logging.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/direnv.nix>
programs.direnv.stdlib

Custom stdlib written to $XDG_CONFIG_HOME/direnv/direnvrc.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/direnv.nix>
programs.discocss.enable

Whether to enable discocss, a tiny Discord CSS injector for Linux and MacOS.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/discocss.nix>
programs.discocss.package

The discocss package to use.

Type: package

Default: pkgs.discocss

Declared by:

<home-manager/modules/programs/discocss.nix>
programs.discocss.css

The custom CSS for discocss to use.

Type: string

Default: ""

Declared by:

<home-manager/modules/programs/discocss.nix>
programs.discocss.discordAlias

Whether to alias discocss to discord.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/discocss.nix>
programs.discocss.discordPackage

The discord package to use.

Type: package

Default: pkgs.discord

Declared by:

<home-manager/modules/programs/discocss.nix>
programs.eclipse.enable

Whether to enable Eclipse.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/eclipse.nix>
programs.eclipse.enableLombok

Whether to enable the Lombok Java Agent in Eclipse. This is necessary to use the Lombok class annotations.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/eclipse.nix>
programs.eclipse.package

The Eclipse package to install.

Type: package

Default: pkgs.eclipses.eclipse-platform

Example: pkgs.eclipses.eclipse-java

Declared by:

<home-manager/modules/programs/eclipse.nix>
programs.eclipse.jvmArgs

JVM arguments to use for the Eclipse process.

Type: list of string

Default: [ ]

Declared by:

<home-manager/modules/programs/eclipse.nix>
programs.eclipse.plugins

Plugins that should be added to Eclipse.

Type: list of package

Default: [ ]

Declared by:

<home-manager/modules/programs/eclipse.nix>
programs.emacs.enable

Whether to enable Emacs.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/emacs.nix>
programs.emacs.package

The Emacs package to use.

Type: package

Default: pkgs.emacs

Example: pkgs.emacs25-nox

Declared by:

<home-manager/modules/programs/emacs.nix>
programs.emacs.extraConfig

Configuration to include in the Emacs default init file. See https://www.gnu.org/software/emacs/manual/html_node/elisp/Init-File.html for more.

Note, the inhibit-startup-message Emacs option cannot be set here since Emacs disallows setting it from the default initialization file.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  (setq standard-indent 2)
''

Declared by:

<home-manager/modules/programs/emacs.nix>
programs.emacs.extraPackages

Extra packages available to Emacs. To get a list of available packages run: nix-env -f '<nixpkgs>' -qaP -A emacsPackages.

Type: Function that takes an attribute set and returns a list containing a selection of the values of the input set

Default: "epkgs: []"

Example: epkgs: [ epkgs.emms epkgs.magit ]

Declared by:

<home-manager/modules/programs/emacs.nix>
programs.emacs.overrides

Allows overriding packages within the Emacs package set.

Type: An overlay function, takes self and super and returns an attribute set overriding the desired attributes.

Default: "self: super: {}"

Example:

self: super: rec {
  haskell-mode = self.melpaPackages.haskell-mode;
  # ...
};

Declared by:

<home-manager/modules/programs/emacs.nix>
programs.eww.enable

Whether to enable eww.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/eww.nix>
programs.eww.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/eww.nix>
programs.eww.enableFishIntegration

Whether to enable Fish integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/eww.nix>
programs.eww.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/eww.nix>
programs.eww.package

The eww package to install.

Type: package

Default: pkgs.eww

Example: pkgs.eww

Declared by:

<home-manager/modules/programs/eww.nix>
programs.eww.configDir

The directory that gets symlinked to $XDG_CONFIG_HOME/eww.

Type: path

Example: ./eww-config-dir

Declared by:

<home-manager/modules/programs/eww.nix>
programs.eza.enable

Whether to enable eza, a modern replacement for ls.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/eza.nix>
programs.eza.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/eza.nix>
programs.eza.enableFishIntegration

Whether to enable Fish integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/eza.nix>
programs.eza.enableIonIntegration

Whether to enable Ion integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/eza.nix>
programs.eza.enableNushellIntegration

Whether to enable Nushell integration.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/eza.nix>
programs.eza.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/eza.nix>
programs.eza.package

The eza package to use.

Type: package

Default: pkgs.eza

Declared by:

<home-manager/modules/programs/eza.nix>
programs.eza.colors

Use terminal colors in output (--color argument).

Type: one of <null>, “auto”, “always”, “never”

Default: null

Declared by:

<home-manager/modules/programs/eza.nix>
programs.eza.extraOptions

Extra command line options passed to eza.

Type: list of string

Default: [ ]

Example:

[
  "--group-directories-first"
  "--header"
]

Declared by:

<home-manager/modules/programs/eza.nix>
programs.eza.git

List each file’s Git status if tracked or ignored (--git argument).

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/eza.nix>
programs.eza.icons

Display icons next to file names (--icons argument).

Note, the support for Boolean values is deprecated. Setting this option to true corresponds to --icons=auto.

Type: one of <null>, true, false, “auto”, “always”, “never”

Default: null

Declared by:

<home-manager/modules/programs/eza.nix>
programs.fastfetch.enable

Whether to enable Fastfetch.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/fastfetch.nix>
programs.fastfetch.package

The fastfetch package to use.

Type: package

Default: pkgs.fastfetch

Declared by:

<home-manager/modules/programs/fastfetch.nix>
programs.fastfetch.settings

Configuration written to $XDG_CONFIG_HOME/fastfetch/config.jsonc. See https://github.com/fastfetch-cli/fastfetch/wiki/Json-Schema for the documentation.

Type: JSON value

Default: { }

Example:

{
  logo = {
    source = "nixos_small";
    padding = {
      right = 1;
    };
  };
  display = {
    size = {
      binaryPrefix = "si";
    };
    color = "blue";
    separator = "  ";
  };
  modules = [
    {
      type = "datetime";
      key = "Date";
      format = "{1}-{3}-{11}";
    }
    {
      type = "datetime";
      key = "Time";
      format = "{14}:{17}:{20}";
    }
    "break"
    "player"
    "media"
  ];
};

Declared by:

<home-manager/modules/programs/fastfetch.nix>
programs.fd.enable

Whether to enable fd, a simple, fast and user-friendly alternative to find.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/fd.nix>
programs.fd.package

The fd package to use.

Type: package

Default: pkgs.fd

Declared by:

<home-manager/modules/programs/fd.nix>
programs.fd.extraOptions

Extra command line options passed to fd.

Type: list of string

Default: [ ]

Example:

[
  "--no-ignore"
  "--absolute-path"
]

Declared by:

<home-manager/modules/programs/fd.nix>
programs.fd.hidden

Search hidden files and directories (--hidden argument).

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/fd.nix>
programs.fd.ignores

List of paths that should be globally ignored.

Type: list of string

Default: [ ]

Example:

[
  ".git/"
  "*.bak"
]

Declared by:

<home-manager/modules/programs/fd.nix>
programs.feh.enable

Whether to enable feh - a fast and light image viewer.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/feh.nix>
programs.feh.package

The feh package to use.

Type: package

Default: pkgs.feh

Declared by:

<home-manager/modules/programs/feh.nix>
programs.feh.buttons

Override feh’s default mouse button mapping. If you want to disable an action, set its value to null. If you want to bind multiple buttons to an action, set its value to a list. See https://man.finalrewind.org/1/feh/#x425554544f4e53 for default bindings and available commands.

Type: attribute set of (null or string or signed integer or list of (string or signed integer))

Default: { }

Example:

{
  prev_img = [
    3
    "C-3"
  ];
  zoom_in = 4;
  zoom_out = "C-4";
}

Declared by:

<home-manager/modules/programs/feh.nix>
programs.feh.keybindings

Override feh’s default keybindings. If you want to disable a keybinding set its value to null. If you want to bind multiple keys to an action, set its value to a list. See https://man.finalrewind.org/1/feh/#x4b455953 for default bindings and available commands.

Type: attribute set of (null or string or list of string)

Default: { }

Example:

{
  prev_img = [
    "h"
    "Left"
  ];
  zoom_in = "plus";
  zoom_out = "minus";
}

Declared by:

<home-manager/modules/programs/feh.nix>
programs.firefox.enable

Whether to enable Firefox.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.enableGnomeExtensions

Whether to enable the GNOME Shell native host connector. Note, you also need to set the NixOS option services.gnome.gnome-browser-connector.enable to true.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.package

The Firefox package to use. If state version ≥ 19.09 then this should be a wrapped Firefox package. For earlier state versions it should be an unwrapped Firefox package. Set to null to disable installing Firefox.

Type: null or package

Default: pkgs.firefox

Example:

pkgs.firefox.override {
  # See nixpkgs' firefox/wrapper.nix to check which options you can use
  nativeMessagingHosts = [
    # Gnome shell native connector
    pkgs.gnome-browser-connector
    # Tridactyl native connector
    pkgs.tridactyl-native
  ];
}

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.finalPackage

Resulting Firefox package.

Type: null or package (read only)

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.languagePacks

The language packs to install. Available language codes can be found on the releases page: https://releases.mozilla.org/pub/firefox/releases/${version}/linux-x86_64/xpi/, replacing ${version} with the version of Firefox you have.

Type: list of string

Default: [ ]

Example:

[
  "en-GB"
  "de"
]

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.nativeMessagingHosts

Additional packages containing native messaging hosts that should be made available to Firefox extensions.

Type: list of package

Default: [ ]

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.policies

See list of policies.

Type: attribute set of (JSON value)

Default: { }

Example:

{
  BlockAboutConfig = true;
  DefaultDownloadDirectory = "\${home}/Downloads";
}

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles

Attribute set of Firefox profiles.

Type: attribute set of (submodule)

Default: { }

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.bookmarks

Preloaded bookmarks. Note, this may silently overwrite any previously existing bookmarks!

Type: (list of ((bookmark submodule) or (directory submodule))) or (attribute set of ((bookmark submodule) or (directory submodule))) convertible to it

Default: [ ]

Example:

[
  {
    name = "wikipedia";
    tags = [ "wiki" ];
    keyword = "wiki";
    url = "https://en.wikipedia.org/wiki/Special:Search?search=%s&go=Go";
  }
  {
    name = "kernel.org";
    url = "https://www.kernel.org";
  }
  {
    name = "Nix sites";
    toolbar = true;
    bookmarks = [
      {
        name = "homepage";
        url = "https://nixos.org/";
      }
      {
        name = "wiki";
        tags = [ "wiki" "nix" ];
        url = "https://wiki.nixos.org/";
      }
    ];
  }
]

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.containers

Attribute set of container configurations. See Multi-Account Containers for more information.

Type: attribute set of (submodule)

Default: { }

Example:

{
  dangerous = {
    color = "red";
    icon = "fruit";
    id = 2;
  };
  shopping = {
    color = "blue";
    icon = "cart";
    id = 1;
  };
}

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.containers.<name>.color

Container color.

Type: one of “blue”, “turquoise”, “green”, “yellow”, “orange”, “red”, “pink”, “purple”, “toolbar”

Default: "pink"

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.containers.<name>.icon

Container icon.

Type: one of “briefcase”, “cart”, “circle”, “dollar”, “fence”, “fingerprint”, “gift”, “vacation”, “food”, “fruit”, “pet”, “tree”, “chill”

Default: "fruit"

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.containers.<name>.id

Container ID. This should be set to a unique number per container in this profile.

Type: unsigned integer, meaning >=0

Default: 0

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.containers.<name>.name

Container name, e.g., shopping.

Type: string

Default: "‹name›"

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.containersForce

Whether to force replace the existing containers configuration. This is recommended since Firefox will replace the symlink on every launch, but note that you’ll lose any existing configuration by enabling this.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.extensions

List of ‹name› add-on packages to install for this profile. Some pre-packaged add-ons are accessible from the Nix User Repository. Once you have NUR installed run

$ nix-env -f '<nixpkgs>' -qaP -A nur.repos.rycee.firefox-addons

to list the available ‹name› add-ons.

Note that it is necessary to manually enable these extensions inside ‹name› after the first installation.

To automatically enable extensions add "extensions.autoDisableScopes" = 0; to programs.firefox.profiles.<profile>.settings

Type: list of package

Default: [ ]

Example:

with pkgs.nur.repos.rycee.firefox-addons; [
  privacy-badger
]

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.extraConfig

Extra preferences to add to user.js.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.id

Profile ID. This should be set to a unique number per profile.

Type: unsigned integer, meaning >=0

Default: 0

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.isDefault

Whether this is a default profile.

Type: boolean

Default: "true if profile ID is 0"

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.name

Profile name.

Type: string

Default: "‹name›"

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.path

Profile path.

Type: string

Default: "‹name›"

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.search

Declarative search engine configuration.

Type: submodule

Default: { }

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://wiki.nixos.org/index.php?search={searchTerms}"; }];
    iconUpdateURL = "https://wiki.nixos.org/favicon.png";
    updateInterval = 24 * 60 * 60 * 1000; # every day
    definedAliases = [ "@nw" ];
  };

  "Bing".metaData.hidden = true;
  "Google".metaData.alias = "@g"; # builtin engines only support specifying one additional alias
}

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.search.force

Whether to force replace the existing search configuration. This is recommended since 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>.search.privateDefault

The default search engine used in the Private Browsing.

Type: null or string

Default: null

Example: "DuckDuckGo"

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.settings

Attribute set of ‹name› preferences.

‹name› only supports int, bool, and string types for preferences, but home-manager will automatically convert all other JSON-compatible values into strings.

Type: attribute set of (‹name› preference (int, bool, string, and also attrs, list, float as a JSON string))

Default: { }

Example:

{
  "browser.startup.homepage" = "https://nixos.org";
  "browser.search.region" = "GB";
  "browser.search.isUS" = false;
  "distribution.searchplugins.defaultLocale" = "en-GB";
  "general.useragent.locale" = "en-GB";
  "browser.bookmarks.showMobileBookmarks" = true;
  "browser.newtabpage.pinned" = [{
    title = "NixOS";
    url = "https://nixos.org";
  }];
}

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.userChrome

Custom ‹name› user chrome CSS.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  /* Hide tab bar in FF Quantum */
  @-moz-document url(chrome://browser/content/browser.xul), url(chrome://browser/content/browser.xhtml) {
    #TabsToolbar {
      visibility: collapse !important;
      margin-bottom: 21px !important;
    }
  
    #sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"] #sidebar-header {
      visibility: collapse !important;
    }
  }
''

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.firefox.profiles.<name>.userContent

Custom ‹name› user content CSS.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  /* Hide scrollbar in FF Quantum */
  *{scrollbar-width:none !important}
''

Declared by:

<home-manager/modules/programs/firefox.nix>
programs.fish.enable

Whether to enable fish, the friendly interactive shell.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/fish.nix>
programs.fish.package

The fish package to install. May be used to change the version.

Type: package

Default: pkgs.fish

Declared by:

<home-manager/modules/programs/fish.nix>
programs.fish.functions

Basic functions to add to fish. For more information see https://fishshell.com/docs/current/cmds/function.html.

Type: attribute set of (strings concatenated with “\n” or (submodule))

Default: { }

Example:

{
  __fish_command_not_found_handler = {
    body = "__fish_default_command_not_found_handler $argv[1]";
    onEvent = "fish_command_not_found";
  };

  gitignore = "curl -sL https://www.gitignore.io/api/$argv";
}

Declared by:

<home-manager/modules/programs/fish.nix>
programs.fish.generateCompletions

Whether to enable the automatic generation of completions based upon installed man pages.

Type: boolean

Default: true

Example: true

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.preferAbbrs

If enabled, abbreviations will be preferred over aliases when other modules define aliases for fish.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/fish.nix>
programs.fish.shellAbbrs

An attribute set that maps aliases (the top level attribute names in this option) to abbreviations. Abbreviations are expanded with the longer phrase after they are entered.

Type: attribute set of (string or (submodule))

Default: { }

Example:

{
  l = "less";
  gco = "git checkout";
  "-C" = {
    position = "anywhere";
    expansion = "--color";
  };
}

Declared by:

<home-manager/modules/programs/fish.nix>
programs.fish.shellAliases

An attribute set that maps aliases (the top level attribute names in this option) to command strings or directly to build outputs.

Type: attribute set of string

Default: { }

Example:

{
  g = "git";
  "..." = "cd ../..";
}

Declared by:

<home-manager/modules/programs/fish.nix>
programs.fish.shellInit

Shell script code called during fish shell initialisation.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/fish.nix>
programs.fish.shellInitLast

Shell script code called during interactive fish shell initialisation, this will be the last thing executed in fish startup.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/fish.nix>
programs.floorp.enable

Whether to enable Floorp.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/floorp.nix>
programs.floorp.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/floorp.nix>
programs.floorp.package

The Floorp package to use. If state version ≥ 19.09 then this should be a wrapped Floorp package. For earlier state versions it should be an unwrapped Floorp package. Set to null to disable installing Floorp.

Type: null or package

Default: pkgs.floorp

Example:

pkgs.floorp.override {
  # See nixpkgs' firefox/wrapper.nix to check which options you can use
  nativeMessagingHosts = [
    # Gnome shell native connector
    pkgs.gnome-browser-connector
    # Tridactyl native connector
    pkgs.tridactyl-native
  ];
}

Declared by:

<home-manager/modules/programs/floorp.nix>
programs.floorp.finalPackage

Resulting Floorp package.

Type: null or package (read only)

Declared by:

<home-manager/modules/programs/floorp.nix>
programs.floorp.languagePacks

The language packs to install. Available language codes can be found on the releases page: https://releases.mozilla.org/pub/firefox/releases/${version}/linux-x86_64/xpi/, replacing ${version} with the version of Firefox you have.

Type: list of string

Default: [ ]

Example:

[
  "en-GB"
  "de"
]

Declared by:

<home-manager/modules/programs/floorp.nix>
programs.floorp.nativeMessagingHosts

Additional packages containing native messaging hosts that should be made available to Floorp extensions.

Type: list of package

Default: [ ]

Declared by:

<home-manager/modules/programs/floorp.nix>
programs.floorp.policies

See list of policies.

Type: attribute set of (JSON value)

Default: { }

Example:

{
  BlockAboutConfig = true;
  DefaultDownloadDirectory = "\${home}/Downloads";
}

Declared by:

<home-manager/modules/programs/floorp.nix>
programs.floorp.profiles

Attribute set of Floorp profiles.

Type: attribute set of (submodule)

Default: { }

Declared by:

<home-manager/modules/programs/floorp.nix>
programs.floorp.profiles.<name>.bookmarks

Preloaded bookmarks. Note, this may silently overwrite any previously existing bookmarks!

Type: (list of ((bookmark submodule) or (directory submodule))) or (attribute set of ((bookmark submodule) or (directory submodule))) convertible to it

Default: [ ]

Example:

[
  {
    name = "wikipedia";
    tags = [ "wiki" ];
    keyword = "wiki";
    url = "https://en.wikipedia.org/wiki/Special:Search?search=%s&go=Go";
  }
  {
    name = "kernel.org";
    url = "https://www.kernel.org";
  }
  {
    name = "Nix sites";
    toolbar = true;
    bookmarks = [
      {
        name = "homepage";
        url = "https://nixos.org/";
      }
      {
        name = "wiki";
        tags = [ "wiki" "nix" ];
        url = "https://wiki.nixos.org/";
      }
    ];
  }
]

Declared by:

<home-manager/modules/programs/floorp.nix>
programs.floorp.profiles.<name>.containers

Attribute set of container configurations. See Multi-Account Containers for more information.

Type: attribute set of (submodule)

Default: { }

Example:

{
  dangerous = {
    color = "red";
    icon = "fruit";
    id = 2;
  };
  shopping = {
    color = "blue";
    icon = "cart";
    id = 1;
  };
}

Declared by:

<home-manager/modules/programs/floorp.nix>
programs.floorp.profiles.<name>.containers.<name>.color

Container color.

Type: one of “blue”, “turquoise”, “green”, “yellow”, “orange”, “red”, “pink”, “purple”, “toolbar”

Default: "pink"

Declared by:

<home-manager/modules/programs/floorp.nix>
programs.floorp.profiles.<name>.containers.<name>.icon

Container icon.

Type: one of “briefcase”, “cart”, “circle”, “dollar”, “fence”, “fingerprint”, “gift”, “vacation”, “food”, “fruit”, “pet”, “tree”, “chill”

Default: "fruit"

Declared by:

<home-manager/modules/programs/floorp.nix>
programs.floorp.profiles.<name>.containers.<name>.id

Container ID. This should be set to a unique number per container in this profile.

Type: unsigned integer, meaning >=0

Default: 0

Declared by:

<home-manager/modules/programs/floorp.nix>
programs.floorp.profiles.<name>.containers.<name>.name

Container name, e.g., shopping.

Type: string

Default: "‹name›"

Declared by:

<home-manager/modules/programs/floorp.nix>
programs.floorp.profiles.<name>.containersForce

Whether to force replace the existing containers configuration. This is recommended since Firefox will replace the symlink on every launch, but note that you’ll lose any existing configuration by enabling this.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/floorp.nix>
programs.floorp.profiles.<name>.extensions

List of ‹name› add-on packages to install for this profile. Some pre-packaged add-ons are accessible from the Nix User Repository. Once you have NUR installed run

$ nix-env -f '<nixpkgs>' -qaP -A nur.repos.rycee.firefox-addons

to list the available ‹name› add-ons.

Note that it is necessary to manually enable these extensions inside ‹name› after the first installation.

To automatically enable extensions add "extensions.autoDisableScopes" = 0; to programs.floorp.profiles.<profile>.settings

Type: list of package

Default: [ ]

Example:

with pkgs.nur.repos.rycee.firefox-addons; [
  privacy-badger
]

Declared by:

<home-manager/modules/programs/floorp.nix>
programs.floorp.profiles.<name>.extraConfig

Extra preferences to add to user.js.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/floorp.nix>
programs.floorp.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/floorp.nix>
programs.floorp.profiles.<name>.isDefault

Whether this is a default profile.

Type: boolean

Default: "true if profile ID is 0"

Declared by:

<home-manager/modules/programs/floorp.nix>
programs.floorp.profiles.<name>.name

Profile name.

Type: string

Default: "‹name›"

Declared by:

<home-manager/modules/programs/floorp.nix>
programs.floorp.profiles.<name>.path

Profile path.

Type: string

Default: "‹name›"

Declared by:

<home-manager/modules/programs/floorp.nix>
programs.floorp.profiles.<name>.search

Declarative search engine configuration.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/programs/floorp.nix>
programs.floorp.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/floorp.nix>
programs.floorp.profiles.<name>.search.engines

Attribute set of search engine configurations. Engines that only have metaData specified will be treated as builtin to Floorp.

See SearchEngine.jsm in Floorp’s source for available options. We maintain a mapping to let you specify all options in the referenced link without underscores, but it may fall out of date with future options.

Note, icon is also a special option added by Home Manager to make it convenient to specify absolute icon paths.

Type: attribute set of attribute set of (JSON value)

Default: { }

Example:

{
  "Nix Packages" = {
    urls = [{
      template = "https://search.nixos.org/packages";
      params = [
        { name = "type"; value = "packages"; }
        { name = "query"; value = "{searchTerms}"; }
      ];
    }];

    icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
    definedAliases = [ "@np" ];
  };

  "NixOS Wiki" = {
    urls = [{ template = "https://wiki.nixos.org/index.php?search={searchTerms}"; }];
    iconUpdateURL = "https://wiki.nixos.org/favicon.png";
    updateInterval = 24 * 60 * 60 * 1000; # every day
    definedAliases = [ "@nw" ];
  };

  "Bing".metaData.hidden = true;
  "Google".metaData.alias = "@g"; # builtin engines only support specifying one additional alias
}

Declared by:

<home-manager/modules/programs/floorp.nix>
programs.floorp.profiles.<name>.search.force

Whether to force replace the existing search configuration. This is recommended since Floorp 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/floorp.nix>
programs.floorp.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/floorp.nix>
programs.floorp.profiles.<name>.search.privateDefault

The default search engine used in the Private Browsing.

Type: null or string

Default: null

Example: "DuckDuckGo"

Declared by:

<home-manager/modules/programs/floorp.nix>
programs.floorp.profiles.<name>.settings

Attribute set of ‹name› preferences.

‹name› only supports int, bool, and string types for preferences, but home-manager will automatically convert all other JSON-compatible values into strings.

Type: attribute set of (‹name› preference (int, bool, string, and also attrs, list, float as a JSON string))

Default: { }

Example:

{
  "browser.startup.homepage" = "https://nixos.org";
  "browser.search.region" = "GB";
  "browser.search.isUS" = false;
  "distribution.searchplugins.defaultLocale" = "en-GB";
  "general.useragent.locale" = "en-GB";
  "browser.bookmarks.showMobileBookmarks" = true;
  "browser.newtabpage.pinned" = [{
    title = "NixOS";
    url = "https://nixos.org";
  }];
}

Declared by:

<home-manager/modules/programs/floorp.nix>
programs.floorp.profiles.<name>.userChrome

Custom ‹name› user chrome CSS.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  /* Hide tab bar in FF Quantum */
  @-moz-document url(chrome://browser/content/browser.xul), url(chrome://browser/content/browser.xhtml) {
    #TabsToolbar {
      visibility: collapse !important;
      margin-bottom: 21px !important;
    }
  
    #sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"] #sidebar-header {
      visibility: collapse !important;
    }
  }
''

Declared by:

<home-manager/modules/programs/floorp.nix>
programs.floorp.profiles.<name>.userContent

Custom ‹name› user content CSS.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  /* Hide scrollbar in FF Quantum */
  *{scrollbar-width:none !important}
''

Declared by:

<home-manager/modules/programs/floorp.nix>
programs.foot.enable

Whether to enable Foot terminal.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/foot.nix>
programs.foot.package

The foot package to install

Type: package

Default: pkgs.foot

Declared by:

<home-manager/modules/programs/foot.nix>
programs.foot.server.enable

Whether to enable Foot terminal server.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/foot.nix>
programs.foot.settings

Configuration written to $XDG_CONFIG_HOME/foot/foot.ini. See https://codeberg.org/dnkl/foot/src/branch/master/foot.ini for a list of available options.

Type: attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))

Default: { }

Example:

{
  main = {
    term = "xterm-256color";

    font = "Fira Code:size=11";
    dpi-aware = "yes";
  };

  mouse = {
    hide-when-typing = "yes";
  };
}

Declared by:

<home-manager/modules/programs/foot.nix>
programs.freetube.enable

Whether to enable FreeTube, a YT client for Windows, Mac, and Linux.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/freetube.nix>
programs.freetube.package

The freetube package to use.

Type: package

Default: pkgs.freetube

Declared by:

<home-manager/modules/programs/freetube.nix>
programs.freetube.settings

Configuration settings for FreeTube.

All configurable options can be deduced by enabling them through the GUI and observing the changes in settings.db.

Type: attribute set

Default: { }

Example:

{
  allowDashAv1Formats = true;
  checkForUpdates     = false;
  defaultQuality      = "1080";
  baseTheme           = "catppuccinMocha";
}

Declared by:

<home-manager/modules/programs/freetube.nix>
programs.fuzzel.enable

Whether to enable fuzzel.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/fuzzel.nix>
programs.fuzzel.package

The fuzzel package to use.

Type: package

Default: pkgs.fuzzel

Declared by:

<home-manager/modules/programs/fuzzel.nix>
programs.fuzzel.settings

Configuration for fuzzel written to $XDG_CONFIG_HOME/fuzzel/fuzzel.ini. See fuzzel.ini(5) for a list of available options.

Type: attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))

Default: { }

Example:

{
  main = {
    terminal = "${pkgs.foot}/bin/foot";
    layer = "overlay";
  };
  colors.background = "ffffffff";
}

Declared by:

<home-manager/modules/programs/fuzzel.nix>
programs.fzf.enable

Whether to enable fzf - a command-line fuzzy finder.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.enableFishIntegration

Whether to enable Fish integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.package

Package providing the fzf tool.

Type: package

Default: pkgs.fzf

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.changeDirWidgetCommand

The command that gets executed as the source for fzf for the ALT-C keybinding.

Type: null or string

Default: null

Example: "fd --type d"

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.changeDirWidgetOptions

Command line options for the ALT-C keybinding.

Type: list of string

Default: [ ]

Example:

[
  "--preview 'tree -C {} | head -200'"
]

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.colors

Color scheme options added to FZF_DEFAULT_OPTS. See https://github.com/junegunn/fzf/wiki/Color-schemes for documentation.

Type: attribute set of string

Default: { }

Example:

{
  bg = "#1e1e1e";
  "bg+" = "#1e1e1e";
  fg = "#d4d4d4";
  "fg+" = "#d4d4d4";
}

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.defaultCommand

The command that gets executed as the default source for fzf when running.

Type: null or string

Default: null

Example: "fd --type f"

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.defaultOptions

Extra command line options given to fzf by default.

Type: list of string

Default: [ ]

Example:

[
  "--height 40%"
  "--border"
]

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.fileWidgetCommand

The command that gets executed as the source for fzf for the CTRL-T keybinding.

Type: null or string

Default: null

Example: "fd --type f"

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.fileWidgetOptions

Command line options for the CTRL-T keybinding.

Type: list of string

Default: [ ]

Example:

[
  "--preview 'head {}'"
]

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.historyWidgetOptions

Command line options for the CTRL-R keybinding.

Type: list of string

Default: [ ]

Example:

[
  "--sort"
  "--exact"
]

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.tmux.enableShellIntegration

Whether to enable setting FZF_TMUX=1 which causes shell integration to use fzf-tmux .

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.fzf.tmux.shellIntegrationOptions

If programs.fzf.tmux.enableShellIntegration is set to true, shell integration will use these options for fzf-tmux. See fzf-tmux --help for available options.

Type: list of string

Default: [ ]

Example: [ "-d 40%" ]

Declared by:

<home-manager/modules/programs/fzf.nix>
programs.gallery-dl.enable

Whether to enable gallery-dl.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/gallery-dl.nix>
programs.gallery-dl.package

The gallery-dl package to use.

Type: package

Default: pkgs.gallery-dl

Declared by:

<home-manager/modules/programs/gallery-dl.nix>
programs.gallery-dl.settings

Configuration written to $XDG_CONFIG_HOME/gallery-dl/config.json. See https://github.com/mikf/gallery-dl#configuration for supported values.

Type: JSON value

Default: { }

Example:

{
  extractor.base-directory = "~/Downloads";
}

Declared by:

<home-manager/modules/programs/gallery-dl.nix>
programs.gh.enable

Whether to enable GitHub CLI tool.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/gh.nix>
programs.gh.package

Package providing gh.

Type: package

Default: pkgs.gh

Declared by:

<home-manager/modules/programs/gh.nix>
programs.gh.extensions

gh extensions, see https://cli.github.com/manual/gh_extension.

Type: list of package

Default: [ ]

Example: [ pkgs.gh-eco ]

Declared by:

<home-manager/modules/programs/gh.nix>
programs.gh.gitCredentialHelper.enable

Whether to enable the gh git credential helper.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/gh.nix>
programs.gh.gitCredentialHelper.hosts

GitHub hosts to enable the gh git credential helper for

Type: list of string

Default:

[
  "https://github.com"
  "https://gist.github.com"
]

Example:

[ "https://github.com" "https://github.example.com" ]

Declared by:

<home-manager/modules/programs/gh.nix>
programs.gh.settings

Configuration written to $XDG_CONFIG_HOME/gh/config.yml.

Type: YAML value

Default: { }

Example:

{
  git_protocol = "ssh";

  prompt = "enabled";

  aliases = {
    co = "pr checkout";
    pv = "pr view";
  };
};

Declared by:

<home-manager/modules/programs/gh.nix>
programs.gh.settings.aliases

Aliases that allow you to create nicknames for gh commands.

Type: attribute set of string

Default: { }

Example:

{
  co = "pr checkout";
  pv = "pr view";
}

Declared by:

<home-manager/modules/programs/gh.nix>
programs.gh.settings.editor

The editor that gh should run when creating issues, pull requests, etc. If blank, will refer to environment.

Type: string

Default: ""

Declared by:

<home-manager/modules/programs/gh.nix>
programs.gh.settings.git_protocol

The protocol to use when performing Git operations.

Type: string

Default: "https"

Example: "ssh"

Declared by:

<home-manager/modules/programs/gh.nix>
programs.gh-dash.enable

Whether to enable GitHub CLI dashboard plugin.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/gh-dash.nix>
programs.gh-dash.package

The gh-dash package to use.

Type: package

Default: pkgs.gh-dash

Declared by:

<home-manager/modules/programs/gh-dash.nix>
programs.gh-dash.settings

Configuration written to $XDG_CONFIG_HOME/gh-dash/config.yml.

Type: YAML value

Default: { }

Example:

{
  prSections = [{
    title = "My Pull Requests";
    filters = "is:open author:@me";
  }];
}

Declared by:

<home-manager/modules/programs/gh-dash.nix>
programs.git.enable

Whether to enable Git.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.package

Git package to install. Use pkgs.gitAndTools.gitFull to gain access to git send-email for instance.

Type: package

Default: pkgs.git

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.aliases

Git aliases to define.

Type: attribute set of string

Default: { }

Example:

{
  co = "checkout";
}

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.attributes

List of defining attributes set globally.

Type: list of string

Default: [ ]

Example:

[
  "*.pdf diff=pdf"
]

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.delta.enable

Whether to enable the delta syntax highlighter. See https://github.com/dandavison/delta.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.delta.package

The delta package to use.

Type: package

Default: pkgs.delta

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.delta.options

Options to configure delta.

Type: attribute set of (string or boolean or signed integer or attribute set of (string or boolean or signed integer))

Default: { }

Example:

{
  decorations = {
    commit-decoration-style = "bold yellow box ul";
    file-decoration-style = "none";
    file-style = "bold yellow ul";
  };
  features = "decorations";
  whitespace-error-style = "22 reverse";
}

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.diff-highlight.enable

Enable the contrib diff-highlight syntax highlighter. See https://github.com/git/git/blob/master/contrib/diff-highlight/README,

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.diff-highlight.pagerOpts

Arguments to be passed to less.

Type: list of string

Default: [ ]

Example:

[
  "--tabs=4"
  "-RFX"
]

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.diff-so-fancy.enable

Enable the diff-so-fancy diff colorizer. See https://github.com/so-fancy/diff-so-fancy.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.diff-so-fancy.changeHunkIndicators

Simplify git header chunks to a more human readable format.

Type: boolean

Default: true

Example: false

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.diff-so-fancy.markEmptyLines

Whether the first block of an empty line should be colored.

Type: boolean

Default: true

Example: false

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.diff-so-fancy.pagerOpts

Arguments to be passed to less.

Type: list of string

Default:

[
  "--tabs=4"
  "-RFX"
]

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.diff-so-fancy.rulerWidth

By default, the separator for the file header spans the full width of the terminal. Use this setting to set the width of the file header manually.

Type: null or signed integer

Default: null

Example: false

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.diff-so-fancy.stripLeadingSymbols

Whether the + or - at line-start should be removed.

Type: boolean

Default: true

Example: false

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.diff-so-fancy.useUnicodeRuler

By default, the separator for the file header uses Unicode line-drawing characters. If this is causing output errors on your terminal, set this to false to use ASCII characters instead.

Type: boolean

Default: true

Example: false

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.difftastic.enable

Enable the difftastic syntax highlighter. See https://github.com/Wilfred/difftastic.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.difftastic.package

The difftastic package to use.

Type: package

Default: pkgs.difftastic

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.difftastic.background

Determines whether difftastic should use the lighter or darker colors for syntax highlighting.

Type: one of “light”, “dark”

Default: "light"

Example: "dark"

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.difftastic.color

Determines when difftastic should color its output.

Type: one of “always”, “auto”, “never”

Default: "auto"

Example: "always"

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.difftastic.display

Determines how the output displays - in one column or two columns.

Type: one of “side-by-side”, “side-by-side-show-both”, “inline”

Default: "side-by-side"

Example: "inline"

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.extraConfig

Additional configuration to add. The use of string values is deprecated and will be removed in the future.

Type: strings concatenated with “\n” or attribute set of attribute set of (string or boolean or signed integer or list of (string or boolean or signed integer) or attribute set of (string or boolean or signed integer or list of (string or boolean or signed integer)))

Default: { }

Example:

{
  core = {
    whitespace = "trailing-space,space-before-tab";
  };
  url = {
    "ssh://git@host" = {
      insteadOf = "otherhost";
    };
  };
}

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.hooks

Configuration helper for Git hooks. See https://git-scm.com/docs/githooks for reference.

Type: attribute set of path

Default: { }

Example:

{
  pre-commit = ./pre-commit-script;
}

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.ignores

List of paths that should be globally ignored.

Type: list of string

Default: [ ]

Example:

[
  "*~"
  "*.swp"
]

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.includes

List of configuration files to include.

Type: list of (submodule)

Default: [ ]

Example:

[
  { path = "~/path/to/config.inc"; }
  {
    path = "~/path/to/conditional.inc";
    condition = "gitdir:~/src/dir";
  }
]

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.includes.*.condition

Include this configuration only when condition matches. Allowed conditions are described in git-config(1).

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.includes.*.contentSuffix

Nix store name for the git configuration text file, when generating the configuration text from nix options.

Type: string

Default: "gitconfig"

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.includes.*.contents

Configuration to include. If empty then a path must be given.

This follows the configuration structure as described in git-config(1).

Type: attribute set of anything

Default: { }

Example:

{
  user = {
    email = "bob@work.example.com";
    name = "Bob Work";
    signingKey = "1A2B3C4D5E6F7G8H";
  };
  commit = {
    gpgSign = true;
  };
};

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.includes.*.path

Path of the configuration file to include.

Type: string or path

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.lfs.enable

Whether to enable Git Large File Storage.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.lfs.skipSmudge

Skip automatic downloading of objects on clone or pull. This requires a manual git lfs pull every time a new commit is checked out on your repository.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.maintenance.enable

Enable the automatic git maintenance.

See https://git-scm.com/docs/git-maintenance.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.maintenance.repositories

Repositories on which git maintenance should run.

Should be a list of absolute paths.

Type: list of string

Default: [ ]

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.maintenance.timers

Systemd timers to create for scheduled git maintenance.

Key is passed to --schedule argument in git maintenance run and value is passed to Timer.OnCalendar in systemd.user.timers.

Type: attribute set of string

Default:

{
  daily = "Tue..Sun *-*-* 0:53:00";
  hourly = "*-*-* 1..23:53:00";
  weekly = "Mon 0:53:00";
}

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.signing

Options related to signing commits using GnuPG.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.signing.gpgPath

Path to GnuPG binary to use.

Type: string

Default: "\${pkgs.gnupg}/bin/gpg2"

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.signing.key

The default GPG signing key fingerprint.

Set to null to let GnuPG decide what signing key to use depending on commit’s author.

Type: null or string

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.signing.signByDefault

Whether commits and tags should be signed by default.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.userEmail

Default user email to use.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.userName

Default user name to use.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/git.nix>
programs.git-cliff.enable

Whether to enable git-cliff changelog generator.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/git-cliff.nix>
programs.git-cliff.package

The git-cliff package to use.

Type: package

Default: pkgs.git-cliff

Declared by:

<home-manager/modules/programs/git-cliff.nix>
programs.git-cliff.settings

Configuration written to $XDG_CONFIG_HOME/git-cliff/cliff.toml. See https://git-cliff.org/docs/configuration for the documentation.

Type: TOML value

Default: { }

Example:

{
  header = "Changelog";
  trim = true;
}

Declared by:

<home-manager/modules/programs/git-cliff.nix>
programs.git-credential-oauth.enable

Whether to enable Git authentication handler for OAuth.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/git-credential-oauth.nix>
programs.git-credential-oauth.package

The git-credential-oauth package to use.

Type: package

Default: pkgs.git-credential-oauth

Declared by:

<home-manager/modules/programs/git-credential-oauth.nix>
programs.git-credential-oauth.extraFlags

Extra command-line arguments passed to git-credential-oauth.

For valid arguments, see git-credential-oauth(1).

Type: list of string

Default: [ ]

Example: [ "-device" ]

Declared by:

<home-manager/modules/programs/git-credential-oauth.nix>
programs.gitui.enable

Whether to enable gitui, blazing fast terminal-ui for git written in rust.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/gitui.nix>
programs.gitui.package

The package to use.

Type: package

Default: "pkgs.gitui"

Declared by:

<home-manager/modules/programs/gitui.nix>
programs.gitui.keyConfig

Key config in Ron file format. This is written to $XDG_CONFIG_HOME/gitui/key_config.ron.

Type: path or strings concatenated with “\n”

Default: ""

Example:

''
  exit: Some(( code: Char('c'), modifiers: ( bits: 2,),)),
  quit: Some(( code: Char('q'), modifiers: ( bits: 0,),)),
  exit_popup: Some(( code: Esc, modifiers: ( bits: 0,),)),
''

Declared by:

<home-manager/modules/programs/gitui.nix>
programs.gitui.theme

Theme in Ron file format. This is written to $XDG_CONFIG_HOME/gitui/theme.ron.

Type: path or strings concatenated with “\n”

Default:

''
  (
    selected_tab: Reset,
    command_fg: White,
    selection_bg: Blue,
    selection_fg: White,
    cmdbar_bg: Blue,
    cmdbar_extra_lines_bg: Blue,
    disabled_fg: DarkGray,
    diff_line_add: Green,
    diff_line_delete: Red,
    diff_file_added: LightGreen,
    diff_file_removed: LightRed,
    diff_file_moved: LightMagenta,
    diff_file_modified: Yellow,
    commit_hash: Magenta,
    commit_time: LightCyan,
    commit_author: Green,
    danger_fg: Red,
    push_gauge_bg: Blue,
    push_gauge_fg: Reset,
    tag_fg: LightMagenta,
    branch_fg: LightYellow,
  )
''

Declared by:

<home-manager/modules/programs/gitui.nix>
programs.gnome-shell.enable

Whether to enable GNOME Shell customization.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/gnome-shell.nix>
programs.gnome-shell.extensions

List of GNOME Shell extensions.

Type: list of (submodule)

Default: [ ]

Example:

[
  { package = pkgs.gnomeExtensions.dash-to-panel; }
  {
    id = "user-theme@gnome-shell-extensions.gcampax.github.com";
    package = pkgs.gnome.gnome-shell-extensions;
  }
]

Declared by:

<home-manager/modules/programs/gnome-shell.nix>
programs.gnome-shell.extensions.*.package

Package providing a GNOME Shell extension in $out/share/gnome-shell/extensions/${id}.

Type: package

Example: "pkgs.gnome.gnome-shell-extensions"

Declared by:

<home-manager/modules/programs/gnome-shell.nix>
programs.gnome-shell.extensions.*.id

ID of the GNOME Shell extension. If not provided, it will be obtained from package.extensionUuid.

Type: string

Example: "user-theme@gnome-shell-extensions.gcampax.github.com"

Declared by:

<home-manager/modules/programs/gnome-shell.nix>
programs.gnome-shell.theme

Theme to use for GNOME Shell.

Type: null or (submodule)

Default: null

Example:

{
  name = "Plata-Noir";
  package = pkgs.plata-theme;
}

Declared by:

<home-manager/modules/programs/gnome-shell.nix>
programs.gnome-shell.theme.package

Package providing a GNOME Shell theme in $out/share/themes/${name}/gnome-shell.

Type: null or package

Default: null

Example: pkgs.plata-theme

Declared by:

<home-manager/modules/programs/gnome-shell.nix>
programs.gnome-shell.theme.name

Name of the GNOME Shell theme.

Type: string

Example: "Plata-Noir"

Declared by:

<home-manager/modules/programs/gnome-shell.nix>
programs.gnome-terminal.enable

Whether to enable Gnome Terminal.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile

A set of Gnome Terminal profiles. Note, the name of a profile must be a UUID. You can generate one, for example, using uuidgen (from util-linux).

Type: attribute set of (submodule)

Default: { }

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.allowBold

If true, allow applications in the terminal to make text boldface.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.audibleBell

Turn on/off the terminal’s bell.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.backspaceBinding

Which string the terminal should send to an application when the user presses the Backspace key.

auto

Attempt to determine the right value from the terminal’s IO settings.

ascii-backspace

Send an ASCII backspace character (0x08).

ascii-delete

Send an ASCII delete character (0x7F).

delete-sequence

Send the @7 control sequence.

tty

Send terminal’s “erase” setting.

Type: one of “auto”, “ascii-backspace”, “ascii-delete”, “delete-sequence”, “tty”

Default: "ascii-delete"

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.boldIsBright

Whether bold text is shown in bright colors.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.colors

The terminal colors, null to use system default.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.colors.backgroundColor

The background color.

Type: string

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.colors.boldColor

The bold color, null to use same as foreground.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.colors.cursor

The color for the terminal cursor.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.colors.cursor.background

The background color.

Type: string

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.colors.cursor.foreground

The foreground color.

Type: string

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.colors.foregroundColor

The foreground color.

Type: string

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.colors.highlight

The colors for the terminal’s highlighted area.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.colors.highlight.background

The background color.

Type: string

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.colors.highlight.foreground

The foreground color.

Type: string

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.colors.palette

The terminal palette.

Type: list of string

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.cursorBlinkMode

The cursor blink mode.

Type: one of “system”, “on”, “off”

Default: "system"

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.cursorShape

The cursor shape.

Type: one of “block”, “ibeam”, “underline”

Default: "block"

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.customCommand

The command to use to start the shell, or null for default shell.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.default

Whether this should be the default profile.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.deleteBinding

Which string the terminal should send to an application when the user presses the Delete key.

auto

Send the @7 control sequence.

ascii-backspace

Send an ASCII backspace character (0x08).

ascii-delete

Send an ASCII delete character (0x7F).

delete-sequence

Send the @7 control sequence.

tty

Send terminal’s “erase” setting.

Type: one of “auto”, “ascii-backspace”, “ascii-delete”, “delete-sequence”, “tty”

Default: "delete-sequence"

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.font

The font name, null to use system default.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.loginShell

Run command as a login shell.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.scrollOnOutput

Whether to scroll when output is written.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.scrollbackLines

The number of scrollback lines to keep, null for infinite.

Type: null or signed integer

Default: 10000

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.showScrollbar

Whether the scroll bar should be visible.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.transparencyPercent

Background transparency in percent.

Type: null or integer between 0 and 100 (both inclusive)

Default: null

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.profile.<name>.visibleName

The profile name.

Type: string

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.showMenubar

Whether to show the menubar by default

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.gnome-terminal.themeVariant

The theme variation to request

Type: one of “default”, “light”, “dark”, “system”

Default: "default"

Declared by:

<home-manager/modules/programs/gnome-terminal.nix>
programs.go.enable

Whether to enable Go.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/go.nix>
programs.go.package

The Go package to use.

Type: package

Default: pkgs.go

Declared by:

<home-manager/modules/programs/go.nix>
programs.go.packages

Packages to add to GOPATH.

Type: attribute set of path

Default: { }

Example:

{
  "golang.org/x/text" = builtins.fetchGit "https://go.googlesource.com/text";
  "golang.org/x/time" = builtins.fetchGit "https://go.googlesource.com/time";
}

Declared by:

<home-manager/modules/programs/go.nix>
programs.go.extraGoPaths

Extra GOPATHs relative to HOME appended after programs.go.goPath, if that option is set.

Type: list of string

Default: [ ]

Example:

[
  "extraGoPath1"
  "extraGoPath2"
]

Declared by:

<home-manager/modules/programs/go.nix>
programs.go.goBin

GOBIN relative to HOME

Type: null or string

Default: null

Example: ".local/bin.go"

Declared by:

<home-manager/modules/programs/go.nix>
programs.go.goPath

Primary GOPATH relative to HOME. It will be exported first and therefore used by default by the Go tooling.

Type: null or string

Default: null

Example: "go"

Declared by:

<home-manager/modules/programs/go.nix>
programs.go.goPrivate

The GOPRIVATE environment variable controls which modules the go command considers to be private (not available publicly) and should therefore not use the proxy or checksum database.

Type: list of string

Default: [ ]

Example:

[
  "*.corp.example.com"
  "rsc.io/private"
]

Declared by:

<home-manager/modules/programs/go.nix>
programs.gpg.enable

Whether to enable GnuPG.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/gpg.nix>
programs.gpg.package

The Gnupg package to use (also used by the gpg-agent service).

Type: package

Default: pkgs.gnupg

Example: pkgs.gnupg23

Declared by:

<home-manager/modules/programs/gpg.nix>
programs.gpg.homedir

Directory to store keychains and configuration.

Type: path

Default: "${config.home.homeDirectory}/.gnupg"

Example: "${config.xdg.dataHome}/gnupg"

Declared by:

<home-manager/modules/programs/gpg.nix>
programs.gpg.mutableKeys

If set to true, you may manage your keyring as a user using the gpg command. Upon activation, the keyring will have managed keys added without overwriting unmanaged keys.

If set to false, the path $GNUPGHOME/pubring.kbx will become an immutable link to the Nix store, denying modifications.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/gpg.nix>
programs.gpg.mutableTrust

If set to true, you may manage trust as a user using the gpg command. Upon activation, trusted keys have their trust set without overwriting unmanaged keys.

If set to false, the path $GNUPGHOME/trustdb.gpg will be overwritten on each activation, removing trust for any unmanaged keys. Be careful to make a backup of your old trustdb.gpg before switching to immutable trust!

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/gpg.nix>
programs.gpg.publicKeys

A list of public keys to be imported into GnuPG. Note, these key files will be copied into the world-readable Nix store.

Type: list of (submodule)

Default: [ ]

Example:

[ { source = ./pubkeys.txt; } ]

Declared by:

<home-manager/modules/programs/gpg.nix>
programs.gpg.publicKeys.*.source

Path of an OpenPGP public key file.

Type: path

Declared by:

<home-manager/modules/programs/gpg.nix>
programs.gpg.publicKeys.*.text

Text of an OpenPGP public key.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/gpg.nix>
programs.gpg.publicKeys.*.trust

The amount of trust you have in the key ownership and the care the owner puts into signing other keys. The available levels are

unknown or 1

I don’t know or won’t say.

never or 2

I do not trust.

marginal or 3

I trust marginally.

full or 4

I trust fully.

ultimate or 5

I trust ultimately.

See the Key Management chapter of the GNU Privacy Handbook for more.

Type: null or one of “unknown”, 1, “never”, 2, “marginal”, 3, “full”, 4, “ultimate”, 5

Default: null

Declared by:

<home-manager/modules/programs/gpg.nix>
programs.gpg.scdaemonSettings

SCdaemon configuration options. Available options are described in scdaemon(1) .

Type: attribute set of (string or boolean or list of string)

Example:

{
  disable-ccid = true;
}

Declared by:

<home-manager/modules/programs/gpg.nix>
programs.gpg.settings

GnuPG configuration options. Available options are described in gpg(1) .

Note that lists are converted to duplicate keys.

Type: attribute set of (string or boolean or list of string)

Example:

{
  no-comments = false;
  s2k-cipher-algo = "AES128";
}

Declared by:

<home-manager/modules/programs/gpg.nix>
programs.gradle.enable

Whether to enable Gradle Build Tool.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/gradle.nix>
programs.gradle.package

The gradle package to use.

Type: package

Default: pkgs.gradle

Example: pkgs.gradle_7

Declared by:

<home-manager/modules/programs/gradle.nix>
programs.gradle.home

The Gradle home directory, relative to home.homeDirectory.

If set, the GRADLE_USER_HOME environment variable will be set accordingly. Defaults to .gradle.

Type: string

Default: ".gradle"

Declared by:

<home-manager/modules/programs/gradle.nix>
programs.gradle.initScripts

Definition of init scripts to link into the Gradle home directory.

For more information about init scripts, including naming conventions see https://docs.gradle.org/current/userguide/init_scripts.html.

Type: attribute set of (submodule)

Default: { }

Example:

{
  "maven-local.gradle".text = ''
      allProject {
        repositories {
          mavenLocal()
        }
      }
  '';
  "another.init.gradle.kts".source = ./another.init.gradle.kts;
}

Declared by:

<home-manager/modules/programs/gradle.nix>
programs.gradle.initScripts.<name>.source

Path of the init script file. If text is non-null then this option will automatically point to a file containing that text.

Type: path

Declared by:

<home-manager/modules/programs/gradle.nix>
programs.gradle.initScripts.<name>.text

Text of the init script file. if this option is null then source must be set.

Type: null or strings concatenated with “\n”

Default: null

Declared by:

<home-manager/modules/programs/gradle.nix>
programs.gradle.settings

Key value pairs to write to gradle.properties in the Gradle home directory.

Type: attribute set of (string, package, bool, int or float)

Default: { }

Example:

{
  "org.gradle.caching" = true;
  "org.gradle.parallel" = true;
  "org.gradle.jvmargs" = "-XX:MaxMetaspaceSize=384m";
  "org.gradle.home" = pkgs.jdk17;
};

Declared by:

<home-manager/modules/programs/gradle.nix>
programs.granted.enable

Whether to enable granted.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/granted.nix>
programs.granted.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/granted.nix>
programs.havoc.enable

Whether to enable Havoc terminal.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/havoc.nix>
programs.havoc.package

The havoc package to use.

Type: package

Default: pkgs.havoc

Declared by:

<home-manager/modules/programs/havoc.nix>
programs.havoc.settings

Configuration written to $XDG_CONFIG_HOME/havoc.cfg. See https://raw.githubusercontent.com/ii8/havoc/master/havoc.cfg for a list of available options.

Type: attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))

Default: { }

Example:

{
  child.program = "bash";
  window.opacity = 240;
  window.margin = no;
  terminal = {
    rows = 80;
    columns = 24;
    scrollback = 2000;
  };
  bind = {
    "C-S-c" = "copy";
    "C-S-v" = "paste";
    "C-S-r" = "reset";
    "C-S-Delete" = "hard reset";
    "C-S-j" = "scroll down";
    "C-S-k" = "scroll up";
    "C-S-Page_Down" = "scroll down page";
    "C-S-Page_Up" = "scroll up page";
    "C-S-End" = "scroll to bottom";
    "C-S-Home" = "scroll to top";
  };
}

Declared by:

<home-manager/modules/programs/havoc.nix>
programs.helix.enable

Whether to enable helix text editor.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/helix.nix>
programs.helix.package

The package to use for helix.

Type: package

Default: pkgs.helix

Example: pkgs.evil-helix

Declared by:

<home-manager/modules/programs/helix.nix>
programs.helix.defaultEditor

Whether to configure hx as the default editor using the EDITOR environment variable.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/helix.nix>
programs.helix.extraPackages

Extra packages available to hx.

Type: list of package

Default: [ ]

Example: [ pkgs.marksman ]

Declared by:

<home-manager/modules/programs/helix.nix>
programs.helix.ignores

List of paths that should be globally ignored for file picker. Supports the usual ignore and negative ignore (unignore) rules used in .gitignore files.

Type: list of string

Default: [ ]

Example:

[
  ".build/"
  "!.gitignore"
]

Declared by:

<home-manager/modules/programs/helix.nix>
programs.helix.languages

Language specific configuration at $XDG_CONFIG_HOME/helix/languages.toml.

See https://docs.helix-editor.com/languages.html for more information.

Type: (TOML value) or (list of (TOML value)) convertible to it

Default: { }

Example:

{
  language-server.typescript-language-server = with pkgs.nodePackages; {
    command = "${typescript-language-server}/bin/typescript-language-server";
    args = [ "--stdio" "--tsserver-path=${typescript}/lib/node_modules/typescript/lib" ];
  };

  language = [{
    name = "rust";
    auto-format = false;
  }];
}

Declared by:

<home-manager/modules/programs/helix.nix>
programs.helix.settings

Configuration written to $XDG_CONFIG_HOME/helix/config.toml.

See https://docs.helix-editor.com/configuration.html for the full list of options.

Type: TOML value

Default: { }

Example:

{
  theme = "base16";
  editor = {
    line-number = "relative";
    lsp.display-messages = true;
  };
  keys.normal = {
    space.space = "file_picker";
    space.w = ":w";
    space.q = ":q";
    esc = [ "collapse_selection" "keep_primary_selection" ];
  };
}

Declared by:

<home-manager/modules/programs/helix.nix>
programs.helix.themes

Each theme is written to $XDG_CONFIG_HOME/helix/themes/theme-name.toml. Where the name of each attribute is the theme-name (in the example “base16”).

See https://docs.helix-editor.com/themes.html for the full list of options.

Type: attribute set of (TOML value)

Default: { }

Example:

{
  base16 = let
    transparent = "none";
    gray = "#665c54";
    dark-gray = "#3c3836";
    white = "#fbf1c7";
    black = "#282828";
    red = "#fb4934";
    green = "#b8bb26";
    yellow = "#fabd2f";
    orange = "#fe8019";
    blue = "#83a598";
    magenta = "#d3869b";
    cyan = "#8ec07c";
  in {
    "ui.menu" = transparent;
    "ui.menu.selected" = { modifiers = [ "reversed" ]; };
    "ui.linenr" = { fg = gray; bg = dark-gray; };
    "ui.popup" = { modifiers = [ "reversed" ]; };
    "ui.linenr.selected" = { fg = white; bg = black; modifiers = [ "bold" ]; };
    "ui.selection" = { fg = black; bg = blue; };
    "ui.selection.primary" = { modifiers = [ "reversed" ]; };
    "comment" = { fg = gray; };
    "ui.statusline" = { fg = white; bg = dark-gray; };
    "ui.statusline.inactive" = { fg = dark-gray; bg = white; };
    "ui.help" = { fg = dark-gray; bg = white; };
    "ui.cursor" = { modifiers = [ "reversed" ]; };
    "variable" = red;
    "variable.builtin" = orange;
    "constant.numeric" = orange;
    "constant" = orange;
    "attributes" = yellow;
    "type" = yellow;
    "ui.cursor.match" = { fg = yellow; modifiers = [ "underlined" ]; };
    "string" = green;
    "variable.other.member" = red;
    "constant.character.escape" = cyan;
    "function" = blue;
    "constructor" = blue;
    "special" = blue;
    "keyword" = magenta;
    "label" = magenta;
    "namespace" = blue;
    "diff.plus" = green;
    "diff.delta" = yellow;
    "diff.minus" = red;
    "diagnostic" = { modifiers = [ "underlined" ]; };
    "ui.gutter" = { bg = black; };
    "info" = blue;
    "hint" = dark-gray;
    "debug" = dark-gray;
    "warning" = yellow;
    "error" = red;
  };
}

Declared by:

<home-manager/modules/programs/helix.nix>
programs.hexchat.enable

Whether to enable HexChat, a graphical IRC client.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels

Configures $XDG_CONFIG_HOME/hexchat/servlist.conf.

Type: attribute set of (submodule)

Default: { }

Example:

{
  oftc = {
    autojoin = [
      "#home-manager"
      "#linux"
    ];
    charset = "UTF-8 (Unicode)";
    commands = [
      "ECHO Buzz Lightyear sent you a message: 'To Infinity... and Beyond!'"
    ];
    loginMethod = sasl;
    nickname = "my_nickname";
    nickname2 = "my_secondchoice";
    options = {
      acceptInvalidSSLCertificates = false;
      autoconnect = true;
      bypassProxy = true;
      connectToSelectedServerOnly = true;
      useGlobalUserInformation = false;
      forceSSL = false;
    };
    password = "my_password";
    realName = "my_realname";
    servers = [
      "irc.oftc.net"
    ];
    userName = "my_username";
  };
}

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.autojoin

Channels list to autojoin on connecting to server.

Type: list of string

Default: [ ]

Example:

[
  "#home-manager"
  "#linux"
  "#nix"
]

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.charset

Character set.

Type: null or string

Default: null

Example: "UTF-8 (Unicode)"

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.commands

Commands to be executed on connecting to server.

Type: list of string

Default: [ ]

Example: [ "ECHO Greetings fellow Nixer! ]

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.loginMethod

The login method. The allowed options are:

null

Default

"nickServMsg"

NickServ (/MSG NickServ + password)

"nickServ"

NickServ (/NICKSERV + password)

"challengeAuth"

Challenge Auth (username + password)

"sasl"

SASL (username + password)

"serverPassword"

Server password (/PASS password)

"saslExternal"

SASL EXTERNAL (cert)

"customCommands"

Use “commands” field for auth. For example

commands = [ "/msg NickServ IDENTIFY my_password" ]

Type: null or one of “challengeAuth”, “customCommands”, “nickServ”, “nickServMsg”, “sasl”, “saslExternal”, “serverPassword”

Default: null

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.nickname

Primary nickname.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.nickname2

Secondary nickname.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.options

Channel options.

Type: null or (submodule)

Default: null

Example:

{
  autoconnect = true;
  useGlobalUserInformation = true;
}

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.options.acceptInvalidSSLCertificates

Accept invalid SSL certificates.

Type: null or boolean

Default: false

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.options.autoconnect

Autoconnect to network.

Type: null or boolean

Default: false

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.options.bypassProxy

Bypass proxy.

Type: null or boolean

Default: true

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.options.connectToSelectedServerOnly

Connect to selected server only.

Type: null or boolean

Default: true

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.options.forceSSL

Use SSL for all servers.

Type: null or boolean

Default: false

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.options.useGlobalUserInformation

Use global user information.

Type: null or boolean

Default: false

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.password

Password to use. Note this password will be readable by all user’s in the Nix store.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.realName

Real name. Is used to populate the real name field that appears when someone uses the WHOIS command on your nick.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.servers

IRC Server Address List.

Type: list of string

Default: [ ]

Example:

[
  "irc.oftc.net"
]

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.channels.<name>.userName

User name. Part of your user@host hostmask that appears to other on IRC.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.overwriteConfigFiles

Enables overwriting HexChat configuration files (hexchat.conf, servlist.conf). Any existing HexChat configuration will be lost. Make sure to back up any previous configuration before enabling this.

Enabling this setting is recommended, because everytime HexChat application is closed it overwrites Nix/Home Manager provided configuration files, causing:

  1. Nix/Home Manager provided configuration to be out of sync with actual active HexChat configuration.

  2. Nix/Home Manager updates to be blocked until configuration files are manually removed.

Type: null or boolean

Default: false

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.settings

Configuration for $XDG_CONFIG_HOME/hexchat/hexchat.conf, see https://hexchat.readthedocs.io/en/latest/settings.html#list-of-settings for supported values.

Type: null or (attribute set of string)

Default: null

Example:

{
  irc_nick1 = "mynick";
  irc_username = "bob";
  irc_realname = "Bart Simpson";
  text_font = "Monospace 14";
};

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.hexchat.theme

Theme package for HexChat. Expects a derivation containing decompressed theme files. Note, .hct files are actually ZIP files, as seen in example.

Type: null or package

Default: null

Example:

source = pkgs.fetchzip {
  url = "https://dl.hexchat.net/themes/Monokai.hct#Monokai.zip";
  sha256 = "sha256-WCdgEr8PwKSZvBMs0fN7E2gOjNM0c2DscZGSKSmdID0=";
  stripRoot = false;
};

Declared by:

<home-manager/modules/programs/hexchat.nix>
programs.himalaya.enable

Whether to enable the email client Himalaya CLI.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/himalaya.nix>
programs.himalaya.package

The himalaya package to use.

Type: package

Default: pkgs.himalaya

Declared by:

<home-manager/modules/programs/himalaya.nix>
programs.himalaya.settings

Himalaya CLI global configuration. See https://pimalaya.org/himalaya/cli/latest/configuration/index.html#global-configuration for supported values.

Type: TOML value

Default: { }

Declared by:

<home-manager/modules/programs/himalaya.nix>
programs.home-manager.enable

Whether to enable Home Manager.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/home-manager.nix>
programs.home-manager.path

The default path to use for Home Manager. When null, then the home-manager channel, $HOME/.config/nixpkgs/home-manager, and $HOME/.nixpkgs/home-manager will be attempted.

Type: null or string

Default: null

Example: "$HOME/devel/home-manager"

Declared by:

<home-manager/modules/programs/home-manager.nix>
programs.hstr.enable

Whether to enable Bash And Zsh shell history suggest box - easily view, navigate, search and manage your command history.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/hstr.nix>
programs.hstr.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/hstr.nix>
programs.hstr.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/hstr.nix>
programs.hstr.package

The hstr package to use.

Type: package

Default: pkgs.hstr

Declared by:

<home-manager/modules/programs/hstr.nix>
programs.htop.enable

Whether to enable htop.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/htop.nix>
programs.htop.package

Package containing the htop program.

Type: package

Default: pkgs.htop

Declared by:

<home-manager/modules/programs/htop.nix>
programs.htop.settings

Configuration options to add to $XDG_CONFIG_HOME/htop/htoprc.

Type: attribute set of (boolean or signed integer or string or list of (signed integer or string))

Default: { }

Example:

{
  color_scheme = 6;
  cpu_count_from_one = 0;
  delay = 15;
  fields = with config.lib.htop.fields; [
    PID
    USER
    PRIORITY
    NICE
    M_SIZE
    M_RESIDENT
    M_SHARE
    STATE
    PERCENT_CPU
    PERCENT_MEM
    TIME
    COMM
  ];
  highlight_base_name = 1;
  highlight_megabytes = 1;
  highlight_threads = 1;
} // (with config.lib.htop; leftMeters [
  (bar "AllCPUs2")
  (bar "Memory")
  (bar "Swap")
  (text "Zram")
]) // (with config.lib.htop; rightMeters [
  (text "Tasks")
  (text "LoadAverage")
  (text "Uptime")
  (text "Systemd")
]);

Declared by:

<home-manager/modules/programs/htop.nix>
programs.hyfetch.enable

Whether to enable hyfetch.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/hyfetch.nix>
programs.hyfetch.package

The hyfetch package to use.

Type: package

Default: pkgs.hyfetch

Declared by:

<home-manager/modules/programs/hyfetch.nix>
programs.hyfetch.settings

JSON config for HyFetch

Type: JSON value

Default: { }

Example:

{
  preset = "rainbow";
  mode = "rgb";
  color_align = {
    mode = "horizontal";
  };
}

Declared by:

<home-manager/modules/programs/hyfetch.nix>
programs.hyprlock.enable

Whether to enable Hyprlock, Hyprland’s GPU-accelerated lock screen utility.

Note that PAM must be configured to enable hyprlock to perform authentication. The package installed through home-manager will not be able to unlock the session without this configuration.

On NixOS, it can be enabled using:

security.pam.services.hyprlock = {};

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/hyprlock.nix>
programs.hyprlock.package

The hyprlock package to use.

Type: package

Default: pkgs.hyprlock

Declared by:

<home-manager/modules/programs/hyprlock.nix>
programs.hyprlock.extraConfig

Extra configuration lines to add to ~/.config/hypr/hyprlock.conf.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/hyprlock.nix>
programs.hyprlock.importantPrefixes

List of prefix of attributes to source at the top of the config.

Type: list of string

Default:

[
  "$"
  "monitor"
  "size"
  "source"
]

Example:

[
  "$"
  "monitor"
  "size"
]

Declared by:

<home-manager/modules/programs/hyprlock.nix>
programs.hyprlock.settings

Hyprlock configuration written in Nix. Entries with the same key should be written as lists. Variables’ and colors’ names should be quoted. See https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/ for more examples.

Type: Hyprlock configuration value

Default: { }

Example:

{
  general = {
    disable_loading_bar = true;
    grace = 300;
    hide_cursor = true;
    no_fade_in = false;
  };

  background = [
    {
      path = "screenshot";
      blur_passes = 3;
      blur_size = 8;
    }
  ];

  input-field = [
    {
      size = "200, 50";
      position = "0, -80";
      monitor = "";
      dots_center = true;
      fade_on_empty = false;
      font_color = "rgb(202, 211, 245)";
      inner_color = "rgb(91, 96, 120)";
      outer_color = "rgb(24, 25, 38)";
      outline_thickness = 5;
      placeholder_text = '\'<span foreground="##cad3f5">Password...</span>'\';
      shadow_passes = 2;
    }
  ];
}

Declared by:

<home-manager/modules/programs/hyprlock.nix>
programs.hyprlock.sourceFirst

Whether to enable putting source entries at the top of the configuration .

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/hyprlock.nix>
programs.i3blocks.enable

Whether to enable i3blocks i3 status command scheduler.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/i3blocks.nix>
programs.i3blocks.package

Package providing i3blocks.

Type: package

Default: pkgs.i3blocks

Declared by:

<home-manager/modules/programs/i3blocks.nix>
programs.i3blocks.bars

Configuration written to i3blocks config

Type: attribute set of (DAG of attribute set of (INI atom (null, int, bool, string, or float)))

Example:

{
  top = {
    # The title block
    title = {
      interval = "persist";
      command = "xtitle -s";
    };
  };
  bottom = {
    time = {
      command = "date +%r";
      interval = 1;
    };
    # Make sure this block comes after the time block
    date = lib.hm.dag.entryAfter [ "time" ] {
      command = "date +%d";
      interval = 5;
    };
    # And this block after the example block
    example = lib.hm.dag.entryAfter [ "date" ] {
      command = "echo hi $(date +%s)";
      interval = 3;
    };
  };
}

Declared by:

<home-manager/modules/programs/i3blocks.nix>
programs.i3status.enable

Whether to enable i3status.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/i3status.nix>
programs.i3status.enableDefault

Whether or not to enable the default configuration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/i3status.nix>
programs.i3status.package

The i3status package to use.

Type: package

Default: pkgs.i3status

Declared by:

<home-manager/modules/programs/i3status.nix>
programs.i3status.general

Configuration to add to i3status config general section. See i3status(1) for options.

Type: attribute set of (boolean or signed integer or string)

Default: { }

Example:

{
  colors = true;
  color_good = "#e0e0e0";
  color_degraded = "#d7ae00";
  color_bad = "#f69d6a";
  interval = 1;
}

Declared by:

<home-manager/modules/programs/i3status.nix>
programs.i3status.modules

Modules to add to i3status config file. See i3status(1) for options.

Type: attribute set of (submodule)

Default: { }

Example:

{
  "volume master" = {
    position = 1;
    settings = {
      format = "♪ %volume";
      format_muted = "♪ muted (%volume)";
      device = "pulse:1";
    };
  };
  "disk /" = {
    position = 2;
    settings = {
      format = "/ %avail";
    };
  };
}

Declared by:

<home-manager/modules/programs/i3status.nix>
programs.i3status.modules.<name>.enable

Whether or not to enable this module.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/i3status.nix>
programs.i3status.modules.<name>.position

Position of this module in i3status order.

Type: signed integer or floating point number

Declared by:

<home-manager/modules/programs/i3status.nix>
programs.i3status.modules.<name>.settings

Configuration to add to this i3status module. See i3status(1) for options.

Type: attribute set of (boolean or signed integer or string)

Default: { }

Example:

{
  format = "♪ %volume";
  format_muted = "♪ muted (%volume)";
  device = "pulse:1";
}

Declared by:

<home-manager/modules/programs/i3status.nix>
programs.i3status-rust.enable

Whether to enable a replacement for i3-status written in Rust.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/i3status-rust.nix>
programs.i3status-rust.package

Package providing i3status-rust

Type: package

Default: pkgs.i3status-rust

Declared by:

<home-manager/modules/programs/i3status-rust.nix>
programs.i3status-rust.bars

Attribute set of i3status-rust bars, each with their own configuration. Each bar name generates a config file suffixed with the bar’s name from the attribute set, like so: config-${name}.toml.

This way, multiple config files can be generated, such as for having a top and a bottom bar.

See i3status-rust(1) for options.

Type: attribute set of (submodule)

Default:

{
  default = {
    blocks = [
      {
        alert = 10.0;
        block = "disk_space";
        info_type = "available";
        interval = 60;
        path = "/";
        warning = 20.0;
      }
      {
        block = "memory";
        format = " $icon mem_used_percents ";
        format_alt = " $icon $swap_used_percents ";
      }
      {
        block = "cpu";
        interval = 1;
      }
      {
        block = "load";
        format = " $icon $1m ";
        interval = 1;
      }
      {
        block = "sound";
      }
      {
        block = "time";
        format = " $timestamp.datetime(f:'%a %d/%m %R') ";
        interval = 60;
      }
    ];
  };
}

Example:

bottom = {
  blocks = [
    {
       block = "disk_space";
       path = "/";
       info_type = "available";
       interval = 60;
       warning = 20.0;
       alert = 10.0;
     }
     {
       block = "memory";
       format_mem = " $icon $mem_used_percents ";
       format_swap = " $icon $swap_used_percents ";
     }
     {
       block = "cpu";
       interval = 1;
     }
     {
       block = "load";
       interval = 1;
       format = " $icon $1m ";
     }
     { block = "sound"; }
     {
       block = "time";
       interval = 60;
       format = " $timestamp.datetime(f:'%a %d/%m %R') ";
     }
  ];
  settings = {
    theme =  {
      theme = "solarized-dark";
      overrides = {
        idle_bg = "#123456";
        idle_fg = "#abcdef";
      };
    };
  };
  icons = "awesome5";
  theme = "gruvbox-dark";
};

Declared by:

<home-manager/modules/programs/i3status-rust.nix>
programs.i3status-rust.bars.<name>.blocks

Configuration blocks to add to i3status-rust config. See https://github.com/greshake/i3status-rust/blob/master/blocks.md for block options.

Type: TOML value

Default:

[
  {
    block = "cpu";
  }
  {
    alert = 10.0;
    block = "disk_space";
    format = " $icon root: $available.eng(w:2) ";
    info_type = "available";
    interval = 20;
    path = "/";
    warning = 20.0;
  }
  {
    block = "memory";
    format = " $icon $mem_total_used_percents.eng(w:2) ";
    format_alt = " $icon_swap $swap_used_percents.eng(w:2) ";
  }
  {
    block = "sound";
    click = [
      {
        button = "left";
        cmd = "pavucontrol";
      }
    ];
  }
  {
    block = "time";
    format = " $timestamp.datetime(f:'%a %d/%m %R') ";
    interval = 5;
  }
]

Example:

[
  {
    block = "disk_space";
    path = "/";
    info_type = "available";
    interval = 60;
    warning = 20.0;
    alert = 10.0;
  }
  {
    block = "sound";
    format = " $icon $output_name {$volume.eng(w:2) |}";
    click = [
      {
        button = "left";
        cmd = "pavucontrol --tab=3";
      }
    ];
    mappings = {
      "alsa_output.pci-0000_00_1f.3.analog-stereo" = "";
      "bluez_sink.70_26_05_DA_27_A4.a2dp_sink" = "";
    };
  }
];

Declared by:

<home-manager/modules/programs/i3status-rust.nix>
programs.i3status-rust.bars.<name>.icons

The icons set to use. See https://github.com/greshake/i3status-rust/blob/master/doc/themes.md for a list of available icon sets.

Type: string

Default: "none"

Example: "awesome6"

Declared by:

<home-manager/modules/programs/i3status-rust.nix>
programs.i3status-rust.bars.<name>.settings

Any extra options to add to i3status-rust config.

Type: TOML value

Default: { }

Example:

{
  theme =  {
    theme = "solarized-dark";
    overrides = {
      idle_bg = "#123456";
      idle_fg = "#abcdef";
    };
  };
}

Declared by:

<home-manager/modules/programs/i3status-rust.nix>
programs.i3status-rust.bars.<name>.theme

The theme to use. See https://github.com/greshake/i3status-rust/blob/master/doc/themes.md for a list of available themes.

Type: string

Default: "plain"

Example: "gruvbox-dark"

Declared by:

<home-manager/modules/programs/i3status-rust.nix>
programs.imv.enable

Whether to enable imv: a command line image viewer intended for use with tiling window managers.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/imv.nix>
programs.imv.package

The imv package to use.

Type: package

Default: pkgs.imv

Declared by:

<home-manager/modules/programs/imv.nix>
programs.imv.settings

Configuration options for imv. See imv(5).

Type: attribute set of attribute set of (boolean or signed integer or string)

Default: { }

Example:

{
  options.background = "ffffff";
  aliases.x = "close";
}

Declared by:

<home-manager/modules/programs/imv.nix>
programs.info.enable

Whether to enable GNU Info.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/info.nix>
programs.ion.enable

Whether to enable the Ion Shell. Compatible with Redox and Linux.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/ion.nix>
programs.ion.package

The ion package to install. May be used to change the version.

Type: package

Default: pkgs.ion

Declared by:

<home-manager/modules/programs/ion.nix>
programs.ion.initExtra

Ion script which is called during ion initialization.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/ion.nix>
programs.ion.shellAliases

An attribute set that maps aliases (the top level attribute names in this option) to command strings or directly to build outputs.

Type: attribute set of string

Default: { }

Example:

{
  g = "git";
}

Declared by:

<home-manager/modules/programs/ion.nix>
programs.irssi.enable

Whether to enable the Irssi chat client.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.aliases

An attribute set that maps aliases to commands.

Type: attribute set of string

Default: { }

Example:

{
  BYE = "quit";
  J = "join";
}

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.extraConfig

These lines are appended to the Irssi configuration.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.networks

An attribute set of chat networks.

Type: attribute set of (submodule)

Default: { }

Example:

{
  liberachat = {
    nick = "hmuser";
    server = {
      address = "irc.libera.chat";
      port = 6697;
      autoConnect = true;
    };
    channels = {
      nixos.autoJoin = true;
    };
  };
}

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.networks.<name>.autoCommands

List of commands to execute on connect.

Type: list of string

Default: [ ]

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.networks.<name>.channels

Channels for the given network.

Type: attribute set of (submodule)

Default: { }

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.networks.<name>.channels.<name>.autoJoin

Whether to join this channel on connect.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.networks.<name>.nick

Nickname in that network.

Type: string

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.networks.<name>.saslExternal

Enable SASL external authentication. This requires setting a path in programs.irssi.networks.<name>.server.ssl.certificateFile.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.networks.<name>.server.address

Address of the chat server.

Type: string

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.networks.<name>.server.autoConnect

Whether Irssi connects to the server on launch.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.networks.<name>.server.port

Port of the chat server.

Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default: 6667

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.networks.<name>.server.ssl.enable

Whether SSL should be used.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.networks.<name>.server.ssl.certificateFile

Path to a file containing the certificate used for client authentication to the server.

Type: null or path

Default: null

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.networks.<name>.server.ssl.verify

Whether the SSL certificate should be verified.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.irssi.networks.<name>.type

Type of the network.

Type: string

Default: "IRC"

Declared by:

<home-manager/modules/programs/irssi.nix>
programs.java.enable

Install the Java development kit and set the JAVA_HOME variable.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/java.nix>
programs.java.package

Java package to install. Typical values are pkgs.jdk or pkgs.jre.

Type: package

Default: "pkgs.jdk"

Declared by:

<home-manager/modules/programs/java.nix>
programs.jetbrains-remote.enable

Whether to enable JetBrains remote development system.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/jetbrains-remote.nix>
programs.jetbrains-remote.ides

IDEs accessible to the JetBrains remote development system.

Type: list of package

Default: [ ]

Example:

with pkgs.jetbrains; [ clion pycharm-professional ];

Declared by:

<home-manager/modules/programs/jetbrains-remote.nix>
programs.joplin-desktop.enable

Whether to enable joplin-desktop.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/joplin-desktop.nix>
programs.joplin-desktop.package

The joplin-desktop package to use.

Type: package

Default: pkgs.joplin-desktop

Declared by:

<home-manager/modules/programs/joplin-desktop.nix>
programs.joplin-desktop.extraConfig

Use this to add other options to the Joplin config file. Settings are written in JSON, so "sync.interval": 600 would be written as "sync.interval" = 600.

Type: attribute set

Default: { }

Example:

{
  "markdown.plugin.mark" = true;
  newNoteFocus = "title";
}

Declared by:

<home-manager/modules/programs/joplin-desktop.nix>
programs.joplin-desktop.general.editor

The editor command (may include arguments) that will be used to open a note. If none is provided Joplin will try to auto-detect the default editor.

Type: null or string

Default: null

Example: "kate"

Declared by:

<home-manager/modules/programs/joplin-desktop.nix>
programs.joplin-desktop.sync.interval

Set the synchronisation interval.

Type: one of “undefined”, “disabled”, “5m”, “10m”, “30m”, “1h”, “12h”, “1d”

Default: "undefined"

Example: "10m"

Declared by:

<home-manager/modules/programs/joplin-desktop.nix>
programs.joplin-desktop.sync.target

What is the type of sync target.

Type: one of “undefined”, “none”, “file-system”, “onedrive”, “nextcloud”, “webdav”, “dropbox”, “s3”, “joplin-server”, “joplin-cloud”

Default: "undefined"

Example: "dropbox"

Declared by:

<home-manager/modules/programs/joplin-desktop.nix>
programs.joshuto.enable

Whether to enable joshuto file manager.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/joshuto.nix>
programs.joshuto.package

The package to use for joshuto.

Type: package

Default: pkgs.joshuto

Declared by:

<home-manager/modules/programs/joshuto.nix>
programs.joshuto.keymap

Configuration written to $XDG_CONFIG_HOME/joshuto/keymap.toml.

See https://github.com/kamiyaa/joshuto/blob/main/docs/configuration/keymap.toml.md for the full list of options. Note that this option will overwrite any existing keybinds.

Type: TOML value

Default: { }

Declared by:

<home-manager/modules/programs/joshuto.nix>
programs.joshuto.mimetype

Configuration written to $XDG_CONFIG_HOME/joshuto/mimetype.toml.

See https://github.com/kamiyaa/joshuto/blob/main/docs/configuration/mimetype.toml.md for the full list of options

Type: TOML value

Default: { }

Declared by:

<home-manager/modules/programs/joshuto.nix>
programs.joshuto.settings

Configuration written to $XDG_CONFIG_HOME/joshuto/joshuto.toml.

See https://github.com/kamiyaa/joshuto/blob/main/docs/configuration/joshuto.toml.md for the full list of options.

Type: TOML value

Default: { }

Declared by:

<home-manager/modules/programs/joshuto.nix>
programs.joshuto.theme

Configuration written to $XDG_CONFIG_HOME/joshuto/theme.toml.

See https://github.com/kamiyaa/joshuto/blob/main/docs/configuration/theme.toml.md for the full list of options

Type: TOML value

Default: { }

Declared by:

<home-manager/modules/programs/joshuto.nix>
programs.jq.enable

Whether to enable the jq command-line JSON processor.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/jq.nix>
programs.jq.package

jq package to use.

Type: package

Default: pkgs.jq

Declared by:

<home-manager/modules/programs/jq.nix>
programs.jq.colors

The colors used in colored JSON output.

See the Colors section of the jq manual.

Type: submodule

Default:

{
  arrays = "1;37";
  false = "0;37";
  null = "1;30";
  numbers = "0;37";
  objects = "1;37";
  strings = "0;32";
  true = "0;37";
}

Example:

{
  null    = "1;30";
  false   = "0;31";
  true    = "0;32";
  numbers = "0;36";
  strings = "0;33";
  arrays  = "1;35";
  objects = "1;37";
}

Declared by:

<home-manager/modules/programs/jq.nix>
programs.jujutsu.enable

Whether to enable a Git-compatible DVCS that is both simple and powerful.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/jujutsu.nix>
programs.jujutsu.package

The jujutsu package to use.

Type: package

Default: pkgs.jujutsu

Declared by:

<home-manager/modules/programs/jujutsu.nix>
programs.jujutsu.ediff

Enable ediff as a merge tool

Type: boolean

Default: config.programs.emacs.enable

Declared by:

<home-manager/modules/programs/jujutsu.nix>
programs.jujutsu.settings

Options to add to the config.toml file. See https://github.com/martinvonz/jj/blob/main/docs/config.md for options.

Type: TOML value

Default: { }

Example:

{
  user = {
    email = "jdoe@example.org";
    name = "John Doe";
  };
}

Declared by:

<home-manager/modules/programs/jujutsu.nix>
programs.k9s.enable

Whether to enable k9s - Kubernetes CLI To Manage Your Clusters In Style.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/k9s.nix>
programs.k9s.package

The k9s package to use.

Type: package

Default: pkgs.k9s

Declared by:

<home-manager/modules/programs/k9s.nix>
programs.k9s.aliases

Aliases written to $XDG_CONFIG_HOME/k9s/aliases.yaml (linux) or Library/Application Support/k9s/aliases.yaml (darwin). See https://k9scli.io/topics/aliases/ for supported values.

Type: YAML value

Default: { }

Example:

alias = {
  # Use pp as an alias for Pod
  pp = "v1/pods";
};

Declared by:

<home-manager/modules/programs/k9s.nix>
programs.k9s.hotkey

Hotkeys written to $XDG_CONFIG_HOME/k9s/hotkeys.yaml (linux) or Library/Application Support/k9s/hotkeys.yaml (darwin). See https://k9scli.io/topics/hotkeys/ for supported values.

Type: YAML value

Default: { }

Example:

hotkey = {
  # Make sure this is camel case
  hotKey = {
    shift-0 = {
      shortCut = "Shift-0";
      description = "Viewing pods";
      command = "pods";
    };
  };
};

Declared by:

<home-manager/modules/programs/k9s.nix>
programs.k9s.plugin

Plugins written to $XDG_CONFIG_HOME/k9s/plugins.yaml (linux) or Library/Application Support/k9s/plugins.yaml (darwin). See https://k9scli.io/topics/plugins/ for supported values.

Type: YAML value

Default: { }

Example:

plugin = {
  # Defines a plugin to provide a `ctrl-l` shortcut to
  # tail the logs while in pod view.
  fred = {
    shortCut = "Ctrl-L";
    description = "Pod logs";
    scopes = [ "po" ];
    command = "kubectl";
    background = false;
    args = [
      "logs"
      "-f"
      "$NAME"
      "-n"
      "$NAMESPACE"
      "--context"
      "$CLUSTER"
    ];
  };
};

Declared by:

<home-manager/modules/programs/k9s.nix>
programs.k9s.settings

Configuration written to $XDG_CONFIG_HOME/k9s/config.yaml (linux) or Library/Application Support/k9s/config.yaml (darwin), See https://k9scli.io/topics/config/ for supported values.

Type: YAML value

Default: { }

Example:

k9s = {
  refreshRate = 2;
};

Declared by:

<home-manager/modules/programs/k9s.nix>
programs.k9s.skins

Skin files written to $XDG_CONFIG_HOME/k9s/skins/ (linux) or Library/Application Support/k9s/skins/ (darwin). See https://k9scli.io/topics/skins/ for supported values.

Type: attribute set of (YAML value or path)

Default: { }

Example:

{
  my_blue_skin = {
    k9s = {
      body = {
        fgColor = "dodgerblue";
      };
    };
  };
  my_red_skin = ./red_skin.yaml;
}

Declared by:

<home-manager/modules/programs/k9s.nix>
programs.k9s.views

Resource column views written to $XDG_CONFIG_HOME/k9s/views.yaml (linux) or Library/Application Support/k9s/views.yaml (darwin). See https://k9scli.io/topics/columns/ for supported values.

Type: YAML value

Default: { }

Example:

k9s = {
  views = {
    "v1/pods" = {
      columns = [
        "AGE"
        "NAMESPACE"
        "NAME"
        "IP"
        "NODE"
        "STATUS"
        "READY"
      ];
    };
  };
};

Declared by:

<home-manager/modules/programs/k9s.nix>
programs.kakoune.enable

Whether to enable the kakoune text editor.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.package

The kakoune-unwrapped package to use.

Type: package

Default: pkgs.kakoune-unwrapped

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config

kakoune configuration options.

Type: null or (submodule)

Default: { }

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.alignWithTabs

Use tabs for the align command.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.autoComplete

Modes in which to display possible completions. The kakoune default is [ "insert" "prompt" ].

Type: null or (list of (one of “insert”, “prompt”))

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.autoInfo

Contexts in which to display automatic information box. The kakoune default is [ "command" "onkey" ].

Type: null or (list of (one of “command”, “onkey”, “normal”))

Default: null

Example:

[
  "command"
  "normal"
]

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.autoReload

Reload buffers when an external modification is detected. The kakoune default is "ask".

Type: null or one of “yes”, “no”, “ask”

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.colorScheme

Set the color scheme. To see available schemes, enter colorscheme at the kakoune prompt.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.hooks

Global hooks. For documentation, see https://github.com/mawww/kakoune/blob/master/doc/pages/hooks.asciidoc.

Type: list of (submodule)

Default: [ ]

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.hooks.*.commands

Commands to run when the hook is activated.

Type: strings concatenated with “\n”

Default: ""

Example: "set-option window indentwidth 2"

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.hooks.*.group

Add the hook to the named group.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.hooks.*.name

The name of the hook. For a description, see https://github.com/mawww/kakoune/blob/master/doc/pages/hooks.asciidoc#default-hooks.

Type: one of “NormalIdle”, “NormalKey”, “InsertIdle”, “InsertKey”, “InsertChar”, “InsertDelete”, “InsertMove”, “WinCreate”, “WinClose”, “WinResize”, “WinDisplay”, “WinSetOption”, “BufSetOption”, “BufNewFile”, “BufOpenFile”, “BufCreate”, “BufWritePre”, “BufWritePost”, “BufReload”, “BufClose”, “BufOpenFifo”, “BufReadFifo”, “BufCloseFifo”, “RuntimeError”, “ModeChange”, “PromptIdle”, “GlobalSetOption”, “KakBegin”, “KakEnd”, “FocusIn”, “FocusOut”, “RawKey”, “InsertCompletionShow”, “InsertCompletionHide”, “ModuleLoaded”, “ClientCreate”, “ClientClose”, “RegisterModified”, “User”

Example: "SetOption"

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.hooks.*.once

Remove the hook after running it once.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.hooks.*.option

Additional option to pass to the hook.

Type: null or string

Default: null

Example: "filetype=latex"

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.incrementalSearch

Execute a search as it is being typed.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.indentWidth

The width of an indentation in spaces. The kakoune default is 4. If 0, a tab will be used instead.

Type: null or (unsigned integer, meaning >=0)

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.keyMappings

User-defined key mappings. For documentation, see https://github.com/mawww/kakoune/blob/master/doc/pages/mapping.asciidoc.

Type: list of (submodule)

Default: [ ]

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.keyMappings.*.docstring

Optional documentation text to display in info boxes.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.keyMappings.*.effect

The sequence of keys to be mapped.

Type: string

Example: ":wq<ret>"

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.keyMappings.*.key

The key to be mapped. See https://github.com/mawww/kakoune/blob/master/doc/pages/mapping.asciidoc#mappable-keys for possible values.

Type: string

Example: "<a-x>"

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.keyMappings.*.mode

The mode in which the mapping takes effect.

Type: string

Example: "user"

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.numberLines

Settings for the number lines highlighter.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/programs/kakoune.nix>
programs.kakoune.config.numberLines.enable

Whether to enable the number lines highlighter.

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.defaultEditor

Whether to configure kak as the default editor using the EDITOR environment variable.

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.khal.enable

Whether to enable khal, a CLI calendar application.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/khal.nix>
programs.khal.package

The khal package to use.

Type: package

Default: pkgs.khal

Declared by:

<home-manager/modules/programs/khal.nix>
programs.khal.locale

khal locale settings.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/programs/khal.nix>
programs.khal.locale.dateformat

khal will display and understand all dates in this format.

Format strings are for Python strftime, similarly to strftime(3).

Type: string

Default: "%x"

Declared by:

<home-manager/modules/programs/khal.nix>
programs.khal.locale.datetimeformat

khal will display and understand all datetimes in this format.

Format strings are for Python strftime, similarly to strftime(3).

Type: string

Default: "%c"

Declared by:

<home-manager/modules/programs/khal.nix>
programs.khal.locale.default_timezone

Default for new events or if khal does not understand the timezone in an ical file. If null, the timezone of your computer will be used.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/khal.nix>
programs.khal.locale.firstweekday

The first day of the week, where Monday is 0 and Sunday is 6.

Type: integer between 0 and 6 (both inclusive)

Default: 0

Declared by:

<home-manager/modules/programs/khal.nix>
programs.khal.locale.local_timezone

khal will show all times in this timezone. If null, the timezone of your computer will be used.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/khal.nix>
programs.khal.locale.longdateformat

khal will display and understand all dates in this format. It should contain a year (e.g. %Y).

Format strings are for Python strftime, similarly to strftime(3).

Type: string

Default: "%x"

Declared by:

<home-manager/modules/programs/khal.nix>
programs.khal.locale.longdatetimeformat

khal will display and understand all datetimes in this format. It should contain a year (e.g. %Y).

Format strings are for Python strftime, similarly to strftime(3).

Type: string

Default: "%c"

Declared by:

<home-manager/modules/programs/khal.nix>
programs.khal.locale.timeformat

khal will display and understand all times in this format.

Format strings are for Python strftime, similarly to strftime(3).

Type: string

Default: "%X"

Declared by:

<home-manager/modules/programs/khal.nix>
programs.khal.locale.unicode_symbols

By default khal uses some Unicode symbols (as in “non-ASCII”) as indicators for things like repeating events. If your font, encoding etc. does not support those symbols, set this to false (this will enable ASCII-based replacements).

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/khal.nix>
programs.khal.locale.weeknumbers

Enable week numbers in calendar and interactive (ikhal) mode. As those are ISO week numbers, they only work properly if firstweekday is set to 0.

Type: one of “off”, “left”, “right”

Default: "off"

Declared by:

<home-manager/modules/programs/khal.nix>
programs.khal.settings

Configuration options to add to the various sections in the configuration file.

Type: attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))

Default: { }

Example:

{
  default = {
    default_calendar = "Calendar";
    timedelta = "5d";
  };
  view = {
    agenda_event_format =
      "{calendar-color}{cancelled}{start-end-time-style} {title}{repeat-symbol}{reset}";
  };
}

Declared by:

<home-manager/modules/programs/khal.nix>
programs.khard.enable

Whether to enable Khard: an address book for the Unix console.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/khard.nix>
programs.khard.settings

Khard settings. See https://khard.readthedocs.io/en/latest/#configuration for more information.

Type: attribute set of attribute set of (boolean or string or list of string)

Default: { }

Example:

{
  general = {
    default_action = "list";
    editor = ["vim" "-i" "NONE"];
  };

  "contact table" = {
    display = "formatted_name";
    preferred_phone_number_type = ["pref" "cell" "home"];
    preferred_email_address_type = ["pref" "work" "home"];
  };

  vcard = {
    private_objects = ["Jabber" "Skype" "Twitter"];
  };
}

Declared by:

<home-manager/modules/programs/khard.nix>
programs.khard.settings.general.default_action

The default action to execute.

Type: string

Default: "list"

Declared by:

<home-manager/modules/programs/khard.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 or floating point number)

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:

!(elem "disabled" (splitString " " config.programs.kitty.shellIntegration.mode))

Example: true

Declared by:

<home-manager/modules/programs/kitty.nix>
programs.kitty.shellIntegration.enableFishIntegration

Whether to enable Kitty fish integration.

Type: boolean

Default:

!(elem "disabled" (splitString " " config.programs.kitty.shellIntegration.mode))

Example: true

Declared by:

<home-manager/modules/programs/kitty.nix>
programs.kitty.shellIntegration.enableZshIntegration

Whether to enable Kitty Z Shell integration.

Type: boolean

Default:

!(elem "disabled" (splitString " " config.programs.kitty.shellIntegration.mode))

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: "no-rc"

Example: "no-cursor"

Declared by:

<home-manager/modules/programs/kitty.nix>
programs.kitty.themeFile

Apply a Kitty color theme. This option takes the file name of a theme in kitty-themes, without the .conf suffix. See https://github.com/kovidgoyal/kitty-themes/tree/master/themes for a list of themes.

Type: null or string

Default: null

Example: "SpaceGray_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. See the lf documentation for detailed descriptions of these options. Prefer programs.lf.previewer.* for setting lf’s previewer option. All string options are quoted with double quotes.

Type: attribute set of (string or signed integer or list of (string or signed integer) or boolean)

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 section of an INI file (attrs 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.colors

Configuration written to $XDG_CONFIG_HOME/lsd/colors.yaml. See https://github.com/lsd-rs/lsd/tree/v1.0.0#color-theme-file-content for supported colors.

If this option is non-empty then the color.theme option is automatically set to "custom".

Type: YAML value

Default: { }

Example:

{
  size = {
    large = "dark_yellow";
    none = "grey";
    small = "yellow";
  };
}

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.fzf.enable

Whether to enable McFly fzf integration.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/mcfly.nix>
programs.mcfly.interfaceView

Interface view to use.

Type: one of “TOP”, “BOTTOM”

Default: "TOP"

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.mcfly.settings

Settings written to ~/.config/mcfly/config.toml.

Note, if your McFly database is currently in ~/.mcfly, then this option has no effect. Move the database to $XDG_DATA_DIR/mcfly/history.db and remove ~/.mcfly to make the settings take effect. See https://github.com/cantino/mcfly#database-location.

Type: TOML value

Default: { }

Example:

{
  colors = {
    menubar = {
      bg = "black";
      fg = "red";
    };
    darkmode = {
      prompt = "cyan";
      timing = "yellow";
      results_selection_fg = "cyan";
      results_selection_bg = "black";
      results_selection_hl = "red";
    };
  };
}

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.package

The micro package to use.

Type: package

Default: pkgs.micro

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.mise.enable

Whether to enable mise.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/mise.nix>
programs.mise.enableBashIntegration

Whether to enable Bash Integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/mise.nix>
programs.mise.enableFishIntegration

Whether to enable Fish Integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/mise.nix>
programs.mise.enableZshIntegration

Whether to enable Zsh Integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/mise.nix>
programs.mise.package

The mise package to use.

Type: package

Default: pkgs.mise

Declared by:

<home-manager/modules/programs/mise.nix>
programs.mise.globalConfig

Config written to $XDG_CONFIG_HOME/mise/config.toml.

See https://mise.jdx.dev/configuration.html#global-config-config-mise-config-toml for details on supported values.

Type: TOML value

Default: { }

Example:

tools = {
  node = "lts";
  python = ["3.10" "3.11"];
};

aliases = {
  my_custom_node = "20";
};

Declared by:

<home-manager/modules/programs/mise.nix>
programs.mise.settings

Settings written to $XDG_CONFIG_HOME/mise/settings.toml.

See https://mise.jdx.dev/configuration.html#settings-file-config-mise-settings-toml for details on supported values.

Type: TOML value

Default: { }

Example:

verbose = false;
experimental = false;
disable_tools = ["node"];

Declared by:

<home-manager/modules/programs/mise.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.39.0>

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.extraInput

Additional lines that are appended to $XDG_CONFIG_HOME/mpv/input.conf. See mpv(1) for the full list of options.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  esc         quit                        #! Quit
  #           script-binding uosc/video   #! Video tracks
  # additional comments
''

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 section of an INI file (attrs 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.package

The msmtp package to use.

Type: package

Default: pkgs.msmtp

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.mu.package

The mu package to use.

Type: package

Default: pkgs.mu

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.sourcePrimaryAccount

Whether to enable source the primary account by default.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/neomutt.nix>
programs.neomutt.unmailboxes

Set unmailboxes * at the start of account configurations. It removes previous sidebar mailboxes when sourcing an account configuration.

See http://www.mutt.org/doc/manual/#mailboxes for more information.

Type: boolean

Default: false

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.neovide.enable

Whether to enable Neovide, No Nonsense Neovim Client in Rust.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/neovide.nix>
programs.neovide.package

The neovide package to use.

Type: package

Default: pkgs.neovide

Declared by:

<home-manager/modules/programs/neovide.nix>
programs.neovide.settings

Neovide configuration. For available settings see https://neovide.dev/config-file.html. For any option not found will need to be done in your neovim’s config instead.

Type: TOML value

Example:

{
  fork = false;
  frame = "full";
  idle = true;
  maximized = false;
  neovim-bin = "/usr/bin/nvim";
  no-multigrid = false;
  srgb = false;
  tabs = true;
  theme = "auto";
  title-hidden = true;
  vsync = true;
  wsl = false;

  font = {
    normal = [];
    size = 14.0;
  };
}

Declared by:

<home-manager/modules/programs/neovide.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.extraWrapperArgs

Extra arguments to be passed to the neovim wrapper. This option sets environment variables required for building and running binaries with external package managers like mason.nvim.

Type: list of string

Default: [ ]

Example:

[
  "--suffix"
  "LIBRARY_PATH"
  ":"
  "${lib.makeLibraryPath [ pkgs.stdenv.cc.cc pkgs.zlib ]}"
  "--suffix"
  "PKG_CONFIG_PATH"
  ":"
  "${lib.makeSearchPathOutput "dev" "lib/pkgconfig" [ pkgs.stdenv.cc.cc pkgs.zlib ]}"
]

Declared by:

<home-manager/modules/programs/neovim.nix>
programs.neovim.finalPackage

Resulting customized neovim package.

Type: package (read only)

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.nh.enable

Whether to enable nh, yet another Nix CLI helper.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/nh.nix>
programs.nh.package

The nh package to use.

Type: package

Default: pkgs.nh

Declared by:

<home-manager/modules/programs/nh.nix>
programs.nh.clean.enable

Whether to enable periodic garbage collection for user profile and nix store with nh clean user.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/nh.nix>
programs.nh.clean.dates

How often cleanup is performed.

The format is described in systemd.time(7).

Type: (optionally newline-terminated) single-line string

Default: "weekly"

Declared by:

<home-manager/modules/programs/nh.nix>
programs.nh.clean.extraArgs

Options given to nh clean when the service is run automatically.

See nh clean all --help for more information.

Type: (optionally newline-terminated) single-line string

Default: ""

Example: "--keep 5 --keep-since 3d"

Declared by:

<home-manager/modules/programs/nh.nix>
programs.nh.flake

The path that will be used for the FLAKE environment variable.

FLAKE is used by nh as the default flake for performing actions, like nh os switch.

Type: null or path

Default: null

Declared by:

<home-manager/modules/programs/nh.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 section of an INI file (attrs 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 flags.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/notmuch.nix>
programs.notmuch.new

Options related to email processing performed by notmuch new.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/programs/notmuch.nix>
programs.notmuch.new.ignore

A list to specify files and directories that will not be searched for messages by notmuch new.

Type: list of string

Default: [ ]

Declared by:

<home-manager/modules/programs/notmuch.nix>
programs.notmuch.new.tags

A list of tags that will be added to all messages incorporated by notmuch new.

Type: list of string

Default:

[
  "unread"
  "inbox"
]

Example:

[
  "new"
]

Declared by:

<home-manager/modules/programs/notmuch.nix>
programs.notmuch.search.excludeTags

A list of tags that will be excluded from search results by default. Using an excluded tag in a query will override that exclusion.

Type: list of string

Default:

[
  "deleted"
  "spam"
]

Example:

[
  "trash"
  "spam"
]

Declared by:

<home-manager/modules/programs/notmuch.nix>
programs.nushell.enable

Whether to enable nushell.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/nushell.nix>
programs.nushell.package

The package to use for nushell.

Type: package

Default: pkgs.nushell

Declared by:

<home-manager/modules/programs/nushell.nix>
programs.nushell.configFile

The configuration file to be used for nushell.

See https://www.nushell.sh/book/configuration.html#configuration for more information.

Type: null or (submodule)

Default: null

Example:

{ text = ''
    let $config = {
      filesize_metric: false
      table_mode: rounded
      use_ls_colors: true
    }
  '';
}

Declared by:

<home-manager/modules/programs/nushell.nix>
programs.nushell.configFile.source

Path of the nushell config.nu file to use. If the text option is set, it will be preferred.

Type: null or path

Default: null

Declared by:

<home-manager/modules/programs/nushell.nix>
programs.nushell.configFile.text

Text of the nushell config.nu file. If unset then the source option will be preferred.

Type: strings concatenated with “\n”

Default: if source is defined, the content of source, otherwise empty

Declared by:

<home-manager/modules/programs/nushell.nix>
programs.nushell.envFile

The environment variables file to be used for nushell.

See https://www.nushell.sh/book/configuration.html#configuration for more information.

Type: null or (submodule)

Default: null

Example:

''
  $env.FOO = 'BAR'
''

Declared by:

<home-manager/modules/programs/nushell.nix>
programs.nushell.envFile.source

Path of the nushell env.nu file to use. If the text option is set, it will be preferred.

Type: null or path

Default: null

Declared by:

<home-manager/modules/programs/nushell.nix>
programs.nushell.envFile.text

Text of the nushell env.nu file. If unset then the source option will be preferred.

Type: strings concatenated with “\n”

Default: if source is defined, the content of source, otherwise empty

Declared by:

<home-manager/modules/programs/nushell.nix>
programs.nushell.environmentVariables

Environment variables to be set.

Inline values can be set with lib.hm.nushell.mkNushellInline.

Type: attribute set of (null or (Nushell inline value) or boolean or signed integer or floating point number or string or path or (attribute set of Nushell values) or (list of Nushell values))

Default: { }

Example:

{
  FOO = "BAR";
  LIST_VALUE = [ "foo" "bar" ];
  NU_LIB_DIRS = lib.concatStringsSep ":" [ ./scripts ];
  PROMPT_COMMAND = lib.hm.nushell.mkNushellInline ''{|| "> "}'';
  ENV_CONVERSIONS.PATH = {
    from_string = lib.hm.nushell.mkNushellInline "{|s| $s | split row (char esep) }";
    to_string = lib.hm.nushell.mkNushellInline "{|v| $v | str join (char esep) }";
  };
}

Declared by:

<home-manager/modules/programs/nushell.nix>
programs.nushell.extraConfig

Additional configuration to add to the nushell configuration file.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/nushell.nix>
programs.nushell.extraEnv

Additional configuration to add to the nushell environment variables file.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/nushell.nix>
programs.nushell.extraLogin

Additional configuration to add to the nushell login file.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/nushell.nix>
programs.nushell.loginFile

The login file to be used for nushell upon logging in.

See https://www.nushell.sh/book/configuration.html#configuring-nu-as-a-login-shell for more information.

Type: null or (submodule)

Default: null

Example:

''
  # Prints "Hello, World" upon logging into tty1
  if (tty) == "/dev/tty1" {
    echo "Hello, World"
  }
''

Declared by:

<home-manager/modules/programs/nushell.nix>
programs.nushell.loginFile.source

Path of the nushell login.nu file to use. If the text option is set, it will be preferred.

Type: null or path

Default: null

Declared by:

<home-manager/modules/programs/nushell.nix>
programs.nushell.loginFile.text

Text of the nushell login.nu file. If unset then the source option will be preferred.

Type: strings concatenated with “\n”

Default: if source is defined, the content of source, otherwise empty

Declared by:

<home-manager/modules/programs/nushell.nix>
programs.nushell.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";
}

Declared by:

<home-manager/modules/programs/nushell.nix>
programs.obs-studio.enable

Whether to enable obs-studio.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/obs-studio.nix>
programs.obs-studio.package

OBS Studio package to install.

Type: package

Default: pkgs.obs-studio

Declared by:

<home-manager/modules/programs/obs-studio.nix>
programs.obs-studio.plugins

Optional OBS plugins.

Type: list of package

Default: [ ]

Example: [ pkgs.obs-studio-plugins.wlrobs ]

Declared by:

<home-manager/modules/programs/obs-studio.nix>
programs.octant.enable

Whether to enable octant.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/octant.nix>
programs.octant.package

The Octant package to use.

Type: package

Default: pkgs.octant

Example: pkgs.octant-other

Declared by:

<home-manager/modules/programs/octant.nix>
programs.octant.plugins

Optional Octant plugins.

Type: list of package

Default: [ ]

Example: [ pkgs.starboard-octant-plugin ]

Declared by:

<home-manager/modules/programs/octant.nix>
programs.offlineimap.enable

Whether to enable OfflineIMAP.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/offlineimap.nix>
programs.offlineimap.package

The offlineimap package to use. Can be used to specify extensions.

Type: package

Default: pkgs.offlineimap

Example:

pkgs.offlineimap.overridePythonAttrs ( old: {
  propagatedBuildInputs = old.propagatedBuildInputs
    ++ (with pkgs.python3Packages; [
      requests_oauthlib xdg gpgme]);
})

Declared by:

<home-manager/modules/programs/offlineimap.nix>
programs.offlineimap.extraConfig.default

Extra configuration options added to the DEFAULT section.

Type: attribute set of (string or signed integer or boolean)

Default: { }

Example:

{
  gmailtrashfolder = "[Gmail]/Papierkorb";
}

Declared by:

<home-manager/modules/programs/offlineimap.nix>
programs.offlineimap.extraConfig.general

Extra configuration options added to the general section.

Type: attribute set of (string or signed integer or boolean)

Default: { }

Example:

{
  maxage = 30;
  ui = "blinkenlights";
}

Declared by:

<home-manager/modules/programs/offlineimap.nix>
programs.offlineimap.extraConfig.mbnames

Extra configuration options added to the mbnames section.

Type: attribute set of (string or signed integer or boolean)

Default: { }

Example:

{
  filename = "~/.config/mutt/mailboxes";
  header = "'mailboxes '";
  peritem = "'+%(accountname)s/%(foldername)s'";
  sep = "' '";
  footer = "'\\n'";
}

Declared by:

<home-manager/modules/programs/offlineimap.nix>
programs.offlineimap.pythonFile

Python code that can then be used in other parts of the configuration.

Type: strings concatenated with “\n”

Default:

''
  import subprocess
  
  def get_pass(service, cmd):
      return subprocess.check_output(cmd, )
''

Declared by:

<home-manager/modules/programs/offlineimap.nix>
programs.oh-my-posh.enable

Whether to enable oh-my-posh, a prompt theme engine for any shell.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/oh-my-posh.nix>
programs.oh-my-posh.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/oh-my-posh.nix>
programs.oh-my-posh.enableFishIntegration

Whether to enable Fish integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/oh-my-posh.nix>
programs.oh-my-posh.enableNushellIntegration

Whether to enable Nushell integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/oh-my-posh.nix>
programs.oh-my-posh.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/oh-my-posh.nix>
programs.oh-my-posh.package

The oh-my-posh package to use.

Type: package

Default: pkgs.oh-my-posh

Declared by:

<home-manager/modules/programs/oh-my-posh.nix>
programs.oh-my-posh.settings

Configuration written to $XDG_CONFIG_HOME/oh-my-posh/config.json. See https://ohmyposh.dev/docs/configuration/overview for details. The useTheme option is ignored when this option is used.

Type: JSON value

Default: { }

Example: builtins.fromJSON (builtins.unsafeDiscardStringContext (builtins.readFile "${pkgs.oh-my-posh}/share/oh-my-posh/themes/space.omp.json"))

Declared by:

<home-manager/modules/programs/oh-my-posh.nix>
programs.oh-my-posh.useTheme

Use one of the official themes. This should be a name from this list: https://ohmyposh.dev/docs/themes. Because a theme is essentially a configuration file, this option is not used when a configFile is set.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/oh-my-posh.nix>
programs.opam.enable

Whether to enable Opam.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/opam.nix>
programs.opam.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/opam.nix>
programs.opam.enableFishIntegration

Whether to enable Fish integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/opam.nix>
programs.opam.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/opam.nix>
programs.opam.package

Opam package to install.

Type: package

Default: pkgs.opam

Declared by:

<home-manager/modules/programs/opam.nix>
programs.openstackclient.enable

Whether to enable OpenStack command-line client.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/openstackclient.nix>
programs.openstackclient.package

The openstackclient package to use.

Type: package

Default: pkgs.openstackclient

Declared by:

<home-manager/modules/programs/openstackclient.nix>
programs.openstackclient.clouds

Configuration needed to connect to one or more clouds.

Do not include passwords here as they will be publicly readable in the Nix store. Configuration written to $XDG_CONFIG_HOME/openstack/clouds.yaml. See https://docs.openstack.org/python-openstackclient/latest/configuration/index.html#clouds-yaml.

Type: YAML value

Default: { }

Example:

{
  my-infra = {
    cloud = "example-cloud";
    auth = {
      project_id = "0123456789abcdef0123456789abcdef";
      username = "openstack";
    };
    region_name = "XXX";
    interface = "internal";
  };
}

Declared by:

<home-manager/modules/programs/openstackclient.nix>
programs.openstackclient.publicClouds

Public information about clouds.

Configuration written to $XDG_CONFIG_HOME/openstack/clouds-public.yaml. See https://docs.openstack.org/python-openstackclient/latest/configuration/index.html#clouds-public-yaml.

Type: YAML value

Default: { }

Example:

{
  example-cloud = {
    auth = {
      auth_url = "https://identity.cloud.example.com/v2.0";
    };
  };
};

Declared by:

<home-manager/modules/programs/openstackclient.nix>
programs.pandoc.enable

Whether to enable pandoc.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/pandoc.nix>
programs.pandoc.package

The pandoc package to use.

Type: package

Default: pkgs.pandoc

Declared by:

<home-manager/modules/programs/pandoc.nix>
programs.pandoc.citationStyles

List of .csl files to install.

Type: list of path

Default: [ ]

Example: [ path/to/file.csl ]

Declared by:

<home-manager/modules/programs/pandoc.nix>
programs.pandoc.defaults

Options to set by default. These will be converted to JSON and written to a defaults file (see Default files in pandoc documentation).

Type: JSON value

Default: { }

Example:

{
  metadata = {
    author = "John Doe";
  };
  pdf-engine = "xelatex";
  citeproc = true;
}

Declared by:

<home-manager/modules/programs/pandoc.nix>
programs.pandoc.defaultsFile

Resulting defaults file.

Type: path (read only)

Declared by:

<home-manager/modules/programs/pandoc.nix>
programs.pandoc.finalPackage

Resulting package.

Type: package (read only)

Declared by:

<home-manager/modules/programs/pandoc.nix>
programs.pandoc.templates

Custom templates.

Type: attribute set of path

Default: { }

Example:

{
  "default.latex" = path/to/your/template;
}

Declared by:

<home-manager/modules/programs/pandoc.nix>
programs.papis.enable

Whether to enable papis.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/papis.nix>
programs.papis.package

The papis package to use.

Type: package

Default: pkgs.papis

Declared by:

<home-manager/modules/programs/papis.nix>
programs.papis.libraries

Attribute set of papis libraries.

Type: attribute set of (submodule)

Declared by:

<home-manager/modules/programs/papis.nix>
programs.papis.libraries.<name>.isDefault

Whether this is a default library. There must be exactly one default library.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/papis.nix>
programs.papis.libraries.<name>.name

This library’s name.

Type: string (read only)

Default: "‹name›"

Declared by:

<home-manager/modules/programs/papis.nix>
programs.papis.libraries.<name>.settings

Configuration for this library.

Type: attribute set of (boolean or signed integer or string)

Default: { }

Example:

{
  dir = "~/papers/";
}

Declared by:

<home-manager/modules/programs/papis.nix>
programs.papis.settings

Configuration written to $XDG_CONFIG_HOME/papis/config. See https://papis.readthedocs.io/en/latest/configuration.html for supported values.

Type: attribute set of (boolean or signed integer or string)

Default: { }

Example:

{
  editor = "nvim";
  file-browser = "ranger"
  add-edit = true;
}

Declared by:

<home-manager/modules/programs/papis.nix>
programs.password-store.enable

Whether to enable Password store.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/password-store.nix>
programs.password-store.package

The pass package to use. Can be used to specify extensions.

Type: package

Default: pkgs.pass

Example:

pkgs.pass.withExtensions (exts: [ exts.pass-otp ])

Declared by:

<home-manager/modules/programs/password-store.nix>
programs.password-store.settings

The pass environment variables dictionary.

See the “Environment variables” section of pass(1) and the extension man pages for more information about the available keys.

Type: attribute set of string

Default:

{ PASSWORD_STORE_DIR = "$XDG_DATA_HOME/password-store"; }

Example:

{
  PASSWORD_STORE_DIR = "/some/directory";
  PASSWORD_STORE_KEY = "12345678";
  PASSWORD_STORE_CLIP_TIME = "60";
}

Declared by:

<home-manager/modules/programs/password-store.nix>
programs.pazi.enable

Whether to enable pazi.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/pazi.nix>
programs.pazi.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/pazi.nix>
programs.pazi.enableFishIntegration

Whether to enable Fish integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/pazi.nix>
programs.pazi.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/pazi.nix>
programs.pet.enable

Whether to enable pet.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/pet.nix>
programs.pet.selectcmdPackage

The package needed for the settings.selectcmd.

Type: package

Default: pkgs.fzf

Declared by:

<home-manager/modules/programs/pet.nix>
programs.pet.settings

Settings written to config.toml. See the pet documentation for details.

Type: TOML value

Default: { }

Declared by:

<home-manager/modules/programs/pet.nix>
programs.pet.snippets

The snippets.

Type: list of (submodule)

Default: [ ]

Declared by:

<home-manager/modules/programs/pet.nix>
programs.pet.snippets.*.command

The command.

Type: string

Default: ""

Example: "git rev-list --count HEAD"

Declared by:

<home-manager/modules/programs/pet.nix>
programs.pet.snippets.*.description

Description of the snippet.

Type: string

Default: ""

Example: "Count the number of commits in the current branch"

Declared by:

<home-manager/modules/programs/pet.nix>
programs.pet.snippets.*.output

Example output of the command.

Type: string

Default: ""

Example: "473"

Declared by:

<home-manager/modules/programs/pet.nix>
programs.pet.snippets.*.tag

List of tags attached to the command.

Type: list of string

Default: [ ]

Example: ["git" "nixpkgs"]

Declared by:

<home-manager/modules/programs/pet.nix>
programs.pidgin.enable

Whether to enable Pidgin messaging client.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/pidgin.nix>
programs.pidgin.package

The Pidgin package to use.

Type: package

Default: pkgs.pidgin

Declared by:

<home-manager/modules/programs/pidgin.nix>
programs.pidgin.plugins

Plugins that should be available to Pidgin.

Type: unspecified value

Default: [ ]

Example: [ pkgs.pidgin-otr pkgs.pidgin-osd ]

Declared by:

<home-manager/modules/programs/pidgin.nix>
programs.pistol.enable

Whether to enable file previewer for terminal file managers.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/pistol.nix>
programs.pistol.associations

Associations written to the Pistol configuration at $XDG_CONFIG_HOME/pistol/pistol.conf.

Type: list of (submodule)

Default: [ ]

Example:

[
  { mime = "application/json"; command = "bat %pistol-filename%"; }
  { mime = "application/*"; command = "hexyl %pistol-filename%"; }
  { fpath = ".*.md$"; command = "sh: bat --paging=never --color=always %pistol-filename% | head -8"; }
]

Declared by:

<home-manager/modules/programs/pistol.nix>
programs.pistol.associations.*.command

Preview command for files matched by this association.

Type: string

Declared by:

<home-manager/modules/programs/pistol.nix>
programs.pistol.associations.*.fpath

File path regex that this association should match.

Type: string

Default: ""

Declared by:

<home-manager/modules/programs/pistol.nix>
programs.pistol.associations.*.mime

Mime type regex that this association should match.

Type: string

Default: ""

Declared by:

<home-manager/modules/programs/pistol.nix>
programs.piston-cli.enable

Whether to enable piston-cli, code runner.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/piston-cli.nix>
programs.piston-cli.package

The piston-cli package to use.

Type: package

Default: pkgs.piston-cli

Declared by:

<home-manager/modules/programs/piston-cli.nix>
programs.piston-cli.settings

Configuration written to $XDG_CONFIG_HOME/piston-cli/config.yml.

Type: YAML value

Default: { }

Example:

{
  theme = "emacs";
  box_style = "MINIMAL_DOUBLE_HEAD";
  prompt_continuation = "...";
  prompt_start = ">>>";
}

Declared by:

<home-manager/modules/programs/piston-cli.nix>
programs.pls.enable

Whether to enable pls, a modern replacement for ls.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/pls.nix>
programs.pls.enableAliases

Whether to enable recommended pls aliases.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/pls.nix>
programs.pls.package

The pls package to use.

Type: package

Default: pkgs.pls

Declared by:

<home-manager/modules/programs/pls.nix>
programs.poetry.enable

Whether to enable poetry.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/poetry.nix>
programs.poetry.package

The poetry package to use. May be used to install custom poetry plugins.

Type: package

Default: pkgs.poetry

Example: pkgs.poetry.withPlugins (ps: with ps; [ poetry-plugin-up ])

Declared by:

<home-manager/modules/programs/poetry.nix>
programs.poetry.settings

Configuration written to $XDG_CONFIG_HOME/pypoetry/config.toml on Linux or $HOME/Library/Application Support/pypoetry/config.toml on Darwin. See https://python-poetry.org/docs/configuration/ for more information.

Type: TOML value

Default: { }

Example:

{
  virtualenvs.create = true;
  virtualenvs.in-project = true;
}

Declared by:

<home-manager/modules/programs/poetry.nix>
programs.powerline-go.enable

Whether to enable Powerline-go, a beautiful and useful low-latency prompt for your shell.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/powerline-go.nix>
programs.powerline-go.extraUpdatePS1

Shell code to execute after the prompt is set.

Type: string

Default: ""

Example:

''
  PS1=$PS1"NixOS> ";
''

Declared by:

<home-manager/modules/programs/powerline-go.nix>
programs.powerline-go.modules

List of module names to load. The list of all available modules as well as the choice of default ones are at https://github.com/justjanne/powerline-go.

Type: null or (list of string)

Default: null

Example:

[
  "host"
  "ssh"
  "cwd"
  "gitlite"
  "jobs"
  "exit"
]

Declared by:

<home-manager/modules/programs/powerline-go.nix>
programs.powerline-go.modulesRight

List of module names to load to be displayed on the right side. Currently not supported by bash. Specifying a value for this option will force powerline-go to use the eval format to set the prompt.

Type: null or (list of string)

Default: null

Example:

[
  "host"
  "venv"
  "git"
]

Declared by:

<home-manager/modules/programs/powerline-go.nix>
programs.powerline-go.newline

Set to true if the prompt should be on a line of its own.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/powerline-go.nix>
programs.powerline-go.pathAliases

Pairs of full-path and corresponding desired short name. You may use ‘~’ to represent your home directory but you should protect it to avoid shell substitution.

Type: null or (attribute set of string)

Default: null

Example:

{ "\\~/projects/home-manager" = "prj:home-manager"; }

Declared by:

<home-manager/modules/programs/powerline-go.nix>
programs.powerline-go.settings

This can be any key/value pair as described in https://github.com/justjanne/powerline-go.

Type: attribute set of (boolean or signed integer or string or list of string)

Default: { }

Example:

{
  hostname-only-if-ssh = true;
  numeric-exit-codes = true;
  cwd-max-depth = 7;
  ignore-repos = [ "/home/me/big-project" "/home/me/huge-project" ];
}

Declared by:

<home-manager/modules/programs/powerline-go.nix>
programs.pqiv.enable

Whether to enable pqiv image viewer.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/pqiv.nix>
programs.pqiv.package

The pqiv package to install.

Type: package

Default: pkgs.pqiv

Declared by:

<home-manager/modules/programs/pqiv.nix>
programs.pqiv.extraConfig

Extra lines to be added to $XDG_CONFIG_HOME/pqivrc. See pqiv(1) for a list of available options.

Type: strings concatenated with “\n”

Default: ""

Example:

[actions]
set_cursor_auto_hide(1)

[keybindings]
t { montage_mode_enter() }
@MONTAGE {
  t { montage_mode_return_cancel() }
}

Declared by:

<home-manager/modules/programs/pqiv.nix>
programs.pqiv.settings

Configuration written to $XDG_CONFIG_HOME/pqivrc. See pqiv(1) for a list of available options.

Type: attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))

Default: { }

Example:

{
  options = {
    lazy-load = true;
    hide-info-box = true;
    background-pattern = "black";
    thumbnail-size = "256x256";
    command-1 = "thunar";
  };
};

Declared by:

<home-manager/modules/programs/pqiv.nix>
programs.pubs.enable

Whether to enable pubs.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/pubs.nix>
programs.pubs.package

The package to use for the pubs script.

Type: package

Default: pkgs.pubs

Declared by:

<home-manager/modules/programs/pubs.nix>
programs.pubs.extraConfig

Configuration using syntax written to $HOME/.pubsrc.

Type: strings concatenated with “\n”

Default: ""

Example:

''
[main]
pubsdir = ${config.home.homeDirectory}/.pubs
docsdir = ${config.home.homeDirectory}/.pubs/doc
doc_add = link
open_cmd = xdg-open

[plugins]
active = git,alias

[[alias]]

[[[la]]]
command = list -a
description = lists papers in lexicographic order

[[git]]
quiet = True
manual = False
force_color = False
''

Declared by:

<home-manager/modules/programs/pubs.nix>
programs.pyenv.enable

Whether to enable pyenv.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/pyenv.nix>
programs.pyenv.enableBashIntegration

Whether to enable pyenv’s Bash integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/pyenv.nix>
programs.pyenv.enableFishIntegration

Whether to enable pyenv’s Fish integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/pyenv.nix>
programs.pyenv.enableZshIntegration

Whether to enable pyenv’s Zsh integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/pyenv.nix>
programs.pyenv.package

The package to use for pyenv.

Type: package

Default: pkgs.pyenv

Declared by:

<home-manager/modules/programs/pyenv.nix>
programs.pyenv.rootDirectory

The pyenv root directory (PYENV_ROOT).

Note

This deviates from upstream, which uses $HOME/.pyenv. The default path in Home Manager is set according to the XDG base directory specification.

Type: path

Default: "\${config.xdg.dataHome}/pyenv"

Declared by:

<home-manager/modules/programs/pyenv.nix>
programs.pylint.enable

Whether to enable the pylint Python linter.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/pylint.nix>
programs.pylint.package

The pylint package to use.

Type: package

Default: pkgs.python3Packages.pylint

Declared by:

<home-manager/modules/programs/pylint.nix>
programs.pylint.settings

The pylint configuration.

Type: attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string) or a non-empty list of them)

Default: {}

Declared by:

<home-manager/modules/programs/pylint.nix>
programs.pywal.enable

Whether to enable pywal.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/pywal.nix>
programs.qcal.enable

Whether to enable qcal, a CLI calendar application.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/qcal.nix>
programs.qcal.defaultNumDays

Default number of days to show calendar entries for

Type: positive integer, meaning >0

Default: 30

Declared by:

<home-manager/modules/programs/qcal.nix>
programs.qcal.timezone

Timezone to display calendar entries in

Type: (optionally newline-terminated) single-line string

Default: "Local"

Example: "Europe/Vienna"

Declared by:

<home-manager/modules/programs/qcal.nix>
programs.qutebrowser.enable

Whether to enable qutebrowser.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/qutebrowser.nix>
programs.qutebrowser.enableDefaultBindings

Disable to prevent loading default key bindings.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/qutebrowser.nix>
programs.qutebrowser.package

Qutebrowser package to install.

Type: package

Default: pkgs.qutebrowser

Declared by:

<home-manager/modules/programs/qutebrowser.nix>
programs.qutebrowser.aliases

Aliases for commands.

Type: attribute set of string

Default: { }

Declared by:

<home-manager/modules/programs/qutebrowser.nix>
programs.qutebrowser.extraConfig

Extra lines added to qutebrowser config.py file.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/qutebrowser.nix>
programs.qutebrowser.greasemonkey

Greasemonkey userscripts to add to qutebrowser’s greasemonkey directory.

Type: list of package

Default: [ ]

Example:

[
  (pkgs.fetchurl {
    url = "https://raw.githubusercontent.com/afreakk/greasemonkeyscripts/1d1be041a65c251692ee082eda64d2637edf6444/youtube_sponsorblock.js";
    sha256 = "sha256-e3QgDPa3AOpPyzwvVjPQyEsSUC9goisjBUDMxLwg8ZE=";
  })
  (pkgs.writeText "some-script.js" ''
    // ==UserScript==
    // @name  Some Greasemonkey script
    // ==/UserScript==
  '')
]

Declared by:

<home-manager/modules/programs/qutebrowser.nix>
programs.qutebrowser.keyBindings

Key bindings mapping keys to commands in different modes. This setting is a dictionary containing mode names and dictionaries mapping keys to commands: {mode: {key: command}} If you want to map a key to another key, check the keyMappings setting instead. For modifiers, you can use either - or + as delimiters, and these names:

Control

Control, Ctrl

Meta

Meta, Windows, Mod4

Alt

Alt, Mod1

Shift

Shift

For simple keys (no <>-signs), a capital letter means the key is pressed with Shift. For special keys (with <>-signs), you need to explicitly add Shift- to match a key pressed with shift. If you want a binding to do nothing, bind it to the nop command. If you want a default binding to be passed through to the website, bind it to null. Note that some commands which are only useful for bindings (but not used interactively) are hidden from the command completion. See :help for a full list of available commands. The following modes are available:

normal

Default mode, where most commands are invoked.

insert

Entered when an input field is focused on a website, or by pressing i in normal mode. Passes through almost all keypresses to the website, but has some bindings like <Ctrl-e> to open an external editor. Note that single keys can’t be bound in this mode.

hint

Entered when f is pressed to select links with the keyboard. Note that single keys can’t be bound in this mode.

passthrough

Similar to insert mode, but passes through all keypresses except <Escape> to leave the mode. It might be useful to bind <Escape> to some other key in this mode if you want to be able to send an Escape key to the website as well. Note that single keys can’t be bound in this mode.

command

Entered when pressing the : key in order to enter a command. Note that single keys can’t be bound in this mode.

prompt

Entered when there’s a prompt to display, like for download locations or when invoked from JavaScript.

yesno

Entered when there’s a yes/no prompt displayed.

caret

Entered when pressing the v mode, used to select text using the keyboard.

register

Entered when qutebrowser is waiting for a register name/key for commands like :set-mark.

Type: attribute set of attribute set of (null or strings concatenated with " ;; ")

Default: { }

Example:

{
  normal = {
    "<Ctrl-v>" = "spawn mpv {url}";
    ",p" = "spawn --userscript qute-pass";
    ",l" = ''config-cycle spellcheck.languages ["en-GB"] ["en-US"]'';
    "<F1>" = mkMerge [
      "config-cycle tabs.show never always"
      "config-cycle statusbar.show in-mode always"
      "config-cycle scrolling.bar never always"
    ];
  };
  prompt = {
    "<Ctrl-y>" = "prompt-yes";
  };
}

Declared by:

<home-manager/modules/programs/qutebrowser.nix>
programs.qutebrowser.keyMappings

This setting can be used to map keys to other keys. When the key used as dictionary-key is pressed, the binding for the key used as dictionary-value is invoked instead. This is useful for global remappings of keys, for example to map Ctrl-[ to Escape. Note that when a key is bound (via bindings.default or bindings.commands), the mapping is ignored.

Type: attribute set of string

Default: { }

Declared by:

<home-manager/modules/programs/qutebrowser.nix>
programs.qutebrowser.loadAutoconfig

Load settings configured via the GUI.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/qutebrowser.nix>
programs.qutebrowser.quickmarks

Quickmarks to add to qutebrowser’s quickmarks file. Note that when Home Manager manages your quickmarks, you cannot edit them at runtime.

Type: attribute set of string

Default: { }

Example:

{
  nixpkgs = "https://github.com/NixOS/nixpkgs";
  home-manager = "https://github.com/nix-community/home-manager";
}

Declared by:

<home-manager/modules/programs/qutebrowser.nix>
programs.qutebrowser.searchEngines

Search engines that can be used via the address bar. Maps a search engine name (such as DEFAULT, or ddg) to a URL with a {} placeholder. The placeholder will be replaced by the search term, use {{ and }} for literal {/} signs. The search engine named DEFAULT is used when url.auto_search is turned on and something else than a URL was entered to be opened. Other search engines can be used by prepending the search engine name to the search term, for example :open google qutebrowser.

Type: attribute set of string

Default: { }

Example:

{
  w = "https://en.wikipedia.org/wiki/Special:Search?search={}&go=Go&ns0=1";
  aw = "https://wiki.archlinux.org/?search={}";
  nw = "https://wiki.nixos.org/index.php?search={}";
  g = "https://www.google.com/search?hl=en&q={}";
}

Declared by:

<home-manager/modules/programs/qutebrowser.nix>
programs.qutebrowser.settings

Options to add to qutebrowser config.py file. See https://qutebrowser.org/doc/help/settings.html for options.

Type: attribute set of anything

Default: { }

Example:

{
  colors = {
    hints = {
      bg = "#000000";
      fg = "#ffffff";
    };
    tabs.bar.bg = "#000000";
  };
  tabs.tabs_are_windows = true;
}

Declared by:

<home-manager/modules/programs/qutebrowser.nix>
programs.ranger.enable

Whether to enable ranger file manager.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/ranger.nix>
programs.ranger.package

The ranger package to use.

Type: package

Default: pkgs.ranger

Declared by:

<home-manager/modules/programs/ranger.nix>
programs.ranger.aliases

Aliases written to $XDG_CONFIG_HOME/ranger/rc.conf.

Type: attribute set of string

Default: { }

Example:

{
  e = "edit";
  filter = "scout -prts";
  setl = "setlocal";
}

Declared by:

<home-manager/modules/programs/ranger.nix>
programs.ranger.extraConfig

Extra configuration lines to add to $XDG_CONFIG_HOME/ranger/rc.conf.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/ranger.nix>
programs.ranger.extraPackages

Extra packages added to ranger.

Type: list of package

Default: [ ]

Declared by:

<home-manager/modules/programs/ranger.nix>
programs.ranger.mappings

Mappings written to $XDG_CONFIG_HOME/ranger/rc.conf.

Type: attribute set of string

Default: { }

Example:

{
  Q = "quitall";
  q = "quit";
}

Declared by:

<home-manager/modules/programs/ranger.nix>
programs.ranger.plugins

List of files to be added to $XDG_CONFIG_HOME/ranger/plugins/.

Type: list of (submodule)

Default: [ ]

Example:

[
  {
    name = "zoxide";
    src = builtins.fetchGit {
      url = "https://github.com/jchook/ranger-zoxide.git";
      rev = "363df97af34c96ea873c5b13b035413f56b12ead";
    };
  }
]

Declared by:

<home-manager/modules/programs/ranger.nix>
programs.ranger.plugins.*.name

Name of the plugin linked to $XDG_CONFIG_HOME/ranger/plugins/. In the case of a single-file plugin, it must also have .py suffix.

Type: string

Declared by:

<home-manager/modules/programs/ranger.nix>
programs.ranger.plugins.*.src

The plugin file or directory.

Type: path

Declared by:

<home-manager/modules/programs/ranger.nix>
programs.ranger.rifle

Settings written to $XDG_CONFIG_HOME/ranger/rifle.conf.

Type: list of (submodule)

Default: [ ]

Declared by:

<home-manager/modules/programs/ranger.nix>
programs.ranger.rifle.*.command

A command to run for the matching file.

Type: string

Example: "${pkgs.vim}/bin/vim -- \"$@\""

Declared by:

<home-manager/modules/programs/ranger.nix>
programs.ranger.rifle.*.condition

A condition to match a file.

Type: string

Example: "mime ^text, label editor"

Declared by:

<home-manager/modules/programs/ranger.nix>
programs.ranger.settings

Settings written to $XDG_CONFIG_HOME/ranger/rc.conf.

Type: attribute set of (boolean or floating point number or signed integer or string)

Default: { }

Example:

{
  column_ratios = "1,3,3";
  confirm_on_delete = "never";
  scroll_offset = 8;
  unicode_ellipsis = true;
}

Declared by:

<home-manager/modules/programs/ranger.nix>
programs.rbenv.enable

Whether to enable rbenv.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/rbenv.nix>
programs.rbenv.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/rbenv.nix>
programs.rbenv.enableFishIntegration

Whether to enable Fish integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/rbenv.nix>
programs.rbenv.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/rbenv.nix>
programs.rbenv.package

The rbenv package to use.

Type: package

Default: pkgs.rbenv

Declared by:

<home-manager/modules/programs/rbenv.nix>
programs.rbenv.plugins

rbenv plugins to install in $HOME/.rbenv/plugins/.

See https://github.com/rbenv/rbenv/wiki/Plugins for the full list of plugins.

Type: list of (submodule)

Default: [ ]

Example:

[
  {
    name = "ruby-build";
    src = pkgs.fetchFromGitHub {
      owner = "rbenv";
      repo = "ruby-build";
      rev = "v20221225";
      hash = "sha256-Kuq0Z1kh2mvq7rHEgwVG9XwzR5ZUtU/h8SQ7W4/mBU0=";
    };
  }
]

Declared by:

<home-manager/modules/programs/rbenv.nix>
programs.rbenv.plugins.*.name

Name of the plugin.

Type: string

Declared by:

<home-manager/modules/programs/rbenv.nix>
programs.rbenv.plugins.*.src

Path to the plugin folder.

Type: path

Declared by:

<home-manager/modules/programs/rbenv.nix>
programs.rbw.enable

Whether to enable rbw, a CLI Bitwarden client.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/rbw.nix>
programs.rbw.package

Package providing the rbw tool and its rbw-agent daemon.

Type: package

Default: pkgs.rbw

Declared by:

<home-manager/modules/programs/rbw.nix>
programs.rbw.settings

rbw configuration, if not defined the configuration will not be managed by Home Manager.

Type: null or (JSON value)

Default: null

Example:

{
  email = "name@example.com";
  lock_timeout = 300;
  pinentry = pkgs.pinentry-gnome3;
}

Declared by:

<home-manager/modules/programs/rbw.nix>
programs.rbw.settings.base_url

The base-url for a self-hosted bitwarden installation.

Type: null or string

Default: null

Example: "https://bitwarden.example.com/"

Declared by:

<home-manager/modules/programs/rbw.nix>
programs.rbw.settings.email

The email address for your bitwarden account.

Type: string

Example: "name@example.com"

Declared by:

<home-manager/modules/programs/rbw.nix>
programs.rbw.settings.identity_url

The identity url for your bitwarden installation.

Type: null or string

Default: null

Example: "https://identity.example.com/"

Declared by:

<home-manager/modules/programs/rbw.nix>
programs.rbw.settings.lock_timeout

The amount of time that your login information should be cached.

Type: unsigned integer, meaning >=0

Default: 3600

Example: 300

Declared by:

<home-manager/modules/programs/rbw.nix>
programs.rbw.settings.pinentry

Which pinentry interface to use. Beware that pinentry-gnome3 may not work on non-Gnome systems. You can fix it by adding the following to your system configuration:

services.dbus.packages = [ pkgs.gcr ];

Type: null or package

Default: null

Example: pkgs.pinentry-gnome3

Declared by:

<home-manager/modules/programs/rbw.nix>
programs.readline.enable

Whether to enable readline.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/readline.nix>
programs.readline.bindings

Readline bindings.

Type: attribute set of string

Default: { }

Example:

{ "\\C-h" = "backward-kill-word"; }

Declared by:

<home-manager/modules/programs/readline.nix>
programs.readline.extraConfig

Configuration lines appended unchanged to the end of the ~/.inputrc file.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/readline.nix>
programs.readline.includeSystemConfig

Whether to include the system-wide configuration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/readline.nix>
programs.readline.variables

Readline customization variable assignments.

Type: attribute set of (string or signed integer or boolean)

Default: { }

Example:

{
  expand-tilde = true;
}

Declared by:

<home-manager/modules/programs/readline.nix>
programs.rio.enable

Enable Rio, a terminal built to run everywhere, as a native desktop applications by Rust/WebGPU or even in the browsers powered by WebAssembly/WebGPU.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/rio.nix>
programs.rio.package

The rio package to use.

Type: package

Default: pkgs.rio

Declared by:

<home-manager/modules/programs/rio.nix>
programs.rio.settings

Configuration written to $XDG_CONFIG_HOME/rio/config.toml. See https://raphamorim.io/rio/docs/#configuration-file for options.

Type: TOML value

Default: { }

Declared by:

<home-manager/modules/programs/rio.nix>
programs.ripgrep.enable

Whether to enable Ripgrep.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/ripgrep.nix>
programs.ripgrep.package

The ripgrep package to use.

Type: package

Default: pkgs.ripgrep

Declared by:

<home-manager/modules/programs/ripgrep.nix>
programs.ripgrep.arguments

List of arguments to pass to ripgrep. Each item is given to ripgrep as a single command line argument verbatim.

See https://github.com/BurntSushi/ripgrep/blob/master/GUIDE.md#configuration-file for an example configuration.

Type: list of string

Default: [ ]

Example:

[
  "--max-columns-preview"
  "--colors=line:style:bold"
]

Declared by:

<home-manager/modules/programs/ripgrep.nix>
programs.rofi.enable

Whether to enable Rofi: A window switcher, application launcher and dmenu replacement.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/rofi.nix>
programs.rofi.package

Package providing the rofi binary.

Type: package

Default: <derivation rofi-1.7.5>

Example:

pkgs.rofi.override { plugins = [ pkgs.rofi-emoji ]; };

Declared by:

<home-manager/modules/programs/rofi.nix>
programs.rofi.configPath

Path where to put generated configuration file.

Type: string

Default: "$XDG_CONFIG_HOME/rofi/config.rasi"

Declared by:

<home-manager/modules/programs/rofi.nix>
programs.rofi.cycle

Whether to cycle through the results list.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/programs/rofi.nix>
programs.rofi.extraConfig

Additional configuration to add.

Type: (attribute set of (string or signed integer or boolean or (Rasi literal string) or list of (string or signed integer or boolean or (Rasi literal string)))) or string

Default: { }

Example:

{
  modi = "drun,emoji,ssh";
  kb-primary-paste = "Control+V,Shift+Insert";
  kb-secondary-paste = "Control+v,Insert";
}

Declared by:

<home-manager/modules/programs/rofi.nix>
programs.rofi.finalPackage

Resulting customized rofi package.

Type: package (read only)

Declared by:

<home-manager/modules/programs/rofi.nix>
programs.rofi.font

Font to use.

Type: null or string

Default: null

Example: "Droid Sans Mono 14"

Declared by:

<home-manager/modules/programs/rofi.nix>
programs.rofi.location

The location rofi appears on the screen.

Type: one of “bottom”, “bottom-left”, “bottom-right”, “center”, “left”, “right”, “top”, “top-left”, “top-right”

Default: "center"

Declared by:

<home-manager/modules/programs/rofi.nix>
programs.rofi.pass.enable

Whether to enable rofi integration with password-store.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/rofi-pass.nix>
programs.rofi.pass.package

The rofi-pass package to use.

Type: package

Default: pkgs.rofi-pass

Example: pkgs.rofi-pass-wayland

Declared by:

<home-manager/modules/programs/rofi-pass.nix>
programs.rofi.pass.extraConfig

Extra configuration to be added at to the rofi-pass config file. Additional examples can be found at https://github.com/carnager/rofi-pass/blob/master/config.example.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  URL_field='url'
  USERNAME_field='user'
  AUTOTYPE_field='autotype'
''

Declared by:

<home-manager/modules/programs/rofi-pass.nix>
programs.rofi.pass.stores

Directory roots of your password-stores.

Type: list of string

Default: [ ]

Declared by:

<home-manager/modules/programs/rofi-pass.nix>
programs.rofi.plugins

List of rofi plugins to be installed.

Type: list of package

Default: [ ]

Example: [ pkgs.rofi-calc ]

Declared by:

<home-manager/modules/programs/rofi.nix>
programs.rofi.terminal

Path to the terminal which will be used to run console applications

Type: null or string

Default: null

Example: "\${pkgs.gnome.gnome_terminal}/bin/gnome-terminal"

Declared by:

<home-manager/modules/programs/rofi.nix>
programs.rofi.theme

Name of theme or path to theme file in rasi format or attribute set with theme configuration. Available named themes can be viewed using the rofi-theme-selector tool.

Type: null or string or path or attribute set of ((attribute set of (string or signed integer or boolean or (Rasi literal string) or list of (string or signed integer or boolean or (Rasi literal string)))) or string)

Default: null

Example:

let
  # Use `mkLiteral` for string-like values that should show without
  # quotes, e.g.:
  # {
  #   foo = "abc"; => foo: "abc";
  #   bar = mkLiteral "abc"; => bar: abc;
  # };
  inherit (config.lib.formats.rasi) mkLiteral;
in {
  "*" = {
    background-color = mkLiteral "#000000";
    foreground-color = mkLiteral "rgba ( 250, 251, 252, 100 % )";
    border-color = mkLiteral "#FFFFFF";
    width = 512;
  };

  "#inputbar" = {
    children = map mkLiteral [ "prompt" "entry" ];
  };

  "#textbox-prompt-colon" = {
    expand = false;
    str = ":";
    margin = mkLiteral "0px 0.3em 0em 0em";
    text-color = mkLiteral "@foreground-color";
  };
}

Declared by:

<home-manager/modules/programs/rofi.nix>
programs.rofi.xoffset

Offset in the x-axis in pixels relative to the chosen location.

Type: signed integer

Default: 0

Declared by:

<home-manager/modules/programs/rofi.nix>
programs.rofi.yoffset

Offset in the y-axis in pixels relative to the chosen location.

Type: signed integer

Default: 0

Declared by:

<home-manager/modules/programs/rofi.nix>
programs.rtorrent.enable

Whether to enable rTorrent.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/rtorrent.nix>
programs.rtorrent.extraConfig

Configuration written to $XDG_CONFIG_HOME/rtorrent/rtorrent.rc. See https://github.com/rakshasa/rtorrent/wiki/Config-Guide for explanation about possible values.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/rtorrent.nix>
programs.ruff.enable

Whether to enable ruff, an extremely fast Python linter and code formatter, written in Rust.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/ruff.nix>
programs.ruff.package

The ruff package to use.

Type: package

Default: pkgs.ruff

Declared by:

<home-manager/modules/programs/ruff.nix>
programs.ruff.settings

Ruff configuration. For available settings see https://docs.astral.sh/ruff/settings.

Type: TOML value

Example:

{
  line-length = 100;
  per-file-ignores = { "__init__.py" = [ "F401" ]; };
  lint = {
    select = [ "E4" "E7" "E9" "F" ];
    ignore = [ ];
  };
}

Declared by:

<home-manager/modules/programs/ruff.nix>
programs.sagemath.enable

Whether to enable SageMath, a mathematics software system.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/sagemath.nix>
programs.sagemath.package

The SageMath package to use.

Type: package

Default: pkgs.sage

Declared by:

<home-manager/modules/programs/sagemath.nix>
programs.sagemath.configDir

Directory where the sage.init file will be stored. Note that the upstream default is ~/.sage, but our default is to follow XDG.

Type: string

Default: ${config.xdg.configHome}/sage

Declared by:

<home-manager/modules/programs/sagemath.nix>
programs.sagemath.dataDir

Location for DOT_SAGE. Note that the upstream default is ~/.sage, but our default is to follow XDG.

Type: string

Default: ${config.xdg.dataHome}/sage

Declared by:

<home-manager/modules/programs/sagemath.nix>
programs.sagemath.initScript

Contents of the init.sage file that is loaded on startup.

Type: strings concatenated with “\n”

Default: ""

Example: "%colors linux"

Declared by:

<home-manager/modules/programs/sagemath.nix>
programs.sapling.enable

Whether to enable Sapling.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/sapling.nix>
programs.sapling.package

The sapling package to use.

Type: package

Default: pkgs.sapling

Declared by:

<home-manager/modules/programs/sapling.nix>
programs.sapling.aliases

Sapling aliases to define.

Type: attribute set of string

Default: { }

Declared by:

<home-manager/modules/programs/sapling.nix>
programs.sapling.extraConfig

Additional configuration to add.

Type: attribute set of anything

Default: { }

Declared by:

<home-manager/modules/programs/sapling.nix>
programs.sapling.userEmail

Default user email to use.

Type: string

Declared by:

<home-manager/modules/programs/sapling.nix>
programs.sapling.userName

Default user name to use.

Type: string

Declared by:

<home-manager/modules/programs/sapling.nix>
programs.sbt.enable

Whether to enable sbt.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/sbt.nix>
programs.sbt.package

The package with sbt to be installed.

Type: package

Default: pkgs.sbt

Declared by:

<home-manager/modules/programs/sbt.nix>
programs.sbt.baseUserConfigPath

Where the sbt configuration files should be located, relative HOME.

Type: string

Default: ".sbt"

Declared by:

<home-manager/modules/programs/sbt.nix>
programs.sbt.credentials

A list of credentials to define in the sbt configuration directory.

Type: list of (submodule)

Default: [ ]

Example:

[{
  realm = "Sonatype Nexus Repository Manager";
  host = "example.com";
  user = "user";
  passwordCommand = "pass show sbt/user@example.com";
}]

Declared by:

<home-manager/modules/programs/sbt.nix>
programs.sbt.credentials.*.host

The hostname of the repository you’re authenticating to.

Type: string

Declared by:

<home-manager/modules/programs/sbt.nix>
programs.sbt.credentials.*.passwordCommand

The command that provides the password or authentication token for the repository.

Type: string

Declared by:

<home-manager/modules/programs/sbt.nix>
programs.sbt.credentials.*.realm

The realm of the repository you’re authenticating to.

Type: string

Declared by:

<home-manager/modules/programs/sbt.nix>
programs.sbt.credentials.*.user

The user you’re using to authenticate.

Type: string

Declared by:

<home-manager/modules/programs/sbt.nix>
programs.sbt.plugins

A list of plugins to place in the sbt configuration directory.

Type: list of (submodule)

Default: [ ]

Example:

[
  {
    org = "net.virtual-void";
    artifact = "sbt-dependency-graph";
    version = "0.10.0-RC1";
  }
  {
    org = "com.dwijnand";
    artifact = "sbt-project-graph";
    version = "0.4.0";
  }
]

Declared by:

<home-manager/modules/programs/sbt.nix>
programs.sbt.plugins.*.artifact

The name of the artifact.

Type: string

Declared by:

<home-manager/modules/programs/sbt.nix>
programs.sbt.plugins.*.org

The organization the artifact is published under.

Type: string

Declared by:

<home-manager/modules/programs/sbt.nix>
programs.sbt.plugins.*.version

The version of the plugin.

Type: string

Declared by:

<home-manager/modules/programs/sbt.nix>
programs.sbt.repositories

A list of repositories to use when resolving dependencies. Defined as a list of pre-defined repository or custom repository as a set of name to URL. The list will be used populate the ~/.sbt/repositories file in the order specified.

Pre-defined repositories must be one of local, maven-local, maven-central.

Custom repositories are defined as { name-of-repo = "https://url.to.repo.com"}.

See https://www.scala-sbt.org/1.x/docs/Launcher-Configuration.html#3.+Repositories+Section about this configuration section and https://www.scala-sbt.org/1.x/docs/Proxy-Repositories.html to read about proxy repositories.

Type: list of (one of “local”, “maven-central”, “maven-local” or attribute set of string)

Default: [ ]

Example:

[
  "local"
  { my-ivy-proxy-releases = "http://repo.company.com/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]" }
  { my-maven-proxy-releases = "http://repo.company.com/maven-releases/" }
  "maven-central"
]

Declared by:

<home-manager/modules/programs/sbt.nix>
programs.scmpuff.enable

Whether to enable scmpuff, a command line tool that allows you to work quicker with Git by substituting numeric shortcuts for files.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/scmpuff.nix>
programs.scmpuff.enableAliases

Whether to enable aliases (e.g. gs, ga, gd, gco).

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/scmpuff.nix>
programs.scmpuff.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/scmpuff.nix>
programs.scmpuff.enableFishIntegration

Whether to enable fish integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/scmpuff.nix>
programs.scmpuff.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/scmpuff.nix>
programs.scmpuff.package

Package providing the scmpuff tool.

Type: package

Default: pkgs.scmpuff

Declared by:

<home-manager/modules/programs/scmpuff.nix>
programs.script-directory.enable

Whether to enable script-directory.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/script-directory.nix>
programs.script-directory.package

The script-directory package to use.

Type: package

Default: pkgs.script-directory

Declared by:

<home-manager/modules/programs/script-directory.nix>
programs.script-directory.settings

script-directory config, for options take a look at the documentation

Type: attribute set of string

Default: { }

Example:

{
  SD_ROOT = "${config.home.homeDirectory}/.sd";
  SD_EDITOR = "nvim";
  SD_CAT = "lolcat";
}

Declared by:

<home-manager/modules/programs/script-directory.nix>
programs.senpai.enable

Whether to enable senpai.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/senpai.nix>
programs.senpai.package

The senpai package to use.

Type: package

Default: pkgs.senpai

Declared by:

<home-manager/modules/programs/senpai.nix>
programs.senpai.config

Configuration for senpai. For a complete list of options, see senpai(5).

Type: attribute set of anything

Example:

{
  address = "libera.chat:6697";
  nickname = "nicholas";
  password = "verysecurepassword";
}

Declared by:

<home-manager/modules/programs/senpai.nix>
programs.senpai.config.address

The address (host[:port]) of the IRC server. senpai uses TLS connections by default unless you specify tls option to be false. TLS connections default to port 6697, plain-text use port 6667.

URircs://, irc://, and irc+insecure:// URLs are supported, in which case only the hostname and port parts will be used. If the scheme is ircs/irc+insecure, tls will be overriden and set to true/false accordingly.

Type: string

Declared by:

<home-manager/modules/programs/senpai.nix>
programs.senpai.config.nickname

Your nickname, sent with a NICK IRC message. It mustn’t contain spaces or colons (:).

Type: string

Declared by:

<home-manager/modules/programs/senpai.nix>
programs.senpai.config.password

Your password, used for SASL authentication. Note that it will reside world-readable in the Nix store.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/senpai.nix>
programs.senpai.config.password-cmd

Alternatively to providing your SASL authentication password directly in plaintext, you can specify a command to be run to fetch the password at runtime. This is useful if you store your passwords in a separate (probably encrypted) file using gpg or a command line password manager such as pass or gopass. If a password-cmd is provided, the value of password will be ignored and the first line of the output of password-cmd will be used for login.

Type: null or (list of string)

Default: null

Example:

[
  "gopass"
  "show"
  "irc/guest"
]

Declared by:

<home-manager/modules/programs/senpai.nix>
programs.sftpman.enable

Whether to enable sftpman, an application that handles sshfs/sftp file systems mounting.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/sftpman.nix>
programs.sftpman.package

The sftpman package to use.

Type: package

Default: pkgs.sftpman

Declared by:

<home-manager/modules/programs/sftpman.nix>
programs.sftpman.defaultSshKey

Path to the SSH key to be used by default. Can be overridden per host.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/sftpman.nix>
programs.sftpman.mounts

The sshfs mount configurations written to $XDG_CONFIG_HOME/sftpman/mounts/.

Type: attribute set of (submodule)

Default: { }

Declared by:

<home-manager/modules/programs/sftpman.nix>
programs.sftpman.mounts.<name>.authType

The authentication method to use.

Type: one of “password”, “publickey”, “hostbased”, “keyboard-interactive”, “gssapi-with-mic”

Default: "publickey"

Declared by:

<home-manager/modules/programs/sftpman.nix>
programs.sftpman.mounts.<name>.beforeMount

Command to run before mounting.

Type: string

Default: "true"

Declared by:

<home-manager/modules/programs/sftpman.nix>
programs.sftpman.mounts.<name>.host

The host to connect to.

Type: string

Declared by:

<home-manager/modules/programs/sftpman.nix>
programs.sftpman.mounts.<name>.mountOptions

Options to pass to sshfs.

Type: list of string

Default: [ ]

Declared by:

<home-manager/modules/programs/sftpman.nix>
programs.sftpman.mounts.<name>.mountPoint

The remote path to mount.

Type: string

Declared by:

<home-manager/modules/programs/sftpman.nix>
programs.sftpman.mounts.<name>.port

The port to connect to.

Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default: 22

Declared by:

<home-manager/modules/programs/sftpman.nix>
programs.sftpman.mounts.<name>.sshKey

Path to the SSH key to use for authentication. Only applies if authMethod is publickey.

Type: null or string

Default: config.programs.sftpman.defaultSshKey

Declared by:

<home-manager/modules/programs/sftpman.nix>
programs.sftpman.mounts.<name>.user

The username to authenticate with.

Type: string

Declared by:

<home-manager/modules/programs/sftpman.nix>
programs.sioyek.enable

Whether to enable Sioyek, a PDF viewer designed for reading research papers and technical books.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/sioyek.nix>
programs.sioyek.package

Package providing the sioyek binary

Type: package

Default: pkgs.sioyek

Declared by:

<home-manager/modules/programs/sioyek.nix>
programs.sioyek.bindings

Input configuration written to $XDG_CONFIG_HOME/sioyek/keys_user.config. See https://github.com/ahrm/sioyek/blob/main/pdf_viewer/keys.config.

Each attribute could also accept a list of strings to set multiple bindings of the same command.

Type: attribute set of (string or list of string)

Default: { }

Example:

{
  "move_up" = "k";
  "move_down" = "j";
  "move_left" = "h";
  "move_right" = "l";
  "screen_down" = [ "d" "<C-d>" ];
  "screen_up" = [ "u" "<C-u>" ];
}

Declared by:

<home-manager/modules/programs/sioyek.nix>
programs.sioyek.config

Input configuration written to $XDG_CONFIG_HOME/sioyek/prefs_user.config. See https://github.com/ahrm/sioyek/blob/main/pdf_viewer/prefs.config.

Type: attribute set of string

Default: { }

Example:

{
  "background_color" = "1.0 1.0 1.0";
  "text_highlight_color" = "1.0 0.0 0.0";
}

Declared by:

<home-manager/modules/programs/sioyek.nix>
programs.skim.enable

Whether to enable skim - a command-line fuzzy finder.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/skim.nix>
programs.skim.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/skim.nix>
programs.skim.enableFishIntegration

Whether to enable Fish integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/skim.nix>
programs.skim.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/skim.nix>
programs.skim.package

Package providing the skim tool.

Type: package

Default: pkgs.skim

Declared by:

<home-manager/modules/programs/skim.nix>
programs.skim.changeDirWidgetCommand

The command that gets executed as the source for skim for the ALT-C keybinding.

Type: null or string

Default: null

Example: "fd --type d"

Declared by:

<home-manager/modules/programs/skim.nix>
programs.skim.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/skim.nix>
programs.skim.defaultCommand

The command that gets executed as the default source for skim when running.

Type: null or string

Default: null

Example: "fd --type f"

Declared by:

<home-manager/modules/programs/skim.nix>
programs.skim.defaultOptions

Extra command line options given to skim by default.

Type: list of string

Default: [ ]

Example:

[
  "--height 40%"
  "--prompt ⟫"
]

Declared by:

<home-manager/modules/programs/skim.nix>
programs.skim.fileWidgetCommand

The command that gets executed as the source for skim for the CTRL-T keybinding.

Type: null or string

Default: null

Example: "fd --type f"

Declared by:

<home-manager/modules/programs/skim.nix>
programs.skim.fileWidgetOptions

Command line options for the CTRL-T keybinding.

Type: list of string

Default: [ ]

Example:

[
  "--preview 'head {}'"
]

Declared by:

<home-manager/modules/programs/skim.nix>
programs.skim.historyWidgetOptions

Command line options for the CTRL-R keybinding.

Type: list of string

Default: [ ]

Example:

[
  "--tac"
  "--exact"
]

Declared by:

<home-manager/modules/programs/skim.nix>
programs.sm64ex.enable

Whether to enable sm64ex.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/sm64ex.nix>
programs.sm64ex.package

The sm64ex package to use.

Type: package

Default: <derivation sm64ex-unstable-2022-12-19>

Declared by:

<home-manager/modules/programs/sm64ex.nix>
programs.sm64ex.baserom

The path to the Super Mario 64 baserom to extract assets from.

Type: null or path

Default: null

Example: /home/foo/baserom.us.z64

Declared by:

<home-manager/modules/programs/sm64ex.nix>
programs.sm64ex.extraCompileFlags

Extra flags to pass to the compiler. See https://github.com/sm64pc/sm64ex/wiki/Build-options for more information.

Type: null or (list of string)

Default: null

Example:

[
  "BETTERCAMERA=1"
  "NODRAWINGDISTANCE=1"
];

Declared by:

<home-manager/modules/programs/sm64ex.nix>
programs.sm64ex.region

Your baserom’s region. Note that only “us”, “eu”, and “jp” are supported.

Type: null or one of “us”, “eu”, “jp”

Default: us

Example: jp

Declared by:

<home-manager/modules/programs/sm64ex.nix>
programs.sm64ex.settings

Settings for sm64ex’s $XDG_DATA_HOME/sm64pc/sm64config.txt file.

Type: null or (attribute set of (string or signed integer or boolean or list of string))

Default: null

Example:

{
  fullscreen = false;
  window_x = 0;
  window_y = 0;
  window_w = 1920;
  window_h = 1080;
  vsync = 1;
  texture_filtering = 1;
  master_volume = 127;
  music_volume = 127;
  sfx_volume = 127;
  env_volume = 127;
  key_a = [ "0026" "1000" "1103" ];
  key_b = [ "0033" "1002" "1101" ];
  key_start = [ "0039" "1006" "ffff" ];
  key_l = [ "0034" "1007" "1104" ];
  key_r = [ "0036" "100a" "1105" ];
  key_z = [ "0025" "1009" "1102" ];
  key_cup = [ "100b" "ffff" "ffff" ];
  key_cdown = [ "100c" "ffff" "ffff" ];
  key_cleft = [ "100d" "ffff" "ffff" ];
  key_cright = [ "100e" "ffff" "ffff" ];
  key_stickup = [ "0011" "ffff" "ffff" ];
  key_stickdown = [ "001f" "ffff" "ffff" ];
  key_stickleft = [ "001e" "ffff" "ffff" ];
  key_stickright = [ "0020" "ffff" "ffff" ];
  stick_deadzone = 16;
  rumble_strength = 10;
  skip_intro = 1;
};

Declared by:

<home-manager/modules/programs/sm64ex.nix>
programs.spotify-player.enable

Whether to enable spotify-player.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/spotify-player.nix>
programs.spotify-player.package

The spotify-player package to use.

Type: package

Default: pkgs.spotify-player

Declared by:

<home-manager/modules/programs/spotify-player.nix>
programs.spotify-player.actions

Configuration written to the actions field of $XDG_CONFIG_HOME/spotify-player/keymap.toml.

See https://github.com/aome510/spotify-player/blob/master/docs/config.md#actions for the full list of options.

Type: list of (TOML value)

Default: [ ]

Example:

[
  {
    action = "GoToArtist";
    key_sequence = "g A";
  }
  {
    action = "GoToAlbum";
    key_sequence = "g B";
    target = "PlayingTrack";
  }
  {
    action = "ToggleLiked";
    key_sequence = "C-l";
  }
]

Declared by:

<home-manager/modules/programs/spotify-player.nix>
programs.spotify-player.keymaps

Configuration written to the keymaps field of $XDG_CONFIG_HOME/spotify-player/keymap.toml.

See https://github.com/aome510/spotify-player/blob/master/docs/config.md#keymaps for the full list of options.

Type: list of (TOML value)

Default: [ ]

Example:

[
  {
    command = "NextTrack";
    key_sequence = "g n";
  }
  {
    command = "PreviousTrack";
    key_sequence = "g p";
  }
  {
    command = "Search";
    key_sequence = "C-c C-x /";
  }
  {
    command = "ResumePause";
    key_sequence = "M-enter";
  }
  {
    command = "None";
    key_sequence = "q";
  }
]

Declared by:

<home-manager/modules/programs/spotify-player.nix>
programs.spotify-player.settings

Configuration written to $XDG_CONFIG_HOME/spotify-player/app.toml.

See https://github.com/aome510/spotify-player/blob/master/docs/config.md#general for the full list of options.

Type: TOML value

Default: { }

Example:

{
  theme = "default";
  playback_window_position = "Top";
  copy_command = {
    command = "wl-copy";
    args = [];
  };
  device = {
    audio_cache = false;
    normalization = false;
  };
}

Declared by:

<home-manager/modules/programs/spotify-player.nix>
programs.spotify-player.themes

Configuration written to the themes field of $XDG_CONFIG_HOME/spotify-player/theme.toml.

See https://github.com/aome510/spotify-player/blob/master/docs/config.md#themes for the full list of options.

Type: list of (TOML value)

Default: [ ]

Example:

[
  {
    name = "default2";
    palette = {
      black = "black";
      red = "red";
      green = "green";
      yellow = "yellow";
      blue = "blue";
      magenta = "magenta";
      cyan = "cyan";
      white = "white";
      bright_black = "bright_black";
      bright_red = "bright_red";
      bright_green = "bright_green";
      bright_yellow = "bright_yellow";
      bright_blue = "bright_blue";
      bright_magenta = "bright_magenta";
      bright_cyan = "bright_cyan";
      bright_white = "bright_white";
    };
    component_style = {
      block_title = { fg = "Magenta"; };
      border = {};
      playback_track = { fg = "Cyan"; modifiers = ["Bold"]; };
      playback_artists = { fg = "Cyan"; modifiers = ["Bold"]; };
      playback_album = { fg = "Yellow"; };
      playback_metadata = { fg = "BrightBlack"; };
      playback_progress_bar = { bg = "BrightBlack"; fg = "Green"; };
      current_playing = { fg = "Green"; modifiers = ["Bold"]; };
      page_desc = { fg = "Cyan"; modifiers = ["Bold"]; };
      table_header = { fg = "Blue"; };
      selection = { modifiers = ["Bold" "Reversed"]; };
    };
  }
]

Declared by:

<home-manager/modules/programs/spotify-player.nix>
programs.sqls.enable

Whether to enable sqls, a SQL language server written in Go.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/sqls.nix>
programs.sqls.settings

Configuration written to $XDG_CONFIG_HOME/sqls/config.yml. See https://github.com/lighttiger2505/sqls#db-configuration for supported values.

Type: YAML value

Default: { }

Example:

{
   lowercaseKeywords = true;
   connections = [
     {
       driver = "mysql";
       dataSourceName = "root:root@tcp(127.0.0.1:13306)/world";
     }
   ];
}

Declared by:

<home-manager/modules/programs/sqls.nix>
programs.ssh.enable

Whether to enable SSH client configuration.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.package

The openssh package to use. By default, the client provided by your system is used.

Type: null or package

Default: null

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.addKeysToAgent

When enabled, a private key that is used during authentication will be added to ssh-agent if it is running (with confirmation enabled if set to ‘confirm’). The argument must be ‘no’ (the default), ‘yes’, ‘confirm’ (optionally followed by a time interval), ‘ask’ or a time interval (e.g. ‘1h’).

Type: string

Default: "no"

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.compression

Specifies whether to use compression.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.controlMaster

Configure sharing of multiple sessions over a single network connection.

Type: one of “yes”, “no”, “ask”, “auto”, “autoask”

Default: "no"

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.controlPath

Specify path to the control socket used for connection sharing.

Type: string

Default: "~/.ssh/master-%r@%n:%p"

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.controlPersist

Whether control socket should remain open in the background.

Type: string

Default: "no"

Example: "10m"

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.extraConfig

Extra configuration.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.extraOptionOverrides

Extra SSH configuration options that take precedence over any host specific configuration.

Type: attribute set of string

Default: { }

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.forwardAgent

Whether the connection to the authentication agent (if any) will be forwarded to the remote machine.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.hashKnownHosts

Indicates that ssh(1) should hash host names and addresses when they are added to the known hosts file.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.includes

File globs of ssh config files that should be included via the Include directive.

See ssh_config(5) for more information.

Type: list of string

Default: [ ]

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks

Specify per-host settings. Note, if the order of rules matter then use the DAG functions to express the dependencies as shown in the example.

See ssh_config(5) for more information.

Type: DAG of submodule

Default: { }

Example:

{
  "john.example.com" = {
    hostname = "example.com";
    user = "john";
  };
  foo = lib.hm.dag.entryBefore ["john.example.com"] {
    hostname = "example.com";
    identityFile = "/home/john/.ssh/foo_rsa";
  };
};

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.addressFamily

Specifies which address family to use when connecting.

Type: null or one of “any”, “inet”, “inet6”

Default: null

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.certificateFile

Specifies files from which the user certificate is read.

Type: (list of string) or null or string

Default: [ ]

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.checkHostIP

Check the host IP address in the known_hosts file.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.compression

Specifies whether to use compression. Omitted from the host block when null.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.dynamicForwards

Specify dynamic port forwardings. See ssh_config(5) for DynamicForward.

Type: list of (submodule)

Default: [ ]

Example:

[ { port = 8080; } ];

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.dynamicForwards.*.address

The address where to bind the port.

Type: string

Default: "localhost"

Example: "example.org"

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.dynamicForwards.*.port

Specifies port number to bind on bind address.

Type: null or 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default: null

Example: 8080

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.extraOptions

Extra configuration options for the host.

Type: attribute set of string

Default: { }

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.forwardAgent

Whether the connection to the authentication agent (if any) will be forwarded to the remote machine.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.forwardX11

Specifies whether X11 connections will be automatically redirected over the secure channel and DISPLAY set.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.forwardX11Trusted

Specifies whether remote X11 clients will have full access to the original X11 display.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.host

Host pattern used by this conditional block. See ssh_config(5) for Host block details. This option is ignored if ssh.matchBlocks.*.match if defined.

Type: null or string

Default: null

Example: "*.example.org"

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.hostname

Specifies the real host name to log into.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.identitiesOnly

Specifies that ssh should only use the authentication identity explicitly configured in the ~/.ssh/config files or passed on the ssh command-line, even if ssh-agent offers more identities.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.identityFile

Specifies files from which the user identity is read. Identities will be tried in the given order.

Type: (list of string) or null or string

Default: [ ]

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.localForwards

Specify local port forwardings. See ssh_config(5) for LocalForward.

Type: list of (submodule)

Default: [ ]

Example:

[
  {
    bind.port = 8080;
    host.address = "10.0.0.13";
    host.port = 80;
  }
];

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.localForwards.*.bind.address

The address where to bind the port.

Type: string

Default: "localhost"

Example: "example.org"

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.localForwards.*.bind.port

Specifies port number to bind on bind address.

Type: null or 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default: null

Example: 8080

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.localForwards.*.host.address

The address where to forward the traffic to.

Type: null or string

Default: null

Example: "example.org"

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.localForwards.*.host.port

Specifies port number to forward the traffic to.

Type: null or 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default: null

Example: 80

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.match

Match block conditions used by this block. See ssh_config(5) for Match block details. This option takes precedence over ssh.matchBlocks.*.host if defined.

Type: null or string

Default: null

Example:

''
  host <hostname> canonical
  host <hostname> exec "ping -c1 -q 192.168.17.1"''

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.port

Specifies port number to connect on remote host.

Type: null or 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default: null

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.proxyCommand

The command to use to connect to the server.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.proxyJump

The proxy host to use to connect to the server.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.remoteForwards

Specify remote port forwardings. See ssh_config(5) for RemoteForward.

Type: list of (submodule)

Default: [ ]

Example:

[
  {
    bind.port = 8080;
    host.address = "10.0.0.13";
    host.port = 80;
  }
];

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.remoteForwards.*.bind.address

The address where to bind the port.

Type: string

Default: "localhost"

Example: "example.org"

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.remoteForwards.*.bind.port

Specifies port number to bind on bind address.

Type: null or 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default: null

Example: 8080

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.remoteForwards.*.host.address

The address where to forward the traffic to.

Type: null or string

Default: null

Example: "example.org"

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.remoteForwards.*.host.port

Specifies port number to forward the traffic to.

Type: null or 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default: null

Example: 80

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.sendEnv

Environment variables to send from the local host to the server.

Type: list of string

Default: [ ]

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.serverAliveCountMax

Sets the number of server alive messages which may be sent without SSH receiving any messages back from the server.

Type: positive integer, meaning >0

Default: 3

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.serverAliveInterval

Set timeout in seconds after which response will be requested.

Type: signed integer

Default: 0

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.setEnv

Environment variables and their value to send to the server.

Type: attribute set of (string or path or signed integer or floating point number)

Default: { }

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.matchBlocks.<name>.user

Specifies the user to log in as.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.serverAliveCountMax

Sets the default number of server alive messages which may be sent without SSH receiving any messages back from the server.

Type: positive integer, meaning >0

Default: 3

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.serverAliveInterval

Set default timeout in seconds after which response will be requested.

Type: signed integer

Default: 0

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.ssh.userKnownHostsFile

Specifies one or more files to use for the user host key database, separated by whitespace. The default is ~/.ssh/known_hosts.

Type: string

Default: "~/.ssh/known_hosts"

Declared by:

<home-manager/modules/programs/ssh.nix>
programs.starship.enable

Whether to enable starship.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/starship.nix>
programs.starship.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/starship.nix>
programs.starship.enableFishIntegration

Whether to enable Fish integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/starship.nix>
programs.starship.enableIonIntegration

Whether to enable Ion integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/starship.nix>
programs.starship.enableNushellIntegration

Whether to enable Nushell integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/starship.nix>
programs.starship.enableTransience

The TransientPrompt feature of Starship replaces previous prompts with a custom string. This is only a valid option for the Fish shell.

For documentation on how to change the default replacement string and for more information visit https://starship.rs/advanced-config/#transientprompt-and-transientrightprompt-in-cmd

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/starship.nix>
programs.starship.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/starship.nix>
programs.starship.package

The package to use for the starship binary.

Type: package

Default: pkgs.starship

Declared by:

<home-manager/modules/programs/starship.nix>
programs.starship.settings

Configuration written to $XDG_CONFIG_HOME/starship.toml.

See https://starship.rs/config/ for the full list of options.

Type: TOML value

Default: { }

Example:

{
  add_newline = false;
  format = lib.concatStrings [
    "$line_break"
    "$package"
    "$line_break"
    "$character"
  ];
  scan_timeout = 10;
  character = {
    success_symbol = "➜";
    error_symbol = "➜";
  };
}

Declared by:

<home-manager/modules/programs/starship.nix>
programs.swaylock.enable

Whether to enable swaylock.

Note that PAM must be configured to enable swaylock to perform authentication. The package installed through home-manager will not be able to unlock the session without this configuration.

On NixOS, this is by default enabled with the sway module, but for other compositors it can currently be enabled using:

security.pam.services.swaylock = {};

Type: boolean

Default:

true  if state version < 23.05 and settings ≠ { },
false otherwise

Example: true

Declared by:

<home-manager/modules/programs/swaylock.nix>
programs.swaylock.package

The swaylock package to use.

Type: package

Default: pkgs.swaylock

Declared by:

<home-manager/modules/programs/swaylock.nix>
programs.swaylock.settings

Default arguments to swaylock. An empty set disables configuration generation.

Type: attribute set of (boolean or floating point number or signed integer or string)

Default: { }

Example:

{
  color = "808080";
  font-size = 24;
  indicator-idle-visible = false;
  indicator-radius = 100;
  line-color = "ffffff";
  show-failed-attempts = true;
}

Declared by:

<home-manager/modules/programs/swaylock.nix>
programs.swayr.enable

Whether to enable the swayr service.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/swayr.nix>
programs.swayr.package

swayr package to use.

Type: package

Default: pkgs.swayr

Declared by:

<home-manager/modules/programs/swayr.nix>
programs.swayr.extraConfig

Extra configuration lines to append to the swayr configuration file.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/swayr.nix>
programs.swayr.settings

Configuration included in config.toml. For available options see https://git.sr.ht/~tsdh/swayr#swayr-configuration

Type: null or TOML value

Default: { }

Example:

menu = {
  executable = "${pkgs.wofi}/bin/wofi";
  args = [
    "--show=dmenu"
    "--allow-markup"
    "--allow-images"
    "--insensitive"
    "--cache-file=/dev/null"
    "--parse-search"
    "--height=40%"
    "--prompt={prompt}"
  ];
};

format = {
  output_format = "{indent}<b>Output {name}</b>    <span alpha=\"20000\">({id})</span>";
  workspace_format = "{indent}<b>Workspace {name} [{layout}]</b> on output {output_name}    <span alpha=\"20000\">({id})</span>";
  container_format = "{indent}<b>Container [{layout}]</b> <i>{marks}</i> on workspace {workspace_name}    <span alpha=\"20000\">({id})</span>";
  window_format = "img:{app_icon}:text:{indent}<i>{app_name}</i> — {urgency_start}<b>“{title}”</b>{urgency_end} <i>{marks}</i> on workspace {workspace_name} / {output_name}    <span alpha=\"20000\">({id})</span>";
  indent = "    ";
  urgency_start = "<span background=\"darkred\" foreground=\"yellow\">";
  urgency_end = "</span>";
  html_escape = true;
};

layout = {
  auto_tile = false;
  auto_tile_min_window_width_per_output_width = [
    [ 800 400 ]
    [ 1024 500 ]
    [ 1280 600 ]
    [ 1400 680 ]
    [ 1440 700 ]
    [ 1600 780 ]
    [ 1680 780 ]
    [ 1920 920 ]
    [ 2048 980 ]
    [ 2560 1000 ]
    [ 3440 1200 ]
    [ 3840 1280 ]
    [ 4096 1400 ]
    [ 4480 1600 ]
    [ 7680 2400 ]
  ];
};

focus = {
  lockin_delay = 750;
};

misc = {
  seq_inhibit = false;
};

Declared by:

<home-manager/modules/programs/swayr.nix>
programs.swayr.systemd.enable

Whether to enable swayr systemd integration.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/swayr.nix>
programs.swayr.systemd.target

Systemd target to bind to.

Type: string

Default: "graphical-session.target"

Declared by:

<home-manager/modules/programs/swayr.nix>
programs.taskwarrior.enable

Whether to enable Task Warrior.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/taskwarrior.nix>
programs.taskwarrior.package

The taskwarrior package to use.

Type: package

Default: pkgs.taskwarrior

Example: pkgs.taskwarrior3

Declared by:

<home-manager/modules/programs/taskwarrior.nix>
programs.taskwarrior.colorTheme

Either one of the default provided theme as string, or a path to a theme configuration file.

Type: null or string or path

Default: null

Example: "dark-blue-256"

Declared by:

<home-manager/modules/programs/taskwarrior.nix>
programs.taskwarrior.config

Key-value configuration written to $XDG_CONFIG_HOME/task/taskrc.

Type: attribute set of anything

Default: { }

Example:

{
  confirmation = false;
  report.minimal.filter = "status:pending";
  report.active.columns = [ "id" "start" "entry.age" "priority" "project" "due" "description" ];
  report.active.labels  = [ "ID" "Started" "Age" "Priority" "Project" "Due" "Description" ];
  taskd = {
    certificate = "/path/to/cert";
    key = "/path/to/key";
    ca = "/path/to/ca";
    server = "host.domain:53589";
    credentials = "Org/First Last/cf31f287-ee9e-43a8-843e-e8bbd5de4294";
  };
}

Declared by:

<home-manager/modules/programs/taskwarrior.nix>
programs.taskwarrior.dataLocation

Location where Task Warrior will store its data.

Home Manager will attempt to create this directory.

Type: string

Default: "$XDG_DATA_HOME/task"

Declared by:

<home-manager/modules/programs/taskwarrior.nix>
programs.taskwarrior.extraConfig

Additional content written at the end of $XDG_CONFIG_HOME/task/taskrc.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/taskwarrior.nix>
programs.tealdeer.enable

Whether to enable Tealdeer.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/tealdeer.nix>
programs.tealdeer.settings

Configuration written to $XDG_CONFIG_HOME/tealdeer/config.toml on Linux or $HOME/Library/Application Support/tealdeer/config.toml on Darwin. See https://dbrgn.github.io/tealdeer/config.html for more information.

Type: null or (TOML value)

Default: null

Example:

{
  display = {
    compact = false;
    use_pager = true;
  };
  updates = {
    auto_update = false;
  };
};

Declared by:

<home-manager/modules/programs/tealdeer.nix>
programs.tealdeer.settings.updates

Tealdeer can refresh the cache automatically when it is outdated. This behavior can be configured in the updates section.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/programs/tealdeer.nix>
programs.tealdeer.settings.updates.auto_update

Whether to enable auto-update.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/tealdeer.nix>
programs.tealdeer.settings.updates.auto_update_interval_hours

Duration, since the last cache update, after which the cache will be refreshed. This parameter is ignored if auto_update is set to false.

Type: positive integer, meaning >0

Default: 720

Example: 24

Declared by:

<home-manager/modules/programs/tealdeer.nix>
programs.terminator.enable

Whether to enable terminator, a tiling terminal emulator.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/terminator.nix>
programs.terminator.package

terminator package to install.

Type: package

Default: <derivation terminator-2.1.4>

Example: pkgs.terminator

Declared by:

<home-manager/modules/programs/terminator.nix>
programs.terminator.config

configuration for terminator.

For a list of all possible options refer to the terminator_config(5) man page.

Type: attribute set of anything

Default: { }

Example:

{
  global_config.borderless = true;
  profiles.default.background_color = "#002b36";
}

Declared by:

<home-manager/modules/programs/terminator.nix>
programs.termite.enable

Whether to enable Termite VTE-based terminal.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.enableVteIntegration

Whether to enable Shell VTE integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.allowBold

Allow the output of bold characters when the bold escape sequence appears.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.audibleBell

Have the terminal beep on the terminal bell.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.backgroundColor

Background color value.

Type: null or string

Default: null

Example: "rgba(63, 63, 63, 0.8)"

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.browser

Set the default browser for opening links. If its not set, $BROWSER is read. If that’s not set, url hints will be disabled.

Type: null or string

Default: null

Example: "\${pkgs.xdg-utils}/xdg-open"

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.clickableUrl

Auto-detected URLs can be clicked on to open them in your browser. Only enabled if a browser is configured or detected.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.colorsExtra

Extra colors options that should be added to [colors] section.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  color0 = #3f3f3f
  color1 = #705050
  color2 = #60b48a
''

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.cursorBlink

Specify the how the terminal’s cursor should behave. Accepts system to respect the gtk global configuration, on and off to explicitly enable or disable them.

Type: null or one of “system”, “on”, “off”

Default: null

Example: "system"

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.cursorColor

Cursor color value.

Type: null or string

Default: null

Example: "#dcdccc"

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.cursorForegroundColor

Cursor foreground color value.

Type: null or string

Default: null

Example: "#dcdccc"

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.cursorShape

Specify how the cursor should look. Accepts block, ibeam and underline.

Type: null or one of “block”, “underline”, “ibeam”

Default: null

Example: "block"

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.dynamicTitle

Settings dynamic title allows the terminal and the shell to update the terminal’s title.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.filterUnmatchedUrls

Whether to hide url hints not matching input in url hints mode.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.font

The font description for the terminal’s font.

Type: null or string

Default: null

Example: "Monospace 12"

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.foregroundBoldColor

Foreground bold color value.

Type: null or string

Default: null

Example: "#ffffff"

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.foregroundColor

Foreground color value.

Type: null or string

Default: null

Example: "#dcdccc"

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.fullscreen

Enables entering fullscreen mode by pressing F11.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.geometry

The default window geometry for new terminal windows.

Type: null or string

Default: null

Example: "640x480"

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.highlightColor

highlight color value.

Type: null or string

Default: null

Example: "#2f2f2f"

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.hintsActiveBackgroundColor

Hints active background color value.

Type: null or string

Default: null

Example: "#3f3f3f"

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.hintsActiveForegroundColor

Hints active foreground color value.

Type: null or string

Default: null

Example: "#e68080"

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.hintsBackgroundColor

Hints background color value.

Type: null or string

Default: null

Example: "#3f3f3f"

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.hintsBorderColor

Hints border color value.

Type: null or string

Default: null

Example: "#3f3f3f"

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.hintsBorderWidth

Hints border width.

Type: null or string

Default: null

Example: "0.5"

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.hintsExtra

Extra hints options that should be added to [hints] section.

Type: strings concatenated with “\n”

Default: ""

Example: "border = #3f3f3f"

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.hintsFont

The font description for the hints font.

Type: null or string

Default: null

Example: "Monospace 12"

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.hintsForegroundColor

Hints foreground color value.

Type: null or string

Default: null

Example: "#dcdccc"

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.hintsPadding

Hints padding.

Type: null or signed integer

Default: null

Example: 2

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.hintsRoundness

Hints roundness.

Type: null or string

Default: null

Example: "0.2"

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.iconName

The name of the icon to be used for the terminal process.

Type: null or string

Default: null

Example: "terminal"

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.modifyOtherKeys

Emit escape sequences for extra keys, like the modifyOtherKeys resource for xterm(1).

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.mouseAutohide

Automatically hide the mouse pointer when you start typing.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.optionsExtra

Extra options that should be added to [options] section.

Type: strings concatenated with “\n”

Default: ""

Example: "fullscreen = true"

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.scrollOnKeystroke

Scroll to the bottom automatically when a key is pressed.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.scrollOnOutput

Scroll to the bottom when the shell generates output.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.scrollbackLines

Set the number of lines to limit the terminal’s scrollback.

Type: null or signed integer

Default: null

Example: 10000

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.scrollbar

Scrollbar position.

Type: null or one of “off”, “left”, “right”

Default: null

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.searchWrap

Search from top again when you hit the bottom.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.sizeHints

Enable size hints. Locks the terminal resizing to increments of the terminal’s cell size. Requires a window manager that respects scroll hints.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/programs/termite.nix>
programs.termite.urgentOnBell

Sets the window as urgent on the terminal bell.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/programs/termite.nix>
programs.texlive.enable

Whether to enable TeX Live.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/texlive.nix>
programs.texlive.package

Resulting customized TeX Live package.

Type: package (read only)

Declared by:

<home-manager/modules/programs/texlive.nix>
programs.texlive.packageSet

TeX Live package set to use.

Type: unspecified value

Default: pkgs.texlive

Declared by:

<home-manager/modules/programs/texlive.nix>
programs.texlive.extraPackages

Extra packages available to TeX Live.

Type: unspecified value

Default: "tpkgs: { inherit (tpkgs) collection-basic; }"

Example:

tpkgs: { inherit (tpkgs) collection-fontsrecommended algorithms; }

Declared by:

<home-manager/modules/programs/texlive.nix>
programs.thefuck.enable

Whether to enable thefuck - magnificent app that corrects your previous console command.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/thefuck.nix>
programs.thefuck.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/thefuck.nix>
programs.thefuck.enableFishIntegration

Whether to enable Fish integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/thefuck.nix>
programs.thefuck.enableInstantMode

Whether to enable thefuck’s experimental instant mode.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/thefuck.nix>
programs.thefuck.enableNushellIntegration

Whether to enable Nushell integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/thefuck.nix>
programs.thefuck.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/thefuck.nix>
programs.thefuck.package

The thefuck package to use.

Type: package

Default: pkgs.thefuck

Declared by:

<home-manager/modules/programs/thefuck.nix>
programs.thunderbird.enable

Whether to enable Thunderbird.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/thunderbird.nix>
programs.thunderbird.package

The Thunderbird package to use.

Type: package

Default: pkgs.thunderbird

Example: pkgs.thunderbird-91

Declared by:

<home-manager/modules/programs/thunderbird.nix>
programs.thunderbird.profiles

Attribute set of Thunderbird profiles.

Type: attribute set of (submodule)

Declared by:

<home-manager/modules/programs/thunderbird.nix>
programs.thunderbird.profiles.<name>.extraConfig

Extra preferences to add to user.js.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/thunderbird.nix>
programs.thunderbird.profiles.<name>.isDefault

Whether this is a default profile. There must be exactly one default profile.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/thunderbird.nix>
programs.thunderbird.profiles.<name>.name

This profile’s name.

Type: string (read only)

Default: "‹name›"

Declared by:

<home-manager/modules/programs/thunderbird.nix>
programs.thunderbird.profiles.<name>.search

Declarative search engine configuration.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/programs/thunderbird.nix>
programs.thunderbird.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/thunderbird.nix>
programs.thunderbird.profiles.<name>.search.engines

Attribute set of search engine configurations. Engines that only have metaData specified will be treated as builtin to Thunderbird.

See SearchEngine.jsm in Thunderbird’s source for available options. We maintain a mapping to let you specify all options in the referenced link without underscores, but it may fall out of date with future options.

Note, icon is also a special option added by Home Manager to make it convenient to specify absolute icon paths.

Type: attribute set of attribute set of (JSON value)

Default: { }

Example:

{
  "Nix Packages" = {
    urls = [{
      template = "https://search.nixos.org/packages";
      params = [
        { name = "type"; value = "packages"; }
        { name = "query"; value = "{searchTerms}"; }
      ];
    }];

    icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
    definedAliases = [ "@np" ];
  };

  "NixOS Wiki" = {
    urls = [{ template = "https://wiki.nixos.org/index.php?search={searchTerms}"; }];
    iconUpdateURL = "https://wiki.nixos.org/favicon.png";
    updateInterval = 24 * 60 * 60 * 1000; # every day
    definedAliases = [ "@nw" ];
  };

  "Bing".metaData.hidden = true;
  "Google".metaData.alias = "@g"; # builtin engines only support specifying one additional alias
}

Declared by:

<home-manager/modules/programs/thunderbird.nix>
programs.thunderbird.profiles.<name>.search.force

Whether to force replace the existing search configuration. This is recommended since Thunderbird 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/thunderbird.nix>
programs.thunderbird.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/thunderbird.nix>
programs.thunderbird.profiles.<name>.search.privateDefault

The default search engine used in the Private Browsing.

Type: null or string

Default: null

Example: "DuckDuckGo"

Declared by:

<home-manager/modules/programs/thunderbird.nix>
programs.thunderbird.profiles.<name>.settings

Preferences to add to this profile’s user.js.

Type: Thunderbird preference (int, bool, string, and also attrs, list, float as a JSON string)

Default: { }

Example:

{
  "mail.spellcheck.inline" = false;
  "mailnews.database.global.views.global.columns" = {
    selectCol = {
      visible = false;
      ordinal = 1;
    };
    threadCol = {
      visible = true;
      ordinal = 2;
    };
  };
}

Declared by:

<home-manager/modules/programs/thunderbird.nix>
programs.thunderbird.profiles.<name>.userChrome

Custom Thunderbird user chrome CSS.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  /* Hide tab bar in Thunderbird */
  #tabs-toolbar {
    visibility: collapse !important;
  }
''

Declared by:

<home-manager/modules/programs/thunderbird.nix>
programs.thunderbird.profiles.<name>.userContent

Custom Thunderbird user content CSS.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  /* Hide scrollbar on Thunderbird pages */
  *{scrollbar-width:none !important}
''

Declared by:

<home-manager/modules/programs/thunderbird.nix>
programs.thunderbird.profiles.<name>.withExternalGnupg

Allow using external GPG keys with GPGME.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/thunderbird.nix>
programs.thunderbird.settings

Attribute set of Thunderbird preferences to be added to all profiles.

Type: Thunderbird preference (int, bool, string, and also attrs, list, float as a JSON string)

Default: { }

Example:

{
  "general.useragent.override" = "";
  "privacy.donottrackheader.enabled" = true;
}

Declared by:

<home-manager/modules/programs/thunderbird.nix>
programs.timidity.enable

Whether to enable timidity, a software MIDI renderer.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/timidity.nix>
programs.timidity.package

The timidity package to use.

Type: package

Default: pkgs.timidity

Declared by:

<home-manager/modules/programs/timidity.nix>
programs.timidity.extraConfig

Extra configuration.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  soundfont ${pkgs.soundfont-fluid}/share/soundfonts/FluidR3_GM2-2.sf2
''

Declared by:

<home-manager/modules/programs/timidity.nix>
programs.timidity.finalPackage

Resulting package.

Type: package (read only)

Declared by:

<home-manager/modules/programs/timidity.nix>
programs.tint2.enable

Whether to enable tint2, a simple, unobtrusive and light panel for Xorg.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/tint2.nix>
programs.tint2.package

Tint2 package to install.

Type: package

Default: pkgs.tint2

Declared by:

<home-manager/modules/programs/tint2.nix>
programs.tint2.extraConfig

Commands for tint2 that will be add to the tint2rc file.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/tint2.nix>
programs.tiny.enable

Whether to enable tiny, a TUI IRC client written in Rust.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/tiny.nix>
programs.tiny.package

The tiny package to install.

Type: package

Default: pkgs.tiny

Declared by:

<home-manager/modules/programs/tiny.nix>
programs.tiny.settings

Configuration written to $XDG_CONFIG_HOME/tiny/config.yml. See https://github.com/osa1/tiny/blob/master/crates/tiny/config.yml for the default configuration.

Type: YAML value

Default: { }

Example:

{
  servers = [
    {
      addr = "irc.libera.chat";
      port = 6697;
      tls = true;
      realname = "John Doe";
      nicks = [ "tinyuser" ];
    }
  ];
  defaults = {
    nicks = [ "tinyuser" ];
    realname = "John Doe";
    join = [];
    tls = true;
  };
};

Declared by:

<home-manager/modules/programs/tiny.nix>
programs.tmate.enable

Whether to enable tmate.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/tmate.nix>
programs.tmate.package

The tmate package to install.

Type: package

Default: pkgs.tmate

Example: pkgs.tmate

Declared by:

<home-manager/modules/programs/tmate.nix>
programs.tmate.dsaFingerprint

Tmate server EdDSA key fingerprint.

Type: null or string

Default: null

Example: SHA256:1111111111111111111111111111111111111111111

Declared by:

<home-manager/modules/programs/tmate.nix>
programs.tmate.extraConfig

Additional content written at the end of ~/.tmate.conf.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/tmate.nix>
programs.tmate.host

Tmate server address.

Type: null or string

Default: null

Example: tmate.io

Declared by:

<home-manager/modules/programs/tmate.nix>
programs.tmate.port

Tmate server port.

Type: null or 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default: null

Example: 2222

Declared by:

<home-manager/modules/programs/tmate.nix>
programs.tmate.rsaFingerprint

Tmate server RSA key fingerprint.

Type: null or string

Default: null

Example: SHA256:1111111111111111111111111111111111111111111

Declared by:

<home-manager/modules/programs/tmate.nix>
programs.tmux.enable

Whether to enable tmux.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/tmux.nix>
programs.tmux.package

The tmux package to install

Type: package

Default: pkgs.tmux

Example: pkgs.tmux

Declared by:

<home-manager/modules/programs/tmux.nix>
programs.tmux.aggressiveResize

Resize the window to the size of the smallest session for which it is the current window.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/tmux.nix>
programs.tmux.baseIndex

Base index for windows and panes.

Type: unsigned integer, meaning >=0

Default: 0

Example: 1

Declared by:

<home-manager/modules/programs/tmux.nix>
programs.tmux.clock24

Use 24 hour clock.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/tmux.nix>
programs.tmux.customPaneNavigationAndResize

Override the hjkl and HJKL bindings for pane navigation and resizing in VI mode.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/tmux.nix>
programs.tmux.disableConfirmationPrompt

Disable confirmation prompt before killing a pane or window

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/tmux.nix>
programs.tmux.escapeTime

Time in milliseconds for which tmux waits after an escape is input.

Type: unsigned integer, meaning >=0

Default: 500

Example: 0

Declared by:

<home-manager/modules/programs/tmux.nix>
programs.tmux.extraConfig

Additional configuration to add to tmux.conf.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/tmux.nix>
programs.tmux.historyLimit

Maximum number of lines held in window history.

Type: positive integer, meaning >0

Default: 2000

Example: 5000

Declared by:

<home-manager/modules/programs/tmux.nix>
programs.tmux.keyMode

VI or Emacs style shortcuts.

Type: one of “emacs”, “vi”

Default: "emacs"

Example: "vi"

Declared by:

<home-manager/modules/programs/tmux.nix>
programs.tmux.mouse

Whether to enable mouse support.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/tmux.nix>
programs.tmux.newSession

Automatically spawn a session if trying to attach and none are running.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/tmux.nix>
programs.tmux.plugins

List of tmux plugins to be included at the end of your tmux configuration. The sensible plugin, however, is defaulted to run at the top of your configuration.

Type: list of plugin packages or submodules

Default: [ ]

Example:

with pkgs; [
  tmuxPlugins.cpu
  {
    plugin = tmuxPlugins.resurrect;
    extraConfig = "set -g @resurrect-strategy-nvim 'session'";
  }
  {
    plugin = tmuxPlugins.continuum;
    extraConfig = ''
      set -g @continuum-restore 'on'
      set -g @continuum-save-interval '60' # minutes
    '';
  }
]

Declared by:

<home-manager/modules/programs/tmux.nix>
programs.tmux.prefix

Set the prefix key. Overrules the “shortcut” option when set.

Type: null or string

Default: null

Example: "C-a"

Declared by:

<home-manager/modules/programs/tmux.nix>
programs.tmux.resizeAmount

Number of lines/columns when resizing.

Type: positive integer, meaning >0

Default: 5

Example: 10

Declared by:

<home-manager/modules/programs/tmux.nix>
programs.tmux.reverseSplit

Reverse the window split shortcuts.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/tmux.nix>
programs.tmux.secureSocket

Store tmux socket under /run, which is more secure than /tmp, but as a downside it doesn’t survive user logout.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/tmux.nix>
programs.tmux.sensibleOnTop

Run the sensible plugin at the top of the configuration. It is possible to override the sensible settings using the programs.tmux.extraConfig option.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/tmux.nix>
programs.tmux.shell

Set the default-shell tmux variable.

Type: null or string

Default: null

Example: "\${pkgs.zsh}/bin/zsh"

Declared by:

<home-manager/modules/programs/tmux.nix>
programs.tmux.shortcut

CTRL following by this key is used as the main shortcut.

Type: string

Default: "b"

Example: "a"

Declared by:

<home-manager/modules/programs/tmux.nix>
programs.tmux.terminal

Set the $TERM variable.

Type: string

Default: "screen"

Example: "screen-256color"

Declared by:

<home-manager/modules/programs/tmux.nix>
programs.tmux.tmuxinator.enable

Whether to enable tmuxinator.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/tmux.nix>
programs.tmux.tmuxp.enable

Whether to enable tmuxp.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/tmux.nix>
programs.tofi.enable

Whether to enable Tofi, a tiny dynamic menu for Wayland.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/tofi.nix>
programs.tofi.package

The tofi package to use.

Type: package

Default: pkgs.tofi

Declared by:

<home-manager/modules/programs/tofi.nix>
programs.tofi.settings

Settings to be written to the Tofi configuration file.

See https://github.com/philj56/tofi/blob/master/doc/config for the full list of options.

Type: attribute set of (string or signed integer or boolean)

Default: { }

Example:

{
  background-color = "#000000";
  border-width = 0;
  font = "monospace";
  height = "100%";
  num-results = 5;
  outline-width = 0;
  padding-left = "35%";
  padding-top = "35%";
  result-spacing = 25;
  width = "100%";
}

Declared by:

<home-manager/modules/programs/tofi.nix>
programs.topgrade.enable

Whether to enable topgrade.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/topgrade.nix>
programs.topgrade.package

The package to use for the topgrade binary.

Type: package

Default: pkgs.topgrade

Declared by:

<home-manager/modules/programs/topgrade.nix>
programs.topgrade.settings

Configuration written to $XDG_CONFIG_HOME/topgrade.toml.

See https://github.com/r-darwish/topgrade/wiki/Step-list for the full list of options.

Type: TOML value

Default: { }

Example:

{
  misc = {
    assume_yes = true;
    disable = [
      "flutter"
      "node"
    ];
    set_title = false;
    cleanup = true;
  };
  commands = {
    "Run garbage collection on Nix store" = "nix-collect-garbage";
  };
}

Declared by:

<home-manager/modules/programs/topgrade.nix>
programs.translate-shell.enable

Whether to enable translate-shell.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/translate-shell.nix>
programs.translate-shell.settings

Options to add to $XDG_CONFIG_HOME/translate-shell/init.trans file. See https://github.com/soimort/translate-shell/wiki/Configuration for options.

Type: attribute set of (boolean or string or list of string)

Default: { }

Example:

{
  hl = "en";
  tl = [
    "es"
    "fr"
  ];
  verbose = true;
}

Declared by:

<home-manager/modules/programs/translate-shell.nix>
programs.urxvt.enable

Whether to enable rxvt-unicode terminal emulator.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/urxvt.nix>
programs.urxvt.package

rxvt-unicode package to install.

Type: package

Default: pkgs.rxvt-unicode

Declared by:

<home-manager/modules/programs/urxvt.nix>
programs.urxvt.extraConfig

Additional configuration to add.

Type: attribute set of anything

Default: { }

Example:

{
  shading = 15;
}

Declared by:

<home-manager/modules/programs/urxvt.nix>
programs.urxvt.fonts

List of fonts to be used.

Type: list of string

Default: [ ]

Example:

[
  "xft:Droid Sans Mono Nerd Font:size=9"
]

Declared by:

<home-manager/modules/programs/urxvt.nix>
programs.urxvt.iso14755

ISO14755 support for viewing and entering unicode characters.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/urxvt.nix>
programs.urxvt.keybindings

Mapping of keybindings to actions

Type: attribute set of string

Default: { }

Example:

{
  "Shift-Control-C" = "eval:selection_to_clipboard";
  "Shift-Control-V" = "eval:paste_clipboard";
}

Declared by:

<home-manager/modules/programs/urxvt.nix>
programs.urxvt.scroll.bar

Scrollbar settings.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/programs/urxvt.nix>
programs.urxvt.scroll.bar.enable

Whether to enable the scrollbar

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/urxvt.nix>
programs.urxvt.scroll.bar.align

Scrollbar alignment.

Type: one of “top”, “bottom”, “center”

Default: "center"

Declared by:

<home-manager/modules/programs/urxvt.nix>
programs.urxvt.scroll.bar.floating

Whether to display an rxvt scrollbar without a trough.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/urxvt.nix>
programs.urxvt.scroll.bar.position

Scrollbar position.

Type: one of “left”, “right”

Default: "right"

Declared by:

<home-manager/modules/programs/urxvt.nix>
programs.urxvt.scroll.bar.style

Scrollbar style.

Type: one of “rxvt”, “plain”, “next”, “xterm”

Default: "plain"

Declared by:

<home-manager/modules/programs/urxvt.nix>
programs.urxvt.scroll.keepPosition

Whether to keep a scroll position when TTY receives new lines.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/urxvt.nix>
programs.urxvt.scroll.lines

Number of lines to save in the scrollback buffer.

Type: unsigned integer, meaning >=0

Default: 10000

Declared by:

<home-manager/modules/programs/urxvt.nix>
programs.urxvt.scroll.scrollOnKeystroke

Whether to scroll to bottom on keyboard input.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/urxvt.nix>
programs.urxvt.scroll.scrollOnOutput

Whether to scroll to bottom on TTY output.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/urxvt.nix>
programs.urxvt.shading

Darken (0 to 99) or lighten (101 to 200) the transparent background.

Type: integer between 0 and 200 (both inclusive)

Default: 100

Declared by:

<home-manager/modules/programs/urxvt.nix>
programs.urxvt.transparent

Whether to enable pseudo-transparency.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/urxvt.nix>
programs.vdirsyncer.enable

Whether to enable vdirsyncer.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/vdirsyncer.nix>
programs.vdirsyncer.package

vdirsyncer package to use.

Type: package

Default: "pkgs.vdirsyncer"

Declared by:

<home-manager/modules/programs/vdirsyncer.nix>
programs.vdirsyncer.statusPath

A directory where vdirsyncer will store some additional data for the next sync.

For more information, see the vdirsyncer manual.

Type: string

Default: "$XDG_DATA_HOME/vdirsyncer/status"

Declared by:

<home-manager/modules/programs/vdirsyncer.nix>
programs.vifm.enable

Whether to enable vifm, a Vim-like file manager.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/vifm.nix>
programs.vifm.package

The vifm package to use.

Type: package

Default: pkgs.vifm

Declared by:

<home-manager/modules/programs/vifm.nix>
programs.vifm.extraConfig

Extra lines added to the $XDG_CONFIG_HOME/vifm/vifmrc file.

Type: strings concatenated with “\n”

Default: ""

Example: "mark h ~/"

Declared by:

<home-manager/modules/programs/vifm.nix>
programs.vim.enable

Whether to enable Vim.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/vim.nix>
programs.vim.package

Resulting customized vim package

Type: package (read only)

Declared by:

<home-manager/modules/programs/vim.nix>
programs.vim.packageConfigurable

Vim package to customize

Type: package

Default: pkgs.vim-full

Example: pkgs.vim

Declared by:

<home-manager/modules/programs/vim.nix>
programs.vim.defaultEditor

Whether to configure vim as the default editor using the EDITOR environment variable.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/vim.nix>
programs.vim.extraConfig

Custom .vimrc lines

Type: strings concatenated with “\n”

Default: ""

Example:

''
  set nocompatible
  set nobackup
''

Declared by:

<home-manager/modules/programs/vim.nix>
programs.vim.plugins

List of vim plugins to install. To get a list of supported plugins run: nix-env -f '<nixpkgs>' -qaP -A vimPlugins.

Note: String values are deprecated, please use actual packages.

Type: list of (string or package)

Default:

[
  <derivation vimplugin-vim-sensible-2024-06-08>
]

Example: [ pkgs.vimPlugins.YankRing ]

Declared by:

<home-manager/modules/programs/vim.nix>
programs.vim.settings

At attribute set of Vim settings. The attribute names and corresponding values must be among the following supported options.

background

one of “dark”, “light”

backupdir

list of string

copyindent

boolean

directory

list of string

expandtab

boolean

hidden

boolean

history

signed integer

ignorecase

boolean

modeline

boolean

mouse

one of “n”, “v”, “i”, “c”, “h”, “a”, “r”

mousefocus

boolean

mousehide

boolean

mousemodel

one of “extend”, “popup”, “popup_setpos”

number

boolean

relativenumber

boolean

shiftwidth

signed integer

smartcase

boolean

tabstop

signed integer

undodir

list of string

undofile

boolean

See the Vim documentation for detailed descriptions of these options. Use programs.vim.extraConfig to manually set any options not listed above.

Type: submodule

Default: { }

Example:

{
  expandtab = true;
  history = 1000;
  background = "dark";
}

Declared by:

<home-manager/modules/programs/vim.nix>
programs.vim-vint.enable

Whether to enable the Vint linter for Vimscript.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/vim-vint.nix>
programs.vim-vint.package

The vim-vint package to use.

Type: package

Default: pkgs.vim-vint

Declared by:

<home-manager/modules/programs/vim-vint.nix>
programs.vim-vint.settings

Configuration written to $XDG_CONFIG_HOME/.vintrc.yaml

Type: YAML value

Default: { }

Declared by:

<home-manager/modules/programs/vim-vint.nix>
programs.vscode.enable

Whether to enable Visual Studio Code.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/vscode.nix>
programs.vscode.enableExtensionUpdateCheck

Whether to enable update notifications for extensions.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/vscode.nix>
programs.vscode.enableUpdateCheck

Whether to enable update checks/notifications.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/vscode.nix>
programs.vscode.package

Version of Visual Studio Code to install.

Type: package

Default: pkgs.vscode

Example: pkgs.vscodium

Declared by:

<home-manager/modules/programs/vscode.nix>
programs.vscode.extensions

The extensions Visual Studio Code should be started with.

Type: list of package

Default: [ ]

Example: [ pkgs.vscode-extensions.bbenoist.nix ]

Declared by:

<home-manager/modules/programs/vscode.nix>
programs.vscode.globalSnippets

Defines global user snippets.

Type: JSON value

Default: { }

Example:

{
  fixme = {
    body = [
      "$LINE_COMMENT FIXME: $0"
    ];
    description = "Insert a FIXME remark";
    prefix = [
      "fixme"
    ];
  };
}

Declared by:

<home-manager/modules/programs/vscode.nix>
programs.vscode.haskell.enable

Whether to enable Haskell integration for Visual Studio Code.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/vscode/haskell.nix>
programs.vscode.haskell.hie.enable

Whether to enable Haskell IDE engine integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/vscode/haskell.nix>
programs.vscode.haskell.hie.executablePath

The path to the Haskell IDE Engine executable.

Because hie-nix is not packaged in Nixpkgs, you need to add it as an overlay or set this option. Example overlay configuration:

nixpkgs.overlays = [
  (self: super: { hie-nix = import ~/src/hie-nix {}; })
]

Type: path

Default: "${pkgs.hie-nix.hies}/bin/hie-wrapper"

Example:

(import ~/src/haskell-ide-engine {}).hies + "/bin/hie-wrapper";

Declared by:

<home-manager/modules/programs/vscode/haskell.nix>
programs.vscode.keybindings

Keybindings written to Visual Studio Code’s keybindings.json.

Type: list of (submodule)

Default: [ ]

Example:

[
  {
    key = "ctrl+c";
    command = "editor.action.clipboardCopyAction";
    when = "textInputFocus";
  }
]

Declared by:

<home-manager/modules/programs/vscode.nix>
programs.vscode.keybindings.*.args

Optional arguments for a command.

Type: null or JSON value

Default: null

Example:

{
  direction = "up";
}

Declared by:

<home-manager/modules/programs/vscode.nix>
programs.vscode.keybindings.*.command

The VS Code command to execute.

Type: string

Example: "editor.action.clipboardCopyAction"

Declared by:

<home-manager/modules/programs/vscode.nix>
programs.vscode.keybindings.*.key

The key or key-combination to bind.

Type: string

Example: "ctrl+c"

Declared by:

<home-manager/modules/programs/vscode.nix>
programs.vscode.keybindings.*.when

Optional context filter.

Type: null or string

Default: null

Example: "textInputFocus"

Declared by:

<home-manager/modules/programs/vscode.nix>
programs.vscode.languageSnippets

Defines user snippets for different languages.

Type: JSON value

Default: { }

Example:

{
  haskell = {
    fixme = {
      body = [
        "$LINE_COMMENT FIXME: $0"
      ];
      description = "Insert a FIXME remark";
      prefix = [
        "fixme"
      ];
    };
  };
}

Declared by:

<home-manager/modules/programs/vscode.nix>
programs.vscode.mutableExtensionsDir

Whether extensions can be installed or updated manually or by Visual Studio Code.

Type: boolean

Default: true

Example: false

Declared by:

<home-manager/modules/programs/vscode.nix>
programs.vscode.userSettings

Configuration written to Visual Studio Code’s settings.json.

Type: JSON value

Default: { }

Example:

{
  "files.autoSave" = "off";
  "[nix]"."editor.tabSize" = 2;
}

Declared by:

<home-manager/modules/programs/vscode.nix>
programs.vscode.userTasks

Configuration written to Visual Studio Code’s tasks.json.

Type: JSON value

Default: { }

Example:

{
  version = "2.0.0";
  tasks = [
    {
      type = "shell";
      label = "Hello task";
      command = "hello";
    }
  ];
}

Declared by:

<home-manager/modules/programs/vscode.nix>
programs.watson.enable

Whether to enable watson, a wonderful CLI to track your time.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/watson.nix>
programs.watson.enableBashIntegration

Whether to enable watson’s bash integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/watson.nix>
programs.watson.enableFishIntegration

Whether to enable watson’s fish integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/watson.nix>
programs.watson.enableZshIntegration

Whether to enable watson’s zsh integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/watson.nix>
programs.watson.package

Package providing the watson.

Type: package

Default: pkgs.watson

Declared by:

<home-manager/modules/programs/watson.nix>
programs.watson.settings

Configuration written to $XDG_CONFIG_HOME/watson/config on Linux or $HOME/Library/Application Support/watson/config on Darwin.

See https://github.com/TailorDev/Watson/blob/master/docs/user-guide/configuration.md for an example configuration.

Type: attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))

Default: { }

Example:

{
  backend = {
    url = "https://api.crick.fr";
    token = "yourapitoken";
  };

  options = {
    stop_on_start = true;
    stop_on_restart = false;
    date_format = "%Y.%m.%d";
    time_format = "%H:%M:%S%z";
    week_start = "monday";
    log_current = false;
    pager = true;
    report_current = false;
    reverse_log = true;
  };
}

Declared by:

<home-manager/modules/programs/watson.nix>
programs.waybar.enable

Whether to enable Waybar.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/waybar.nix>
programs.waybar.package

Waybar package to use. Set to null to use the default package.

Type: package

Default: pkgs.waybar

Declared by:

<home-manager/modules/programs/waybar.nix>
programs.waybar.settings

Configuration for Waybar, see https://github.com/Alexays/Waybar/wiki/Configuration for supported values.

Type: (list of (JSON value)) or attribute set of (JSON value)

Default: [ ]

Example:

{
  mainBar = {
    layer = "top";
    position = "top";
    height = 30;
    output = [
      "eDP-1"
      "HDMI-A-1"
    ];
    modules-left = [ "sway/workspaces" "sway/mode" "wlr/taskbar" ];
    modules-center = [ "sway/window" "custom/hello-from-waybar" ];
    modules-right = [ "mpd" "custom/mymodule#with-css-id" "temperature" ];

    "sway/workspaces" = {
      disable-scroll = true;
      all-outputs = true;
    };
    "custom/hello-from-waybar" = {
      format = "hello {}";
      max-length = 40;
      interval = "once";
      exec = pkgs.writeShellScript "hello-from-waybar" ''
        echo "from within waybar"
      '';
    };
  };
}

Declared by:

<home-manager/modules/programs/waybar.nix>
programs.waybar.style

CSS style of the bar.

See https://github.com/Alexays/Waybar/wiki/Configuration for the documentation.

If the value is set to a path literal, then the path will be used as the css file.

Type: null or path or strings concatenated with “\n”

Default: null

Example:

''
  * {
    border: none;
    border-radius: 0;
    font-family: Source Code Pro;
  }
  window#waybar {
    background: #16191C;
    color: #AAB2BF;
  }
  #workspaces button {
    padding: 0 5px;
  }
''

Declared by:

<home-manager/modules/programs/waybar.nix>
programs.waybar.systemd.enable

Whether to enable Waybar systemd integration.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/waybar.nix>
programs.waybar.systemd.target

The systemd target that will automatically start the Waybar service.

When setting this value to "sway-session.target", make sure to also enable wayland.windowManager.sway.systemd.enable, otherwise the service may never be started.

Type: string

Default: "graphical-session.target"

Example: "sway-session.target"

Declared by:

<home-manager/modules/programs/waybar.nix>
programs.wezterm.enable

Whether to enable wezterm.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/wezterm.nix>
programs.wezterm.enableBashIntegration

Whether to enable WezTerm’s Bash integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/wezterm.nix>
programs.wezterm.enableZshIntegration

Whether to enable WezTerm’s Zsh integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/wezterm.nix>
programs.wezterm.package

The Wezterm package to install.

Type: package

Default: pkgs.wezterm

Declared by:

<home-manager/modules/programs/wezterm.nix>
programs.wezterm.colorSchemes

Attribute set of additional color schemes to be written to $XDG_CONFIG_HOME/wezterm/colors, where each key is taken as the name of the corresponding color scheme. See https://wezfurlong.org/wezterm/config/appearance.html#defining-a-color-scheme-in-a-separate-file for more details of the TOML color scheme format.

Type: attribute set of (TOML value)

Default: { }

Example:

myCoolTheme = {
  ansi = [
    "#222222" "#D14949" "#48874F" "#AFA75A"
    "#599797" "#8F6089" "#5C9FA8" "#8C8C8C"
  ];
  brights = [
    "#444444" "#FF6D6D" "#89FF95" "#FFF484"
    "#97DDFF" "#FDAAF2" "#85F5DA" "#E9E9E9"
  ];
  background = "#1B1B1B";
  cursor_bg = "#BEAF8A";
  cursor_border = "#BEAF8A";
  cursor_fg = "#1B1B1B";
  foreground = "#BEAF8A";
  selection_bg = "#444444";
  selection_fg = "#E9E9E9";
};

Declared by:

<home-manager/modules/programs/wezterm.nix>
programs.wezterm.extraConfig

Extra configuration written to $XDG_CONFIG_HOME/wezterm/wezterm.lua. See https://wezfurlong.org/wezterm/config/files.html how to configure.

Type: strings concatenated with “\n”

Default:

''
  return {}
''

Example:

-- Your lua code / config here
local mylib = require 'mylib';
return {
  usemylib = mylib.do_fun();
  font = wezterm.font("JetBrains Mono"),
  font_size = 16.0,
  color_scheme = "Tomorrow Night",
  hide_tab_bar_if_only_one_tab = true,
  default_prog = { "zsh", "--login", "-c", "tmux attach -t dev || tmux new -s dev" },
  keys = {
    {key="n", mods="SHIFT|CTRL", action="ToggleFullScreen"},
  }
}

Declared by:

<home-manager/modules/programs/wezterm.nix>
programs.wlogout.enable

Whether to enable wlogout.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/wlogout.nix>
programs.wlogout.package

The wlogout package to use.

Type: package

Default: pkgs.wlogout

Declared by:

<home-manager/modules/programs/wlogout.nix>
programs.wlogout.layout

Layout configuration for wlogout, see https://github.com/ArtsyMacaw/wlogout#config for supported values.

Type: list of (JSON value)

Default: [ ]

Example:

[
  {
    label = "shutdown";
    action = "systemctl poweroff";
    text = "Shutdown";
    keybind = "s";
  }
]

Declared by:

<home-manager/modules/programs/wlogout.nix>
programs.wlogout.layout.*.action

Command to execute when clicked.

Type: path or string

Default: ""

Example: "systemctl poweroff"

Declared by:

<home-manager/modules/programs/wlogout.nix>
programs.wlogout.layout.*.circular

Make button circular.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/programs/wlogout.nix>
programs.wlogout.layout.*.height

Relative height of tile.

Type: null or integer or floating point number between 0 and 1 (both inclusive)

Default: null

Example: 0.5

Declared by:

<home-manager/modules/programs/wlogout.nix>
programs.wlogout.layout.*.keybind

Keyboard character to trigger this action.

Type: string

Default: ""

Example: "s"

Declared by:

<home-manager/modules/programs/wlogout.nix>
programs.wlogout.layout.*.label

CSS label of button.

Type: string

Default: ""

Example: "shutdown"

Declared by:

<home-manager/modules/programs/wlogout.nix>
programs.wlogout.layout.*.text

Text displayed on button.

Type: string

Default: ""

Example: "Shutdown"

Declared by:

<home-manager/modules/programs/wlogout.nix>
programs.wlogout.layout.*.width

Relative width of tile.

Type: null or integer or floating point number between 0 and 1 (both inclusive)

Default: null

Example: 0.5

Declared by:

<home-manager/modules/programs/wlogout.nix>
programs.wlogout.style

CSS style of the bar.

See https://github.com/ArtsyMacaw/wlogout#style for the documentation.

If the value is set to a path literal, then the path will be used as the css file.

Type: null or path or string

Default: null

Example:

''
  window {
    background: #16191C;
  }
  
  button {
    color: #AAB2BF;
  }
''

Declared by:

<home-manager/modules/programs/wlogout.nix>
programs.wofi.enable

Whether to enable wofi: a launcher/menu program for wlroots based wayland compositors such as sway.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/wofi.nix>
programs.wofi.package

The wofi package to use.

Type: package

Default: pkgs.wofi

Declared by:

<home-manager/modules/programs/wofi.nix>
programs.wofi.settings

Configuration options for wofi. See wofi(5).

Type: attribute set

Default: { }

Example:

{
  location = "bottom-right";
  allow_markup = true;
  width = 250;
}

Declared by:

<home-manager/modules/programs/wofi.nix>
programs.wofi.style

CSS style for wofi to use as a stylesheet. See wofi(7).

Type: null or string

Default: null

Example:

''
  * {
      font-family: monospace;
  }
  
  window {
      background-color: #7c818c;
  }
''

Declared by:

<home-manager/modules/programs/wofi.nix>
programs.wpaperd.enable

Whether to enable wpaperd.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/wpaperd.nix>
programs.wpaperd.package

The wpaperd package to use.

Type: package

Default: pkgs.wpaperd

Declared by:

<home-manager/modules/programs/wpaperd.nix>
programs.wpaperd.settings

Configuration written to $XDG_CONFIG_HOME/wpaperd/wallpaper.toml. See https://github.com/danyspin97/wpaperd#wallpaper-configuration for the full list of options.

Type: TOML value

Default: { }

Example:

{
  eDP-1 = {
    path = "/home/foo/Pictures/Wallpaper";
    apply-shadow = true;
  };
  DP-2 = {
    path = "/home/foo/Pictures/Anime";
    sorting = "descending";
  };
}

Declared by:

<home-manager/modules/programs/wpaperd.nix>
programs.xmobar.enable

Whether to enable Xmobar, a minimalistic status bar.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/xmobar.nix>
programs.xmobar.package

Package providing the xmobar binary.

Type: package

Default: pkgs.haskellPackages.xmobar

Declared by:

<home-manager/modules/programs/xmobar.nix>
programs.xmobar.extraConfig

Extra configuration lines to add to $XDG_CONFIG_HOME/xmobar/.xmobarrc. See https://xmobar.org/#configuration for options.

Type: strings concatenated with “\n”

Default: ""

Example:

Config
  { font        = "Fira Code"
  , borderColor = "#d0d0d0"
  , border      = FullB
  , borderWidth = 3
  , bgColor     = "#222"
  , fgColor     = "grey"
  , position    = TopSize C 99 30
  , commands    =
      [ Run Cpu ["-t", "cpu: <fc=#4eb4fa><bar> <total>%</fc>"] 10
      , Run Network "enp3s0" ["-S", "True", "-t", "eth: <fc=#4eb4fa><rx></fc>/<fc=#4eb4fa><tx></fc>"] 10
      , Run Memory ["-t","mem: <fc=#4eb4fa><usedbar> <usedratio>%</fc>"] 10
      , Run Date "date: <fc=#4eb4fa>%a %d %b %Y %H:%M:%S </fc>" "date" 10
      , Run StdinReader
      ]
  , sepChar     = "%"
  , alignSep    = "}{"
  , template    = "  %StdinReader% | %cpu% | %memory% | %enp3s0%  }{%date%  "
  }

Declared by:

<home-manager/modules/programs/xmobar.nix>
programs.xplr.enable

Whether to enable xplr, terminal UI based file explorer.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/xplr.nix>
programs.xplr.package

The xplr package to use.

Type: package

Default: pkgs.xplr

Declared by:

<home-manager/modules/programs/xplr.nix>
programs.xplr.extraConfig

Extra xplr configuration.

Type: strings concatenated with “\n”

Default: ""

Example:

require("wl-clipboard").setup {
  copy_command = "wl-copy -t text/uri-list",
  paste_command = "wl-paste",
  keep_selection = true,
}

Declared by:

<home-manager/modules/programs/xplr.nix>
programs.xplr.plugins

An attribute set of plugin paths to be added to the [package.path]https://www.lua.org/manual/5.4/manual.html#pdf-package.path of the ~/config/xplr/init.lua configuration file.

Must be a package or string representing the plugin directory’s path. If the path string is not absolute, it will be relative to $XDG_CONFIG_HOME/xplr/init.lua.

Type: null or (attribute set of (package or string))

Default: { }

Example:

{
  wl-clipboard = fetchFromGitHub {
    owner = "sayanarijit";
    repo = "wl-clipboard.xplr";
    rev = "a3ffc87460c5c7f560bffea689487ae14b36d9c3";
    hash = "sha256-I4rh5Zks9hiXozBiPDuRdHwW5I7ppzEpQNtirY0Lcks=";
  }
  local-plugin = "/home/user/.config/plugins/local-plugin";
};

Declared by:

<home-manager/modules/programs/xplr.nix>
programs.yambar.enable

Whether to enable Yambar.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/yambar.nix>
programs.yambar.package

The yambar package to use.

Type: package

Default: pkgs.yambar

Declared by:

<home-manager/modules/programs/yambar.nix>
programs.yambar.settings

Configuration written to $XDG_CONFIG_HOME/yambar/config.yml. See yambar(5) for options.

Type: YAML value

Default: { }

Example:

bar = {
  location = "top";
  height = 26;
  background = "00000066";

  right = [
    {
      clock.content = [
        {
          string.text = "{time}";
        }
      ];
    }
  ];
};

Declared by:

<home-manager/modules/programs/yambar.nix>
programs.yazi.enable

Whether to enable yazi.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/yazi.nix>
programs.yazi.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/yazi.nix>
programs.yazi.enableFishIntegration

Whether to enable Fish integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/yazi.nix>
programs.yazi.enableNushellIntegration

Whether to enable Nushell integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/yazi.nix>
programs.yazi.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/yazi.nix>
programs.yazi.package

The yazi package to use.

Type: package

Default: pkgs.yazi

Declared by:

<home-manager/modules/programs/yazi.nix>
programs.yazi.flavors

Pre-made themes. Values should be a package or path containing the required files. Will be linked to $XDG_CONFIG_HOME/yazi/flavors/<name>.yazi.

See https://yazi-rs.github.io/docs/flavors/overview/ for documentation.

Type: attribute set of (path or package)

Default: { }

Example:

{
  foo = ./foo;
  bar = pkgs.bar;
}

Declared by:

<home-manager/modules/programs/yazi.nix>
programs.yazi.initLua

The init.lua for Yazi itself.

Type: null or path or strings concatenated with “\n”

Default: null

Example: ./init.lua

Declared by:

<home-manager/modules/programs/yazi.nix>
programs.yazi.keymap

Configuration written to $XDG_CONFIG_HOME/yazi/keymap.toml.

See https://yazi-rs.github.io/docs/configuration/keymap for the full list of options.

Type: TOML value

Default: { }

Example:

{
  input.keymap = [
    { exec = "close"; on = [ "<C-q>" ]; }
    { exec = "close --submit"; on = [ "<Enter>" ]; }
    { exec = "escape"; on = [ "<Esc>" ]; }
    { exec = "backspace"; on = [ "<Backspace>" ]; }
  ];
  manager.keymap = [
    { exec = "escape"; on = [ "<Esc>" ]; }
    { exec = "quit"; on = [ "q" ]; }
    { exec = "close"; on = [ "<C-q>" ]; }
  ];
}

Declared by:

<home-manager/modules/programs/yazi.nix>
programs.yazi.plugins

Lua plugins. Values should be a package or path containing an init.lua file. Will be linked to $XDG_CONFIG_HOME/yazi/plugins/<name>.yazi.

See https://yazi-rs.github.io/docs/plugins/overview for documentation.

Type: attribute set of (path or package)

Default: { }

Example:

{
  foo = ./foo;
  bar = pkgs.bar;
}

Declared by:

<home-manager/modules/programs/yazi.nix>
programs.yazi.settings

Configuration written to $XDG_CONFIG_HOME/yazi/yazi.toml.

See https://yazi-rs.github.io/docs/configuration/yazi for the full list of options.

Type: TOML value

Default: { }

Example:

{
  log = {
    enabled = false;
  };
  manager = {
    show_hidden = false;
    sort_by = "modified";
    sort_dir_first = true;
    sort_reverse = true;
  };
}

Declared by:

<home-manager/modules/programs/yazi.nix>
programs.yazi.shellWrapperName

Name of the shell wrapper to be called.

Type: string

Default: "yy"

Example: "y"

Declared by:

<home-manager/modules/programs/yazi.nix>
programs.yazi.theme

Configuration written to $XDG_CONFIG_HOME/yazi/theme.toml.

See https://yazi-rs.github.io/docs/configuration/theme for the full list of options

Type: TOML value

Default: { }

Example:

{
  filetype = {
    rules = [
      { fg = "#7AD9E5"; mime = "image/*"; }
      { fg = "#F3D398"; mime = "video/*"; }
      { fg = "#F3D398"; mime = "audio/*"; }
      { fg = "#CD9EFC"; mime = "application/x-bzip"; }
    ];
  };
}

Declared by:

<home-manager/modules/programs/yazi.nix>
programs.yt-dlp.enable

Whether to enable yt-dlp.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/yt-dlp.nix>
programs.yt-dlp.package

Package providing the yt-dlp tool.

Type: package

Default: pkgs.yt-dlp

Declared by:

<home-manager/modules/programs/yt-dlp.nix>
programs.yt-dlp.extraConfig

Extra configuration to add to $XDG_CONFIG_HOME/yt-dlp/config.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  --update
  -F
''

Declared by:

<home-manager/modules/programs/yt-dlp.nix>
programs.yt-dlp.settings

Configuration written to $XDG_CONFIG_HOME/yt-dlp/config.

Options must be specified in their “long form”, for example, update = true; instead of U = true;. Short options can be specified in the extraConfig option. See https://github.com/yt-dlp/yt-dlp#configuration for explanation about possible values.

Type: attribute set of (boolean or signed integer or string)

Default: { }

Example:

{
  embed-thumbnail = true;
  embed-subs = true;
  sub-langs = "all";
  downloader = "aria2c";
  downloader-args = "aria2c:'-c -x8 -s8 -k1M'";
}

Declared by:

<home-manager/modules/programs/yt-dlp.nix>
programs.z-lua.enable

Whether to enable z.lua.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/z-lua.nix>
programs.z-lua.enableAliases

Whether to enable recommended z.lua aliases.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/z-lua.nix>
programs.z-lua.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/z-lua.nix>
programs.z-lua.enableFishIntegration

Whether to enable Fish integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/z-lua.nix>
programs.z-lua.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/z-lua.nix>
programs.z-lua.options

List of options to pass to z.lua.

Type: list of string

Default: [ ]

Example:

[
  "enhanced"
  "once"
  "fzf"
]

Declared by:

<home-manager/modules/programs/z-lua.nix>
programs.zathura.enable

Whether to enable Zathura, a highly customizable and functional document viewer focused on keyboard interaction.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/zathura.nix>
programs.zathura.package

The Zathura package to use

Type: package

Default: "pkgs.zathura"

Declared by:

<home-manager/modules/programs/zathura.nix>
programs.zathura.extraConfig

Additional commands for zathura that will be added to the zathurarc file.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/zathura.nix>
programs.zathura.mappings

Add :map mappings to zathura and make them permanent. See zathurarc(5) for the full list of possible mappings.

You can create a mode-specific mapping by specifying the mode before the key: "[normal] <C-b>" = "scroll left";

Type: attribute set of string

Default: { }

Example:

{
  "<Right>" = "navigate next";
  D = "toggle_page_mode";
  "[fullscreen] <C-i>" = "zoom in";
}

Declared by:

<home-manager/modules/programs/zathura.nix>
programs.zathura.options

Add :set command options to zathura and make them permanent. See zathurarc(5) for the full list of options.

Type: attribute set of (string or boolean or signed integer or floating point number)

Default: { }

Example:

{
  default-bg = "#000000";
  default-fg = "#FFFFFF";
}

Declared by:

<home-manager/modules/programs/zathura.nix>
programs.zed-editor.enable

Whether to enable Zed, the high performance, multiplayer code editor from the creators of Atom and Tree-sitter.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/zed-editor.nix>
programs.zed-editor.package

The zed-editor package to use.

Type: package

Default: pkgs.zed-editor

Declared by:

<home-manager/modules/programs/zed-editor.nix>
programs.zed-editor.extensions

A list of the extensions Zed should install on startup. Use the name of a repository in the extension list.

Type: list of string

Default: [ ]

Example:

[ "swift" "nix" "xy-zed" ]

Declared by:

<home-manager/modules/programs/zed-editor.nix>
programs.zed-editor.userKeymaps

Configuration written to Zed’s keymap.json.

Type: JSON value

Default: { }

Example:

[
  {
    context = "Workspace";
    bindings = {
      ctrl-shift-t = "workspace::NewTerminal";
    };
  };
]

Declared by:

<home-manager/modules/programs/zed-editor.nix>
programs.zed-editor.userSettings

Configuration written to Zed’s settings.json.

Type: JSON value

Default: { }

Example:

{
  features = {
    copilot = false;
  };
  telemetry = {
    metrics = false;
  };
  vim_mode = false;
  ui_font_size = 16;
  buffer_font_size = 16;
}

Declared by:

<home-manager/modules/programs/zed-editor.nix>
programs.zellij.enable

Whether to enable zellij.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/zellij.nix>
programs.zellij.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/zellij.nix>
programs.zellij.enableFishIntegration

Whether to enable Fish integration.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/zellij.nix>
programs.zellij.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/zellij.nix>
programs.zellij.package

The zellij package to install.

Type: package

Default: pkgs.zellij

Declared by:

<home-manager/modules/programs/zellij.nix>
programs.zellij.settings

Configuration written to $XDG_CONFIG_HOME/zellij/config.yaml.

See https://zellij.dev/documentation for the full list of options.

Type: YAML value

Default: { }

Example:

{
  theme = "custom";
  themes.custom.fg = "#ffffff";
}

Declared by:

<home-manager/modules/programs/zellij.nix>
programs.zk.enable

Whether to enable zk.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/zk.nix>
programs.zk.package

The zk package to use.

Type: package

Default: pkgs.zk

Declared by:

<home-manager/modules/programs/zk.nix>
programs.zk.settings

Configuration written to $XDG_CONFIG_HOME/zk/config.toml.

See https://github.com/mickael-menu/zk/blob/main/docs/config.md for available options and documentation.

Type: TOML value

Default: { }

Example:

{
  note = {
    language = "en";
    default-title = "Untitled";
    filename = "{{id}}-{{slug title}}";
    extension = "md";
    template = "default.md";
    id-charset = "alphanum";
    id-length = 4;
    id-case = "lower";
  };
  extra = {
    author = "Mickaël";
  };
}

Declared by:

<home-manager/modules/programs/zk.nix>
programs.zoxide.enable

Whether to enable zoxide.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/zoxide.nix>
programs.zoxide.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/zoxide.nix>
programs.zoxide.enableFishIntegration

Whether to enable Fish integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/zoxide.nix>
programs.zoxide.enableNushellIntegration

Whether to enable Nushell integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/zoxide.nix>
programs.zoxide.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/zoxide.nix>
programs.zoxide.package

Zoxide package to install.

Type: package

Default: pkgs.zoxide

Declared by:

<home-manager/modules/programs/zoxide.nix>
programs.zoxide.options

List of options to pass to zoxide init.

Type: list of string

Default: [ ]

Example:

[
  "--no-cmd"
]

Declared by:

<home-manager/modules/programs/zoxide.nix>
programs.zsh.enable

Whether to enable Z shell (Zsh).

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.enableCompletion

Enable zsh completion. Don’t forget to add

  environment.pathsToLink = [ "/share/zsh" ];

to your system configuration to get completion for system packages (e.g. systemd).

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.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.zsh.package

The zsh package to use.

Type: package

Default: pkgs.zsh

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.antidote.enable

Whether to enable antidote - a zsh plugin manager.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/antidote.nix>
programs.zsh.antidote.package

The antidote package to use.

Type: package

Default: pkgs.antidote

Declared by:

<home-manager/modules/programs/antidote.nix>
programs.zsh.antidote.plugins

List of antidote plugins.

Type: list of string

Default: [ ]

Example:

[
  "zsh-users/zsh-autosuggestions"
]

Declared by:

<home-manager/modules/programs/antidote.nix>
programs.zsh.antidote.useFriendlyNames

Whether to enable friendly names.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/antidote.nix>
programs.zsh.autocd

Automatically enter into a directory if typed directly into shell.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.autosuggestion.enable

Enable zsh autosuggestions

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.autosuggestion.highlight

Custom styles for autosuggestion highlighting. See zshzle(1) for syntax.

Type: null or string

Default: null

Example: "fg=#ff00ff,bg=cyan,bold,underline"

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.autosuggestion.strategy

ZSH_AUTOSUGGEST_STRATEGY is an array that specifies how suggestions should be generated. The strategies in the array are tried successively until a suggestion is found. There are currently three built-in strategies to choose from:

  • history: Chooses the most recent match from history.

  • completion: Chooses a suggestion based on what tab-completion would suggest. (requires zpty module)

  • match_prev_cmd: Like history, but chooses the most recent match whose preceding history item matches the most recently executed command. Note that this strategy won’t work as expected with ZSH options that don’t preserve the history order such as HIST_IGNORE_ALL_DUPS or HIST_EXPIRE_DUPS_FIRST.

Type: list of (one of “history”, “completion”, “match_prev_cmd”)

Default:

[
  "history"
]

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.cdpath

List of paths to autocomplete calls to cd.

Type: list of string

Default: [ ]

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.completionInit

Initialization commands to run when completion is enabled.

Type: strings concatenated with “\n”

Default: "autoload -U compinit && compinit"

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.defaultKeymap

The default base keymap to use.

Type: null or one of “emacs”, “vicmd”, “viins”

Default: null

Example: "emacs"

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.dirHashes

An attribute set that adds to named directory hash table.

Type: attribute set of string

Default: { }

Example:

{
  docs  = "$HOME/Documents";
  vids  = "$HOME/Videos";
  dl    = "$HOME/Downloads";
}

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.dotDir

Directory where the zsh configuration and more should be located, relative to the users home directory. The default is the home directory.

Type: null or string

Default: null

Example: ".config/zsh"

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.envExtra

Extra commands that should be added to .zshenv.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.history

Options related to commands history configuration.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.history.append

If set, zsh sessions will append their history list to the history file, rather than replace it. Thus, multiple parallel zsh sessions will all have the new entries from their history lists added to the history file, in the order that they exit.

This file will still be periodically re-written to trim it when the number of lines grows 20% beyond the value specified by programs.zsh.history.save.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.history.expireDuplicatesFirst

Expire duplicates first.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.history.extended

Save timestamp into the history file.

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.history.ignoreAllDups

If a new command line being added to the history list duplicates an older one, the older command is removed from the list (even if it is not the previous event).

Type: boolean

Default: false

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.history.ignoreDups

Do not enter command lines into the history list if they are duplicates of the previous event.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.history.ignorePatterns

Do not enter command lines into the history list if they match any one of the given shell patterns.

Type: list of string

Default: [ ]

Example: [ "rm *" "pkill *" ]

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.history.ignoreSpace

Do not enter command lines into the history list if the first character is a space.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.history.path

History file location

Type: string

Default:

"$HOME/.zsh_history" if state version ≥ 20.03,
"$ZDOTDIR/.zsh_history" otherwise

Example: "${config.xdg.dataHome}/zsh/zsh_history"

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.history.save

Number of history lines to save.

Type: signed integer

Default: 10000

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.history.share

Share command history between zsh sessions.

Type: boolean

Default: true

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.history.size

Number of history lines to keep.

Type: signed integer

Default: 10000

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.historySubstringSearch

Options related to zsh-history-substring-search.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.historySubstringSearch.enable

Whether to enable history substring search.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.historySubstringSearch.searchDownKey

The key codes to be used when searching down. The default of ^[[B may correspond to the DOWN key – if not, try $terminfo[kcud1].

Type: (list of string) or string

Default:

[
  "^[[B"
]

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.historySubstringSearch.searchUpKey

The key codes to be used when searching up. The default of ^[[A may correspond to the UP key – if not, try $terminfo[kcuu1].

Type: (list of string) or string

Default:

[
  "^[[A"
]

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.initExtra

Extra commands that should be added to .zshrc.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.initExtraBeforeCompInit

Extra commands that should be added to .zshrc before compinit.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.initExtraFirst

Commands that should be added to top of .zshrc.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.localVariables

Extra local variables defined at the top of .zshrc.

Type: attribute set

Default: { }

Example:

{
  POWERLEVEL9K_LEFT_PROMPT_ELEMENTS = [
    "dir"
    "vcs"
  ];
}

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.loginExtra

Extra commands that should be added to .zlogin.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.logoutExtra

Extra commands that should be added to .zlogout.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.oh-my-zsh

Options to configure oh-my-zsh.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.oh-my-zsh.enable

Whether to enable oh-my-zsh.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.oh-my-zsh.package

The oh-my-zsh package to use.

Type: package

Default: pkgs.oh-my-zsh

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.oh-my-zsh.custom

Path to a custom oh-my-zsh package to override config of oh-my-zsh. See https://github.com/robbyrussell/oh-my-zsh/wiki/Customization for more information.

Type: string

Default: ""

Example: "$HOME/my_customizations"

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.oh-my-zsh.extraConfig

Extra settings for plugins.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  zstyle :omz:plugins:ssh-agent identities id_rsa id_rsa2 id_github
''

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.oh-my-zsh.plugins

List of oh-my-zsh plugins

Type: list of string

Default: [ ]

Example:

[
  "git"
  "sudo"
]

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.oh-my-zsh.theme

Name of the theme to be used by oh-my-zsh.

Type: string

Default: ""

Example: "robbyrussell"

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.plugins

Plugins to source in .zshrc.

Type: list of (submodule)

Default: [ ]

Example:

[
  {
    # will source zsh-autosuggestions.plugin.zsh
    name = "zsh-autosuggestions";
    src = pkgs.fetchFromGitHub {
      owner = "zsh-users";
      repo = "zsh-autosuggestions";
      rev = "v0.4.0";
      sha256 = "0z6i9wjjklb4lvr7zjhbphibsyx51psv50gm07mbb0kj9058j6kc";
    };
  }
  {
    name = "enhancd";
    file = "init.sh";
    src = pkgs.fetchFromGitHub {
      owner = "b4b4r07";
      repo = "enhancd";
      rev = "v2.2.1";
      sha256 = "0iqa9j09fwm6nj5rpip87x3hnvbbz9w9ajgm6wkrd5fls8fn8i5g";
    };
  }
]

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.plugins.*.file

The plugin script to source.

Type: string

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.plugins.*.name

The name of the plugin.

Don’t forget to add file if the script name does not follow convention.

Type: string

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.plugins.*.src

Path to the plugin folder.

Will be added to fpath and PATH.

Type: path

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.prezto

Options to configure prezto.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.enable

Whether to enable prezto.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.autosuggestions.color

Set the query found color.

Type: null or string

Default: null

Example: "fg=blue"

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.caseSensitive

Set case-sensitivity for completion, history lookup, etc.

Type: null or boolean

Default: true

Example: true

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.color

Color output (automatically set to false on dumb terminals).

Type: null or boolean

Default: true

Example: false

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.completions.ignoredHosts

Set the entries to ignore in static /etc/hosts for host completion.

Type: list of string

Default: [ ]

Example:

[
  "0.0.0.0"
  "127.0.0.1"
]

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.editor.dotExpansion

Automatically convert .... to ../..

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.editor.keymap

Set the key mapping style to emacs or vi.

Type: null or one of “emacs”, “vi”

Default: "emacs"

Example: "vi"

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.editor.promptContext

Allow the Zsh prompt context to be shown.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.extraConfig

Additional configuration to add to .zpreztorc.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.extraFunctions

Set the Zsh functions to load (zshcontrib(1)).

Type: list of string

Default: [ ]

Example:

[
  "zargs"
  "zmv"
]

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.extraModules

Set the Zsh modules to load (zshmodules(1)).

Type: list of string

Default: [ ]

Example:

[
  "attr"
  "stat"
]

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.git.submoduleIgnore

Ignore submodules when they are dirty, untracked, all, or none.

Type: null or one of “dirty”, “untracked”, “all”, “none”

Default: null

Example: "all"

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.gnuUtility.prefix

Set the command prefix on non-GNU systems.

Type: null or string

Default: null

Example: "g"

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.historySubstring.foundColor

Set the query found color.

Type: null or string

Default: null

Example: "fg=blue"

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.historySubstring.globbingFlags

Set the search globbing flags.

Type: null or string

Default: null

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.historySubstring.notFoundColor

Set the query not found color.

Type: null or string

Default: null

Example: "fg=red"

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.macOS.dashKeyword

Set the keyword used by mand to open man pages in Dash.app.

Type: null or string

Default: null

Example: "manpages"

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.pmoduleDirs

Add additional directories to load prezto modules from.

Type: list of path

Default: [ ]

Example: [ "${config.home.homeDirectory}/.zprezto-contrib" ]

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.pmodules

Set the Prezto modules to load (browse modules). The order matters.

Type: list of string

Default:

[
  "environment"
  "terminal"
  "editor"
  "history"
  "directory"
  "spectrum"
  "utility"
  "completion"
  "prompt"
]

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.prompt.pwdLength

Set the working directory prompt display length. By default, it is set to short. Set it to long (without ~ expansion) for longer or full (with ~ expansion) for even longer prompt display.

Type: null or one of “short”, “long”, “full”

Default: null

Example: "short"

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.prompt.showReturnVal

Set the prompt to display the return code along with an indicator for non-zero return codes. This is not supported by all prompts.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.prompt.theme

Set the prompt theme to load. Setting it to random loads a random theme. Automatically set to off on dumb terminals.

Type: null or string

Default: "sorin"

Example: "pure"

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.python.virtualenvAutoSwitch

Auto switch to Python virtualenv on directory change.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.python.virtualenvInitialize

Automatically initialize virtualenvwrapper if pre-requisites are met.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.ruby.chrubyAutoSwitch

Auto switch the Ruby version on directory change.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.screen.autoStartLocal

Auto start a session when Zsh is launched in a local terminal.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.screen.autoStartRemote

Auto start a session when Zsh is launched in a SSH connection.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.ssh.identities

Set the SSH identities to load into the agent.

Type: list of string

Default: [ ]

Example:

[
  "id_rsa"
  "id_rsa2"
  "id_github"
]

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.syntaxHighlighting.highlighters

Set syntax highlighters. By default, only the main highlighter is enabled.

Type: list of string

Default: [ ]

Example:

[
  "main"
  "brackets"
  "pattern"
  "line"
  "cursor"
  "root"
]

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.syntaxHighlighting.pattern

Set syntax pattern styles.

Type: attribute set of string

Default: { }

Example:

{
  "rm*-rf*" = "fg=white,bold,bg=red";
}

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.syntaxHighlighting.styles

Set syntax highlighting styles.

Type: attribute set of string

Default: { }

Example:

{
  builtin = "bg=blue";
  command = "bg=blue";
  function = "bg=blue";
}

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.terminal.autoTitle

Auto set the tab and window titles.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.terminal.multiplexerTitleFormat

Set the multiplexer title format.

Type: null or string

Default: null

Example: "%s"

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.terminal.tabTitleFormat

Set the tab title format.

Type: null or string

Default: null

Example: "%m: %s"

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.terminal.windowTitleFormat

Set the window title format.

Type: null or string

Default: null

Example: "%n@%m: %s"

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.tmux.autoStartLocal

Auto start a session when Zsh is launched in a local terminal.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.tmux.autoStartRemote

Auto start a session when Zsh is launched in a SSH connection.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.tmux.defaultSessionName

Set the default session name.

Type: null or string

Default: null

Example: "YOUR DEFAULT SESSION NAME"

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.tmux.itermIntegration

Integrate with iTerm2.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.prezto.utility.safeOps

Enabled safe options. This aliases cp, ln, mv and rm so that they prompt before deleting or overwriting files. Set to no to disable this safer behavior.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/programs/zsh/prezto.nix>
programs.zsh.profileExtra

Extra commands that should be added to .zprofile.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.sessionVariables

Environment variables that will be set for zsh session.

Type: attribute set

Default: { }

Example:

{
  MAILCHECK = 30;
}

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.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/zsh.nix>
programs.zsh.shellGlobalAliases

Similar to programs.zsh.shellAliases, but are substituted anywhere on a line.

Type: attribute set of string

Default: { }

Example:

{
  UUID = "$(uuidgen | tr -d \\n)";
  G = "| grep";
}

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.syntaxHighlighting

Options related to zsh-syntax-highlighting.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.syntaxHighlighting.enable

Whether to enable zsh syntax highlighting.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.syntaxHighlighting.package

The zsh-syntax-highlighting package to use.

Type: package

Default: pkgs.zsh-syntax-highlighting

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.syntaxHighlighting.highlighters

Highlighters to enable See the list of highlighters: https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters.md

Type: list of string

Default: [ ]

Example:

[
  "brackets"
]

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.syntaxHighlighting.patterns

Custom syntax highlighting for user-defined patterns. Reference: https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters/pattern.md

Type: attribute set of string

Default: { }

Example:

{
  "rm -rf *" = "fg=white,bold,bg=red";
}

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.syntaxHighlighting.styles

Custom styles for syntax highlighting. See each highlighter style option: https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters/main.md

Type: attribute set of string

Default: { }

Example:

{
  comment = "fg=black,bold";
}

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.zplug.enable

Whether to enable zplug - a zsh plugin manager.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/zplug.nix>
programs.zsh.zplug.plugins

List of zplug plugins.

Type: list of (submodule)

Default: [ ]

Declared by:

<home-manager/modules/programs/zplug.nix>
programs.zsh.zplug.plugins.*.name

The name of the plugin.

Type: string

Declared by:

<home-manager/modules/programs/zplug.nix>
programs.zsh.zplug.plugins.*.tags

The plugin tags.

Type: list of string

Default: [ ]

Declared by:

<home-manager/modules/programs/zplug.nix>
programs.zsh.zplug.zplugHome

Path to zplug home directory.

Type: path

Default: "~/.zplug"

Declared by:

<home-manager/modules/programs/zplug.nix>
programs.zsh.zprof.enable

Enable zprof in your zshrc.

Type: unspecified value

Default: false

Declared by:

<home-manager/modules/programs/zsh.nix>
programs.zsh.zsh-abbr.enable

Whether to enable zsh-abbr - zsh manager for auto-expanding abbreviations.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/zsh/zsh-abbr.nix>
programs.zsh.zsh-abbr.abbreviations

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/zsh/zsh-abbr.nix>
qt.enable

Whether to enable Qt 5 and 6 configuration.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/misc/qt.nix>
qt.kde.settings

A set of values to be modified by kwriteconfig5.

The example value would cause the following command to run in the activation script:

kwriteconfig5 --file $XDG_CONFIG_HOME/powermanagementprofilesrc \
              --group AC \
              --group HandleButtonEvents \
              --group lidAction \
              --key lidAction \
              32

Note, null values will delete the corresponding entry instead of inserting any value.

Type: attribute set of (KDE option value)

Default: { }

Example:

{
  powermanagementprofilesrc = {
    AC = {
      HandleButtonEvents = {
        lidAction = 32;
      };
    };
  };
}

Declared by:

<home-manager/modules/misc/qt/kconfig.nix>
qt.platformTheme

Deprecated. Use qt.platformTheme.name instead.

Type: null or one of “gtk”, “gtk3”, “gnome”, “adwaita”, “lxqt”, “qtct”, “kde” or (submodule)

Default: null

Declared by:

<home-manager/modules/misc/qt.nix>
qt.style.package

Theme package to be used in Qt5/Qt6 applications. Auto-detected from qt.style.name if possible. See its documentation for available options.

Type: null or package or list of package

Default: null

Example: pkgs.adwaita-qt

Declared by:

<home-manager/modules/misc/qt.nix>
qt.style.name

Style to use for Qt5/Qt6 applications. Case-insensitive.

Some examples are

adwaita, adwaita-dark, adwaita-highcontrast, adwaita-highcontrastinverse

Use the Adwaita style from adwaita-qt

breeze

Use the Breeze style from breeze

bb10bright, bb10dark, cde, cleanlooks, gtk2, motif, plastique

Use styles from qtstyleplugins

kvantum

Use styles from kvantum

Type: null or string

Default: null

Example: "adwaita-dark"

Related packages:

Declared by:

<home-manager/modules/misc/qt.nix>
services.activitywatch.enable

Whether to enable ActivityWatch, an automated time tracker.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/activitywatch.nix>
services.activitywatch.package

Package containing the Rust implementation of ActivityWatch server.

Type: package

Default: pkgs.activitywatch

Example: pkgs.aw-server-rust

Declared by:

<home-manager/modules/services/activitywatch.nix>
services.activitywatch.extraOptions

Additional arguments to be passed on to the ActivityWatch server.

Type: list of string

Default: [ ]

Example:

[
  "--port"
  "5999"
]

Declared by:

<home-manager/modules/services/activitywatch.nix>
services.activitywatch.settings

Configuration for aw-server-rust to be generated at $XDG_CONFIG_HOME/activitywatch/aw-server-rust/config.toml.

Type: TOML value

Default: { }

Example:

{
  port = 3012;

  custom_static = {
    my-custom-watcher = "${pkgs.my-custom-watcher}/share/my-custom-watcher/static";
    aw-keywatcher = "${pkgs.aw-keywatcher}/share/aw-keywatcher/static";
  };
}

Declared by:

<home-manager/modules/services/activitywatch.nix>
services.activitywatch.watchers

Watchers to be included with the service alongside with their configuration.

If a configuration is set, a file will be generated in $XDG_CONFIG_HOME/activitywatch/$WATCHER_NAME/$WATCHER_SETTINGS_FILENAME.

Note

The watchers are run with the service manager and the settings format of the configuration is only assumed to be in TOML. Furthermore, it assumes the watcher program is using the official client libraries which has functions to store it in the appropriate location.

Type: attribute set of (submodule)

Default: { }

Example:

{
  aw-watcher-afk = {
    package = pkgs.activitywatch;
    settings = {
      timeout = 300;
      poll_time = 2;
    };
  };

  aw-watcher-windows = {
    package = pkgs.activitywatch;
    settings = {
      poll_time = 1;
      exclude_title = true;
    };
  };

  my-custom-watcher = {
    package = pkgs.my-custom-watcher;
    executable = "mcw";
    settings = {
      hello = "there";
      enable_greetings = true;
      poll_time = 5;
    };
    settingsFilename = "config.toml";
  };
}

Declared by:

<home-manager/modules/services/activitywatch.nix>
services.activitywatch.watchers.<name>.package

The derivation containing the watcher executable.

Type: package

Example: pkgs.activitywatch

Declared by:

<home-manager/modules/services/activitywatch.nix>
services.activitywatch.watchers.<name>.executable

The name of the executable of the watcher. This is useful in case the watcher name is different from the executable. By default, this option uses the watcher name.

Type: string

Default: "‹name›"

Declared by:

<home-manager/modules/services/activitywatch.nix>
services.activitywatch.watchers.<name>.extraOptions

Extra arguments to be passed to the watcher executable.

Type: list of string

Default: [ ]

Example:

[
  "--host"
  "127.0.0.1"
]

Declared by:

<home-manager/modules/services/activitywatch.nix>
services.activitywatch.watchers.<name>.name

The name of the watcher. This will be used as the directory name for $XDG_CONFIG_HOME/activitywatch/$NAME when services.activitywatch.watchers.<name>.settings is set.

Type: string

Default: "‹name›"

Example: "aw-watcher-afk"

Declared by:

<home-manager/modules/services/activitywatch.nix>
services.activitywatch.watchers.<name>.settings

The settings for the individual watcher in TOML format. If set, a file will be generated at $XDG_CONFIG_HOME/activitywatch/$NAME/$FILENAME.

To set the basename of the settings file, see services.activitywatch.watchers.<name>.settingsFilename.

Type: TOML value

Default: { }

Example:

{
  poll_time = 2;
  timeout = 300;
}

Declared by:

<home-manager/modules/services/activitywatch.nix>
services.activitywatch.watchers.<name>.settingsFilename

The filename of the generated settings file. By default, this uses the watcher name to be generated at $XDG_CONFIG_HOME/activitywatch/$NAME/$NAME.toml.

This is useful in case the watcher requires a different name for the configuration file.

Type: string

Default: "‹name›.toml"

Example: "config.toml"

Declared by:

<home-manager/modules/services/activitywatch.nix>
services.amberol.enable

Whether to enable Amberol music player as a daemon.

Note, it is necessary to add

programs.dconf.enable = true;

to your system configuration for the daemon to work correctly.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/amberol.nix>
services.amberol.enableRecoloring

UI recoloring using the album art.

Type: boolean

Default: true

Declared by:

<home-manager/modules/services/amberol.nix>
services.amberol.package

The amberol package to use.

Type: package

Default: pkgs.amberol

Declared by:

<home-manager/modules/services/amberol.nix>
services.amberol.replaygain

ReplayGain mode.

Type: one of “album”, “track”, “off”

Default: "track"

Declared by:

<home-manager/modules/services/amberol.nix>
services.arrpc.enable

Whether to enable arrpc.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/arrpc.nix>
services.arrpc.package

The arrpc package to use.

Type: package

Default: pkgs.arrpc

Declared by:

<home-manager/modules/services/arrpc.nix>
services.arrpc.systemdTarget

Systemd target to bind to.

Type: string

Default: "graphical-session.target"

Example: "sway-session.target"

Declared by:

<home-manager/modules/services/arrpc.nix>
services.autorandr.enable

Whether to enable the Autorandr systemd service. This module is complementary to programs.autorandr which handles the configuration (profiles).

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/autorandr.nix>
services.autorandr.ignoreLid

Treat outputs as connected even if their lids are closed.

Type: boolean

Default: false

Declared by:

<home-manager/modules/services/autorandr.nix>
services.avizo.enable

Whether to enable avizo, a simple notification daemon.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/avizo.nix>
services.avizo.package

The avizo package to use.

Type: package

Default: pkgs.avizo

Example:

pkgs.avizo.overrideAttrs (final: prev: {
  patchPhase = "cp ${./images}/*.png data/images/";
})

Declared by:

<home-manager/modules/services/avizo.nix>
services.avizo.settings

The settings that will be written to the avizo configuration file.

Type: attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))

Default: { }

Example:

{
  default = {
    time = 1.0;
    y-offset = 0.5;
    fade-in = 0.1;
    fade-out = 0.2;
    padding = 10;
  };
}

Declared by:

<home-manager/modules/services/avizo.nix>
services.barrier.client.enable

Whether to enable Barrier Client daemon.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/barrier.nix>
services.barrier.client.enableCrypto

Whether to enable crypto (SSL) plugin.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/services/barrier.nix>
services.barrier.client.enableDragDrop

Whether to enable file drag & drop.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/barrier.nix>
services.barrier.client.extraFlags

Additional flags to pass to barrierc. See barrierc --help.

Type: list of string

Default: [ "-f" ]

Declared by:

<home-manager/modules/services/barrier.nix>
services.barrier.client.name

Screen name of client. Defaults to hostname.

Type: null or string

Default: null

Declared by:

<home-manager/modules/services/barrier.nix>
services.barrier.client.server

Server to connect to formatted as <host>[:<port>]. Port defaults to 24800.

Type: string

Declared by:

<home-manager/modules/services/barrier.nix>
services.batsignal.enable

Whether to enable Batsignal Battery Daemon.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/batsignal.nix>
services.batsignal.package

The batsignal package to use.

Type: package

Default: pkgs.batsignal

Declared by:

<home-manager/modules/services/batsignal.nix>
services.batsignal.extraArgs

Extra arguments to be passed to the batsignal executable.

Type: list of string

Default: [ ]

Declared by:

<home-manager/modules/services/batsignal.nix>
services.betterlockscreen.enable

Whether to enable betterlockscreen, a screen-locker module.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/betterlockscreen.nix>
services.betterlockscreen.package

Package providing betterlockscreen.

Type: package

Default: pkgs.betterlockscreen

Declared by:

<home-manager/modules/services/betterlockscreen.nix>
services.betterlockscreen.arguments

List of arguments appended to ./betterlockscreen --lock [args]

Type: list of string

Default: [ ]

Declared by:

<home-manager/modules/services/betterlockscreen.nix>
services.betterlockscreen.inactiveInterval

Value used for services.screen-locker.inactiveInterval.

Type: signed integer

Default: 10

Declared by:

<home-manager/modules/services/betterlockscreen.nix>
services.blanket.enable

Whether to enable blanket.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/blanket.nix>
services.blanket.package

The blanket package to use.

Type: package

Default: pkgs.blanket

Declared by:

<home-manager/modules/services/blanket.nix>
services.blueman-applet.enable

Whether to enable the Blueman applet.

Note that for the applet to work, the blueman service should be enabled system-wide. You can enable it in the system configuration using

services.blueman.enable = true;

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/blueman-applet.nix>
services.borgmatic.enable

Whether to enable Borgmatic service.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/borgmatic.nix>
services.borgmatic.frequency

How often to run borgmatic when services.borgmatic.enable = true. 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: "hourly"

Declared by:

<home-manager/modules/services/borgmatic.nix>
services.cachix-agent.enable

Whether to enable Cachix Deploy Agent: https://docs.cachix.org/deploy/.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/cachix-agent.nix>
services.cachix-agent.package

The cachix package to use.

Type: package

Default: pkgs.cachix

Declared by:

<home-manager/modules/services/cachix-agent.nix>
services.cachix-agent.credentialsFile

Required file that needs to contain CACHIX_AGENT_TOKEN=....

Type: path

Default: "${config.xdg.configHome}/cachix-agent.token"

Declared by:

<home-manager/modules/services/cachix-agent.nix>
services.cachix-agent.host

Cachix URI to use.

Type: null or string

Default: null

Declared by:

<home-manager/modules/services/cachix-agent.nix>
services.cachix-agent.name

The unique agent name.

Type: string

Declared by:

<home-manager/modules/services/cachix-agent.nix>
services.cachix-agent.profile

The Nix profile name.

Type: string

Default: "home-manager"

Declared by:

<home-manager/modules/services/cachix-agent.nix>
services.cachix-agent.verbose

Whether to enable verbose output.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/cachix-agent.nix>
services.caffeine.enable

Whether to enable Caffeine service.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/caffeine.nix>
services.cbatticon.enable

Whether to enable cbatticon.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/cbatticon.nix>
services.cbatticon.batteryId

ID of the battery to monitor. List with cbatticon -p. Defaults to the first entry in the list.

Type: null or string

Default: null

Declared by:

<home-manager/modules/services/cbatticon.nix>
services.cbatticon.commandCriticalLevel

Command to execute when the critical battery level is reached.

Type: null or strings concatenated with “\n”

Default: null

Example:

''
  notify-send "battery critical!"
''

Declared by:

<home-manager/modules/services/cbatticon.nix>
services.cbatticon.commandLeftClick

Command to execute when left clicking on the tray icon.

Type: null or strings concatenated with “\n”

Default: null

Declared by:

<home-manager/modules/services/cbatticon.nix>
services.cbatticon.criticalLevelPercent

Critical level percentage of the battery in percent (without the percent symbol).

Type: null or integer between 0 and 100 (both inclusive)

Default: null

Example: 5

Declared by:

<home-manager/modules/services/cbatticon.nix>
services.cbatticon.hideNotification

Hide the notification popups.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/services/cbatticon.nix>
services.cbatticon.iconType

Icon type to display in the system tray.

Type: null or one of “standard”, “notification”, “symbolic”

Default: null

Example: "symbolic"

Declared by:

<home-manager/modules/services/cbatticon.nix>
services.cbatticon.lowLevelPercent

Low level percentage of the battery in percent (without the percent symbol).

Type: null or integer between 0 and 100 (both inclusive)

Default: null

Example: 20

Declared by:

<home-manager/modules/services/cbatticon.nix>
services.cbatticon.updateIntervalSeconds

Number of seconds between updates of the battery information.

Type: null or (positive integer, meaning >0)

Default: null

Example: 5

Declared by:

<home-manager/modules/services/cbatticon.nix>
services.cliphist.enable

Whether to enable cliphist, a clipboard history “manager” for wayland.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/cliphist.nix>
services.cliphist.package

The cliphist package to use.

Type: package

Default: pkgs.cliphist

Declared by:

<home-manager/modules/services/cliphist.nix>
services.cliphist.allowImages

Store images in clipboard history.

Type: boolean

Default: true

Declared by:

<home-manager/modules/services/cliphist.nix>
services.cliphist.extraOptions

Flags to append to the cliphist command.

Type: list of string

Default:

[
  "-max-dedupe-search"
  "10"
  "-max-items"
  "500"
]

Declared by:

<home-manager/modules/services/cliphist.nix>
services.cliphist.systemdTarget

The systemd target that will automatically start the cliphist service.

When setting this value to "sway-session.target", make sure to also enable wayland.windowManager.sway.systemd.enable, otherwise the service may never be started.

Type: string

Default: "graphical-session.target"

Example: "sway-session.target"

Declared by:

<home-manager/modules/services/cliphist.nix>
services.clipman.enable

Whether to enable clipman, a simple clipboard manager for Wayland.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/clipman.nix>
services.clipman.package

The clipman package to use.

Type: package

Default: pkgs.clipman

Declared by:

<home-manager/modules/services/clipman.nix>
services.clipman.systemdTarget

The systemd target that will automatically start the clipman service.

When setting this value to "sway-session.target", make sure to also enable wayland.windowManager.sway.systemd.enable, otherwise the service may never be started.

Type: string

Default: "graphical-session.target"

Example: "sway-session.target"

Declared by:

<home-manager/modules/services/clipman.nix>
services.clipmenu.enable

Whether to enable clipmenu, the clipboard management daemon.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/clipmenu.nix>
services.clipmenu.package

clipmenu derivation to use.

Type: package

Default: "pkgs.clipmenu"

Declared by:

<home-manager/modules/services/clipmenu.nix>
services.clipmenu.launcher

Launcher command, if not set, dmenu will be used by default.

Type: null or string

Default: null

Example: "rofi"

Declared by:

<home-manager/modules/services/clipmenu.nix>
services.comodoro.enable

Whether to enable Comodoro server.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/comodoro.nix>
services.comodoro.package

The comodoro package to use.

Type: package

Default: pkgs.comodoro

Declared by:

<home-manager/modules/services/comodoro.nix>
services.comodoro.environment

Extra environment variables to be exported in the service.

Type: attribute set of string

Default: { }

Example:

{
  "PASSWORD_STORE_DIR" = "~/.password-store";
}

Declared by:

<home-manager/modules/services/comodoro.nix>
services.comodoro.preset

Use configuration from the given preset as defined in the configuration file.

Type: non-empty string

Declared by:

<home-manager/modules/services/comodoro.nix>
services.comodoro.protocols

Define protocols the server should use to accept requests.

Type: non-empty (list of non-empty string)

Declared by:

<home-manager/modules/services/comodoro.nix>
services.conky.enable

Whether to enable Conky, a light-weight system monitor.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/conky.nix>
services.conky.package

The conky package to use.

Type: package

Default: pkgs.conky

Declared by:

<home-manager/modules/services/conky.nix>
services.conky.extraConfig

Configuration used by the Conky daemon. Check https://github.com/brndnmtthws/conky/wiki/Configurations for options. If not set, the default configuration, as described by conky --print-config, will be used.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/services/conky.nix>
services.copyq.enable

Whether to enable CopyQ, a clipboard manager with advanced features.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/copyq.nix>
services.copyq.package

The copyq package to use.

Type: package

Default: pkgs.copyq

Declared by:

<home-manager/modules/services/copyq.nix>
services.copyq.systemdTarget

The systemd target that will automatically start the CopyQ service.

When setting this value to "sway-session.target", make sure to also enable wayland.windowManager.sway.systemd.enable, otherwise the service may never be started.

Type: string

Default: "graphical-session.target"

Example: "sway-session.target"

Declared by:

<home-manager/modules/services/copyq.nix>
services.darkman.enable

Whether to enable darkman, a tool that automatically switches dark-mode on and off based on the time of the day.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/darkman.nix>
services.darkman.package

The darkman package to use.

Type: package

Default: pkgs.darkman

Declared by:

<home-manager/modules/services/darkman.nix>
services.darkman.darkModeScripts

Scripts to run when switching to “dark mode”.

Multiline strings are interpreted as Bash shell scripts and a shebang is not required.

Type: attribute set of (path or strings concatenated with “\n”)

Default: { }

Example:

{
  gtk-theme = ''
    ${pkgs.dconf}/bin/dconf write \
        /org/gnome/desktop/interface/color-scheme "'prefer-dark'"
  '';
  my-python-script = pkgs.writers.writePython3 "my-python-script" { } ''
    print('Do something!')
  '';
}

Declared by:

<home-manager/modules/services/darkman.nix>
services.darkman.lightModeScripts

Scripts to run when switching to “light mode”.

Multiline strings are interpreted as Bash shell scripts and a shebang is not required.

Type: attribute set of (path or strings concatenated with “\n”)

Default: { }

Example:

{
  gtk-theme = ''
    ${pkgs.dconf}/bin/dconf write \
        /org/gnome/desktop/interface/color-scheme "'prefer-light'"
  '';
  my-python-script = pkgs.writers.writePython3 "my-python-script" { } ''
    print('Do something!')
  '';
}

Declared by:

<home-manager/modules/services/darkman.nix>
services.darkman.settings

Settings for the darkman command. See https://darkman.whynothugo.nl/#CONFIGURATION for details.

Type: YAML value

Default: { }

Example:

{
  lat = 52.3;
  lng = 4.8;
  usegeoclue = true;
}

Declared by:

<home-manager/modules/services/darkman.nix>
services.devilspie2.enable

Whether to enable Devilspie2, a window matching utility, allowing the user to perform scripted actions on windows as they are created.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/devilspie2.nix>
services.devilspie2.config

Content of file placed in the devilspie2 config directory.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  if (get_window_class() == "Gnome-terminal") then
      make_always_on_top();
  end
''

Declared by:

<home-manager/modules/services/devilspie2.nix>
services.dropbox.enable

Whether to enable Dropbox daemon.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/dropbox.nix>
services.dropbox.path

Where to put the Dropbox directory.

Type: path

Default: "${config.home.homeDirectory}/Dropbox"

Declared by:

<home-manager/modules/services/dropbox.nix>
services.dunst.enable

Whether to enable the dunst notification daemon.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/dunst.nix>
services.dunst.package

Package providing dunst.

Type: package

Default: pkgs.dunst

Declared by:

<home-manager/modules/services/dunst.nix>
services.dunst.configFile

Path to the configuration file read by dunst.

Note that the configuration generated by Home Manager will be written to $XDG_CONFIG_HOME/dunst/dunstrc regardless. This allows using a mutable configuration file generated from the immutable one, useful in scenarios where live reloading is desired.

Type: null or string or path

Default: null

Declared by:

<home-manager/modules/services/dunst.nix>
services.dunst.iconTheme

Set the icon theme.

Type: submodule

Default:

{
  name = "hicolor";
  package = <derivation hicolor-icon-theme-0.18>;
  size = "32x32";
}

Declared by:

<home-manager/modules/services/dunst.nix>
services.dunst.iconTheme.package

Package providing the theme.

Type: package

Example: pkgs.gnome.adwaita-icon-theme

Declared by:

<home-manager/modules/services/dunst.nix>
services.dunst.iconTheme.name

The name of the theme within the package.

Type: string

Example: "Adwaita"

Declared by:

<home-manager/modules/services/dunst.nix>
services.dunst.iconTheme.size

The desired icon size.

Type: string

Default: "32x32"

Example: "16x16"

Declared by:

<home-manager/modules/services/dunst.nix>
services.dunst.settings

Configuration written to $XDG_CONFIG_HOME/dunst/dunstrc.

Type: attribute set of attribute set of (string or boolean or signed integer or list of string)

Default: { }

Example:

{
  global = {
    width = 300;
    height = 300;
    offset = "30x50";
    origin = "top-right";
    transparency = 10;
    frame_color = "#eceff1";
    font = "Droid Sans 9";
  };

  urgency_normal = {
    background = "#37474f";
    foreground = "#eceff1";
    timeout = 10;
  };
};

Declared by:

<home-manager/modules/services/dunst.nix>
services.dunst.settings.global.icon_path

Paths where dunst will look for icons.

Type: strings concatenated with “:”

Declared by:

<home-manager/modules/services/dunst.nix>
services.dunst.waylandDisplay

Set the service’s WAYLAND_DISPLAY environment variable.

Type: string

Default: ""

Declared by:

<home-manager/modules/services/dunst.nix>
services.dwm-status.enable

Whether to enable dwm-status user service.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/dwm-status.nix>
services.dwm-status.package

Which dwm-status package to use.

Type: package

Default: pkgs.dwm-status

Example: "pkgs.dwm-status.override { enableAlsaUtils = false; }"

Declared by:

<home-manager/modules/services/dwm-status.nix>
services.dwm-status.extraConfig

Extra config of dwm-status.

Type: JSON value

Default: { }

Example:

{
  separator = "#";

  battery = {
    notifier_levels = [ 2 5 10 15 20 ];
  };

  time = {
    format = "%H:%M";
  };
}

Declared by:

<home-manager/modules/services/dwm-status.nix>
services.dwm-status.order

List of enabled features in order.

Type: list of (one of “audio”, “backlight”, “battery”, “cpu_load”, “network”, “time”)

Declared by:

<home-manager/modules/services/dwm-status.nix>
services.easyeffects.enable

Whether to enable Easyeffects daemon. Note, it is necessary to add

programs.dconf.enable = true;

to your system configuration for the daemon to work correctly.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/easyeffects.nix>
services.easyeffects.package

The easyeffects package to use.

Type: package

Default: pkgs.easyeffects

Declared by:

<home-manager/modules/services/easyeffects.nix>
services.easyeffects.preset

Which preset to use when starting easyeffects. Will likely need to launch easyeffects to initially create preset.

Type: string

Default: ""

Declared by:

<home-manager/modules/services/easyeffects.nix>
services.emacs.enable

Whether to enable the Emacs daemon.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/emacs.nix>
services.emacs.package

The Emacs package to use.

Type: package

Default:

if config.programs.emacs.enable then config.programs.emacs.finalPackage
else pkgs.emacs

Declared by:

<home-manager/modules/services/emacs.nix>
services.emacs.client.enable

Whether to enable generation of Emacs client desktop file.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/emacs.nix>
services.emacs.client.arguments

Command-line arguments to pass to emacsclient.

Type: list of string

Default:

[
  "-c"
]

Declared by:

<home-manager/modules/services/emacs.nix>
services.emacs.defaultEditor

Whether to configure emacsclient as the default editor using the EDITOR environment variable.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/emacs.nix>
services.emacs.extraOptions

Extra command-line arguments to pass to emacs.

Type: list of string

Default: [ ]

Example:

[
  "-f"
  "exwm-enable"
]

Declared by:

<home-manager/modules/services/emacs.nix>
services.emacs.socketActivation.enable

Whether to enable systemd socket activation for the Emacs service.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/emacs.nix>
services.emacs.startWithUserSession

Whether to launch Emacs service with the systemd user session. If it is true, Emacs service is started by default.target. If it is "graphical", Emacs service is started by graphical-session.target.

Type: boolean or value “graphical” (singular enum)

Default: !config.services.emacs.socketActivation.enable

Example: "graphical"

Declared by:

<home-manager/modules/services/emacs.nix>
services.espanso.enable

Whether to enable Espanso: cross platform text expander in Rust.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/espanso.nix>
services.espanso.package

Which espanso package to use

Type: package

Default: pkgs.espanso

Declared by:

<home-manager/modules/services/espanso.nix>
services.espanso.configs

The Espanso configuration to use. See https://espanso.org/docs/configuration/basics/ for a description of available options.

Type: YAML value

Default:

{
  default = { };
}

Example:

{
  default = {
    show_notifications = false;
  };
  vscode = {
    filter_title = "Visual Studio Code$";
    backend = "Clipboard";
  };
};

Declared by:

<home-manager/modules/services/espanso.nix>
services.espanso.matches

The Espanso matches to use. See https://espanso.org/docs/matches/basics/ for a description of available options.

Type: YAML value

Default:

{
  default = {
    matches = [ ];
  };
}

Example:

{
  base = {
    matches = [
      {
        trigger = ":now";
        replace = "It's {{currentdate}} {{currenttime}}";
      }
      {
        trigger = ":hello";
        replace = "line1\nline2";
      }
      {
        regex = ":hi(?P<person>.*)\\.";
        replace = "Hi {{person}}!";
      }
    ];
  };
  global_vars = {
    global_vars = [
      {
        name = "currentdate";
        type = "date";
        params = {format = "%d/%m/%Y";};
      }
      {
        name = "currenttime";
        type = "date";
        params = {format = "%R";};
      }
    ];
  };
};

Declared by:

<home-manager/modules/services/espanso.nix>
services.etesync-dav.enable

Whether to enable etesync-dav.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/etesync-dav.nix>
services.etesync-dav.package

The etesync-dav derivation to use.

Type: package

Default: "pkgs.etesync-dav"

Declared by:

<home-manager/modules/services/etesync-dav.nix>
services.etesync-dav.serverUrl

The URL to the etesync server.

Type: string

Default: "https://api.etesync.com/"

Declared by:

<home-manager/modules/services/etesync-dav.nix>
services.etesync-dav.settings

Settings for etesync-dav, passed as environment variables.

Type: attribute set of (string or signed integer)

Default: { }

Example:

{
  ETESYNC_LISTEN_ADDRESS = "localhost";
  ETESYNC_LISTEN_PORT = 37358;
}

Declared by:

<home-manager/modules/services/etesync-dav.nix>
services.flameshot.enable

Whether to enable Flameshot.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/flameshot.nix>
services.flameshot.package

Package providing flameshot.

Type: package

Default: pkgs.flameshot

Declared by:

<home-manager/modules/services/flameshot.nix>
services.flameshot.settings

Configuration to use for Flameshot. See https://github.com/flameshot-org/flameshot/blob/master/flameshot.example.ini for available options.

Type: attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))

Default: { }

Example:

{
  General = {
    disabledTrayIcon = true;
    showStartupLaunchMessage = false;
  };
}

Declared by:

<home-manager/modules/services/flameshot.nix>
services.fluidsynth.enable

Whether to enable fluidsynth midi synthesizer.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/fluidsynth.nix>
services.fluidsynth.extraOptions

Extra arguments, added verbatim to the fluidsynth command. See fluidsynth.conf(1).

Type: list of string

Default: [ ]

Example:

[
  "--sample-rate 96000"
]

Declared by:

<home-manager/modules/services/fluidsynth.nix>
services.fluidsynth.soundFont

The soundfont file to use, in SoundFont 2 format.

Type: path

Default: "\${pkgs.soundfont-fluid}/share/soundfonts/FluidR3_GM2-2.sf2"

Declared by:

<home-manager/modules/services/fluidsynth.nix>
services.fluidsynth.soundService

The systemd sound service to depend on.

Type: one of “jack”, “pipewire-pulse”, “pulseaudio”

Default: "pulseaudio"

Example: "pipewire-pulse"

Declared by:

<home-manager/modules/services/fluidsynth.nix>
services.fnott.enable

Whether to enable fnott, a lightweight Wayland notification daemon for wlroots-based compositors .

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/fnott.nix>
services.fnott.package

Package providing fnott.

Type: package

Default: pkgs.fnott

Declared by:

<home-manager/modules/services/fnott.nix>
services.fnott.configFile

Path to the configuration file read by fnott.

Note that environment variables in the path won’t be properly expanded.

The configuration specified under services.fnott.settings will be generated and written to $XDG_CONFIG_HOME/fnott/fnott.ini regardless of this option. This allows using a mutable configuration file generated from the immutable one, useful in scenarios where live reloading is desired.

Type: string or path

Default: "$XDG_CONFIG_HOME/fnott/fnott.ini"

Declared by:

<home-manager/modules/services/fnott.nix>
services.fnott.extraFlags

Extra arguments to use for executing fnott.

Type: list of string

Default: [ ]

Example:

[
  "-s"
]

Declared by:

<home-manager/modules/services/fnott.nix>
services.fnott.settings

Configuration written to $XDG_CONFIG_HOME/fnott/fnott.ini.

See fnott.ini(5) for a list of available options and https://codeberg.org/dnkl/fnott/src/branch/master/fnott.ini for an example configuration.

Type: attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))

Default: { }

Example:

{
  main = {
    notification-margin = 5;
  };

  low = {
    timeout = 5;
    title-font = "Dina:weight=bold:slant=italic";
    title-color = "ffffff";
  };
}

Declared by:

<home-manager/modules/services/fnott.nix>
services.fusuma.enable

Whether to enable the fusuma systemd service to automatically enable touchpad gesture.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/fusuma.nix>
services.fusuma.package

Package providing fusuma.

Type: package

Default: pkgs.fusuma

Declared by:

<home-manager/modules/services/fusuma.nix>
services.fusuma.extraPackages

Extra packages needs to bring to the scope of fusuma service.

Type: list of package

Default: pkgs.xdotool pkgs.coreutils pkgs.xorg.xprop

Example:

with pkgs; [ xdotool coreutils xorg.xprop ];

Declared by:

<home-manager/modules/services/fusuma.nix>
services.fusuma.settings

YAML config that will override the default fusuma configuration.

Type: YAML value

Example:

{
  threshold = {
    swipe = 0.1;
  };
  interval = {
    swipe = 0.7;
  };
  swipe = {
    "3" = {
      left = {
        # GNOME: Switch to left workspace
        command = "xdotool key ctrl+alt+Right";
      };
    };
  };
};

Declared by:

<home-manager/modules/services/fusuma.nix>
services.gammastep.enable

Whether to enable Gammastep.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/redshift-gammastep/gammastep.nix>
services.gammastep.enableVerboseLogging

Whether to enable verbose service logging.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/redshift-gammastep/gammastep.nix>
services.gammastep.package

Gammastep derivation to use.

Type: package

Default: pkgs.gammastep

Declared by:

<home-manager/modules/services/redshift-gammastep/gammastep.nix>
services.gammastep.dawnTime

Set the time interval of dawn manually. The times must be specified as HH:MM in 24-hour format.

Type: null or string

Default: null

Example: "6:00-7:45"

Declared by:

<home-manager/modules/services/redshift-gammastep/gammastep.nix>
services.gammastep.duskTime

Set the time interval of dusk manually. The times must be specified as HH:MM in 24-hour format.

Type: null or string

Default: null

Example: "18:35-20:15"

Declared by:

<home-manager/modules/services/redshift-gammastep/gammastep.nix>
services.gammastep.latitude

Your current latitude, between -90.0 and 90.0. Must be provided along with longitude.

Type: null or string or floating point number

Default: null

Declared by:

<home-manager/modules/services/redshift-gammastep/gammastep.nix>
services.gammastep.longitude

Your current longitude, between -180.0 and 180.0. Must be provided along with latitude.

Type: null or string or floating point number

Default: null

Declared by:

<home-manager/modules/services/redshift-gammastep/gammastep.nix>
services.gammastep.provider

The location provider to use for determining your location. If set to manual you must also provide latitude/longitude. If set to geoclue2, you must also enable the global geoclue2 service.

Type: one of “manual”, “geoclue2”

Default: "manual"

Declared by:

<home-manager/modules/services/redshift-gammastep/gammastep.nix>
services.gammastep.settings

The configuration to pass to Gammastep. Available options for Gammastep described in gammastep(1).

Type: attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))

Default: { }

Example:

{
  general = {
    adjustment-method = "randr";
  };
  randr = {
    screen = 0;
  };
};

Declared by:

<home-manager/modules/services/redshift-gammastep/gammastep.nix>
services.gammastep.temperature.day

Colour temperature to use during the day, between 1000 and 25000 K.

Type: signed integer

Default: 5500

Declared by:

<home-manager/modules/services/redshift-gammastep/gammastep.nix>
services.gammastep.temperature.night

Colour temperature to use at night, between 1000 and 25000 K.

Type: signed integer

Default: 3700

Declared by:

<home-manager/modules/services/redshift-gammastep/gammastep.nix>
services.gammastep.tray

Start the gammastep-indicator tray applet.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/redshift-gammastep/gammastep.nix>
services.getmail.enable

Whether to enable the getmail systemd service to automatically retrieve mail.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/getmail.nix>
services.getmail.frequency

The refresh frequency. Check man systemd.time for more information on the syntax. If you use a gpg-agent in combination with the passwordCommand, keep the poll frequency below the cache-ttl value (as set by the default) to avoid pinentry asking permanently for a password.

Type: string

Default: "*:0/5"

Example: "hourly"

Declared by:

<home-manager/modules/services/getmail.nix>
services.git-sync.enable

Whether to enable git-sync services.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/git-sync.nix>
services.git-sync.package

Package containing the git-sync program.

Type: package

Default: pkgs.git-sync

Declared by:

<home-manager/modules/services/git-sync.nix>
services.git-sync.repositories

The repositories that should be synchronized.

Type: attribute set of (submodule)

Declared by:

<home-manager/modules/services/git-sync.nix>
services.git-sync.repositories.<name>.extraPackages

Extra packages available to git-sync.

Type: list of package

Default: [ ]

Example: with pkgs; [ git-crypt ]

Declared by:

<home-manager/modules/services/git-sync.nix>
services.git-sync.repositories.<name>.interval

The interval, specified in seconds, at which the synchronization will be triggered even without filesystem changes.

Type: signed integer

Default: 500

Declared by:

<home-manager/modules/services/git-sync.nix>
services.git-sync.repositories.<name>.path

The path at which to sync the repository

Type: path

Declared by:

<home-manager/modules/services/git-sync.nix>
services.git-sync.repositories.<name>.uri

The URI of the remote to be synchronized. This is only used in the event that the directory does not already exist. See https://git-scm.com/docs/git-clone#_git_urls for the supported URIs.

This option is not supported on Darwin.

Type: string

Example: "git+ssh://user@example.com:/~[user]/path/to/repo.git"

Declared by:

<home-manager/modules/services/git-sync.nix>
services.glance.enable

Whether to enable glance.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/glance.nix>
services.glance.package

The glance package to use.

Type: package

Default: pkgs.glance

Declared by:

<home-manager/modules/services/glance.nix>
services.glance.settings

Configuration written to a yaml file that is read by glance. See https://github.com/glanceapp/glance/blob/main/docs/configuration.md for more.

Type: YAML value

Default:

{
  pages = [
    {
      columns = [
        {
          size = "full";
          widgets = [
            {
              type = "calendar";
            }
          ];
        }
      ];
      name = "Calendar";
    }
  ];
}

Example:

{
  pages = [
    {
      columns = [
        {
          size = "full";
          widgets = [
            {
              type = "calendar";
            }
            {
              location = "London, United Kingdom";
              type = "weather";
            }
          ];
        }
      ];
      name = "Home";
    }
  ];
  server = {
    port = 5678;
  };
}

Declared by:

<home-manager/modules/services/glance.nix>
services.gnome-keyring.enable

Whether to enable GNOME Keyring.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/gnome-keyring.nix>
services.gnome-keyring.components

The GNOME keyring components to start. If empty then the default set of components will be started.

Type: list of (one of “pkcs11”, “secrets”, “ssh”)

Default: [ ]

Declared by:

<home-manager/modules/services/gnome-keyring.nix>
services.gpg-agent.enable

Whether to enable GnuPG private key agent.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/gpg-agent.nix>
services.gpg-agent.enableBashIntegration

Whether to enable Bash integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/services/gpg-agent.nix>
services.gpg-agent.enableExtraSocket

Whether to enable extra socket of the GnuPG key agent (useful for GPG Agent forwarding).

Type: boolean

Default: false

Declared by:

<home-manager/modules/services/gpg-agent.nix>
services.gpg-agent.enableFishIntegration

Whether to enable Fish integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/services/gpg-agent.nix>
services.gpg-agent.enableNushellIntegration

Whether to enable Nushell integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/services/gpg-agent.nix>
services.gpg-agent.enableScDaemon

Make use of the scdaemon tool. This option has the effect of enabling the ability to do smartcard operations. When disabled, this option passes disable-scdaemon setting to gpg-agent.

Type: boolean

Default: true

Declared by:

<home-manager/modules/services/gpg-agent.nix>
services.gpg-agent.enableSshSupport

Whether to use the GnuPG key agent for SSH keys.

Type: boolean

Default: false

Declared by:

<home-manager/modules/services/gpg-agent.nix>
services.gpg-agent.enableZshIntegration

Whether to enable Zsh integration.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/services/gpg-agent.nix>
services.gpg-agent.defaultCacheTtl

Set the time a cache entry is valid to the given number of seconds.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/services/gpg-agent.nix>
services.gpg-agent.defaultCacheTtlSsh

Set the time a cache entry used for SSH keys is valid to the given number of seconds.

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/services/gpg-agent.nix>
services.gpg-agent.extraConfig

Extra configuration lines to append to the gpg-agent configuration file.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  allow-emacs-pinentry
  allow-loopback-pinentry
''

Declared by:

<home-manager/modules/services/gpg-agent.nix>
services.gpg-agent.grabKeyboardAndMouse

Tell the pinentry to grab the keyboard and mouse. This option should in general be used to avoid X-sniffing attacks. When disabled, this option passes no-grab setting to gpg-agent.

Type: boolean

Default: true

Declared by:

<home-manager/modules/services/gpg-agent.nix>
services.gpg-agent.maxCacheTtl

Set the maximum time a cache entry is valid to n seconds. After this time a cache entry will be expired even if it has been accessed recently or has been set using gpg-preset-passphrase. The default is 2 hours (7200 seconds).

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/services/gpg-agent.nix>
services.gpg-agent.maxCacheTtlSsh

Set the maximum time a cache entry used for SSH keys is valid to n seconds. After this time a cache entry will be expired even if it has been accessed recently or has been set using gpg-preset-passphrase. The default is 2 hours (7200 seconds).

Type: null or signed integer

Default: null

Declared by:

<home-manager/modules/services/gpg-agent.nix>
services.gpg-agent.pinentryPackage

Which pinentry interface to use. If not null, it sets pinentry-program in gpg-agent.conf. Beware that pinentry-gnome3 may not work on non-Gnome systems. You can fix it by adding the following to your system configuration:

services.dbus.packages = [ pkgs.gcr ];

Type: null or package

Default: null

Example: pkgs.pinentry-gnome3

Declared by:

<home-manager/modules/services/gpg-agent.nix>
services.gpg-agent.sshKeys

Which GPG keys (by keygrip) to expose as SSH keys.

Type: null or (list of string)

Default: null

Declared by:

<home-manager/modules/services/gpg-agent.nix>
services.gpg-agent.verbose

Whether to produce verbose output.

Type: boolean

Default: false

Declared by:

<home-manager/modules/services/gpg-agent.nix>
services.grobi.enable

Whether to enable the grobi display setup daemon.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/grobi.nix>
services.grobi.executeAfter

Commands to be run after an output configuration was changed. The Nix value declared here will be translated to JSON and written to the execute_after key in $XDG_CONFIG_HOME/grobi.conf.

Type: list of string

Default: [ ]

Example:

[
  "setxkbmap dvorak"
]

Declared by:

<home-manager/modules/services/grobi.nix>
services.grobi.rules

These are the rules grobi tries to match to the current output configuration. The rules are evaluated top to bottom, the first matching rule is applied and processing stops. See https://github.com/fd0/grobi/blob/master/doc/grobi.conf for more information. The Nix value declared here will be translated to JSON and written to the rules key in $XDG_CONFIG_HOME/grobi.conf.

Type: list of attribute set of (string or boolean or signed integer or list of string)

Default: [ ]

Example:

[
  {
    name = "Home";
    outputs_connected = [ "DP-2" ];
    configure_single = "DP-2";
    primary = true;
    atomic = true;
    execute_after = [
      "${pkgs.xorg.xrandr}/bin/xrandr --dpi 96"
      "${pkgs.xmonad-with-packages}/bin/xmonad --restart";
    ];
  }
  {
    name = "Mobile";
    outputs_disconnected = [ "DP-2" ];
    configure_single = "eDP-1";
    primary = true;
    atomic = true;
    execute_after = [
      "${pkgs.xorg.xrandr}/bin/xrandr --dpi 120"
      "${pkgs.xmonad-with-packages}/bin/xmonad --restart";
    ];
  }
]

Declared by:

<home-manager/modules/services/grobi.nix>
services.gromit-mpx.enable

Whether to enable Gromit-MPX annotation tool.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/gromit-mpx.nix>
services.gromit-mpx.package

The gromit-mpx package to use.

Type: package

Default: "pkgs.gromit-mpx"

Declared by:

<home-manager/modules/services/gromit-mpx.nix>
services.gromit-mpx.hotKey

A keysym or raw keycode that toggles the activation state of gromit-mpx. Set to null to disable the hotkey in which case you’ll have to activate gromit-mpx manually using the command line.

Type: null or string or (positive integer, meaning >0)

Default: "F9"

Example: "Insert"

Declared by:

<home-manager/modules/services/gromit-mpx.nix>
services.gromit-mpx.opacity

Opacity of the drawing overlay.

Type: float between 0.0 and 1.0 (inclusive)

Default: 0.75

Example: 1.0

Declared by:

<home-manager/modules/services/gromit-mpx.nix>
services.gromit-mpx.tools

Tool definitions for gromit-mpx to use.

Type: list of (submodule)

Default:

[
  {
    color = "red";
    device = "default";
    size = 5;
    type = "pen";
  }
  {
    color = "blue";
    device = "default";
    modifiers = [
      "SHIFT"
    ];
    size = 5;
    type = "pen";
  }
  {
    color = "yellow";
    device = "default";
    modifiers = [
      "CONTROL"
    ];
    size = 5;
    type = "pen";
  }
  {
    arrowSize = 1;
    color = "green";
    device = "default";
    modifiers = [
      "2"
    ];
    size = 6;
    type = "pen";
  }
  {
    device = "default";
    modifiers = [
      "3"
    ];
    size = 75;
    type = "eraser";
  }
]

Declared by:

<home-manager/modules/services/gromit-mpx.nix>
services.gromit-mpx.tools.*.arrowSize

If not null, automatically draw an arrow at the end of a stroke with the given size.

Type: null or (positive integer, meaning >0)

Default: null

Example: 2

Declared by:

<home-manager/modules/services/gromit-mpx.nix>
services.gromit-mpx.tools.*.color

The stroke (or recolor) color of the tool.

Type: string

Default: "red"

Example: "#ff00ff"

Declared by:

<home-manager/modules/services/gromit-mpx.nix>
services.gromit-mpx.tools.*.device

Use this tool with the given xinput device. The device with the name default works with any input.

Type: string

Example: "default"

Declared by:

<home-manager/modules/services/gromit-mpx.nix>
services.gromit-mpx.tools.*.modifiers

Only activate this tool if the given modifiers are also active.

Type: list of (one of “1”, “2”, “3”, “4”, “5”, “SHIFT”, “CONTROL”, “ALT”, “META”)

Default: [ ]

Example:

[
  "SHIFT"
]

Declared by:

<home-manager/modules/services/gromit-mpx.nix>
services.gromit-mpx.tools.*.size

The tool size.

Type: positive integer, meaning >0

Default: 5

Example: 3

Declared by:

<home-manager/modules/services/gromit-mpx.nix>
services.gromit-mpx.tools.*.type

Which type of tool this is.

Type: one of “pen”, “eraser”, “recolor”

Default: "pen"

Example: "eraser"

Declared by:

<home-manager/modules/services/gromit-mpx.nix>
services.gromit-mpx.undoKey

A keysym or raw keycode that causes gromit-mpx to undo the last stroke. Use this key along with the shift key to redo an undone stoke. Set to null to disable the undo hotkey.

Type: null or string or (positive integer, meaning >0)

Default: "F10"

Declared by:

<home-manager/modules/services/gromit-mpx.nix>
services.himalaya-watch.enable

Whether to enable the email client Himalaya CLI envelopes watcher service.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/himalaya.nix>
services.himalaya-watch.environment

Extra environment variables to be exported in the service.

Type: attribute set of string

Default: { }

Example:

{
  "PASSWORD_STORE_DIR" = "~/.password-store";
}

Declared by:

<home-manager/modules/programs/himalaya.nix>
services.himalaya-watch.settings.account

Name of the account the watcher should be started for. If no account is given, the default one is used.

Type: null or string

Default: null

Example: "personal"

Declared by:

<home-manager/modules/programs/himalaya.nix>
services.home-manager.autoUpgrade.enable

Whether to enable the Home Manager upgrade service that periodically updates your Nix channels before running home-manager switch.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/home-manager-auto-upgrade.nix>
services.home-manager.autoUpgrade.frequency

The interval at which the Home Manager auto upgrade is run. This value is passed to the systemd timer configuration as the OnCalendar option. The format is described in systemd.time(7).

Type: string

Example: "weekly"

Declared by:

<home-manager/modules/services/home-manager-auto-upgrade.nix>
services.hound.enable

Whether to enable hound.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/hound.nix>
services.hound.databasePath

The Hound database path.

Type: path

Default: "$XDG_DATA_HOME/hound"

Declared by:

<home-manager/modules/services/hound.nix>
services.hound.listenAddress

Listen address of the Hound daemon.

Type: string

Default: "localhost:6080"

Declared by:

<home-manager/modules/services/hound.nix>
services.hound.maxConcurrentIndexers

Limit the amount of concurrent indexers.

Type: positive integer, meaning >0

Default: 2

Declared by:

<home-manager/modules/services/hound.nix>
services.hound.repositories

The repository configuration.

Type: attribute set of (JSON value)

Default: { }

Example:

{
  SomeGitRepo = {
    url = "https://www.github.com/YourOrganization/RepoOne.git";
    ms-between-poll = 10000;
    exclude-dot-files = true;
  };
}

Declared by:

<home-manager/modules/services/hound.nix>
services.hypridle.enable

Whether to enable Hypridle, Hyprland’s idle daemon.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/hypridle.nix>
services.hypridle.package

The hypridle package to use.

Type: package

Default: pkgs.hypridle

Declared by:

<home-manager/modules/services/hypridle.nix>
services.hypridle.importantPrefixes

List of prefix of attributes to source at the top of the config.

Type: list of string

Default:

[
  "$"
]

Example:

[
  "$"
]

Declared by:

<home-manager/modules/services/hypridle.nix>
services.hypridle.settings

Hypridle configuration written in Nix. Entries with the same key should be written as lists. Variables’ and colors’ names should be quoted. See https://wiki.hyprland.org/Hypr-Ecosystem/hypridle/ for more examples.

Type: Hypridle configuration value

Default: { }

Example:

{
  general = {
    after_sleep_cmd = "hyprctl dispatch dpms on";
    ignore_dbus_inhibit = false;
    lock_cmd = "hyprlock";
  };

  listener = [
    {
      timeout = 900;
      on-timeout = "hyprlock";
    }
    {
      timeout = 1200;
      on-timeout = "hyprctl dispatch dpms off";
      on-resume = "hyprctl dispatch dpms on";
    }
  ];
}

Declared by:

<home-manager/modules/services/hypridle.nix>
services.hyprpaper.enable

Whether to enable Hyprpaper, Hyprland’s wallpaper daemon.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/hyprpaper.nix>
services.hyprpaper.package

The hyprpaper package to use.

Type: package

Default: pkgs.hyprpaper

Declared by:

<home-manager/modules/services/hyprpaper.nix>
services.hyprpaper.importantPrefixes

List of prefix of attributes to source at the top of the config.

Type: list of string

Default:

[
  "$"
]

Example:

[
  "$"
]

Declared by:

<home-manager/modules/services/hyprpaper.nix>
services.hyprpaper.settings

hyprpaper configuration written in Nix. Entries with the same key should be written as lists. Variables’ and colors’ names should be quoted. See https://wiki.hyprland.org/Hypr-Ecosystem/hyprpaper/ for more examples.

Type: Hyprpaper configuration value

Default: { }

Example:

{
  ipc = "on";
  splash = false;
  splash_offset = 2.0;

  preload =
    [ "/share/wallpapers/buttons.png" "/share/wallpapers/cat_pacman.png" ];

  wallpaper = [
    "DP-3,/share/wallpapers/buttons.png"
    "DP-1,/share/wallpapers/cat_pacman.png"
  ];
}

Declared by:

<home-manager/modules/services/hyprpaper.nix>
services.imapnotify.enable

Whether to enable imapnotify.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/imapnotify.nix>
services.imapnotify.package

The imapnotify package to use

Type: package

Default: pkgs.goimapnotify

Example: pkgs.imapnotify

Declared by:

<home-manager/modules/services/imapnotify.nix>
services.kanshi.enable

Whether to enable kanshi, a Wayland daemon that automatically configures outputs.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/kanshi.nix>
services.kanshi.package

kanshi derivation to use.

Type: package

Default: pkgs.kanshi

Declared by:

<home-manager/modules/services/kanshi.nix>
services.kanshi.extraConfig

Extra configuration lines to append to the kanshi configuration file.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/services/kanshi.nix>
services.kanshi.profiles

Attribute set of profiles.

Type: attribute set of (submodule)

Default: { }

Example:

{
  undocked = {
    outputs = [
      {
        criteria = "eDP-1";
      }
    ];
  };
  docked = {
    outputs = [
      {
        criteria = "eDP-1";
      }
      {
        criteria = "Some Company ASDF 4242";
        transform = "90";
      }
    ];
  };
}

Declared by:

<home-manager/modules/services/kanshi.nix>
services.kanshi.profiles.<name>.exec

Commands executed after the profile is successfully applied. Note that if you provide multiple commands, they will be executed asynchronously with no guaranteed ordering.

Type: (list of string) or string convertible to it

Default: [ ]

Example: "[ \${pkg.sway}/bin/swaymsg workspace 1, move workspace to eDP-1 ]"

Declared by:

<home-manager/modules/services/kanshi.nix>
services.kanshi.profiles.<name>.name

Profile name

Type: string

Default: ""

Declared by:

<home-manager/modules/services/kanshi.nix>
services.kanshi.profiles.<name>.outputs

Outputs configuration.

Type: list of (submodule)

Default: [ ]

Declared by:

<home-manager/modules/services/kanshi.nix>
services.kanshi.profiles.<name>.outputs.*.adaptiveSync

Enables or disables adaptive synchronization (aka. Variable Refresh Rate).

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/services/kanshi.nix>
services.kanshi.profiles.<name>.outputs.*.alias

Defines an alias for the output

Type: null or string

Default: null

Example: "laptopMonitor"

Declared by:

<home-manager/modules/services/kanshi.nix>
services.kanshi.profiles.<name>.outputs.*.criteria

The criteria can either be an output name, an output description or “*”. The latter can be used to match any output.

On sway(1), output names and descriptions can be obtained via swaymsg -t get_outputs.

Type: string

Declared by:

<home-manager/modules/services/kanshi.nix>
services.kanshi.profiles.<name>.outputs.*.mode

<width>x<height>[@<rate>[Hz]]

Configures the specified output to use the specified mode. Modes are a combination of width and height (in pixels) and a refresh rate (in Hz) that your display can be configured to use.

Type: null or string

Default: null

Example: "1920x1080@60Hz"

Declared by:

<home-manager/modules/services/kanshi.nix>
services.kanshi.profiles.<name>.outputs.*.position

<x>,<y>

Places the output at the specified position in the global coordinates space.

Type: null or string

Default: null

Example: "1600,0"

Declared by:

<home-manager/modules/services/kanshi.nix>
services.kanshi.profiles.<name>.outputs.*.scale

Scales the output by the specified scale factor.

Type: null or floating point number

Default: null

Example: 2

Declared by:

<home-manager/modules/services/kanshi.nix>
services.kanshi.profiles.<name>.outputs.*.status

Enables or disables the specified output.

Type: null or one of “enable”, “disable”

Default: null

Declared by:

<home-manager/modules/services/kanshi.nix>
services.kanshi.profiles.<name>.outputs.*.transform

Sets the output transform.

Type: null or one of “normal”, “90”, “180”, “270”, “flipped”, “flipped-90”, “flipped-180”, “flipped-270”

Default: null

Declared by:

<home-manager/modules/services/kanshi.nix>
services.kanshi.settings

Ordered list of directives. See kanshi(5) for informations.

Type: list of attribute-tagged union

Default: [ ]

Example:

[
  { include = "path/to/included/files"; }
  { output.criteria = "eDP-1";
    output.scale = 2;
  }
  { profile.name = "undocked";
    profile.outputs = [
      {
        criteria = "eDP-1";
      }
    ];
  }
  { profile.name = "docked";
    profile.outputs = [
      {
        criteria = "eDP-1";
      }
      {
        criteria = "Some Company ASDF 4242";
        transform = "90";
      }
    ];
  }
]

Declared by:

<home-manager/modules/services/kanshi.nix>
services.kanshi.settings.*.include

Include as another file from path. Expands shell syntax (see wordexp(3) for details).

Type: string

Declared by:

<home-manager/modules/services/kanshi.nix>
services.kanshi.settings.*.output

output attribute set.

Type: submodule

Declared by:

<home-manager/modules/services/kanshi.nix>
services.kanshi.settings.*.output.adaptiveSync

Enables or disables adaptive synchronization (aka. Variable Refresh Rate).

Type: null or boolean

Default: null

Example: true

services.kanshi.settings.*.output.alias

Defines an alias for the output

Type: null or string

Default: null

Example: "laptopMonitor"

services.kanshi.settings.*.output.criteria

The criteria can either be an output name, an output description or “*”. The latter can be used to match any output.

On sway(1), output names and descriptions can be obtained via swaymsg -t get_outputs.

Type: string

services.kanshi.settings.*.output.mode

<width>x<height>[@<rate>[Hz]]

Configures the specified output to use the specified mode. Modes are a combination of width and height (in pixels) and a refresh rate (in Hz) that your display can be configured to use.

Type: null or string

Default: null

Example: "1920x1080@60Hz"

services.kanshi.settings.*.output.position

<x>,<y>

Places the output at the specified position in the global coordinates space.

Type: null or string

Default: null

Example: "1600,0"

services.kanshi.settings.*.output.scale

Scales the output by the specified scale factor.

Type: null or floating point number

Default: null

Example: 2

services.kanshi.settings.*.output.status

Enables or disables the specified output.

Type: null or one of “enable”, “disable”

Default: null

services.kanshi.settings.*.output.transform

Sets the output transform.

Type: null or one of “normal”, “90”, “180”, “270”, “flipped”, “flipped-90”, “flipped-180”, “flipped-270”

Default: null

services.kanshi.settings.*.profile

profile attribute set.

Type: submodule

Declared by:

<home-manager/modules/services/kanshi.nix>
services.kanshi.settings.*.profile.exec

Commands executed after the profile is successfully applied. Note that if you provide multiple commands, they will be executed asynchronously with no guaranteed ordering.

Type: (list of string) or string convertible to it

Default: [ ]

Example: "[ \${pkg.sway}/bin/swaymsg workspace 1, move workspace to eDP-1 ]"

services.kanshi.settings.*.profile.name

Profile name

Type: string

Default: ""

services.kanshi.settings.*.profile.outputs

Outputs configuration.

Type: list of (submodule)

Default: [ ]

services.kanshi.settings.*.profile.outputs.*.adaptiveSync

Enables or disables adaptive synchronization (aka. Variable Refresh Rate).

Type: null or boolean

Default: null

Example: true

services.kanshi.settings.*.profile.outputs.*.alias

Defines an alias for the output

Type: null or string

Default: null

Example: "laptopMonitor"

services.kanshi.settings.*.profile.outputs.*.criteria

The criteria can either be an output name, an output description or “*”. The latter can be used to match any output.

On sway(1), output names and descriptions can be obtained via swaymsg -t get_outputs.

Type: string

services.kanshi.settings.*.profile.outputs.*.mode

<width>x<height>[@<rate>[Hz]]

Configures the specified output to use the specified mode. Modes are a combination of width and height (in pixels) and a refresh rate (in Hz) that your display can be configured to use.

Type: null or string

Default: null

Example: "1920x1080@60Hz"

services.kanshi.settings.*.profile.outputs.*.position

<x>,<y>

Places the output at the specified position in the global coordinates space.

Type: null or string

Default: null

Example: "1600,0"

services.kanshi.settings.*.profile.outputs.*.scale

Scales the output by the specified scale factor.

Type: null or floating point number

Default: null

Example: 2

services.kanshi.settings.*.profile.outputs.*.status

Enables or disables the specified output.

Type: null or one of “enable”, “disable”

Default: null

services.kanshi.settings.*.profile.outputs.*.transform

Sets the output transform.

Type: null or one of “normal”, “90”, “180”, “270”, “flipped”, “flipped-90”, “flipped-180”, “flipped-270”

Default: null

services.kanshi.systemdTarget

Systemd target to bind to.

Type: string

Default: "sway-session.target"

Declared by:

<home-manager/modules/services/kanshi.nix>
services.kbfs.enable

Whether to enable Keybase File System.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/kbfs.nix>
services.kbfs.extraFlags

Additional flags to pass to the Keybase filesystem on launch.

Type: list of string

Default: [ ]

Example:

[
  "-label kbfs"
  "-mount-type normal"
]

Declared by:

<home-manager/modules/services/kbfs.nix>
services.kbfs.mountPoint

Mount point for the Keybase filesystem, relative to HOME.

Type: string

Default: "keybase"

Declared by:

<home-manager/modules/services/kbfs.nix>
services.kdeconnect.enable

Whether to enable KDE connect.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/kdeconnect.nix>
services.kdeconnect.package

The KDE connect package to use

Type: package

Default: <derivation kdeconnect-kde-23.08.5>

Example: pkgs.kdePackages.kdeconnect-kde

Declared by:

<home-manager/modules/services/kdeconnect.nix>
services.kdeconnect.indicator

Whether to enable kdeconnect-indicator service.

Type: boolean

Default: false

Declared by:

<home-manager/modules/services/kdeconnect.nix>
services.keybase.enable

Whether to enable Keybase.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/keybase.nix>
services.keynav.enable

Whether to enable keynav.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/keynav.nix>
services.lieer.enable

Whether to enable lieer Gmail synchronization service.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/lieer.nix>
services.listenbrainz-mpd.enable

Whether to enable listenbrainz-mpd.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/listenbrainz-mpd.nix>
services.listenbrainz-mpd.package

The listenbrainz-mpd package to use.

Type: package

Default: pkgs.listenbrainz-mpd

Declared by:

<home-manager/modules/services/listenbrainz-mpd.nix>
services.listenbrainz-mpd.settings

Configuration for listenbrainz-mpd written to $XDG_CONFIG_HOME/listenbrainz-mpd/config.toml.

Type: TOML value

Default: { }

Example:

{
  submission = {
    token_file = "/run/secrets/listenbrainz-mpd";
  };
}

Declared by:

<home-manager/modules/services/listenbrainz-mpd.nix>
services.lorri.enable

Whether to enable lorri build daemon.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/lorri.nix>
services.lorri.enableNotifications

Whether to enable lorri build notifications.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/lorri.nix>
services.lorri.package

Which lorri package to install.

Type: package

Default: pkgs.lorri

Declared by:

<home-manager/modules/services/lorri.nix>
services.lorri.nixPackage

Which nix package to use.

Type: package

Default: pkgs.nix

Example: pkgs.nixVersions.unstable

Declared by:

<home-manager/modules/services/lorri.nix>
services.mako.enable

Whether to enable Mako, lightweight notification daemon for Wayland .

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/mako.nix>
services.mako.package

The mako package to use.

Type: package

Default: pkgs.mako

Declared by:

<home-manager/modules/services/mako.nix>
services.mako.actions

Applications may request an action to be associated with activating a notification. Disabling this will cause mako to ignore these requests.

Type: null or boolean

Default: true

Declared by:

<home-manager/modules/services/mako.nix>
services.mako.anchor

Show notifications at the specified position on the output. Supported values are top-right, top-center, top-left, bottom-right, bottom-center, bottom-left, and center.

Type: null or one of “top-right”, “top-center”, “top-left”, “bottom-right”, “bottom-center”, “bottom-left”, “center”

Default: "top-right"

Declared by:

<home-manager/modules/services/mako.nix>
services.mako.backgroundColor

Set popup background color to a specific color, represented in hex color code.

Type: null or string

Default: "#285577FF"

Declared by:

<home-manager/modules/services/mako.nix>
services.mako.borderColor

Set popup border color to a specific color, represented in hex color code.

Type: null or string

Default: "#4C7899FF"

Declared by:

<home-manager/modules/services/mako.nix>
services.mako.borderRadius

Set popup corner radius to the specified number of pixels.

Type: null or signed integer

Default: 0

Declared by:

<home-manager/modules/services/mako.nix>
services.mako.borderSize

Set popup border size to the specified number of pixels.

Type: null or signed integer

Default: 1

Declared by:

<home-manager/modules/services/mako.nix>
services.mako.defaultTimeout

Set the default timeout to timeout in milliseconds. To disable the timeout, set it to zero.

Type: null or signed integer

Default: 0

Declared by:

<home-manager/modules/services/mako.nix>
services.mako.extraConfig

Additional configuration.

Type: strings concatenated with “\n”

Default: ""

Example:

[urgency=low]
border-color=#b8bb26

Declared by:

<home-manager/modules/services/mako.nix>
services.mako.font

Font to use, in Pango format.

Type: null or string

Default: "monospace 10"

Declared by:

<home-manager/modules/services/mako.nix>
services.mako.format

Set notification format string to format. See FORMAT SPECIFIERS for more information. To change this for grouped notifications, set it within a grouped criteria.

Type: null or string

Default: "<b>%s</b>\\n%b"

Declared by:

<home-manager/modules/services/mako.nix>
services.mako.groupBy

A comma-separated list of criteria fields that will be compared to other visible notifications to determine if this one should form a group with them. All listed criteria must be exactly equal for two notifications to group.

Type: null or string

Default: null

Declared by:

<home-manager/modules/services/mako.nix>
services.mako.height

Set maximum height of notification popups. Notifications whose text takes up less space are shrunk to fit.

Type: null or signed integer

Default: 100

Declared by:

<home-manager/modules/services/mako.nix>
services.mako.iconPath

Paths to search for icons when a notification specifies a name instead of a full path. Colon-delimited. This approximates the search algorithm used by the XDG Icon Theme Specification, but does not support any of the theme metadata. Therefore, if you want to search parent themes, you’ll need to add them to the path manually.

The /usr/share/icons/hicolor and /usr/share/pixmaps directories are always searched.

Type: null or string

Default: null

Declared by:

<home-manager/modules/services/mako.nix>
services.mako.icons

Whether or not to show icons in notifications.

Type: null or boolean

Default: true

Declared by:

<home-manager/modules/services/mako.nix>
services.mako.ignoreTimeout

If set, mako will ignore the expire timeout sent by notifications and use the one provided by default-timeout instead.

Type: null or boolean

Default: false

Declared by:

<home-manager/modules/services/mako.nix>
services.mako.layer

Arrange mako at the specified layer, relative to normal windows. Supported values are background, bottom, top, and overlay. Using overlay will cause notifications to be displayed above fullscreen windows, though this may also occur at top depending on your compositor.

Type: null or one of “background”, “bottom”, “top”, “overlay”

Default: "top"

Declared by:

<home-manager/modules/services/mako.nix>
services.mako.margin

Set margin of each edge specified in pixels. Specify single value to apply margin on all sides. Two comma-separated values will set vertical and horizontal edges separately. Four comma-separated will give each edge a separate value. For example: 10,20,5 will set top margin to 10, left and right to 20 and bottom to five.

Type: null or string

Default: "10"

Declared by:

<home-manager/modules/services/mako.nix>
services.mako.markup

If 1, enable Pango markup. If 0, disable Pango markup. If enabled, Pango markup will be interpreted in your format specifier and in the body of notifications.

Type: null or boolean

Default: true

Declared by:

<home-manager/modules/services/mako.nix>
services.mako.maxIconSize

Set maximum icon size to the specified number of pixels.

Type: null or signed integer

Default: 64

Declared by:

<home-manager/modules/services/mako.nix>
services.mako.maxVisible

Set maximum number of visible notifications. Set -1 to show all.

Type: null or signed integer

Default: 5

Declared by:

<home-manager/modules/services/mako.nix>
services.mako.output

Show notifications on the specified output. If empty, notifications will appear on the focused output. Requires the compositor to support the Wayland protocol xdg-output-unstable-v1 version 2.

Type: null or string

Default: null

Declared by:

<home-manager/modules/services/mako.nix>
services.mako.padding

Set padding of each edge specified in pixels. Specify single value to apply margin on all sides. Two comma-separated values will set vertical and horizontal edges separately. Four comma-separated will give each edge a separate value. For example: 10,20,5 will set top margin to 10, left and right to 20 and bottom to five.

Type: null or string

Default: "5"

Declared by:

<home-manager/modules/services/mako.nix>
services.mako.progressColor

Set popup progress indicator color to a specific color, represented in hex color code. To draw the progress indicator on top of the background color, use the over attribute. To replace the background color, use the source attribute (this can be useful when the notification is semi-transparent).

Type: null or string

Default: "over #5588AAFF"

Declared by:

<home-manager/modules/services/mako.nix>
services.mako.sort

Sorts incoming notifications by time and/or priority in ascending(+) or descending(-) order.

Type: null or one of “+time”, “-time”, “+priority”, “-priority”

Default: "-time"

Declared by:

<home-manager/modules/services/mako.nix>
services.mako.textColor

Set popup text color to a specific color, represented in hex color code.

Type: null or string

Default: "#FFFFFFFF"

Declared by:

<home-manager/modules/services/mako.nix>
services.mako.width

Set width of notification popups in specified number of pixels.

Type: null or signed integer

Default: 300

Declared by:

<home-manager/modules/services/mako.nix>
services.mbsync.enable

Whether to enable mbsync.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/mbsync.nix>
services.mbsync.package

The package to use for the mbsync binary.

Type: package

Default: pkgs.isync

Example: pkgs.isync

Declared by:

<home-manager/modules/services/mbsync.nix>
services.mbsync.configFile

Optional configuration file to link to use instead of the default file (~/.mbsyncrc).

Type: null or path

Default: null

Declared by:

<home-manager/modules/services/mbsync.nix>
services.mbsync.frequency

How often to run mbsync. 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/services/mbsync.nix>
services.mbsync.postExec

An optional command to run after mbsync executes successfully. This is useful for running mailbox indexing tools.

Type: null or string

Default: null

Example: "\${pkgs.mu}/bin/mu index"

Declared by:

<home-manager/modules/services/mbsync.nix>
services.mbsync.preExec

An optional command to run before mbsync executes. This is useful for creating the directories mbsync is going to use.

Type: null or string

Default: null

Example: "mkdir -p %h/mail"

Declared by:

<home-manager/modules/services/mbsync.nix>
services.mbsync.verbose

Whether mbsync should produce verbose output.

Type: boolean

Default: true

Declared by:

<home-manager/modules/services/mbsync.nix>
services.megasync.enable

Whether to enable Megasync client.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/megasync.nix>
services.megasync.package

The megasync package to use.

Type: package

Default: pkgs.megasync

Declared by:

<home-manager/modules/services/megasync.nix>
services.mopidy.enable

Whether to enable Mopidy music player daemon.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/mopidy.nix>
services.mopidy.extensionPackages

Mopidy extensions that should be loaded by the service.

Type: list of package

Default: [ ]

Example: with pkgs; [ mopidy-spotify mopidy-mpd mopidy-mpris ]

Declared by:

<home-manager/modules/services/mopidy.nix>
services.mopidy.extraConfigFiles

Extra configuration files read by Mopidy when the service starts. Later files in the list override earlier configuration files and structured settings.

Type: list of path

Default: [ ]

Declared by:

<home-manager/modules/services/mopidy.nix>
services.mopidy.settings

Configuration written to $XDG_CONFIG_HOME/mopidy/mopidy.conf.

See https://docs.mopidy.com/en/latest/config/ for more details.

Type: attribute set of attribute set of (Mopidy config value)

Default: { }

Example:

{
  file = {
    media_dirs = [
      "$XDG_MUSIC_DIR|Music"
      "~/library|Library"
    ];
    follow_symlinks = true;
    excluded_file_extensions = [
      ".html"
      ".zip"
      ".jpg"
      ".jpeg"
      ".png"
    ];
  };

  # Please don't put your mopidy-spotify configuration in the public. :)
  # Think of your Spotify Premium subscription!
  spotify = {
    client_id = "CLIENT_ID";
    client_secret = "CLIENT_SECRET";
  };
}

Declared by:

<home-manager/modules/services/mopidy.nix>
services.mpd.enable

Whether to enable MPD, the music player daemon.

Type: boolean

Default: false

Declared by:

<home-manager/modules/services/mpd.nix>
services.mpd.package

The MPD package to run.

Type: package

Default: "pkgs.mpd"

Declared by:

<home-manager/modules/services/mpd.nix>
services.mpd.dataDir

The directory where MPD stores its state, tag cache, playlists etc.

Type: path

Default: "$XDG_DATA_HOME/mpd"

Declared by:

<home-manager/modules/services/mpd.nix>
services.mpd.dbFile

The path to MPD’s database. If set to null the parameter is omitted from the configuration.

Type: null or string

Default: "\${dataDir}/tag_cache"

Declared by:

<home-manager/modules/services/mpd.nix>
services.mpd.extraArgs

Extra command-line arguments to pass to MPD.

Type: list of string

Default: [ ]

Example:

[
  "--verbose"
]

Declared by:

<home-manager/modules/services/mpd.nix>
services.mpd.extraConfig

Extra directives added to to the end of MPD’s configuration file, mpd.conf. Basic configuration like file location and uid/gid is added automatically to the beginning of the file. For available options see mpd.conf(5).

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/services/mpd.nix>
services.mpd.musicDirectory

The directory where mpd reads music from.

If xdg.userDirs.enable is true then the defined XDG music directory is used. Otherwise, you must explicitly specify a value.

Type: path or string

Default:

${home.homeDirectory}/music    if state version < 22.11
${xdg.userDirs.music}          if xdg.userDirs.enable == true
undefined                      otherwise

Declared by:

<home-manager/modules/services/mpd.nix>
services.mpd.network.listenAddress

The address for the daemon to listen on. Use any to listen on all addresses.

Type: string

Default: "127.0.0.1"

Example: "any"

Declared by:

<home-manager/modules/services/mpd.nix>
services.mpd.network.port

The TCP port on which the the daemon will listen.

Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default: 6600

Declared by:

<home-manager/modules/services/mpd.nix>
services.mpd.network.startWhenNeeded

Enable systemd socket activation.

Type: boolean

Default: false

Declared by:

<home-manager/modules/services/mpd.nix>
services.mpd.playlistDirectory

The directory where mpd stores playlists.

Type: path

Default: "\${dataDir}/playlists"

Declared by:

<home-manager/modules/services/mpd.nix>
services.mpd-discord-rpc.enable

Whether to enable the mpd-discord-rpc service.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/mpd-discord-rpc.nix>
services.mpd-discord-rpc.package

mpd-discord-rpc package to use.

Type: package

Default: pkgs.mpd-discord-rpc

Declared by:

<home-manager/modules/services/mpd-discord-rpc.nix>
services.mpd-discord-rpc.settings

Configuration included in config.toml. For available options see https://github.com/JakeStanger/mpd-discord-rpc#configuration

Type: TOML value

Default: { }

Example:

{
  hosts = [ "localhost:6600" ];
  format = {
    details = "$title";
    state = "On $album by $artist";
  };
}

Declared by:

<home-manager/modules/services/mpd-discord-rpc.nix>
services.mpd-mpris.enable

Whether to enable mpd-mpris: An implementation of the MPRIS protocol for MPD.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/mpd-mpris.nix>
services.mpd-mpris.package

The mpd-mpris package to use.

Type: package

Default: pkgs.mpd-mpris

Declared by:

<home-manager/modules/services/mpd-mpris.nix>
services.mpd-mpris.mpd.host

The address where MPD is listening for connections.

Type: null or string

Default: null

Example: "192.168.1.1"

Declared by:

<home-manager/modules/services/mpd-mpris.nix>
services.mpd-mpris.mpd.network

The network used to dial to the MPD server. Check https://golang.org/pkg/net/#Dial for available values (most common are “tcp” and “unix”)

Type: null or string

Default: null

Declared by:

<home-manager/modules/services/mpd-mpris.nix>
services.mpd-mpris.mpd.password

The password to connect to MPD.

Type: null or string

Default: null

Declared by:

<home-manager/modules/services/mpd-mpris.nix>
services.mpd-mpris.mpd.port

The port number where MPD is listening for connections.

Type: null or 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default: null

Declared by:

<home-manager/modules/services/mpd-mpris.nix>
services.mpd-mpris.mpd.useLocal

Whether to configure for the local MPD daemon. If true the network, host, and port settings are ignored.

Type: boolean

Default: config.services.mpd.enable

Declared by:

<home-manager/modules/services/mpd-mpris.nix>
services.mpdris2.enable

Whether to enable mpDris2 the MPD to MPRIS2 bridge.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/mpdris2.nix>
services.mpdris2.package

The mpDris2 package to use.

Type: package

Default: pkgs.mpdris2

Declared by:

<home-manager/modules/services/mpdris2.nix>
services.mpdris2.mpd.host

The address where MPD is listening for connections.

Type: string

Default: "config.services.mpd.network.listenAddress"

Example: "192.168.1.1"

Declared by:

<home-manager/modules/services/mpdris2.nix>
services.mpdris2.mpd.musicDirectory

If set, mpDris2 will use this directory to access music artwork.

Type: null or path

Default: "config.services.mpd.musicDirectory"

Declared by:

<home-manager/modules/services/mpdris2.nix>
services.mpdris2.mpd.password

The password to connect to MPD.

Type: null or string

Default: null

Declared by:

<home-manager/modules/services/mpdris2.nix>
services.mpdris2.mpd.port

The port number where MPD is listening for connections.

Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default: "config.services.mpd.network.port"

Declared by:

<home-manager/modules/services/mpdris2.nix>
services.mpdris2.multimediaKeys

Whether to enable multimedia key support.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/mpdris2.nix>
services.mpdris2.notifications

Whether to enable song change notifications.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/mpdris2.nix>
services.mpris-proxy.enable

Whether to enable a proxy forwarding Bluetooth MIDI controls via MPRIS2 to control media players.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/mpris-proxy.nix>
services.muchsync.remotes

Muchsync remotes to synchronise with.

Type: attribute set of (submodule)

Default: { }

Example:

{
  server = {
    frequency = "*:0/10";
    remote.host = "server.tld";
  };
}

Declared by:

<home-manager/modules/services/muchsync.nix>
services.muchsync.remotes.<name>.frequency

How often to run muchsync. 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/services/muchsync.nix>
services.muchsync.remotes.<name>.local.checkForModifiedFiles

Check for locally modified files. Without this option, muchsync assumes that files in a maildir are never edited.

checkForModifiedFiles disables certain optimizations so as to make muchsync at least check the timestamp on every file, which will detect modified files at the cost of a longer startup time.

This option is useful if your software regularly modifies the contents of mail files (e.g., because you are running offlineimap with “synclabels = yes”).

Type: boolean

Default: false

Declared by:

<home-manager/modules/services/muchsync.nix>
services.muchsync.remotes.<name>.local.importNew

Whether to begin the synchronisation by running notmuch new locally.

Type: boolean

Default: true

Declared by:

<home-manager/modules/services/muchsync.nix>
services.muchsync.remotes.<name>.remote.checkForModifiedFiles

Check for modified files on the remote side. Without this option, muchsync assumes that files in a maildir are never edited.

checkForModifiedFiles disables certain optimizations so as to make muchsync at least check the timestamp on every file, which will detect modified files at the cost of a longer startup time.

This option is useful if your software regularly modifies the contents of mail files (e.g., because you are running offlineimap with “synclabels = yes”).

Type: boolean

Default: false

Declared by:

<home-manager/modules/services/muchsync.nix>
services.muchsync.remotes.<name>.remote.host

Remote SSH host to synchronize with.

Type: string

Declared by:

<home-manager/modules/services/muchsync.nix>
services.muchsync.remotes.<name>.remote.importNew

Whether to begin the synchronisation by running notmuch new on the remote side.

Type: boolean

Default: true

Declared by:

<home-manager/modules/services/muchsync.nix>
services.muchsync.remotes.<name>.remote.muchsyncPath

Specifies the path to muchsync on the server. Ordinarily, muchsync should be in the default PATH on the server so this option is not required. However, this option is useful if you have to install muchsync in a non-standard place or wish to test development versions of the code.

Type: string

Default: "$PATH/muchsync"

Declared by:

<home-manager/modules/services/muchsync.nix>
services.muchsync.remotes.<name>.sshCommand

Specifies a command line to pass to /bin/sh to execute a command on another machine.

Note that because this string is passed to the shell, special characters including spaces may need to be escaped.

Type: string

Default: "ssh -CTaxq"

Declared by:

<home-manager/modules/services/muchsync.nix>
services.muchsync.remotes.<name>.upload

Whether to propagate local changes to the remote.

Type: boolean

Default: true

Declared by:

<home-manager/modules/services/muchsync.nix>
services.network-manager-applet.enable

Whether to enable the Network Manager applet.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/network-manager-applet.nix>
services.nextcloud-client.enable

Whether to enable Nextcloud Client.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/nextcloud-client.nix>
services.nextcloud-client.package

The package to use for the nextcloud client binary.

Type: package

Default: pkgs.nextcloud-client

Declared by:

<home-manager/modules/services/nextcloud-client.nix>
services.nextcloud-client.startInBackground

Whether to start the Nextcloud client in the background.

Type: boolean

Default: false

Declared by:

<home-manager/modules/services/nextcloud-client.nix>
services.notify-osd.enable

Whether to enable notify-osd.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/notify-osd.nix>
services.notify-osd.package

Package containing the notify-osd program.

Type: package

Default: pkgs.notify-osd

Declared by:

<home-manager/modules/services/notify-osd.nix>
services.opensnitch-ui.enable

Whether to enable Opensnitch client.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/opensnitch-ui.nix>
services.osmscout-server.enable

Whether to enable OSM Scout Server.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/osmscout-server.nix>
services.osmscout-server.package

The osmscout-server package to use.

Type: package

Default: pkgs.osmscout-server

Declared by:

<home-manager/modules/services/osmscout-server.nix>
services.osmscout-server.network.listenAddress

The address for the server to listen on.

Type: string

Default: "127.0.0.1"

Declared by:

<home-manager/modules/services/osmscout-server.nix>
services.osmscout-server.network.port

The TCP port on which the server will listen.

Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default: 8553

Declared by:

<home-manager/modules/services/osmscout-server.nix>
services.osmscout-server.network.startWhenNeeded

Enable systemd socket activation.

Type: boolean

Default: true

Declared by:

<home-manager/modules/services/osmscout-server.nix>
services.owncloud-client.enable

Whether to enable Owncloud Client.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/owncloud-client.nix>
services.owncloud-client.package

The owncloud-client package to use.

Type: package

Default: pkgs.owncloud-client

Declared by:

<home-manager/modules/services/owncloud-client.nix>
services.pantalaimon.enable

Whether to enable Pantalaimon, an E2EE aware proxy daemon for matrix clients.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/pantalaimon.nix>
services.pantalaimon.package

Package providing the pantalaimon executable to use.

Type: package

Default: pkgs.pantalaimon

Declared by:

<home-manager/modules/services/pantalaimon.nix>
services.pantalaimon.settings

Configuration written to $XDG_CONFIG_HOME/pantalaimon/pantalaimon.conf.

See https://github.com/matrix-org/pantalaimon/blob/master/docs/manpantalaimon.5.md or pantalaimon(5) for options.

Type: attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))

Default: { }

Example:

{
  Default = {
    LogLevel = "Debug";
    SSL = true;
  };
  local-matrix = {
    Homeserver = "https://matrix.org";
    ListenAddress = "127.0.0.1";
    ListenPort = 8008;
  };
}

Declared by:

<home-manager/modules/services/pantalaimon.nix>
services.parcellite.enable

Whether to enable Parcellite.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/parcellite.nix>
services.parcellite.package

Parcellite derivation to use.

Type: package

Default: pkgs.parcellite

Example: pkgs.clipit

Declared by:

<home-manager/modules/services/parcellite.nix>
services.parcellite.extraOptions

Command line arguments passed to Parcellite.

Type: list of string

Default: [ ]

Example:

[
  "--no-icon"
]

Declared by:

<home-manager/modules/services/parcellite.nix>
services.pass-secret-service.enable

Whether to enable Pass libsecret service.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/pass-secret-service.nix>
services.pass-secret-service.package

The pass-secret-service package to use.

Type: package

Default: pkgs.pass-secret-service

Declared by:

<home-manager/modules/services/pass-secret-service.nix>
services.pass-secret-service.storePath

Absolute path to password store. Defaults to $HOME/.password-store if the programs.password-store module is not enabled, and programs.password-store.settings.PASSWORD_STORE_DIR if it is.

Type: null or string

Default: "$HOME/.password-store"

Example: "/home/user/.local/share/password-store"

Declared by:

<home-manager/modules/services/pass-secret-service.nix>
services.pasystray.enable

Whether to enable PulseAudio system tray.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/pasystray.nix>
services.pasystray.extraOptions

Extra command-line arguments to pass to pasystray.

Type: list of string

Default: [ ]

Declared by:

<home-manager/modules/services/pasystray.nix>
services.pbgopy.enable

Whether to enable pbgopy.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/pbgopy.nix>
services.pbgopy.cache.ttl

The TTL for the cache. Use "0s" to disable it.

Type: string

Default: "24h"

Example: "10m"

Declared by:

<home-manager/modules/services/pbgopy.nix>
services.pbgopy.httpAuth

Basic HTTP authentication’s username and password. Both the username and password are escaped.

Type: null or string

Default: null

Example: "user:pass"

Declared by:

<home-manager/modules/services/pbgopy.nix>
services.pbgopy.port

The port to host the pbgopy server on.

Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default: 9090

Example: 8080

Declared by:

<home-manager/modules/services/pbgopy.nix>
services.picom.enable

Whether to enable Picom X11 compositor.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/picom.nix>
services.picom.package

Picom derivation to use.

Type: package

Default: pkgs.picom

Example: pkgs.picom

Declared by:

<home-manager/modules/services/picom.nix>
services.picom.activeOpacity

Opacity of active windows.

Type: integer or floating point number between 0 and 1 (both inclusive)

Default: 1.0

Example: 0.8

Declared by:

<home-manager/modules/services/picom.nix>
services.picom.backend

Backend to use: egl, glx, xrender or xr_glx_hybrid.

Type: one of “egl”, “glx”, “xrender”, “xr_glx_hybrid”

Default: "xrender"

Declared by:

<home-manager/modules/services/picom.nix>
services.picom.extraArgs

Extra arguments to be passed to the picom executable.

Type: list of string

Default: [ ]

Example: [ "--legacy-backends" ]

Declared by:

<home-manager/modules/services/picom.nix>
services.picom.fade

Fade windows in and out.

Type: boolean

Default: false

Declared by:

<home-manager/modules/services/picom.nix>
services.picom.fadeDelta

Time between fade animation step (in ms).

Type: positive integer, meaning >0

Default: 10

Example: 5

Declared by:

<home-manager/modules/services/picom.nix>
services.picom.fadeExclude

List of conditions of windows that should not be faded. See picom(1) man page for more examples.

Type: list of string

Default: [ ]

Example:

[
  "window_type *= 'menu'"
  "name ~= 'Firefox$'"
  "focused = 1"
]

Declared by:

<home-manager/modules/services/picom.nix>
services.picom.fadeSteps

Opacity change between fade steps (in and out).

Type: pair of integer or floating point number between 0.01 and 1 (both inclusive)

Default:

[
  0.028
  0.03
]

Example:

[
  0.04
  0.04
]

Declared by:

<home-manager/modules/services/picom.nix>
services.picom.inactiveOpacity

Opacity of inactive windows.

Type: integer or floating point number between 0.1 and 1 (both inclusive)

Default: 1.0

Example: 0.8

Declared by:

<home-manager/modules/services/picom.nix>
services.picom.menuOpacity

Opacity of dropdown and popup menu.

Type: integer or floating point number between 0 and 1 (both inclusive)

Default: 1.0

Example: 0.8

Declared by:

<home-manager/modules/services/picom.nix>
services.picom.opacityRules

Rules that control the opacity of windows, in format PERCENT:PATTERN.

Type: list of string

Default: [ ]

Example:

[
  "95:class_g = 'URxvt' && !_NET_WM_STATE@:32a"
  "0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
]

Declared by:

<home-manager/modules/services/picom.nix>
services.picom.settings

Picom settings. Use this option to configure Picom settings not exposed in a NixOS option or to bypass one. For the available options see the CONFIGURATION FILES section at picom(1).

Type: libconfig configuration. The format consists of an attributes set (called a group) of settings. Each setting can be a scalar type (boolean, integer, floating point number or string), a list of scalars or a group itself

Default: { }

Example:

blur =
  { method = "gaussian";
    size = 10;
    deviation = 5.0;
  };

Declared by:

<home-manager/modules/services/picom.nix>
services.picom.shadow

Draw window shadows.

Type: boolean

Default: false

Declared by:

<home-manager/modules/services/picom.nix>
services.picom.shadowExclude

List of conditions of windows that should have no shadow. See picom(1) man page for more examples.

Type: list of string

Default: [ ]

Example:

[
  "window_type *= 'menu'"
  "name ~= 'Firefox$'"
  "focused = 1"
]

Declared by:

<home-manager/modules/services/picom.nix>
services.picom.shadowOffsets

Left and right offset for shadows (in pixels).

Type: pair of signed integer

Default:

[
  -15
  -15
]

Example:

[
  -10
  -15
]

Declared by:

<home-manager/modules/services/picom.nix>
services.picom.shadowOpacity

Window shadows opacity.

Type: integer or floating point number between 0 and 1 (both inclusive)

Default: 0.75

Example: 0.8

Declared by:

<home-manager/modules/services/picom.nix>
services.picom.vSync

Enable vertical synchronization.

Type: boolean

Default: false

Declared by:

<home-manager/modules/services/picom.nix>
services.picom.wintypes

Rules for specific window types.

Type: attribute set

Default:

{
  popup_menu = { opacity = config.services.picom.menuOpacity; };
  dropdown_menu = { opacity = config.services.picom.menuOpacity; };
}

Example: { }

Declared by:

<home-manager/modules/services/picom.nix>
services.plan9port.fontsrv.enable

Whether to enable the Plan 9 file system access to host fonts.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/plan9port.nix>
services.plan9port.plumber.enable

Whether to enable the Plan 9 file system for interprocess messaging.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/plan9port.nix>
services.playerctld.enable

Whether to enable playerctld daemon.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/playerctld.nix>
services.playerctld.package

The playerctl package to use.

Type: package

Default: pkgs.playerctl

Declared by:

<home-manager/modules/services/playerctld.nix>
services.plex-mpv-shim.enable

Whether to enable Plex mpv shim.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/plex-mpv-shim.nix>
services.plex-mpv-shim.package

The package to use for the Plex mpv shim.

Type: package

Default: pkgs.plex-mpv-shim

Declared by:

<home-manager/modules/services/plex-mpv-shim.nix>
services.plex-mpv-shim.settings

Configuration written to $XDG_CONFIG_HOME/plex-mpv-shim/config.json. See https://github.com/iwalton3/plex-mpv-shim/blob/master/README.md for the configuration documentation.

Type: JSON value

Default: { }

Example:

{
  adaptive_transcode = false;
  allow_http = false;
  always_transcode = false;
  audio_ac3passthrough = false;
  audio_dtspassthrough = false;
  auto_play = true;
  auto_transcode = true;
}

Declared by:

<home-manager/modules/services/plex-mpv-shim.nix>
services.podman.enable

Whether to enable Podman, a daemonless container engine.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/podman-linux>
services.podman.enableTypeChecks

Whether to enable type checks for podman quadlets.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/podman-linux/options.nix>
services.podman.package

The podman package to use.

Type: package

Default: pkgs.podman

Declared by:

<home-manager/modules/services/podman-linux/options.nix>
services.podman.autoUpdate.enable

Automatically update the podman images.

Type: boolean

Default: false

Declared by:

<home-manager/modules/services/podman-linux/services.nix>
services.podman.autoUpdate.onCalendar

The systemd OnCalendar expression for the update. See systemd.time(7) for a description of the format.

Type: string

Default: "Sun *-*-* 00:00"

Declared by:

<home-manager/modules/services/podman-linux/services.nix>
services.podman.containers

Defines Podman container quadlet configurations.

Type: attribute set of (submodule)

Default: { }

Declared by:

<home-manager/modules/services/podman-linux/containers.nix>
services.podman.containers.<name>.addCapabilities

The capabilities to add to the container.

Type: list of string

Default: [ ]

Example:

[
  "CAP_DAC_OVERRIDE"
  "CAP_IPC_OWNER"
]

Declared by:

<home-manager/modules/services/podman-linux/containers.nix>
services.podman.containers.<name>.autoStart

Whether to start the container on boot (requires user lingering).

Type: boolean

Default: true

Declared by:

<home-manager/modules/services/podman-linux/containers.nix>
services.podman.containers.<name>.autoUpdate

The autoupdate policy for the container.

Type: one of <null>, “registry”, “local”

Default: null

Example: "registry"

Declared by:

<home-manager/modules/services/podman-linux/containers.nix>
services.podman.containers.<name>.description

The description of the container.

Type: null or string

Default: null

Example: "My Container"

Declared by:

<home-manager/modules/services/podman-linux/containers.nix>
services.podman.containers.<name>.devices

The devices to mount into the container

Type: list of string

Default: [ ]

Example:

[
  "/dev/<host>:/dev/<container>"
]

Declared by:

<home-manager/modules/services/podman-linux/containers.nix>
services.podman.containers.<name>.dropCapabilities

The capabilities to drop from the container.

Type: list of string

Default: [ ]

Example:

[
  "CAP_DAC_OVERRIDE"
  "CAP_IPC_OWNER"
]

Declared by:

<home-manager/modules/services/podman-linux/containers.nix>
services.podman.containers.<name>.entrypoint

The container entrypoint.

Type: null or string

Default: null

Example: "/foo.sh"

Declared by:

<home-manager/modules/services/podman-linux/containers.nix>
services.podman.containers.<name>.environment

Environment variables to set in the container.

Type: attribute set of (null or boolean or signed integer or string or path or list of (null or boolean or signed integer or string or path))

Default: { }

Example:

{
  VAR1 = "0:100";
  VAR2 = true;
  VAR3 = 5;
}

Declared by:

<home-manager/modules/services/podman-linux/containers.nix>
services.podman.containers.<name>.environmentFile

Paths to files containing container environment variables.

Type: list of string

Default: [ ]

Example:

[
  "/etc/environment"
  "/etc/other-env"
]

Declared by:

<home-manager/modules/services/podman-linux/containers.nix>
services.podman.containers.<name>.exec

The command to run after the container start.

Type: null or string

Default: null

Example: "sleep inf"

Declared by:

<home-manager/modules/services/podman-linux/containers.nix>
services.podman.containers.<name>.extraConfig

INI sections and values to populate the Container Quadlet.

Type: attribute set of attribute set of ((attribute set of (null or boolean or signed integer or string or path or list of (null or boolean or signed integer or string or path))) or list of (null or boolean or signed integer or string or path) or null or boolean or signed integer or string or path)

Default: { }

Example:

{
  Container = {
    User = 1000;
  };
  Service = {
    TimeoutStartSec = 15;
  };
}

Declared by:

<home-manager/modules/services/podman-linux/containers.nix>
services.podman.containers.<name>.extraPodmanArgs

Extra arguments to pass to the podman run command.

Type: list of string

Default: [ ]

Example:

[
  "--security-opt=no-new-privileges"
  "--security-opt=seccomp=unconfined"
]

Declared by:

<home-manager/modules/services/podman-linux/containers.nix>
services.podman.containers.<name>.group

The group ID inside the container.

Type: null or signed integer or string

Default: null

Declared by:

<home-manager/modules/services/podman-linux/containers.nix>
services.podman.containers.<name>.image

The container image.

Type: string

Example: "registry.access.redhat.com/ubi9-minimal:latest"

Declared by:

<home-manager/modules/services/podman-linux/containers.nix>
services.podman.containers.<name>.ip4

Set an IPv4 address for the container.

Type: null or string

Default: null

Declared by:

<home-manager/modules/services/podman-linux/containers.nix>
services.podman.containers.<name>.ip6

Set an IPv6 address for the container.

Type: null or string

Default: null

Declared by:

<home-manager/modules/services/podman-linux/containers.nix>
services.podman.containers.<name>.labels

The labels to apply to the container.

Type: attribute set of string

Default: { }

Example:

{
  app = "myapp";
  some-label = "somelabel";
}

Declared by:

<home-manager/modules/services/podman-linux/containers.nix>
services.podman.containers.<name>.network

The network mode or network/s to connect the container to. Equivalent to podman run --network=<option>.

Type: string or list of string

Default: [ ]

Example: "host" or "bridge_network_1" or [ "bridge_network_1" "bridge_network_2" ]

Declared by:

<home-manager/modules/services/podman-linux/containers.nix>
services.podman.containers.<name>.networkAlias

Network aliases for the container.

Type: list of string

Default: [ ]

Example:

[
  "mycontainer"
  "web"
]

Declared by:

<home-manager/modules/services/podman-linux/containers.nix>
services.podman.containers.<name>.ports

A mapping of ports between host and container

Type: list of string

Default: [ ]

Example:

[
  "8080:80"
  "8443:443"
]

Declared by:

<home-manager/modules/services/podman-linux/containers.nix>
services.podman.containers.<name>.user

The user ID inside the container.

Type: null or signed integer or string

Default: null

Declared by:

<home-manager/modules/services/podman-linux/containers.nix>
services.podman.containers.<name>.userNS

Use a user namespace for the container.

Type: null or string

Default: null

Declared by:

<home-manager/modules/services/podman-linux/containers.nix>
services.podman.containers.<name>.volumes

The volumes to mount into the container.

Type: list of string

Default: [ ]

Example:

[
  "/tmp:/tmp"
  "/var/run/test.secret:/etc/secret:ro"
]

Declared by:

<home-manager/modules/services/podman-linux/containers.nix>
services.podman.networks

Defines Podman network quadlet configurations.

Type: attribute set of (submodule)

Default: { }

Declared by:

<home-manager/modules/services/podman-linux/networks.nix>
services.podman.networks.<name>.autoStart

Whether to start the network on boot (requires user lingering).

Type: boolean

Default: true

Declared by:

<home-manager/modules/services/podman-linux/networks.nix>
services.podman.networks.<name>.description

The description of the network.

Type: null or string

Default: null

Example: "My Network"

Declared by:

<home-manager/modules/services/podman-linux/networks.nix>
services.podman.networks.<name>.driver

The network driver to use.

Type: null or string

Default: null

Example: "bridge"

Declared by:

<home-manager/modules/services/podman-linux/networks.nix>
services.podman.networks.<name>.extraConfig

INI sections and values to populate the Network Quadlet

Type: attribute set of attribute set of ((attribute set of (null or boolean or signed integer or string or path or list of (null or boolean or signed integer or string or path))) or list of (null or boolean or signed integer or string or path) or null or boolean or signed integer or string or path)

Default: { }

Example:

{
  Network = {
    ContainerConfModule = "/etc/nvd.conf";
  };
  Service = {
    TimeoutStartSec = 30;
  };
}

Declared by:

<home-manager/modules/services/podman-linux/networks.nix>
services.podman.networks.<name>.extraPodmanArgs

Extra arguments to pass to the podman network create command.

Type: list of string

Default: [ ]

Example:

[
  "--dns=192.168.55.1"
  "--ipam-driver"
]

Declared by:

<home-manager/modules/services/podman-linux/networks.nix>
services.podman.networks.<name>.gateway

The gateway IP to use for the network.

Type: null or string

Default: null

Example: "192.168.20.1"

Declared by:

<home-manager/modules/services/podman-linux/networks.nix>
services.podman.networks.<name>.internal

Whether the network should be internal

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/services/podman-linux/networks.nix>
services.podman.networks.<name>.labels

The labels to apply to the network.

Type: attribute set of string

Default: { }

Example:

{
  app = "myapp";
  some-label = "somelabel";
}

Declared by:

<home-manager/modules/services/podman-linux/networks.nix>
services.podman.networks.<name>.subnet

The subnet to use for the network.

Type: null or string

Default: null

Example: "192.168.20.0/24"

Declared by:

<home-manager/modules/services/podman-linux/networks.nix>
services.polybar.enable

Whether to enable Polybar status bar.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/polybar.nix>
services.polybar.package

Polybar package to install.

Type: package

Default: pkgs.polybar

Example:

pkgs.polybar.override {
  i3GapsSupport = true;
  alsaSupport = true;
  iwSupport = true;
  githubSupport = true;
}

Declared by:

<home-manager/modules/services/polybar.nix>
services.polybar.config

Polybar configuration. Can be either path to a file, or set of attributes that will be used to create the final configuration. See also services.polybar.settings for a more nix-friendly format.

Type: (attribute set of attribute set of (string or boolean or signed integer or list of string)) or path convertible to it

Default: { }

Example:

{
  "bar/top" = {
    monitor = "\${env:MONITOR:eDP1}";
    width = "100%";
    height = "3%";
    radius = 0;
    modules-center = "date";
  };

  "module/date" = {
    type = "internal/date";
    internal = 5;
    date = "%d.%m.%y";
    time = "%H:%M";
    label = "%time%  %date%";
  };
}

Declared by:

<home-manager/modules/services/polybar.nix>
services.polybar.extraConfig

Additional configuration to add.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  [module/date]
  type = internal/date
  interval = 5
  date = "%d.%m.%y"
  time = %H:%M
  format-prefix-foreground = \''${colors.foreground-alt}
  label = %time%  %date%
''

Declared by:

<home-manager/modules/services/polybar.nix>
services.polybar.script

This script will be used to start the polybars. Set all necessary environment variables here and start all bars. It can be assumed that polybar executable is in the PATH.

Note, this script must start all bars in the background and then terminate.

Type: strings concatenated with “\n”

Example: "polybar bar &"

Declared by:

<home-manager/modules/services/polybar.nix>
services.polybar.settings

Polybar configuration. This takes a nix attrset and converts it to the strange data format that polybar uses. Each entry will be converted to a section in the output file. Several things are treated specially: nested keys are converted to dash-separated keys; the special text key is ignored as a nested key, to allow mixing different levels of nesting; and lists are converted to polybar’s foo-0, foo-1, ... format.

For example:

"module/volume" = {
  type = "internal/pulseaudio";
  format.volume = "<ramp-volume> <label-volume>";
  label.muted.text = "🔇";
  label.muted.foreground = "#666";
  ramp.volume = ["🔈" "🔉" "🔊"];
  click.right = "pavucontrol &";
}

becomes:

[module/volume]
type=internal/pulseaudio
format-volume=<ramp-volume> <label-volume>
label-muted=🔇
label-muted-foreground=#666
ramp-volume-0=🔈
ramp-volume-1=🔉
ramp-volume-2=🔊
click-right=pavucontrol &

Type: attribute set of attribute sets

Default: { }

Example:

{
  "module/volume" = {
    type = "internal/pulseaudio";
    format.volume = "<ramp-volume> <label-volume>";
    label.muted.text = "🔇";
    label.muted.foreground = "#666";
    ramp.volume = ["🔈" "🔉" "🔊"];
    click.right = "pavucontrol &";
  };
}

Declared by:

<home-manager/modules/services/polybar.nix>
services.poweralertd.enable

Whether to enable the Upower-powered power alertd.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/poweralertd.nix>
services.poweralertd.extraArgs

Extra command line arguments to pass to poweralertd.

Type: list of string

Default: [ ]

Example:

[
  "-s"
  "-S"
]

Declared by:

<home-manager/modules/services/poweralertd.nix>
services.psd.enable

Whether to enable Profile-sync-daemon service.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/psd.nix>
services.psd.resyncTimer

The amount of time to wait before syncing browser profiles back to the disk.

Takes a systemd time span, see systemd.time(7). The time unit defaults to seconds if omitted.

Type: string

Default: "1h"

Example: "1h 30min"

Declared by:

<home-manager/modules/services/psd.nix>
services.pueue.enable

Whether to enable Pueue, CLI process scheduler and manager.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/pueue.nix>
services.pueue.package

The pueue package to use.

Type: package

Default: pkgs.pueue

Declared by:

<home-manager/modules/services/pueue.nix>
services.pueue.settings

Configuration written to $XDG_CONFIG_HOME/pueue/pueue.yml.

Type: YAML value

Default: { }

Example:

{
  daemon = {
    default_parallel_tasks = 2;
  };
}

Declared by:

<home-manager/modules/services/pueue.nix>
services.pulseeffects.enable

Whether to enable Pulseeffects daemon Note, it is necessary to add

programs.dconf.enable = true;

to your system configuration for the daemon to work correctly.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/pulseeffects.nix>
services.pulseeffects.package

Pulseeffects package to use.

Type: package

Default: pkgs.pulseeffects-legacy

Declared by:

<home-manager/modules/services/pulseeffects.nix>
services.pulseeffects.preset

Which preset to use when starting pulseeffects. Will likely need to launch pulseeffects to initially create preset.

Type: string

Default: ""

Declared by:

<home-manager/modules/services/pulseeffects.nix>
services.random-background.enable

Whether to enable random desktop background.

Note, if you are using NixOS and have set up a custom desktop manager session for Home Manager, then the session configuration must have the bgSupport option set to true or the background image set by this module may be overwritten.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/random-background.nix>
services.random-background.enableXinerama

Will place a separate image per screen when enabled, otherwise a single image will be stretched across all screens.

Type: boolean

Default: true

Declared by:

<home-manager/modules/services/random-background.nix>
services.random-background.display

Display background images according to this option.

Type: one of “center”, “fill”, “max”, “scale”, “tile”

Default: "fill"

Declared by:

<home-manager/modules/services/random-background.nix>
services.random-background.imageDirectory

The directory of images from which a background should be chosen. Should be formatted in a way understood by systemd, e.g., ‘%h’ is the home directory.

Type: string

Example: "%h/backgrounds"

Declared by:

<home-manager/modules/services/random-background.nix>
services.random-background.interval

The duration between changing background image, set to null to only set background when logging in. Should be formatted as a duration understood by systemd.

Type: null or string

Default: null

Example: "1h"

Declared by:

<home-manager/modules/services/random-background.nix>
services.recoll.enable

Whether to enable Recoll file index service.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/recoll.nix>
services.recoll.package

Package providing the recoll binary.

Type: package

Default: pkgs.recoll

Example: (pkgs.recoll.override { withGui = false; })

Declared by:

<home-manager/modules/services/recoll.nix>
services.recoll.configDir

The directory to contain Recoll configuration files. This will be set as RECOLL_CONFDIR.

Type: string

Default: ${config.home.homeDirectory}/.recoll

Example: ${config.xdg.configHome}/recoll

Declared by:

<home-manager/modules/services/recoll.nix>
services.recoll.settings

The configuration to be written at $RECOLL_CONFDIR/recoll.conf.

See recoll.conf(5) for more details about the configuration.

Type: attribute set of (Recoll config value)

Default: { }

Example:

{
  nocjk = true;
  loglevel = 5;
  topdirs = [ "~/Downloads" "~/Documents" "~/projects" ];

  "~/Downloads" = {
    "skippedNames+" = [ "*.iso" ];
  };

  "~/projects" = {
    "skippedNames+" = [ "node_modules" "target" "result" ];
  };
}

Declared by:

<home-manager/modules/services/recoll.nix>
services.recoll.startAt

When or how often the periodic update should run. Must be the format described from systemd.time(7).

Type: string

Default: "hourly"

Example: "00/2:00"

Declared by:

<home-manager/modules/services/recoll.nix>
services.redshift.enable

Whether to enable Redshift.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/redshift-gammastep/redshift.nix>
services.redshift.enableVerboseLogging

Whether to enable verbose service logging.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/redshift-gammastep/redshift.nix>
services.redshift.package

Redshift derivation to use.

Type: package

Default: pkgs.redshift

Declared by:

<home-manager/modules/services/redshift-gammastep/redshift.nix>
services.redshift.dawnTime

Set the time interval of dawn manually. The times must be specified as HH:MM in 24-hour format.

Type: null or string

Default: null

Example: "6:00-7:45"

Declared by:

<home-manager/modules/services/redshift-gammastep/redshift.nix>
services.redshift.duskTime

Set the time interval of dusk manually. The times must be specified as HH:MM in 24-hour format.

Type: null or string

Default: null

Example: "18:35-20:15"

Declared by:

<home-manager/modules/services/redshift-gammastep/redshift.nix>
services.redshift.latitude

Your current latitude, between -90.0 and 90.0. Must be provided along with longitude.

Type: null or string or floating point number

Default: null

Declared by:

<home-manager/modules/services/redshift-gammastep/redshift.nix>
services.redshift.longitude

Your current longitude, between -180.0 and 180.0. Must be provided along with latitude.

Type: null or string or floating point number

Default: null

Declared by:

<home-manager/modules/services/redshift-gammastep/redshift.nix>
services.redshift.provider

The location provider to use for determining your location. If set to manual you must also provide latitude/longitude. If set to geoclue2, you must also enable the global geoclue2 service.

Type: one of “manual”, “geoclue2”

Default: "manual"

Declared by:

<home-manager/modules/services/redshift-gammastep/redshift.nix>
services.redshift.settings

The configuration to pass to Redshift. Available options for Redshift described in redshift(1).

Type: attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))

Default: { }

Example:

{
  redshift = {
    adjustment-method = "randr";
  };
  randr = {
    screen = 0;
  };
};

Declared by:

<home-manager/modules/services/redshift-gammastep/redshift.nix>
services.redshift.temperature.day

Colour temperature to use during the day, between 1000 and 25000 K.

Type: signed integer

Default: 5500

Declared by:

<home-manager/modules/services/redshift-gammastep/redshift.nix>
services.redshift.temperature.night

Colour temperature to use at night, between 1000 and 25000 K.

Type: signed integer

Default: 3700

Declared by:

<home-manager/modules/services/redshift-gammastep/redshift.nix>
services.redshift.tray

Start the redshift-gtk tray applet.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/redshift-gammastep/redshift.nix>
services.remmina.enable

Whether to enable Remmina.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/remmina.nix>
services.remmina.package

The remmina package to use.

Type: package

Default: pkgs.remmina

Declared by:

<home-manager/modules/services/remmina.nix>
services.remmina.addRdpMimeTypeAssoc

Whether to enable Remmina RDP file open option.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/services/remmina.nix>
services.remmina.systemdService.enable

Whether to enable systemd Remmina service.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/services/remmina.nix>
services.remmina.systemdService.startupFlags

Startup flags documented in the manpage to run at service startup.

Type: list of string

Default:

[
  "--icon"
]

Declared by:

<home-manager/modules/services/remmina.nix>
services.rsibreak.enable

Whether to enable rsibreak.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/rsibreak.nix>
services.safeeyes.enable

Whether to enable The Safe Eyes OSGI service.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/safeeyes.nix>
services.safeeyes.package

The safeeyes package to use.

Type: package

Default: pkgs.safeeyes

Declared by:

<home-manager/modules/services/safeeyes.nix>
services.screen-locker.enable

Whether to enable screen locker for X session.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/screen-locker.nix>
services.screen-locker.inactiveInterval

Inactive time interval in minutes after which session will be locked. The minimum is 1 minute, and the maximum is 1 hour. If xautolock.enable is true, it will use this setting. See https://linux.die.net/man/1/xautolock. Otherwise, this will be used with xset to configure the X server’s screensaver timeout.

Type: signed integer

Default: 10

Declared by:

<home-manager/modules/services/screen-locker.nix>
services.screen-locker.lockCmd

Locker command to run.

Type: string

Example: "\${pkgs.i3lock}/bin/i3lock -n -c 000000"

Declared by:

<home-manager/modules/services/screen-locker.nix>
services.screen-locker.xautolock.enable

Use xautolock for time-based locking.

Type: boolean

Default: true

Declared by:

<home-manager/modules/services/screen-locker.nix>
services.screen-locker.xautolock.package

Package providing the xautolock binary.

Type: package

Default: <derivation xautolock-2.2-7-ga23dd5c>

Declared by:

<home-manager/modules/services/screen-locker.nix>
services.screen-locker.xautolock.detectSleep

Whether to reset xautolock timers when awaking from sleep. No effect if xautolock.enable is false.

Type: boolean

Default: true

Declared by:

<home-manager/modules/services/screen-locker.nix>
services.screen-locker.xautolock.extraOptions

Extra command-line arguments to pass to xautolock. No effect if xautolock.enable is false.

Type: list of string

Default: [ ]

Declared by:

<home-manager/modules/services/screen-locker.nix>
services.screen-locker.xss-lock.package

Package providing the xss-lock binary.

Type: package

Default: <derivation xss-lock-unstable-2018-05-31>

Declared by:

<home-manager/modules/services/screen-locker.nix>
services.screen-locker.xss-lock.extraOptions

Extra command-line arguments to pass to xss-lock.

Type: list of string

Default: [ ]

Declared by:

<home-manager/modules/services/screen-locker.nix>
services.screen-locker.xss-lock.screensaverCycle

The X server’s screensaver cycle value expressed as seconds. This will be used with xset to configure the cycle along with timeout.

Type: signed integer

Default: 600

Declared by:

<home-manager/modules/services/screen-locker.nix>
services.sctd.enable

Whether to enable sctd.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/sctd.nix>
services.sctd.baseTemperature

The base color temperature used by sctd, which should be between 2500 and 9000. See sctd(1) for more details.

Type: integer between 2500 and 9000 (both inclusive)

Default: 4500

Declared by:

<home-manager/modules/services/sctd.nix>
services.signaturepdf.enable

Whether to enable signaturepdf; signing, organizing, editing metadatas or compressing PDFs.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/signaturepdf.nix>
services.signaturepdf.package

signaturepdf derivation to use.

Type: package

Default: "pkgs.signaturepdf"

Declared by:

<home-manager/modules/services/signaturepdf.nix>
services.signaturepdf.extraConfig

Additional configuration optional.

Type: attribute set of (string or signed integer or boolean or floating point number)

Default: { }

Example:

{
  max_file_uploads = "201";
  post_max_size = "24M";
  upload_max_filesize = "24M";
}

Declared by:

<home-manager/modules/services/signaturepdf.nix>
services.signaturepdf.port

The port on which the application runs

Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default: 8080

Example: 8081

Declared by:

<home-manager/modules/services/signaturepdf.nix>
services.snixembed.enable

Whether to enable snixembed: proxy StatusNotifierItems as XEmbedded systemtray-spec icons.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/snixembed.nix>
services.snixembed.package

The snixembed package to use.

Type: package

Default: pkgs.snixembed

Declared by:

<home-manager/modules/services/snixembed.nix>
services.snixembed.beforeUnits

List of other units that should be started after snixembed.

Type: list of string

Default: [ ]

Example:

[
  "safeeyes.service"
]

Declared by:

<home-manager/modules/services/snixembed.nix>
services.spotifyd.enable

Whether to enable SpotifyD connect.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/spotifyd.nix>
services.spotifyd.package

The spotifyd package to use. Can be used to specify extensions.

Type: package

Default: pkgs.spotifyd

Example: (pkgs.spotifyd.override { withKeyring = true; })

Declared by:

<home-manager/modules/services/spotifyd.nix>
services.spotifyd.settings

Configuration for spotifyd

Type: TOML value

Default: { }

Example:

{
  global = {
    username = "Alex";
    password = "foo";
    device_name = "nix";
  };
}

Declared by:

<home-manager/modules/services/spotifyd.nix>
services.ssh-agent.enable

Whether to enable OpenSSH private key agent.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/ssh-agent.nix>
services.stalonetray.enable

Whether to enable Stalonetray system tray.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/stalonetray.nix>
services.stalonetray.package

The package to use for the Stalonetray binary.

Type: package

Default: pkgs.stalonetray

Example: pkgs.stalonetray

Declared by:

<home-manager/modules/services/stalonetray.nix>
services.stalonetray.config

Stalonetray configuration as a set of attributes.

Type: attribute set of (null or string or boolean or signed integer)

Default: { }

Example:

{
  background = "#cccccc";
  decorations = null;
  geometry = "3x1-600+0";
  icon_size = 30;
  sticky = true;
}

Declared by:

<home-manager/modules/services/stalonetray.nix>
services.stalonetray.extraConfig

Additional configuration lines for stalonetrayrc.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  geometry 3x1-600+0
  decorations none
  icon_size 30
  sticky true
  background "#cccccc"
''

Declared by:

<home-manager/modules/services/stalonetray.nix>
services.status-notifier-watcher.enable

Whether to enable Status Notifier Watcher.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/status-notifier-watcher.nix>
services.status-notifier-watcher.package

The package to use for the status notifier watcher binary.

Type: package

Default: pkgs.haskellPackages.status-notifier-item

Example: pkgs.haskellPackages.status-notifier-item

Declared by:

<home-manager/modules/services/status-notifier-watcher.nix>
services.swayidle.enable

Whether to enable idle manager for Wayland.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/swayidle.nix>
services.swayidle.package

Swayidle package to install.

Type: package

Default: pkgs.swayidle

Declared by:

<home-manager/modules/services/swayidle.nix>
services.swayidle.events

Run command on occurrence of a event.

Type: list of (submodule)

Default: [ ]

Example:

[
  { event = "before-sleep"; command = "${pkgs.swaylock}/bin/swaylock -fF"; }
  { event = "lock"; command = "lock"; }
]

Declared by:

<home-manager/modules/services/swayidle.nix>
services.swayidle.events.*.command

Command to run when event occurs.

Type: string

Declared by:

<home-manager/modules/services/swayidle.nix>
services.swayidle.events.*.event

Event name.

Type: one of “before-sleep”, “after-resume”, “lock”, “unlock”

Declared by:

<home-manager/modules/services/swayidle.nix>
services.swayidle.extraArgs

Extra arguments to pass to swayidle.

Type: list of string

Default:

[
  "-w"
]

Declared by:

<home-manager/modules/services/swayidle.nix>
services.swayidle.systemdTarget

Systemd target to bind to.

Type: string

Default: "graphical-session.target"

Example: "sway-session.target"

Declared by:

<home-manager/modules/services/swayidle.nix>
services.swayidle.timeouts

List of commands to run after idle timeout.

Type: list of (submodule)

Default: [ ]

Example:

[
  { timeout = 60; command = "${pkgs.swaylock}/bin/swaylock -fF"; }
  { timeout = 90; command = "${pkgs.systemd}/bin/systemctl suspend"; }
]

Declared by:

<home-manager/modules/services/swayidle.nix>
services.swayidle.timeouts.*.command

Command to run after timeout seconds of inactivity.

Type: string

Declared by:

<home-manager/modules/services/swayidle.nix>
services.swayidle.timeouts.*.resumeCommand

Command to run when there is activity again.

Type: null or string

Default: null

Declared by:

<home-manager/modules/services/swayidle.nix>
services.swayidle.timeouts.*.timeout

Timeout in seconds.

Type: positive integer, meaning >0

Example: 60

Declared by:

<home-manager/modules/services/swayidle.nix>
services.swaync.enable

Whether to enable Swaync notification daemon.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/swaync.nix>
services.swaync.package

The swaynotificationcenter package to use.

Type: package

Default: pkgs.swaynotificationcenter

Declared by:

<home-manager/modules/services/swaync.nix>
services.swaync.settings

Configuration written to $XDG_CONFIG_HOME/swaync/config.json. See https://github.com/ErikReider/SwayNotificationCenter/blob/main/src/configSchema.json for the documentation.

Type: JSON value

Default: { }

Example:

{
  positionX = "right";
  positionY = "top";
  layer = "overlay";
  control-center-layer = "top";
  layer-shell = true;
  cssPriority = "application";
  control-center-margin-top = 0;
  control-center-margin-bottom = 0;
  control-center-margin-right = 0;
  control-center-margin-left = 0;
  notification-2fa-action = true;
  notification-inline-replies = false;
  notification-icon-size = 64;
  notification-body-image-height = 100;
  notification-body-image-width = 200;
};

Declared by:

<home-manager/modules/services/swaync.nix>
services.swaync.style

CSS style of the bar. See https://github.com/ErikReider/SwayNotificationCenter/blob/main/src/style.css for the documentation.

If the value is set to a path literal, then the path will be used as the CSS file.

Type: null or path or strings concatenated with “\n”

Default: null

Example:

''
  .notification-row {
    outline: none;
  }
  
  .notification-row:focus,
  .notification-row:hover {
    background: @noti-bg-focus;
  }
  
  .notification {
    border-radius: 12px;
    margin: 6px 12px;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3), 0 1px 3px 1px rgba(0, 0, 0, 0.7),
      0 2px 6px 2px rgba(0, 0, 0, 0.3);
    padding: 0;
  }
''

Declared by:

<home-manager/modules/services/swaync.nix>
services.swayosd.enable

Whether to enable swayosd, a GTK based on screen display for keyboard shortcuts like caps-lock and volume.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/swayosd.nix>
services.swayosd.package

The swayosd package to use.

Type: package

Default: pkgs.swayosd

Declared by:

<home-manager/modules/services/swayosd.nix>
services.swayosd.display

X display to use.

Type: null or string

Default: null

Example: "eDP-1"

Declared by:

<home-manager/modules/services/swayosd.nix>
services.swayosd.stylePath

Use a custom Stylesheet file instead of looking for one.

Type: null or path

Default: null

Example: "/etc/xdg/swayosd/style.css"

Declared by:

<home-manager/modules/services/swayosd.nix>
services.swayosd.topMargin

OSD margin from top edge (0.5 would be screen center).

Type: null or float between 0.0 and 1.0 (inclusive)

Default: null

Example: 1.0

Declared by:

<home-manager/modules/services/swayosd.nix>
services.sxhkd.enable

Whether to enable simple X hotkey daemon.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/sxhkd.nix>
services.sxhkd.package

Package containing the sxhkd executable.

Type: package

Default: "pkgs.sxhkd"

Declared by:

<home-manager/modules/services/sxhkd.nix>
services.sxhkd.extraConfig

Additional configuration to add.

Type: strings concatenated with “\n”

Default: ""

Example:

super + {_,shift +} {1-9,0}
  i3-msg {workspace,move container to workspace} {1-10}

Declared by:

<home-manager/modules/services/sxhkd.nix>
services.sxhkd.extraOptions

Command line arguments to invoke sxhkd with.

Type: list of string

Default: [ ]

Example: [ "-m 1" ]

Declared by:

<home-manager/modules/services/sxhkd.nix>
services.sxhkd.keybindings

An attribute set that assigns hotkeys to commands.

Type: attribute set of (null or string or path)

Default: { }

Example:

{
  "super + shift + {r,c}" = "i3-msg {restart,reload}";
  "super + {s,w}"         = "i3-msg {stacking,tabbed}";
  "super + F1"            = pkgs.writeShellScript "script" "echo $USER";
}

Declared by:

<home-manager/modules/services/sxhkd.nix>
services.syncthing.enable

Whether to enable Syncthing continuous file synchronization.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/syncthing.nix>
services.syncthing.extraOptions

Extra command-line arguments to pass to syncthing.

Type: list of string

Default: [ ]

Example:

[
  "--gui-apikey=apiKey"
]

Declared by:

<home-manager/modules/services/syncthing.nix>
services.syncthing.tray

Syncthing tray service configuration.

Type: boolean or (submodule)

Default:

{
  enable = false;
}

Declared by:

<home-manager/modules/services/syncthing.nix>
services.systembus-notify.enable

Whether to enable systembus-notify - system bus notification daemon.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/systembus-notify.nix>
services.taffybar.enable

Whether to enable Taffybar.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/taffybar.nix>
services.taffybar.package

The package to use for the Taffybar binary.

Type: package

Default: pkgs.taffybar

Example: pkgs.taffybar

Declared by:

<home-manager/modules/services/taffybar.nix>
services.tahoe-lafs.enable

Whether to enable Tahoe-LAFS.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/tahoe-lafs.nix>
services.taskwarrior-sync.enable

Whether to enable Taskwarrior periodic sync.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/taskwarrior-sync.nix>
services.taskwarrior-sync.package

The taskwarrior package to use.

Type: package

Default: pkgs.taskwarrior

Example: pkgs.taskwarrior3

Declared by:

<home-manager/modules/services/taskwarrior-sync.nix>
services.taskwarrior-sync.frequency

How often to run taskwarrior sync. 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/services/taskwarrior-sync.nix>
services.trayer.enable

Whether to enable trayer, the lightweight GTK2+ systray for UNIX desktops.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/trayer.nix>
services.trayer.package

The package to use for the trayer binary.

Type: package

Default: pkgs.trayer

Example: pkgs.trayer

Declared by:

<home-manager/modules/services/trayer.nix>
services.trayer.settings

Trayer configuration as a set of attributes. Further details can be found in trayer’s README.

SetDockType

boolean (default: true)

SetPartialStrut

boolean (default: true)

align

one of “left”, “right”, “center” (default: "center")

alpha

signed integer (default: 127)

distance

signed integer (default: 0)

distancefrom

one of “left”, “right”, “top”, “bottom” (default: "top")

edge

one of “left”, “right”, “top”, “bottom”, “none” (default: "bottom")

expand

boolean (default: true)

height

signed integer (default: 26)

heighttype

one of “request”, “pixel” (default: "pixel")

iconspacing

signed integer (default: 0)

margin

signed integer (default: 0)

monitor

unsigned integer, meaning >=0, or value “primary” (singular enum) (default: 0)

padding

signed integer (default: 0)

tint

string (default: "0xFFFFFFFF")

transparent

boolean (default: false)

width

signed integer (default: 100)

widthtype

one of “request”, “pixel”, “percent” (default: "percent")

Type: attribute set of (null or string or boolean or signed integer)

Default: { }

Example:

{
  edge = "top";
  padding = 6;
  SetDockType = true;
  tint = "0x282c34";
}

Declared by:

<home-manager/modules/services/trayer.nix>
services.trayscale.enable

Whether to enable An unofficial GUI wrapper around the Tailscale CLI client…

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/trayscale.nix>
services.trayscale.package

The trayscale package to use.

Type: package

Default: pkgs.trayscale

Declared by:

<home-manager/modules/services/trayscale.nix>
services.trayscale.hideWindow

Whether to hide the trayscale window on startup.

Type: boolean

Default: true

Declared by:

<home-manager/modules/services/trayscale.nix>
services.twmn.enable

Whether to enable twmn, a tiling window manager notification daemon.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.duration

The time each notification remains visible, in milliseconds.

Type: unsigned integer, meaning >=0

Default: 3000

Example: 5000

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.extraConfig

Extra configuration options to add to the twmnd config file. See https://github.com/sboli/twmn/blob/master/README.md for details.

Type: attribute set

Default: { }

Example: { main.activation_command = "\${pkgs.hello}/bin/hello"; }

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.host

Host address to listen on for notifications.

Type: string

Default: "127.0.0.1"

Example: "laptop.lan"

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.icons.critical

Path to the critical notifications’ icon.

Type: null or path

Default: null

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.icons.info

Path to the informative notifications’ icon.

Type: null or path

Default: null

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.icons.warning

Path to the warning notifications’ icon.

Type: null or path

Default: null

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.port

UDP port to listen on for notifications.

Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default: 9797

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.screen

Screen number to display notifications on when using a multi-head desktop.

Type: null or signed integer

Default: null

Example: 0

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.soundCommand

Command to execute to play a notification’s sound.

Type: string

Default: ""

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.text.color

Notification’s text color. RGB hex and keywords (e.g. lightgray) are supported.

Type: string

Default: "#999999"

Example: "lightgray"

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.text.font.package

Notification text’s font package. 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/services/twmn.nix>
services.twmn.text.font.family

Notification text’s font family.

Type: string

Default: "Sans"

Example: "Noto Sans"

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.text.font.size

Notification text’s font size.

Type: unsigned integer, meaning >=0

Default: 13

Example: 42

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.text.font.variant

Notification text’s font variant.

Type: one of “oblique”, “italic”, “ultra-light”, “light”, “medium”, “semi-bold”, “bold”, “ultra-bold”, “heavy”, “ultra-condensed”, “extra-condensed”, “condensed”, “semi-condensed”, “semi-expanded”, “expanded”, “extra-expanded”, “ultra-expanded”

Default: "medium"

Example: "heavy"

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.text.maxLength

Maximum length of the text before it is cut and suffixed with “…”. Never cuts if null.

Type: null or (unsigned integer, meaning >=0)

Default: null

Example: 80

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.window.alwaysOnTop

Whether to enable forcing the notification window to always be on top.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.window.animation.bounce.enable

Whether to enable notification bounce when displaying next notification directly.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.window.animation.bounce.duration

The bounce animation duration in milliseconds.

Type: unsigned integer, meaning >=0

Default: 500

Example: 618

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.window.animation.easeIn

Options for the notification appearance’s animation.

Type: submodule

Default: { }

Example:

{
  curve = 19;
  duration = 618;
}

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.window.animation.easeIn.curve

The qt easing-curve animation to use for the animation. See QEasingCurve documentation.

Type: integer between 0 and 40 (both inclusive)

Default: 38

Example: 19

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.window.animation.easeIn.duration

The animation duration in milliseconds.

Type: unsigned integer, meaning >=0

Default: 1000

Example: 618

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.window.animation.easeOut

Options for the notification disappearance’s animation.

Type: submodule

Default: { }

Example:

{
  curve = 19;
  duration = 618;
}

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.window.animation.easeOut.curve

The qt easing-curve animation to use for the animation. See QEasingCurve documentation.

Type: integer between 0 and 40 (both inclusive)

Default: 38

Example: 19

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.window.animation.easeOut.duration

The animation duration in milliseconds.

Type: unsigned integer, meaning >=0

Default: 1000

Example: 618

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.window.color

Notification’s background color. RGB hex and keywords (e.g. lightgray) are supported.

Type: string

Default: "#000000"

Example: "lightgray"

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.window.height

Height of the slide bar. Useful to match your tiling window manager’s bar.

Type: unsigned integer, meaning >=0

Default: 18

Example: 42

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.window.offset.x

Offset of the notification’s slide starting point in pixels on the horizontal axis (positive is rightward).

Type: signed integer

Default: 0

Example: 50

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.window.offset.y

Offset of the notification’s slide starting point in pixels on the vertical axis (positive is upward).

Type: signed integer

Default: 0

Example: -100

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.window.opacity

The notification window’s opacity.

Type: integer between 0 and 100 (both inclusive)

Default: 100

Example: 80

Declared by:

<home-manager/modules/services/twmn.nix>
services.twmn.window.position

Position of the notification slide. The notification will slide in vertically from the border if placed in top_center or bottom_center, horizontally otherwise.

Type: one of “tr”, “top_right”, “tl”, “top_left”, “br”, “bottom_right”, “bl”, “bottom_left”, “tc”, “top_center”, “bc”, “bottom_center”, “c”, “center”

Default: "top_right"

Example: "bottom_left"

Declared by:

<home-manager/modules/services/twmn.nix>
services.udiskie.enable

Whether to enable the udiskie mount daemon.

Note, if you use NixOS then you must add services.udisks2.enable = true to your system configuration. Otherwise mounting will fail because the Udisk2 DBus service is not found.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/udiskie.nix>
services.udiskie.automount

Whether to automatically mount new devices.

Type: boolean

Default: true

Declared by:

<home-manager/modules/services/udiskie.nix>
services.udiskie.notify

Whether to show pop-up notifications.

Type: boolean

Default: true

Declared by:

<home-manager/modules/services/udiskie.nix>
services.udiskie.settings

Configuration written to $XDG_CONFIG_HOME/udiskie/config.yml.

See https://github.com/coldfix/udiskie/blob/master/doc/udiskie.8.txt#configuration for the full list of options.

Type: YAML value

Default: { }

Example:

{
  program_options = {
    udisks_version = 2;
    tray = true;
  };
  icon_names.media = [ "media-optical" ];
}

Declared by:

<home-manager/modules/services/udiskie.nix>
services.udiskie.tray

Whether to display tray icon.

The options are

always

Always show tray icon.

auto

Show tray icon only when there is a device available.

never

Never show tray icon.

Type: one of “always”, “auto”, “never”

Default: "auto"

Declared by:

<home-manager/modules/services/udiskie.nix>
services.unclutter.enable

Whether to enable unclutter.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/unclutter.nix>
services.unclutter.package

unclutter derivation to use.

Type: package

Default: pkgs.unclutter-xfixes

Declared by:

<home-manager/modules/services/unclutter.nix>
services.unclutter.extraOptions

More arguments to pass to the unclutter command.

Type: list of string

Default: [ ]

Example:

[
  "exclude-root"
  "ignore-scrolling"
]

Declared by:

<home-manager/modules/services/unclutter.nix>
services.unclutter.threshold

Minimum number of pixels considered cursor movement.

Type: signed integer

Default: 1

Declared by:

<home-manager/modules/services/unclutter.nix>
services.unclutter.timeout

Number of seconds before the cursor is marked inactive.

Type: signed integer

Default: 1

Declared by:

<home-manager/modules/services/unclutter.nix>
services.unison.enable

Whether to enable Unison synchronisation.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/unison.nix>
services.unison.package

The unison package to use.

Type: package

Default: pkgs.unison

Example: pkgs.unison.override { enableX11 = false; }

Declared by:

<home-manager/modules/services/unison.nix>
services.unison.pairs

Unison root pairs to keep synchronised.

Type: attribute set of (submodule)

Default: { }

Example:

{
  "my-documents" = {
    roots = [
      "/home/user/documents"
      "ssh://remote/documents"
    ];
  };
}

Declared by:

<home-manager/modules/services/unison.nix>
services.unison.pairs.<name>.commandOptions

Additional command line options as a dictionary to pass to the unison program.

Use a list of strings to declare the same option multiple times.

See unison(1) for a list of available options.

Type: attribute set of (string or list of string)

Default:

{
  auto = "true";
  batch = "true";
  log = "false";
  repeat = "watch";
  sshcmd = "\${pkgs.openssh}/bin/ssh";
  ui = "text";
}

Declared by:

<home-manager/modules/services/unison.nix>
services.unison.pairs.<name>.roots

Pair of roots to synchronise.

Type: list of string of length 2

Example:

[
  "/home/user/documents"
  "ssh://remote/documents"
]

Declared by:

<home-manager/modules/services/unison.nix>
services.unison.pairs.<name>.stateDirectory

Unison state directory to use.

Type: path

Default: "$XDG_DATA_HOME/unison"

Declared by:

<home-manager/modules/services/unison.nix>
services.vdirsyncer.enable

Whether to enable vdirsyncer.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/vdirsyncer.nix>
services.vdirsyncer.package

The package to use for the vdirsyncer binary.

Type: package

Default: "pkgs.vdirsyncer"

Example: pkgs.vdirsyncer

Declared by:

<home-manager/modules/services/vdirsyncer.nix>
services.vdirsyncer.configFile

Optional configuration file to link to use instead of the default file ($XDG_CONFIG_HOME/vdirsyncer/config).

Type: null or path

Default: null

Declared by:

<home-manager/modules/services/vdirsyncer.nix>
services.vdirsyncer.frequency

How often to run vdirsyncer. 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/services/vdirsyncer.nix>
services.vdirsyncer.verbosity

Whether vdirsyncer should produce verbose output.

Type: null or one of “CRITICAL”, “ERROR”, “WARNING”, “INFO”, “DEBUG”

Default: null

Declared by:

<home-manager/modules/services/vdirsyncer.nix>
services.volnoti.enable

Whether to enable Volnoti volume HUD daemon.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/volnoti.nix>
services.volnoti.package

Package containing the volnoti program.

Type: package

Default: pkgs.volnoti

Declared by:

<home-manager/modules/services/volnoti.nix>
services.wlsunset.enable

Whether to enable wlsunset.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/wlsunset.nix>
services.wlsunset.package

wlsunset derivation to use.

Type: package

Default: "pkgs.wlsunset"

Declared by:

<home-manager/modules/services/wlsunset.nix>
services.wlsunset.gamma

Gamma value to use.

Type: string or floating point number or signed integer

Default: 1.0

Example: 0.6

Declared by:

<home-manager/modules/services/wlsunset.nix>
services.wlsunset.latitude

Your current latitude, between -90.0 and 90.0.

Type: null or string or floating point number or signed integer

Default: null

Example: -74.3

Declared by:

<home-manager/modules/services/wlsunset.nix>
services.wlsunset.longitude

Your current longitude, between -180.0 and 180.0.

Type: null or string or floating point number or signed integer

Default: null

Example: 12.5

Declared by:

<home-manager/modules/services/wlsunset.nix>
services.wlsunset.output

Name of output to use, by default all outputs are used.

Type: null or string

Default: null

Declared by:

<home-manager/modules/services/wlsunset.nix>
services.wlsunset.sunrise

The time when the sun rises (in 24 hour format).

Type: null or string

Default: null

Example: "06:30"

Declared by:

<home-manager/modules/services/wlsunset.nix>
services.wlsunset.sunset

The time when the sun sets (in 24 hour format).

Type: null or string

Default: null

Example: "18:00"

Declared by:

<home-manager/modules/services/wlsunset.nix>
services.wlsunset.systemdTarget

Systemd target to bind to.

Type: string

Default: "graphical-session.target"

Declared by:

<home-manager/modules/services/wlsunset.nix>
services.wlsunset.temperature.day

Colour temperature to use during the day, in Kelvin (K). This value must be greater than temperature.night.

Type: signed integer

Default: 6500

Declared by:

<home-manager/modules/services/wlsunset.nix>
services.wlsunset.temperature.night

Colour temperature to use during the night, in Kelvin (K). This value must be smaller than temperature.day.

Type: signed integer

Default: 4000

Declared by:

<home-manager/modules/services/wlsunset.nix>
services.wob.enable

Whether to enable wob.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/wob.nix>
services.wob.package

The wob package to use.

Type: package

Default: pkgs.wob

Declared by:

<home-manager/modules/services/wob.nix>
services.wob.settings

Configuration written to $XDG_CONFIG_HOME/wob/wob.ini. See wob.ini(5) for documentation.

Type: attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))

Default: { }

Example:

{
  "" = {
    border_size = 10;
    height = 50;
  };
  "output.foo".name = "DP-1";
  "style.muted".background_color = "032cfc";
}

Declared by:

<home-manager/modules/services/wob.nix>
services.wob.systemd

Whether to enable systemd service and socket for wob.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/services/wob.nix>
services.xcape.enable

Whether to enable xcape.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/xcape.nix>
services.xcape.mapExpression

The value has the grammar Key[|OtherKey].

The list of key names is found in the header file X11/keysymdef.h (remove the XK_ prefix). Note that due to limitations of X11 shifted keys must be specified as a shift key followed by the key to be pressed rather than the actual name of the character. For example to generate “{” the expression Shift_L|bracketleft could be used (assuming that you have a key with “{” above “[”).

You can also specify keys in decimal (prefix #), octal (#0), or hexadecimal (#0x). They will be interpreted as keycodes unless no corresponding key name is found.

Type: attribute set of string

Default: { }

Example:

{
  Control_L = "Control_L|O";
  Shift_L = "Escape";
}

Declared by:

<home-manager/modules/services/xcape.nix>
services.xcape.timeout

If you hold a key longer than this timeout, xcape will not generate a key event. Default is 500 ms.

Type: null or signed integer

Default: null

Example: 500

Declared by:

<home-manager/modules/services/xcape.nix>
services.xembed-sni-proxy.enable

Whether to enable XEmbed SNI Proxy.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/xembed-sni-proxy.nix>
services.xembed-sni-proxy.package

Package containing the xembedsniproxy program.

Type: package

Default: pkgs.plasma-workspace

Declared by:

<home-manager/modules/services/xembed-sni-proxy.nix>
services.xidlehook.enable

Whether to enable xidlehook systemd service.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/xidlehook.nix>
services.xidlehook.package

The package to use for xidlehook.

Type: package

Default: "pkgs.xidlehook"

Declared by:

<home-manager/modules/services/xidlehook.nix>
services.xidlehook.detect-sleep

Whether to enable detecting when the system wakes up from a suspended state and resetting the idle timer.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/xidlehook.nix>
services.xidlehook.environment

Extra environment variables to be exported in the script. These options are passed unescaped as export name=value.

Type: attribute set of string

Default: { }

Example:

{
  "primary-display" = "$(xrandr | awk '/ primary/{print $1}')";
}

Declared by:

<home-manager/modules/services/xidlehook.nix>
services.xidlehook.not-when-audio

Disable locking when audio is playing.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/xidlehook.nix>
services.xidlehook.not-when-fullscreen

Disable locking when a fullscreen application is in use.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/xidlehook.nix>
services.xidlehook.once

Whether to enable running the program once and exiting.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/xidlehook.nix>
services.xidlehook.timers

A set of commands to be executed after a specific idle timeout. The commands specified in command and canceller are passed escaped to the script. To use or re-use environment variables that are script-dependent, specify them in the environment section.

Type: list of (submodule)

Default: [ ]

Example:

[
  {
    delay = 60;
    command = "xrandr --output \"$PRIMARY_DISPLAY\" --brightness .1";
    canceller = "xrandr --output \"$PRIMARY_DISPLAY\" --brightness 1";
  }
  {
    delay = 120;
    command = "${pkgs.writeShellScript "my-script" ''
      # A complex script to run
    ''}";
  }
]

Declared by:

<home-manager/modules/services/xidlehook.nix>
services.xidlehook.timers.*.canceller

Command executed when the user becomes active again. This is only executed if the next timer has not been reached. Path to executables are accepted. The command is automatically escaped.

Type: string

Default: ""

Example:

${pkgs.libnotify}/bin/notify-send "Idle" "Resuming activity"

Declared by:

<home-manager/modules/services/xidlehook.nix>
services.xidlehook.timers.*.command

Command executed after the idle timeout is reached. Path to executables are accepted. The command is automatically escaped.

Type: null or string

Example:

${pkgs.libnotify}/bin/notify-send "Idle" "Sleeping in 1 minute"

Declared by:

<home-manager/modules/services/xidlehook.nix>
services.xidlehook.timers.*.delay

Time before executing the command.

Type: unsigned integer, meaning >=0

Example: 60

Declared by:

<home-manager/modules/services/xidlehook.nix>
services.xscreensaver.enable

Whether to enable XScreenSaver.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/xscreensaver.nix>
services.xscreensaver.package

Which xscreensaver package to use.

Type: package

Default: pkgs.xscreensaver

Declared by:

<home-manager/modules/services/xscreensaver.nix>
services.xscreensaver.settings

The settings to use for XScreenSaver.

Type: attribute set of (boolean or signed integer or string)

Default: { }

Example:

{
  fadeTicks = 20;
  lock = false;
  mode = "blank";
}

Declared by:

<home-manager/modules/services/xscreensaver.nix>
services.xsettingsd.enable

Whether to enable xsettingsd.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/xsettingsd.nix>
services.xsettingsd.package

Package containing the xsettingsd program.

Type: package

Default: pkgs.xsettingsd

Declared by:

<home-manager/modules/services/xsettingsd.nix>
services.xsettingsd.settings

Xsettingsd options for configuration file. See https://github.com/derat/xsettingsd/wiki/Settings for documentation on these values.

Type: attribute set of (boolean or signed integer or string)

Default: { }

Example:

{
  "Net/ThemeName" = "Numix";
  "Xft/Antialias" = true;
  "Xft/Hinting" = true;
  "Xft/RGBA" = "rgb";
}

Declared by:

<home-manager/modules/services/xsettingsd.nix>
services.xsuspender.enable

Whether to enable XSuspender.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.debug

Whether to enable debug output.

Type: boolean

Default: false

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.defaults

XSuspender defaults.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.defaults.autoSuspendOnBattery

Whether to auto-apply rules when switching to battery power even if the window(s) didn’t just lose focus.

Type: boolean

Default: true

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.defaults.downclockOnBattery

Limit CPU consumption for this factor when on battery power. Value 1 means 50% decrease, 2 means 66%, 3 means 75% etc.

Type: signed integer

Default: 0

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.defaults.execResume

Before resuming, execute this shell script. Resume the process regardless script failure.

Type: null or string

Default: null

Example: "echo resuming ..."

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.defaults.execSuspend

Before suspending, execute this shell script. If it fails, abort suspension.

Type: null or string

Default: null

Example: "echo \"suspending window $XID of process $PID\""

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.defaults.matchWmClassContains

Match windows that wm class contains string.

Type: null or string

Default: null

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.defaults.matchWmClassGroupContains

Match windows where wm class group contains string.

Type: null or string

Default: null

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.defaults.matchWmNameContains

Match windows where wm name contains string.

Type: null or string

Default: null

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.defaults.onlyOnBattery

Whether to enable process suspend only on battery.

Type: boolean

Default: false

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.defaults.resumeEvery

Resume interval in seconds.

Type: signed integer

Default: 50

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.defaults.resumeFor

Resume duration in seconds.

Type: signed integer

Default: 5

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.defaults.sendSignals

Whether to send SIGSTOP / SIGCONT signals or not. If false just the exec scripts are run.

Type: boolean

Default: true

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.defaults.suspendDelay

Initial suspend delay in seconds.

Type: signed integer

Default: 5

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.defaults.suspendSubtreePattern

Also suspend descendant processes that match this regex.

Type: null or string

Default: null

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.rules

Attribute set of XSuspender rules.

Type: attribute set of (submodule)

Default: { }

Example:

{
  Chromium = {
    matchWmClassContains = "chromium-browser";
    suspendDelay = 10;
    suspendSubtreePattern = "chromium";
  };
}

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.rules.<name>.autoSuspendOnBattery

Whether to auto-apply rules when switching to battery power even if the window(s) didn’t just lose focus.

Type: boolean

Default: true

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.rules.<name>.downclockOnBattery

Limit CPU consumption for this factor when on battery power. Value 1 means 50% decrease, 2 means 66%, 3 means 75% etc.

Type: signed integer

Default: 0

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.rules.<name>.execResume

Before resuming, execute this shell script. Resume the process regardless script failure.

Type: null or string

Default: null

Example: "echo resuming ..."

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.rules.<name>.execSuspend

Before suspending, execute this shell script. If it fails, abort suspension.

Type: null or string

Default: null

Example: "echo \"suspending window $XID of process $PID\""

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.rules.<name>.matchWmClassContains

Match windows that wm class contains string.

Type: null or string

Default: null

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.rules.<name>.matchWmClassGroupContains

Match windows where wm class group contains string.

Type: null or string

Default: null

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.rules.<name>.matchWmNameContains

Match windows where wm name contains string.

Type: null or string

Default: null

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.rules.<name>.onlyOnBattery

Whether to enable process suspend only on battery.

Type: boolean

Default: false

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.rules.<name>.resumeEvery

Resume interval in seconds.

Type: signed integer

Default: 50

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.rules.<name>.resumeFor

Resume duration in seconds.

Type: signed integer

Default: 5

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.rules.<name>.sendSignals

Whether to send SIGSTOP / SIGCONT signals or not. If false just the exec scripts are run.

Type: boolean

Default: true

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.rules.<name>.suspendDelay

Initial suspend delay in seconds.

Type: signed integer

Default: 5

Declared by:

<home-manager/modules/services/xsuspender.nix>
services.xsuspender.rules.<name>.suspendSubtreePattern

Also suspend descendant processes that match this regex.

Type: null or string

Default: null

Declared by:

<home-manager/modules/services/xsuspender.nix>
specialisation

A set of named specialized configurations. These can be used to extend your base configuration with additional settings. For example, you can have specialisations named “light” and “dark” that apply light and dark color theme configurations.

Note

This is an experimental option for now and you therefore have to activate the specialisation by looking up and running the activation script yourself. Running the activation script will create a new Home Manager generation.

For example, to activate the “dark” specialisation, you can first look up your current Home Manager generation by running

$ home-manager generations | head -1
2022-05-02 22:49 : id 1758 -> /nix/store/jy…ac-home-manager-generation

then run

$ /nix/store/jy…ac-home-manager-generation/specialisation/dark/activate
Starting Home Manager activation
…

Warning

Since this option is experimental, the activation process may change in backwards incompatible ways.

Type: attribute set of (submodule)

Default: { }

Declared by:

<home-manager/modules/misc/specialisation.nix>
specialisation.<name>.configuration

Arbitrary Home Manager configuration settings.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/misc/specialisation.nix>
systemd.user.enable

Whether to enable the user systemd service manager.

Type: boolean

Default: pkgs.stdenv.isLinux

Example: true

Declared by:

<home-manager/modules/systemd.nix>
systemd.user.automounts

Definition of systemd per-user automount units. Attributes are merged recursively.

Note that the attributes follow the capitalization and naming used by systemd. More details can be found in systemd.automount(5).

Type: systemd automount unit configuration

Default: { }

Example:

{
  automount-name = {
    Unit = {
      Description = "Example description";
      Documentation = [ "man:example(1)" "man:example(5)" ];
    };

    Automount = {
      …
    };
  };
};

Declared by:

<home-manager/modules/systemd.nix>
systemd.user.mounts

Definition of systemd per-user mount units. Attributes are merged recursively.

Note that the attributes follow the capitalization and naming used by systemd. More details can be found in systemd.mount(5).

Type: systemd mount unit configuration

Default: { }

Example:

{
  mount-name = {
    Unit = {
      Description = "Example description";
      Documentation = [ "man:example(1)" "man:example(5)" ];
    };

    Mount = {
      …
    };
  };
};

Declared by:

<home-manager/modules/systemd.nix>
systemd.user.paths

Definition of systemd per-user path units. Attributes are merged recursively.

Note that the attributes follow the capitalization and naming used by systemd. More details can be found in systemd.path(5).

Type: systemd path unit configuration

Default: { }

Example:

{
  path-name = {
    Unit = {
      Description = "Example description";
      Documentation = [ "man:example(1)" "man:example(5)" ];
    };

    Path = {
      …
    };
  };
};

Declared by:

<home-manager/modules/systemd.nix>
systemd.user.services

Definition of systemd per-user service units. Attributes are merged recursively.

Note that the attributes follow the capitalization and naming used by systemd. More details can be found in systemd.service(5).

Type: systemd service unit configuration

Default: { }

Example:

{
  service-name = {
    Unit = {
      Description = "Example description";
      Documentation = [ "man:example(1)" "man:example(5)" ];
    };

    Service = {
      …
    };
  };
};

Declared by:

<home-manager/modules/systemd.nix>
systemd.user.servicesStartTimeoutMs

How long to wait for started services to fail until their start is considered successful. The value 0 indicates no timeout.

Type: unsigned integer, meaning >=0

Default: 0

Declared by:

<home-manager/modules/systemd.nix>
systemd.user.sessionVariables

Environment variables that will be set for the user session. The variable values must be as described in environment.d(5).

Type: attribute set of (signed integer or string)

Default: { }

Example:

{
  EDITOR = "vim";
}

Declared by:

<home-manager/modules/systemd.nix>
systemd.user.settings

Extra config options for user session service manager. See systemd-user.conf(5) for available options.

Type: attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string) or a list of them for duplicate keys)

Default: { }

Example:

{
  Manager.DefaultCPUAccounting = true;
}

Declared by:

<home-manager/modules/systemd.nix>
systemd.user.settings.Manager.DefaultEnvironment

Configures environment variables passed to all executed processes.

Type: attribute set of (null or string or path or package)

Default: { }

Example:

{
  PATH = "%u/bin:%u/.cargo/bin";
}

Declared by:

<home-manager/modules/systemd.nix>
systemd.user.settings.Manager.ManagerEnvironment

Sets environment variables just for the manager process itself.

Type: attribute set of (null or string or path or package)

Default: { }

Example:

{
  PATH = "%u/bin:%u/.cargo/bin";
}

Declared by:

<home-manager/modules/systemd.nix>
systemd.user.slices

Definition of systemd per-user slice units. Attributes are merged recursively.

Note that the attributes follow the capitalization and naming used by systemd. More details can be found in systemd.slice(5).

Type: systemd slice unit configuration

Default: { }

Example:

{
  slice-name = {
    Unit = {
      Description = "Example description";
      Documentation = [ "man:example(1)" "man:example(5)" ];
    };

    Slice = {
      …
    };
  };
};

Declared by:

<home-manager/modules/systemd.nix>
systemd.user.sockets

Definition of systemd per-user socket units. Attributes are merged recursively.

Note that the attributes follow the capitalization and naming used by systemd. More details can be found in systemd.socket(5).

Type: systemd socket unit configuration

Default: { }

Example:

{
  socket-name = {
    Unit = {
      Description = "Example description";
      Documentation = [ "man:example(1)" "man:example(5)" ];
    };

    Socket = {
      …
    };
  };
};

Declared by:

<home-manager/modules/systemd.nix>
systemd.user.startServices

Whether new or changed services that are wanted by active targets should be started. Additionally, stop obsolete services from the previous generation.

The alternatives are

suggest (or false)

Use a very simple shell script to print suggested systemctl commands to run. You will have to manually run those commands after the switch.

legacy

Use a Ruby script to, in a more robust fashion, determine the necessary changes and automatically run the systemctl commands. Note, this alternative will soon be removed.

sd-switch (or true)

Use sd-switch, a tool that determines the necessary changes and automatically apply them.

Type: boolean or one of “suggest”, “legacy”, “sd-switch”

Default: "suggest"

Declared by:

<home-manager/modules/systemd.nix>
systemd.user.systemctlPath

Absolute path to the systemctl tool. This option may need to be set if running Home Manager on a non-NixOS distribution.

Type: string

Default: "${pkgs.systemd}/bin/systemctl"

Declared by:

<home-manager/modules/systemd.nix>
systemd.user.targets

Definition of systemd per-user target units. Attributes are merged recursively.

Note that the attributes follow the capitalization and naming used by systemd. More details can be found in systemd.target(5).

Type: systemd target unit configuration

Default: { }

Example:

{
  target-name = {
    Unit = {
      Description = "Example description";
      Documentation = [ "man:example(1)" "man:example(5)" ];
    };

    Target = {
      …
    };
  };
};

Declared by:

<home-manager/modules/systemd.nix>
systemd.user.timers

Definition of systemd per-user timer units. Attributes are merged recursively.

Note that the attributes follow the capitalization and naming used by systemd. More details can be found in systemd.timer(5).

Type: systemd timer unit configuration

Default: { }

Example:

{
  timer-name = {
    Unit = {
      Description = "Example description";
      Documentation = [ "man:example(1)" "man:example(5)" ];
    };

    Timer = {
      …
    };
  };
};

Declared by:

<home-manager/modules/systemd.nix>
systemd.user.tmpfiles.rules

Rules for creating and cleaning up temporary files automatically. See tmpfiles.d(5) for the exact format.

Type: list of string

Default: [ ]

Example:

[
  "L /home/user/Documents - - - - /mnt/data/Documents"
]

Declared by:

<home-manager/modules/misc/tmpfiles.nix>
targets.darwin.currentHostDefaults

Set macOS user defaults. Unlike targets.darwin.defaults, the preferences will only be applied to the currently logged-in host. This distinction is important for networked accounts.

Values set to null are ignored.

Warning

Some settings might require a re-login to take effect.

Type: attribute set of attribute set of anything

Default: { }

Example:

{
  "com.apple.controlcenter" = {
    BatteryShowPercentage = true;
  };
}

Declared by:

<home-manager/modules/targets/darwin/user-defaults>
targets.darwin.currentHostDefaults."com.apple.controlcenter".BatteryShowPercentage

Whether to show battery percentage in the menu bar.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-currenthost.nix>
targets.darwin.defaults

Set macOS user defaults. Values set to null are ignored.

Warning

Some settings might require a re-login to take effect.

Warning

Some settings are only read from targets.darwin.currentHostDefaults.

Type: attribute set of attribute set of anything

Default: { }

Example:

{
  "com.apple.desktopservices" = {
    DSDontWriteNetworkStores = true;
    DSDontWriteUSBStores = true;
  };
}

Declared by:

<home-manager/modules/targets/darwin/user-defaults>
targets.darwin.defaults.NSGlobalDomain.AppleLanguages

Sets the language to use in the preferred order.

Type: null or (list of string)

Default: null

Example:

[
  "en"
]

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults.NSGlobalDomain.AppleLocale

Configures the user locale.

Type: null or string

Default: null

Example: "en_US"

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults.NSGlobalDomain.AppleMeasurementUnits

Sets the measurement unit.

Type: null or one of “Centimeters”, “Inches”

Default: null

Example: "Centimeters"

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults.NSGlobalDomain.AppleMetricUnits

Whether to enable the metric system.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults.NSGlobalDomain.ApplePressAndHoldEnabled

Repeat a key when it is held down (false) or display the accented character selector (true)

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults.NSGlobalDomain.AppleShowAllExtensions

Always show file extensions in Finder

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults.NSGlobalDomain.AppleTemperatureUnit

Sets the temperature unit.

Type: null or one of “Celsius”, “Fahrenheit”

Default: null

Example: "Celsius"

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults.NSGlobalDomain.KeyRepeat

Interval between key repetitions when holding down a key. Lower is faster. When setting through the control panel, 2 is the lowest value, and 120 the highest.

Type: null or signed integer

Default: null

Example: 2

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults.NSGlobalDomain.NSAutomaticCapitalizationEnabled

Whether to enable automatic capitalization.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults.NSGlobalDomain.NSAutomaticDashSubstitutionEnabled

Whether to enable smart dashes.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults.NSGlobalDomain.NSAutomaticPeriodSubstitutionEnabled

Whether to enable period with double space.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults.NSGlobalDomain.NSAutomaticQuoteSubstitutionEnabled

Whether to enable smart quotes.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults.NSGlobalDomain.NSAutomaticSpellingCorrectionEnabled

Whether to enable spelling correction.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.apple.Safari".AutoFillCreditCardData

Whether to enable autofill of credit card numbers.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.apple.Safari".AutoFillPasswords

Whether to enable autofill of usernames and passwords.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.apple.Safari".AutoOpenSafeDownloads

Whether to enable opening of downloaded files.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.apple.Safari".IncludeDevelopMenu

Whether to enable “Develop” menu in the menu bar.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.apple.Safari".ShowOverlayStatusBar

Whether to enable status bar.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.apple.Safari".WebKitDeveloperExtrasEnabledPreferenceKey

Configures the web inspector.

Warning

Instead of setting this option directly, set IncludeDevelopMenu instead.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.apple.Safari"."WebKitPreferences.developerExtrasEnabled"

Configures the web inspector.

Warning

Instead of setting this option directly, set IncludeDevelopMenu instead.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.apple.Safari.SandboxBroker".ShowDevelopMenu

Show the “Develop” menu in Safari’s menubar.

Warning

Instead of setting this option directly, set "com.apple.Safari".IncludeDevelopMenu instead.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.apple.desktopservices".DSDontWriteNetworkStores

Disable use of .DS_Store files on network shares. See the official article for more info.

Type: null or boolean

Default: null

Example: false

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.apple.desktopservices".DSDontWriteUSBStores

Disable use of .DS_Store files on thumb drives.

Type: null or boolean

Default: null

Example: false

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.apple.dock".autohide

Hide the Dock automatically

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.apple.dock".expose-group-apps

Whether to enable grouping of windows by application in Mission Control.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.apple.dock".orientation

Position of the Dock on the screen

Type: null or one of “left”, “bottom”, “right”

Default: null

Example: "left"

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.apple.dock".size-immutable

Whether to enable locking of the dock size.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.apple.dock".tilesize

Sets the size of the dock.

Type: null or signed integer

Default: null

Example: 64

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.apple.finder".AppleShowAllFiles

Show hidden files in Finder

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.apple.finder".FXRemoveOldTrashItems

Automatically delete items from trash after 30 days

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.apple.finder".ShowPathBar

Show the path bar at the bottom of a Finder window

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.apple.finder".ShowStatusBar

Show the status bar at the bottom of a Finder window

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.apple.menuextra.battery".ShowPercent

This option no longer works on macOS 11 and later. Instead, use targets.darwin.currentHostDefaults.\"com.apple.controlcenter\".BatteryShowPercentage.

Whether to show battery percentage in the menu bar.

Type: null or one of “YES”, “NO”

Default: null

Example: "NO"

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.apple.menuextra.clock".IsAnalog

Whether to enable showing an analog clock instead of a digital one.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.apple.menuextra.clock".Show24Hour

Whether to enable showing a 24-hour clock, instead of a 12-hour clock.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.apple.menuextra.clock".ShowAMPM

Show the AM/PM label. Useful if Show24Hour is false. Default is null.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.apple.menuextra.clock".ShowDate

Show the full date. Default is null.

0 = Show the date 1 = Don’t show 2 = Don’t show

TODO: I don’t know what the difference is between 1 and 2.

Type: null or one of 0, 1, 2

Default: null

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.apple.menuextra.clock".ShowDayOfMonth

Whether to enable showing the day of the month.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.apple.menuextra.clock".ShowDayOfWeek

Whether to enable showing the day of the week.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.apple.menuextra.clock".ShowSeconds

Whether to enable showing the clock with second precision, instead of minutes.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.googlecode.iterm2".AddNewTabAtEndOfTabs

Whether to enable placement of new tabs at the end of the tab bar.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.googlecode.iterm2".AlternateMouseScroll

Whether to enable arrow keys when scrolling in alternate screen mode.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.googlecode.iterm2".CopySelection

Whether to enable copy to clipboard upon selecting text.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.googlecode.iterm2".ExperimentalKeyHandling

Whether to enable experimental key handling for AquaSKK compatibility.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults."com.googlecode.iterm2".OpenTmuxWindowsIn

Configures how to restore tmux windows when attaching to a session.

Possible Values

0

Native windows

1

Native tabs in a new window

2

Tabs in the attaching window

Type: null or signed integer

Default: null

Example: 2

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.keybindings

This will configure the default keybindings for text fields in macOS applications. See Apple’s documentation for more details.

Warning

Existing keybinding configuration will be wiped when using this option.

Type: attribute set of anything

Default: { }

Example:

{
  "^u" = "deleteToBeginningOfLine:";
  "^w" = "deleteWordBackward:";
}

Declared by:

<home-manager/modules/targets/darwin/keybindings.nix>
targets.darwin.search

Default search engine.

Type: null or one of “Bing”, “DuckDuckGo”, “Ecosia”, “Google”, “Yahoo”

Default: null

Declared by:

<home-manager/modules/targets/darwin/search.nix>
targets.genericLinux.enable

Whether to enable settings that make Home Manager work better on GNU/Linux distributions other than NixOS.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/targets/generic-linux.nix>
uninstall

Whether to set up a minimal configuration that will remove all managed files and packages.

Use this with extreme care since running the generated activation script will remove all Home Manager state from your user environment. This includes removing all your historic Home Manager generations.

Type: boolean

Default: false

Declared by:

<home-manager/modules/misc/uninstall.nix>
wayland.windowManager.hyprland.enable

Whether to enable configuration for Hyprland, a tiling Wayland compositor that doesn’t sacrifice on its looks.

Note

This module configures Hyprland and adds it to your user’s PATH, but does not make certain system-level changes. NixOS users should enable the NixOS module with programs.hyprland.enable, which makes system-level changes such as adding a desktop session entry.

Type: boolean

Default: false

Declared by:

<home-manager/modules/services/window-managers/hyprland.nix>
wayland.windowManager.hyprland.package

The hyprland package to use.

Type: package

Default: pkgs.hyprland

Declared by:

<home-manager/modules/services/window-managers/hyprland.nix>
wayland.windowManager.hyprland.extraConfig

Extra configuration lines to add to ~/.config/hypr/hyprland.conf.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  # window resize
  bind = $mod, S, submap, resize
  
  submap = resize
  binde = , right, resizeactive, 10 0
  binde = , left, resizeactive, -10 0
  binde = , up, resizeactive, 0 -10
  binde = , down, resizeactive, 0 10
  bind = , escape, submap, reset
  submap = reset
''

Declared by:

<home-manager/modules/services/window-managers/hyprland.nix>
wayland.windowManager.hyprland.finalPackage

The Hyprland package after applying configuration.

Type: package (read only)

Default: wayland.windowManager.hyprland.package with applied configuration

Declared by:

<home-manager/modules/services/window-managers/hyprland.nix>
wayland.windowManager.hyprland.importantPrefixes

List of prefix of attributes to source at the top of the config.

Type: list of string

Default:

[
  "$"
  "bezier"
  "name"
  "source"
]

Example:

[
  "$"
  "bezier"
]

Declared by:

<home-manager/modules/services/window-managers/hyprland.nix>
wayland.windowManager.hyprland.plugins

List of Hyprland plugins to use. Can either be packages or absolute plugin paths.

Type: list of (package or path)

Default: [ ]

Declared by:

<home-manager/modules/services/window-managers/hyprland.nix>
wayland.windowManager.hyprland.settings

Hyprland configuration written in Nix. Entries with the same key should be written as lists. Variables’ and colors’ names should be quoted. See https://wiki.hyprland.org for more examples.

Note

Use the wayland.windowManager.hyprland.plugins option to declare plugins.

Type: Hyprland configuration value

Default: { }

Example:

{
  decoration = {
    shadow_offset = "0 5";
    "col.shadow" = "rgba(00000099)";
  };

  "$mod" = "SUPER";

  bindm = [
    # mouse movements
    "$mod, mouse:272, movewindow"
    "$mod, mouse:273, resizewindow"
    "$mod ALT, mouse:272, resizewindow"
  ];
}

Declared by:

<home-manager/modules/services/window-managers/hyprland.nix>
wayland.windowManager.hyprland.sourceFirst

Whether to enable putting source entries at the top of the configuration .

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/services/window-managers/hyprland.nix>
wayland.windowManager.hyprland.systemd.enable

Whether to enable hyprland-session.target on hyprland startup. This links to graphical-session.target. Some important environment variables will be imported to systemd and D-Bus user environment before reaching the target, including

  • DISPLAY

  • HYPRLAND_INSTANCE_SIGNATURE

  • WAYLAND_DISPLAY

  • XDG_CURRENT_DESKTOP

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/services/window-managers/hyprland.nix>
wayland.windowManager.hyprland.systemd.enableXdgAutostart

Whether to enable autostart of applications using systemd-xdg-autostart-generator(8).

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/window-managers/hyprland.nix>
wayland.windowManager.hyprland.systemd.extraCommands

Extra commands to be run after D-Bus activation.

Type: list of string

Default:

[
  "systemctl --user stop hyprland-session.target"
  "systemctl --user start hyprland-session.target"
]

Declared by:

<home-manager/modules/services/window-managers/hyprland.nix>
wayland.windowManager.hyprland.systemd.variables

Environment variables to be imported in the systemd & D-Bus user environment.

Type: list of string

Default:

[
  "DISPLAY"
  "HYPRLAND_INSTANCE_SIGNATURE"
  "WAYLAND_DISPLAY"
  "XDG_CURRENT_DESKTOP"
]

Example:

[
  "--all"
]

Declared by:

<home-manager/modules/services/window-managers/hyprland.nix>
wayland.windowManager.hyprland.xwayland.enable

Whether to enable XWayland.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/services/window-managers/hyprland.nix>
wayland.windowManager.river.enable

Whether to enable the river window manager.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/window-managers/river.nix>
wayland.windowManager.river.package

The river package to use. Set to null to not add any river package to your path. This should be done if you want to use the NixOS river module to install river.

Type: null or package

Default: pkgs.river

Declared by:

<home-manager/modules/services/window-managers/river.nix>
wayland.windowManager.river.extraConfig

Extra lines appended to $XDG_CONFIG_HOME/river/init.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  rivertile -view-padding 6 -outer-padding 6 &
''

Declared by:

<home-manager/modules/services/window-managers/river.nix>
wayland.windowManager.river.extraSessionVariables

Extra session variables set when running the compositor.

Type: attribute set

Default: { }

Example:

{
  MOZ_ENABLE_WAYLAND = "1";
}

Declared by:

<home-manager/modules/services/window-managers/river.nix>
wayland.windowManager.river.settings

General settings given to riverctl.

Type: River configuration value

Default: { }

Example:

{
  border-width = 2;
  declare-mode = [
    "locked"
    "normal"
    "passthrough"
  ];
  input = {
    pointer-foo-bar = {
      accel-profile = "flat";
      events = true;
      pointer-accel = -0.3;
      tap = false;
    };
  };
  map = {
    normal = {
      "Alt Q" = "close";
    };
  };
  rule-add = {
    "-app-id" = {
      "'bar'" = "csd";
      "'float*'" = {
        "-title" = {
          "'foo'" = "float";
        };
      };
    };
  };
  set-cursor-warp = "on-output-change";
  set-repeat = "50 300";
  spawn = [
    "firefox"
    "'foot -a terminal'"
  ];
  xcursor-theme = "someGreatTheme 12";
}

Declared by:

<home-manager/modules/services/window-managers/river.nix>
wayland.windowManager.river.systemd.enable

Whether to enable river-session.target on river startup. This links to graphical-session.target}. Some important environment variables will be imported to systemd and D-Bus user environment before reaching the target, including

  • DISPLAY

  • WAYLAND_DISPLAY

  • XDG_CURRENT_DESKTOP

  • NIXOS_OZONE_WL

  • XCURSOR_THEME

  • XCURSOR_SIZE

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/services/window-managers/river.nix>
wayland.windowManager.river.systemd.extraCommands

Extra commands to be run after D-Bus activation.

Type: list of string

Default:

[
  "systemctl --user stop river-session.target"
  "systemctl --user start river-session.target"
]

Declared by:

<home-manager/modules/services/window-managers/river.nix>
wayland.windowManager.river.systemd.variables

Environment variables to be imported in the systemd & D-Bus user environment.

Type: list of string

Default:

[
  "DISPLAY"
  "WAYLAND_DISPLAY"
  "XDG_CURRENT_DESKTOP"
  "NIXOS_OZONE_WL"
  "XCURSOR_THEME"
  "XCURSOR_SIZE"
]

Example:

[
  "-all"
]

Declared by:

<home-manager/modules/services/window-managers/river.nix>
wayland.windowManager.river.xwayland.enable

Whether to enable XWayland.

Type: boolean

Default: true

Example: true

Declared by:

<home-manager/modules/services/window-managers/river.nix>
wayland.windowManager.sway.enable

Whether to enable sway wayland compositor.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.package

Sway package to use. Will override the options ‘wrapperFeatures’, ‘extraSessionCommands’, and ‘extraOptions’. Set to null to not add any Sway package to your path. This should be done if you want to use the NixOS Sway module to install Sway. Beware setting to null will also disable reloading Sway when new config is activated.

Type: null or package

Default: ${pkgs.sway}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.checkConfig

If enabled, validates the generated config file.

Type: boolean

Default: wayland.windowManager.sway.package != null

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config

Sway configuration options.

Type: null or (submodule)

Default: { }

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.assigns

An attribute set that assigns applications to workspaces based on criteria.

Type: attribute set of list of attribute set of (string or boolean)

Default: { }

Example:

{
"1: web" = [{ class = "^Firefox$"; }];
"0: extra" = [{ class = "^Firefox$"; window_role = "About"; }];
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.bars

Sway bars settings blocks. Set to empty list to remove bars completely.

Type: list of (submodule)

Default: see code

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.bars.*.colors

Bar color settings. All color classes can be specified using submodules with ‘border’, ‘background’, ‘text’, fields and RGB color hex-codes as values. See default values for the reference. Note that ‘background’, ‘status’, and ‘separator’ parameters take a single RGB value.

See https://i3wm.org/docs/userguide.html#_colors.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.bars.*.colors.activeWorkspace

Border, background and text color for a workspace button when the workspace is active.

Type: null or (submodule)

Default:

null for state version ≥ 20.09, as example otherwise

Example:

{
  background = "#5f676a";
  border = "#333333";
  text = "#ffffff";
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.bars.*.colors.background

Background color of the bar.

Type: null or string

Default:

null for state version ≥ 20.09, as example otherwise

Example: "#000000"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.bars.*.colors.bindingMode

Border, background and text color for the binding mode indicator

Type: null or (submodule)

Default:

null for state version ≥ 20.09, as example otherwise

Example:

{
  background = "#900000";
  border = "#2f343a";
  text = "#ffffff";
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.bars.*.colors.focusedBackground

Background color of the bar on the currently focused monitor output.

Type: null or string

Default: null

Example: "#000000"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.bars.*.colors.focusedSeparator

Text color to be used for the separator on the currently focused monitor output.

Type: null or string

Default: null

Example: "#666666"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.bars.*.colors.focusedStatusline

Text color to be used for the statusline on the currently focused monitor output.

Type: null or string

Default: null

Example: "#ffffff"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.bars.*.colors.focusedWorkspace

Border, background and text color for a workspace button when the workspace has focus.

Type: null or (submodule)

Default:

null for state version ≥ 20.09, as example otherwise

Example:

{
  background = "#285577";
  border = "#4c7899";
  text = "#ffffff";
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.bars.*.colors.inactiveWorkspace

Border, background and text color for a workspace button when the workspace does not have focus and is not active.

Type: null or (submodule)

Default:

null for state version ≥ 20.09, as example otherwise

Example:

{
  background = "#222222";
  border = "#333333";
  text = "#888888";
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.bars.*.colors.separator

Text color to be used for the separator.

Type: null or string

Default:

null for state version ≥ 20.09, as example otherwise

Example: "#666666"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.bars.*.colors.statusline

Text color to be used for the statusline.

Type: null or string

Default:

null for state version ≥ 20.09, as example otherwise

Example: "#ffffff"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.bars.*.colors.urgentWorkspace

Border, background and text color for a workspace button when the workspace contains a window with the urgency hint set.

Type: null or (submodule)

Default:

null for state version ≥ 20.09, as example otherwise

Example:

{
  background = "#900000";
  border = "#2f343a";
  text = "#ffffff";
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.bars.*.command

Command that will be used to start a bar.

Type: string

Default: "i3bar"

Example: "\${pkgs.waybar}/bin/waybar"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.bars.*.extraConfig

Extra configuration lines for this bar.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.bars.*.fonts

Font configuration for this bar.

Type: (list of string) or (submodule)

Default: { }

Example:

{
  names = [ "DejaVu Sans Mono" "FontAwesome5Free" ];
  style = "Bold Semi-Condensed";
  size = 11.0;
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.bars.*.hiddenState

The default bar mode when ‘bar.mode’ == ‘hide’.

Type: null or one of “hide”, “show”

Default:

null for state version ≥ 20.09, as example otherwise

Example: "hide"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.bars.*.id

Specifies the bar ID for the configured bar instance. If this option is missing, the ID is set to bar-x, where x corresponds to the position of the embedding bar block in the config file.

Type: null or string

Default: null

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.bars.*.mode

Bar visibility mode.

Type: null or one of “dock”, “hide”, “invisible”

Default:

null for state version ≥ 20.09, as example otherwise

Example: "dock"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.bars.*.position

The edge of the screen swaybar should show up.

Type: null or one of “top”, “bottom”

Default:

null for state version ≥ 20.09, as example otherwise

Example: "bottom"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.bars.*.statusCommand

Command that will be used to get status lines.

Type: null or string

Default:

null for state version ≥ 20.09, as example otherwise

Example: "\${pkgs.i3status}/bin/i3status"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.bars.*.trayOutput

Where to output tray.

Type: null or string

Default:

null for state version ≥ 20.09, as example otherwise

Example: "*"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.bars.*.trayPadding

Sets the pixel padding of the system tray. This padding will surround the tray on all sides and between each item.

Type: null or signed integer

Default:

null for state version ≥ 20.09, as example otherwise

Example: null

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.bars.*.workspaceButtons

Whether workspace buttons should be shown or not.

Type: null or boolean

Default:

null for state version ≥ 20.09, as example otherwise

Example: true

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.bars.*.workspaceNumbers

Whether workspace numbers should be displayed within the workspace buttons.

Type: null or boolean

Default:

null for state version ≥ 20.09, as example otherwise

Example: true

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.bindkeysToCode

Whether to make use of --to-code in keybindings.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.colors

Color settings. All color classes can be specified using submodules with ‘border’, ‘background’, ‘text’, ‘indicator’ and ‘childBorder’ fields and RGB color hex-codes as values. See default values for the reference. Note that ‘sway.config.colors.background’ parameter takes a single RGB value.

See https://i3wm.org/docs/userguide.html#_changing_colors.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.colors.background

Background color of the window. Only applications which do not cover the whole area expose the color.

Type: string

Default: "#ffffff"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.colors.focused

A window which currently has the focus.

Type: submodule

Default:

{
  background = "#285577";
  border = "#4c7899";
  childBorder = "#285577";
  indicator = "#2e9ef4";
  text = "#ffffff";
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.colors.focusedInactive

A window which is the focused one of its container, but it does not have the focus at the moment.

Type: submodule

Default:

{
  background = "#5f676a";
  border = "#333333";
  childBorder = "#5f676a";
  indicator = "#484e50";
  text = "#ffffff";
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.colors.placeholder

Background and text color are used to draw placeholder window contents (when restoring layouts). Border and indicator are ignored.

Type: submodule

Default:

{
  background = "#0c0c0c";
  border = "#000000";
  childBorder = "#0c0c0c";
  indicator = "#000000";
  text = "#ffffff";
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.colors.unfocused

A window which is not focused.

Type: submodule

Default:

{
  background = "#222222";
  border = "#333333";
  childBorder = "#222222";
  indicator = "#292d2e";
  text = "#888888";
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.colors.urgent

A window which has its urgency hint activated.

Type: submodule

Default:

{
  background = "#900000";
  border = "#2f343a";
  childBorder = "#900000";
  indicator = "#900000";
  text = "#ffffff";
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.defaultWorkspace

The default workspace to show when sway is launched. This must to correspond to the value of the keybinding of the default workspace.

Type: null or string

Default: null

Example: "workspace number 9"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.down

Home row direction key for moving down.

Type: string

Default: "j"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.floating

Floating window settings.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.floating.border

Floating windows border width.

Type: signed integer

Default: 2

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.floating.criteria

List of criteria for windows that should be opened in a floating mode.

Type: list of attribute set of (string or boolean)

Default: [ ]

Example:

[
  {
    title = "Steam - Update News";
  }
  {
    class = "Pavucontrol";
  }
]

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.floating.modifier

Modifier key or keys that can be used to drag floating windows.

Type: string

Default: "sway.config.modifier"

Example: "Mod4"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.floating.titlebar

Whether to show floating window titlebars.

Type: boolean

Default:

''
  true for state version ≥ 23.05
  false for state version < 23.05
''

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.focus

Focus related settings.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.focus.followMouse

Whether focus should follow the mouse.

Type: one of “yes”, “no”, “always” or boolean

Default: "yes"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.focus.forceWrapping

Whether to force focus wrapping in tabbed or stacked containers.

This option is deprecated, use focus.wrapping instead.

Type: boolean

Default: false

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.focus.mouseWarping

Whether mouse cursor should be warped to the center of the window when switching focus to a window on a different output.

Type: boolean or one of “container”, “output”

Default: true

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.focus.newWindow

This option modifies focus behavior on new window activation.

See https://i3wm.org/docs/userguide.html#focus_on_window_activation

Type: one of “smart”, “urgent”, “focus”, “none”

Default: "smart"

Example: "none"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.focus.wrapping

Whether the window focus commands automatically wrap around the edge of containers.

See https://i3wm.org/docs/userguide.html#_focus_wrapping

Type: one of “yes”, “no”, “force”, “workspace”

Default: "no"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.fonts

Font configuration for window titles, nagbar…

Type: (list of string) or (submodule)

Default: { }

Example:

{
  names = [ "DejaVu Sans Mono" "FontAwesome5Free" ];
  style = "Bold Semi-Condensed";
  size = 11.0;
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.gaps

Gaps related settings.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.gaps.bottom

Bottom gaps value.

Type: null or signed integer

Default: null

Example: 5

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.gaps.horizontal

Horizontal gaps value.

Type: null or signed integer

Default: null

Example: 5

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.gaps.inner

Inner gaps value.

Type: null or signed integer

Default: null

Example: 12

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.gaps.left

Left gaps value.

Type: null or signed integer

Default: null

Example: 5

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.gaps.outer

Outer gaps value.

Type: null or signed integer

Default: null

Example: 5

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.gaps.right

Right gaps value.

Type: null or signed integer

Default: null

Example: 5

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.gaps.smartBorders

This option controls whether to disable container borders on workspace with a single container.

Type: one of “on”, “off”, “no_gaps”

Default: "off"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.gaps.smartGaps

This option controls whether to disable all gaps (outer and inner) on workspace with a single container.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.gaps.top

Top gaps value.

Type: null or signed integer

Default: null

Example: 5

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.gaps.vertical

Vertical gaps value.

Type: null or signed integer

Default: null

Example: 5

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.input

An attribute set that defines input modules. See sway-input(5) for options.

Type: attribute set of attribute set of string

Default: { }

Example:

{
  "*" = {
    xkb_variant = "dvorak";
  };
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.keybindings

An attribute set that assigns a key press to an action using a key symbol. See https://i3wm.org/docs/userguide.html#keybindings.

Consider to use lib.mkOptionDefault function to extend or override default keybindings instead of specifying all of them from scratch.

Type: attribute set of (null or string)

Default: "Default sway keybindings."

Example:

let
  modifier = config.wayland.windowManager.sway.config.modifier;
in lib.mkOptionDefault {
  "${modifier}+Return" = "exec ${pkgs.foot}/bin/foot";
  "${modifier}+Shift+q" = "kill";
  "${modifier}+d" = "exec ${pkgs.dmenu}/bin/dmenu_path | ${pkgs.dmenu}/bin/dmenu | ${pkgs.findutils}/bin/xargs swaymsg exec --";
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.keycodebindings

An attribute set that assigns keypress to an action using key code. See https://i3wm.org/docs/userguide.html#keybindings.

Type: attribute set of (null or string)

Default: { }

Example:

{
  "214" = "exec /bin/script.sh";
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.left

Home row direction key for moving left.

Type: string

Default: "h"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.menu

Default launcher to use.

Type: string

Default: "\${pkgs.dmenu}/bin/dmenu_path | \${pkgs.dmenu}/bin/dmenu | \${pkgs.findutils}/bin/xargs swaymsg exec --"

Example: "bemenu-run"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.modes

An attribute set that defines binding modes and keybindings inside them

Only basic keybinding is supported (bindsym keycomb action), for more advanced setup use ‘sway.extraConfig’.

Type: attribute set of attribute set of string

Default:

{
  resize = {
    Down = "resize grow height 10 px";
    Escape = "mode default";
    Left = "resize shrink width 10 px";
    Return = "mode default";
    Right = "resize grow width 10 px";
    Up = "resize shrink height 10 px";
    h = "resize shrink width 10 px";
    j = "resize grow height 10 px";
    k = "resize shrink height 10 px";
    l = "resize grow width 10 px";
  };
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.modifier

Modifier key that is used for all default keybindings.

Type: one of “Shift”, “Control”, “Mod1”, “Mod2”, “Mod3”, “Mod4”, “Mod5”

Default: "Mod1"

Example: "Mod4"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.output

An attribute set that defines output modules. See sway-output(5) for options.

Type: attribute set of attribute set of string

Default: { }

Example:

{
  HDMI-A-2 = {
    bg = "~/path/to/background.png fill";
  };
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.right

Home row direction key for moving right.

Type: string

Default: "l"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.seat

An attribute set that defines seat modules. See sway-input(5) for options.

Type: attribute set of attribute set of string

Default: { }

Example:

{
  "*" = {
    hide_cursor = "when-typing enable";
  };
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.startup

Commands that should be executed at startup.

See https://i3wm.org/docs/userguide.html#_automatically_starting_applications_on_i3_startup.

Type: list of (submodule)

Default: [ ]

Example:

[
{ command = "systemctl --user restart waybar"; always = true; }
{ command = "dropbox start"; }
{ command = "firefox"; }
]

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.startup.*.always

Whether to run command on each sway restart.

Type: boolean

Default: false

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.startup.*.command

Command that will be executed on startup.

Type: string

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.terminal

Default terminal to run.

Type: string

Default: "\${pkgs.foot}/bin/foot"

Example: "alacritty"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.up

Home row direction key for moving up.

Type: string

Default: "k"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.window

Window titlebar and border settings.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.window.border

Window border width.

Type: signed integer

Default: 2

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.window.commands

List of commands that should be executed on specific windows. See for_window swaywm option documentation.

Type: list of (submodule)

Default: [ ]

Example:

[
  {
    command = "border pixel 1";
    criteria = {
      class = "XTerm";
    };
  }
]

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.window.commands.*.command

Swaywm command to execute.

Type: string

Example: "border pixel 1"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.window.commands.*.criteria

Criteria of the windows on which command should be executed.

A value of true is equivalent to using an empty criteria (which is different from an empty string criteria).

Type: attribute set of (string or boolean)

Example:

{
  title = "x200: ~/work";
  floating = true;
};

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.window.hideEdgeBorders

Hide window borders adjacent to the screen edges.

Type: one of “none”, “vertical”, “horizontal”, “both”, “smart”

Default: "none"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.window.titlebar

Whether to show window titlebars.

Type: boolean

Default:

''
  true for state version ≥ 23.05
  false for state version < 23.05
''

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.workspaceAutoBackAndForth

Assume you are on workspace “1: www” and switch to “2: IM” using mod+2 because somebody sent you a message. You don’t need to remember where you came from now, you can just press $mod+2 again to switch back to “1: www”.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.workspaceLayout

The mode in which new containers on workspace level will start.

Type: one of “default”, “stacking”, “tabbed”

Default: "default"

Example: "tabbed"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.workspaceOutputAssign

Assign workspaces to outputs.

Type: list of (submodule)

Default: [ ]

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.workspaceOutputAssign.*.output

Name(s) of the output(s) from swaymsg -t get_outputs .

Type: string or list of string

Default: ""

Example: "eDP"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.config.workspaceOutputAssign.*.workspace

Name of the workspace to assign.

Type: string

Default: ""

Example: "Web"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.extraConfig

Extra configuration lines to add to ~/.config/sway/config.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.extraConfigEarly

Like extraConfig, except lines are added to ~/.config/sway/config before all other configuration.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.extraOptions

Command line arguments passed to launch Sway. Please DO NOT report issues if you use an unsupported GPU (proprietary drivers).

Type: list of string

Default: [ ]

Example:

[
  "--verbose"
  "--debug"
  "--unsupported-gpu"
  "--my-next-gpu-wont-be-nvidia"
]

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.extraSessionCommands

Shell commands executed just before Sway is started.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  export SDL_VIDEODRIVER=wayland
  # needs qt5.qtwayland in systemPackages
  export QT_QPA_PLATFORM=wayland
  export QT_WAYLAND_DISABLE_WINDOWDECORATION="1"
  # Fix for some Java AWT applications (e.g. Android Studio),
  # use this if they aren't displayed properly:
  export _JAVA_AWT_WM_NONREPARENTING=1
''

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.swaynag.enable

Whether to enable configuration of swaynag, a lightweight error bar for sway.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/window-managers/i3-sway/swaynag.nix>
wayland.windowManager.sway.swaynag.settings

Configuration written to $XDG_CONFIG_HOME/swaynag/config.

See swaynag(5) for a list of available options and an example configuration. Note, configurations declared under <config> will override the default type values of swaynag.

Type: attribute set of attribute set of (Swaynag config atom (null, bool, int, float, str))

Default: { }

Example:

{
  "<config>" = {
    edge = "bottom";
    font = "Dina 12";
  };

  green = {
    edge = "top";
    background = "00AA00";
    text = "FFFFFF";
    button-background = "00CC00";
    message-padding = 10;
  };
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/swaynag.nix>
wayland.windowManager.sway.systemd.enable

Whether to enable sway-session.target on sway startup. This links to graphical-session.target. Some important environment variables will be imported to systemd and dbus user environment before reaching the target, including

  • DISPLAY

  • WAYLAND_DISPLAY

  • SWAYSOCK

  • XDG_CURRENT_DESKTOP

  • XDG_SESSION_TYPE

  • NIXOS_OZONE_WL

  • XCURSOR_THEME

  • XCURSOR_SIZE You can extend this list using the systemd.variables option.

Type: boolean

Default: true

Example: false

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.systemd.extraCommands

Extra commands to run after D-Bus activation.

Type: list of string

Default:

[
  "systemctl --user reset-failed"
  "systemctl --user start sway-session.target"
  "swaymsg -mt subscribe '[]' || true"
  "systemctl --user stop sway-session.target"
]

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.systemd.variables

Environment variables imported into the systemd and D-Bus user environment.

Type: list of string

Default:

[
  "DISPLAY"
  "WAYLAND_DISPLAY"
  "SWAYSOCK"
  "XDG_CURRENT_DESKTOP"
  "XDG_SESSION_TYPE"
  "NIXOS_OZONE_WL"
  "XCURSOR_THEME"
  "XCURSOR_SIZE"
]

Example:

[
  "--all"
]

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.systemd.xdgAutostart

Whether to enable autostart of applications using systemd-xdg-autostart-generator(8) .

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.wrapperFeatures

Attribute set of features to enable in the wrapper.

Type: submodule

Default: { }

Example:

{
  gtk = true;
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.wrapperFeatures.base

Whether to make use of the base wrapper to execute extra session commands and prepend a dbus-run-session to the sway command.

Type: boolean

Default: true

Example: false

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.wrapperFeatures.gtk

Whether to make use of the wrapGAppsHook wrapper to execute sway with required environment variables for GTK applications.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
wayland.windowManager.sway.xwayland

Enable xwayland, which is needed for the default configuration of sway.

Type: boolean

Default: true

Declared by:

<home-manager/modules/services/window-managers/i3-sway/sway.nix>
xdg.enable

Whether to enable management of XDG base directories.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/misc/xdg.nix>
xdg.cacheHome

Absolute path to directory holding application caches.

Sets XDG_CACHE_HOME for the user if xdg.enable is set true.

Type: path

Default: "~/.cache"

Declared by:

<home-manager/modules/misc/xdg.nix>
xdg.configFile

Attribute set of files to link into the user’s XDG configuration home.

Type: attribute set of (submodule)

Default: { }

Declared by:

<home-manager/modules/misc/xdg.nix>
xdg.configFile.<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/misc/xdg.nix>
xdg.configFile.<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/misc/xdg.nix>
xdg.configFile.<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/misc/xdg.nix>
xdg.configFile.<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/misc/xdg.nix>
xdg.configFile.<name>.source

Path of the source file or directory. If xdg.configFile.<name>.text is non-null then this option will automatically point to a file containing that text.

Type: path

Declared by:

<home-manager/modules/misc/xdg.nix>
xdg.configFile.<name>.target

Path to target file relative to xdg.configHome.

Type: string

Default: name

Declared by:

<home-manager/modules/misc/xdg.nix>
xdg.configFile.<name>.text

Text of the file. If this option is null then xdg.configFile.<name>.source must be set.

Type: null or strings concatenated with “\n”

Default: null

Declared by:

<home-manager/modules/misc/xdg.nix>
xdg.configHome

Absolute path to directory holding application configurations.

Sets XDG_CONFIG_HOME for the user if xdg.enable is set true.

Type: path

Default: "~/.config"

Declared by:

<home-manager/modules/misc/xdg.nix>
xdg.dataFile

Attribute set of files to link into the user’s XDG data home.

Type: attribute set of (submodule)

Default: { }

Declared by:

<home-manager/modules/misc/xdg.nix>
xdg.dataFile.<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/misc/xdg.nix>
xdg.dataFile.<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/misc/xdg.nix>
xdg.dataFile.<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/misc/xdg.nix>
xdg.dataFile.<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/misc/xdg.nix>
xdg.dataFile.<name>.source

Path of the source file or directory. If xdg.dataFile.<name>.text is non-null then this option will automatically point to a file containing that text.

Type: path

Declared by:

<home-manager/modules/misc/xdg.nix>
xdg.dataFile.<name>.target

Path to target file relative to <varname>xdg.dataHome</varname>.

Type: string

Default: name

Declared by:

<home-manager/modules/misc/xdg.nix>
xdg.dataFile.<name>.text

Text of the file. If this option is null then xdg.dataFile.<name>.source must be set.

Type: null or strings concatenated with “\n”

Default: null

Declared by:

<home-manager/modules/misc/xdg.nix>
xdg.dataHome

Absolute path to directory holding application data.

Sets XDG_DATA_HOME for the user if xdg.enable is set true.

Type: path

Default: "~/.local/share"

Declared by:

<home-manager/modules/misc/xdg.nix>
xdg.desktopEntries

Desktop Entries allow applications to be shown in your desktop environment’s app launcher.

You can define entries for programs without entries or override existing entries.

See https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#recognized-keys for more information on options.

Type: attribute set of (submodule)

Default: { }

Example:

{
  firefox = {
    name = "Firefox";
    genericName = "Web Browser";
    exec = "firefox %U";
    terminal = false;
    categories = [ "Application" "Network" "WebBrowser" ];
    mimeType = [ "text/html" "text/xml" ];
  };
}

Declared by:

<home-manager/modules/misc/xdg-desktop-entries.nix>
xdg.desktopEntries.<name>.actions

The set of actions made available to application launchers.

Type: attribute set of (submodule)

Default: { }

Example:

{
  "New Window" = {
    exec = "${pkgs.firefox}/bin/firefox --new-window %u";
  };
}

Declared by:

<home-manager/modules/misc/xdg-desktop-entries.nix>
xdg.desktopEntries.<name>.actions.<name>.exec

Program to execute, possibly with arguments.

Type: null or string

Default: null

Declared by:

<home-manager/modules/misc/xdg-desktop-entries.nix>
xdg.desktopEntries.<name>.actions.<name>.icon

Icon to display in file manager, menus, etc.

Type: null or string or path

Default: null

Declared by:

<home-manager/modules/misc/xdg-desktop-entries.nix>
xdg.desktopEntries.<name>.actions.<name>.name

Name of the action.

Type: string

Default: <name>

Declared by:

<home-manager/modules/misc/xdg-desktop-entries.nix>
xdg.desktopEntries.<name>.categories

Categories in which the entry should be shown in a menu.

Type: null or (list of string)

Default: null

Declared by:

<home-manager/modules/misc/xdg-desktop-entries.nix>
xdg.desktopEntries.<name>.comment

Tooltip for the entry.

Type: null or string

Default: null

Declared by:

<home-manager/modules/misc/xdg-desktop-entries.nix>
xdg.desktopEntries.<name>.exec

Program to execute, possibly with arguments.

Type: null or string

Default: null

Declared by:

<home-manager/modules/misc/xdg-desktop-entries.nix>
xdg.desktopEntries.<name>.genericName

Generic name of the application.

Type: null or string

Default: null

Declared by:

<home-manager/modules/misc/xdg-desktop-entries.nix>
xdg.desktopEntries.<name>.icon

Icon to display in file manager, menus, etc.

Type: null or string or path

Default: null

Declared by:

<home-manager/modules/misc/xdg-desktop-entries.nix>
xdg.desktopEntries.<name>.mimeType

The MIME type(s) supported by this application.

Type: null or (list of string)

Default: null

Declared by:

<home-manager/modules/misc/xdg-desktop-entries.nix>
xdg.desktopEntries.<name>.name

Specific name of the application.

Type: string

Declared by:

<home-manager/modules/misc/xdg-desktop-entries.nix>
xdg.desktopEntries.<name>.noDisplay

Means “this application exists, but don’t display it in the menus”. This can be useful to e.g. associate this application with MIME types.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/misc/xdg-desktop-entries.nix>
xdg.desktopEntries.<name>.prefersNonDefaultGPU

If true, the application prefers to be run on a more powerful discrete GPU if available.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/misc/xdg-desktop-entries.nix>
xdg.desktopEntries.<name>.settings

Extra key-value pairs to add to the [Desktop Entry] section. This may override other values.

Type: attribute set of string

Default: { }

Example:

{
  Keywords = "calc;math";
  DBusActivatable = "false";
}

Declared by:

<home-manager/modules/misc/xdg-desktop-entries.nix>
xdg.desktopEntries.<name>.startupNotify

If true, it is KNOWN that the application will send a “remove” message when started with the DESKTOP_STARTUP_ID environment variable set. If false, it is KNOWN that the application does not work with startup notification at all.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/misc/xdg-desktop-entries.nix>
xdg.desktopEntries.<name>.terminal

Whether the program runs in a terminal window.

Type: null or boolean

Default: false

Declared by:

<home-manager/modules/misc/xdg-desktop-entries.nix>
xdg.desktopEntries.<name>.type

The type of the desktop entry.

Type: one of “Application”, “Link”, “Directory”

Default: "Application"

Declared by:

<home-manager/modules/misc/xdg-desktop-entries.nix>
xdg.mime.enable

Whether to install programs and files to support the XDG Shared MIME-info specification and XDG MIME Applications specification at https://specifications.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html and https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-latest.html, respectively.

Type: boolean

Default: true if host platform is Linux, false otherwise

Declared by:

<home-manager/modules/misc/xdg-mime.nix>
xdg.mime.desktopFileUtilsPackage

The package to use when running update-desktop-database.

Type: package

Default: pkgs.desktop-file-utils

Declared by:

<home-manager/modules/misc/xdg-mime.nix>
xdg.mime.sharedMimeInfoPackage

The package to use when running update-mime-database.

Type: package

Default: pkgs.shared-mime-info

Declared by:

<home-manager/modules/misc/xdg-mime.nix>
xdg.mimeApps.enable

Whether to manage $XDG_CONFIG_HOME/mimeapps.list.

The generated file is read-only.

Type: boolean

Default: false

Declared by:

<home-manager/modules/misc/xdg-mime-apps.nix>
xdg.mimeApps.associations.added

Defines additional associations of applications with mimetypes, as if the .desktop file was listing this mimetype in the first place.

Type: attribute set of ((list of string) or ((list of string) or string) convertible to it)

Default: { }

Example:

{
  "mimetype1" = [ "foo1.desktop" "foo2.desktop" "foo3.desktop" ];
  "mimetype2" = "foo4.desktop";
}

Declared by:

<home-manager/modules/misc/xdg-mime-apps.nix>
xdg.mimeApps.associations.removed

Removes associations of applications with mimetypes, as if the .desktop file was not listing this mimetype in the first place.

Type: attribute set of ((list of string) or ((list of string) or string) convertible to it)

Default: { }

Example:

{
  mimetype1 = "foo5.desktop";
}

Declared by:

<home-manager/modules/misc/xdg-mime-apps.nix>
xdg.mimeApps.defaultApplications

The default application to be used for a given mimetype. This is, for instance, the one that will be started when double-clicking on a file in a file manager. If the application is no longer installed, the next application in the list is attempted, and so on.

Type: attribute set of ((list of string) or ((list of string) or string) convertible to it)

Default: { }

Example:

{
  "mimetype1" = [ "default1.desktop" "default2.desktop" ];
}

Declared by:

<home-manager/modules/misc/xdg-mime-apps.nix>
xdg.portal.enable

Whether to enable XDG desktop integration.

Note, if you use the NixOS module and have useUserPackages = true, make sure to add

environment.pathsToLink = [ "/share/xdg-desktop-portal" "/share/applications" ];

to your system configuration so that the portal definitions and DE provided configurations get linked.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/misc/xdg-portal.nix>
xdg.portal.config

Sets which portal backend should be used to provide the implementation for the requested interface. For details check portals.conf(5).

These will be written with the name $desktop-portals.conf for xdg.portal.config.$desktop and portals.conf for xdg.portal.config.common as an exception.

These, together with xdg.portal.configPackages, will be joined into a directory and passed to xdg-desktop-portal.service through a NIXOS_XDG_DESKTOP_PORTAL_CONFIG_DIR variable.

Type: attribute set of attribute set of (string or ((list of string) or string) convertible to it)

Default: { }

Example:

{
  common = {
    default = [
      "gtk"
    ];
  };
  pantheon = {
    default = [
      "pantheon"
      "gtk"
    ];
    "org.freedesktop.impl.portal.Secret" = [
      "gnome-keyring"
    ];
  };
  x-cinnamon = {
    default = [
      "xapp"
      "gtk"
    ];
  };
}

Declared by:

<home-manager/modules/misc/xdg-portal.nix>
xdg.portal.configPackages

List of packages that provide XDG desktop portal configuration, usually in the form of share/xdg-desktop-portal/$desktop-portals.conf.

Note that configs in xdg.portal.config will be preferred if set.

Type: list of package

Default: [ ]

Example: [ pkgs.gnome.gnome-session ]

Declared by:

<home-manager/modules/misc/xdg-portal.nix>
xdg.portal.extraPortals

List of additional portals that should be passed to the xdg-desktop-portal.service, via the XDG_DESKTOP_PORTAL_DIR variable.

Portals allow interaction with system, like choosing files or taking screenshots. At minimum, a desktop portal implementation should be listed.

Type: list of package

Default: [ ]

Declared by:

<home-manager/modules/misc/xdg-portal.nix>
xdg.portal.xdgOpenUsePortal

Sets environment variable NIXOS_XDG_OPEN_USE_PORTAL to 1 This will make xdg-open use the portal to open programs, which resolves bugs involving programs opening inside FHS envs or with unexpected env vars set from wrappers. See #160923 for more info.

Type: boolean

Default: false

Declared by:

<home-manager/modules/misc/xdg-portal.nix>
xdg.stateFile

Attribute set of files to link into the user’s XDG state home.

Type: attribute set of (submodule)

Default: { }

Declared by:

<home-manager/modules/misc/xdg.nix>
xdg.stateFile.<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/misc/xdg.nix>
xdg.stateFile.<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/misc/xdg.nix>
xdg.stateFile.<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/misc/xdg.nix>
xdg.stateFile.<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/misc/xdg.nix>
xdg.stateFile.<name>.source

Path of the source file or directory. If xdg.stateFile.<name>.text is non-null then this option will automatically point to a file containing that text.

Type: path

Declared by:

<home-manager/modules/misc/xdg.nix>
xdg.stateFile.<name>.target

Path to target file relative to <varname>xdg.stateHome</varname>.

Type: string

Default: name

Declared by:

<home-manager/modules/misc/xdg.nix>
xdg.stateFile.<name>.text

Text of the file. If this option is null then xdg.stateFile.<name>.source must be set.

Type: null or strings concatenated with “\n”

Default: null

Declared by:

<home-manager/modules/misc/xdg.nix>
xdg.stateHome

Absolute path to directory holding application states.

Sets XDG_STATE_HOME for the user if xdg.enable is set true.

Type: path

Default: "~/.local/state"

Declared by:

<home-manager/modules/misc/xdg.nix>
xdg.systemDirs.config

Directory names to add to XDG_CONFIG_DIRS in the user session.

Type: list of string

Default: [ ]

Example: [ "/etc/xdg" ]

Declared by:

<home-manager/modules/misc/xdg-system-dirs.nix>
xdg.systemDirs.data

Directory names to add to XDG_DATA_DIRS in the user session.

Type: list of string

Default: [ ]

Example: [ "/usr/share" "/usr/local/share" ]

Declared by:

<home-manager/modules/misc/xdg-system-dirs.nix>
xdg.userDirs.enable

Whether to manage $XDG_CONFIG_HOME/user-dirs.dirs.

The generated file is read-only.

Type: boolean

Default: false

Declared by:

<home-manager/modules/misc/xdg-user-dirs.nix>
xdg.userDirs.createDirectories

Whether to enable automatic creation of the XDG user directories.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/misc/xdg-user-dirs.nix>
xdg.userDirs.desktop

The Desktop directory.

Type: null or (string or path convertible to it)

Default: "${config.home.homeDirectory}/Desktop"

Declared by:

<home-manager/modules/misc/xdg-user-dirs.nix>
xdg.userDirs.documents

The Documents directory.

Type: null or (string or path convertible to it)

Default: "${config.home.homeDirectory}/Documents"

Declared by:

<home-manager/modules/misc/xdg-user-dirs.nix>
xdg.userDirs.download

The Downloads directory.

Type: null or (string or path convertible to it)

Default: "${config.home.homeDirectory}/Downloads"

Declared by:

<home-manager/modules/misc/xdg-user-dirs.nix>
xdg.userDirs.extraConfig

Other user directories.

Type: attribute set of (string or path convertible to it)

Default: { }

Example:

{
  XDG_MISC_DIR = "${config.home.homeDirectory}/Misc";
}

Declared by:

<home-manager/modules/misc/xdg-user-dirs.nix>
xdg.userDirs.music

The Music directory.

Type: null or (string or path convertible to it)

Default: "${config.home.homeDirectory}/Music"

Declared by:

<home-manager/modules/misc/xdg-user-dirs.nix>
xdg.userDirs.pictures

The Pictures directory.

Type: null or (string or path convertible to it)

Default: "${config.home.homeDirectory}/Pictures"

Declared by:

<home-manager/modules/misc/xdg-user-dirs.nix>
xdg.userDirs.publicShare

The Public share directory.

Type: null or (string or path convertible to it)

Default: "${config.home.homeDirectory}/Public"

Declared by:

<home-manager/modules/misc/xdg-user-dirs.nix>
xdg.userDirs.templates

The Templates directory.

Type: null or (string or path convertible to it)

Default: "${config.home.homeDirectory}/Templates"

Declared by:

<home-manager/modules/misc/xdg-user-dirs.nix>
xdg.userDirs.videos

The Videos directory.

Type: null or (string or path convertible to it)

Default: "${config.home.homeDirectory}/Videos"

Declared by:

<home-manager/modules/misc/xdg-user-dirs.nix>
xfconf.settings

Settings to write to the Xfconf configuration system.

Type: xfconf settings

Default: { }

Example:

{
  xfce4-session = {
    "startup/ssh-agent/enabled" = false;
    "general/LockCommand" = "${pkgs.lightdm}/bin/dm-tool lock";
  };
  xfce4-desktop = {
    "backdrop/screen0/monitorLVDS-1/workspace0/last-image" =
      "${pkgs.nixos-artwork.wallpapers.stripes-logo.gnomeFilePath}";
  };
}

Declared by:

<home-manager/modules/misc/xfconf.nix>
xresources.extraConfig

Additional X server resources contents. If this and all other xresources options are null, then this feature is disabled and no ~/.Xresources link is produced.

Type: strings concatenated with “\n”

Default: ""

Example:

builtins.readFile (
    pkgs.fetchFromGitHub {
        owner = "solarized";
        repo = "xresources";
        rev = "025ceddbddf55f2eb4ab40b05889148aab9699fc";
        sha256 = "0lxv37gmh38y9d3l8nbnsm1mskcv10g3i83j0kac0a2qmypv1k9f";
    } + "/Xresources.dark"
)

Declared by:

<home-manager/modules/xresources.nix>
xresources.path

Path where Home Manager should link the .Xresources file.

Type: string

Default: "$HOME/.Xresources"

Declared by:

<home-manager/modules/xresources.nix>
xresources.properties

X server resources that should be set. Booleans are formatted as “true” or “false” respectively. List elements are recursively formatted as a string and joined by commas. All other values are directly formatted using builtins.toString. Note, that 2-dimensional lists are not supported and specifying one will throw an exception. If this and all other xresources options are null, then this feature is disabled and no ~/.Xresources link is produced.

Type: null or (attribute set of (boolean or signed integer or string or list of (boolean or signed integer or string)))

Default: null

Example:

{
  "Emacs*toolBar" = 0;
  "XTerm*faceName" = "dejavu sans mono";
  "XTerm*charClass" = [ "37:48" "45-47:48" "58:48" "64:48" "126:48" ];
}

Declared by:

<home-manager/modules/xresources.nix>
xsession.enable

Whether to enable X Session.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/xsession.nix>
xsession.initExtra

Extra shell commands to run during initialization.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/xsession.nix>
xsession.numlock.enable

Whether to enable Num Lock.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/misc/numlock.nix>
xsession.pointerCursor.package

Alias of home.pointerCursor.package.

Type: submodule

Declared by:

<home-manager/modules/config/home-cursor.nix>
xsession.pointerCursor.defaultCursor

Alias of home.pointerCursor.x11.defaultCursor.

Type: submodule

Declared by:

<home-manager/modules/config/home-cursor.nix>
xsession.pointerCursor.name

Alias of home.pointerCursor.name.

Type: submodule

Declared by:

<home-manager/modules/config/home-cursor.nix>
xsession.pointerCursor.size

Alias of home.pointerCursor.size.

Type: submodule

Declared by:

<home-manager/modules/config/home-cursor.nix>
xsession.preferStatusNotifierItems

Whether tray applets should prefer using the Status Notifier Items (SNI) protocol, commonly called App Indicators. Note, not all tray applets or status bars support SNI.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/xsession.nix>
xsession.profileExtra

Extra shell commands to run before session start.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/xsession.nix>
xsession.profilePath

Path, relative to HOME, where Home Manager should write the X profile script.

Type: string

Default: ".xprofile"

Example: ".xprofile-hm"

Declared by:

<home-manager/modules/xsession.nix>
xsession.scriptPath

Path, relative to HOME, where Home Manager should write the X session script.

Type: string

Default: ".xsession"

Example: ".xsession-hm"

Declared by:

<home-manager/modules/xsession.nix>
xsession.windowManager.awesome.enable

Whether to enable Awesome window manager.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/window-managers/awesome.nix>
xsession.windowManager.awesome.package

Package to use for running the Awesome WM.

Type: package

Default: pkgs.awesome

Declared by:

<home-manager/modules/services/window-managers/awesome.nix>
xsession.windowManager.awesome.luaModules

List of lua packages available for being used in the Awesome configuration.

Type: list of package

Default: [ ]

Example: [ pkgs.luaPackages.vicious ]

Declared by:

<home-manager/modules/services/window-managers/awesome.nix>
xsession.windowManager.awesome.noArgb

Disable client transparency support, which can be greatly detrimental to performance in some setups

Type: boolean

Default: false

Declared by:

<home-manager/modules/services/window-managers/awesome.nix>
xsession.windowManager.bspwm.enable

Whether to enable bspwm window manager.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/window-managers/bspwm/default.nix>
xsession.windowManager.bspwm.package

The bspwm package to use.

Type: package

Default: pkgs.bspwm

Example: pkgs.bspwm-unstable

Declared by:

<home-manager/modules/services/window-managers/bspwm/default.nix>
xsession.windowManager.bspwm.alwaysResetDesktops

If set to true, desktops configured in monitors will be reset every time the config is run.

If set to false, desktops will only be configured the first time the config is run. This is useful if you want to dynamically add desktops and you don’t want them to be destroyed if you re-run bspwmrc.

Type: boolean

Default: true

Declared by:

<home-manager/modules/services/window-managers/bspwm/default.nix>
xsession.windowManager.bspwm.extraConfig

Additional shell commands to be run at the end of the config file.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  bspc subscribe all > ~/bspc-report.log &
''

Declared by:

<home-manager/modules/services/window-managers/bspwm/default.nix>
xsession.windowManager.bspwm.extraConfigEarly

Like extraConfig, except commands are run at the start of the config file.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/services/window-managers/bspwm/default.nix>
xsession.windowManager.bspwm.monitors

Specifies the names of desktops to create on each monitor.

Type: attribute set of list of string

Default: { }

Example:

{
  HDMI-0 = [
    "web"
    "terminal"
    "III"
    "IV"
  ];
}

Declared by:

<home-manager/modules/services/window-managers/bspwm/default.nix>
xsession.windowManager.bspwm.rules

Rule configuration. The keys of the attribute set are the targets of the rules.

Type: attribute set of (attribute set of (boolean or signed integer or floating point number or string))

Default: { }

Example:

{
  "Gimp" = {
    desktop = "^8";
    state = "floating";
    follow = true;
  };
  "Kupfer.py" = {
    focus = true;
  };
  "Screenkey" = {
    manage = false;
  };
}

Declared by:

<home-manager/modules/services/window-managers/bspwm/default.nix>
xsession.windowManager.bspwm.rules.<name>.border

Whether the node should have border.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/services/window-managers/bspwm/default.nix>
xsession.windowManager.bspwm.rules.<name>.center

Whether the node will be put in the center, in floating mode.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/services/window-managers/bspwm/default.nix>
xsession.windowManager.bspwm.rules.<name>.desktop

The desktop where the rule should be applied.

Type: null or string

Default: null

Example: "^8"

Declared by:

<home-manager/modules/services/window-managers/bspwm/default.nix>
xsession.windowManager.bspwm.rules.<name>.focus

Whether the node should gain focus on creation.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/services/window-managers/bspwm/default.nix>
xsession.windowManager.bspwm.rules.<name>.follow

Whether focus should follow the node when it is moved.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/services/window-managers/bspwm/default.nix>
xsession.windowManager.bspwm.rules.<name>.hidden

Whether the node should occupy any space.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/services/window-managers/bspwm/default.nix>
xsession.windowManager.bspwm.rules.<name>.layer

The layer where a new window should spawn.

Type: null or one of “below”, “normal”, “above”

Default: null

Example: "above"

Declared by:

<home-manager/modules/services/window-managers/bspwm/default.nix>
xsession.windowManager.bspwm.rules.<name>.locked

Whether the node should ignore node --close messages.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/services/window-managers/bspwm/default.nix>
xsession.windowManager.bspwm.rules.<name>.manage

Whether the window should be managed by bspwm. If false, the window will be ignored by bspwm entirely. This is useful for overlay apps, e.g. screenshot tools.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/services/window-managers/bspwm/default.nix>
xsession.windowManager.bspwm.rules.<name>.marked

Whether the node will be marked for deferred actions.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/services/window-managers/bspwm/default.nix>
xsession.windowManager.bspwm.rules.<name>.monitor

The monitor where the rule should be applied.

Type: null or string

Default: null

Example: "HDMI-0"

Declared by:

<home-manager/modules/services/window-managers/bspwm/default.nix>
xsession.windowManager.bspwm.rules.<name>.node

The node where the rule should be applied.

Type: null or string

Default: null

Example: "1"

Declared by:

<home-manager/modules/services/window-managers/bspwm/default.nix>
xsession.windowManager.bspwm.rules.<name>.private

Whether the node should stay in the same tiling position and size.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/services/window-managers/bspwm/default.nix>
xsession.windowManager.bspwm.rules.<name>.rectangle

The node’s geometry, in the format WxH+X+Y.

Type: null or string

Default: null

Example: "800x600+32+32"

Declared by:

<home-manager/modules/services/window-managers/bspwm/default.nix>
xsession.windowManager.bspwm.rules.<name>.splitDir

The direction where the container is going to be split.

Type: null or one of “north”, “west”, “south”, “east”

Default: null

Example: "south"

Declared by:

<home-manager/modules/services/window-managers/bspwm/default.nix>
xsession.windowManager.bspwm.rules.<name>.splitRatio

The ratio between the new window and the previous existing window in the desktop.

Type: null or floating point number

Default: null

Example: 0.65

Declared by:

<home-manager/modules/services/window-managers/bspwm/default.nix>
xsession.windowManager.bspwm.rules.<name>.state

The state in which a new window should spawn.

Type: null or one of “tiled”, “pseudo_tiled”, “floating”, “fullscreen”

Default: null

Example: "floating"

Declared by:

<home-manager/modules/services/window-managers/bspwm/default.nix>
xsession.windowManager.bspwm.rules.<name>.sticky

Whether the node should stay on the focused desktop.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/services/window-managers/bspwm/default.nix>
xsession.windowManager.bspwm.settings

General settings given to bspc config.

Type: attribute set of (boolean or signed integer or floating point number or string or list of (boolean or signed integer or floating point number or string))

Default: { }

Example:

{
  border_width = 2;
  gapless_monocle = true;
  split_ratio = 0.52;
}

Declared by:

<home-manager/modules/services/window-managers/bspwm/default.nix>
xsession.windowManager.bspwm.startupPrograms

Programs to be executed during startup.

Type: list of string

Default: [ ]

Example:

[
  "numlockx on"
  "tilda"
]

Declared by:

<home-manager/modules/services/window-managers/bspwm/default.nix>
xsession.windowManager.command

Command to use to start the window manager.

The default value allows integration with NixOS’ generated xserver configuration.

Extra actions and commands can be specified in xsession.initExtra.

Type: string

Default: "test -n \"$1\" && eval \"$@\""

Example:

let
  xmonad = pkgs.xmonad-with-packages.override {
    packages = self: [ self.xmonad-contrib self.taffybar ];
  };
in
  "${xmonad}/bin/xmonad";

Declared by:

<home-manager/modules/xsession.nix>
xsession.windowManager.fluxbox.enable

Whether to enable Fluxbox window manager.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/window-managers/fluxbox.nix>
xsession.windowManager.fluxbox.package

The fluxbox package to use.

Type: package

Default: pkgs.fluxbox

Declared by:

<home-manager/modules/services/window-managers/fluxbox.nix>
xsession.windowManager.fluxbox.apps

Apps configuration for Fluxbox, written to ~/.fluxbox/apps. Look at the fluxbox(1) manpage for details.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/services/window-managers/fluxbox.nix>
xsession.windowManager.fluxbox.extraCommandLineArgs

Extra command line arguments to pass to fluxbox. Look at the fluxbox(1) manpage for details.

Type: list of string

Default: [ ]

Example:

[
  "-log"
  "/tmp/fluxbox.log"
]

Declared by:

<home-manager/modules/services/window-managers/fluxbox.nix>
xsession.windowManager.fluxbox.init

Init configuration for Fluxbox, written to ~/.fluxbox/init. Look at the fluxbox(1) manpage for details.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/services/window-managers/fluxbox.nix>
xsession.windowManager.fluxbox.keys

Keyboard shortcuts configuration for Fluxbox, written to ~/.fluxbox/keys. Look at the fluxbox-keys(1) manpage for details.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/services/window-managers/fluxbox.nix>
xsession.windowManager.fluxbox.menu

Menu configuration for Fluxbox, written to ~/.fluxbox/menu. Look at the fluxbox-menu(1) manpage for details.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/services/window-managers/fluxbox.nix>
xsession.windowManager.fluxbox.slitlist

Slitlist configuration for Fluxbox, written to ~/.fluxbox/slitlist. Look at the fluxbox(1) manpage for details.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/services/window-managers/fluxbox.nix>
xsession.windowManager.fluxbox.windowmenu

Window menu configuration for Fluxbox, written to ~/.fluxbox/windowmenu. Look at the fluxbox-menu(1) manpage for details.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/services/window-managers/fluxbox.nix>
xsession.windowManager.herbstluftwm.enable

Whether to enable herbstluftwm window manager.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/window-managers/herbstluftwm.nix>
xsession.windowManager.herbstluftwm.package

Package providing the herbstluftwm and herbstclient commands.

Type: package

Default: pkgs.herbstluftwm

Declared by:

<home-manager/modules/services/window-managers/herbstluftwm.nix>
xsession.windowManager.herbstluftwm.extraConfig

Extra configuration lines to add verbatim to $XDG_CONFIG_HOME/herbstluftwm/autostart.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  herbstclient set_layout max
  herbstclient detect_monitors
''

Declared by:

<home-manager/modules/services/window-managers/herbstluftwm.nix>
xsession.windowManager.herbstluftwm.keybinds

Herbstluftwm keybinds.

Type: attribute set of string

Default: { }

Example:

{
  Mod4-o = "split right";
  Mod4-u = "split bottom";
}

Declared by:

<home-manager/modules/services/window-managers/herbstluftwm.nix>
xsession.windowManager.herbstluftwm.mousebinds

Herbstluftwm mousebinds.

Type: attribute set of string

Default: { }

Example:

{
  Mod4-B1 = "move";
  Mod4-B3 = "resize";
}

Declared by:

<home-manager/modules/services/window-managers/herbstluftwm.nix>
xsession.windowManager.herbstluftwm.rules

Herbstluftwm rules.

Type: list of string

Default: [ ]

Example:

[
  "windowtype~'_NET_WM_WINDOW_TYPE_(DIALOG|UTILITY|SPLASH)' focus=on pseudotile=on"
  "windowtype~'_NET_WM_WINDOW_TYPE_(NOTIFICATION|DOCK|DESKTOP)' manage=off"
]

Declared by:

<home-manager/modules/services/window-managers/herbstluftwm.nix>
xsession.windowManager.herbstluftwm.settings

Herbstluftwm settings.

Type: attribute set of (boolean or signed integer or string)

Default: { }

Example:

{
  gapless_grid = false;
  window_border_width = 1;
  window_border_active_color = "#FF0000";
}

Declared by:

<home-manager/modules/services/window-managers/herbstluftwm.nix>
xsession.windowManager.herbstluftwm.tags

Tags to create on startup.

Type: list of string

Default: [ ]

Example:

[ "work" "browser" "music" "gaming" ]

Declared by:

<home-manager/modules/services/window-managers/herbstluftwm.nix>
xsession.windowManager.i3.enable

Whether to enable i3 window manager.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.package

The i3 package to use.

Type: package

Default: pkgs.i3

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config

i3 configuration options.

Type: null or (submodule)

Default: { }

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.assigns

An attribute set that assigns applications to workspaces based on criteria.

Type: attribute set of list of attribute set of (string or boolean)

Default: { }

Example:

{
"1: web" = [{ class = "^Firefox$"; }];
"0: extra" = [{ class = "^Firefox$"; window_role = "About"; }];
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.bars

i3 bars settings blocks. Set to empty list to remove bars completely.

Type: list of (submodule)

Default: see code

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.bars.*.colors

Bar color settings. All color classes can be specified using submodules with ‘border’, ‘background’, ‘text’, fields and RGB color hex-codes as values. See default values for the reference. Note that ‘background’, ‘status’, and ‘separator’ parameters take a single RGB value.

See https://i3wm.org/docs/userguide.html#_colors.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.bars.*.colors.activeWorkspace

Border, background and text color for a workspace button when the workspace is active.

Type: null or (submodule)

Default:

null for state version ≥ 20.09, as example otherwise

Example:

{
  background = "#5f676a";
  border = "#333333";
  text = "#ffffff";
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.bars.*.colors.background

Background color of the bar.

Type: null or string

Default:

null for state version ≥ 20.09, as example otherwise

Example: "#000000"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.bars.*.colors.bindingMode

Border, background and text color for the binding mode indicator

Type: null or (submodule)

Default:

null for state version ≥ 20.09, as example otherwise

Example:

{
  background = "#900000";
  border = "#2f343a";
  text = "#ffffff";
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.bars.*.colors.focusedBackground

Background color of the bar on the currently focused monitor output.

Type: null or string

Default: null

Example: "#000000"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.bars.*.colors.focusedSeparator

Text color to be used for the separator on the currently focused monitor output.

Type: null or string

Default: null

Example: "#666666"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.bars.*.colors.focusedStatusline

Text color to be used for the statusline on the currently focused monitor output.

Type: null or string

Default: null

Example: "#ffffff"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.bars.*.colors.focusedWorkspace

Border, background and text color for a workspace button when the workspace has focus.

Type: null or (submodule)

Default:

null for state version ≥ 20.09, as example otherwise

Example:

{
  background = "#285577";
  border = "#4c7899";
  text = "#ffffff";
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.bars.*.colors.inactiveWorkspace

Border, background and text color for a workspace button when the workspace does not have focus and is not active.

Type: null or (submodule)

Default:

null for state version ≥ 20.09, as example otherwise

Example:

{
  background = "#222222";
  border = "#333333";
  text = "#888888";
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.bars.*.colors.separator

Text color to be used for the separator.

Type: null or string

Default:

null for state version ≥ 20.09, as example otherwise

Example: "#666666"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.bars.*.colors.statusline

Text color to be used for the statusline.

Type: null or string

Default:

null for state version ≥ 20.09, as example otherwise

Example: "#ffffff"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.bars.*.colors.urgentWorkspace

Border, background and text color for a workspace button when the workspace contains a window with the urgency hint set.

Type: null or (submodule)

Default:

null for state version ≥ 20.09, as example otherwise

Example:

{
  background = "#900000";
  border = "#2f343a";
  text = "#ffffff";
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.bars.*.command

Command that will be used to start a bar.

Type: string

Default: "i3bar"

Example: "\${pkgs.i3}/bin/i3bar -t"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.bars.*.extraConfig

Extra configuration lines for this bar.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.bars.*.fonts

Font configuration for this bar.

Type: (list of string) or (submodule)

Default: { }

Example:

{
  names = [ "DejaVu Sans Mono" "FontAwesome5Free" ];
  style = "Bold Semi-Condensed";
  size = 11.0;
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.bars.*.hiddenState

The default bar mode when ‘bar.mode’ == ‘hide’.

Type: null or one of “hide”, “show”

Default:

null for state version ≥ 20.09, as example otherwise

Example: "hide"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.bars.*.id

Specifies the bar ID for the configured bar instance. If this option is missing, the ID is set to bar-x, where x corresponds to the position of the embedding bar block in the config file.

Type: null or string

Default: null

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.bars.*.mode

Bar visibility mode.

Type: null or one of “dock”, “hide”, “invisible”

Default:

null for state version ≥ 20.09, as example otherwise

Example: "dock"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.bars.*.position

The edge of the screen i3bar should show up.

Type: null or one of “top”, “bottom”

Default:

null for state version ≥ 20.09, as example otherwise

Example: "bottom"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.bars.*.statusCommand

Command that will be used to get status lines.

Type: null or string

Default:

null for state version ≥ 20.09, as example otherwise

Example: "\${pkgs.i3status}/bin/i3status"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.bars.*.trayOutput

Where to output tray.

Type: null or string

Default:

null for state version ≥ 20.09, as example otherwise

Example: "primary"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.bars.*.trayPadding

Sets the pixel padding of the system tray. This padding will surround the tray on all sides and between each item.

Type: null or signed integer

Default:

null for state version ≥ 20.09, as example otherwise

Example: null

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.bars.*.workspaceButtons

Whether workspace buttons should be shown or not.

Type: null or boolean

Default:

null for state version ≥ 20.09, as example otherwise

Example: true

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.bars.*.workspaceNumbers

Whether workspace numbers should be displayed within the workspace buttons.

Type: null or boolean

Default:

null for state version ≥ 20.09, as example otherwise

Example: true

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.colors

Color settings. All color classes can be specified using submodules with ‘border’, ‘background’, ‘text’, ‘indicator’ and ‘childBorder’ fields and RGB color hex-codes as values. See default values for the reference. Note that ‘i3.config.colors.background’ parameter takes a single RGB value.

See https://i3wm.org/docs/userguide.html#_changing_colors.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.colors.background

Background color of the window. Only applications which do not cover the whole area expose the color.

Type: string

Default: "#ffffff"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.colors.focused

A window which currently has the focus.

Type: submodule

Default:

{
  background = "#285577";
  border = "#4c7899";
  childBorder = "#285577";
  indicator = "#2e9ef4";
  text = "#ffffff";
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.colors.focusedInactive

A window which is the focused one of its container, but it does not have the focus at the moment.

Type: submodule

Default:

{
  background = "#5f676a";
  border = "#333333";
  childBorder = "#5f676a";
  indicator = "#484e50";
  text = "#ffffff";
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.colors.placeholder

Background and text color are used to draw placeholder window contents (when restoring layouts). Border and indicator are ignored.

Type: submodule

Default:

{
  background = "#0c0c0c";
  border = "#000000";
  childBorder = "#0c0c0c";
  indicator = "#000000";
  text = "#ffffff";
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.colors.unfocused

A window which is not focused.

Type: submodule

Default:

{
  background = "#222222";
  border = "#333333";
  childBorder = "#222222";
  indicator = "#292d2e";
  text = "#888888";
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.colors.urgent

A window which has its urgency hint activated.

Type: submodule

Default:

{
  background = "#900000";
  border = "#2f343a";
  childBorder = "#900000";
  indicator = "#900000";
  text = "#ffffff";
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.defaultWorkspace

The default workspace to show when i3 is launched. This must to correspond to the value of the keybinding of the default workspace.

Type: null or string

Default: null

Example: "workspace number 9"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.floating

Floating window settings.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.floating.border

Floating windows border width.

Type: signed integer

Default: 2

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.floating.criteria

List of criteria for windows that should be opened in a floating mode.

Type: list of attribute set of (string or boolean)

Default: [ ]

Example:

[
  {
    title = "Steam - Update News";
  }
  {
    class = "Pavucontrol";
  }
]

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.floating.modifier

Modifier key or keys that can be used to drag floating windows.

Type: string

Default: "i3.config.modifier"

Example: "Mod4"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.floating.titlebar

Whether to show floating window titlebars.

Type: boolean

Default:

''
  true for state version ≥ 23.05
  config.gaps == null for state version < 23.05
''

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.focus

Focus related settings.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.focus.followMouse

Whether focus should follow the mouse.

Type: boolean

Default: true

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.focus.forceWrapping

Whether to force focus wrapping in tabbed or stacked containers.

This option is deprecated, use focus.wrapping instead.

Type: boolean

Default: false

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.focus.mouseWarping

Whether mouse cursor should be warped to the center of the window when switching focus to a window on a different output.

Type: boolean

Default: true

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.focus.newWindow

This option modifies focus behavior on new window activation.

See https://i3wm.org/docs/userguide.html#focus_on_window_activation

Type: one of “smart”, “urgent”, “focus”, “none”

Default: "smart"

Example: "none"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.focus.wrapping

Whether the window focus commands automatically wrap around the edge of containers.

See https://i3wm.org/docs/userguide.html#_focus_wrapping

Type: one of “yes”, “no”, “force”, “workspace”

Default: "yes"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.fonts

Font configuration for window titles, nagbar…

Type: (list of string) or (submodule)

Default: { }

Example:

{
  names = [ "DejaVu Sans Mono" "FontAwesome5Free" ];
  style = "Bold Semi-Condensed";
  size = 11.0;
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.gaps

Gaps related settings.

Type: null or (submodule)

Default: null

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.gaps.bottom

Bottom gaps value.

Type: null or signed integer

Default: null

Example: 5

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.gaps.horizontal

Horizontal gaps value.

Type: null or signed integer

Default: null

Example: 5

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.gaps.inner

Inner gaps value.

Type: null or signed integer

Default: null

Example: 12

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.gaps.left

Left gaps value.

Type: null or signed integer

Default: null

Example: 5

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.gaps.outer

Outer gaps value.

Type: null or signed integer

Default: null

Example: 5

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.gaps.right

Right gaps value.

Type: null or signed integer

Default: null

Example: 5

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.gaps.smartBorders

This option controls whether to disable container borders on workspace with a single container.

Type: one of “on”, “off”, “no_gaps”

Default: "off"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.gaps.smartGaps

This option controls whether to disable all gaps (outer and inner) on workspace with a single container.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.gaps.top

Top gaps value.

Type: null or signed integer

Default: null

Example: 5

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.gaps.vertical

Vertical gaps value.

Type: null or signed integer

Default: null

Example: 5

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.keybindings

An attribute set that assigns a key press to an action using a key symbol. See https://i3wm.org/docs/userguide.html#keybindings.

Consider to use lib.mkOptionDefault function to extend or override default keybindings instead of specifying all of them from scratch.

Type: attribute set of (null or string)

Default: "Default i3 keybindings."

Example:

let
  modifier = config.xsession.windowManager.i3.config.modifier;
in lib.mkOptionDefault {
  "${modifier}+Return" = "exec i3-sensible-terminal";
  "${modifier}+Shift+q" = "kill";
  "${modifier}+d" = "exec ${pkgs.dmenu}/bin/dmenu_run";
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.keycodebindings

An attribute set that assigns keypress to an action using key code. See https://i3wm.org/docs/userguide.html#keybindings.

Type: attribute set of (null or string)

Default: { }

Example:

{
  "214" = "exec /bin/script.sh";
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.menu

Default launcher to use.

Type: string

Default: "\${pkgs.dmenu}/bin/dmenu_run"

Example: "bemenu-run"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.modes

An attribute set that defines binding modes and keybindings inside them

Only basic keybinding is supported (bindsym keycomb action), for more advanced setup use ‘i3.extraConfig’.

Type: attribute set of attribute set of string

Default:

{
  resize = {
    Down = "resize grow height 10 px or 10 ppt";
    Escape = "mode default";
    Left = "resize shrink width 10 px or 10 ppt";
    Return = "mode default";
    Right = "resize grow width 10 px or 10 ppt";
    Up = "resize shrink height 10 px or 10 ppt";
  };
}

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.modifier

Modifier key that is used for all default keybindings.

Type: one of “Shift”, “Control”, “Mod1”, “Mod2”, “Mod3”, “Mod4”, “Mod5”

Default: "Mod1"

Example: "Mod4"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.startup

Commands that should be executed at startup.

See https://i3wm.org/docs/userguide.html#_automatically_starting_applications_on_i3_startup.

Type: list of (submodule)

Default: [ ]

Example:

[
{ command = "systemctl --user restart polybar"; always = true; notification = false; }
{ command = "dropbox start"; notification = false; }
{ command = "firefox"; }
];

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.startup.*.always

Whether to run command on each i3 restart.

Type: boolean

Default: false

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.startup.*.command

Command that will be executed on startup.

Type: string

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.startup.*.notification

Whether to enable startup-notification support for the command. See --no-startup-id option description in the i3 user guide.

Type: boolean

Default: true

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.startup.*.workspace

Launch application on a particular workspace. DEPRECATED: Use xsession.windowManager.i3.config.assigns instead. See https://github.com/nix-community/home-manager/issues/265.

Type: null or string

Default: null

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.terminal

Default terminal to run.

Type: string

Default: "i3-sensible-terminal"

Example: "alacritty"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.window

Window titlebar and border settings.

Type: submodule

Default: { }

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.window.border

Window border width.

Type: signed integer

Default: 2

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.window.commands

List of commands that should be executed on specific windows. See for_window i3wm option documentation.

Type: list of (submodule)

Default: [ ]

Example:

[
  {
    command = "border pixel 1";
    criteria = {
      class = "XTerm";
    };
  }
]

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.window.commands.*.command

i3wm command to execute.

Type: string

Example: "border pixel 1"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.window.commands.*.criteria

Criteria of the windows on which command should be executed.

A value of true is equivalent to using an empty criteria (which is different from an empty string criteria).

Type: attribute set of (string or boolean)

Example:

{
  title = "x200: ~/work";
  floating = true;
};

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.window.hideEdgeBorders

Hide window borders adjacent to the screen edges.

Type: one of “none”, “vertical”, “horizontal”, “both”, “smart”

Default: "none"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.window.titlebar

Whether to show window titlebars.

Type: boolean

Default:

''
  true for state version ≥ 23.05
  config.gaps == null for state version < 23.05
''

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.workspaceAutoBackAndForth

Assume you are on workspace “1: www” and switch to “2: IM” using mod+2 because somebody sent you a message. You don’t need to remember where you came from now, you can just press $mod+2 again to switch back to “1: www”.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.workspaceLayout

The mode in which new containers on workspace level will start.

Type: one of “default”, “stacking”, “tabbed”

Default: "default"

Example: "tabbed"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.workspaceOutputAssign

Assign workspaces to outputs.

Type: list of (submodule)

Default: [ ]

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.workspaceOutputAssign.*.output

Name(s) of the output(s) from i3-msg -t get_outputs .

Type: string or list of string

Default: ""

Example: "eDP"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.config.workspaceOutputAssign.*.workspace

Name of the workspace to assign.

Type: string

Default: ""

Example: "Web"

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.i3.extraConfig

Extra configuration lines to add to ~/.config/i3/config.

Type: strings concatenated with “\n”

Default: ""

Declared by:

<home-manager/modules/services/window-managers/i3-sway/i3.nix>
xsession.windowManager.spectrwm.enable

Whether to enable Spectrwm window manager.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/window-managers/spectrwm.nix>
xsession.windowManager.spectrwm.package

Package providing the spectrwm command.

Type: package

Default: pkgs.spectrwm

Declared by:

<home-manager/modules/services/window-managers/spectrwm.nix>
xsession.windowManager.spectrwm.bindings

Spectrwm keybindings.

Type: attribute set of string

Default: { }

Example:

{
  term = "Mod+Return";
  restart = "Mod+Shift+r";
  quit = "Mod+Shift+q";
}

Declared by:

<home-manager/modules/services/window-managers/spectrwm.nix>
xsession.windowManager.spectrwm.programs

Spectrwm programs variables.

Type: attribute set of string

Default: { }

Example:

{
  term = "alacritty";
  search = "dmenu -ip -p 'Window name/id:';
}

Declared by:

<home-manager/modules/services/window-managers/spectrwm.nix>
xsession.windowManager.spectrwm.quirks

Spectrwm quicks (custom window rules).

Type: attribute set of string

Default: { }

Example:

{
  Matplotlib = "FLOAT";
  Pavucontrol = "FLOAT";
}

Declared by:

<home-manager/modules/services/window-managers/spectrwm.nix>
xsession.windowManager.spectrwm.settings

Spectrwm settings.

Type: attribute set of (boolean or signed integer or string)

Default: { }

Example:

{
  modkey = "Mod4";
  workspace_limit = 5;
  focus_mode = "manual";
  focus_close = "next";
}

Declared by:

<home-manager/modules/services/window-managers/spectrwm.nix>
xsession.windowManager.spectrwm.unbindings

List of keybindings to disable from default Spectrwm configuration.

Type: list of string

Default: [ ]

Example:

[
  "MOD+e"
  "MOD+f"
  "MOD+m"
  "MOD+s"
  "MOD+u"
  "MOD+t"
]

Declared by:

<home-manager/modules/services/window-managers/spectrwm.nix>
xsession.windowManager.xmonad.enable

Whether to enable xmonad window manager.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/window-managers/xmonad.nix>
xsession.windowManager.xmonad.enableContribAndExtras

Enable xmonad-{contrib,extras} in xmonad.

Type: boolean

Default: false

Declared by:

<home-manager/modules/services/window-managers/xmonad.nix>
xsession.windowManager.xmonad.config

The configuration file to be used for xmonad. This must be an absolute path or null in which case ~/.xmonad/xmonad.hs will not be managed by Home Manager.

If this option is set to a non-null value, recompilation of xmonad outside of Home Manager (e.g. via xmonad --recompile) will fail.

Type: null or path

Default: null

Example:

pkgs.writeText "xmonad.hs" ''
  import XMonad
  main = xmonad defaultConfig
      { terminal    = "urxvt"
      , modMask     = mod4Mask
      , borderWidth = 3
      }
''

Declared by:

<home-manager/modules/services/window-managers/xmonad.nix>
xsession.windowManager.xmonad.extraPackages

Extra packages available to GHC when rebuilding xmonad. The value must be a function which receives the attribute set defined in haskellPackages as the sole argument.

Type: unspecified value

Default: "self: []"

Example:

haskellPackages: [
  haskellPackages.xmonad-contrib
  haskellPackages.monad-logger
]

Declared by:

<home-manager/modules/services/window-managers/xmonad.nix>
xsession.windowManager.xmonad.haskellPackages

The haskellPackages used to build xmonad and other packages. This can be used to change the GHC version used to build xmonad and the packages listed in extraPackages.

Type: unspecified value

Default: pkgs.haskellPackages

Example: pkgs.haskell.packages.ghc784

Declared by:

<home-manager/modules/services/window-managers/xmonad.nix>
xsession.windowManager.xmonad.libFiles

Additional files that will be saved in ~/.xmonad/lib/ and included in the configuration build. The keys are the file names while the values are paths to the contents of the files.

Type: attribute set of path

Default: { }

Example:

{
  "Tools.hs" = pkgs.writeText "Tools.hs" ''
     module Tools where
     screenshot = "scrot"
   '';
}

Declared by:

<home-manager/modules/services/window-managers/xmonad.nix>