Options Search
Last update: March 8, 2026 at 10:08 UTC
| Option Name | Description | Type |
|---|---|---|
| accounts.calendar.accounts | List of calendars. | attribute set of (submodule) |
| 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. | list of string |
| accounts.calendar.accounts.<name>.khal.color | Color in which events in this calendar are displayed. For instance 'light green' or an RGB color '#ff0000' | null or string |
| accounts.calendar.accounts.<name>.khal.enable | Whether to enable khal access. | boolean |
| accounts.calendar.accounts.<name>.khal.glob | The glob expansion to be searched for events or birthdays when type is set to discover. | string |
| accounts.calendar.accounts.<name>.khal.priority | Priority of a calendar used for coloring (calendar with highest priority is preferred). | signed integer |
| accounts.calendar.accounts.<name>.khal.readOnly | Keep khal from making any changes to this account. | boolean |
| accounts.calendar.accounts.<name>.khal.type | Either a single calendar (calendar which is the default) or a directory with multiple calendars (discover). | one of "calendar", "discover" |
| accounts.calendar.accounts.<name>.local | Local configuration for the calendar. | submodule |
| accounts.calendar.accounts.<name>.local.encoding | File encoding for items, both content and file name. Defaults to UTF-8. | null or string |
| accounts.calendar.accounts.<name>.local.fileExt | The file extension to use. | null or string |
| accounts.calendar.accounts.<name>.local.path | The path of the storage. | string |
| accounts.calendar.accounts.<name>.local.type | The type of the storage. | one of "filesystem", "singlefile" |
| accounts.calendar.accounts.<name>.name | Unique identifier of the calendar. This is set to the attribute name of the calendar configuration. | string |
| accounts.calendar.accounts.<name>.pimsync.enable | Whether to enable synchronization using pimsync. | boolean |
| accounts.calendar.accounts.<name>.pimsync.extraLocalStorageDirectives | Extra directives that should be added under this accounts local storage directive | anything |
| accounts.calendar.accounts.<name>.pimsync.extraPairDirectives | Extra directives that should be added under this accounts pair directive | anything |
| accounts.calendar.accounts.<name>.pimsync.extraRemoteStorageDirectives | Extra directives that should be added under this accounts remote storage directive | anything |
| accounts.calendar.accounts.<name>.primary | Whether this is the primary account. Only one account may be set as primary. | boolean |
| accounts.calendar.accounts.<name>.primaryCollection | The primary collection of the account. Required when an account has multiple collections. | null or string |
| accounts.calendar.accounts.<name>.qcal.enable | Whether to enable qcal access. | boolean |
| accounts.calendar.accounts.<name>.remote | Remote configuration for the calendar. | null or (submodule) |
| accounts.calendar.accounts.<name>.remote.passwordCommand | A command that prints the password to standard output. | null or (list of string) |
| accounts.calendar.accounts.<name>.remote.type | The type of the storage. | one of "caldav", "http", "google_calendar" |
| accounts.calendar.accounts.<name>.remote.url | The URL of the storage. | null or string |
| accounts.calendar.accounts.<name>.remote.userName | User name for authentication. | null or string |
| accounts.calendar.accounts.<name>.thunderbird.color | Display color of the calendar in hex | string |
| accounts.calendar.accounts.<name>.thunderbird.enable | Whether to enable the Thunderbird mail client for this account. | boolean |
| accounts.calendar.accounts.<name>.thunderbird.profiles | List of Thunderbird profiles for which this account should be enabled. If this list is empty (the default), this account will be enabled for all declared profiles. | list of string |
| accounts.calendar.accounts.<name>.thunderbird.readOnly | Mark calendar as read only | boolean |
| accounts.calendar.accounts.<name>.vdirsyncer.auth | Authentication settings. The default is `basic`. | null or one of "basic", "digest", "guess" |
| 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. | null or string or list of string |
| 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. | null or (list of string) |
| 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. | null or (list of string) |
| accounts.calendar.accounts.<name>.vdirsyncer.collections | The collections to synchronize between the storages. | null or (list of (string or list of string)) |
| 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. | null or one of "remote wins", "local wins" or list of string |
| accounts.calendar.accounts.<name>.vdirsyncer.enable | Whether to enable synchronization using vdirsyncer. | boolean |
| 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. | null or (list of string) |
| accounts.calendar.accounts.<name>.vdirsyncer.metadata | Metadata keys that should be synchronized when vdirsyncer metasync is executed. | list of string |
| 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. | null or one of "revert", "error", "ignore" |
| 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. | null or strings concatenated with "\n" |
| 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. | null or (submodule) |
| accounts.calendar.accounts.<name>.vdirsyncer.timeRange.end | End of time range to show. | string |
| accounts.calendar.accounts.<name>.vdirsyncer.timeRange.start | Start of time range to show. | string |
| accounts.calendar.accounts.<name>.vdirsyncer.tokenFile | A file path where access tokens are stored. | null or string |
| accounts.calendar.accounts.<name>.vdirsyncer.urlCommand | A command that prints the URL of the storage. | null or (list of string) |
| accounts.calendar.accounts.<name>.vdirsyncer.useVcard4 | Specifies whether vdirsyncer should request vCards in version 4.0. If set to `false` then vdirsyncer will default to version 3.0. | boolean |
| accounts.calendar.accounts.<name>.vdirsyncer.userAgent | The user agent to report to the server. Defaults to `vdirsyncer`. | null or string |
| accounts.calendar.accounts.<name>.vdirsyncer.userNameCommand | A command that prints the user name to standard output. | null or (list of string) |
| accounts.calendar.accounts.<name>.vdirsyncer.verify | Null or path to certificate to verify SSL against | null or absolute path |
| 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. | null or string |
| 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. | string |
| accounts.contact.accounts | List of contacts. | attribute set of (submodule) |
| 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. | list of string |
| accounts.contact.accounts.<name>.khal.collections | VCARD collections to be searched for contact birthdays. | null or (list of string) |
| accounts.contact.accounts.<name>.khal.color | Color in which events in this calendar are displayed. For instance 'light green' or an RGB color '#ff0000' | null or string |
| accounts.contact.accounts.<name>.khal.enable | Whether to enable khal access. | boolean |
| accounts.contact.accounts.<name>.khal.priority | Priority of a calendar used for coloring (calendar with highest priority is preferred). | signed integer |
| accounts.contact.accounts.<name>.khal.readOnly | Keep khal from making any changes to this account. | boolean |
| accounts.contact.accounts.<name>.khard.addressbooks | If provided, each item on this list will generate an entry on khard configuration file as a separate addressbook (vdir). This is used for hardcoding sub-directories under the local storage path (accounts.contact.accounts.<name>.local.path) for khard. The default value will set the aforementioned path as a single vdir. | (list of string) or string convertible to it |
| accounts.contact.accounts.<name>.khard.enable | Whether to enable khard access. | boolean |
| accounts.contact.accounts.<name>.khard.glob | The glob expansion to be searched for contacts when type is set to discover. | string |
| accounts.contact.accounts.<name>.khard.type | Either a single vdir located in [](#opt-accounts.contact.accounts._name_.local.path) or multiple automatically discovered vdirs in [](#opt-accounts.contact.accounts._name_.local.path)/[](#opt-accounts.contact.accounts._name_.khard.glob). | one of "vdir", "discover" |
| accounts.contact.accounts.<name>.local | Local configuration for the contacts. | submodule |
| accounts.contact.accounts.<name>.local.encoding | File encoding for items, both content and file name. Defaults to UTF-8. | null or string |
| accounts.contact.accounts.<name>.local.fileExt | The file extension to use. | null or string |
| accounts.contact.accounts.<name>.local.path | The path of the storage. | string |
| accounts.contact.accounts.<name>.local.type | The type of the storage. | one of "filesystem", "singlefile" |
| accounts.contact.accounts.<name>.name | Unique identifier of the contact account. This is set to the attribute name of the contact configuration. | string |
| accounts.contact.accounts.<name>.pimsync.enable | Whether to enable synchronization using pimsync. | boolean |
| accounts.contact.accounts.<name>.pimsync.extraLocalStorageDirectives | Extra directives that should be added under this accounts local storage directive | anything |
| accounts.contact.accounts.<name>.pimsync.extraPairDirectives | Extra directives that should be added under this accounts pair directive | anything |
| accounts.contact.accounts.<name>.pimsync.extraRemoteStorageDirectives | Extra directives that should be added under this accounts remote storage directive | anything |
| accounts.contact.accounts.<name>.remote | Remote configuration for the contacts. | null or (submodule) |
| accounts.contact.accounts.<name>.remote.passwordCommand | A command that prints the password to standard output. | null or (list of string) |
| accounts.contact.accounts.<name>.remote.type | The type of the storage. | one of "carddav", "http", "google_contacts" |
| accounts.contact.accounts.<name>.remote.url | The URL of the storage. | null or string |
| accounts.contact.accounts.<name>.remote.userName | User name for authentication. | null or string |
| accounts.contact.accounts.<name>.thunderbird.enable | Whether to enable the Thunderbird mail client for this account. | boolean |
| accounts.contact.accounts.<name>.thunderbird.profiles | List of Thunderbird profiles for which this account should be enabled. If this list is empty (the default), this account will be enabled for all declared profiles. | list of string |
| accounts.contact.accounts.<name>.thunderbird.token | A token is generated when adding an address book manually to Thunderbird, this can be entered here. | null or string |
| accounts.contact.accounts.<name>.vdirsyncer.auth | Authentication settings. The default is `basic`. | null or one of "basic", "digest", "guess" |
| 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. | null or string or list of string |
| 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. | null or (list of string) |
| 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. | null or (list of string) |
| accounts.contact.accounts.<name>.vdirsyncer.collections | The collections to synchronize between the storages. | null or (list of (string or list of string)) |
| 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. | null or one of "remote wins", "local wins" or list of string |
| accounts.contact.accounts.<name>.vdirsyncer.enable | Whether to enable synchronization using vdirsyncer. | boolean |
| 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. | null or (list of string) |
| accounts.contact.accounts.<name>.vdirsyncer.metadata | Metadata keys that should be synchronized when vdirsyncer metasync is executed. | list of string |
| 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. | null or one of "revert", "error", "ignore" |
| 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. | null or strings concatenated with "\n" |
| 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. | null or (submodule) |
| accounts.contact.accounts.<name>.vdirsyncer.timeRange.end | End of time range to show. | string |
| accounts.contact.accounts.<name>.vdirsyncer.timeRange.start | Start of time range to show. | string |
| accounts.contact.accounts.<name>.vdirsyncer.tokenFile | A file path where access tokens are stored. | null or string |
| accounts.contact.accounts.<name>.vdirsyncer.urlCommand | A command that prints the URL of the storage. | null or (list of string) |
| accounts.contact.accounts.<name>.vdirsyncer.useVcard4 | Specifies whether vdirsyncer should request vCards in version 4.0. If set to `false` then vdirsyncer will default to version 3.0. | boolean |
| accounts.contact.accounts.<name>.vdirsyncer.userAgent | The user agent to report to the server. Defaults to `vdirsyncer`. | null or string |
| accounts.contact.accounts.<name>.vdirsyncer.userNameCommand | A command that prints the user name to standard output. | null or (list of string) |
| accounts.contact.accounts.<name>.vdirsyncer.verify | Null or path to certificate to verify SSL against | null or absolute path |
| 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. | null or string |
| 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. | string |
| accounts.email.accounts | List of email accounts. | attribute set of (submodule) |
| accounts.email.accounts.<name>.address | The email address of this account. | string matching the pattern .*@.* |
| accounts.email.accounts.<name>.aerc.enable | Whether to enable aerc. | boolean |
| accounts.email.accounts.<name>.aerc.extraAccounts | Extra config added to the configuration section for this account in {file}`$HOME/.config/aerc/accounts.conf`. See {manpage}`aerc-accounts(5)`. | attribute set of (values (null, bool, int, string, or float) or a list of values, that will be joined with a comma) |
| accounts.email.accounts.<name>.aerc.extraBinds | Extra bindings specific to this account, added to {file}`$HOME/.config/aerc/binds.conf`. See {manpage}`aerc-binds(5)`. | attribute set of (strings concatenated with "\n" or attribute set of (values (null, bool, int, string, or float) or a list of values, that will be joined with a comma)) |
| accounts.email.accounts.<name>.aerc.extraConfig | Config specific to this account, added to {file}`$HOME/.config/aerc/aerc.conf`. Aerc only supports per-account UI configuration. For other sections of {file}`$HOME/.config/aerc/aerc.conf`, use `programs.aerc.extraConfig`. See {manpage}`aerc-config(5)`. | attribute set of (strings concatenated with "\n" or attribute set of (values (null, bool, int, string, or float) or a list of values, that will be joined with a comma)) |
| accounts.email.accounts.<name>.aerc.imapAuth | Sets the authentication mechanism if imap is used as the incoming method. See {manpage}`aerc-imap(5)`. | null or one of "oauthbearer", "xoauth2" |
| accounts.email.accounts.<name>.aerc.imapOauth2Params | Sets the oauth2 params if authentication mechanism oauthbearer or xoauth2 is used. See {manpage}`aerc-imap(5)`. | null or (submodule) |
| accounts.email.accounts.<name>.aerc.imapOauth2Params.client_id | The OAuth2 client identifier. | null or string |
| accounts.email.accounts.<name>.aerc.imapOauth2Params.client_secret | The OAuth2 client secret. | null or string |
| accounts.email.accounts.<name>.aerc.imapOauth2Params.scope | The OAuth2 requested scope. | null or string |
| accounts.email.accounts.<name>.aerc.imapOauth2Params.token_endpoint | The OAuth2 token endpoint. | null or string |
| accounts.email.accounts.<name>.aerc.smtpAuth | Sets the authentication mechanism if smtp is used as the outgoing method. See {manpage}`aerc-smtp(5)`. | null or one of "none", "plain", "login", "oauthbearer", "xoauth2" |
| accounts.email.accounts.<name>.aerc.smtpOauth2Params | Sets the oauth2 params if authentication mechanism oauthbearer or xoauth2 is used. See {manpage}`aerc-imap(5)`. | null or (submodule) |
| accounts.email.accounts.<name>.aerc.smtpOauth2Params.client_id | The OAuth2 client identifier. | null or string |
| accounts.email.accounts.<name>.aerc.smtpOauth2Params.client_secret | The OAuth2 client secret. | null or string |
| accounts.email.accounts.<name>.aerc.smtpOauth2Params.scope | The OAuth2 requested scope. | null or string |
| accounts.email.accounts.<name>.aerc.smtpOauth2Params.token_endpoint | The OAuth2 token endpoint. | null or string |
| accounts.email.accounts.<name>.aliases | Alternative identities of this account. | list of (string matching the pattern .*@.* or (submodule)) |
| accounts.email.accounts.<name>.alot.contactCompletion | Contact completion configuration as expected per alot. See [alot's wiki](http://alot.readthedocs.io/en/latest/configuration/contacts_completion.html) for explanation about possible values. | attribute set of string |
| accounts.email.accounts.<name>.alot.extraConfig | Extra settings to add to this Alot account configuration. | strings concatenated with "\n" |
| accounts.email.accounts.<name>.alot.sendMailCommand | Command to send a mail. If msmtp is enabled for the account, then this is set to {command}`msmtpq --read-envelope-from --read-recipients`. | null or string |
| accounts.email.accounts.<name>.astroid.enable | Whether to enable Astroid. | boolean |
| accounts.email.accounts.<name>.astroid.extraConfig | Extra settings to add to this astroid account configuration. | attribute set of anything |
| accounts.email.accounts.<name>.astroid.sendMailCommand | Command to send a mail. If msmtp is enabled for the account, then this is set to {command}`msmtpq --read-envelope-from --read-recipients`. | string |
| accounts.email.accounts.<name>.enable | Whether this account is enabled. Potentially useful to allow setting email configuration globally then enabling or disabling on specific systems. | boolean |
| 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. | one of "davmail", "fastmail.com", "gmail.com", "mailbox.org", "migadu.com", "outlook.office365.com", "plain", "posteo.de", "runbox.com", "yandex.com" |
| accounts.email.accounts.<name>.folders | Standard email folders. | submodule |
| accounts.email.accounts.<name>.folders.drafts | Relative path of the drafts mail folder. | null or string |
| accounts.email.accounts.<name>.folders.inbox | Relative path of the inbox mail. | string |
| accounts.email.accounts.<name>.folders.sent | Relative path of the sent mail folder. | null or string |
| accounts.email.accounts.<name>.folders.trash | Relative path of the deleted mail folder. | string |
| 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`. | boolean |
| accounts.email.accounts.<name>.getmail.destinationCommand | Specify a command delivering the incoming mail to your maildir. | null or string |
| accounts.email.accounts.<name>.getmail.enable | Whether to enable the getmail mail retriever for this account. | boolean |
| accounts.email.accounts.<name>.getmail.mailboxes | A non-empty list of mailboxes. To download all mail you can use the `ALL` mailbox. | non-empty (list of string) |
| 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`. | boolean |
| accounts.email.accounts.<name>.gpg | GPG configuration. | null or (submodule) |
| accounts.email.accounts.<name>.gpg.encryptByDefault | Encrypt outgoing messages by default. | boolean |
| accounts.email.accounts.<name>.gpg.key | The key to use as listed in {command}`gpg --list-keys`. | string |
| accounts.email.accounts.<name>.gpg.signByDefault | Sign messages by default. | boolean |
| accounts.email.accounts.<name>.himalaya.enable | Whether to enable the email client Himalaya CLI for this email account. | boolean |
| accounts.email.accounts.<name>.himalaya.settings | Himalaya CLI configuration for this email account. See <https://github.com/pimalaya/himalaya/blob/master/config.sample.toml> for supported values. | open submodule of (TOML value) |
| accounts.email.accounts.<name>.imap | The IMAP configuration to use for this account. | null or (submodule) |
| accounts.email.accounts.<name>.imap.authentication | The authentication mechanism. | null or string or one of "anonymous", "apop", "clear", "cram_md5", "digest_md5", "gssapi", "login", "ntlm", "plain", "xoauth2" |
| accounts.email.accounts.<name>.imap.host | Hostname of IMAP server. | string |
| accounts.email.accounts.<name>.imap.port | The port on which the IMAP server listens. If `null` then the default port is used. | null or 16 bit unsigned integer; between 0 and 65535 (both inclusive) |
| accounts.email.accounts.<name>.imap.tls | Configuration for secure connections. | submodule |
| 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. | null or absolute path |
| accounts.email.accounts.<name>.imap.tls.enable | Whether to enable TLS/SSL. | boolean |
| accounts.email.accounts.<name>.imap.tls.useStartTls | Whether to use STARTTLS. | boolean |
| accounts.email.accounts.<name>.imapnotify.boxes | IMAP folders to watch. | list of string |
| accounts.email.accounts.<name>.imapnotify.enable | Whether to enable imapnotify. | boolean |
| accounts.email.accounts.<name>.imapnotify.extraArgs | Extra arguments to pass to goimapnotify. | list of string |
| accounts.email.accounts.<name>.imapnotify.extraConfig | Additional configuration to add for this account. | JSON value |
| accounts.email.accounts.<name>.imapnotify.onNotify | Shell commands to run on any event. | string or attribute set of string |
| accounts.email.accounts.<name>.imapnotify.onNotifyPost | Shell commands to run after onNotify event. | string or attribute set of string |
| accounts.email.accounts.<name>.jmap | The JMAP configuration to use for this account. | null or (submodule) |
| accounts.email.accounts.<name>.jmap.host | Hostname of JMAP server. If both this option and [](#opt-accounts.email.accounts._name_.jmap.sessionUrl) are specified, `host` is preferred by applications when establishing a session. | null or string |
| accounts.email.accounts.<name>.jmap.sessionUrl | URL for the JMAP Session resource. If both this option and [](#opt-accounts.email.accounts._name_.jmap.host) are specified, `host` is preferred by applications when establishing a session. | null or string |
| accounts.email.accounts.<name>.lieer.enable | Whether to enable lieer Gmail synchronization for notmuch. | boolean |
| accounts.email.accounts.<name>.lieer.notmuchSetupWarning | Warn if Notmuch is not also enabled for this account. This can safely be disabled if {command}`notmuch init` has been used to configure this account outside of Home Manager. | boolean |
| accounts.email.accounts.<name>.lieer.settings | Settings which are applied to {file}`.gmailieer.json` for the account. See the [lieer manual](https://github.com/gauteh/lieer/) for documentation of settings not explicitly covered by this module. | open submodule of (JSON value) |
| accounts.email.accounts.<name>.lieer.settings.drop_non_existing_label | Allow missing labels on the Gmail side to be dropped. | boolean |
| 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. | string |
| 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](https://github.com/gauteh/lieer/issues/120) for more details. | boolean |
| accounts.email.accounts.<name>.lieer.settings.ignore_remote_labels | Set Gmail labels to ignore when syncing from remote labels to local tags (before translations). | list of string |
| accounts.email.accounts.<name>.lieer.settings.ignore_tags | Set labels to ignore when syncing from local tags to remote labels (after translations). | list of string |
| accounts.email.accounts.<name>.lieer.settings.local_trash_tag | Local tag to which the remote Gmail 'TRASH' label is translated. | string |
| accounts.email.accounts.<name>.lieer.settings.remove_local_messages | Remove local messages that have been deleted on the remote. | boolean |
| accounts.email.accounts.<name>.lieer.settings.replace_slash_with_dot | Replace '/' with '.' in Gmail labels. | boolean |
| accounts.email.accounts.<name>.lieer.settings.timeout | HTTP timeout in seconds. 0 means forever or system timeout. | unsigned integer, meaning >=0 |
| accounts.email.accounts.<name>.lieer.sync.enable | Whether to enable lieer synchronization service. | boolean |
| 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 {manpage}`systemd.time(7)` for more information about the format. | string |
| accounts.email.accounts.<name>.maildir | Maildir configuration for this account. | null or (submodule) |
| 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. | string |
| accounts.email.accounts.<name>.mbsync.create | Automatically create missing mailboxes within the given mail store. | one of "none", "maildir", "imap", "both" |
| accounts.email.accounts.<name>.mbsync.enable | Whether to enable synchronization using mbsync. | boolean |
| accounts.email.accounts.<name>.mbsync.expunge | Permanently remove messages marked for deletion from the given mail store. | one of "none", "maildir", "imap", "both" |
| accounts.email.accounts.<name>.mbsync.extraConfig.account | Account section extra configuration. | attribute set of (string or signed integer or boolean or list of string) |
| accounts.email.accounts.<name>.mbsync.extraConfig.channel | Per channel extra configuration. | attribute set of (string or signed integer or boolean or list of string) |
| accounts.email.accounts.<name>.mbsync.extraConfig.local | Local store extra configuration. | attribute set of (string or signed integer or boolean or list of string) |
| accounts.email.accounts.<name>.mbsync.extraConfig.remote | Remote store extra configuration. | attribute set of (string or signed integer or boolean or list of string) |
| accounts.email.accounts.<name>.mbsync.flatten | If set, flattens the hierarchy within the maildir by substituting the canonical hierarchy delimiter `/` with this value. | null or string |
| 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. | attribute set of (submodule) |
| 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. | attribute set of (submodule) |
| accounts.email.accounts.<name>.mbsync.groups.<name>.channels.<name>.extraConfig | Extra configuration lines to add to *THIS* channel's configuration. | attribute set of (string or signed integer or boolean or list of string) |
| 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`. | string |
| 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. | string |
| 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`. | string |
| 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. | list of string |
| 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. | string |
| accounts.email.accounts.<name>.mbsync.patterns | Pattern of mailboxes to synchronize. | list of string |
| accounts.email.accounts.<name>.mbsync.remove | Propagate mailbox deletions to the given mail store. | one of "none", "maildir", "imap", "both" |
| accounts.email.accounts.<name>.mbsync.subFolders | The on-disk folder naming style. This option has no effect when {option}`flatten` is used. | one of "Verbatim", "Maildir++", "Legacy" |
| accounts.email.accounts.<name>.meli.enable | Whether to enable the meli mail client for this account. Requires SMTP settings.. | boolean |
| accounts.email.accounts.<name>.meli.mailboxAliases | Folder display name | attribute set of (attribute set) |
| accounts.email.accounts.<name>.meli.mailboxes | Mailboxes to show in meli | list of string |
| accounts.email.accounts.<name>.meli.settings | Account specific meli configuration | open submodule of (TOML value) |
| 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 {command}`msmtp` or {command}`msmtpq` tool. For example, {command}`msmtp --account=private` would send using the account defined in {option}`accounts.email.accounts.private`. If the `--account` option is not given then the primary account will be used. | boolean |
| accounts.email.accounts.<name>.msmtp.extraConfig | Extra configuration options to add to {file}`~/.msmtprc`. See <https://marlam.de/msmtp/msmtprc.txt> for examples. | attribute set of string |
| accounts.email.accounts.<name>.msmtp.tls.fingerprint | Fingerprint of a trusted TLS certificate. The fingerprint can be obtained by executing {command}`msmtp --serverinfo --tls --tls-certcheck=off`. | null or string matching the pattern ([[:alnum:]]{2}:)+[[:alnum:]]{2} |
| accounts.email.accounts.<name>.mu.enable | Whether to enable mu indexing. | boolean |
| accounts.email.accounts.<name>.mujmap.enable | Whether to enable mujmap JMAP synchronization for notmuch. | boolean |
| accounts.email.accounts.<name>.mujmap.notmuchSetupWarning | Warn if Notmuch is not also enabled for this account. This can safely be disabled if {file}`mujmap.toml` is managed outside of Home Manager. | boolean |
| accounts.email.accounts.<name>.mujmap.settings | Settings which are applied to {file}`mujmap.toml` for the account. See the [mujmap project](https://github.com/elizagamedev/mujmap) for documentation of settings not explicitly covered by this module. | open submodule of (TOML value) |
| accounts.email.accounts.<name>.mujmap.settings.auto_create_new_mailboxes | Whether to create new mailboxes automatically on the server from notmuch tags. | boolean |
| 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. | null or string |
| 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 [](#opt-accounts.email.accounts._name_.mujmap.settings.session_url). If `null`, defaults to [](#opt-accounts.email.accounts._name_.jmap.host). | null or string |
| 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 [](#opt-accounts.email.accounts._name_.passwordCommand). | null or string or list of string |
| accounts.email.accounts.<name>.mujmap.settings.session_url | Session URL to connect to. Mutually exclusive with [](#opt-accounts.email.accounts._name_.mujmap.settings.fqdn). If `null`, defaults to [](#opt-accounts.email.accounts._name_.jmap.sessionUrl). | null or string |
| 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. | open submodule of (TOML value) |
| 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. | string |
| accounts.email.accounts.<name>.mujmap.settings.tags.directory_separator | Directory separator for mapping notmuch tags to maildirs. | string |
| 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. | string |
| 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. | string |
| accounts.email.accounts.<name>.mujmap.settings.tags.lowercase | If true, translate all mailboxes to lowercase names when mapping to notmuch tags. | boolean |
| 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. | string |
| 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. | string |
| 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. | string |
| accounts.email.accounts.<name>.mujmap.settings.username | Username for basic HTTP authentication. If `null`, defaults to [](#opt-accounts.email.accounts._name_.userName). | null or string |
| accounts.email.accounts.<name>.name | Unique identifier of the account. This is set to the attribute name of the account configuration. | string |
| accounts.email.accounts.<name>.neomutt.enable | Whether to enable NeoMutt. | boolean |
| accounts.email.accounts.<name>.neomutt.extraConfig | Extra lines to add to the folder hook for this account. | strings concatenated with "\n" |
| accounts.email.accounts.<name>.neomutt.extraMailboxes | List of extra mailboxes | list of (string or (submodule)) |
| accounts.email.accounts.<name>.neomutt.extraMailboxes.*.mailbox | Name of mailbox folder to be included | string |
| accounts.email.accounts.<name>.neomutt.extraMailboxes.*.name | Name to display | null or string |
| accounts.email.accounts.<name>.neomutt.extraMailboxes.*.type | Whether this mailbox is a maildir folder or an IMAP mailbox | null or one of "maildir", "imap" |
| accounts.email.accounts.<name>.neomutt.mailboxName | Use a different name as mailbox name | null or string |
| accounts.email.accounts.<name>.neomutt.mailboxType | Whether this account uses maildir folders or IMAP mailboxes | one of "maildir", "imap" |
| accounts.email.accounts.<name>.neomutt.sendMailCommand | Command to send a mail. If not set, neomutt will be in charge of sending mails. | null or string |
| accounts.email.accounts.<name>.neomutt.showDefaultMailbox | Show the default mailbox (INBOX) | boolean |
| accounts.email.accounts.<name>.notmuch.enable | Whether to enable notmuch indexing. | boolean |
| accounts.email.accounts.<name>.notmuch.neomutt.enable | Whether to enable Notmuch support in NeoMutt. | boolean |
| accounts.email.accounts.<name>.notmuch.neomutt.virtualMailboxes | List of virtual mailboxes using Notmuch queries | list of (submodule) |
| accounts.email.accounts.<name>.notmuch.neomutt.virtualMailboxes.*.limit | Restricts number of messages/threads in the result. | null or signed integer |
| accounts.email.accounts.<name>.notmuch.neomutt.virtualMailboxes.*.name | Name to display | string |
| accounts.email.accounts.<name>.notmuch.neomutt.virtualMailboxes.*.query | Notmuch query | string |
| accounts.email.accounts.<name>.notmuch.neomutt.virtualMailboxes.*.type | Reads all matching messages or whole-threads. The default is 'messages' or nm_query_type. | null or one of "threads", "messages" |
| accounts.email.accounts.<name>.offlineimap.enable | Whether to enable OfflineIMAP. | boolean |
| accounts.email.accounts.<name>.offlineimap.extraConfig.account | Extra configuration options to add to the account section. | attribute set of (string or signed integer or boolean) |
| accounts.email.accounts.<name>.offlineimap.extraConfig.local | Extra configuration options to add to the local account section. | attribute set of (string or signed integer or boolean) |
| accounts.email.accounts.<name>.offlineimap.extraConfig.remote | Extra configuration options to add to the remote account section. | attribute set of (string or signed integer or boolean) |
| accounts.email.accounts.<name>.offlineimap.postSyncHookCommand | Command to run after fetching new mails. | strings concatenated with "\n" |
| accounts.email.accounts.<name>.passwordCommand | A command, which when run writes the account password on standard output. | null or string or list of string |
| accounts.email.accounts.<name>.primary | Whether this is the primary account. Only one account may be set as primary. | boolean |
| accounts.email.accounts.<name>.realName | Name displayed when sending mails. | string |
| accounts.email.accounts.<name>.signature | Signature configuration. | submodule |
| accounts.email.accounts.<name>.signature.command | A command that generates a signature. | null or absolute path |
| accounts.email.accounts.<name>.signature.delimiter | The delimiter used between the document and the signature. | string |
| accounts.email.accounts.<name>.signature.showSignature | Method to communicate the signature. | one of "append", "attach", "none" |
| accounts.email.accounts.<name>.signature.text | Signature content. | string |
| accounts.email.accounts.<name>.smtp | The SMTP configuration to use for this account. | null or (submodule) |
| accounts.email.accounts.<name>.smtp.authentication | The authentication mechanism. | null or string or one of "anonymous", "apop", "clear", "cram_md5", "digest_md5", "gssapi", "login", "ntlm", "plain", "xoauth2" |
| accounts.email.accounts.<name>.smtp.host | Hostname of SMTP server. | string |
| accounts.email.accounts.<name>.smtp.port | The port on which the SMTP server listens. If `null` then the default port is used. | null or 16 bit unsigned integer; between 0 and 65535 (both inclusive) |
| accounts.email.accounts.<name>.smtp.tls | Configuration for secure connections. | submodule |
| 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. | null or absolute path |
| accounts.email.accounts.<name>.smtp.tls.enable | Whether to enable TLS/SSL. | boolean |
| accounts.email.accounts.<name>.smtp.tls.useStartTls | Whether to use STARTTLS. | boolean |
| accounts.email.accounts.<name>.thunderbird.enable | Whether to enable the Thunderbird mail client for this account. | boolean |
| accounts.email.accounts.<name>.thunderbird.messageFilters | List of message filters to add to this Thunderbird account configuration. | list of (submodule) |
| accounts.email.accounts.<name>.thunderbird.messageFilters.*.action | Action to perform on matched messages. | string |
| accounts.email.accounts.<name>.thunderbird.messageFilters.*.actionValue | Argument passed to the filter action, e.g. a folder path. | null or string |
| accounts.email.accounts.<name>.thunderbird.messageFilters.*.condition | Condition to match messages against. | string |
| accounts.email.accounts.<name>.thunderbird.messageFilters.*.enabled | Whether this filter is currently active. | boolean |
| accounts.email.accounts.<name>.thunderbird.messageFilters.*.extraConfig | Extra settings to apply to the filter | null or string |
| accounts.email.accounts.<name>.thunderbird.messageFilters.*.name | Name for the filter. | string |
| accounts.email.accounts.<name>.thunderbird.messageFilters.*.text | The raw text of the filter. Note that this will override all other options. | null or string |
| accounts.email.accounts.<name>.thunderbird.messageFilters.*.type | Type for this filter. | string |
| accounts.email.accounts.<name>.thunderbird.perIdentitySettings | Extra settings to add to each identity of this Thunderbird account configuration. The {var}`id` given as argument is an automatically generated identifier. | function that evaluates to a(n) attribute set of (boolean or signed integer or string) |
| 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. | list of string |
| accounts.email.accounts.<name>.thunderbird.settings | Extra settings to add to this Thunderbird account configuration. The {var}`id` given as argument is an automatically generated account identifier. | function that evaluates to a(n) attribute set of (boolean or signed integer or string) |
| accounts.email.accounts.<name>.userName | The server username of this account. This will be used as the SMTP, IMAP, and JMAP user name. | null or string |
| 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. | null or absolute path |
| 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"). | string |
| dbus.packages | Packages whose D-Bus configuration files should be included in the configuration of the D-Bus session-wide message bus. Specifically, files in «pkg»/share/dbus-1/services will be included in the user's $XDG_DATA_HOME/dbus-1/services directory. | list of package |
| dconf.databases | Settings to write to specific dconf user databases. See [](#opt-dconf.settings) for details. | attribute set of attribute set of attribute set of (GVariant value) |
| 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](https://github.com/gvolpe/dconf2nix) to convert dconf database dumps into compatible Nix expression. | attribute set of attribute set of (GVariant value) |
| editorconfig.enable | Whether to enable EditorConfig home configuration file. | boolean |
| editorconfig.settings | Configuration written to {file}`$HOME/.editorconfig`. `root = true` is automatically added to the file, it must not be added here. See <https://editorconfig.org> for documentation. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| fonts.fontconfig.antialiasing | Whether to enable font antialiasing. | null or boolean |
| fonts.fontconfig.configFile | Extra font config files that will be added to `~/.config/fontconfig/conf.d/`. Files are named like `fontconfig/conf.d/{priority}-{label}.conf`. | attribute set of (submodule) |
| fonts.fontconfig.configFile.<name>.enable | Whether to enable Whether this font config file should be generated.. | boolean |
| fonts.fontconfig.configFile.<name>.label | Label to use for the name of the config file. | string |
| fonts.fontconfig.configFile.<name>.priority | Determines the order in which configs are loaded. Must be a value within the range of 0-99, where priority 0 is the highest priority and 99 is the lowest. | integer between 0 and 99 (both inclusive) |
| fonts.fontconfig.configFile.<name>.source | Config file to source. Alternatively, use the 'text' option instead. | null or absolute path |
| fonts.fontconfig.configFile.<name>.text | Verbatim contents of the config file. If this option is null then the 'source' option must be set. | null or strings concatenated with "\n" |
| 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. | list of string |
| fonts.fontconfig.defaultFonts.monospace | Per-user default monospace font(s). Multiple fonts may be listed in case multiple languages must be supported. | list of string |
| fonts.fontconfig.defaultFonts.sansSerif | Per-user default sans serif font(s). Multiple fonts may be listed in case multiple languages must be supported. | list of string |
| fonts.fontconfig.defaultFonts.serif | Per-user default serif font(s). Multiple fonts may be listed in case multiple languages must be supported. | list of string |
| fonts.fontconfig.enable | Whether to enable fontconfig configuration. This will, for example, allow fontconfig to discover fonts and configurations installed through {var}`home.packages` and {command}`nix-env`. | boolean |
| fonts.fontconfig.hinting | The font hinting mode. | null or one of "none", "slight", "medium", "full" |
| fonts.fontconfig.subpixelRendering | The sub-pixel rendering mode. | null or one of "none", "rgb", "bgr", "vertical-rgb", "vertical-bgr" |
| gtk.colorScheme | Default color scheme for all GTK versions | null or one of "dark", "light" |
| gtk.cursorTheme | Default cursor theme for all GTK versions. | null or (submodule) |
| gtk.cursorTheme.name | The name of the cursor theme within the package. | string |
| gtk.cursorTheme.package | Package providing the cursor theme. This package will be installed to your profile. If `null` then the cursor theme is assumed to already be available in your profile. | null or package |
| gtk.cursorTheme.size | The size of the cursor. | null or signed integer |
| gtk.enable | Whether to enable GTK theming and configuration. | boolean |
| gtk.font | Default font for all GTK versions. | null or (submodule) |
| gtk.font.name | The family name of the font within the package. | string |
| 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. | null or package |
| gtk.font.size | The size of the font. | null or signed integer or floating point number |
| gtk.gtk2.configLocation | The location of the GTK 2 configuration file. | absolute path |
| gtk.gtk2.cursorTheme | Cursor theme for GTK 2 applications. | null or (submodule) |
| gtk.gtk2.cursorTheme.name | The name of the cursor theme within the package. | string |
| gtk.gtk2.cursorTheme.package | Package providing the cursor theme. This package will be installed to your profile. If `null` then the cursor theme is assumed to already be available in your profile. | null or package |
| gtk.gtk2.cursorTheme.size | The size of the cursor. | null or signed integer |
| gtk.gtk2.enable | Whether to enable GTK 2 configuration. | boolean |
| gtk.gtk2.extraConfig | Extra lines to add to {file}`~/.gtkrc-2.0`. | strings concatenated with "\n" |
| gtk.gtk2.font | Font for GTK 2 applications. | null or (submodule) |
| gtk.gtk2.font.name | The family name of the font within the package. | string |
| gtk.gtk2.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. | null or package |
| gtk.gtk2.font.size | The size of the font. | null or signed integer or floating point number |
| gtk.gtk2.force | Whether to enable GTK 2 config force overwrite without creating a backup. | boolean |
| gtk.gtk2.iconTheme | Icon theme for GTK 2 applications. | null or (submodule) |
| gtk.gtk2.iconTheme.name | The name of the icon theme within the package. | string |
| gtk.gtk2.iconTheme.package | Package providing the icon theme. This package will be installed to your profile. If `null` then the icon theme is assumed to already be available in your profile. | null or package |
| gtk.gtk2.theme | Theme for GTK 2 applications. | null or (submodule) |
| gtk.gtk2.theme.name | The name of the theme within the package. | string |
| gtk.gtk2.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. | null or package |
| gtk.gtk3.bookmarks | File browser bookmarks. | list of string |
| gtk.gtk3.colorScheme | Color scheme for GTK 3 applications. | null or one of "dark", "light" |
| gtk.gtk3.cursorTheme | Cursor theme for GTK 3 applications. | null or (submodule) |
| gtk.gtk3.cursorTheme.name | The name of the cursor theme within the package. | string |
| gtk.gtk3.cursorTheme.package | Package providing the cursor theme. This package will be installed to your profile. If `null` then the cursor theme is assumed to already be available in your profile. | null or package |
| gtk.gtk3.cursorTheme.size | The size of the cursor. | null or signed integer |
| gtk.gtk3.enable | Whether to enable GTK 3 configuration. | boolean |
| gtk.gtk3.extraConfig | Extra settings for {file}`$XDG_CONFIG_HOME/gtk-3.0/settings.ini`. | attribute set of (boolean or signed integer or string) |
| gtk.gtk3.extraCss | Extra CSS for {file}`$XDG_CONFIG_HOME/gtk-3.0/gtk.css`. | strings concatenated with "\n" |
| gtk.gtk3.font | Font for GTK 3 applications. | null or (submodule) |
| gtk.gtk3.font.name | The family name of the font within the package. | string |
| gtk.gtk3.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. | null or package |
| gtk.gtk3.font.size | The size of the font. | null or signed integer or floating point number |
| gtk.gtk3.iconTheme | Icon theme for GTK 3 applications. | null or (submodule) |
| gtk.gtk3.iconTheme.name | The name of the icon theme within the package. | string |
| gtk.gtk3.iconTheme.package | Package providing the icon theme. This package will be installed to your profile. If `null` then the icon theme is assumed to already be available in your profile. | null or package |
| gtk.gtk3.theme | Theme for GTK 3 applications. | null or (submodule) |
| gtk.gtk3.theme.name | The name of the theme within the package. | string |
| gtk.gtk3.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. | null or package |
| gtk.gtk4.colorScheme | Color scheme for GTK 4 applications. | null or one of "dark", "light" |
| gtk.gtk4.cursorTheme | Cursor theme for GTK 4 applications. | null or (submodule) |
| gtk.gtk4.cursorTheme.name | The name of the cursor theme within the package. | string |
| gtk.gtk4.cursorTheme.package | Package providing the cursor theme. This package will be installed to your profile. If `null` then the cursor theme is assumed to already be available in your profile. | null or package |
| gtk.gtk4.cursorTheme.size | The size of the cursor. | null or signed integer |
| gtk.gtk4.enable | Whether to enable GTK 4 configuration. | boolean |
| gtk.gtk4.extraConfig | Extra settings for {file}`$XDG_CONFIG_HOME/gtk-4.0/settings.ini`. | attribute set of (boolean or signed integer or string) |
| gtk.gtk4.extraCss | Extra CSS for {file}`$XDG_CONFIG_HOME/gtk-4.0/gtk.css`. | strings concatenated with "\n" |
| gtk.gtk4.font | Font for GTK 4 applications. | null or (submodule) |
| gtk.gtk4.font.name | The family name of the font within the package. | string |
| gtk.gtk4.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. | null or package |
| gtk.gtk4.font.size | The size of the font. | null or signed integer or floating point number |
| gtk.gtk4.iconTheme | Icon theme for GTK 4 applications. | null or (submodule) |
| gtk.gtk4.iconTheme.name | The name of the icon theme within the package. | string |
| gtk.gtk4.iconTheme.package | Package providing the icon theme. This package will be installed to your profile. If `null` then the icon theme is assumed to already be available in your profile. | null or package |
| gtk.gtk4.theme | Theme for GTK 4 applications. Warning: This is not officially supported and applied using a workaround. It may cause issues with some apps. For context, see [Please don’t theme our apps](https://stopthemingmy.app/) and [Restyling apps at scale](https://blogs.gnome.org/tbernard/2018/10/15/restyling-apps-at-scale/). | null or (submodule) |
| gtk.gtk4.theme.name | The name of the theme within the package. | string |
| gtk.gtk4.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. | null or package |
| gtk.iconTheme | Default icon theme for all GTK versions. | null or (submodule) |
| gtk.iconTheme.name | The name of the icon theme within the package. | string |
| gtk.iconTheme.package | Package providing the icon theme. This package will be installed to your profile. If `null` then the icon theme is assumed to already be available in your profile. | null or package |
| gtk.theme | Default theme for GTK 2/3. | null or (submodule) |
| gtk.theme.name | The name of the theme within the package. | string |
| 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. | null or package |
| 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 [](#opt-home.file). A script block should respect the {var}`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 {command}`run` is provided for activation script blocks. It is used as follows: {command}`run {command}` : Runs the given command on live run, otherwise prints the command to standard output. {command}`run --quiet {command}` : Runs the given command on live run and sends its standard output to {file}`/dev/null`, otherwise prints the command to standard output. {command}`run --silence {command}` : Runs the given command on live run and sends its standard and error output to {file}`/dev/null`, otherwise prints the command to standard output. The `--quiet` and `--silence` flags are mutually exclusive. A script block should also respect the {var}`VERBOSE` variable, and if set print information on standard out that may be useful for debugging any issue that may arise. The variable {var}`VERBOSE_ARG` is set to {option}`--verbose` if verbose output is enabled. You can also use the provided shell function {command}`verboseEcho`, which acts as {command}`echo` when verbose output is enabled. | DAG of string |
| home.checks | Packages that are added as dependencies of the home's build, usually for the purpose of validating some part of the configuration. Unlike `home.extraDependencies`, these store paths do not become part of the built home configuration. | list of package |
| home.enableDebugInfo | Some Nix packages provide debug symbols for {command}`gdb` in the `debug` output. This option ensures that those are automatically fetched from the binary cache if available and {command}`gdb` is configured to find those symbols. | boolean |
| 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. | boolean |
| home.extraDependencies | A list of paths that should be included in the home closure but generally not visible. For built-time checks the `home.checks` option is more appropriate for that purpose as checks should not leave a trace in the built home configuration. | list of path in the Nix store |
| home.extraOutputsToInstall | List of additional package outputs of the packages {var}`home.packages` that should be installed into the user environment. | list of string |
| home.file | Attribute set of files to link into the user home. | attribute set of (submodule) |
| home.file.<name>.enable | Whether this file should be generated. This option allows specific files to be disabled. | boolean |
| home.file.<name>.executable | Set the execute bit. If `null`, defaults to the mode of the {var}`source` file or to `false` for files created through the {var}`text` option. | null or boolean |
| home.file.<name>.force | Whether the target path should be unconditionally replaced by the managed file source. Warning, this will silently delete the target regardless of whether it is a file or link. | boolean |
| home.file.<name>.ignorelinks | When `recursive` is enabled, adds `-ignorelinks` flag to lndir It causes lndir to not treat symbolic links in the source directory specially. The link created in the target directory will point back to the corresponding (symbolic link) file in the source directory. If the link is to a directory | boolean |
| 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. | strings concatenated with "\n" |
| 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. | boolean |
| home.file.<name>.source | Path of the source file or directory. If [](#opt-home.file._name_.text) is non-null then this option will automatically point to a file containing that text. | absolute path |
| home.file.<name>.target | Path to target file relative to {env}`HOME`. | string |
| home.file.<name>.text | Text of the file. If this option is null then [](#opt-home.file._name_.source) must be set. | null or strings concatenated with "\n" |
| home.homeDirectory | The user's home directory. Must be an absolute path. | absolute path |
| home.keyboard | Keyboard configuration. Set to `null` to disable Home Manager keyboard management. | null or (submodule) |
| 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. | null or string |
| home.keyboard.model | Keyboard model. | null or string |
| home.keyboard.options | X keyboard options; layout switching goes here. | list of string |
| 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. | null or string |
| home.language | Language configuration. | submodule |
| home.language.address | The language to use for addresses. | null or string |
| home.language.base | The language to use unless overridden by a more specific option. | null or string |
| home.language.collate | The language to use for collation (alphabetical ordering). | null or string |
| home.language.ctype | Character classification category. | null or string |
| home.language.measurement | The language to use for measurement values. | null or string |
| home.language.messages | The language to use for messages, application UI languages, etc. | null or string |
| home.language.monetary | The language to use for formatting currencies and money amounts. | null or string |
| home.language.name | The language to use for personal names. | null or string |
| home.language.numeric | The language to use for numerical values. | null or string |
| home.language.paper | The language to use for paper sizes. | null or string |
| home.language.telephone | The language to use for telephone numbers. | null or string |
| home.language.time | The language to use for formatting times. | null or string |
| home.packages | The set of packages to appear in the user environment. | list of package |
| home.pointerCursor | Cursor configuration. 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, [](#opt-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, [](#opt-home.pointerCursor.gtk.enable) will generate the gtk cursor configuration, but [](#opt-gtk.enable) needs to be set for it to be applied. | null or (submodule) |
| home.pointerCursor.dotIcons.enable | Whether to enable `.icons` config generation for {option}`home.pointerCursor` . | boolean |
| home.pointerCursor.enable | Whether to enable cursor config generation. | boolean |
| home.pointerCursor.gtk.enable | Whether to enable gtk config generation for {option}`home.pointerCursor` . | boolean |
| home.pointerCursor.hyprcursor.enable | Whether to enable hyprcursor config generation. | boolean |
| home.pointerCursor.hyprcursor.size | The cursor size for hyprcursor. | signed integer |
| home.pointerCursor.name | The cursor name within the package. | string |
| home.pointerCursor.package | Package providing the cursor theme. | package |
| home.pointerCursor.size | The cursor size. | signed integer |
| home.pointerCursor.sway.enable | Whether to enable sway config generation for {option}`home.pointerCursor`. | boolean |
| home.pointerCursor.x11.defaultCursor | The default cursor file to use within the package. | string |
| home.pointerCursor.x11.enable | Whether to enable x11 config generation for {option}`home.pointerCursor` . | boolean |
| home.preferXdgDirectories | Whether to make programs use XDG directories whenever supported. | boolean |
| home.profileDirectory | The profile directory where Home Manager generations are installed. | absolute path |
| home.sessionPath | Extra directories to prepend to {env}`PATH`. These directories are added to the {env}`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 {env}`PATH` verbatim. | list of string |
| home.sessionSearchVariables | Extra directories to prepend to arbitrary PATH-like environment variables (e.g.: {env}`MANPATH`). The values will be concatenated by `:`. These directories are added to the environment 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 environment verbatim. | attribute set of list of string |
| 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 {var}`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 ```nix home.sessionVariables = { FOO = "Hello"; BAR = "$FOO World!"; }; ``` may not work as expected. If you need to reference another session variable (even if it is declared by using other options like [](#opt-xdg.configHome)), then do so inside Nix instead. The above example then becomes ```nix home.sessionVariables = { FOO = "Hello"; BAR = "${config.home.sessionVariables.FOO} World!"; }; ``` | lazy attribute set of (string or absolute path or signed integer or floating point number) |
| home.shell.enableBashIntegration | Whether to enable Bash integration. | boolean |
| home.shell.enableFishIntegration | Whether to enable Fish integration. | boolean |
| home.shell.enableIonIntegration | Whether to enable Ion integration. | boolean |
| home.shell.enableNushellIntegration | Whether to enable Nushell integration. | boolean |
| home.shell.enableShellIntegration | Whether to globally enable shell integration for all supported shells. Individual shell integrations can be overridden with their respective `shell.enable<SHELL>Integration` option. For example, the following declaration globally disables shell integration for Bash: ```nix home.shell.enableBashIntegration = false; ``` | boolean |
| home.shell.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| 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 [](#opt-programs.bash.shellAliases) for Bash. | attribute set of string |
| 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. | 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", "25.05", "25.11", "26.05" |
| home.uid | The user's uid. | null or (unsigned integer, meaning >=0) |
| home.username | The user's username. | string |
| 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 {var}`i18n.glibcLocales` from the system configuration. | absolute path |
| i18n.inputMethod.enable | Whether to enable an additional input method type. | boolean |
| i18n.inputMethod.enabled | Deprecated - use `type` and `enable = true` instead | null or one of "fcitx", "fcitx5", "nabi", "uim", "hime", "kime" |
| i18n.inputMethod.fcitx5.addons | Enabled Fcitx5 addons. | list of package |
| i18n.inputMethod.fcitx5.fcitx5-with-addons | The fcitx5 package to use. | package |
| i18n.inputMethod.fcitx5.ignoreUserConfig | Ignore the user configures. **Warning**: When this is enabled, the user config files are totally ignored and the user dict can't be saved and loaded. | boolean |
| i18n.inputMethod.fcitx5.quickPhrase | Quick phrases. | attribute set of string |
| i18n.inputMethod.fcitx5.quickPhraseFiles | Quick phrase files. | attribute set of absolute path |
| i18n.inputMethod.fcitx5.settings.addons | The addon configures in `conf` folder in ini format with global sections. Each item is written to the corresponding file. | attribute set of (submodule) |
| i18n.inputMethod.fcitx5.settings.addons.<name>.globalSection | global section of an INI file (attrs of INI atom (null, bool, int, float or string)) | section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| i18n.inputMethod.fcitx5.settings.addons.<name>.sections | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| i18n.inputMethod.fcitx5.settings.globalOptions | The global options in `config` file in ini format. | open submodule of attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| i18n.inputMethod.fcitx5.settings.inputMethod | The input method configure in `profile` file in ini format. | open submodule of attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| i18n.inputMethod.fcitx5.themes | Themes to be written to {file}`$XDG_DATA_HOME/fcitx5/themes/${name}` | lazy attribute set of (submodule) |
| i18n.inputMethod.fcitx5.themes.<name>.highlightImage | Path to the SVG of the highlight. | null or absolute path |
| i18n.inputMethod.fcitx5.themes.<name>.panelImage | Path to the SVG of the panel. | null or absolute path |
| i18n.inputMethod.fcitx5.themes.<name>.theme | The `theme.conf` file of the theme. See https://fcitx-im.org/wiki/Fcitx_5_Theme#Background_images for more information. | null or (attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))) or strings concatenated with "\n" or absolute path |
| i18n.inputMethod.fcitx5.waylandFrontend | Use the Wayland input method frontend. See [Using Fcitx 5 on Wayland](https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland). | boolean |
| i18n.inputMethod.kime.extraConfig | kime configuration. Refer to <https://github.com/Riey/kime/blob/develop/docs/CONFIGURATION.md> for details on supported values. | strings concatenated with "\n" |
| i18n.inputMethod.type | 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 [](#opt-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. | null or one of "fcitx", "fcitx5", "nabi", "uim", "hime", "kime" |
| i18n.inputMethod.uim.toolbar | Selected UIM toolbar. | one of "gtk", "gtk3", "gtk-systray", "gtk3-systray", "qt4" |
| launchd.agents | Define LaunchAgents. | attribute set of (submodule) |
| launchd.agents.<name>.config | Define a launchd job. See {manpage}`launchd.plist(5)` for details. | open submodule of attribute set of anything |
| 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. | null or boolean |
| 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. | null or boolean |
| 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. | null or boolean |
| launchd.agents.<name>.config.EnableGlobbing | This flag causes launchd to use the `glob(3)` mechanism to update the program arguments before invocation. | null or boolean |
| 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. | null or boolean |
| launchd.agents.<name>.config.EnvironmentVariables | This optional key is used to specify additional environment variables to be set before running the job. | null or (attribute set of string) |
| 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. | null or signed integer |
| 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. | null or string |
| launchd.agents.<name>.config.HardResourceLimits | Resource limits to be imposed on the job. These adjust variables set with `setrlimit(2)`. The following keys apply: | null or (submodule) |
| launchd.agents.<name>.config.HardResourceLimits.CPU | The maximum amount of cpu time (in seconds) to be used by each process. | null or signed integer |
| launchd.agents.<name>.config.HardResourceLimits.Core | The largest size (in bytes) core file that may be created. | null or signed integer |
| 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. | null or signed integer |
| launchd.agents.<name>.config.HardResourceLimits.FileSize | The largest size (in bytes) file that may be created. | null or signed integer |
| launchd.agents.<name>.config.HardResourceLimits.MemoryLock | The maximum size (in bytes) which a process may lock into memory using the `mlock(2)` function. | null or signed integer |
| 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. | null or signed integer |
| 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. | null or signed integer |
| 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. | null or signed integer |
| 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. | null or signed integer |
| 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. | null or boolean |
| 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. | null or boolean or (submodule) |
| launchd.agents.<name>.config.KeepAlive.AfterInitialDemand | Whether to defer evaluating other `KeepAlive` conditions until the job has been started at least once by demand. | null or boolean |
| launchd.agents.<name>.config.KeepAlive.Crashed | If true, the the job will be restarted as long as it exited due to a signal which is typically associated with a crash (SIGILL, SIGSEGV, etc.). If false, the job will be restarted in the inverse condition. | null or boolean |
| launchd.agents.<name>.config.KeepAlive.NetworkState | If true, the job will be kept alive as long as the network is up, where up is defined as at least one non-loopback interface being up and having IPv4 or IPv6 addresses assigned to them. If false, the job will be kept alive in the inverse condition. | null or boolean |
| launchd.agents.<name>.config.KeepAlive.OtherJobEnabled | Each key in this dictionary is the label of another job. If the value of the key is true, then this job is kept alive as long as that other job is enabled. Otherwise, if the value is false, then this job is kept alive as long as the other job is disabled. This feature should not be considered a substitute for the use of IPC. | null or (attribute set of boolean) |
| launchd.agents.<name>.config.KeepAlive.PathState | Each key in this dictionary is a file-system path. If the value of the key is true, then the job will be kept alive as long as the path exists. If false, the job will be kept alive in the inverse condition. The intent of this feature is that two or more jobs may create semaphores in the file-system namespace. | null or (attribute set of boolean) |
| launchd.agents.<name>.config.KeepAlive.SuccessfulExit | If true, the job will be restarted as long as the program exits and with an exit status of zero. If false, the job will be restarted in the inverse condition. This key implies that "RunAtLoad" is set to true, since the job needs to run at least once before we can get an exit status. | null or boolean |
| launchd.agents.<name>.config.Label | This required key uniquely identifies the job to launchd. | string |
| 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. | null or (attribute set) |
| 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. | null or boolean |
| 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. | null or (list of string) |
| 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. | null or (list of string) |
| 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 {command}`launchctl`. | null or string or list of string |
| launchd.agents.<name>.config.LowPriorityBackgroundIO | This optional key specifies whether the kernel should consider this daemon to be low priority when doing file system I/O when the process is throttled with the Darwin-background classification. | null or boolean |
| 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. | null or boolean |
| 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. | null or (attribute set of (boolean or (submodule))) |
| launchd.agents.<name>.config.MachServices.<name>.HideUntilCheckIn | Reserve the name in the namespace, but cause bootstrap_look_up() to fail until the job has checked in with launchd. | null or boolean |
| launchd.agents.<name>.config.MachServices.<name>.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. | null or boolean |
| launchd.agents.<name>.config.Nice | This optional key specifies what nice(3) value should be applied to the daemon. | null or signed integer |
| 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. | null or boolean |
| 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. | null or one of "Background", "Standard", "Adaptive", "Interactive" |
| 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. | null or absolute path |
| 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! | null or (list of string) |
| 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. | null or (list of string) |
| launchd.agents.<name>.config.RootDirectory | This optional key is used to specify a directory to `chroot(2)` to before running the job. | null or string |
| 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. | null or boolean |
| launchd.agents.<name>.config.ServiceIPC | This optional key specifies whether the job participates in advanced communication with launchd. The default is false. This flag is incompatible with the inetdCompatibility key. | null or boolean |
| launchd.agents.<name>.config.SessionCreate | This key specifies that the job should be spawned into a new security audit session rather than the default session for the context is belongs to. See auditon(2) for details. | null or boolean |
| 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)`. | null or (attribute set of (submodule)) |
| 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. | null or boolean or list of string |
| 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. | null or string |
| 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. | null or string |
| launchd.agents.<name>.config.Sockets.<name>.SockFamily | This optional key can be used to specifically request that "IPv4" or "IPv6" socket(s) be created. | null or one of "IPv4", "IPv6" |
| launchd.agents.<name>.config.Sockets.<name>.SockNodeName | This optional key specifies the node to `connect(2)` or `bind(2)` to. | null or string |
| 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"). | null or boolean |
| 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. | null or signed integer |
| 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. | null or absolute path |
| 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". | null or value "TCP" (singular enum) |
| launchd.agents.<name>.config.Sockets.<name>.SockServiceName | This optional key specifies the service on the node to `connect(2)` or `bind(2)` to. | null or string |
| 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. | null or one of "stream", "dgram", "seqpacket" |
| launchd.agents.<name>.config.SoftResourceLimits | Resource limits to be imposed on the job. These adjust variables set with `setrlimit(2)`. The following keys apply: | null or (submodule) |
| launchd.agents.<name>.config.SoftResourceLimits.CPU | The maximum amount of cpu time (in seconds) to be used by each process. | null or signed integer |
| launchd.agents.<name>.config.SoftResourceLimits.Core | The largest size (in bytes) core file that may be created. | null or signed integer |
| 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. | null or signed integer |
| launchd.agents.<name>.config.SoftResourceLimits.FileSize | The largest size (in bytes) file that may be created. | null or signed integer |
| launchd.agents.<name>.config.SoftResourceLimits.MemoryLock | The maximum size (in bytes) which a process may lock into memory using the mlock(2) function. | null or signed integer |
| 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. | null or signed integer |
| 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. | null or signed integer |
| 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. | null or signed integer |
| 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. | null or signed integer |
| launchd.agents.<name>.config.StandardErrorPath | This optional key specifies what file should be used for data being sent to stderr when using `stdio(3)`. | null or absolute path |
| launchd.agents.<name>.config.StandardInPath | This optional key specifies what file should be used for data being supplied to stdin when using `stdio(3)`. | null or absolute path |
| launchd.agents.<name>.config.StandardOutPath | This optional key specifies what file should be used for data being sent to stdout when using `stdio(3)`. | null or absolute path |
| launchd.agents.<name>.config.StartCalendarInterval | This optional key causes the job to be started every calendar interval as specified. The semantics are much like {manpage}`crontab(5)`: Missing attributes are considered to be wildcard. 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 waking from sleep. ::: {.important} The list must not be empty and must not contain duplicate entries (attrsets which compare equally). ::: ::: {.caution} Since missing attrs become wildcards, an empty attrset effectively means "every minute". ::: | null or (submodule) or unique (non-empty (list of (submodule))) |
| 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. | null or signed integer |
| launchd.agents.<name>.config.StartOnMount | This optional key causes the job to be started every time a filesystem is mounted. | null or boolean |
| 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. | null or signed integer |
| 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. | null or signed integer |
| 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. | null or signed integer |
| 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. | null or string |
| 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. | null or boolean |
| launchd.agents.<name>.config.WatchPaths | This optional key causes the job to be started if any one of the listed paths are modified. | null or (list of absolute path) |
| launchd.agents.<name>.config.WorkingDirectory | This optional key is used to specify a directory to `chdir(2)` to before running the job. | null or string |
| 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. | null or (submodule) |
| 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. | null or boolean or string |
| launchd.agents.<name>.enable | Whether to enable ‹name›. | boolean |
| launchd.enable | Whether to enable Home Manager to define per-user daemons by making use of launchd's LaunchAgents. | boolean |
| lib | This option allows modules to define helper functions, constants, etc. | attribute set of (attribute set) |
| manual.html.enable | Whether to install the HTML manual. This also installs the {command}`home-manager-help` tool, which opens a local copy of the Home Manager manual in the system web browser. | boolean |
| manual.json.enable | Whether to install a JSON formatted list of all Home Manager options. This can be located at {file}`<profile directory>/share/doc/home-manager/options.json`, and may be used for navigating definitions, auto-completing, and other miscellaneous tasks. | boolean |
| manual.manpages.enable | Whether to install the configuration manual page. The manual can be reached by {command}`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! | boolean |
| meta.maintainers | List of maintainers of each module. This option should be defined at most once per module. The option value is not a list of maintainers, but an attribute set that maps module file names to lists of maintainers. | list of (maintainer) |
| news.display | How unread and relevant news should be presented when running {command}`home-manager build` and {command}`home-manager switch`. The options are `silent` : Do not print anything during build or switch. The {command}`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 {command}`home-manager news` command can later be used to view the entries. `show` : A pager showing unread news entries is opened. | one of "silent", "notify", "show" |
| nix.assumeXdg | Whether Home Manager should assume that Nix is configured to use XDG base directories. Note that this doesn't change the behavior of Nix. To do that, set nix.settings.use-xdg-base-directories instead. This option is intended for settings in which use-xdg-base-directories is set globally or nix.conf is unmanaged by Home Manager. | boolean |
| nix.buildMachines | This option lists the machines to be used if distributed builds are enabled (see {option}`nix.distributedBuilds`). Nix will perform derivations on those machines via SSH by copying the inputs to the Nix store on the remote machine, starting the build, then copying the output back to the local Nix store. | list of (submodule) |
| nix.buildMachines.*.hostName | The hostname of the build machine. | string |
| nix.buildMachines.*.mandatoryFeatures | A list of features mandatory for this builder. The builder will be ignored for derivations that don't require all features in this list. All mandatory features are automatically included in {var}`supportedFeatures`. | list of string |
| nix.buildMachines.*.maxJobs | The number of concurrent jobs the build machine supports. The build machine will enforce its own limits, but this allows hydra to schedule better since there is no work-stealing between build machines. | signed integer |
| nix.buildMachines.*.protocol | The protocol used for communicating with the build machine. Use `ssh-ng` if your remote builder and your local Nix version support that improved protocol. Use `null` when trying to change the special localhost builder without a protocol which is for example used by hydra. | one of <null>, "ssh", "ssh-ng" |
| nix.buildMachines.*.publicHostKey | The (base64-encoded) public host key of this builder. The field is calculated via {command}`base64 -w0 /etc/ssh/ssh_host_type_key.pub`. If null, SSH will use its regular known-hosts file when connecting. | null or string |
| nix.buildMachines.*.speedFactor | The relative speed of this builder. This is an arbitrary integer that indicates the speed of this builder, relative to other builders. Higher is faster. | signed integer |
| nix.buildMachines.*.sshKey | The path to the SSH private key with which to authenticate on the build machine. The private key must not have a passphrase. If null, the building user (root on NixOS machines) must have an appropriate ssh configuration to log in non-interactively. Note that for security reasons, this path must point to a file in the local filesystem, *not* to the nix store. | null or string |
| nix.buildMachines.*.sshUser | The username to log in as on the remote host. This user must be able to log in and run nix commands non-interactively. It must also be privileged to build derivations, so must be included in {option}`nix.settings.trusted-users`. | null or string |
| nix.buildMachines.*.supportedFeatures | A list of features supported by this builder. The builder will be ignored for derivations that require features not in this list. | list of string |
| nix.buildMachines.*.systems | The system types the build machine can execute derivations on. | list of string |
| nix.channels | A declarative alternative to Nix channels. Whereas with stock channels, you would register URLs and fetch them into the Nix store with {manpage}`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. | attribute set of package |
| nix.checkConfig | If enabled (the default), checks for data type mismatches and that Nix can parse the generated nix.conf. | boolean |
| nix.distributedBuilds | Whether to distribute builds to the machines listed in {option}`nix.buildMachines`. | boolean |
| nix.extraOptions | Additional text appended to {file}`nix.conf`. | strings concatenated with "\n" |
| nix.gc.automatic | Automatically run the garbage collector at a specific time. Note: This will only garbage collect the current user's profiles. | boolean |
| nix.gc.dates | When to run the Nix garbage collector. On Linux this is a string as defined by {manpage}`systemd.time(7)`. On Darwin, it must be one of: hourly, daily, weekly, monthly, semiannually, annually, which are implemented as defined in {manpage}`systemd.time(7)`. | (optionally newline-terminated) single-line string or list of string |
| nix.gc.options | Options given to {file}`nix-collect-garbage` when the garbage collector is run automatically. | null or string |
| 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. | boolean |
| 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 {manpage}`systemd.time(7)` | (optionally newline-terminated) single-line string |
| nix.keepOldNixPath | Whether {option}`nix.nixPath` should keep the previously set values in {env}`NIX_PATH`. | boolean |
| nix.nixPath | Adds new directories to the Nix expression search path. Used by Nix when looking up paths in angular brackets (e.g. `<nixpkgs>`). | list of string |
| nix.package | The nix package to use. | null or package |
| nix.registry | User level flake registry. | attribute set of (submodule) |
| nix.registry.<name>.exact | Whether the {option}`from` reference needs to match exactly. If set, a {option}`from` reference like `nixpkgs` does not match with a reference like `nixpkgs/nixos-20.03`. | boolean |
| nix.registry.<name>.flake | The flake input to which {option}`from>` is to be rewritten. | null or (attribute set) |
| nix.registry.<name>.from | The flake reference to be rewritten. | attribute set of (string or signed integer or boolean or package) |
| nix.registry.<name>.to | The flake reference to which {option}`from>` is to be rewritten. | attribute set of (string or signed integer or boolean or package) |
| nix.settings | Configuration for Nix; see {manpage}`nix.conf(5)` for available options. The value declared here will be translated directly to the key-value pairs Nix expects. Configuration specified in [](#opt-nix.extraOptions) will be appended verbatim to the resulting config file. | open submodule of 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))) |
| 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, {file}`~/.config/nixpkgs/config.nix`. Note, this option will not apply outside your Home Manager configuration like when installing manually through {command}`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 ```nix nixpkgs.config = import ./nixpkgs-config.nix; xdg.configFile."nixpkgs/config.nix".source = ./nixpkgs-config.nix; ``` in your Home Manager configuration. | null or (nixpkgs config) |
| 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, {file}`~/.config/nixpkgs/overlays`. Like {var}`nixpkgs.config` this option only applies within the Home Manager configuration. See {var}`nixpkgs.config` for a suggested setup that works both internally and externally. | null or (list of (nixpkgs overlay)) |
| pam.sessionVariables | Environment variables that will be set for the PAM session. The variable values must be as described in {manpage}`pam_env.conf(5)`. Note, this option will become deprecated in the future and its use is therefore discouraged. | attribute set |
| 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. | list of string of length 12 |
| pam.yubico.authorizedYubiKeys.path | File path to write the authorized YubiKeys, relative to {env}`HOME`. | string |
| programs.abaddon.enable | Whether to enable abaddon. | boolean |
| programs.abaddon.package | The abaddon package to use. | null or package |
| programs.abaddon.settings | Configuration settings for abaddon. All the available options can be found here: <https://github.com/uowuo/abaddon?tab=readme-ov-file#settings> | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.abook.enable | Whether to enable Abook. | boolean |
| programs.abook.extraConfig | Extra lines added to {file}`$HOME/.config/abook/abookrc`. Available configuration options are described in the abook repository: <https://sourceforge.net/p/abook/git/ci/master/tree/sample.abookrc>. | strings concatenated with "\n" |
| programs.abook.package | The abook package to use. | null or package |
| programs.acd-cli.cacheSettings | Cache configuration settings for acd-cli. All the available options can be found here: <https://acd-cli.readthedocs.io/en/latest/configuration.html#cache-ini>. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.acd-cli.cliSettings | CLI configuration settings for acd-cli. All the available options can be found here: <https://acd-cli.readthedocs.io/en/latest/configuration.html#acd-cli-ini>. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.acd-cli.clientSettings | Client configuration settings for acd-cli. All the available options can be found here: <https://acd-cli.readthedocs.io/en/latest/configuration.html#acd-client-ini>. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.acd-cli.enable | Whether to enable acd-cli. | boolean |
| programs.acd-cli.fuseSettings | FUSE configuration settings for acd-cli. All the available options can be found here: <https://acd-cli.readthedocs.io/en/latest/configuration.html#fuse-ini>. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.acd-cli.package | The acd-cli package to use. | null or package |
| programs.aerc.enable | Whether to enable aerc. | boolean |
| programs.aerc.extraAccounts | Extra lines added to {file}`$HOME/.config/aerc/accounts.conf`. See {manpage}`aerc-config(5)`. | strings concatenated with "\n" or attribute set of (strings concatenated with "\n" or attribute set of (values (null, bool, int, string, or float) or a list of values, that will be joined with a comma)) |
| programs.aerc.extraBinds | Extra lines added to {file}`$HOME/.config/aerc/binds.conf`. Global keybindings can be set in the `global` section. See {manpage}`aerc-config(5)`. | strings concatenated with "\n" or attribute set of (strings concatenated with "\n" or attribute set of (values (null, bool, int, string, or float) or a list of values, that will be joined with a comma)) |
| programs.aerc.extraConfig | Extra lines added to {file}`$HOME/.config/aerc/aerc.conf`. See {manpage}`aerc-config(5)`. | strings concatenated with "\n" or attribute set of (strings concatenated with "\n" or attribute set of (values (null, bool, int, string, or float) or a list of values, that will be joined with a comma)) |
| programs.aerc.package | The aerc package to use. | null or package |
| programs.aerc.stylesets | Stylesets added to {file}`$HOME/.config/aerc/stylesets/`. See {manpage}`aerc-stylesets(7)`. | attribute set of (strings concatenated with "\n" or attribute set of (strings concatenated with "\n" or attribute set of (values (null, bool, int, string, or float) or a list of values, that will be joined with a comma))) |
| programs.aerc.templates | Templates added to {file}`$HOME/.config/aerc/templates/`. See {manpage}`aerc-templates(7)`. | attribute set of strings concatenated with "\n" |
| programs.aerospace.enable | Whether to enable AeroSpace window manager. | boolean |
| programs.aerospace.launchd.enable | Configure the launchd agent to manage the AeroSpace process. The first time this is enabled, macOS will prompt you to allow this background item in System Settings. You can verify the service is running correctly from your terminal. Run: `launchctl list | grep aerospace` - A running process will show a Process ID (PID) and a status of 0, for example: `12345 0 org.nix-community.home.aerospace` - If the service has crashed or failed to start, the PID will be a dash and the status will be a non-zero number, for example: `- 1 org.nix-community.home.aerospace` In case of failure, check the logs with `cat /tmp/aerospace.err.log`. For more detailed service status, run `launchctl print gui/$(id -u)/org.nix-community.home.aerospace`. NOTE: Enabling this option will configure AeroSpace to **not** manage its own launchd agent. Specifically, it will set `start-at-login = false` and `after-login-command = []` in the configuration file, as those are now handled by Home Manager and launchd instead. | boolean |
| programs.aerospace.launchd.keepAlive | Whether the launchd service should be kept alive. | boolean |
| programs.aerospace.package | The aerospace package to use. | null or package |
| programs.aerospace.settings | AeroSpace configuration, see <https://nikitabobko.github.io/AeroSpace/guide#configuring-aerospace> for supported values. | TOML value |
| programs.afew.enable | Whether to enable the afew initial tagging script for Notmuch. | boolean |
| 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>. | strings concatenated with "\n" |
| programs.afew.package | The afew package to use. | null or package |
| programs.ahoviewer.config | Configuration settings for ahoviewer. All the available options can be found editing the preferences in the GUI and looking at $XDG_CONFIG_HOME/ahoviewer/ahoviewer.cfg | string or absolute path |
| programs.ahoviewer.enable | Whether to enable ahoviewer. | boolean |
| programs.ahoviewer.package | The ahoviewer package to use. | null or package |
| programs.ahoviewer.plugins | List of plugins for ahoviewer. | list of package |
| programs.aiac.enable | Whether to enable aiac. | boolean |
| programs.aiac.package | The aiac package to use. | null or package |
| programs.aiac.settings | Configuration settings for aiac. All the available options can be found here: <https://github.com/gofireflyio/aiac/?tab=readme-ov-file#configuration>. | TOML value |
| programs.aichat.agents | Agent-specific configurations. See <https://github.com/sigoden/aichat/wiki/Configuration-Guide#agent-specific> for supported values. | attribute set of (YAML 1.1 value) |
| programs.aichat.enable | Whether to enable aichat, an All-in-one LLM CLI tool. | boolean |
| programs.aichat.package | The aichat package to use. | null or package |
| programs.aichat.settings | Configuration written to {file}`$XDG_CONFIG_HOME/aichat/config.yaml` on Linux or on Darwin if [](#opt-xdg.enable) is set, otherwise {file}`~/Library/Application Support/aichat/config.yaml`. See <https://github.com/sigoden/aichat/blob/main/config.example.yaml> for supported values. | YAML 1.1 value |
| programs.aider-chat.enable | Whether to enable aider-chat. | boolean |
| programs.aider-chat.package | The aider-chat package to use. | null or package |
| programs.aider-chat.settings | Configuration settings for aider-chat. All the available options can be found here: <https://aider.chat/docs/config/aider_conf.html#sample-yaml-config-file>. | YAML 1.1 value |
| programs.airlift.enable | Whether to enable airlift. | boolean |
| programs.airlift.package | The airlift package to use. | null or package |
| programs.airlift.settings | Configuration settings for airlift. All the available options can be found here: <https://artifacthub.io/packages/helm/apache-airflow/airflow?modal=values>. | YAML 1.1 value |
| programs.alacritty.enable | Whether to enable Alacritty. | boolean |
| programs.alacritty.package | The alacritty package to use. | null or package |
| programs.alacritty.settings | Configuration written to {file}`$XDG_CONFIG_HOME/alacritty/alacritty.yml` or {file}`$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. | TOML value |
| programs.alacritty.theme | A theme from the [alacritty-theme](https://github.com/alacritty/alacritty-theme) repository to import in the configuration. See <https://github.com/alacritty/alacritty-theme/tree/master/themes> for a list of available themes. If you would like to import your own theme, use {option}`programs.alacritty.settings.general.import` or {option}`programs.alacritty.settings.colors` directly. | null or string |
| programs.alacritty.themePackage | The alacritty-theme package to use. | package |
| programs.algia.enable | Whether to enable algia. | boolean |
| programs.algia.package | The algia package to use. | null or package |
| programs.algia.settings | Configuration settings for algia. All the available options can be found here: <https://github.com/mattn/algia?tab=readme-ov-file#configuration> | JSON value |
| programs.aliae.configLocation | Path where aliae should look for its config file. This doesn't override where Home-Manager places the generated config file. Changing this option could prevent aliae from using the settings defined in your Home-Manager configuration. | string |
| programs.aliae.enable | Whether to enable aliae. | boolean |
| programs.aliae.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.aliae.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.aliae.enableNushellIntegration | Whether to enable Nushell integration. | boolean |
| programs.aliae.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.aliae.package | The aliae package to use. | null or package |
| programs.aliae.settings | Configuration settings for aliae. All the available options can be found here: <https://aliae.dev/docs/setup/configuration#example>. | YAML 1.1 value |
| programs.alistral.enable | Whether to enable alistral. | boolean |
| programs.alistral.package | The alistral package to use. | null or package |
| programs.alistral.settings | Configuration settings for alistral. You can see the details here: <https://rustynova016.github.io/Alistral/config/config.html>. | JSON value |
| programs.alot.bindings | Keybindings. | submodule |
| programs.alot.bindings.bufferlist | Bufferlist mode keybindings. | attribute set of string |
| programs.alot.bindings.envelope | Envelope mode keybindings. | attribute set of string |
| programs.alot.bindings.global | Global keybindings. | attribute set of string |
| programs.alot.bindings.search | Search mode keybindings. | attribute set of string |
| programs.alot.bindings.taglist | Taglist mode keybindings. | attribute set of string |
| programs.alot.bindings.thread | Thread mode keybindings. | attribute set of string |
| 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. | boolean |
| programs.alot.extraConfig | Extra lines added to alot configuration file. | strings concatenated with "\n" |
| programs.alot.hooks | Content of the hooks file. | strings concatenated with "\n" |
| programs.alot.package | The alot package to use. | null or package |
| programs.alot.settings | Configuration options added to alot configuration file. | attribute set of (string or signed integer or boolean or floating point number) |
| programs.alot.tags | How to display the tags. | attribute set of (submodule) |
| programs.alot.tags.<name>.focus | How to display the tag when focused. | null or string |
| programs.alot.tags.<name>.normal | How to display the tag when unfocused. See <https://alot.readthedocs.io/en/latest/configuration/theming.html#tagstring-formatting>. | null or string |
| 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. | null or string |
| 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`. | null or string |
| programs.am2rlauncher.config | Config file for am2rlauncher in XML format. You can see the available options by modifying the settings in the GUI and looking at $XDG_CONFIG_HOME/AM2RLauncher/config.xml. | string or absolute path |
| programs.am2rlauncher.enable | Whether to enable am2rlauncher. | boolean |
| programs.am2rlauncher.package | The am2rlauncher package to use. | null or package |
| programs.amber.ambrSettings | Configuration settings for amber's ambr tool. All the available options can be found here: <https://github.com/dalance/amber?tab=readme-ov-file#configurable-value>. | TOML value |
| programs.amber.ambsSettings | Configuration settings for amber's ambs tool. All the available options can be found here: <https://github.com/dalance/amber?tab=readme-ov-file#configurable-value>. | TOML value |
| programs.amber.enable | Whether to enable amber. | boolean |
| programs.amber.package | The amber package to use. | null or package |
| programs.amfora.bookmarks | Bookmarks file for amfora. It's highly recommended that you edit this file through the program itself, and then look at $XDG_DATA_HOME/amfora/bookmarks.xml | string or absolute path |
| programs.amfora.enable | Whether to enable amfora. | boolean |
| programs.amfora.package | The amfora package to use. | null or package |
| programs.amfora.settings | Configuration settings for amfora. All available options can be found here: <https://github.com/makew0rld/amfora/blob/master/default-config.toml>. | TOML value |
| programs.amoco.config | Config file for amoco as a Python configuration module. | string or absolute path |
| programs.amoco.enable | Whether to enable amoco. | boolean |
| programs.amoco.package | The amoco package to use. | null or package |
| programs.amp.enable | Whether to enable amp. | boolean |
| programs.amp.package | The amp package to use. | null or package |
| programs.amp.settings | Configuration settings for amp. All the details can be found here: <https://amp.rs/docs/configuration/>. | YAML 1.1 value |
| programs.andcli.enable | Whether to enable andcli. | boolean |
| programs.andcli.package | The andcli package to use. | null or package |
| programs.andcli.settings | Configuration settings for andcli. All the details can be found here: <https://github.com/tjblackheart/andcli/blob/7de13cc933eeb23d53558f76fefef226bd531c2c/internal/config/config.go#L16> | YAML 1.1 value |
| programs.animdl.enable | Whether to enable animdl. | boolean |
| programs.animdl.package | The animdl package to use. | null or package |
| programs.animdl.settings | Configuration settings for animdl. All the available options can be found here: <https://github.com/justfoolingaround/animdl?tab=readme-ov-file#configurations>. | YAML 1.1 value |
| programs.anime-downloader.enable | Whether to enable anime-downloader. | boolean |
| programs.anime-downloader.package | The anime-downloader package to use. | null or package |
| programs.anime-downloader.settings | Configuration settings for anime-downloader. All available options can be found here: <https://anime-downlader.readthedocs.io/en/latest/usage/config.html#config-json>. | JSON value |
| programs.anki.addons | List of Anki add-on packages to install. | list of package |
| programs.anki.answerKeys | Overrides for choosing what keyboard shortcut activates each answer button. The Anki default will be used for ones without an override defined. | list of (submodule) |
| programs.anki.answerKeys.*.ease | Number associated with an answer button. By default, 1 = Again, 2 = Hard, 3 = Good, and 4 = Easy. | signed integer |
| programs.anki.answerKeys.*.key | Keyboard shortcut for this answer button. The shortcut should be in the string format used by <https://doc.qt.io/qt-6/qkeysequence.html>. | string |
| programs.anki.enable | Whether to enable Anki. | boolean |
| programs.anki.hideBottomBar | Hide bottom bar during review. | null or boolean |
| programs.anki.hideBottomBarMode | When to hide the bottom bar when `hideBottomBar` is enabled. | null or one of "fullscreen", "always" |
| programs.anki.hideTopBar | Hide top bar during review. | null or boolean |
| programs.anki.hideTopBarMode | When to hide the top bar when `hideTopBar` is enabled. | null or one of "fullscreen", "always" |
| programs.anki.language | Display language. Should be an underscore separated language tag. See <https://github.com/ankitects/anki/blob/main/pylib/anki/lang.py> for supported tags. | non-empty string |
| programs.anki.legacyImportExport | Use legacy (pre 2.1.55) import/export handling code. | null or boolean |
| programs.anki.minimalistMode | Minimalist user interface mode. | null or boolean |
| programs.anki.package | The anki package to use. | package |
| programs.anki.profiles | Anki profiles and their settings. Profiles are primarily intended to be one per person, and are not recommended for splitting up your own content. | attribute set of (submodule) |
| programs.anki.profiles.<name>.default | Open this profile on startup. | boolean |
| programs.anki.profiles.<name>.sync.autoSync | Automatically sync on profile open/close. | null or boolean |
| programs.anki.profiles.<name>.sync.autoSyncMediaMinutes | Automatically sync media every X minutes. Set this to 0 to disable periodic media syncing. | null or (unsigned integer, meaning >=0) |
| programs.anki.profiles.<name>.sync.keyFile | Path to a file containing the sync account sync key. This is different from the account password. To get the sync key, follow these steps: - Enable this Home Manager module: `programs.anki.enable = true` - Open Anki. - Navigate to the sync settings page. (Tools > Preferences > Syncing) - Log in to your AnkiWeb account. - Select "Yes" to the prompt about saving preferences and syncing. - A Home Manager warning prompt will show. Select "Show details...". - Get your sync key from the message: "syncKey changed from \`None\` to \`<YOUR SYNC KEY WILL BE HERE>\`" | null or absolute path |
| programs.anki.profiles.<name>.sync.networkTimeout | Network timeout in seconds (clamped between 30 and 99999). | null or (unsigned integer, meaning >=0) |
| programs.anki.profiles.<name>.sync.syncMedia | Synchronize audio and images too. | null or boolean |
| programs.anki.profiles.<name>.sync.url | Custom sync server URL. See <https://docs.ankiweb.net/sync-server.html>. | null or string |
| programs.anki.profiles.<name>.sync.username | Sync account username. | null or string |
| programs.anki.profiles.<name>.sync.usernameFile | Path to a file containing the sync account username. | null or absolute path |
| programs.anki.reduceMotion | Disable various animations and transitions of the user interface. | null or boolean |
| programs.anki.spacebarRatesCard | Spacebar (or enter) also answers card. | null or boolean |
| programs.anki.style | Widgets style. | null or one of "anki", "native" |
| programs.anki.theme | Theme to use. | null or one of "followSystem", "light", "dark" |
| programs.anki.uiScale | User interface scale. | null or integer or floating point number between 1.0 and 2.0 (both inclusive) |
| programs.anki.videoDriver | Video driver to use. | null or one of "opengl", "angle", "software", "metal", "vulkan", "d3d11" |
| programs.anup.config | Config file for anup in RON (Rusty Object Notation) format. Available options can be found by looking at ~/.config/anup/config.ron. | string or absolute path |
| programs.anup.enable | Whether to enable anup. | boolean |
| programs.anup.package | The anup package to use. | null or package |
| programs.anvil-editor.enable | Whether to enable anvil-editor. | boolean |
| programs.anvil-editor.package | The anvil-editor package to use. | null or package |
| programs.anvil-editor.settings | Configuration settings for anvil-editor. All available options can be found here: <https://anvil-editor.net/reference/config/#settingstoml>. | TOML value |
| programs.anvil-editor.style | Style settings for anvil-editor. All available options can be found here: <https://anvil-editor.net/reference/config/#stylejs>. | JSON value |
| programs.anyrun.config.closeOnClick | Close window when a click outside the main box is received. | boolean |
| programs.anyrun.config.height | The minimum height of the runner, the runner will expand to fit all the entries. This is a numeric option - pass either `{ absolute = int; };` or `{ fraction = float; };`. when using `absolute` it sets the absolute value in pixels, when using `fraction`, it sets a fraction of the width or height of the full screen (depends on exclusive zones and the settings related to them) window | submodule |
| programs.anyrun.config.height.absolute | Absolute value in pixels. | null or signed integer |
| programs.anyrun.config.height.fraction | Fraction of the screen. | null or floating point number |
| programs.anyrun.config.hideIcons | Hide match and plugin info icons. | boolean |
| programs.anyrun.config.hidePluginInfo | Hide the plugin info panel. | boolean |
| programs.anyrun.config.ignoreExclusiveZones | Ignore exclusive zones, eg. Waybar. | boolean |
| programs.anyrun.config.layer | Layer shell layer (background, bottom, top or overlay). | one of "background", "bottom", "top", "overlay" |
| programs.anyrun.config.margin | Add a margin around the window to allow for CSS shadow styling. | signed integer |
| programs.anyrun.config.maxEntries | Limit amount of entries shown in total. | null or signed integer |
| programs.anyrun.config.plugins | List of anyrun plugins to use. Can either be packages, absolute plugin paths, or strings. | null or (list of (package or string)) |
| programs.anyrun.config.showResultsImmediately | Show search results immediately when Anyrun starts. | boolean |
| programs.anyrun.config.width | The width of the runner. This is a numeric option - pass either `{ absolute = int; };` or `{ fraction = float; };`. when using `absolute` it sets the absolute value in pixels, when using `fraction`, it sets a fraction of the width or height of the full screen (depends on exclusive zones and the settings related to them) window | submodule |
| programs.anyrun.config.width.absolute | Absolute value in pixels. | null or signed integer |
| programs.anyrun.config.width.fraction | Fraction of the screen. | null or floating point number |
| programs.anyrun.config.x | The horizontal position, adjusted so that { relative = 0.5; } always centers the runner. This is a numeric option - pass either `{ absolute = int; };` or `{ fraction = float; };`. when using `absolute` it sets the absolute value in pixels, when using `fraction`, it sets a fraction of the width or height of the full screen (depends on exclusive zones and the settings related to them) window | submodule |
| programs.anyrun.config.x.absolute | Absolute value in pixels. | null or signed integer |
| programs.anyrun.config.x.fraction | Fraction of the screen. | null or floating point number |
| programs.anyrun.config.y | The vertical position, works the same as x. This is a numeric option - pass either `{ absolute = int; };` or `{ fraction = float; };`. when using `absolute` it sets the absolute value in pixels, when using `fraction`, it sets a fraction of the width or height of the full screen (depends on exclusive zones and the settings related to them) window | submodule |
| programs.anyrun.config.y.absolute | Absolute value in pixels. | null or signed integer |
| programs.anyrun.config.y.fraction | Fraction of the screen. | null or floating point number |
| programs.anyrun.enable | Whether to enable anyrun. | boolean |
| programs.anyrun.extraConfigFiles | Extra files to put in {file}`~/.config/anyrun`, a wrapper over {option}`xdg.configFile`. | attribute set |
| programs.anyrun.extraCss | Extra CSS lines to add to {file}`~/.config/anyrun/style.css`. | null or strings concatenated with "\n" |
| programs.anyrun.package | The anyrun package to use. | null or package |
| programs.aperture.enable | Whether to enable aperture. | boolean |
| programs.aperture.package | The aperture package to use. | null or package |
| programs.aperture.settings | Configuration settings for aperture. All the available options can be found here: <https://github.com/lightninglabs/aperture/blob/master/sample-conf.yaml> | YAML 1.1 value |
| programs.aphorme.enable | Whether to enable aphorme. | boolean |
| programs.aphorme.package | The aphorme package to use. | null or package |
| programs.aphorme.settings | Configuration settings for aphorme. All the available options can be found here: <https://github.com/Iaphetes/aphorme_launcher?tab=readme-ov-file#configuration> | TOML value |
| programs.aria2.enable | Whether to enable aria2. | boolean |
| programs.aria2.extraConfig | Extra lines added to {file}`aria2.conf` file. | strings concatenated with "\n" |
| programs.aria2.package | The aria2 package to use. | null or package |
| programs.aria2.settings | Options to add to {file}`aria2.conf` file. See {manpage}`aria2c(1)` for options. | attribute set of (boolean or floating point number or signed integer or string) |
| programs.asciinema.enable | Whether to enable Enable installing asciinema and writing configuration file. | boolean |
| programs.asciinema.package | The asciinema package to use. | null or package |
| programs.asciinema.settings | Declare-able configurations for asciinema written to {file}`$XDG_CONFIG_HOME/asciinema/config.toml`. Check official docs for available configurations; https://docs.asciinema.org/manual/cli/configuration/v3/#config-file | TOML value |
| programs.ashell.enable | Whether to enable ashell, a ready to go wayland status bar for hyprland. | boolean |
| programs.ashell.package | The ashell package to use. | null or package |
| programs.ashell.settings | Ashell configuration written to {file}`$XDG_CONFIG_HOME/ashell/config.toml` (0.5.0+) or {file}`$XDG_CONFIG_HOME/ashell/config.yaml` (<0.5.0). For available settings see <https://github.com/MalpenZibo/ashell?tab=readme-ov-file#configuration>. | null or TOML value |
| programs.ashell.systemd.enable | Whether to enable ashell systemd service. | boolean |
| programs.ashell.systemd.target | The systemd target that will automatically start ashell. If you set this to a WM-specific target, make sure that systemd integration for that WM is enabled (for example, [](#opt-wayland.windowManager.hyprland.systemd.enable)). This is typically true by default. | string |
| programs.astroid.enable | Whether to enable Astroid. | boolean |
| programs.astroid.externalEditor | You can use the following variables: `%1` : file name `%2` : server name `%3` : socket ID See [Customizing editor](https://github.com/astroidmail/astroid/wiki/Customizing-editor) on the Astroid wiki. | null or string |
| programs.astroid.extraConfig | JSON config that will override the default Astroid configuration. | JSON value |
| programs.astroid.package | The astroid package to use. | null or package |
| programs.astroid.pollScript | Script to run to fetch/update mails. | string |
| programs.atuin.daemon.enable | Whether to enable Atuin daemon. | boolean |
| programs.atuin.daemon.logLevel | Verbosity of Atuin daemon logging. | null or one of "trace", "debug", "info", "warn", "error" |
| programs.atuin.enable | Whether to enable atuin. | boolean |
| programs.atuin.enableBashIntegration | Whether to enable Bash integration. If enabled, this will bind `ctrl-r` to open the Atuin history. | boolean |
| programs.atuin.enableFishIntegration | Whether to enable Fish integration. If enabled, this will bind the up-arrow key to open the Atuin history. | boolean |
| programs.atuin.enableNushellIntegration | Whether to enable Nushell integration. | boolean |
| programs.atuin.enableZshIntegration | Whether to enable Zsh integration. If enabled, this will bind `ctrl-r` and the up-arrow key to open the Atuin history. | boolean |
| programs.atuin.flags | Flags to append to the shell hook. | list of string |
| programs.atuin.forceOverwriteSettings | When enabled, force overwriting of the Atuin configuration file ({file}`$XDG_CONFIG_HOME/atuin/config.toml`). Any existing Atuin configuration will be lost. Enabling this is useful when adding settings for the first time because Atuin writes its default config file after every single shell command, which can make it difficult to manually remove. | boolean |
| programs.atuin.package | The atuin package to use. | package |
| programs.atuin.settings | Configuration written to {file}`$XDG_CONFIG_HOME/atuin/config.toml`. See <https://docs.atuin.sh/configuration/config/> for the full list of options. | Atuin configuration |
| programs.atuin.themes | Each theme is written to {file}`$XDG_CONFIG_HOME/atuin/themes/theme-name.toml` where the name of each attribute is the theme-name See <https://docs.atuin.sh/guide/theming/> for the full list of options. | attribute set of (TOML value or absolute path or strings concatenated with "\n") |
| programs.autojump.enable | Whether to enable autojump. | boolean |
| programs.autojump.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.autojump.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.autojump.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.autojump.package | The autojump package to use. | package |
| programs.autorandr.enable | Whether to enable Autorandr. | boolean |
| programs.autorandr.hooks | Global hook scripts | submodule |
| programs.autorandr.hooks.postswitch | Postswitch hook executed after mode switch. | attribute set of strings concatenated with "\n" |
| programs.autorandr.hooks.predetect | Predetect hook executed before autorandr attempts to run xrandr. | attribute set of strings concatenated with "\n" |
| programs.autorandr.hooks.preswitch | Preswitch hook executed before mode switch. | attribute set of strings concatenated with "\n" |
| programs.autorandr.package | The autorandr package to use. | null or package |
| programs.autorandr.profiles | Autorandr profiles specification. | attribute set of (submodule) |
| programs.autorandr.profiles.<name>.config | Per output profile configuration. | attribute set of (submodule) |
| programs.autorandr.profiles.<name>.config.<name>.crtc | Output video display controller. | null or (unsigned integer, meaning >=0) |
| programs.autorandr.profiles.<name>.config.<name>.dpi | Output DPI configuration. | null or (positive integer, meaning >0) |
| programs.autorandr.profiles.<name>.config.<name>.enable | Whether to enable the output. | boolean |
| programs.autorandr.profiles.<name>.config.<name>.extraConfig | Extra lines to append to this profile's config. | strings concatenated with "\n" |
| programs.autorandr.profiles.<name>.config.<name>.filter | Interpolation method to be used for scaling the output. | null or one of "bilinear", "nearest" |
| programs.autorandr.profiles.<name>.config.<name>.gamma | Output gamma configuration. | string |
| programs.autorandr.profiles.<name>.config.<name>.mode | Output resolution. | string |
| programs.autorandr.profiles.<name>.config.<name>.position | Output position | string |
| programs.autorandr.profiles.<name>.config.<name>.primary | Whether output should be marked as primary | boolean |
| programs.autorandr.profiles.<name>.config.<name>.rate | Output framerate. | string |
| programs.autorandr.profiles.<name>.config.<name>.rotate | Output rotate configuration. | null or one of "normal", "left", "right", "inverted" |
| programs.autorandr.profiles.<name>.config.<name>.scale | Output scale configuration. Either configure by pixels or a scaling factor. When using pixel method the {manpage}`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. | null or (submodule) |
| programs.autorandr.profiles.<name>.config.<name>.scale.method | Output scaling method. | one of "factor", "pixel" |
| programs.autorandr.profiles.<name>.config.<name>.scale.x | Horizontal scaling factor/pixels. | floating point number or (positive integer, meaning >0) |
| programs.autorandr.profiles.<name>.config.<name>.scale.y | Vertical scaling factor/pixels. | floating point number or (positive integer, meaning >0) |
| programs.autorandr.profiles.<name>.config.<name>.transform | Refer to {manpage}`xrandr(1)` for the documentation of the transform matrix. | null or (3×3 matrix of floating point numbers) |
| programs.autorandr.profiles.<name>.fingerprint | Output name to EDID mapping. Use `autorandr --fingerprint` to get current setup values. | attribute set of string |
| programs.autorandr.profiles.<name>.hooks | Profile hook scripts. | submodule |
| programs.autorandr.profiles.<name>.hooks.postswitch | Postswitch hook executed after mode switch. | strings concatenated with "\n" |
| programs.autorandr.profiles.<name>.hooks.predetect | Predetect hook executed before autorandr attempts to run xrandr. | strings concatenated with "\n" |
| programs.autorandr.profiles.<name>.hooks.preswitch | Preswitch hook executed before mode switch. | strings concatenated with "\n" |
| programs.awscli.credentials | Configuration written to {file}`$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>. | open submodule of attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.awscli.enable | Whether to enable AWS CLI tool. | boolean |
| programs.awscli.package | The aws package to use. | null or package |
| programs.awscli.settings | Configuration written to {file}`$HOME/.aws/config`. | open submodule of attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.bacon.enable | Whether to enable bacon, a background rust code checker. | boolean |
| programs.bacon.package | The bacon package to use. | null or package |
| programs.bacon.settings | Bacon configuration written to either {file}`Library/Application Support/org.dystroy.bacon/prefs.toml` (darwin) or {file}`$XDG_CONFIG_HOME/bacon/prefs.toml`. For available settings see <https://dystroy.org/bacon/#global-preferences>. | TOML value |
| programs.bash.bashrcExtra | Extra commands that should be placed in {file}`~/.bashrc`. Note that these commands will be run even in non-interactive shells. | strings concatenated with "\n" |
| programs.bash.enable | Whether to enable GNU Bourne-Again SHell. | boolean |
| 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 ```nix environment.pathsToLink = [ "/share/bash-completion" ]; ``` to your system configuration to get completion for system packages. Note, the legacy {file}`/etc/bash_completion.d` path is not supported by Home Manager. | boolean |
| programs.bash.enableVteIntegration | Whether to enable integration with terminals using the VTE library. This will let the terminal track the current working directory. | boolean |
| programs.bash.historyControl | Controlling how commands are saved on the history list. | list of (one of "erasedups", "ignoredups", "ignorespace", "ignoreboth") |
| programs.bash.historyFile | Location of the bash history file. | null or string |
| programs.bash.historyFileSize | Number of history lines to keep on file. | null or signed integer |
| programs.bash.historyIgnore | List of commands that should not be saved to the history list. | list of string |
| programs.bash.historySize | Number of history lines to keep in memory. | null or signed integer |
| programs.bash.initExtra | Extra commands that should be run when initializing an interactive shell. | strings concatenated with "\n" |
| programs.bash.logoutExtra | Extra commands that should be run when logging out of an interactive shell. | strings concatenated with "\n" |
| programs.bash.package | The bash package to use. | null or package |
| programs.bash.profileExtra | Extra commands that should be run when initializing a login shell. | strings concatenated with "\n" |
| programs.bash.sessionVariables | Environment variables that will be set for the Bash session. | lazy attribute set of (string or signed integer or absolute path) |
| 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. | attribute set of string |
| programs.bash.shellOptions | Shell options to set. Prefix an option with "`-`" to unset. | list of string |
| programs.bashmount.enable | Whether to enable bashmount. | boolean |
| programs.bashmount.extraConfig | Configuration written to {file}`$XDG_CONFIG_HOME/bashmount/config`. Look at <https://github.com/jamielinux/bashmount/blob/master/bashmount.conf> for explanation about possible values. | strings concatenated with "\n" |
| programs.bashmount.package | The bashmount package to use. | null or package |
| programs.bat.config | Bat configuration. | attribute set of (string or list of string or boolean) |
| programs.bat.enable | Whether to enable bat, a cat clone with wings. | boolean |
| programs.bat.extraPackages | Additional bat packages to install. | list of package |
| programs.bat.package | The bat package to use. | package |
| programs.bat.syntaxes | Additional syntaxes to provide. | attribute set of (strings concatenated with "\n" or (submodule)) |
| programs.bat.syntaxes.<name>.file | Subpath of the syntax file within the source, if needed. | null or string |
| programs.bat.syntaxes.<name>.src | Path to the syntax folder. | absolute path |
| programs.bat.themes | Additional themes to provide. | attribute set of (strings concatenated with "\n" or (submodule)) |
| programs.bat.themes.<name>.file | Subpath of the theme file within the source, if needed. | null or string |
| programs.bat.themes.<name>.src | Path to the theme folder. | absolute path |
| 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 {option}`programs.beets.settings` is non-empty. | boolean |
| programs.beets.mpdIntegration.enableStats | Whether to enable mpdstats plugin and service. | boolean |
| programs.beets.mpdIntegration.enableUpdate | Whether to enable mpdupdate plugin. | boolean |
| programs.beets.mpdIntegration.host | The host that mpdstats will connect to. | string |
| programs.beets.mpdIntegration.port | The port that mpdstats will connect to. | 16 bit unsigned integer; between 0 and 65535 (both inclusive) |
| programs.beets.package | The beets package to use. Can be used to specify extensions. | package |
| programs.beets.settings | Configuration written to {file}`$XDG_CONFIG_HOME/beets/config.yaml` | YAML 1.1 value |
| programs.bemenu.enable | Whether to enable bemenu. | boolean |
| programs.bemenu.package | The bemenu package to use. | null or package |
| programs.bemenu.settings | Configuration options for bemenu. See {manpage}`bemenu(1)`. | attribute set of (string or signed integer or floating point number or boolean) |
| programs.bluetuith.enable | Whether to enable Bluetuith. | boolean |
| programs.bluetuith.package | The bluetuith package to use. | null or package |
| programs.bluetuith.settings | Configuration written to {file}`$XDG_CONFIG_HOME/bluetuith/bluetuith.conf`. See <https://bluetuith-org.github.io/bluetuith/Configuration.html> for details. | JSON value |
| programs.borgmatic.backups | Borgmatic allows for several named backup configurations, each with its own source directories and repositories. | attribute set of (submodule) |
| programs.borgmatic.backups.<name>.consistency.checks | Consistency checks to run | list of (submodule) |
| programs.borgmatic.backups.<name>.consistency.checks.*.frequency | Frequency of this type of check | null or string matching the pattern ([[:digit:]]+ .*)|always |
| programs.borgmatic.backups.<name>.consistency.checks.*.name | Name of consistency check to run. | one of "repository", "archives", "data", "extract" |
| programs.borgmatic.backups.<name>.consistency.extraConfig | Extra settings. | YAML 1.1 value |
| programs.borgmatic.backups.<name>.hooks.extraConfig | Extra settings. | YAML 1.1 value |
| 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. | boolean |
| programs.borgmatic.backups.<name>.location.extraConfig | Extra settings. | YAML 1.1 value |
| 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 [](#opt-programs.borgmatic.backups._name_.location.sourceDirectories). | null or (list of string) |
| programs.borgmatic.backups.<name>.location.repositories | List of local or remote repositories with paths and optional labels. | list of (string or (submodule)) |
| programs.borgmatic.backups.<name>.location.repositories.*.label | Short text describing the repository. Can be used with the `--repository` flag to select a repository. | null or string |
| programs.borgmatic.backups.<name>.location.repositories.*.path | Path of the repository. | string |
| programs.borgmatic.backups.<name>.location.sourceDirectories | Directories to backup. Mutually exclusive with [](#opt-programs.borgmatic.backups._name_.location.patterns). | null or (list of string) |
| programs.borgmatic.backups.<name>.output.extraConfig | Extra settings. | YAML 1.1 value |
| programs.borgmatic.backups.<name>.retention.extraConfig | Extra settings. | YAML 1.1 value |
| programs.borgmatic.backups.<name>.retention.keepDaily | Number of daily archives to keep. Use -1 for no limit. | null or signed integer |
| programs.borgmatic.backups.<name>.retention.keepHourly | Number of hourly archives to keep. Use -1 for no limit. | null or signed integer |
| programs.borgmatic.backups.<name>.retention.keepMinutely | Number of minutely archives to keep. Use -1 for no limit. | null or signed integer |
| programs.borgmatic.backups.<name>.retention.keepMonthly | Number of monthly archives to keep. Use -1 for no limit. | null or signed integer |
| programs.borgmatic.backups.<name>.retention.keepSecondly | Number of secondly archives to keep. Use -1 for no limit. | null or signed integer |
| programs.borgmatic.backups.<name>.retention.keepWeekly | Number of weekly archives to keep. Use -1 for no limit. | null or signed integer |
| programs.borgmatic.backups.<name>.retention.keepWithin | Keep all archives within this time interval. | null or string matching the pattern [[:digit:]]+[Hdwmy] |
| programs.borgmatic.backups.<name>.retention.keepYearly | Number of yearly archives to keep. Use -1 for no limit. | null or signed integer |
| programs.borgmatic.backups.<name>.storage.encryptionPasscommand | Command writing the passphrase to standard output. | null or string |
| programs.borgmatic.backups.<name>.storage.extraConfig | Extra settings. | YAML 1.1 value |
| programs.borgmatic.enable | Whether to enable Borgmatic. | boolean |
| programs.borgmatic.package | The borgmatic package to use. | null or package |
| programs.bottom.enable | Whether to enable bottom, a cross-platform graphical process/system monitor with a customizable interface. | boolean |
| programs.bottom.package | The bottom package to use. | null or package |
| programs.bottom.settings | Configuration written to {file}`$XDG_CONFIG_HOME/bottom/bottom.toml`. See <https://github.com/ClementTsang/bottom/blob/master/sample_configs/default_config.toml> for the default configuration. | TOML value |
| programs.boxxy.enable | Whether to enable boxxy: Boxes in badly behaving applications. | boolean |
| programs.boxxy.package | The boxxy package to use. | null or package |
| programs.boxxy.rules | List of boxxy rules | list of (open submodule of (YAML 1.1 value)) |
| programs.boxxy.rules.*.context | Apply redirection ONLY when in a certain directory. | list of string |
| programs.boxxy.rules.*.env | Give certain environment variables for said match. | attribute set of string |
| programs.boxxy.rules.*.mode | Does the current path redirect a file or a directory? | one of "file", "directory" |
| programs.boxxy.rules.*.name | Unique identifier of the boxxy rule. This can be any single-line string. | string |
| programs.boxxy.rules.*.only | Apply redirection ONLY to specified executable names. | list of string |
| programs.boxxy.rules.*.rewrite | Where that file/directory should be rewritten to. | string |
| programs.boxxy.rules.*.target | What directory/file to redirect. | string |
| programs.brave.nativeMessagingHosts | List of Brave Browser native messaging hosts to install. | list of package |
| programs.broot.enable | Whether to enable Broot, a better way to navigate directories. | boolean |
| programs.broot.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.broot.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.broot.enableNushellIntegration | Whether to enable Nushell integration. | boolean |
| programs.broot.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.broot.package | The broot package to use. | package |
| programs.broot.settings | Verbatim config entries | open submodule of (JSON value) |
| programs.broot.settings.modal | Whether to enable modal (vim) mode. | boolean |
| 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. | attribute set of string |
| programs.broot.settings.verbs | Define new verbs. For more information, see [Verb Definition Attributes](https://dystroy.org/broot/documentation/configuration/#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`) | list of attribute set of (boolean or string or list of string) |
| programs.browserpass.browsers | Which browsers to install browserpass for | list of (one of "brave", "chrome", "chromium", "firefox", "librewolf", "vivaldi") |
| programs.browserpass.enable | Whether to enable the browserpass extension host application. | boolean |
| programs.browserpass.package | The browserpass package to use. | package |
| programs.btop.enable | Whether to enable btop. | boolean |
| programs.btop.extraConfig | Extra lines added to the {file}`btop.conf` file. | strings concatenated with "\n" |
| programs.btop.package | The btop package to use. | null or package |
| programs.btop.settings | Options to add to {file}`btop.conf` file. See <https://github.com/aristocratos/btop#configurability> for options. | attribute set of (boolean or floating point number or signed integer or string) |
| programs.btop.themes | Themes to be written to {file}`$XDG_CONFIG_HOME/btop/themes/${name}.theme` | lazy attribute set of (absolute path or strings concatenated with "\n") |
| programs.bun.enable | Whether to enable Bun JavaScript runtime. | boolean |
| programs.bun.enableGitIntegration | Whether to enable Git integration. | boolean |
| programs.bun.package | The bun package to use. | null or package |
| programs.bun.settings | Configuration written to {file}`$XDG_CONFIG_HOME/.bunfig.toml`. See <https://bun.sh/docs/runtime/bunfig> for the full list of options. | TOML value |
| programs.calibre.enable | Whether to enable calibre. | boolean |
| programs.calibre.package | The calibre package to use. | null or package |
| programs.calibre.plugins | List of plugins to install for calibre | list of absolute path |
| programs.carapace.enable | Whether to enable carapace, a multi-shell multi-command argument completer. | boolean |
| programs.carapace.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.carapace.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.carapace.enableNushellIntegration | Whether to enable Nushell integration. | boolean |
| programs.carapace.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.carapace.ignoreCase | Whether to enable case-insensitive matching for carapace completions. When enabled, the carapace binary is wrapped with {env}`CARAPACE_MATCH` set to `1`. | boolean |
| programs.carapace.package | The carapace package to use. | package |
| programs.cargo.enable | Whether to enable management of cargo config. | boolean |
| programs.cargo.package | The cargo package to use. | null or package |
| programs.cargo.settings | Available configuration options for the .cargo/config see: https://doc.rust-lang.org/cargo/reference/config.html | TOML value |
| programs.cava.enable | Whether to enable Cava audio visualizer. | boolean |
| programs.cava.package | The cava package to use. | null or package |
| 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. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.cavalier.enable | Whether to enable Cava audio visualizer GUI. | boolean |
| programs.cavalier.package | The cavalier package to use. | null or package |
| programs.cavalier.settings.cava | Settings to be written to the underlying Cava configuration file. See <https://github.com/karlstav/cava/blob/master/example_files/config> for all available options. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.cavalier.settings.general | Settings to be written to the Cavalier configuration file. See <https://github.com/NickvisionApps/Cavalier/blob/main/NickvisionCavalier.Shared/Models/Configuration.cs> for all available options. | JSON value |
| programs.chawan.enable | Whether to enable chawan, A TUI web browser. | boolean |
| programs.chawan.package | The chawan package to use. | null or package |
| programs.chawan.settings | Configuration options for chawan. See {manpage}`cha-config(5)` | TOML value |
| programs.chromium.commandLineArgs | List of command-line arguments to be passed to Chromium. For a list of common switches, see [Chrome switches](https://chromium.googlesource.com/chromium/src/+/refs/heads/main/chrome/common/chrome_switches.cc). To search switches for other components, see [Chromium codesearch](https://source.chromium.org/search?q=file:switches.cc&ss=chromium%2Fchromium%2Fsrc). | list of string |
| programs.chromium.dictionaries | List of Chromium dictionaries to install. | list of package |
| programs.chromium.enable | Whether to enable Chromium. | boolean |
| programs.chromium.extensions | List of Chromium extensions to install. To find the extension ID, check its URL on the [Chrome Web Store](https://chrome.google.com/webstore/category/extensions). To install extensions outside of the Chrome Web Store set `updateUrl` or `crxPath` and `version` as explained in the [Chrome documentation](https://developer.chrome.com/docs/extensions/mv2/external_extensions). | list of ((submodule) or string convertible to it) |
| programs.chromium.extensions.*.crxPath | Path to the extension's crx file. Linux only. | null or absolute path |
| programs.chromium.extensions.*.id | The extension's ID from the Chrome Web Store url or the unpacked crx. | string matching the pattern [a-zA-Z]{32} |
| programs.chromium.extensions.*.updateUrl | URL of the extension's update manifest XML file. Linux only. | string |
| programs.chromium.extensions.*.version | The extension's version, required for local installation. Linux only. | null or string |
| programs.chromium.finalPackage | Resulting customized Chromium package | null or package |
| programs.chromium.nativeMessagingHosts | List of Chromium native messaging hosts to install. | list of package |
| programs.chromium.package | The Chromium package to use. | null or package |
| programs.claude-code.agents | Custom agents for Claude Code. The attribute name becomes the agent filename, and the value is either: - Inline content as a string with frontmatter - A path to a file containing the agent content with frontmatter Agents are stored in .claude/agents/ directory. | attribute set of (strings concatenated with "\n" or absolute path) |
| programs.claude-code.agentsDir | Path to a directory containing agent files for Claude Code. Agent files from this directory will be symlinked to .claude/agents/. | null or absolute path |
| programs.claude-code.commands | Custom commands for Claude Code. The attribute name becomes the command filename, and the value is either: - Inline content as a string - A path to a file containing the command content Commands are stored in .claude/commands/ directory. | attribute set of (strings concatenated with "\n" or absolute path) |
| programs.claude-code.commandsDir | Path to a directory containing command files for Claude Code. Command files from this directory will be symlinked to .claude/commands/. | null or absolute path |
| programs.claude-code.enable | Whether to enable Claude Code, Anthropic's official CLI. | boolean |
| programs.claude-code.enableMcpIntegration | Whether to integrate the MCP servers config from {option}`programs.mcp.servers` into {option}`programs.opencode.settings.mcp`. Note: Settings defined in {option}`programs.mcp.servers` are merged with {option}`programs.claude-code.mcpServers`, with Claude Code servers taking precedence. | boolean |
| programs.claude-code.hooks | Custom hooks for Claude Code. The attribute name becomes the hook filename, and the value is the hook script content. Hooks are stored in .claude/hooks/ directory. | attribute set of strings concatenated with "\n" |
| programs.claude-code.hooksDir | Path to a directory containing hook files for Claude Code. Hook files from this directory will be symlinked to .claude/hooks/. | null or absolute path |
| programs.claude-code.mcpServers | MCP (Model Context Protocol) servers configuration | attribute set of (JSON value) |
| programs.claude-code.memory.source | Path to a file containing memory content for CLAUDE.md. This option is mutually exclusive with memory.text. | null or absolute path |
| programs.claude-code.memory.text | Inline memory content for CLAUDE.md. This option is mutually exclusive with memory.source. | null or strings concatenated with "\n" |
| programs.claude-code.outputStyles | Custom output styles for Claude Code. The attribute name becomes the base of the output style filename. The value is either: - Inline content as a string - A path to a file In both cases, the contents will be written to .claude/output-styles/<name>.md | attribute set of (strings concatenated with "\n" or absolute path) |
| programs.claude-code.package | The claude-code package to use. | null or package |
| programs.claude-code.rules | Modular rule files for Claude Code. The attribute name becomes the rule filename, and the value is either: - Inline content as a string - A path to a file containing the rule content Rules are stored in .claude/rules/ directory. All markdown files in .claude/rules/ are automatically loaded as project memory. | attribute set of (strings concatenated with "\n" or absolute path) |
| programs.claude-code.rulesDir | Path to a directory containing rule files for Claude Code. Rule files from this directory will be symlinked to .claude/rules/. All markdown files in this directory are automatically loaded as project memory. | null or absolute path |
| programs.claude-code.settings | JSON configuration for Claude Code settings.json | JSON value |
| programs.claude-code.skills | Custom skills for Claude Code. The attribute name becomes the skill directory name, and the value is either: - Inline content as a string (creates .claude/skills/<name>/SKILL.md) - A path to a file (creates .claude/skills/<name>/SKILL.md) - A path to a directory (creates .claude/skills/<name>/ with all files) | attribute set of (strings concatenated with "\n" or absolute path) |
| programs.claude-code.skillsDir | Path to a directory containing skill directories for Claude Code. Each skill directory should contain a SKILL.md entrypoint file. Skill directories from this path will be symlinked to .claude/skills/. | null or absolute path |
| programs.clock-rs.enable | Whether to enable clock-rs. | boolean |
| programs.clock-rs.package | The clock-rs package to use. | null or package |
| programs.clock-rs.settings | The configuration file to be used for clock-rs | TOML value |
| programs.cmus.enable | Whether to enable Enable cmus, the music player.. | boolean |
| programs.cmus.extraConfig | Extra configuration to add to cmus {file}`rc`. | strings concatenated with "\n" |
| programs.cmus.package | The cmus package to use. | null or package |
| programs.cmus.theme | Select color theme. A list of available color themes can be found here: <https://github.com/cmus/cmus/tree/master/data>. | strings concatenated with "\n" |
| programs.codex.custom-instructions | Define custom guidance for the agents; this value is written to {file}~/.codex/AGENTS.md | strings concatenated with "\n" |
| programs.codex.enable | Whether to enable Lightweight coding agent that runs in your terminal. | boolean |
| programs.codex.enableMcpIntegration | Whether to integrate the MCP server config from {option}`programs.mcp.servers` into {option}`programs.codex.settings.mcp_servers`. Note: Settings defined in {option}`programs.mcp.servers` are merged with {option}`programs.codex.settings.mcp_servers`, with settings-based values taking precedence. | boolean |
| programs.codex.package | The codex package to use. | null or package |
| programs.codex.settings | Configuration written to {file}`CODEX_HOME/config.toml` (0.2.0+) or {file}`~/.codex/config.yaml` (<0.2.0). Per default {env}`CODEX_HOME` defaults to ~/.codex. See <https://github.com/openai/codex/blob/main/codex-rs/config.md> for supported values. | null or TOML value |
| programs.codex.skills | Custom skills for Codex. This option can either be: - An attribute set defining skills - A path to a directory containing multiple skill folders If an attribute set is used, the attribute name becomes the skill directory name, and the value is either: - Inline content as a string (creates {file}`<skills-dir>/<name>/SKILL.md`) - A path to a file (creates {file}`<skills-dir>/<name>/SKILL.md`) - A path to a directory (creates {file}`<skills-dir>/<name>/` with all files) If a path is used, it is expected to contain one folder per skill name, each containing a {file}`SKILL.md`. The directory is symlinked to {file}`<skills-dir>/`. The skills target directory depends on Codex version: - {file}`~/.agents/skills` for Codex >= 0.94.0 - {file}`~/.codex/skills` for older versions | (attribute set of (strings concatenated with "\n" or absolute path)) or absolute path |
| programs.command-not-found.dbPath | Absolute path to {file}`programs.sqlite`. By default this file will be provided by your channel (nixexprs.tar.xz). | absolute path |
| programs.command-not-found.enable | Whether to enable command-not-found hook for interactive shell. | boolean |
| programs.comodoro.enable | Whether to enable Comodoro, a CLI to manage your time. | boolean |
| programs.comodoro.package | The comodoro package to use. | null or package |
| programs.comodoro.settings | Comodoro configuration. See <https://pimalaya.org/comodoro/cli/configuration/> for supported values. | open submodule of (TOML value) |
| programs.cudatext.enable | Whether to enable cudatext. | boolean |
| programs.cudatext.hotkeys | Hotkeys for Cudatext. To see the available options, change the settings in the dialog "Help | Command palette" and look at the changes in `settings/keys.json`. | JSON value |
| programs.cudatext.lexerHotkeys | Hotkeys settings specific to each lexer. | attribute set of (JSON value) |
| programs.cudatext.lexerSettings | User configuration settings specific to each lexer. | attribute set of (JSON value) |
| programs.cudatext.package | The cudatext package to use. | null or package |
| programs.cudatext.userSettings | User configuration for Cudatext. | JSON value |
| 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. | list of string |
| programs.darcs.boring | File patterns to ignore | list of string |
| programs.darcs.enable | Whether to enable darcs. | boolean |
| programs.darcs.package | The darcs package to use. | null or package |
| programs.delta.enable | Whether to enable delta, a syntax highlighter for git diffs. | boolean |
| programs.delta.enableGitIntegration | Whether to enable git integration for delta. When enabled, delta will be configured as git's pager and diff filter. | boolean |
| programs.delta.enableJujutsuIntegration | Whether to enable jujutsu integration for delta. When enabled, delta will be configured as jujutsus's pager, diff filter, and merge tool. | boolean |
| programs.delta.options | Options to configure delta. | attribute set of (string or boolean or signed integer or attribute set of (string or boolean or signed integer)) |
| programs.delta.package | The delta package to use. | package |
| programs.desktoppr.enable | Whether to enable managing the desktop picture/wallpaper on macOS using desktoppr. | boolean |
| programs.desktoppr.package | The desktoppr package to use. | package |
| programs.desktoppr.settings | The settings to set for desktoppr. | open submodule of attribute set of anything |
| programs.desktoppr.settings.color | The background color that will be used behind the chosen picture when it does not fill the screen. | string matching the pattern [0-9a-fA-F]{6} |
| programs.desktoppr.settings.picture | The path to the desktop picture/wallpaper to set. Can also be an HTTP or HTTPS URL to retrieve the picture from a remote URL at runtime. | null or absolute path or string matching the pattern ^http(s)?://.*$ |
| programs.desktoppr.settings.scale | The scaling behavior to use when using an image. | one of "fill", "stretch", "center", "fit" |
| programs.desktoppr.settings.setOnlyOnce | If false (the default), the desktop picture/wallpaper will be reset to the configured parameters on every system configuration change. If true, the desktop picture/wallpaper will only be set when it differs from the one previously set. This allows the user to manually change the desktop picture/wallpaper after it has been set. | boolean |
| programs.desktoppr.settings.sha256 | An optional SHA256 checksum of the desktop picture/wallpaper. If the specified file does not match the checksum, it will not be set. | null or string matching the pattern ^[a-f0-9]{64}$ |
| programs.diff-highlight.enable | Enable the contrib {command}`diff-highlight` syntax highlighter. See <https://github.com/git/git/blob/master/contrib/diff-highlight/README>, | boolean |
| programs.diff-highlight.enableGitIntegration | Whether to enable git integration for diff-highlight. When enabled, diff-highlight will be configured as git's pager and diff filter. | boolean |
| programs.diff-highlight.pagerOpts | Arguments to be passed to {command}`less`. | list of string |
| programs.diff-so-fancy.enable | Whether to enable diff-so-fancy, a diff colorizer. | boolean |
| programs.diff-so-fancy.enableGitIntegration | Whether to enable git integration for diff-so-fancy. When enabled, diff-so-fancy will be configured as git's pager and diff filter. | boolean |
| programs.diff-so-fancy.pagerOpts | Arguments to be passed to {command}`less`. | list of string |
| programs.diff-so-fancy.settings | Options to configure diff-so-fancy. See <https://github.com/so-fancy/diff-so-fancy#configuration> for available options. | attribute set of (string or boolean or signed integer) |
| programs.difftastic.enable | Whether to enable difftastic, a structural diff tool. | boolean |
| programs.difftastic.git.diffToolMode | Whether to additionally configure difftastic as a git difftool. When `false`, only `diff.external` is set (used for `git diff`). When `true`, both `diff.external` and difftool config are set (supporting both `git diff` and `git difftool`). | boolean |
| programs.difftastic.git.enable | Whether to enable git integration for difftastic. When enabled, difftastic will be configured as git's external diff tool or difftool depending on the value of {option}`programs.difftastic.git.diffToolMode`. | boolean |
| programs.difftastic.jujutsu.enable | Whether to enable jujutsu integration for difftastic. | boolean |
| programs.difftastic.options | Configuration options for {command}`difftastic`. See {command}`difft --help` | attribute set of (string or signed integer or boolean or list of (string or signed integer or boolean)) |
| programs.difftastic.package | The difftastic package to use. | package |
| programs.dircolors.enable | Whether to manage {file}`.dir_colors` and set `LS_COLORS`. | boolean |
| programs.dircolors.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.dircolors.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.dircolors.enableNushellIntegration | Whether to enable Nushell integration. | boolean |
| programs.dircolors.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.dircolors.extraConfig | Extra lines added to {file}`.dir_colors` file. | strings concatenated with "\n" |
| programs.dircolors.package | The dircolors package to use. | package |
| programs.dircolors.settings | Options to add to {file}`.dir_colors` file. See {command}`dircolors --print-database` for options. | attribute set of string |
| programs.direnv.config | Configuration written to {file}`$XDG_CONFIG_HOME/direnv/direnv.toml`. See {manpage}`direnv.toml(1)`. for the full list of options. | TOML value |
| programs.direnv.enable | Whether to enable direnv, the environment switcher. | boolean |
| programs.direnv.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.direnv.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.direnv.enableNushellIntegration | Whether to enable Nushell integration. | boolean |
| programs.direnv.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.direnv.mise.enable | Whether to enable [mise](https://mise.jdx.dev/direnv.html), integration of use_mise for direnv. | boolean |
| programs.direnv.mise.package | The mise package to use. | package |
| programs.direnv.nix-direnv.enable | Whether to enable [nix-direnv](https://github.com/nix-community/nix-direnv), a fast, persistent use_nix implementation for direnv. | boolean |
| programs.direnv.nix-direnv.package | The nix-direnv package to use. | package |
| programs.direnv.package | The direnv package to use. | package |
| programs.direnv.silent | Whether to enable silent mode, that is, disabling direnv logging. | boolean |
| programs.direnv.stdlib | Custom stdlib written to {file}`$XDG_CONFIG_HOME/direnv/direnvrc`. | strings concatenated with "\n" |
| programs.discocss.css | The custom CSS for discocss to use. | string |
| programs.discocss.discordAlias | Whether to alias discocss to discord. | boolean |
| programs.discocss.discordPackage | The discord package to use. | null or package |
| programs.discocss.enable | Whether to enable discocss, a tiny Discord CSS injector for Linux and MacOS. | boolean |
| programs.discocss.package | The discocss package to use. | null or package |
| programs.discord.enable | Whether to enable Discord, the chat platform. | boolean |
| programs.discord.package | The discord package to use. | null or package |
| programs.discord.settings | Configuration for Discord. The schema does not seem to be documented anywhere | open submodule of (JSON value) |
| programs.discord.settings.DANGEROUS_ENABLE_DEVTOOLS_ONLY_ENABLE_IF_YOU_KNOW_WHAT_YOURE_DOING | Whether to enable Chrome's devtools inside Discord | boolean |
| programs.discord.settings.SKIP_HOST_UPDATE | Whether to skip Discord's automatic update checks at startup | boolean |
| programs.distrobox.containers | A set of containers and all its respective configurations. Each option can be either a bool, string or a list of strings. If passed a list, the option will be repeated for each element. See common-debian in the example config. All the available options for the containers can be found in the distrobox-assemble documentation at <https://github.com/89luca89/distrobox/blob/main/docs/usage/distrobox-assemble.md>. | 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) |
| programs.distrobox.enable | Whether to enable distrobox. | boolean |
| programs.distrobox.enableSystemdUnit | Whatever to enable a Systemd Unit that automatically rebuilds your containers when changes are detected. | boolean |
| programs.distrobox.package | The distrobox package to use. | null or package |
| programs.distrobox.settings | Configuration settings for Distrobox. All the available options can be found here: <https://github.com/89luca89/distrobox?tab=readme-ov-file#configure-distrobox> | attribute set of (INI atom (null, bool, int, float or string) or a list of them for duplicate keys) |
| programs.docker-cli.configDir | Directory to store configuration and state. This also sets $DOCKER_CONFIG. | string |
| programs.docker-cli.contexts | Attribute set of Docker context configurations. Each attribute name becomes the context Name; overriding requires lib.mkForce. See: <https://docs.docker.com/engine/manage-resources/contexts/ | attribute set of (open submodule of (JSON value)) |
| programs.docker-cli.contexts.<name>.Name | Name of the Docker context. Defaults to the attribute name (the <name> in programs.docker-cli.contexts.<name>). Overriding requires lib.mkForce. | string |
| programs.docker-cli.enable | Whether to enable management of docker client config. | boolean |
| programs.docker-cli.settings | Available configuration options for the Docker CLI see: <https://docs.docker.com/reference/cli/docker/#docker-cli-configuration-file-configjson-properties | JSON value |
| programs.earthly.enable | Whether to enable earthly. | boolean |
| programs.earthly.package | The earthly package to use. | null or package |
| programs.earthly.settings | Configuration written to ~/.earthly/config.yml file. See https://docs.earthly.dev/docs/earthly-config for supported values. | YAML 1.1 value |
| programs.eclipse.enable | Whether to enable Eclipse. | boolean |
| programs.eclipse.enableLombok | Whether to enable the Lombok Java Agent in Eclipse. This is necessary to use the Lombok class annotations. | boolean |
| programs.eclipse.jvmArgs | JVM arguments to use for the Eclipse process. | list of string |
| programs.eclipse.package | The eclipse package to use. | package |
| programs.eclipse.plugins | Plugins that should be added to Eclipse. | list of package |
| programs.element-desktop.enable | Whether to enable element-desktop. | boolean |
| programs.element-desktop.package | The element-desktop package to use. | null or package |
| programs.element-desktop.profiles | Extra profiles for Element. Those can be accessed using the "--profile $NAME" flag. The same warning and options apply here. | attribute set of (JSON value) |
| programs.element-desktop.settings | Configuration settings for Element's default profiles. WARNING: Element doesn't combine this config with the defaults, so make sure to configure most options. For details about this behavior and available configuration options see: <https://github.com/element-hq/element-web/blob/develop/docs/config.md> | JSON value |
| programs.emacs.enable | Whether to enable Emacs. | boolean |
| 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. | strings concatenated with "\n" |
| programs.emacs.extraPackages | Extra packages available to Emacs. To get a list of available packages run: {command}`nix-env -f '<nixpkgs>' -qaP -A emacsPackages`. | Function that takes an attribute set and returns a list containing a selection of the values of the input set |
| programs.emacs.overrides | Allows overriding packages within the Emacs package set. | An overlay function, takes self and super and returns an attribute set overriding the desired attributes. |
| programs.emacs.package | The emacs package to use. | package |
| programs.eww.configDir | The directory that gets symlinked to {file}`$XDG_CONFIG_HOME/eww`. | null or absolute path |
| programs.eww.enable | Whether to enable eww. | boolean |
| programs.eww.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.eww.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.eww.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.eww.package | The eww package to use. | package |
| programs.eza.colors | Use terminal colors in output ({option}`--color` argument). | one of <null>, "auto", "always", "never" |
| programs.eza.enable | Whether to enable eza, a modern replacement for {command}`ls`. | boolean |
| programs.eza.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.eza.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.eza.enableIonIntegration | Whether to enable Ion integration. | boolean |
| programs.eza.enableNushellIntegration | Whether to enable Nushell integration. | boolean |
| programs.eza.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.eza.extraOptions | Extra command line options passed to eza. | list of string |
| programs.eza.git | List each file's Git status if tracked or ignored ({option}`--git` argument). | boolean |
| programs.eza.icons | Display icons next to file names ({option}`--icons` argument). Note, the support for Boolean values is deprecated. Setting this option to `true` corresponds to `--icons=auto`. | one of <null>, true, false, "auto", "always", "never" |
| programs.eza.package | The eza package to use. | null or package |
| programs.eza.theme | Written to {file}`$XDG_CONFIG_HOME/eza/theme.yml` See <https://github.com/eza-community/eza#custom-themes> | YAML 1.1 value |
| programs.fabric-ai.enable | Whether to enable Fabric AI. | boolean |
| programs.fabric-ai.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.fabric-ai.enablePatternsAliases | Whether to enable aliases for all Fabric's patterns. | boolean |
| programs.fabric-ai.enableYtAlias | Whether to enable Fabric's `yt` alias. | boolean |
| programs.fabric-ai.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.fabric-ai.package | The fabric-ai package to use. | null or package |
| programs.fastfetch.enable | Whether to enable Fastfetch. | boolean |
| programs.fastfetch.package | The fastfetch package to use. | null or package |
| programs.fastfetch.settings | Configuration written to {file}`$XDG_CONFIG_HOME/fastfetch/config.jsonc`. See <https://github.com/fastfetch-cli/fastfetch/wiki/Json-Schema> for the documentation. | JSON value |
| programs.fd.enable | Whether to enable fd, a simple, fast and user-friendly alternative to {command}`find`. | boolean |
| programs.fd.extraOptions | Extra command line options passed to fd. | list of string |
| programs.fd.hidden | Search hidden files and directories ({option}`--hidden` argument). | boolean |
| programs.fd.ignores | List of paths that should be globally ignored. | list of string |
| programs.fd.package | The fd package to use. | null or package |
| 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/#BUTTONS_CONFIG_SYNTAX> for default bindings and available commands. | attribute set of (null or string or signed integer or list of (string or signed integer)) |
| programs.feh.enable | Whether to enable feh - a fast and light image viewer. | boolean |
| 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/#KEYS_CONFIG_SYNTAX> for default bindings and available commands. | attribute set of (null or string or list of string) |
| programs.feh.package | The feh package to use. | null or package |
| programs.feh.themes | Define themes for feh. See <https://man.finalrewind.org/1/feh/#THEMES_CONFIG_SYNTAX> for important guidelines and limitations related to theme configuration. | attribute set of list of string |
| programs.firefox.darwinDefaultsId | The id for the darwin defaults in order to set policies | null or string |
| programs.firefox.enable | Whether to enable Firefox. | boolean |
| 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`. | boolean |
| programs.firefox.finalPackage | Resulting Firefox package. | null or package |
| 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. If the version string of your Firefox derivative diverts from the upstream version, try setting the `release` option. | list of string |
| programs.firefox.nativeMessagingHosts | Additional packages containing native messaging hosts that should be made available to Firefox extensions. | list of package |
| 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. | null or package |
| programs.firefox.pkcs11Modules | Additional packages to be loaded as PKCS #11 modules in Firefox. | list of package |
| programs.firefox.policies | [See list of policies](https://mozilla.github.io/policy-templates/). | attribute set of (JSON value) |
| programs.firefox.profiles | Attribute set of Firefox profiles. | attribute set of (submodule) |
| programs.firefox.profiles.<name>.bookmarks | Declarative bookmarks. | (submodule) or ((list of ((bookmark submodule) or (directory submodule) or value "separator" (singular enum))) or (attribute set of ((bookmark submodule) or (directory submodule) or value "separator" (singular enum))) convertible to it) convertible to it |
| programs.firefox.profiles.<name>.bookmarks.configFile | Configuration file to define custom bookmarks. | null or absolute path |
| programs.firefox.profiles.<name>.bookmarks.force | Whether to force override existing custom bookmarks. | boolean |
| programs.firefox.profiles.<name>.bookmarks.meta.maintainers | List of maintainers of each module. This option should be defined at most once per module. The option value is not a list of maintainers, but an attribute set that maps module file names to lists of maintainers. | list of (maintainer) |
| programs.firefox.profiles.<name>.bookmarks.settings | Custom bookmarks. | (list of ((bookmark submodule) or (directory submodule) or value "separator" (singular enum))) or (attribute set of ((bookmark submodule) or (directory submodule) or value "separator" (singular enum))) convertible to it |
| programs.firefox.profiles.<name>.containers | Attribute set of container configurations. See [Multi-Account Containers](https://support.mozilla.org/en-US/kb/containers) for more information. | attribute set of (submodule) |
| programs.firefox.profiles.<name>.containers.<name>.color | Container color. | one of "blue", "turquoise", "green", "yellow", "orange", "red", "pink", "purple", "toolbar" |
| programs.firefox.profiles.<name>.containers.<name>.icon | Container icon. | one of "briefcase", "cart", "circle", "dollar", "fence", "fingerprint", "gift", "vacation", "food", "fruit", "pet", "tree", "chill" |
| programs.firefox.profiles.<name>.containers.<name>.id | Container ID. This should be set to a unique number per container in this profile. | unsigned integer, meaning >=0 |
| programs.firefox.profiles.<name>.containers.<name>.name | Container name, e.g., shopping. | string |
| 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. | boolean |
| programs.firefox.profiles.<name>.extensions | Submodule for installing and configuring extensions. | (submodule) or (list of package) convertible to it |
| programs.firefox.profiles.<name>.extensions.exactPermissions | When enabled, {option}`programs.firefox.profiles.<profile>.extensions.settings.<extensionID>.permissions` must specify the exact set of permissions that the extension will request. This means that if the authorized permissions are broader than what the extension requests, the assertion will fail. | boolean |
| programs.firefox.profiles.<name>.extensions.exhaustivePermissions | When enabled, the user must authorize requested permissions for all extensions from {option}`programs.firefox.profiles.<profile>.extensions.packages` in {option}`programs.firefox.profiles.<profile>.extensions.settings.<extensionID>.permissions` | boolean |
| programs.firefox.profiles.<name>.extensions.force | Whether to override all previous firefox settings. This is required when using `settings`. | boolean |
| programs.firefox.profiles.<name>.extensions.packages | 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 ```console $ 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 [{option}`programs.firefox.profiles.<profile>.settings`](#opt-programs.firefox.profiles._name_.settings) | list of package |
| programs.firefox.profiles.<name>.extensions.settings | Attribute set of options for each extension. The keys of the attribute set consist of the ID of the extension or its UUID wrapped in curly braces. | attribute set of (submodule) |
| programs.firefox.profiles.<name>.extensions.settings.<name>.force | Forcibly override any existing configuration for this extension. | boolean |
| programs.firefox.profiles.<name>.extensions.settings.<name>.permissions | Allowed permissions for this extension. See <https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions> for a list of relevant permissions. | null or (list of string) |
| programs.firefox.profiles.<name>.extensions.settings.<name>.settings | Json formatted options for this extension. | attribute set of (JSON value) |
| programs.firefox.profiles.<name>.extraConfig | Extra preferences to add to {file}`user.js`. | strings concatenated with "\n" |
| programs.firefox.profiles.<name>.handlers | Declarative handlers configuration for MIME types and URL schemes. | submodule |
| programs.firefox.profiles.<name>.handlers.force | Whether to force replace the existing handlers configuration. | boolean |
| programs.firefox.profiles.<name>.handlers.meta.maintainers | List of maintainers of each module. This option should be defined at most once per module. The option value is not a list of maintainers, but an attribute set that maps module file names to lists of maintainers. | list of (maintainer) |
| programs.firefox.profiles.<name>.handlers.mimeTypes | Attribute set mapping MIME types to their handler configurations. For a configuration example, see [this file on Firefox’s source code](https://github.com/mozilla-firefox/firefox/blob/c3797cdebac1316dd7168e995e3468c5a597e8d1/uriloader/exthandler/tests/unit/handlers.json). | attribute set of (submodule) |
| programs.firefox.profiles.<name>.handlers.mimeTypes.<name>.action | The action to take for this MIME type / URL scheme. Possible values: - 0: Save file - 1: Always ask - 2: Use helper app - 3: Open in Firefox - 4: Use system default | one of 0, 1, 2, 3, 4 |
| programs.firefox.profiles.<name>.handlers.mimeTypes.<name>.ask | If true, the user is asked what they want to do with the file. If false, the action is taken without user intervention. | boolean |
| programs.firefox.profiles.<name>.handlers.mimeTypes.<name>.extensions | List of file extensions associated with this MIME type. | list of string matching the pattern ^[^\.].+$ |
| programs.firefox.profiles.<name>.handlers.mimeTypes.<name>.handlers | An array of handlers with the first one being the default. If you don't want to have a default handler, use an empty object for the first handler. Only valid when action is set to 2 (Use helper app). | list of (submodule) |
| programs.firefox.profiles.<name>.handlers.mimeTypes.<name>.handlers.*.name | Display name of the handler. | null or string |
| programs.firefox.profiles.<name>.handlers.mimeTypes.<name>.handlers.*.path | Path to the executable to be used. Only one of 'path' or 'uriTemplate' should be set. | null or string |
| programs.firefox.profiles.<name>.handlers.mimeTypes.<name>.handlers.*.uriTemplate | URI for the application handler. Only one of 'path' or 'uriTemplate' should be set. | null or string |
| programs.firefox.profiles.<name>.handlers.schemes | Attribute set mapping URL schemes to their handler configurations. For a configuration example, see [this file on Firefox’s source code](https://github.com/mozilla-firefox/firefox/blob/c3797cdebac1316dd7168e995e3468c5a597e8d1/uriloader/exthandler/tests/unit/handlers.json). | attribute set of (submodule) |
| programs.firefox.profiles.<name>.handlers.schemes.<name>.action | The action to take for this MIME type / URL scheme. Possible values: - 0: Save file - 1: Always ask - 2: Use helper app - 3: Open in Firefox - 4: Use system default | one of 0, 1, 2, 3, 4 |
| programs.firefox.profiles.<name>.handlers.schemes.<name>.ask | If true, the user is asked what they want to do with the file. If false, the action is taken without user intervention. | boolean |
| programs.firefox.profiles.<name>.handlers.schemes.<name>.handlers | An array of handlers with the first one being the default. If you don't want to have a default handler, use an empty object for the first handler. Only valid when action is set to 2 (Use helper app). | list of (submodule) |
| programs.firefox.profiles.<name>.handlers.schemes.<name>.handlers.*.name | Display name of the handler. | null or string |
| programs.firefox.profiles.<name>.handlers.schemes.<name>.handlers.*.path | Path to the executable to be used. Only one of 'path' or 'uriTemplate' should be set. | null or string |
| programs.firefox.profiles.<name>.handlers.schemes.<name>.handlers.*.uriTemplate | URI for the application handler. Only one of 'path' or 'uriTemplate' should be set. | null or string |
| programs.firefox.profiles.<name>.id | Profile ID. This should be set to a unique number per profile. | unsigned integer, meaning >=0 |
| programs.firefox.profiles.<name>.isDefault | Whether this is a default profile. | boolean |
| programs.firefox.profiles.<name>.name | Profile name. | string |
| programs.firefox.profiles.<name>.path | Profile path. | string |
| programs.firefox.profiles.<name>.preConfig | Extra preferences to add to {file}`user.js`, before [](#opt-programs.firefox.profiles._name_.settings). Use [](#opt-programs.firefox.profiles._name_.extraConfig), unless you want to overwrite in [](#opt-programs.firefox.profiles._name_.settings), then use this option. | strings concatenated with "\n" |
| programs.firefox.profiles.<name>.search | Declarative search engine configuration. | submodule |
| programs.firefox.profiles.<name>.search.default | The default search engine used in the address bar and search bar. | null or string |
| programs.firefox.profiles.<name>.search.engines | Attribute set of search engine configurations. Engines that only have {var}`metaData` specified will be treated as builtin to Firefox. See [SearchEngine.jsm](https://searchfox.org/mozilla-central/rev/e3f42ec9320748b2aab3d474d1e47075def9000c/toolkit/components/search/SearchEngine.sys.mjs#890-923) 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, {var}`icon` is also a special option added by Home Manager to make it convenient to specify absolute icon paths. | attribute set of attribute set of (JSON value) |
| 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. | boolean |
| programs.firefox.profiles.<name>.search.meta.maintainers | List of maintainers of each module. This option should be defined at most once per module. The option value is not a list of maintainers, but an attribute set that maps module file names to lists of maintainers. | list of (maintainer) |
| 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. | list of string |
| programs.firefox.profiles.<name>.search.privateDefault | The default search engine used in the Private Browsing. | null or string |
| programs.firefox.profiles.<name>.settings | Attribute set of Firefox preferences. Firefox only supports int, bool, and string types for preferences, but home-manager will automatically convert all other JSON-compatible values into strings. | attribute set of (Firefox preference (int, bool, string, and also attrs, list, float as a JSON string)) |
| programs.firefox.profiles.<name>.userChrome | Custom Firefox user chrome CSS. | strings concatenated with "\n" or absolute path |
| programs.firefox.profiles.<name>.userContent | Custom Firefox user content CSS. | strings concatenated with "\n" or absolute path |
| programs.firefoxpwa.enable | Whether to enable Progressive Web Apps for Firefox. | boolean |
| programs.firefoxpwa.package | The firefoxpwa package to use. | null or package |
| programs.firefoxpwa.profiles | Attribute set of profile options. The keys of that attribute set consist of ULIDs. A ULID is made of 26 characters, each of which is one of '0123456789ABCDEFGHJKMNPQRSTVWXYZ' (Excluding I, L, O and U). See <https://github.com/ulid/spec?tab=readme-ov-file#canonical-string-representation>. | attribute set of (submodule) |
| programs.firefoxpwa.profiles.<name>.name | Name of the profile. | string |
| programs.firefoxpwa.profiles.<name>.settings | Settings for this profile. See <https://github.com/filips123/PWAsForFirefox/blob/cb4fc76873cc51129d9290754768e6a340c521b2/native/src/components/profile.rs#L13-L34> for a list of available options. | JSON value |
| programs.firefoxpwa.profiles.<name>.sites | Attribute set of site options for this profile. The keys of that attribute set consist of ULIDs. A ULID is made of 26 characters, each of which is one of '0123456789ABCDEFGHJKMNPQRSTVWXYZ' (Excluding I, L, O and U). See <https://github.com/ulid/spec?tab=readme-ov-file#canonical-string-representation>. Site ULIDs must be unique across profiles. | attribute set of (submodule) |
| programs.firefoxpwa.profiles.<name>.sites.<name>.desktopEntry.categories | Categories in which the entry should be shown in a menu. | null or (list of string) |
| programs.firefoxpwa.profiles.<name>.sites.<name>.desktopEntry.enable | Whether to enable the desktop entry for this site. | boolean |
| programs.firefoxpwa.profiles.<name>.sites.<name>.desktopEntry.icon | Icon to display in file manager, menus, etc. | null or string or absolute path |
| programs.firefoxpwa.profiles.<name>.sites.<name>.manifestUrl | URL of the site's web app manifest. | string |
| programs.firefoxpwa.profiles.<name>.sites.<name>.name | Name of the site. | string |
| programs.firefoxpwa.profiles.<name>.sites.<name>.settings | Settings for this site. See <https://github.com/filips123/PWAsForFirefox/blob/cb4fc76873cc51129d9290754768e6a340c521b2/native/src/components/site.rs#L98-L115> for a list of available options. | JSON value |
| programs.firefoxpwa.profiles.<name>.sites.<name>.url | Start URL of the site. | string |
| programs.firefoxpwa.settings | Settings to be written to the configuration file. See <https://github.com/filips123/PWAsForFirefox/blob/cb4fc76873cc51129d9290754768e6a340c521b2/native/src/storage.rs#L61-L77> for a list of available options. | JSON value |
| programs.fish.binds | Manage key bindings | attribute set of (submodule) |
| programs.fish.binds.<name>.command | command that will be execute | string or list of string (optional when erase is set to true) |
| programs.fish.binds.<name>.enable | Whether to enable enable the bind. Set false if you want to ignore the bind. | boolean |
| programs.fish.binds.<name>.erase | Whether to enable remove bind. | boolean |
| programs.fish.binds.<name>.mode | Specify the bind mode that the bind is used in | null or one of "default", "insert", "paste" |
| programs.fish.binds.<name>.operate | Operate on preset bindings or user bindings | null or one of "preset", "user" |
| programs.fish.binds.<name>.repaint | Whether to enable redraw prompt after command. | boolean |
| programs.fish.binds.<name>.setsMode | Change current mode after bind is executed | null or one of "default", "insert", "paste" |
| programs.fish.binds.<name>.silent | Whether to enable Operate silently. | boolean |
| programs.fish.completions | Custom fish completions. For more information see <https://fishshell.com/docs/current/completions.html>. | attribute set of (strings concatenated with "\n" or (submodule)) |
| programs.fish.completions.<name>.body | The completion file's body. | strings concatenated with "\n" |
| programs.fish.enable | Whether to enable fish, the friendly interactive shell. | boolean |
| programs.fish.functions | Basic functions to add to fish. For more information see <https://fishshell.com/docs/current/cmds/function.html>. | attribute set of (strings concatenated with "\n" or (submodule)) |
| programs.fish.functions.<name>.argumentNames | Assigns the value of successive command line arguments to the names given. | null or string or list of string |
| programs.fish.functions.<name>.body | The function body. | strings concatenated with "\n" |
| programs.fish.functions.<name>.description | A description of what the function does, suitable as a completion description. | null or string |
| programs.fish.functions.<name>.inheritVariable | Snapshots the value of the specified variable and defines a local variable with that same name and value when the function is defined. | null or string |
| programs.fish.functions.<name>.noScopeShadowing | Allows the function to access the variables of calling functions. | boolean |
| programs.fish.functions.<name>.onEvent | Tells fish to run this function when the specified named event is emitted. Fish internally generates named events e.g. when showing the prompt. | null or string or list of string |
| programs.fish.functions.<name>.onJobExit | Tells fish to run this function when the job with the specified group ID exits. Instead of a PID, the stringer `caller` can be specified. This is only legal when in a command substitution, and will result in the handler being triggered by the exit of the job which created this command substitution. | null or string or signed integer |
| programs.fish.functions.<name>.onProcessExit | Tells fish to run this function when the fish child process with the specified process ID exits. Instead of a PID, for backwards compatibility, `%self` can be specified as an alias for `$fish_pid`, and the function will be run when the current fish instance exits. | null or string or signed integer |
| programs.fish.functions.<name>.onSignal | Tells fish to run this function when the specified signal is delivered. The signal can be a signal number or signal name. | null or string or signed integer |
| programs.fish.functions.<name>.onVariable | Tells fish to run this function when the specified variable changes value. | null or string |
| programs.fish.functions.<name>.wraps | Causes the function to inherit completions from the given wrapped command. | null or string |
| programs.fish.generateCompletions | Whether to enable the automatic generation of completions based upon installed man pages. | boolean |
| programs.fish.interactiveShellInit | Shell script code called during interactive fish shell initialisation. | strings concatenated with "\n" |
| programs.fish.loginShellInit | Shell script code called during fish login shell initialisation. | strings concatenated with "\n" |
| programs.fish.package | The fish package to use. | package |
| programs.fish.plugins | The plugins to source in {file}`conf.d/99plugins.fish`. | list of (submodule) |
| programs.fish.plugins.*.name | The name of the plugin. | string |
| programs.fish.plugins.*.src | Path to the plugin folder. Relevant pieces will be added to the fish function path and the completion path. The {file}`init.fish` and {file}`key_binding.fish` files are sourced if they exist. | absolute path |
| programs.fish.preferAbbrs | If enabled, abbreviations will be preferred over aliases when other modules define aliases for fish. | boolean |
| 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. | attribute set of (string or (submodule)) |
| programs.fish.shellAbbrs.<name>.command | Specifies the command(s) for which the abbreviation should expand. If set, the abbreviation will only expand when used as an argument to the given command(s). | null or string or list of string |
| programs.fish.shellAbbrs.<name>.expansion | The command expanded by an abbreviation. | null or string |
| programs.fish.shellAbbrs.<name>.function | The fish function expanded instead of a literal string. | null or string |
| programs.fish.shellAbbrs.<name>.name | The abbreviation name that is replaced by the expansion. | null or string |
| programs.fish.shellAbbrs.<name>.position | If the position is "command", the abbreviation expands only if the position is a command. If it is "anywhere", the abbreviation expands anywhere. | null or string |
| programs.fish.shellAbbrs.<name>.regex | The regular expression pattern matched instead of the literal name. | null or string |
| programs.fish.shellAbbrs.<name>.setCursor | The marker indicates the position of the cursor when the abbreviation is expanded. When setCursor is true, the marker is set with a default value of "%". | boolean or string |
| 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. | attribute set of string |
| programs.fish.shellInit | Shell script code called during fish shell initialisation. | strings concatenated with "\n" |
| programs.fish.shellInitLast | Shell script code called during interactive fish shell initialisation, this will be the last thing executed in fish startup. | strings concatenated with "\n" |
| programs.floorp.darwinDefaultsId | The id for the darwin defaults in order to set policies | null or string |
| programs.floorp.enable | Whether to enable Floorp. | boolean |
| 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`. | boolean |
| programs.floorp.finalPackage | Resulting Floorp package. | null or package |
| 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 Floorp you have. If the version string of your Firefox derivative diverts from the upstream version, try setting the `release` option. | list of string |
| programs.floorp.nativeMessagingHosts | Additional packages containing native messaging hosts that should be made available to Floorp extensions. | list of package |
| 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. | null or package |
| programs.floorp.pkcs11Modules | Additional packages to be loaded as PKCS #11 modules in Firefox. | list of package |
| programs.floorp.policies | [See list of policies](https://mozilla.github.io/policy-templates/). | attribute set of (JSON value) |
| programs.floorp.profiles | Attribute set of Floorp profiles. | attribute set of (submodule) |
| programs.floorp.profiles.<name>.bookmarks | Declarative bookmarks. | (submodule) or ((list of ((bookmark submodule) or (directory submodule) or value "separator" (singular enum))) or (attribute set of ((bookmark submodule) or (directory submodule) or value "separator" (singular enum))) convertible to it) convertible to it |
| programs.floorp.profiles.<name>.bookmarks.configFile | Configuration file to define custom bookmarks. | null or absolute path |
| programs.floorp.profiles.<name>.bookmarks.force | Whether to force override existing custom bookmarks. | boolean |
| programs.floorp.profiles.<name>.bookmarks.meta.maintainers | List of maintainers of each module. This option should be defined at most once per module. The option value is not a list of maintainers, but an attribute set that maps module file names to lists of maintainers. | list of (maintainer) |
| programs.floorp.profiles.<name>.bookmarks.settings | Custom bookmarks. | (list of ((bookmark submodule) or (directory submodule) or value "separator" (singular enum))) or (attribute set of ((bookmark submodule) or (directory submodule) or value "separator" (singular enum))) convertible to it |
| programs.floorp.profiles.<name>.containers | Attribute set of container configurations. See [Multi-Account Containers](https://support.mozilla.org/en-US/kb/containers) for more information. | attribute set of (submodule) |
| programs.floorp.profiles.<name>.containers.<name>.color | Container color. | one of "blue", "turquoise", "green", "yellow", "orange", "red", "pink", "purple", "toolbar" |
| programs.floorp.profiles.<name>.containers.<name>.icon | Container icon. | one of "briefcase", "cart", "circle", "dollar", "fence", "fingerprint", "gift", "vacation", "food", "fruit", "pet", "tree", "chill" |
| programs.floorp.profiles.<name>.containers.<name>.id | Container ID. This should be set to a unique number per container in this profile. | unsigned integer, meaning >=0 |
| programs.floorp.profiles.<name>.containers.<name>.name | Container name, e.g., shopping. | string |
| programs.floorp.profiles.<name>.containersForce | Whether to force replace the existing containers configuration. This is recommended since Floorp will replace the symlink on every launch, but note that you'll lose any existing configuration by enabling this. | boolean |
| programs.floorp.profiles.<name>.extensions | Submodule for installing and configuring extensions. | (submodule) or (list of package) convertible to it |
| programs.floorp.profiles.<name>.extensions.exactPermissions | When enabled, {option}`programs.floorp.profiles.<profile>.extensions.settings.<extensionID>.permissions` must specify the exact set of permissions that the extension will request. This means that if the authorized permissions are broader than what the extension requests, the assertion will fail. | boolean |
| programs.floorp.profiles.<name>.extensions.exhaustivePermissions | When enabled, the user must authorize requested permissions for all extensions from {option}`programs.floorp.profiles.<profile>.extensions.packages` in {option}`programs.floorp.profiles.<profile>.extensions.settings.<extensionID>.permissions` | boolean |
| programs.floorp.profiles.<name>.extensions.force | Whether to override all previous firefox settings. This is required when using `settings`. | boolean |
| programs.floorp.profiles.<name>.extensions.packages | 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 ```console $ 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 [{option}`programs.floorp.profiles.<profile>.settings`](#opt-programs.floorp.profiles._name_.settings) | list of package |
| programs.floorp.profiles.<name>.extensions.settings | Attribute set of options for each extension. The keys of the attribute set consist of the ID of the extension or its UUID wrapped in curly braces. | attribute set of (submodule) |
| programs.floorp.profiles.<name>.extensions.settings.<name>.force | Forcibly override any existing configuration for this extension. | boolean |
| programs.floorp.profiles.<name>.extensions.settings.<name>.permissions | Allowed permissions for this extension. See <https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions> for a list of relevant permissions. | null or (list of string) |
| programs.floorp.profiles.<name>.extensions.settings.<name>.settings | Json formatted options for this extension. | attribute set of (JSON value) |
| programs.floorp.profiles.<name>.extraConfig | Extra preferences to add to {file}`user.js`. | strings concatenated with "\n" |
| programs.floorp.profiles.<name>.handlers | Declarative handlers configuration for MIME types and URL schemes. | submodule |
| programs.floorp.profiles.<name>.handlers.force | Whether to force replace the existing handlers configuration. | boolean |
| programs.floorp.profiles.<name>.handlers.meta.maintainers | List of maintainers of each module. This option should be defined at most once per module. The option value is not a list of maintainers, but an attribute set that maps module file names to lists of maintainers. | list of (maintainer) |
| programs.floorp.profiles.<name>.handlers.mimeTypes | Attribute set mapping MIME types to their handler configurations. For a configuration example, see [this file on Firefox’s source code](https://github.com/mozilla-firefox/firefox/blob/c3797cdebac1316dd7168e995e3468c5a597e8d1/uriloader/exthandler/tests/unit/handlers.json). | attribute set of (submodule) |
| programs.floorp.profiles.<name>.handlers.mimeTypes.<name>.action | The action to take for this MIME type / URL scheme. Possible values: - 0: Save file - 1: Always ask - 2: Use helper app - 3: Open in Floorp - 4: Use system default | one of 0, 1, 2, 3, 4 |
| programs.floorp.profiles.<name>.handlers.mimeTypes.<name>.ask | If true, the user is asked what they want to do with the file. If false, the action is taken without user intervention. | boolean |
| programs.floorp.profiles.<name>.handlers.mimeTypes.<name>.extensions | List of file extensions associated with this MIME type. | list of string matching the pattern ^[^\.].+$ |
| programs.floorp.profiles.<name>.handlers.mimeTypes.<name>.handlers | An array of handlers with the first one being the default. If you don't want to have a default handler, use an empty object for the first handler. Only valid when action is set to 2 (Use helper app). | list of (submodule) |
| programs.floorp.profiles.<name>.handlers.mimeTypes.<name>.handlers.*.name | Display name of the handler. | null or string |
| programs.floorp.profiles.<name>.handlers.mimeTypes.<name>.handlers.*.path | Path to the executable to be used. Only one of 'path' or 'uriTemplate' should be set. | null or string |
| programs.floorp.profiles.<name>.handlers.mimeTypes.<name>.handlers.*.uriTemplate | URI for the application handler. Only one of 'path' or 'uriTemplate' should be set. | null or string |
| programs.floorp.profiles.<name>.handlers.schemes | Attribute set mapping URL schemes to their handler configurations. For a configuration example, see [this file on Firefox’s source code](https://github.com/mozilla-firefox/firefox/blob/c3797cdebac1316dd7168e995e3468c5a597e8d1/uriloader/exthandler/tests/unit/handlers.json). | attribute set of (submodule) |
| programs.floorp.profiles.<name>.handlers.schemes.<name>.action | The action to take for this MIME type / URL scheme. Possible values: - 0: Save file - 1: Always ask - 2: Use helper app - 3: Open in Floorp - 4: Use system default | one of 0, 1, 2, 3, 4 |
| programs.floorp.profiles.<name>.handlers.schemes.<name>.ask | If true, the user is asked what they want to do with the file. If false, the action is taken without user intervention. | boolean |
| programs.floorp.profiles.<name>.handlers.schemes.<name>.handlers | An array of handlers with the first one being the default. If you don't want to have a default handler, use an empty object for the first handler. Only valid when action is set to 2 (Use helper app). | list of (submodule) |
| programs.floorp.profiles.<name>.handlers.schemes.<name>.handlers.*.name | Display name of the handler. | null or string |
| programs.floorp.profiles.<name>.handlers.schemes.<name>.handlers.*.path | Path to the executable to be used. Only one of 'path' or 'uriTemplate' should be set. | null or string |
| programs.floorp.profiles.<name>.handlers.schemes.<name>.handlers.*.uriTemplate | URI for the application handler. Only one of 'path' or 'uriTemplate' should be set. | null or string |
| programs.floorp.profiles.<name>.id | Profile ID. This should be set to a unique number per profile. | unsigned integer, meaning >=0 |
| programs.floorp.profiles.<name>.isDefault | Whether this is a default profile. | boolean |
| programs.floorp.profiles.<name>.name | Profile name. | string |
| programs.floorp.profiles.<name>.path | Profile path. | string |
| programs.floorp.profiles.<name>.preConfig | Extra preferences to add to {file}`user.js`, before [](#opt-programs.firefox.profiles._name_.settings). Use [](#opt-programs.firefox.profiles._name_.extraConfig), unless you want to overwrite in [](#opt-programs.firefox.profiles._name_.settings), then use this option. | strings concatenated with "\n" |
| programs.floorp.profiles.<name>.search | Declarative search engine configuration. | submodule |
| programs.floorp.profiles.<name>.search.default | The default search engine used in the address bar and search bar. | null or string |
| programs.floorp.profiles.<name>.search.engines | Attribute set of search engine configurations. Engines that only have {var}`metaData` specified will be treated as builtin to Floorp. See [SearchEngine.jsm](https://searchfox.org/mozilla-central/rev/e3f42ec9320748b2aab3d474d1e47075def9000c/toolkit/components/search/SearchEngine.sys.mjs#890-923) 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, {var}`icon` is also a special option added by Home Manager to make it convenient to specify absolute icon paths. | attribute set of attribute set of (JSON value) |
| 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. | boolean |
| programs.floorp.profiles.<name>.search.meta.maintainers | List of maintainers of each module. This option should be defined at most once per module. The option value is not a list of maintainers, but an attribute set that maps module file names to lists of maintainers. | list of (maintainer) |
| 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. | list of string |
| programs.floorp.profiles.<name>.search.privateDefault | The default search engine used in the Private Browsing. | null or string |
| programs.floorp.profiles.<name>.settings | Attribute set of Floorp preferences. Floorp only supports int, bool, and string types for preferences, but home-manager will automatically convert all other JSON-compatible values into strings. | attribute set of (Floorp preference (int, bool, string, and also attrs, list, float as a JSON string)) |
| programs.floorp.profiles.<name>.userChrome | Custom Floorp user chrome CSS. | strings concatenated with "\n" or absolute path |
| programs.floorp.profiles.<name>.userContent | Custom Floorp user content CSS. | strings concatenated with "\n" or absolute path |
| programs.foliate.enable | Whether to enable Foliate. | boolean |
| programs.foliate.package | The foliate package to use. | null or package |
| programs.foliate.settings | Added to `config.dconf.settings` under `com/github/johnfactotum/Foliate`, the scheme is defined at <https://github.com/johnfactotum/foliate/blob/gtk4/data/com.github.johnfactotum.Foliate.gschema.xml> | attribute set of ((GVariant value) or attribute set of (GVariant value)) |
| programs.foliate.themes | Each theme is written to {file}`$XDG_CONFIG_HOME/com.github.johnfactotum.Foliate/themes/NAME.json`. See <https://github.com/johnfactotum/foliate/blob/gtk4/src/themes.js> for implementation of themes in Foliate. | attribute set of (JSON value or string or absolute path) |
| programs.foot.enable | Whether to enable Foot terminal. | boolean |
| programs.foot.package | The foot package to use. | package |
| programs.foot.server.enable | Whether to enable Foot terminal server. | boolean |
| programs.foot.settings | Configuration written to {file}`$XDG_CONFIG_HOME/foot/foot.ini`. See <https://codeberg.org/dnkl/foot/src/branch/master/foot.ini> for a list of available options. | 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) |
| programs.formiko.enable | Whether to enable formiko. | boolean |
| programs.formiko.package | The formiko package to use. | null or package |
| programs.formiko.settings | Configuration settings for formiko. All the available options can be found by looking at ~/.config/formiko.ini. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.freetube.enable | Whether to enable FreeTube, a YT client for Windows, Mac, and Linux. | boolean |
| programs.freetube.package | The freetube package to use. | null or package |
| programs.freetube.settings | Configuration settings for FreeTube. All configurable options can be deduced by enabling them through the GUI and observing the changes in {file}`settings.db`. | attribute set |
| programs.fresh-editor.enable | Whether to enable fresh-editor. | boolean |
| programs.fresh-editor.package | The fresh-editor package to use. | null or package |
| programs.fresh-editor.settings | Configuration settings for fresh-editor. Find more configuration options in the user guide at: <https://github.com/sinelaw/fresh/blob/master/docs/USER_GUIDE.md> | JSON value |
| programs.fuzzel.enable | Whether to enable fuzzel. | boolean |
| programs.fuzzel.package | The fuzzel package to use. | null or package |
| programs.fuzzel.settings | Configuration for fuzzel written to {file}`$XDG_CONFIG_HOME/fuzzel/fuzzel.ini`. See {manpage}`fuzzel.ini(5)` for a list of available options. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.fzf.changeDirWidgetCommand | The command that gets executed as the source for fzf for the ALT-C keybinding. | null or string |
| programs.fzf.changeDirWidgetOptions | Command line options for the ALT-C keybinding. | list of string |
| programs.fzf.colors | Color scheme options added to `FZF_DEFAULT_OPTS`. See <https://github.com/junegunn/fzf/wiki/Color-schemes> for documentation. | attribute set of string |
| programs.fzf.defaultCommand | The command that gets executed as the default source for fzf when running. | null or string |
| programs.fzf.defaultOptions | Extra command line options given to fzf by default. | list of string |
| programs.fzf.enable | Whether to enable fzf - a command-line fuzzy finder. | boolean |
| programs.fzf.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.fzf.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.fzf.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.fzf.fileWidgetCommand | The command that gets executed as the source for fzf for the CTRL-T keybinding. | null or string |
| programs.fzf.fileWidgetOptions | Command line options for the CTRL-T keybinding. | list of string |
| programs.fzf.historyWidgetOptions | Command line options for the CTRL-R keybinding. | list of string |
| programs.fzf.package | The fzf package to use. | package |
| programs.fzf.tmux.enableShellIntegration | Whether to enable setting `FZF_TMUX=1` which causes shell integration to use fzf-tmux . | boolean |
| programs.fzf.tmux.shellIntegrationOptions | If {option}`programs.fzf.tmux.enableShellIntegration` is set to `true`, shell integration will use these options for fzf-tmux. See {command}`fzf-tmux --help` for available options. | list of string |
| programs.gallery-dl.enable | Whether to enable gallery-dl. | boolean |
| programs.gallery-dl.package | The gallery-dl package to use. | null or package |
| programs.gallery-dl.settings | Configuration written to {file}`$XDG_CONFIG_HOME/gallery-dl/config.json`. See <https://github.com/mikf/gallery-dl#configuration> for supported values. | JSON value |
| programs.gcc.colors | Settings for {env}`GCC_COLORS` | attribute set of string |
| programs.gcc.enable | Whether to enable {command}`gcc`.. | boolean |
| programs.gcc.package | The gcc package to use. | null or package |
| programs.gemini-cli.commands | An attribute set of custom commands that will be globally available. The name of the attribute set will be the name of each command. You may use subdirectories to create namespaced commands, such as `git/fix` becoming `/git:fix`. See https://github.com/google-gemini/gemini-cli/blob/main/docs/cli/commands.md#custom-commands for more information. | attribute set of (open submodule of string) |
| programs.gemini-cli.commands.<name>.description | A brief, one-line description of what the command does. This text will be displayed next to your command in the /help menu. If you omit this field, a generic description will be generated from the filename. | string |
| programs.gemini-cli.commands.<name>.prompt | The prompt that will be sent to the Gemini model when the command is executed. This can be a single-line or multi-line string. The special placeholder {{args}} will be replaced with the text the user typed after the command name. | string |
| programs.gemini-cli.context | An attribute set of context files to create in `~/.gemini/`. The attribute name becomes the filename with `.md` extension automatically added. The value is either inline content or a path to a file. Note: You can customize which context file names gemini-cli looks for by setting `settings.context.fileName`. For example: ```nix settings = { context.fileName = ["AGENTS.md", "CONTEXT.md", "GEMINI.md"]; }; ``` | attribute set of (strings concatenated with "\n" or absolute path) |
| programs.gemini-cli.defaultModel | The default model to use for the CLI. Will be set as $GEMINI_MODEL when configured. | null or string |
| programs.gemini-cli.enable | Whether to enable gemini-cli. | boolean |
| programs.gemini-cli.package | The gemini-cli package to use. | null or package |
| programs.gemini-cli.settings | JSON config for gemini-cli | JSON value |
| programs.gh-dash.enable | Whether to enable GitHub CLI dashboard plugin. | boolean |
| programs.gh-dash.package | The gh-dash package to use. | null or package |
| programs.gh-dash.settings | Configuration written to {file}`$XDG_CONFIG_HOME/gh-dash/config.yml`. | YAML 1.1 value |
| programs.gh.enable | Whether to enable GitHub CLI tool. | boolean |
| programs.gh.extensions | gh extensions, see <https://cli.github.com/manual/gh_extension>. | list of package |
| programs.gh.gitCredentialHelper.enable | Whether to enable the gh git credential helper. | boolean |
| programs.gh.gitCredentialHelper.hosts | GitHub hosts to enable the gh git credential helper for | list of string |
| programs.gh.hosts | Host-specific configuration written to {file}`$XDG_CONFIG_HOME/gh/hosts.yml`. | YAML 1.1 value |
| programs.gh.package | The gh package to use. | package |
| programs.gh.settings | Configuration written to {file}`$XDG_CONFIG_HOME/gh/config.yml`. | open submodule of (YAML 1.1 value) |
| programs.gh.settings.aliases | Aliases that allow you to create nicknames for gh commands. | attribute set of string |
| programs.gh.settings.editor | The editor that gh should run when creating issues, pull requests, etc. If blank, will refer to environment. | string |
| programs.gh.settings.git_protocol | The protocol to use when performing Git operations. | string |
| programs.ghostty.clearDefaultKeybinds | Whether to clear default keybinds. | boolean |
| programs.ghostty.enable | Whether to enable Ghostty. | boolean |
| programs.ghostty.enableBashIntegration | Whether to enable Bash integration. This ensures that shell integration works in more scenarios, such as switching shells within Ghostty. But it is not needed to have shell integration. See <https://ghostty.org/docs/features/shell-integration#manual-shell-integration-setup> for more information. | boolean |
| programs.ghostty.enableFishIntegration | Whether to enable Fish integration. This ensures that shell integration works in more scenarios, such as switching shells within Ghostty. But it is not needed to have shell integration. See <https://ghostty.org/docs/features/shell-integration#manual-shell-integration-setup> for more information. | boolean |
| programs.ghostty.enableZshIntegration | Whether to enable Zsh integration. This ensures that shell integration works in more scenarios, such as switching shells within Ghostty. But it is not needed to have shell integration. See <https://ghostty.org/docs/features/shell-integration#manual-shell-integration-setup> for more information. | boolean |
| programs.ghostty.installBatSyntax | Whether to enable installation of Ghostty configuration syntax for bat. | boolean |
| programs.ghostty.installVimSyntax | Whether to enable installation of Ghostty configuration syntax for Vim. | boolean |
| programs.ghostty.package | The ghostty package to use. Set programs.ghostty.package to null on platforms where ghostty is not available or marked broken | null or package |
| programs.ghostty.settings | Configuration written to {file}`$XDG_CONFIG_HOME/ghostty/config`. See <https://ghostty.org/docs/config/reference> for more information. | attribute set of (atom (null, bool, int, float or string) or a list of them for duplicate keys) |
| programs.ghostty.systemd | Configuration for Ghostty's systemd integration. This enables additional speed and features. See <https://ghostty.org/docs/linux/systemd> for more information. | submodule |
| programs.ghostty.systemd.enable | Whether to enable the Ghostty systemd user service. | boolean |
| programs.ghostty.themes | Custom themes written to {file}`$XDG_CONFIG_HOME/ghostty/themes`. See <https://ghostty.org/docs/features/theme#authoring-a-custom-theme> for more information. | attribute set of attribute set of (atom (null, bool, int, float or string) or a list of them for duplicate keys) |
| programs.git-cliff.enable | Whether to enable git-cliff changelog generator. | boolean |
| programs.git-cliff.package | The git-cliff package to use. | null or package |
| programs.git-cliff.settings | Configuration written to {file}`$XDG_CONFIG_HOME/git-cliff/cliff.toml`. See <https://git-cliff.org/docs/configuration> for the documentation. | TOML value |
| programs.git-credential-keepassxc.enable | Whether to enable {command}`git-credential-keepassxc`.. | boolean |
| programs.git-credential-keepassxc.groups | The KeePassXC groups used for storing and fetching of credentials. By default, the groups created by {command}`git-credential-keepassxc configure [--group <GROUP>]` are used. | null or (list of string) |
| programs.git-credential-keepassxc.hosts | Hosts for which {command}`git-credential-keepassxc` is enabled. | list of string |
| programs.git-credential-keepassxc.package | The git-credential-keepassxc package to use. | package |
| programs.git-credential-oauth.enable | Whether to enable Git authentication handler for OAuth. | boolean |
| programs.git-credential-oauth.extraFlags | Extra command-line arguments passed to git-credential-oauth. For valid arguments, see {manpage}`git-credential-oauth(1)`. | list of string |
| programs.git-credential-oauth.package | The git-credential-oauth package to use. | package |
| programs.git-worktree-switcher.enable | Whether to enable git-worktree-switcher. | boolean |
| programs.git-worktree-switcher.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.git-worktree-switcher.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.git-worktree-switcher.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.git-worktree-switcher.package | The git-worktree-switcher package to use. | package |
| programs.git.attributes | List of defining attributes set globally. | list of string |
| programs.git.enable | Whether to enable Git. | boolean |
| programs.git.hooks | Configuration helper for Git hooks. See <https://git-scm.com/docs/githooks> for reference. | attribute set of absolute path |
| programs.git.ignores | List of paths that should be globally ignored. | list of string |
| programs.git.includes | List of configuration files to include. | list of (submodule) |
| programs.git.includes.*.condition | Include this configuration only when {var}`condition` matches. Allowed conditions are described in {manpage}`git-config(1)`. | null or string |
| programs.git.includes.*.contentSuffix | Nix store name for the git configuration text file, when generating the configuration text from nix options. | string |
| programs.git.includes.*.contents | Configuration to include. If empty then a path must be given. This follows the configuration structure as described in {manpage}`git-config(1)`. | attribute set of anything |
| programs.git.includes.*.path | Path of the configuration file to include. | string or absolute path |
| programs.git.lfs.enable | Whether to enable Git Large File Storage. | boolean |
| programs.git.lfs.package | The git-lfs package to use. | null or package |
| programs.git.lfs.skipSmudge | Skip automatic downloading of objects on clone or pull. This requires a manual {command}`git lfs pull` every time a new commit is checked out on your repository. | boolean |
| programs.git.maintenance.enable | Enable the automatic {command}`git maintenance`. If you have SSH remotes, set {option}`programs.git.package` to a git version with SSH support (eg: `pkgs.gitFull`). See <https://git-scm.com/docs/git-maintenance>. | boolean |
| programs.git.maintenance.repositories | Repositories on which {command}`git maintenance` should run. Should be a list of absolute paths. | list of string |
| programs.git.maintenance.timers | Systemd timers to create for scheduled {command}`git maintenance`. Key is passed to `--schedule` argument in {command}`git maintenance run` and value is passed to `Timer.OnCalendar` in `systemd.user.timers`. | attribute set of string |
| programs.git.package | The git package to use. Use {var}`pkgs.gitFull` to gain access to {command}`git send-email` for instance. | null or package |
| programs.git.settings | Configuration written to {file}`$XDG_CONFIG_HOME/git/config`. See {manpage}`git-config(1)` for details. | 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))) |
| programs.git.signing.format | The signing method to use when signing commits and tags. Valid values are `openpgp` (OpenPGP/GnuPG), `ssh` (SSH), and `x509` (X.509 certificates). | null or one of "openpgp", "ssh", "x509" |
| programs.git.signing.key | The default signing key fingerprint. Set to `null` to let the signer decide what signing key to use depending on commit’s author. | null or string |
| programs.git.signing.signByDefault | Whether commits and tags should be signed by default. | null or boolean |
| programs.git.signing.signer | Path to signer binary to use. | null or string |
| programs.gitui.enable | Whether to enable gitui, blazing fast terminal-ui for git written in rust. | boolean |
| programs.gitui.keyConfig | Key config in Ron file format. This is written to {file}`$XDG_CONFIG_HOME/gitui/key_config.ron`. | absolute path or strings concatenated with "\n" |
| programs.gitui.package | The gitui package to use. | package |
| programs.gitui.theme | Theme in Ron file format. This is written to {file}`$XDG_CONFIG_HOME/gitui/theme.ron`. | absolute path or strings concatenated with "\n" |
| programs.gnome-shell.enable | Whether to enable GNOME Shell customization. | boolean |
| programs.gnome-shell.extensions | List of GNOME Shell extensions. | list of (submodule) |
| programs.gnome-shell.extensions.*.id | ID of the GNOME Shell extension. If not provided, it will be obtained from `package.extensionUuid`. | string |
| programs.gnome-shell.extensions.*.package | Package providing a GNOME Shell extension in `$out/share/gnome-shell/extensions/${id}`. | package |
| programs.gnome-shell.theme | Theme to use for GNOME Shell. | null or (submodule) |
| programs.gnome-shell.theme.name | Name of the GNOME Shell theme. | string |
| programs.gnome-shell.theme.package | Package providing a GNOME Shell theme in `$out/share/themes/${name}/gnome-shell`. | null or package |
| programs.gnome-terminal.enable | Whether to enable Gnome Terminal. | boolean |
| programs.gnome-terminal.package | The gnome-terminal package to use. | null or package |
| 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 {command}`uuidgen` (from `util-linux`). | attribute set of (submodule) |
| programs.gnome-terminal.profile.<name>.allowBold | If `true`, allow applications in the terminal to make text boldface. | null or boolean |
| programs.gnome-terminal.profile.<name>.audibleBell | Turn on/off the terminal's bell. | boolean |
| 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. | one of "auto", "ascii-backspace", "ascii-delete", "delete-sequence", "tty" |
| programs.gnome-terminal.profile.<name>.boldIsBright | Whether bold text is shown in bright colors. | null or boolean |
| programs.gnome-terminal.profile.<name>.colors | The terminal colors, null to use system default. | null or (submodule) |
| programs.gnome-terminal.profile.<name>.colors.backgroundColor | The background color. | string |
| programs.gnome-terminal.profile.<name>.colors.boldColor | The bold color, null to use same as foreground. | null or string |
| programs.gnome-terminal.profile.<name>.colors.cursor | The color for the terminal cursor. | null or (submodule) |
| programs.gnome-terminal.profile.<name>.colors.cursor.background | The background color. | string |
| programs.gnome-terminal.profile.<name>.colors.cursor.foreground | The foreground color. | string |
| programs.gnome-terminal.profile.<name>.colors.foregroundColor | The foreground color. | string |
| programs.gnome-terminal.profile.<name>.colors.highlight | The colors for the terminal’s highlighted area. | null or (submodule) |
| programs.gnome-terminal.profile.<name>.colors.highlight.background | The background color. | string |
| programs.gnome-terminal.profile.<name>.colors.highlight.foreground | The foreground color. | string |
| programs.gnome-terminal.profile.<name>.colors.palette | The terminal palette. | list of string |
| programs.gnome-terminal.profile.<name>.cursorBlinkMode | The cursor blink mode. | one of "system", "on", "off" |
| programs.gnome-terminal.profile.<name>.cursorShape | The cursor shape. | one of "block", "ibeam", "underline" |
| programs.gnome-terminal.profile.<name>.customCommand | The command to use to start the shell, or null for default shell. | null or string |
| programs.gnome-terminal.profile.<name>.default | Whether this should be the default profile. | boolean |
| 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. | one of "auto", "ascii-backspace", "ascii-delete", "delete-sequence", "tty" |
| programs.gnome-terminal.profile.<name>.font | The font name, null to use system default. | null or string |
| programs.gnome-terminal.profile.<name>.loginShell | Run command as a login shell. | boolean |
| programs.gnome-terminal.profile.<name>.scrollOnOutput | Whether to scroll when output is written. | boolean |
| programs.gnome-terminal.profile.<name>.scrollbackLines | The number of scrollback lines to keep, null for infinite. | null or signed integer |
| programs.gnome-terminal.profile.<name>.showScrollbar | Whether the scroll bar should be visible. | boolean |
| programs.gnome-terminal.profile.<name>.transparencyPercent | Background transparency in percent. | null or integer between 0 and 100 (both inclusive) |
| programs.gnome-terminal.profile.<name>.visibleName | The profile name. | string |
| programs.gnome-terminal.showMenubar | Whether to show the menubar by default | boolean |
| programs.gnome-terminal.themeVariant | The theme variation to request | one of "default", "light", "dark", "system" |
| programs.go.enable | Whether to enable Go. | boolean |
| programs.go.env | Environment variables for Go. All the available options can be found running 'go env'. | open submodule of attribute set of string |
| programs.go.env.GOPATH | List of directories that should be used by the Go tooling. | string or list of string |
| programs.go.env.GOPRIVATE | Controls which modules the 'go' command considers to be private (not available publicly) and should therefore not use the proxy or checksum database. | string or list of string |
| programs.go.package | The go package to use. | null or package |
| programs.go.packages | Packages to add to GOPATH. | attribute set of absolute path |
| programs.go.telemetry | Options to configure Go telemetry mode. | submodule |
| programs.go.telemetry.date | The date indicating the date at which the modefile was updated, in YYYY-MM-DD format. It's used to reset the timeout before the next telemetry report is uploaded when telemetry mode is set to "on". | string |
| programs.go.telemetry.mode | Go telemetry mode to be set. | null or one of "off", "local", "on" |
| programs.goto.enable | Whether to enable {command}`goto`.. | boolean |
| programs.goto.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.goto.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.goto.package | The goto package to use. | package |
| programs.gpg.dirmngrSettings | Dirmngr configuration options. Available options are described in [ {manpage}`dirmngr(1)` ](https://www.gnupg.org/documentation/manuals/gnupg/Dirmngr-Options.html) | attribute set of (string or boolean or list of string) |
| programs.gpg.enable | Whether to enable GnuPG. | boolean |
| programs.gpg.gpgsmSettings | GPGSM configuration options. Available options are described in [ {manpage}`gpgsm(1)` ](https://www.gnupg.org/documentation/manuals/gnupg/GPGSM-Options.html) | attribute set of (string or boolean or list of string) |
| programs.gpg.homedir | Directory to store keychains and configuration. | absolute path |
| 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 {file}`$GNUPGHOME/pubring.kbx` will become an immutable link to the Nix store, denying modifications. | boolean |
| programs.gpg.mutableTrust | If set to `true`, you may manage trust as a user using the {command}`gpg` command. Upon activation, trusted keys have their trust set without overwriting unmanaged keys. If set to `false`, the path {file}`$GNUPGHOME/trustdb.gpg` will be *overwritten* on each activation, removing trust for any unmanaged keys. Be careful to make a backup of your old {file}`trustdb.gpg` before switching to immutable trust! | boolean |
| programs.gpg.package | The gnupg package to use. Also used by the gpg-agent service. | package |
| 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. | list of (submodule) |
| programs.gpg.publicKeys.*.source | Path of an OpenPGP public key file. | absolute path |
| programs.gpg.publicKeys.*.text | Text of an OpenPGP public key. | null or string |
| 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](https://www.gnupg.org/gph/en/manual/x334.html) of the GNU Privacy Handbook for more. | null or one of "unknown", 1, "never", 2, "marginal", 3, "full", 4, "ultimate", 5 |
| programs.gpg.scdaemonSettings | SCdaemon configuration options. Available options are described in [ {manpage}`scdaemon(1)` ](https://www.gnupg.org/documentation/manuals/gnupg/Scdaemon-Options.html). | attribute set of (string or boolean or list of string) |
| programs.gpg.settings | GnuPG configuration options. Available options are described in [ {manpage}`gpg(1)` ](https://gnupg.org/documentation/manpage.html). Note that lists are converted to duplicate keys. | attribute set of (string or boolean or list of string) |
| programs.gradle.enable | Whether to enable Gradle Build Tool. | boolean |
| programs.gradle.home | The Gradle home directory, relative to [](#opt-home.homeDirectory). If set, the {env}`GRADLE_USER_HOME` environment variable will be set accordingly. Defaults to {file}`.gradle`. | string |
| 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. | attribute set of (submodule) |
| 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. | absolute path |
| programs.gradle.initScripts.<name>.text | Text of the init script file. if this option is null then `source` must be set. | null or strings concatenated with "\n" |
| programs.gradle.package | The gradle package to use. | null or package |
| programs.gradle.settings | Key value pairs to write to {file}`gradle.properties` in the Gradle home directory. | open submodule of attribute set of (string, package, bool, int or float) |
| programs.granted.enable | Whether to enable granted. | boolean |
| programs.granted.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.granted.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.granted.package | The granted package to use. | package |
| programs.grep.colors | Settings for {env}`GREP_COLORS` | attribute set of string |
| programs.grep.enable | Whether to enable {command}`grep`.. | boolean |
| programs.grep.package | The grep package to use. | null or package |
| programs.gurk-rs.enable | Whether to enable gurk-rs. | boolean |
| programs.gurk-rs.package | The gurk-rs package to use. | null or package |
| programs.gurk-rs.settings | Configuration written to {file}`$XDG_CONFIG_HOME/gurk/gurk.toml` or {file}`Library/Application Support/gurk/gurk.toml`. Options are declared at <https://github.com/boxdot/gurk-rs/blob/main/src/config.rs>. Note that `signal_db_path` should be set. | TOML value |
| programs.halloy.enable | Whether to enable halloy. | boolean |
| programs.halloy.package | The halloy package to use. | null or package |
| programs.halloy.settings | Configuration settings for halloy. All available options can be found here: <https://halloy.chat/configuration.html>. Note that halloy requires at least one `server` to be configured, see example. | TOML value |
| programs.halloy.themes | Each theme is written to {file}`$XDG_CONFIG_HOME/halloy/themes/NAME.toml`. See <https://halloy.chat/configuration/themes/index.html> for more information. | attribute set of (TOML value or strings concatenated with "\n" or absolute path) |
| programs.havoc.enable | Whether to enable Havoc terminal. | boolean |
| programs.havoc.package | The havoc package to use. | null or package |
| programs.havoc.settings | Configuration written to {file}`$XDG_CONFIG_HOME/havoc.cfg`. See <https://raw.githubusercontent.com/ii8/havoc/master/havoc.cfg> for a list of available options. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.helix.defaultEditor | Whether to configure {command}`hx` as the default editor using the {env}`EDITOR` and {env}`VISUAL` environment variables. | boolean |
| programs.helix.enable | Whether to enable helix text editor. | boolean |
| programs.helix.extraConfig | Extra lines to be appended to the config file. Use this if you would like to maintain order for helix settings (eg. for minor modes) | strings concatenated with "\n" |
| programs.helix.extraPackages | Extra packages available to hx. | list of package |
| 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. | list of string |
| programs.helix.languages | Language specific configuration at {file}`$XDG_CONFIG_HOME/helix/languages.toml`. See <https://docs.helix-editor.com/languages.html> for more information. | (TOML value) or (list of (TOML value)) convertible to it |
| programs.helix.package | The helix package to use. | package |
| programs.helix.settings | Configuration written to {file}`$XDG_CONFIG_HOME/helix/config.toml`. See <https://docs.helix-editor.com/configuration.html> for the full list of options. | TOML value |
| programs.helix.themes | Each theme is written to {file}`$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. | attribute set of (TOML value or absolute path or strings concatenated with "\n") |
| programs.hexchat.channels | Configures {file}`$XDG_CONFIG_HOME/hexchat/servlist.conf`. | attribute set of (submodule) |
| programs.hexchat.channels.<name>.autojoin | Channels list to autojoin on connecting to server. | list of string |
| programs.hexchat.channels.<name>.charset | Character set. | null or string |
| programs.hexchat.channels.<name>.commands | Commands to be executed on connecting to server. | list of string |
| 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 ```nix commands = [ "/msg NickServ IDENTIFY my_password" ] ``` | null or one of "challengeAuth", "customCommands", "nickServ", "nickServMsg", "sasl", "saslExternal", "serverPassword" |
| programs.hexchat.channels.<name>.nickname | Primary nickname. | null or string |
| programs.hexchat.channels.<name>.nickname2 | Secondary nickname. | null or string |
| programs.hexchat.channels.<name>.options | Channel options. | null or (submodule) |
| programs.hexchat.channels.<name>.options.acceptInvalidSSLCertificates | Accept invalid SSL certificates. | null or boolean |
| programs.hexchat.channels.<name>.options.autoconnect | Autoconnect to network. | null or boolean |
| programs.hexchat.channels.<name>.options.bypassProxy | Bypass proxy. | null or boolean |
| programs.hexchat.channels.<name>.options.connectToSelectedServerOnly | Connect to selected server only. | null or boolean |
| programs.hexchat.channels.<name>.options.forceSSL | Use SSL for all servers. | null or boolean |
| programs.hexchat.channels.<name>.options.useGlobalUserInformation | Use global user information. | null or boolean |
| programs.hexchat.channels.<name>.password | Password to use. Note this password will be readable by all user's in the Nix store. | null or string |
| 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. | null or string |
| programs.hexchat.channels.<name>.servers | IRC Server Address List. | list of string |
| programs.hexchat.channels.<name>.userName | User name. Part of your `user@host` hostmask that appears to other on IRC. | null or string |
| programs.hexchat.enable | Whether to enable HexChat, a graphical IRC client. | boolean |
| programs.hexchat.overwriteConfigFiles | Enables overwriting HexChat configuration files ({file}`hexchat.conf`, {file}`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. | null or boolean |
| programs.hexchat.package | The hexchat package to use. | null or package |
| programs.hexchat.settings | Configuration for {file}`$XDG_CONFIG_HOME/hexchat/hexchat.conf`, see <https://hexchat.readthedocs.io/en/latest/settings.html#list-of-settings> for supported values. | null or (attribute set of string) |
| 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. | null or package |
| programs.himalaya.enable | Whether to enable the email client Himalaya CLI. | boolean |
| programs.himalaya.package | The himalaya package to use. | null or package |
| programs.himalaya.settings | Himalaya CLI global configuration. See <https://github.com/pimalaya/himalaya/blob/master/config.sample.toml> for supported values. | open submodule of (TOML value) |
| programs.home-manager.enable | Whether to enable Home Manager. | boolean |
| programs.home-manager.package | The {command}`home-manager` package. | package |
| programs.home-manager.path | The default path to use for Home Manager. When `null`, then the {file}`home-manager` channel, {file}`$HOME/.config/nixpkgs/home-manager`, and {file}`$HOME/.nixpkgs/home-manager` will be attempted. | null or string |
| programs.hstr.enable | Whether to enable Bash And Zsh shell history suggest box - easily view, navigate, search and manage your command history. | boolean |
| programs.hstr.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.hstr.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.hstr.package | The hstr package to use. | package |
| programs.htop.enable | Whether to enable htop. | boolean |
| programs.htop.package | The htop package to use. | package |
| programs.htop.settings | Configuration options to add to {file}`$XDG_CONFIG_HOME/htop/htoprc`. | attribute set of (boolean or signed integer or string or list of (signed integer or string)) |
| programs.hwatch.enable | Whether to enable hwatch, a modern alternative to the {command}`watch` command . | boolean |
| programs.hwatch.extraArgs | Extra command-line arguments to pass to {command}`hwatch`. These will be used to populate the {env}`HWATCH` environment variable. | list of string |
| programs.hwatch.package | The hwatch package to use. | null or package |
| programs.hyfetch.enable | Whether to enable hyfetch. | boolean |
| programs.hyfetch.package | The hyfetch package to use. | package |
| programs.hyfetch.settings | JSON config for HyFetch | JSON value |
| 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: ```nix security.pam.services.hyprlock = {}; ``` | boolean |
| programs.hyprlock.extraConfig | Extra configuration lines to add to `~/.config/hypr/hyprlock.conf`. | strings concatenated with "\n" |
| programs.hyprlock.importantPrefixes | List of prefix of attributes to source at the top of the config. | list of string |
| programs.hyprlock.package | The hyprlock package to use. | null or package |
| 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.hypr.land/Hypr-Ecosystem/hyprlock/> for more examples. | Hyprlock configuration value |
| programs.hyprlock.sourceFirst | Whether to enable putting source entries at the top of the configuration. | boolean |
| programs.hyprpanel.enable | Whether to enable HyprPanel. | boolean |
| programs.hyprpanel.package | The hyprpanel package to use. | package |
| programs.hyprpanel.settings | Configuration written to {file}`$XDG_CONFIG_HOME/hyprpanel/config.json`. See <https://hyprpanel.com/configuration/settings.html#home-manager-module> for the full list of options. | JSON value |
| programs.hyprpanel.systemd.enable | Whether to enable HyprPanel systemd integration. | boolean |
| programs.hyprshot.enable | Whether to enable Hyprshot the Hyprland screenshot utility. | boolean |
| programs.hyprshot.package | The hyprshot package to use. | null or package |
| programs.hyprshot.saveLocation | Set the `$HYPRSHOT_DIR` environment variable to the given location. Hypershot will save screenshots to the first expression that resolves: - `$HYPRSHOT_DIR` - `$XDG_PICTURES_DIR` - `$(xdg-user-dir PICTURES)` | null or string |
| programs.i3bar-river.enable | Whether to enable i3bar-river. | boolean |
| programs.i3bar-river.package | The i3bar-river package to use. | null or package |
| programs.i3bar-river.settings | Configuration settings for i3bar-river. All available options can be found here: <https://github.com/MaxVerevkin/i3bar-river?tab=readme-ov-file#configuration>. | TOML value |
| programs.i3blocks.bars | Configuration written to i3blocks config | attribute set of (DAG of attribute set of (INI atom (null, int, bool, string, or float))) |
| programs.i3blocks.enable | Whether to enable i3blocks i3 status command scheduler. | boolean |
| programs.i3blocks.package | The i3blocks package to use. | package |
| programs.i3status-rust.bars | Attribute set of i3status-rust bars, each with their own configuration. Each bar {var}`name` generates a config file suffixed with the bar's {var}`name` from the attribute set, like so: {file}`config-${name}.toml`. This way, multiple config files can be generated, such as for having a top and a bottom bar. See {manpage}`i3status-rust(1)` for options. | attribute set of (submodule) |
| programs.i3status-rust.bars.<name>.blocks | Configuration blocks to add to i3status-rust {file}`config`. See <https://github.com/greshake/i3status-rust/blob/master/blocks.md> for block options. | TOML value |
| 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. | string |
| programs.i3status-rust.bars.<name>.settings | Any extra options to add to i3status-rust {file}`config`. | TOML value |
| 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. | string |
| programs.i3status-rust.enable | Whether to enable a replacement for i3-status written in Rust. | boolean |
| programs.i3status-rust.package | The i3status-rust package to use. | package |
| programs.i3status.enable | Whether to enable i3status. | boolean |
| programs.i3status.enableDefault | Whether or not to enable the default configuration. | boolean |
| programs.i3status.general | Configuration to add to i3status {file}`config` `general` section. See {manpage}`i3status(1)` for options. | attribute set of (boolean or signed integer or string) |
| programs.i3status.modules | Modules to add to i3status {file}`config` file. See {manpage}`i3status(1)` for options. | attribute set of (submodule) |
| programs.i3status.modules.<name>.enable | Whether or not to enable this module. | boolean |
| programs.i3status.modules.<name>.position | Position of this module in i3status `order`. | signed integer or floating point number |
| programs.i3status.modules.<name>.settings | Configuration to add to this i3status module. See {manpage}`i3status(1)` for options. | attribute set of (boolean or signed integer or string) |
| programs.i3status.package | The i3status package to use. | null or package |
| programs.iamb.enable | Whether to enable iamb. | boolean |
| programs.iamb.package | The iamb package to use. | null or package |
| programs.iamb.settings | Configuration written to {file}`$XDG_CONFIG_HOME/iamb/config.toml`. See <https://iamb.chat/configure.html> for the full list of options. | TOML value |
| programs.imv.enable | Whether to enable imv: a command line image viewer intended for use with tiling window managers. | boolean |
| programs.imv.package | The imv package to use. | null or package |
| programs.imv.settings | Configuration options for imv. See {manpage}`imv(5)`. | attribute set of attribute set of (boolean or signed integer or string) |
| programs.infat.autoActivate | Automatically activate infat on startup. This is useful if you want to use infat as a default application handler for certain file types. If you don't want this, set this to false. This option is only effective if `settings` is set. | boolean |
| programs.infat.enable | Whether to enable infat. | boolean |
| programs.infat.package | The infat package to use. | null or package |
| programs.infat.settings | Configuration written to {file}`$XDG_CONFIG_HOME/infat/config.toml`. | TOML value |
| programs.info.enable | Whether to enable GNU Info. | boolean |
| programs.info.package | The texinfo package to use. | package |
| programs.inori.enable | Whether to enable inori. | boolean |
| programs.inori.package | The inori package to use. | null or package |
| programs.inori.settings | Configuration written to {file}`$XDG_CONFIG_HOME/inori/config.toml`. See <https://github.com/eshrh/inori/blob/master/CONFIGURATION.md> for available options. | TOML value |
| programs.intelli-shell.enable | Whether to enable intelli-shell. | boolean |
| programs.intelli-shell.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.intelli-shell.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.intelli-shell.enableNushellIntegration | Whether to enable Nushell integration. | boolean |
| programs.intelli-shell.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.intelli-shell.package | The intelli-shell package to use. | null or package |
| programs.intelli-shell.settings | Configuration settings for intelli-shell. You can see all the available options here: <https://github.com/lasantosr/intelli-shell/blob/main/default_config.toml>. | TOML value |
| programs.intelli-shell.shellHotkeys | Settings for customizing the keybinding to integrate your shell with intelli-shell. You can see the details here: <https://lasantosr.github.io/intelli-shell/guide/installation.html#customizing-shell-integration>. | attribute set of string |
| programs.ion.enable | Whether to enable the Ion Shell. Compatible with Redox and Linux. | boolean |
| programs.ion.initExtra | Ion script which is called during ion initialization. | strings concatenated with "\n" |
| programs.ion.package | The ion package to use. | package |
| 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. | attribute set of string |
| programs.irssi.aliases | An attribute set that maps aliases to commands. | attribute set of string |
| programs.irssi.enable | Whether to enable the Irssi chat client. | boolean |
| programs.irssi.extraConfig | These lines are appended to the Irssi configuration. | strings concatenated with "\n" |
| programs.irssi.networks | An attribute set of chat networks. | attribute set of (submodule) |
| programs.irssi.networks.<name>.autoCommands | List of commands to execute on connect. | list of string |
| programs.irssi.networks.<name>.channels | Channels for the given network. | attribute set of (submodule) |
| programs.irssi.networks.<name>.channels.<name>.autoJoin | Whether to join this channel on connect. | boolean |
| programs.irssi.networks.<name>.nick | Nickname in that network. | string |
| programs.irssi.networks.<name>.saslExternal | Enable SASL external authentication. This requires setting a path in [](#opt-programs.irssi.networks._name_.server.ssl.certificateFile). | boolean |
| programs.irssi.networks.<name>.server.address | Address of the chat server. | string |
| programs.irssi.networks.<name>.server.autoConnect | Whether Irssi connects to the server on launch. | boolean |
| programs.irssi.networks.<name>.server.port | Port of the chat server. | 16 bit unsigned integer; between 0 and 65535 (both inclusive) |
| programs.irssi.networks.<name>.server.ssl.certificateFile | Path to a file containing the certificate used for client authentication to the server. | null or absolute path |
| programs.irssi.networks.<name>.server.ssl.enable | Whether SSL should be used. | boolean |
| programs.irssi.networks.<name>.server.ssl.verify | Whether the SSL certificate should be verified. | boolean |
| programs.irssi.networks.<name>.type | Type of the network. | string |
| programs.irssi.package | The irssi package to use. | null or package |
| programs.java.enable | Install the Java development kit and set the {env}`JAVA_HOME` variable. | boolean |
| programs.java.package | The java package to use. | package |
| programs.jetbrains-remote.enable | Whether to enable JetBrains remote development system. | boolean |
| programs.jetbrains-remote.ides | IDEs accessible to the JetBrains remote development system. | list of package |
| programs.jjui.configDir | The directory to contain jjui configuration files. | string |
| programs.jjui.enable | Whether to enable jjui - A terminal user interface for jujutsu. | boolean |
| programs.jjui.package | The jjui package to use. | null or package |
| programs.jjui.settings | Options to add to the {file}`config.toml` file. See <https://github.com/idursun/jjui/wiki/Configuration> for options. | TOML value |
| programs.joplin-desktop.enable | Whether to enable joplin-desktop. | boolean |
| 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`. | attribute set |
| 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. | null or string |
| programs.joplin-desktop.package | The joplin-desktop package to use. | package |
| programs.joplin-desktop.sync.interval | Set the synchronisation interval. | one of "undefined", "disabled", "5m", "10m", "30m", "1h", "12h", "1d" |
| programs.joplin-desktop.sync.target | What is the type of sync target. | one of "undefined", "none", "file-system", "onedrive", "nextcloud", "webdav", "dropbox", "s3", "joplin-server", "joplin-cloud" |
| programs.joshuto.enable | Whether to enable joshuto file manager. | boolean |
| programs.joshuto.keymap | Configuration written to {file}`$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. | TOML value |
| programs.joshuto.mimetype | Configuration written to {file}`$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 | TOML value |
| programs.joshuto.package | The joshuto package to use. | package |
| programs.joshuto.settings | Configuration written to {file}`$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. | TOML value |
| programs.joshuto.theme | Configuration written to {file}`$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 | TOML value |
| programs.jq.colors | The colors used in colored JSON output, or null to use the defaults. See the [Colors section](https://jqlang.github.io/jq/manual/#Colors) of the jq manual. | null or (submodule) |
| programs.jq.enable | Whether to enable the jq command-line JSON processor. | boolean |
| programs.jq.package | The jq package to use. | null or package |
| programs.jqp.enable | Whether to enable jqp, jq playground. | boolean |
| programs.jqp.package | The jqp package to use. | null or package |
| programs.jqp.settings | Jqp configuration | YAML 1.1 value |
| programs.jrnl.enable | Whether to enable jrnl. | boolean |
| programs.jrnl.package | The jrnl package to use. | null or package |
| programs.jrnl.settings | Configuration for the jrnl binary. Available configuration options are described in the jrnl documentation: <https://jrnl.sh/en/stable/reference-config-file/>. | YAML 1.1 value |
| programs.jujutsu.ediff | Enable ediff as a merge tool | boolean |
| programs.jujutsu.enable | Whether to enable a Git-compatible DVCS that is both simple and powerful. | boolean |
| programs.jujutsu.package | The jujutsu package to use. | null or package |
| programs.jujutsu.settings | Options to add to the {file}`config.toml` file. See <https://github.com/martinvonz/jj/blob/main/docs/config.md> for options. | TOML value |
| programs.k9s.aliases | Aliases written to {file}`$XDG_CONFIG_HOME/k9s/aliases.yaml` (linux) or {file}`Library/Application Support/k9s/aliases.yaml` (darwin). See <https://k9scli.io/topics/aliases/> for supported values. | YAML 1.1 value |
| programs.k9s.enable | Whether to enable k9s - Kubernetes CLI To Manage Your Clusters In Style. | boolean |
| programs.k9s.hotKeys | Hotkeys written to {file}`$XDG_CONFIG_HOME/k9s/hotkeys.yaml` (linux) or {file}`Library/Application Support/k9s/hotkeys.yaml` (darwin). See <https://k9scli.io/topics/hotkeys/> for supported values. | YAML 1.1 value |
| programs.k9s.package | The k9s package to use. | null or package |
| programs.k9s.plugins | Plugins written to {file}`$XDG_CONFIG_HOME/k9s/plugins.yaml (linux)` or {file}`Library/Application Support/k9s/plugins.yaml` (darwin). See <https://k9scli.io/topics/plugins/> for supported values. | YAML 1.1 value |
| programs.k9s.settings | Configuration written to {file}`$XDG_CONFIG_HOME/k9s/config.yaml` (linux) or {file}`Library/Application Support/k9s/config.yaml` (darwin), See <https://k9scli.io/topics/config/> for supported values. | YAML 1.1 value |
| programs.k9s.skins | Skin files written to {file}`$XDG_CONFIG_HOME/k9s/skins/` (linux) or {file}`Library/Application Support/k9s/skins/` (darwin). See <https://k9scli.io/topics/skins/> for supported values. | attribute set of (YAML 1.1 value or absolute path) |
| programs.k9s.views | Resource column views written to {file}`$XDG_CONFIG_HOME/k9s/views.yaml (linux)` or {file}`Library/Application Support/k9s/views.yaml` (darwin). See <https://k9scli.io/topics/columns/> for supported values. | YAML 1.1 value |
| programs.kakoune.colorSchemePackage | A kakoune color schemes to add to your colors folder. This works because kakoune recursively checks {file}`$XDG_CONFIG_HOME/kak/colors/`. To apply the color scheme use `programs.kakoune.config.colorScheme = "theme"`. | null or package |
| programs.kakoune.config | kakoune configuration options. | null or (submodule) |
| programs.kakoune.config.alignWithTabs | Use tabs for the align command. | boolean |
| programs.kakoune.config.autoComplete | Modes in which to display possible completions. The kakoune default is `[ "insert" "prompt" ]`. | null or (list of (one of "insert", "prompt")) |
| programs.kakoune.config.autoInfo | Contexts in which to display automatic information box. The kakoune default is `[ "command" "onkey" ]`. | null or (list of (one of "command", "onkey", "normal")) |
| programs.kakoune.config.autoReload | Reload buffers when an external modification is detected. The kakoune default is `"ask"`. | null or one of "yes", "no", "ask" |
| programs.kakoune.config.colorScheme | Set the color scheme. To see available schemes, enter {command}`colorscheme` at the kakoune prompt. | null or string |
| programs.kakoune.config.hooks | Global hooks. For documentation, see <https://github.com/mawww/kakoune/blob/master/doc/pages/hooks.asciidoc>. | list of (submodule) |
| programs.kakoune.config.hooks.*.commands | Commands to run when the hook is activated. | strings concatenated with "\n" |
| programs.kakoune.config.hooks.*.group | Add the hook to the named group. | null or string |
| 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>. | 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" |
| programs.kakoune.config.hooks.*.once | Remove the hook after running it once. | boolean |
| programs.kakoune.config.hooks.*.option | Additional option to pass to the hook. | null or string |
| programs.kakoune.config.incrementalSearch | Execute a search as it is being typed. | boolean |
| programs.kakoune.config.indentWidth | The width of an indentation in spaces. The kakoune default is `4`. If `0`, a tab will be used instead. | null or (unsigned integer, meaning >=0) |
| programs.kakoune.config.keyMappings | User-defined key mappings. For documentation, see <https://github.com/mawww/kakoune/blob/master/doc/pages/mapping.asciidoc>. | list of (submodule) |
| programs.kakoune.config.keyMappings.*.docstring | Optional documentation text to display in info boxes. | null or string |
| programs.kakoune.config.keyMappings.*.effect | The sequence of keys to be mapped. | string |
| 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. | string |
| programs.kakoune.config.keyMappings.*.mode | The mode in which the mapping takes effect. | string |
| programs.kakoune.config.numberLines | Settings for the number lines highlighter. | null or (submodule) |
| programs.kakoune.config.numberLines.enable | Whether to enable the number lines highlighter. | boolean |
| programs.kakoune.config.numberLines.highlightCursor | Highlight the cursor line with a separate face. | boolean |
| programs.kakoune.config.numberLines.relative | Show line numbers relative to the main cursor line. | boolean |
| programs.kakoune.config.numberLines.separator | String that separates the line number column from the buffer contents. The kakoune default is `"|"`. | null or string |
| programs.kakoune.config.scrollOff | How many lines and columns to keep visible around the cursor. | null or (submodule) |
| programs.kakoune.config.scrollOff.columns | The number of columns to keep visible around the cursor. | unsigned integer, meaning >=0 |
| programs.kakoune.config.scrollOff.lines | The number of lines to keep visible around the cursor. | unsigned integer, meaning >=0 |
| programs.kakoune.config.showMatching | Highlight the matching char of the character under the selections' cursor using the `MatchingChar` face. | boolean |
| programs.kakoune.config.showWhitespace | Settings for the show whitespaces highlighter. | null or (submodule) |
| programs.kakoune.config.showWhitespace.enable | Whether to enable the show whitespace highlighter. | boolean |
| programs.kakoune.config.showWhitespace.lineFeed | The character to display for line feeds. The kakoune default is `"¬"`. | null or string |
| programs.kakoune.config.showWhitespace.nonBreakingSpace | The character to display for non-breaking spaces. The kakoune default is `"⍽"`. | null or string |
| programs.kakoune.config.showWhitespace.space | The character to display for spaces. The kakoune default is `"·"`. | null or string |
| programs.kakoune.config.showWhitespace.tab | The character to display for tabs. The kakoune default is `"→"`. | null or string |
| programs.kakoune.config.showWhitespace.tabStop | The character to append to tabs to reach the width of a tabstop. The kakoune default is `" "`. | null or string |
| programs.kakoune.config.tabStop | The width of a tab in spaces. The kakoune default is `6`. | null or (unsigned integer, meaning >=0) |
| programs.kakoune.config.ui | Settings for the ncurses interface. | null or (submodule) |
| programs.kakoune.config.ui.assistant | The assistant displayed in info boxes. | one of "clippy", "cat", "dilbert", "none" |
| programs.kakoune.config.ui.changeColors | Change color palette. | boolean |
| programs.kakoune.config.ui.enableMouse | Whether to enable mouse support. | boolean |
| programs.kakoune.config.ui.setTitle | Change the title of the terminal emulator. | boolean |
| 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`. | null or (unsigned integer, meaning >=0) |
| programs.kakoune.config.ui.statusLine | Where to display the status line. | one of "top", "bottom" |
| programs.kakoune.config.ui.useBuiltinKeyParser | Bypass ncurses key parser and use an internal one. | boolean |
| programs.kakoune.config.ui.wheelDownButton | Button to send for wheel down events. | null or string |
| programs.kakoune.config.ui.wheelUpButton | Button to send for wheel up events. | null or string |
| programs.kakoune.config.wrapLines | Settings for the wrap lines highlighter. | null or (submodule) |
| programs.kakoune.config.wrapLines.enable | Whether to enable the wrap lines highlighter. | boolean |
| programs.kakoune.config.wrapLines.indent | Preserve line indentation when wrapping. | boolean |
| 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. | null or string |
| programs.kakoune.config.wrapLines.maxWidth | Wrap text at maxWidth, even if the window is wider. | null or (unsigned integer, meaning >=0) |
| programs.kakoune.config.wrapLines.word | Wrap at word boundaries instead of codepoint boundaries. | boolean |
| programs.kakoune.defaultEditor | Whether to configure {command}`kak` as the default editor using the {env}`EDITOR` and {env}`VISUAL` environment variables. | boolean |
| programs.kakoune.enable | Whether to enable the kakoune text editor. | boolean |
| programs.kakoune.extraConfig | Extra configuration lines to add to {file}`$XDG_CONFIG_HOME/kak/kakrc`. | strings concatenated with "\n" |
| programs.kakoune.finalPackage | Resulting customized kakoune package. | null or package |
| programs.kakoune.package | The kakoune-unwrapped package to use. | null or package |
| programs.kakoune.plugins | List of kakoune plugins to install. To get a list of supported plugins run: {command}`nix-env -f '<nixpkgs>' -qaP -A kakounePlugins`. Requires `package` to not be set to have effect. | list of package |
| programs.keepassxc.autostart | Whether to start KeePassXC automatically on login through the XDG autostart mechanism. | boolean |
| programs.keepassxc.enable | Whether to enable KeePassXC. ::: {.note} When this flag is set, KeePassXC' builtin native messaging manifest for communication with its browser extension is automatically installed. This conflicts with KeePassXC' builtin installation mechanism. To prevent error messages, either set {option}`programs.keepassxc.settings.Browser.UpdateBinaryPath` to `false`, or untick the checkbox Application Settings/ Browser Integration/ Advanced/ Update native messaging manifest files at startup in the GUI. ::: | boolean |
| programs.keepassxc.package | The keepassxc package to use. | null or package |
| programs.keepassxc.settings | Configuration written to {file}`$XDG_CONFIG_HOME/keepassxc/keepassxc.ini`. See <https://github.com/keepassxreboot/keepassxc/blob/develop/src/core/Config.cpp> for the full list of options. ::: {.note} When the settings are non-empty, the configuration file will be linked into the Nix store and KeePassXC will report an access error for its configuration file. This is expected and can not be fixed in a way that aligns with Home Manager's principles. See [#8257](https://github.com/nix-community/home-manager/issues/8257) for more details. ::: | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.keychain.agents | Agents to add. | list of string |
| programs.keychain.enable | Whether to enable keychain. | boolean |
| programs.keychain.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.keychain.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.keychain.enableNushellIntegration | Whether to enable Nushell integration. | boolean |
| programs.keychain.enableXsessionIntegration | Whether to run keychain from your {file}`~/.xsession`. | boolean |
| programs.keychain.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.keychain.extraFlags | Extra flags to pass to keychain. | list of string |
| programs.keychain.inheritType | Inherit type to attempt from agent variables from the environment. | null or one of "local", "any", "local-once", "any-once" |
| programs.keychain.keys | Keys to add to keychain. | list of string |
| programs.keychain.package | The keychain package to use. | package |
| programs.khal.enable | Whether to enable khal, a CLI calendar application. | boolean |
| programs.khal.locale | khal locale settings. | submodule |
| programs.khal.locale.dateformat | khal will display and understand all dates in this format. Format strings are for Python `strftime`, similarly to {manpage}`strftime(3)`. | string |
| programs.khal.locale.datetimeformat | khal will display and understand all datetimes in this format. Format strings are for Python `strftime`, similarly to {manpage}`strftime(3)`. | string |
| 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. | null or string |
| programs.khal.locale.firstweekday | The first day of the week, where Monday is 0 and Sunday is 6. | integer between 0 and 6 (both inclusive) |
| programs.khal.locale.local_timezone | khal will show all times in this timezone. If `null`, the timezone of your computer will be used. | null or string |
| 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 {manpage}`strftime(3)`. | string |
| 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 {manpage}`strftime(3)`. | string |
| programs.khal.locale.timeformat | khal will display and understand all times in this format. Format strings are for Python `strftime`, similarly to {manpage}`strftime(3)`. | string |
| 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). | boolean |
| programs.khal.locale.weeknumbers | Enable week numbers in calendar and interactive (ikhal) mode. As those are ISO week numbers, they only work properly if {option}`firstweekday` is set to 0. | one of "off", "left", "right" |
| programs.khal.package | The khal package to use. | null or package |
| programs.khal.settings | Configuration options to add to the various sections in the configuration file. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.khard.enable | Whether to enable Khard: an address book for the Unix console. | boolean |
| programs.khard.package | The khard package to use. | package |
| programs.khard.settings | Khard settings. See <https://khard.readthedocs.io/en/latest/#configuration> for more information. | open submodule of attribute set of attribute set of (boolean or string or list of string) |
| programs.khard.settings.general.default_action | The default action to execute. | string |
| programs.kickoff.enable | Whether to enable kickoff. | boolean |
| programs.kickoff.package | The kickoff package to use. | null or package |
| programs.kickoff.settings | Configuration settings for kickoff. All the available options can be found here: <https://github.com/j0ru/kickoff/blob/main/assets/default_config.toml>. | TOML value |
| programs.kitty.actionAliases | Define action aliases. | attribute set of string |
| programs.kitty.autoThemeFiles | Configure Kitty automatic color themes. This creates {file}`$XDG_CONFIG_HOME/kitty/light-theme.auto.conf`, {file}`$XDG_CONFIG_HOME/kitty/dark-theme.auto.conf`, and {file}`$XDG_CONFIG_HOME/kitty/no-preference-theme.auto.conf`. Kitty applies these based on the OS color scheme, and they override other color and background image settings. | null or (submodule) |
| programs.kitty.autoThemeFiles.dark | Theme name for dark color scheme. | string |
| programs.kitty.autoThemeFiles.light | Theme name for light color scheme. | string |
| programs.kitty.autoThemeFiles.noPreference | Theme name for no-preference color scheme. | string |
| programs.kitty.darwinLaunchOptions | Command-line options to use when launched by Mac OS GUI | null or (list of string) |
| programs.kitty.enable | Whether to enable Kitty terminal emulator. | boolean |
| programs.kitty.enableGitIntegration | Whether to enable git integration. | boolean |
| programs.kitty.environment | Environment variables to set or override. | attribute set of string |
| programs.kitty.extraConfig | Additional configuration to add to kitty.conf. | strings concatenated with "\n" |
| programs.kitty.font | The font to use. | null or (submodule) |
| programs.kitty.font.name | The family name of the font within the package. | string |
| 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. | null or package |
| programs.kitty.font.size | The size of the font. | null or signed integer or floating point number |
| programs.kitty.keybindings | Mapping of keybindings to actions. | attribute set of string |
| programs.kitty.mouseBindings | Mapping of mouse bindings to actions. | attribute set of string |
| programs.kitty.package | The kitty package to use. | null or package |
| programs.kitty.quickAccessTerminalConfig | Configuration written to {file}`$XDG_CONFIG_HOME/kitty/quick-access-terminal.conf`. See <https://sw.kovidgoyal.net/kitty/kittens/quick-access-terminal/> for the documentation. | attribute set of (string or boolean or signed integer or floating point number) |
| programs.kitty.settings | Configuration written to {file}`$XDG_CONFIG_HOME/kitty/kitty.conf`. See <https://sw.kovidgoyal.net/kitty/conf.html> for the documentation. | attribute set of (string or boolean or signed integer or floating point number) |
| programs.kitty.shellIntegration.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.kitty.shellIntegration.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.kitty.shellIntegration.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| 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, unless this set to `null`. See <https://sw.kovidgoyal.net/kitty/shell-integration> for more details. | null or string |
| 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. Note that if any automatic themes are configured via `programs.kitty.autoThemeFiles`, Kitty will prefer them based on the OS color scheme and they will override other color and background image settings. | null or string |
| 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. | null or (attribute set of attribute set of string) |
| programs.kodi.datadir | Directory to store configuration and metadata. | absolute path |
| programs.kodi.enable | Whether to enable Kodi. | boolean |
| programs.kodi.package | The kodi package to use. Can be used to specify extensions. | package |
| 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. | null or attribute sets or lists of strings |
| 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. | null or attribute sets or lists of strings |
| programs.kraftkit.enable | Whether to enable kraftkit - CLI to build and use customized unikernel VMs. | boolean |
| programs.kraftkit.package | The kraft package to use. | null or package |
| programs.kraftkit.settings | Configuration written to {file}`$XDG_CONFIG_HOME/kraftkit/config.yaml`. | YAML 1.1 value |
| programs.kubecolor.enable | Whether to enable kubecolor - Colorize your kubectl output. | boolean |
| programs.kubecolor.enableAlias | When set to true, it will create an alias for kubectl pointing to kubecolor, thus making kubecolor the default kubectl client. | boolean |
| programs.kubecolor.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.kubecolor.package | The kubecolor package to use. | package |
| programs.kubecolor.settings | Configuration written to {file}`~/.kube/color.yaml` (Linux) or {file}`Library/Application Support/kube/color.yaml` (Darwin). See <https://kubecolor.github.io/reference/config/> for supported values. | YAML 1.1 value |
| programs.kubeswitch.commandName | The name of the command to use | string |
| programs.kubeswitch.enable | Whether to enable the kubectx for operators. | boolean |
| programs.kubeswitch.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.kubeswitch.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.kubeswitch.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.kubeswitch.package | The kubeswitch package to use. | package |
| programs.kubeswitch.settings | Configuration written to {file}`~/.kube/switch-config.yaml`. | YAML 1.1 value |
| programs.lapce.channel | Lapce channel to configure. Should correspond to the package channel. This is used to determine the correct configuration and data directories. | one of "stable", "nightly" |
| programs.lapce.enable | Whether to enable lapce. | boolean |
| programs.lapce.keymaps | Keymaps written to {file}`$XDG_CONFIG_HOME/lapce/keymaps.toml`. See <https://github.com/lapce/lapce/blob/master/defaults/keymaps-common.toml> for examples. | TOML value |
| programs.lapce.package | The lapce package to use. | null or package |
| programs.lapce.plugins | Plugins to install. | list of (submodule) |
| programs.lapce.plugins.*.author | Author of the plugin. | string |
| programs.lapce.plugins.*.hash | Hash of the plugin tarball. To find the hash leave this empty, rebuild and copy the hash from the error message. | string |
| programs.lapce.plugins.*.name | Name of the plugin. | string |
| programs.lapce.plugins.*.version | Version of the plugin. | string |
| programs.lapce.settings | Configuration written to {file}`$XDG_CONFIG_HOME/lapce/settings.toml`. See <https://github.com/lapce/lapce/blob/master/extra/schemas/settings.json> for schema. | TOML value |
| programs.lazydocker.enable | Whether to enable lazydocker, a simple terminal UI for both docker and docker compose. | boolean |
| programs.lazydocker.package | The lazydocker package to use. | null or package |
| programs.lazydocker.settings | Configuration written to {file}`$XDG_CONFIG_HOME/lazydocker/config.yml` on Linux or on Darwin if [](#opt-xdg.enable) is set, otherwise {file}`~/Library/Application Support/jesseduffield/lazydocker/config.yml`. See <https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md> for supported values. | YAML 1.1 value |
| programs.lazygit.enable | Whether to enable lazygit, a simple terminal UI for git commands. | boolean |
| programs.lazygit.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.lazygit.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.lazygit.enableNushellIntegration | Whether to enable Nushell integration. | boolean |
| programs.lazygit.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.lazygit.package | The lazygit package to use. | null or package |
| programs.lazygit.settings | Configuration written to {file}`$XDG_CONFIG_HOME/lazygit/config.yml` on Linux or on Darwin if [](#opt-xdg.enable) is set, otherwise {file}`~/Library/Application Support/lazygit/config.yml`. See <https://github.com/jesseduffield/lazygit/blob/master/docs/Config.md> for supported values. | YAML 1.1 value |
| programs.lazygit.shellWrapperName | Name of the shell wrapper to be called. | string |
| programs.lazysql.enable | Whether to enable lazysql. | boolean |
| programs.lazysql.package | The lazysql package to use. | null or package |
| programs.lazysql.settings | Configuration settings for lazysql. | TOML value |
| programs.lazyworktree.enable | Whether to enable lazyworktree. | boolean |
| programs.lazyworktree.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.lazyworktree.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.lazyworktree.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.lazyworktree.package | The lazyworktree package to use. | null or package |
| programs.lazyworktree.settings | Configuration written to {file}`$XDG_CONFIG_HOME/lazyworktree/config.yaml`. See <https://github.com/chmouel/lazyworktree?tab=readme-ov-file#global-configuration-yaml> for supported values. | YAML 1.1 value |
| programs.lazyworktree.shellWrapperName | Name of the shell wrapper that launches lazyworktree and changes to the selected worktree directory on exit. This option only has an effect when at least one shell integration option is enabled. | string |
| programs.ledger.enable | Whether to enable ledger, a double-entry accounting system. | boolean |
| programs.ledger.extraConfig | Extra configuration to add to {file}`$XDG_CONFIG_HOME/ledger/ledgerrc`. | strings concatenated with "\n" |
| programs.ledger.package | The ledger package to use. | null or package |
| programs.ledger.settings | Configuration written to {file}`$XDG_CONFIG_HOME/ledger/ledgerrc`. See <https://www.ledger-cli.org/3.0/doc/ledger3.html#Detailed-Option-Description> for explanation about possible values. | attribute set of (boolean or signed integer or string or list of string) |
| programs.less.config | Configuration for {command}`less`, written to {file}`$XDG_CONFIG_HOME/lesskey`. | strings concatenated with "\n" |
| programs.less.enable | Whether to enable less, opposite of more. | boolean |
| programs.less.options | Options to be set via {env}`$LESS`. | (list of string) or (attribute set of (boolean or signed integer or string or list of (boolean or signed integer or string))) convertible to it |
| programs.less.package | The less package to use. | null or package |
| programs.lesspipe.enable | Whether to enable lesspipe preprocessor for less. | boolean |
| programs.lesspipe.package | The lesspipe package to use. | package |
| 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. | attribute set of (null or string) |
| programs.lf.commands | Commands to declare. Commands set to null or an empty string are deleted. | attribute set of (null or string) |
| programs.lf.enable | Whether to enable lf. | boolean |
| programs.lf.extraConfig | Custom lfrc lines. | strings concatenated with "\n" |
| programs.lf.keybindings | Keys to bind. Keys set to null or an empty string are deleted. | attribute set of (null or string) |
| programs.lf.package | The lf package to use. | package |
| programs.lf.previewer.keybinding | Key to bind to the script at {var}`previewer.source` and pipe through less. Setting to null will not bind any key. | null or string |
| programs.lf.previewer.source | Script or executable to use to preview files. Sets lf's {var}`previewer` option. | null or absolute path |
| programs.lf.settings | An attribute set of lf settings. See the lf documentation for detailed descriptions of these options. Prefer {option}`programs.lf.previewer.*` for setting lf's {var}`previewer` option. All string options are quoted with double quotes. | attribute set of (string or signed integer or list of (string or signed integer) or boolean) |
| programs.librewolf.darwinDefaultsId | The id for the darwin defaults in order to set policies | null or string |
| programs.librewolf.enable | Whether to enable LibreWolf. LibreWolf is a privacy enhanced Firefox fork. | boolean |
| programs.librewolf.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`. | boolean |
| programs.librewolf.finalPackage | Resulting LibreWolf package. | null or package |
| programs.librewolf.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 LibreWolf you have. If the version string of your Firefox derivative diverts from the upstream version, try setting the `release` option. | list of string |
| programs.librewolf.nativeMessagingHosts | Additional packages containing native messaging hosts that should be made available to LibreWolf extensions. | list of package |
| programs.librewolf.package | The LibreWolf package to use. If state version ≥ 19.09 then this should be a wrapped LibreWolf package. For earlier state versions it should be an unwrapped LibreWolf package. Set to `null` to disable installing LibreWolf. | null or package |
| programs.librewolf.pkcs11Modules | Additional packages to be loaded as PKCS #11 modules in Firefox. | list of package |
| programs.librewolf.policies | [See list of policies](https://mozilla.github.io/policy-templates/). | attribute set of (JSON value) |
| programs.librewolf.profiles | Attribute set of LibreWolf profiles. | attribute set of (submodule) |
| programs.librewolf.profiles.<name>.bookmarks | Declarative bookmarks. | (submodule) or ((list of ((bookmark submodule) or (directory submodule) or value "separator" (singular enum))) or (attribute set of ((bookmark submodule) or (directory submodule) or value "separator" (singular enum))) convertible to it) convertible to it |
| programs.librewolf.profiles.<name>.bookmarks.configFile | Configuration file to define custom bookmarks. | null or absolute path |
| programs.librewolf.profiles.<name>.bookmarks.force | Whether to force override existing custom bookmarks. | boolean |
| programs.librewolf.profiles.<name>.bookmarks.meta.maintainers | List of maintainers of each module. This option should be defined at most once per module. The option value is not a list of maintainers, but an attribute set that maps module file names to lists of maintainers. | list of (maintainer) |
| programs.librewolf.profiles.<name>.bookmarks.settings | Custom bookmarks. | (list of ((bookmark submodule) or (directory submodule) or value "separator" (singular enum))) or (attribute set of ((bookmark submodule) or (directory submodule) or value "separator" (singular enum))) convertible to it |
| programs.librewolf.profiles.<name>.containers | Attribute set of container configurations. See [Multi-Account Containers](https://support.mozilla.org/en-US/kb/containers) for more information. | attribute set of (submodule) |
| programs.librewolf.profiles.<name>.containers.<name>.color | Container color. | one of "blue", "turquoise", "green", "yellow", "orange", "red", "pink", "purple", "toolbar" |
| programs.librewolf.profiles.<name>.containers.<name>.icon | Container icon. | one of "briefcase", "cart", "circle", "dollar", "fence", "fingerprint", "gift", "vacation", "food", "fruit", "pet", "tree", "chill" |
| programs.librewolf.profiles.<name>.containers.<name>.id | Container ID. This should be set to a unique number per container in this profile. | unsigned integer, meaning >=0 |
| programs.librewolf.profiles.<name>.containers.<name>.name | Container name, e.g., shopping. | string |
| programs.librewolf.profiles.<name>.containersForce | Whether to force replace the existing containers configuration. This is recommended since LibreWolf will replace the symlink on every launch, but note that you'll lose any existing configuration by enabling this. | boolean |
| programs.librewolf.profiles.<name>.extensions | Submodule for installing and configuring extensions. | (submodule) or (list of package) convertible to it |
| programs.librewolf.profiles.<name>.extensions.exactPermissions | When enabled, {option}`programs.librewolf.profiles.<profile>.extensions.settings.<extensionID>.permissions` must specify the exact set of permissions that the extension will request. This means that if the authorized permissions are broader than what the extension requests, the assertion will fail. | boolean |
| programs.librewolf.profiles.<name>.extensions.exhaustivePermissions | When enabled, the user must authorize requested permissions for all extensions from {option}`programs.librewolf.profiles.<profile>.extensions.packages` in {option}`programs.librewolf.profiles.<profile>.extensions.settings.<extensionID>.permissions` | boolean |
| programs.librewolf.profiles.<name>.extensions.force | Whether to override all previous firefox settings. This is required when using `settings`. | boolean |
| programs.librewolf.profiles.<name>.extensions.packages | 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 ```console $ 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 [{option}`programs.librewolf.profiles.<profile>.settings`](#opt-programs.librewolf.profiles._name_.settings) | list of package |
| programs.librewolf.profiles.<name>.extensions.settings | Attribute set of options for each extension. The keys of the attribute set consist of the ID of the extension or its UUID wrapped in curly braces. | attribute set of (submodule) |
| programs.librewolf.profiles.<name>.extensions.settings.<name>.force | Forcibly override any existing configuration for this extension. | boolean |
| programs.librewolf.profiles.<name>.extensions.settings.<name>.permissions | Allowed permissions for this extension. See <https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions> for a list of relevant permissions. | null or (list of string) |
| programs.librewolf.profiles.<name>.extensions.settings.<name>.settings | Json formatted options for this extension. | attribute set of (JSON value) |
| programs.librewolf.profiles.<name>.extraConfig | Extra preferences to add to {file}`user.js`. | strings concatenated with "\n" |
| programs.librewolf.profiles.<name>.handlers | Declarative handlers configuration for MIME types and URL schemes. | submodule |
| programs.librewolf.profiles.<name>.handlers.force | Whether to force replace the existing handlers configuration. | boolean |
| programs.librewolf.profiles.<name>.handlers.meta.maintainers | List of maintainers of each module. This option should be defined at most once per module. The option value is not a list of maintainers, but an attribute set that maps module file names to lists of maintainers. | list of (maintainer) |
| programs.librewolf.profiles.<name>.handlers.mimeTypes | Attribute set mapping MIME types to their handler configurations. For a configuration example, see [this file on Firefox’s source code](https://github.com/mozilla-firefox/firefox/blob/c3797cdebac1316dd7168e995e3468c5a597e8d1/uriloader/exthandler/tests/unit/handlers.json). | attribute set of (submodule) |
| programs.librewolf.profiles.<name>.handlers.mimeTypes.<name>.action | The action to take for this MIME type / URL scheme. Possible values: - 0: Save file - 1: Always ask - 2: Use helper app - 3: Open in LibreWolf - 4: Use system default | one of 0, 1, 2, 3, 4 |
| programs.librewolf.profiles.<name>.handlers.mimeTypes.<name>.ask | If true, the user is asked what they want to do with the file. If false, the action is taken without user intervention. | boolean |
| programs.librewolf.profiles.<name>.handlers.mimeTypes.<name>.extensions | List of file extensions associated with this MIME type. | list of string matching the pattern ^[^\.].+$ |
| programs.librewolf.profiles.<name>.handlers.mimeTypes.<name>.handlers | An array of handlers with the first one being the default. If you don't want to have a default handler, use an empty object for the first handler. Only valid when action is set to 2 (Use helper app). | list of (submodule) |
| programs.librewolf.profiles.<name>.handlers.mimeTypes.<name>.handlers.*.name | Display name of the handler. | null or string |
| programs.librewolf.profiles.<name>.handlers.mimeTypes.<name>.handlers.*.path | Path to the executable to be used. Only one of 'path' or 'uriTemplate' should be set. | null or string |
| programs.librewolf.profiles.<name>.handlers.mimeTypes.<name>.handlers.*.uriTemplate | URI for the application handler. Only one of 'path' or 'uriTemplate' should be set. | null or string |
| programs.librewolf.profiles.<name>.handlers.schemes | Attribute set mapping URL schemes to their handler configurations. For a configuration example, see [this file on Firefox’s source code](https://github.com/mozilla-firefox/firefox/blob/c3797cdebac1316dd7168e995e3468c5a597e8d1/uriloader/exthandler/tests/unit/handlers.json). | attribute set of (submodule) |
| programs.librewolf.profiles.<name>.handlers.schemes.<name>.action | The action to take for this MIME type / URL scheme. Possible values: - 0: Save file - 1: Always ask - 2: Use helper app - 3: Open in LibreWolf - 4: Use system default | one of 0, 1, 2, 3, 4 |
| programs.librewolf.profiles.<name>.handlers.schemes.<name>.ask | If true, the user is asked what they want to do with the file. If false, the action is taken without user intervention. | boolean |
| programs.librewolf.profiles.<name>.handlers.schemes.<name>.handlers | An array of handlers with the first one being the default. If you don't want to have a default handler, use an empty object for the first handler. Only valid when action is set to 2 (Use helper app). | list of (submodule) |
| programs.librewolf.profiles.<name>.handlers.schemes.<name>.handlers.*.name | Display name of the handler. | null or string |
| programs.librewolf.profiles.<name>.handlers.schemes.<name>.handlers.*.path | Path to the executable to be used. Only one of 'path' or 'uriTemplate' should be set. | null or string |
| programs.librewolf.profiles.<name>.handlers.schemes.<name>.handlers.*.uriTemplate | URI for the application handler. Only one of 'path' or 'uriTemplate' should be set. | null or string |
| programs.librewolf.profiles.<name>.id | Profile ID. This should be set to a unique number per profile. | unsigned integer, meaning >=0 |
| programs.librewolf.profiles.<name>.isDefault | Whether this is a default profile. | boolean |
| programs.librewolf.profiles.<name>.name | Profile name. | string |
| programs.librewolf.profiles.<name>.path | Profile path. | string |
| programs.librewolf.profiles.<name>.preConfig | Extra preferences to add to {file}`user.js`, before [](#opt-programs.firefox.profiles._name_.settings). Use [](#opt-programs.firefox.profiles._name_.extraConfig), unless you want to overwrite in [](#opt-programs.firefox.profiles._name_.settings), then use this option. | strings concatenated with "\n" |
| programs.librewolf.profiles.<name>.search | Declarative search engine configuration. | submodule |
| programs.librewolf.profiles.<name>.search.default | The default search engine used in the address bar and search bar. | null or string |
| programs.librewolf.profiles.<name>.search.engines | Attribute set of search engine configurations. Engines that only have {var}`metaData` specified will be treated as builtin to LibreWolf. See [SearchEngine.jsm](https://searchfox.org/mozilla-central/rev/e3f42ec9320748b2aab3d474d1e47075def9000c/toolkit/components/search/SearchEngine.sys.mjs#890-923) in LibreWolf'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, {var}`icon` is also a special option added by Home Manager to make it convenient to specify absolute icon paths. | attribute set of attribute set of (JSON value) |
| programs.librewolf.profiles.<name>.search.force | Whether to force replace the existing search configuration. This is recommended since LibreWolf will replace the symlink for the search configuration on every launch, but note that you'll lose any existing configuration by enabling this. | boolean |
| programs.librewolf.profiles.<name>.search.meta.maintainers | List of maintainers of each module. This option should be defined at most once per module. The option value is not a list of maintainers, but an attribute set that maps module file names to lists of maintainers. | list of (maintainer) |
| programs.librewolf.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. | list of string |
| programs.librewolf.profiles.<name>.search.privateDefault | The default search engine used in the Private Browsing. | null or string |
| programs.librewolf.profiles.<name>.settings | Attribute set of LibreWolf preferences. LibreWolf only supports int, bool, and string types for preferences, but home-manager will automatically convert all other JSON-compatible values into strings. | attribute set of (LibreWolf preference (int, bool, string, and also attrs, list, float as a JSON string)) |
| programs.librewolf.profiles.<name>.userChrome | Custom LibreWolf user chrome CSS. | strings concatenated with "\n" or absolute path |
| programs.librewolf.profiles.<name>.userContent | Custom LibreWolf user content CSS. | strings concatenated with "\n" or absolute path |
| programs.librewolf.settings | Attribute set of global LibreWolf settings and overrides. Refer to <https://librewolf.net/docs/settings/> for details on supported values. | attribute set of (boolean or signed integer or string) |
| programs.lieer.enable | Whether to enable lieer Gmail synchronization for notmuch. | boolean |
| programs.lieer.package | The lieer package to use. | package |
| programs.looking-glass-client.enable | Whether to enable looking-glass-client. | boolean |
| programs.looking-glass-client.package | The looking-glass-client package to use. | null or package |
| programs.looking-glass-client.settings | looking-glass-client settings. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.lsd.colors | Configuration written to {file}`$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"`. | YAML 1.1 value or absolute path |
| programs.lsd.enable | Whether to enable lsd. | boolean |
| programs.lsd.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.lsd.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.lsd.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.lsd.icons | Configuration written to {file}`$XDG_CONFIG_HOME/lsd/icons.yaml`. See <https://github.com/lsd-rs/lsd?tab=readme-ov-file#icon-theme-file-content> for details. | YAML 1.1 value or absolute path |
| programs.lsd.package | The lsd package to use. | null or package |
| programs.lsd.settings | Configuration written to {file}`$XDG_CONFIG_HOME/lsd/config.yaml`. See <https://github.com/Peltoche/lsd#config-file-content> for supported values. | YAML 1.1 value |
| programs.lutris.defaultWinePackage | The wine/proton package to set as the default for lutris. It must still be set under proton/winePackages. | null or package |
| programs.lutris.enable | Whether to enable lutris.. | boolean |
| programs.lutris.extraPackages | List of packages to pass as extraPkgs to lutris. Please note runners are not detected properly this way, use a proper option for those. | list of package |
| programs.lutris.package | The lutris package to use. | package |
| programs.lutris.protonPackages | List of proton packages to be added for lutris to use with umu-launcher. | list of package |
| programs.lutris.runners | Attribute set of Lutris runners along with their configurations. Each runner must be named exactly as lutris expects on `lutris --list-runners`. Note that runners added here won't be configurable through Lutris using the GUI. | attribute set of (submodule) |
| programs.lutris.runners.<name>.package | The package to use for this runner, nix will try to find the executable for this package. A more specific path can be set by using settings.runner.runner_executable instead. Uncompatible with certain runners, such as wine. | null or package |
| programs.lutris.runners.<name>.settings | Settings passed directly to lutris for this runner's config at XDG_CONFIG/lutris/runners. | submodule |
| programs.lutris.runners.<name>.settings.runner | Runner specific options. For references, you must look for the file of said runner on lutris' source code. | open submodule of (YAML 1.1 value) |
| programs.lutris.runners.<name>.settings.runner.runner_executable | Specific option to point to a runner executable directly, don't set runner.package if you set this. Uncompatible with certain runners such as wine. | string or absolute path |
| programs.lutris.runners.<name>.settings.system | Lutris system options for this runner. Reference for system options: https://github.com/lutris/lutris/blob/master/lutris/sysoptions.py#L78 | open submodule of (YAML 1.1 value) |
| programs.lutris.steamPackage | This must be the same you use for your system, or two instances will conflict, for example, if you configure steam through the nixos module, a good value is "osConfig.programs.steam.package" | null or package |
| programs.lutris.winePackages | List of wine packages to be added for lutris to use. | list of package |
| programs.man.enable | Whether to enable manual pages and the {command}`man` command. This also includes "man" outputs of all `home.packages`. | boolean |
| programs.man.extraConfig | Additional fields to be added to the end of the user manpath config file. | strings concatenated with "\n" |
| programs.man.generateCaches | Whether to generate the manual page index caches using {manpage}`mandb(8)`. This allows searching for a page or keyword using utilities like {manpage}`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. | boolean |
| programs.man.package | The {command}`man` package to use. | null or package |
| programs.mangohud.enable | Whether to enable Mangohud. | boolean |
| programs.mangohud.enableSessionWide | Sets environment variables so that MangoHud is started on any application that supports it. | boolean |
| programs.mangohud.package | The mangohud package to use. | package |
| programs.mangohud.settings | Configuration written to {file}`$XDG_CONFIG_HOME/MangoHud/MangoHud.conf`. See <https://github.com/flightlessmango/MangoHud/blob/master/data/MangoHud.conf> for the default configuration. | attribute set of (boolean or signed integer or floating point number or string or absolute path or list of (signed integer or string)) |
| programs.mangohud.settingsPerApplication | Sets MangoHud settings per application. Configuration written to {file}`$XDG_CONFIG_HOME/MangoHud/{application_name}.conf`. See <https://github.com/flightlessmango/MangoHud/blob/master/data/MangoHud.conf> for the default configuration. | attribute set of attribute set of (boolean or signed integer or floating point number or string or absolute path or list of (signed integer or string)) |
| programs.matplotlib.config | Add terms to the {file}`matplotlibrc` file to control the default matplotlib behavior. | attribute set of anything |
| programs.matplotlib.enable | Whether to enable matplotlib, a plotting library for python. | boolean |
| programs.matplotlib.extraConfig | Additional commands for matplotlib that will be added to the {file}`matplotlibrc` file. | strings concatenated with "\n" |
| programs.mbsync.enable | Whether to enable mbsync IMAP4 and Maildir mailbox synchronizer. | boolean |
| programs.mbsync.extraConfig | Extra configuration lines to add to the mbsync configuration. | strings concatenated with "\n" |
| programs.mbsync.groups | Definition of groups. | attribute set of attribute set of list of string |
| programs.mbsync.package | The isync package to use. | package |
| programs.mc.enable | Whether to enable Midnight Commander. | boolean |
| programs.mc.extensionSettings | Settings for `mc/mc.ext.ini` file. This setting completely replaces the default `/etc/mc/mc.ext.ini`. Midnight Commander does not merge this file with the system default, so you should copy the original if you want to preserve default behavior and add your changes there. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.mc.fileHighlightSettings | Settings for `mc/filehighlight.ini` file. This setting completely replaces the default `/etc/mc/filehighlight.ini`. Midnight Commander does not merge this file with the system default, so you should copy the original if you want to preserve default behavior and add your changes there. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.mc.keymapSettings | Settings for `mc/mc.keymap` file. Any missing settings will fall back to the system default. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.mc.package | The mc package to use. | null or package |
| programs.mc.panelsSettings | Settings for `mc/panels` file. Any missing settings will fall back to the system default. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.mc.settings | Settings for `mc/ini` file. Any missing settings will fall back to the system default. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.mcfly.enable | Whether to enable mcfly. | boolean |
| programs.mcfly.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.mcfly.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.mcfly.enableLightTheme | Whether to enable light mode theme. | boolean |
| programs.mcfly.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| 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. | unsigned integer, meaning >=0 |
| programs.mcfly.fzf.enable | Whether to enable McFly fzf integration. | boolean |
| programs.mcfly.interfaceView | Interface view to use. | one of "TOP", "BOTTOM" |
| programs.mcfly.keyScheme | Key scheme to use. | one of "emacs", "vim" |
| programs.mcfly.mcflyFzfPackage | The mcfly-fzf package to use. | package |
| programs.mcfly.package | The mcfly package to use. | package |
| programs.mcfly.settings | Settings written to {file}`~/.config/mcfly/config.toml`. Note, if your McFly database is currently in {file}`~/.mcfly`, then this option has no effect. Move the database to {file}`$XDG_DATA_DIR/mcfly/history.db` and remove {file}`~/.mcfly` to make the settings take effect. See <https://github.com/cantino/mcfly#database-location>. | TOML value |
| programs.mcp.enable | Whether to enable mcp. | boolean |
| programs.mcp.servers | MCP server configurations written to {file}`XDG_CONFIG_HOME/mcp/mcp.json` | JSON value |
| programs.meli.enable | Whether to enable meli email client. | boolean |
| programs.meli.includes | Paths of the various meli configuration files to include. | list of string |
| programs.meli.package | The meli package to use. | package |
| programs.meli.settings | Meli Configuration | open submodule of (TOML value) |
| programs.mercurial.aliases | Mercurial aliases to define. | attribute set of anything |
| programs.mercurial.enable | Whether to enable Mercurial. | boolean |
| programs.mercurial.extraConfig | Additional configuration to add. | (attribute set of anything) or strings concatenated with "\n" |
| programs.mercurial.ignores | List of globs for files to be globally ignored. | list of string |
| programs.mercurial.ignoresRegexp | List of regular expressions for files to be globally ignored. | list of string |
| programs.mercurial.package | The mercurial package to use. | package |
| programs.mercurial.userEmail | Default user email to use. | string |
| programs.mercurial.userName | Default user name to use. | string |
| programs.mergiraf.enable | Whether to enable mergiraf. | boolean |
| programs.mergiraf.package | The mergiraf package to use. | package |
| programs.micro.enable | Whether to enable micro, a terminal-based text editor. | boolean |
| programs.micro.package | The micro package to use. | null or package |
| programs.micro.settings | Configuration written to {file}`$XDG_CONFIG_HOME/micro/settings.json`. See <https://github.com/zyedidia/micro/blob/master/runtime/help/options.md> for supported values. | JSON value |
| programs.mise.enable | Whether to enable mise. | boolean |
| programs.mise.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.mise.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.mise.enableNushellIntegration | Whether to enable Nushell integration. | boolean |
| programs.mise.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.mise.globalConfig | Config written to {file}`$XDG_CONFIG_HOME/mise/config.toml`. See <https://mise.jdx.dev/configuration.html> and <https://mise.jdx.dev/configuration/settings.html> for details on supported values. | TOML value |
| programs.mise.package | The mise package to use. | null or package |
| programs.mistral-vibe.enable | Whether to enable Mistral Vibe, Mistral's open-source CLI coding assistant. | boolean |
| programs.mistral-vibe.package | The mistral-vibe package to use. | null or package |
| programs.mistral-vibe.settings | Mistral Vibe configuration. For available settings see <https://github.com/mistralai/mistral-vibe>. | TOML value |
| programs.mods.enable | Whether to enable mods. | boolean |
| programs.mods.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.mods.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.mods.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.mods.package | The mods package to use. | package |
| programs.mods.settings | Configuration written to {file}`$XDG_CONFIG_HOME/mods/mods.yml`. See <https://github.com/charmbracelet/mods/blob/main/config_template.yml> for the full list of options. | YAML 1.1 value |
| programs.mpv.bindings | Input configuration written to {file}`$XDG_CONFIG_HOME/mpv/input.conf`. See {manpage}`mpv(1)` for the full list of options. | attribute set of string |
| programs.mpv.config | Configuration written to {file}`$XDG_CONFIG_HOME/mpv/mpv.conf`. See {manpage}`mpv(1)` for the full list of options. | 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)) |
| programs.mpv.defaultProfiles | Profiles to be applied by default. Options set by them are overridden by options set in [](#opt-programs.mpv.config). | list of string |
| programs.mpv.enable | Whether to enable mpv. | boolean |
| programs.mpv.extraInput | Additional lines that are appended to {file}`$XDG_CONFIG_HOME/mpv/input.conf`. See {manpage}`mpv(1)` for the full list of options. | strings concatenated with "\n" |
| programs.mpv.extraMakeWrapperArgs | List of scripts to use with mpv. | list of string |
| programs.mpv.includes | List of configuration files to include at the end of mpv.conf. Mpv accepts several useful [prefixes](https://mpv.io/manual/stable/#paths). | list of string |
| programs.mpv.package | The mpv package to use. | package |
| programs.mpv.profiles | Sub-configuration options for specific profiles written to {file}`$XDG_CONFIG_HOME/mpv/mpv.conf`. See {option}`programs.mpv.config` for more information. | 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)) |
| programs.mpv.scriptOpts | Script options added to {file}`$XDG_CONFIG_HOME/mpv/script-opts/`. See {manpage}`mpv(1)` for the full list of options of builtin scripts. | 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)) |
| programs.mpv.scripts | List of scripts to use with mpv. | list of package |
| programs.mpvpaper.enable | Whether to enable mpvpaper. | boolean |
| programs.mpvpaper.package | The mpvpaper package to use. | null or package |
| programs.mpvpaper.pauseList | List of program names that will cause mpvpaper to pause. Programs must be separated by spaces or newlines. | strings concatenated with "\n" |
| programs.mpvpaper.stopList | List of program names that will cause mpvpaper to stop. Programs must be separated by spaces or newlines. | strings concatenated with "\n" |
| programs.mr.enable | Whether to enable mr, a tool to manage all your version control repositories. | boolean |
| programs.mr.package | The mr package to use. | null or package |
| programs.mr.settings | Configuration written to {file}`$HOME/.mrconfig` See <https://myrepos.branchable.com/> for an example configuration. | 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) |
| programs.msmtp.configContent | Content added to msmtp config. 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 [](#opt-accounts.email.accounts._name_.msmtp.extraConfig). | strings concatenated with "\n" |
| programs.msmtp.enable | Whether to enable msmtp. | boolean |
| programs.msmtp.package | The msmtp package to use. | package |
| programs.mu.enable | Whether to enable mu, a maildir indexer and searcher. | boolean |
| programs.mu.home | Directory to store Mu's database. | absolute path |
| programs.mu.package | The mu package to use. | package |
| programs.mujmap.enable | Whether to enable mujmap Gmail synchronization for notmuch. | boolean |
| programs.mujmap.package | The mujmap package to use. | package |
| programs.mullvad-vpn.enable | Whether to enable Mullvad VPN. | boolean |
| programs.mullvad-vpn.package | The mullvad-vpn package to use. | null or package |
| programs.mullvad-vpn.settings | Written to {file}`XDG_CONFIG_HOME/Mullvad VPN/gui_settings.json` or {file}`~/Library/Application Support/Mullvad VPN/gui_settings.json`. See <https://github.com/mullvad/mullvadvpn-app/blob/main/desktop/packages/mullvad-vpn/src/main/gui-settings.ts> for options. | JSON value |
| programs.mypy.enable | Whether to enable mypy. | boolean |
| programs.mypy.package | The mypy package to use. | null or package |
| programs.mypy.settings | Configuration written to {file}`$XDG_CONFIG_HOME/mypy/config`. See <https://mypy.readthedocs.io/en/stable/config_file.html> for more information. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.navi.enable | Whether to enable Navi. | boolean |
| programs.navi.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.navi.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.navi.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.navi.package | The navi package to use. | package |
| programs.navi.settings | Configuration written to {file}`$XDG_CONFIG_HOME/navi/config.yaml` on Linux or {file}`$HOME/Library/Application Support/navi/config.yaml` on Darwin. See <https://github.com/denisidoro/navi/blob/master/docs/config_file.md> for more information. | YAML 1.1 value |
| programs.ncmpcpp.bindings | List of keybindings. | list of (submodule) |
| programs.ncmpcpp.bindings.*.command | Command or sequence of commands to be executed. | string or list of string |
| programs.ncmpcpp.bindings.*.key | Key to bind. | string |
| programs.ncmpcpp.enable | Whether to enable ncmpcpp - an ncurses Music Player Daemon (MPD) client. | boolean |
| programs.ncmpcpp.mpdMusicDir | Value of the `mpd_music_dir` setting. On Linux platforms the value of {var}`services.mpd.musicDirectory` is used as the default if {var}`services.mpd.enable` is `true`. | null or (string or absolute path convertible to it) |
| programs.ncmpcpp.package | The ncmpcpp package to use. | package |
| programs.ncmpcpp.settings | Attribute set from name of a setting to its value. For available options see {manpage}`ncmpcpp(1)`. | attribute set of (boolean or signed integer or string) |
| programs.ncspot.enable | Whether to enable ncspot. | boolean |
| programs.ncspot.package | The ncspot package to use. | null or package |
| programs.ncspot.settings | Configuration written to {file}`$XDG_CONFIG_HOME/ncspot/config.toml`. See <https://github.com/hrkfdn/ncspot#configuration> for the full list of options. | TOML value |
| programs.ne.automaticPreferences | Automatic preferences files for ne. | attribute set of strings concatenated with "\n" |
| programs.ne.defaultPreferences | Default preferences for ne. Equivalent to `programs.ne.automaticPreferences.".default"`. | strings concatenated with "\n" |
| programs.ne.enable | Whether to enable ne. | boolean |
| programs.ne.keybindings | Keybinding file for ne. | strings concatenated with "\n" |
| programs.ne.menus | Menu configuration file for ne. | strings concatenated with "\n" |
| programs.ne.package | The ne package to use. | null or package |
| programs.ne.virtualExtensions | Virtual extensions configuration file for ne. | strings concatenated with "\n" |
| programs.neomutt.binds | List of keybindings. | list of (submodule) |
| programs.neomutt.binds.*.action | Specify the action to take. | string |
| programs.neomutt.binds.*.key | The key to bind. If you want to bind '\Cp' for example, which would be Ctrl + 'p', you need to escape twice: '\\Cp'! | string |
| programs.neomutt.binds.*.map | Select the menu to bind the command to. | 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") |
| programs.neomutt.changeFolderWhenSourcingAccount | Whether to enable changing the folder when sourcing an account. | boolean |
| programs.neomutt.checkStatsInterval | Enable and set the interval of automatic mail check. | null or signed integer |
| programs.neomutt.editor | Select the editor used for writing mail. | string |
| programs.neomutt.enable | Whether to enable the NeoMutt mail client. | boolean |
| programs.neomutt.extraConfig | Extra configuration appended to the end. | strings concatenated with "\n" |
| programs.neomutt.macros | List of macros. | list of (submodule) |
| programs.neomutt.macros.*.action | Specify the action to take. | string |
| programs.neomutt.macros.*.key | The key to bind. If you want to bind '\Cp' for example, which would be Ctrl + 'p', you need to escape twice: '\\Cp'! | string |
| programs.neomutt.macros.*.map | Select the menu to bind the command to. | 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") |
| programs.neomutt.package | The neomutt package to use. | package |
| programs.neomutt.settings | Extra configuration appended to the end. | attribute set of string |
| programs.neomutt.sidebar | Options related to the sidebar. | submodule |
| programs.neomutt.sidebar.enable | Whether to enable sidebar support. | boolean |
| programs.neomutt.sidebar.format | Sidebar format. Check neomutt documentation for details. | string |
| programs.neomutt.sidebar.shortPath | By default sidebar shows the full path of the mailbox, but with this enabled only the relative name is shown. | boolean |
| programs.neomutt.sidebar.width | Width of the sidebar | signed integer |
| programs.neomutt.sort | Sorting method on messages. | 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", "last-date", "last-date-received", "last-from", "last-mailbox-order", "last-score", "last-size", "last-spam", "last-subject", "last-threads", "last-to", "reverse-last-date", "reverse-last-date-received", "reverse-last-from", "reverse-last-mailbox-order", "reverse-last-score", "reverse-last-size", "reverse-last-spam", "reverse-last-subject", "reverse-last-threads", "reverse-last-to" |
| programs.neomutt.sourcePrimaryAccount | Whether to enable source the primary account by default. | boolean |
| 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. | boolean |
| programs.neomutt.vimKeys | Enable vim-like bindings. | boolean |
| programs.neovide.enable | Whether to enable Neovide, No Nonsense Neovim Client in Rust. | boolean |
| programs.neovide.package | The neovide package to use. | null or package |
| 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. | TOML value |
| programs.neovim.autowrapRuntimeDeps | Whether to automatically wrap the binary with the runtime dependencies of the plugins. | boolean |
| programs.neovim.coc.enable | Whether to enable Coc. | boolean |
| programs.neovim.coc.package | The coc-nvim package to use. | package |
| programs.neovim.coc.pluginConfig | Script to configure CoC. Must be viml. | strings concatenated with "\n" |
| programs.neovim.coc.settings | Extra configuration lines to add to {file}`$XDG_CONFIG_HOME/nvim/coc-settings.json` See <https://github.com/neoclide/coc.nvim/wiki/Using-the-configuration-file> for options. | JSON value |
| programs.neovim.defaultEditor | Whether to configure {command}`nvim` as the default editor using the {env}`EDITOR` and {env}`VISUAL` environment variables. | boolean |
| programs.neovim.enable | Whether to enable Neovim. | boolean |
| programs.neovim.extraConfig | Custom vimrc lines. | strings concatenated with "\n" |
| 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. | function that evaluates to a(n) list of package |
| programs.neovim.extraName | Extra name appended to the wrapper package name. | string |
| programs.neovim.extraPackages | Extra packages available to nvim. | list of package |
| 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. | function that evaluates to a(n) list of package |
| 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. | list of string |
| programs.neovim.finalPackage | Resulting customized neovim package. | package |
| programs.neovim.generatedConfigViml | Generated vimscript config. | strings concatenated with "\n" |
| programs.neovim.generatedConfigs | Generated configurations with as key their language (set via type). | attribute set of strings concatenated with "\n" |
| programs.neovim.initLua | Content to be added to {file}`init.lua`. Automatically contains the [advised plugin config](https://nixos.org/manual/nixpkgs/stable/#neovim-custom-configuration) To specify the order, use `lib.mkOrder`, `lib.mkBefore`, `lib.mkAfter`. | strings concatenated with "\n" |
| programs.neovim.package | The neovim package to use. | package |
| 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 {var}`configure`. | list of (package or (submodule)) |
| programs.neovim.plugins.*.config | Script to configure this plugin. The scripting language should match type. | null or strings concatenated with "\n" |
| programs.neovim.plugins.*.optional | Don't load by default (load with :packadd) | boolean |
| programs.neovim.plugins.*.plugin | The plugin package to use. | package |
| programs.neovim.plugins.*.runtime | Set of files that have to be linked in nvim config folder. | attribute set of (submodule) |
| programs.neovim.plugins.*.runtime.<name>.enable | Whether this file should be generated. This option allows specific files to be disabled. | boolean |
| programs.neovim.plugins.*.runtime.<name>.executable | Set the execute bit. If `null`, defaults to the mode of the {var}`source` file or to `false` for files created through the {var}`text` option. | null or boolean |
| programs.neovim.plugins.*.runtime.<name>.force | Whether the target path should be unconditionally replaced by the managed file source. Warning, this will silently delete the target regardless of whether it is a file or link. | boolean |
| programs.neovim.plugins.*.runtime.<name>.ignorelinks | When `recursive` is enabled, adds `-ignorelinks` flag to lndir It causes lndir to not treat symbolic links in the source directory specially. The link created in the target directory will point back to the corresponding (symbolic link) file in the source directory. If the link is to a directory | boolean |
| programs.neovim.plugins.*.runtime.<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. | strings concatenated with "\n" |
| programs.neovim.plugins.*.runtime.<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. | boolean |
| programs.neovim.plugins.*.runtime.<name>.source | Path of the source file or directory. If [](#opt-programs.neovim.plugins._.runtime._name_.text) is non-null then this option will automatically point to a file containing that text. | absolute path |
| programs.neovim.plugins.*.runtime.<name>.target | Path to target file relative to {var}`xdg.configHome/nvim`. | string |
| programs.neovim.plugins.*.runtime.<name>.text | Text of the file. If this option is null then [](#opt-programs.neovim.plugins._.runtime._name_.source) must be set. | null or strings concatenated with "\n" |
| programs.neovim.plugins.*.type | Language used in config. Configurations are aggregated per-language. | one of "lua", "viml", "teal", "fennel" or string |
| programs.neovim.viAlias | Symlink {command}`vi` to {command}`nvim` binary. | boolean |
| programs.neovim.vimAlias | Symlink {command}`vim` to {command}`nvim` binary. | boolean |
| programs.neovim.vimdiffAlias | Alias {command}`vimdiff` to {command}`nvim -d`. | boolean |
| programs.neovim.waylandSupport | Whether to enable Wayland clipboard support. | boolean |
| programs.neovim.withNodeJs | Enable node provider. Set to `true` to use Node plugins. | boolean |
| programs.neovim.withPerl | Enable perl provider. Set to `true` to use Perl plugins. | boolean |
| programs.neovim.withPython3 | Enable Python 3 provider. Set to `true` to use Python 3 plugins. | boolean |
| programs.neovim.withRuby | Enable ruby provider. | null or boolean |
| programs.newsboat.autoFetchArticles.enable | Whether to enable automatic article fetcher timer. | boolean |
| programs.newsboat.autoFetchArticles.onCalendar | How often to fetch new articles. See {manpage}`systemd.time(7)` for more information about the format. | string |
| programs.newsboat.autoReload | Whether to enable automatic reloading while newsboat is running. | boolean |
| programs.newsboat.autoVacuum.enable | Whether to enable automatic cleaning of the newsboat cache. | boolean |
| programs.newsboat.autoVacuum.onCalendar | How often to run the cleaning command. See {manpage}`systemd.time(7)` for more information about the format. | string |
| programs.newsboat.browser | External browser to use. | string |
| programs.newsboat.enable | Whether to enable the Newsboat feed reader. | boolean |
| programs.newsboat.extraConfig | Extra configuration values that will be appended to the end. | strings concatenated with "\n" |
| programs.newsboat.maxItems | Maximum number of items per feed, 0 for infinite. | signed integer |
| programs.newsboat.package | The newsboat package to use. | null or package |
| programs.newsboat.queries | A list of queries to use. | attribute set of string |
| programs.newsboat.reloadThreads | How many threads to use for updating the feeds. | signed integer |
| programs.newsboat.reloadTime | Time in minutes between reloads. | null or signed integer |
| programs.newsboat.urls | List of news feeds. Leave it empty if you want to manage feeds imperatively, for example, using Syncthing. | list of (submodule) |
| programs.newsboat.urls.*.tags | Feed tags. | list of string |
| programs.newsboat.urls.*.title | Feed title. | null or string |
| programs.newsboat.urls.*.url | Feed URL. | string |
| programs.nh.clean.dates | How often cleanup is performed. On linux the format is described in {manpage}`systemd.time(7)`. On Darwin, it must be one of: hourly, daily, weekly, monthly, semiannually, annually, which are implemented as defined in {manpage}`systemd.time(7)`. | (optionally newline-terminated) single-line string |
| programs.nh.clean.enable | Whether to enable periodic garbage collection for user profile and nix store with nh clean user. | boolean |
| programs.nh.clean.extraArgs | Options given to nh clean when the service is run automatically. See `nh clean all --help` for more information. | (optionally newline-terminated) single-line string |
| programs.nh.darwinFlake | The string that will be used for the {env}`NH_DARWIN_FLAKE` environment variable. {env}`NH_DARWIN_FLAKE` is used by nh as the default flake for performing {command}`nh darwin` actions, such as {command}`nh darwin switch`. Setting this will take priority over the `flake` option. | null or (optionally newline-terminated) single-line string or absolute path |
| programs.nh.enable | Whether to enable nh, yet another Nix CLI helper. | boolean |
| programs.nh.flake | The path that will be used for the {env}`FLAKE` environment variable. {env}`FLAKE` is used by nh as the default flake for performing actions, like {command}`nh os switch`. | null or (optionally newline-terminated) single-line string or absolute path |
| programs.nh.homeFlake | The string that will be used for the {env}`NH_HOME_FLAKE` environment variable. {env}`NH_HOME_FLAKE` is used by nh as the default flake for performing {command}`nh home` actions, such as {command}`nh home switch`. Setting this will take priority over the `flake` option. | null or (optionally newline-terminated) single-line string or absolute path |
| programs.nh.osFlake | The string that will be used for the {env}`NH_OS_FLAKE` environment variable. {env}`NH_OS_FLAKE` is used by nh as the default flake for performing {command}`nh os` actions, such as {command}`nh os switch`. Setting this will take priority over the `flake` option. | null or (optionally newline-terminated) single-line string or absolute path |
| programs.nh.package | The nh package to use. | package |
| programs.nheko.enable | Whether to enable Qt desktop client for Matrix. | boolean |
| programs.nheko.package | The nheko package to use. | null or package |
| 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 {file}`$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. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.niriswitcher.enable | Whether to enable niriswitcher, an application switcher for niri. | boolean |
| programs.niriswitcher.package | The niriswitcher package to use. | null or package |
| programs.niriswitcher.settings | niriswitcher configuration. For available settings see <https://github.com/isaksamsten/niriswitcher/?tab=readme-ov-file#options>. | null or TOML value |
| programs.niriswitcher.style | CSS style of the switcher. <https://github.com/isaksamsten/niriswitcher/?tab=readme-ov-file#themes> for the documentation. If the value is set to a path literal, then the path will be used as the CSS file. | null or absolute path or strings concatenated with "\n" |
| programs.nix-index.enable | Whether to enable nix-index, a file database for nixpkgs. | boolean |
| programs.nix-index.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.nix-index.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.nix-index.enableNushellIntegration | Whether to enable Nushell integration. | boolean |
| programs.nix-index.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.nix-index.package | The nix-index package to use. | package |
| programs.nix-init.enable | Whether to enable nix-init. | boolean |
| programs.nix-init.package | The nix-init package to use. | null or package |
| programs.nix-init.settings | Configuration written to {file}`$XDG_CONFIG_HOME/nix-init/config.toml`. See <https://github.com/nix-community/nix-init#configuration> for the full list of options. | TOML value |
| programs.nix-search-tv.enable | Whether to enable nix-search-tv. | boolean |
| programs.nix-search-tv.enableTelevisionIntegration | Enables integration with television. Creates a channel through `programs.television.channels.nix-search-tv`, which are set as defaults and can be overridden. See [programs.television.channels](#opt-programs.television.channels) for more information | boolean |
| programs.nix-search-tv.package | The nix-search-tv package to use. | null or package |
| programs.nix-search-tv.settings | Configuration written to {file}`$XDG_CONFIG_HOME/nix-search-tv/config.json`. See <https://github.com/3timeslazy/nix-search-tv?tab=readme-ov-file#configuration> for the full list of options. | JSON value |
| programs.nix-your-shell.enable | Whether to enable {command}`nix-your-shell`, a wrapper for `nix develop` or `nix-shell` to retain the same shell inside the new environment. | boolean |
| programs.nix-your-shell.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.nix-your-shell.enableNushellIntegration | Whether to enable Nushell integration. | boolean |
| programs.nix-your-shell.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.nix-your-shell.nix-output-monitor.enable | Whether to enable [nix-output-monitor](https://github.com/maralorn/nix-output-monitor). Pipe your nix-build output through the nix-output-monitor a.k.a nom to get additional information while building . | boolean |
| programs.nix-your-shell.nix-output-monitor.package | The nix-output-monitor package to use. | package |
| programs.nix-your-shell.package | The nix-your-shell package to use. | package |
| programs.nnn.bookmarks | Directory bookmarks. | attribute set of string |
| programs.nnn.enable | Whether to enable nnn. | boolean |
| programs.nnn.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.nnn.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.nnn.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.nnn.extraPackages | Extra packages available to nnn. | list of package |
| programs.nnn.options | Configuration options for {command}`nnn`. See {command}`nnn -h` | (list of string) or (attribute set of (boolean or signed integer or string)) convertible to it |
| programs.nnn.package | The nnn package to use. | package |
| programs.nnn.plugins | Manage nnn plugins. | submodule |
| programs.nnn.plugins.mappings | Key mappings to the plugins. | attribute set of string |
| programs.nnn.plugins.src | Path to the plugin folder. | null or absolute path |
| programs.nnn.quitcd | Whether to enable cd on quit. | boolean |
| programs.noti.enable | Whether to enable Noti. | boolean |
| programs.noti.package | The noti package to use. | null or package |
| programs.noti.settings | Configuration written to {file}`$XDG_CONFIG_HOME/noti/noti.yaml`. See {manpage}`noti.yaml(5)`. for the full list of options. | attribute set of attribute set of string |
| programs.notmuch.enable | Whether to enable Notmuch mail indexer. | boolean |
| programs.notmuch.extraConfig | Options that should be appended to the notmuch configuration file. | attribute set of attribute set of string |
| programs.notmuch.hooks.postInsert | Bash statements run after a message has been inserted into the database and initial tags have been applied. | strings concatenated with "\n" |
| programs.notmuch.hooks.postNew | Bash statements run after new messages have been imported into the database and initial tags have been applied. | strings concatenated with "\n" |
| programs.notmuch.hooks.preNew | Bash statements run before scanning or importing new messages into the database. | strings concatenated with "\n" |
| programs.notmuch.maildir.synchronizeFlags | Whether to synchronize Maildir flags. | boolean |
| programs.notmuch.new | Options related to email processing performed by {command}`notmuch new`. | submodule |
| programs.notmuch.new.ignore | A list to specify files and directories that will not be searched for messages by {command}`notmuch new`. | list of string |
| programs.notmuch.new.tags | A list of tags that will be added to all messages incorporated by {command}`notmuch new`. | list of string |
| programs.notmuch.package | The notmuch package to use. | package |
| 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. | list of string |
| programs.npm.enable | Whether to enable {command}`npm` user config. | boolean |
| programs.npm.package | The nodejs package to use. | null or package |
| programs.npm.settings | The user-specific npm configuration. See <https://docs.npmjs.com/cli/using-npm/config> and <https://docs.npmjs.com/cli/configuring-npm/npmrc> for more information. | attribute set of (INI atom (null, bool, int, float or string) or a list of them for duplicate keys) |
| programs.numbat.enable | Whether to enable Numbat. | boolean |
| programs.numbat.initFile | User initialization file ({file}`init.nbt`) contents. May be specified inline or as a path to a source file. | null or strings concatenated with "\n" or absolute path |
| programs.numbat.package | The numbat package to use. | null or package |
| programs.numbat.settings | Options to add to {file}`config.toml`. See <https://numbat.dev/doc/cli-customization.html#configuration> for options. | TOML value |
| programs.nushell.configDir | Location of the nushell config directory. This directory contains the {file}`config.nu`, {file}`env.nu`, and {file}`login.nu` files, as well as history and plugin files. | string or absolute path |
| programs.nushell.configFile | The configuration file to be used for nushell. See <https://www.nushell.sh/book/configuration.html#configuration> for more information. | null or (submodule) |
| programs.nushell.configFile.source | Path of the nushell {file}`config.nu` file to use. If the text option is set, it will be preferred. | null or absolute path |
| programs.nushell.configFile.text | Text of the nushell {file}`config.nu` file. If unset then the source option will be preferred. | strings concatenated with "\n" |
| programs.nushell.enable | Whether to enable nushell. | boolean |
| programs.nushell.envFile | The environment variables file to be used for nushell. See <https://www.nushell.sh/book/configuration.html#configuration> for more information. | null or (submodule) |
| programs.nushell.envFile.source | Path of the nushell {file}`env.nu` file to use. If the text option is set, it will be preferred. | null or absolute path |
| programs.nushell.envFile.text | Text of the nushell {file}`env.nu` file. If unset then the source option will be preferred. | strings concatenated with "\n" |
| programs.nushell.environmentVariables | Environment variables to be set. Inline values can be set with `lib.hm.nushell.mkNushellInline`. | attribute set of (null or (Nushell inline value) or boolean or signed integer or floating point number or string or absolute path or (attribute set of Nushell values) or (list of Nushell values)) |
| programs.nushell.extraConfig | Additional configuration to add to the nushell configuration file. | strings concatenated with "\n" |
| programs.nushell.extraEnv | Additional configuration to add to the nushell environment variables file. | strings concatenated with "\n" |
| programs.nushell.extraLogin | Additional configuration to add to the nushell login file. | strings concatenated with "\n" |
| 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. | null or (submodule) |
| programs.nushell.loginFile.source | Path of the nushell {file}`login.nu` file to use. If the text option is set, it will be preferred. | null or absolute path |
| programs.nushell.loginFile.text | Text of the nushell {file}`login.nu` file. If unset then the source option will be preferred. | strings concatenated with "\n" |
| programs.nushell.package | The nushell package to use. | null or package |
| programs.nushell.plugins | A list of nushell plugins to write to the plugin registry file. | list of package |
| programs.nushell.settings | Nushell settings. These will be flattened and assigned one by one to `$env.config` to avoid overwriting the default or existing options. For example: ```nix { show_banner = false; completions.external = { enable = true; max_results = 200; }; } ``` becomes: ```nushell $env.config.completions.external.enable = true $env.config.completions.external.max_results = 200 $env.config.show_banner = false ``` | attribute set of (null or (Nushell inline value) or boolean or signed integer or floating point number or string or absolute path or (attribute set of Nushell values) or (list of Nushell values)) |
| 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. | attribute set of string |
| programs.nvchecker.enable | Whether to enable nvchecker. | boolean |
| programs.nvchecker.package | The nvchecker package to use. | null or package |
| programs.nvchecker.settings | Configuration written to {file}`$HOME/Library/Application Support/nvchecker/nvchecker.toml` (on Darwin) or {file}`$XDG_CONFIG_HOME/nvchecker/nvchecker.toml` (otherwise). See <https://nvchecker.readthedocs.io/en/stable/usage.html#configuration-files> for the full list of options. Environment variables and `~` are expanded, and relative paths are relative to {file}`${config.home.homeDirectory}/Library/Application Support/nvchecker/nvchecker/` (on Darwin) or {file}`${config.xdg.configHome}/nvchecker/` (otherwise). | open submodule of (TOML value) |
| programs.nvchecker.settings.__config__ | See <https://nvchecker.readthedocs.io/en/stable/usage.html#configuration-files>. Environment variables and `~` are expanded, and relative paths are relative to {file}`${config.home.homeDirectory}/Library/Application Support/nvchecker/nvchecker/` (on Darwin) or {file}`${config.xdg.configHome}/nvchecker/` (otherwise). | open submodule of (TOML value) |
| programs.nvchecker.settings.__config__.newver | The file to store 'new' (i.e. available) versions in. Environment variables and `~` are expanded, and relative paths are relative to {file}`${config.home.homeDirectory}/Library/Application Support/nvchecker/nvchecker/` (on Darwin) or {file}`${config.xdg.configHome}/nvchecker/` (otherwise). | path |
| programs.nvchecker.settings.__config__.oldver | The file to store 'old' (i.e. installed) version information in. Environment variables and `~` are expanded, and relative paths are relative to {file}`${config.home.homeDirectory}/Library/Application Support/nvchecker/nvchecker/` (on Darwin) or {file}`${config.xdg.configHome}/nvchecker/` (otherwise). | path |
| programs.nyxt.config | Configuration file for Nyxt, written in the Common Lisp programming language. | strings concatenated with "\n" or absolute path |
| programs.nyxt.enable | Whether to enable Nyxt. | boolean |
| programs.nyxt.package | The nyxt package to use. | null or package |
| programs.obs-studio.enable | Whether to enable obs-studio. | boolean |
| programs.obs-studio.package | The obs-studio package to use. | package |
| programs.obs-studio.plugins | Optional OBS plugins. | list of package |
| programs.obsidian.defaultSettings.app | Settings to write to `app.json`. Vault-specific settings take priority and will override these, if set. | null or (attribute set of anything) |
| programs.obsidian.defaultSettings.appearance | Settings to write to `appearance.json`. Vault-specific settings take priority and will override these, if set. | null or (attribute set of anything) |
| programs.obsidian.defaultSettings.communityPlugins | Community plugins to install and activate. Vault-specific settings take priority and will override these, if set. | null or (list of ((submodule) or package convertible to it)) |
| programs.obsidian.defaultSettings.communityPlugins.*.enable | Whether to enable the plugin. | boolean |
| programs.obsidian.defaultSettings.communityPlugins.*.pkg | The plugin package. | package |
| programs.obsidian.defaultSettings.communityPlugins.*.settings | Settings to include in the plugin's `data.json`. | null or (attribute set of anything) |
| programs.obsidian.defaultSettings.corePlugins | Core plugins to activate. Vault-specific settings take priority and will override these, if set. | null or (list of ((submodule) or (one of "audio-recorder", "backlink", "bases", "bookmarks", "canvas", "command-palette", "daily-notes", "editor-status", "file-explorer", "file-recovery", "footnotes", "global-search", "graph", "markdown-importer", "note-composer", "outgoing-link", "outline", "page-preview", "properties", "publish", "random-note", "slash-command", "slides", "switcher", "sync", "tag-pane", "templates", "webviewer", "word-count", "workspaces", "zk-prefixer") convertible to it)) |
| programs.obsidian.defaultSettings.corePlugins.*.enable | Whether to enable the plugin. | boolean |
| programs.obsidian.defaultSettings.corePlugins.*.name | The plugin. | one of "audio-recorder", "backlink", "bases", "bookmarks", "canvas", "command-palette", "daily-notes", "editor-status", "file-explorer", "file-recovery", "footnotes", "global-search", "graph", "markdown-importer", "note-composer", "outgoing-link", "outline", "page-preview", "properties", "publish", "random-note", "slash-command", "slides", "switcher", "sync", "tag-pane", "templates", "webviewer", "word-count", "workspaces", "zk-prefixer" |
| programs.obsidian.defaultSettings.corePlugins.*.settings | Plugin settings to include. | null or (attribute set of anything) |
| programs.obsidian.defaultSettings.cssSnippets | CSS snippets to install. Vault-specific settings take priority and will override these, if set. | null or (list of ((submodule) or absolute path convertible to it)) |
| programs.obsidian.defaultSettings.cssSnippets.*.enable | Whether to enable the snippet. | boolean |
| programs.obsidian.defaultSettings.cssSnippets.*.name | Name of the snippet. | string |
| programs.obsidian.defaultSettings.cssSnippets.*.source | Path of the source file. | null or absolute path |
| programs.obsidian.defaultSettings.cssSnippets.*.text | Text of the file. | null or string |
| programs.obsidian.defaultSettings.extraFiles | Extra files to link to the vault directory. Vault-specific settings take priority and will override these, if set. | null or (attribute set of (submodule)) |
| programs.obsidian.defaultSettings.extraFiles.<name>.source | Path of the source file or directory. | null or absolute path |
| programs.obsidian.defaultSettings.extraFiles.<name>.target | Path to target relative to the vault's directory. | string |
| programs.obsidian.defaultSettings.extraFiles.<name>.text | Text of the file. | null or string |
| programs.obsidian.defaultSettings.hotkeys | Hotkeys to configure. Vault-specific settings take priority and will override these, if set. | null or (attribute set of list of (submodule)) |
| programs.obsidian.defaultSettings.hotkeys.<name>.*.key | The hotkey. | string |
| programs.obsidian.defaultSettings.hotkeys.<name>.*.modifiers | The hotkey modifiers. | list of string |
| programs.obsidian.defaultSettings.themes | Themes to install. Vault-specific settings take priority and will override these, if set. | null or (list of ((submodule) or package convertible to it)) |
| programs.obsidian.defaultSettings.themes.*.enable | Whether to set the theme as active. | boolean |
| programs.obsidian.defaultSettings.themes.*.pkg | The theme package. | package |
| programs.obsidian.enable | Whether to enable obsidian. | boolean |
| programs.obsidian.package | The obsidian package to use. | null or package |
| programs.obsidian.vaults | List of vaults to create. | attribute set of (submodule) |
| programs.obsidian.vaults.<name>.enable | Whether this vault should be generated. | boolean |
| programs.obsidian.vaults.<name>.settings.app | Settings to write to app.json. | null or (attribute set of anything) |
| programs.obsidian.vaults.<name>.settings.appearance | Settings to write to appearance.json. | null or (attribute set of anything) |
| programs.obsidian.vaults.<name>.settings.communityPlugins | Community plugins to install and activate. | null or (list of ((submodule) or package convertible to it)) |
| programs.obsidian.vaults.<name>.settings.communityPlugins.*.enable | Whether to enable the plugin. | boolean |
| programs.obsidian.vaults.<name>.settings.communityPlugins.*.pkg | The plugin package. | package |
| programs.obsidian.vaults.<name>.settings.communityPlugins.*.settings | Settings to include in the plugin's `data.json`. | null or (attribute set of anything) |
| programs.obsidian.vaults.<name>.settings.corePlugins | Core plugins to activate. | null or (list of ((submodule) or (one of "audio-recorder", "backlink", "bases", "bookmarks", "canvas", "command-palette", "daily-notes", "editor-status", "file-explorer", "file-recovery", "footnotes", "global-search", "graph", "markdown-importer", "note-composer", "outgoing-link", "outline", "page-preview", "properties", "publish", "random-note", "slash-command", "slides", "switcher", "sync", "tag-pane", "templates", "webviewer", "word-count", "workspaces", "zk-prefixer") convertible to it)) |
| programs.obsidian.vaults.<name>.settings.corePlugins.*.enable | Whether to enable the plugin. | boolean |
| programs.obsidian.vaults.<name>.settings.corePlugins.*.name | The plugin. | one of "audio-recorder", "backlink", "bases", "bookmarks", "canvas", "command-palette", "daily-notes", "editor-status", "file-explorer", "file-recovery", "footnotes", "global-search", "graph", "markdown-importer", "note-composer", "outgoing-link", "outline", "page-preview", "properties", "publish", "random-note", "slash-command", "slides", "switcher", "sync", "tag-pane", "templates", "webviewer", "word-count", "workspaces", "zk-prefixer" |
| programs.obsidian.vaults.<name>.settings.corePlugins.*.settings | Plugin settings to include. | null or (attribute set of anything) |
| programs.obsidian.vaults.<name>.settings.cssSnippets | CSS snippets to install. | null or (list of ((submodule) or absolute path convertible to it)) |
| programs.obsidian.vaults.<name>.settings.cssSnippets.*.enable | Whether to enable the snippet. | boolean |
| programs.obsidian.vaults.<name>.settings.cssSnippets.*.name | Name of the snippet. | string |
| programs.obsidian.vaults.<name>.settings.cssSnippets.*.source | Path of the source file. | null or absolute path |
| programs.obsidian.vaults.<name>.settings.cssSnippets.*.text | Text of the file. | null or string |
| programs.obsidian.vaults.<name>.settings.extraFiles | Extra files to link to the vault directory. | null or (attribute set of (submodule)) |
| programs.obsidian.vaults.<name>.settings.extraFiles.<name>.source | Path of the source file or directory. | null or absolute path |
| programs.obsidian.vaults.<name>.settings.extraFiles.<name>.target | Path to target relative to the vault's directory. | string |
| programs.obsidian.vaults.<name>.settings.extraFiles.<name>.text | Text of the file. | null or string |
| programs.obsidian.vaults.<name>.settings.hotkeys | Hotkeys to configure. | null or (attribute set of list of (submodule)) |
| programs.obsidian.vaults.<name>.settings.hotkeys.<name>.*.key | The hotkey. | string |
| programs.obsidian.vaults.<name>.settings.hotkeys.<name>.*.modifiers | The hotkey modifiers. | list of string |
| programs.obsidian.vaults.<name>.settings.themes | Themes to install. | null or (list of ((submodule) or package convertible to it)) |
| programs.obsidian.vaults.<name>.settings.themes.*.enable | Whether to set the theme as active. | boolean |
| programs.obsidian.vaults.<name>.settings.themes.*.pkg | The theme package. | package |
| programs.obsidian.vaults.<name>.target | Path to target vault relative to the user's {env}`HOME`. | string |
| programs.offlineimap.enable | Whether to enable OfflineIMAP. | boolean |
| programs.offlineimap.extraConfig.default | Extra configuration options added to the {option}`DEFAULT` section. | attribute set of (string or signed integer or boolean) |
| programs.offlineimap.extraConfig.general | Extra configuration options added to the {option}`general` section. | attribute set of (string or signed integer or boolean) |
| programs.offlineimap.extraConfig.mbnames | Extra configuration options added to the `mbnames` section. | attribute set of (string or signed integer or boolean) |
| programs.offlineimap.package | The offlineimap package to use. Can be used to specify extensions. | package |
| programs.offlineimap.pythonFile | Python code that can then be used in other parts of the configuration. | strings concatenated with "\n" |
| programs.oh-my-posh.configFile | Path to a custom configuration path, can be json, yaml or toml. | null or string or absolute path |
| programs.oh-my-posh.enable | Whether to enable oh-my-posh, a prompt theme engine for any shell. | boolean |
| programs.oh-my-posh.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.oh-my-posh.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.oh-my-posh.enableNushellIntegration | Whether to enable Nushell integration. | boolean |
| programs.oh-my-posh.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.oh-my-posh.package | The oh-my-posh package to use. | package |
| programs.oh-my-posh.settings | Configuration written to {file}`$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. | JSON value |
| 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. | null or string |
| programs.onagre.enable | Whether to enable onagre. | boolean |
| programs.onagre.package | The onagre package to use. | null or package |
| programs.onagre.style | Configuration file to be written to theme.scss for setting Onagre's theme. The documentation can be found here: <https://github.com/onagre-launcher/onagre/wiki/Theming> | strings concatenated with "\n" |
| programs.onedrive.enable | Whether to enable onedrive. | boolean |
| programs.onedrive.package | The onedrive package to use. | null or package |
| programs.onedrive.settings | Configuration settings for Onedrive. All available options can be found at <https://github.com/abraunegg/onedrive/blob/master/config>. | attribute set of string |
| programs.onlyoffice.enable | Whether to enable onlyoffice. | boolean |
| programs.onlyoffice.package | The onlyoffice-desktopeditors package to use. | null or package |
| programs.onlyoffice.settings | Configuration settings for Onlyoffice. All configurable options can be deduced by enabling them through the GUI and observing the changes in ~/.config/onlyoffice/DesktopEditors.conf. | attribute set of (atom (null, bool, int, float or string)) |
| programs.opam.enable | Whether to enable Opam. | boolean |
| programs.opam.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.opam.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.opam.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.opam.package | The opam package to use. | package |
| programs.opencode.agents | Custom agents for opencode. This option can either be: - An attribute set defining agents - A path to a directory containing multiple agent files If an attribute set is used, the attribute name becomes the agent filename, and the value is either: - Inline content as a string (creates `opencode/agent/<name>.md`) - A path to a file (creates `opencode/agent/<name>.md`) If a path is used, it is expected to contain agent files. The directory is symlinked to {file}`$XDG_CONFIG_HOME/opencode/agent/`. | (attribute set of (strings concatenated with "\n" or absolute path)) or absolute path |
| programs.opencode.commands | Custom commands for opencode. This option can either be: - An attribute set defining commands - A path to a directory containing multiple command files If an attribute set is used, the attribute name becomes the command filename, and the value is either: - Inline content as a string (creates `opencode/command/<name>.md`) - A path to a file (creates `opencode/command/<name>.md`) If a path is used, it is expected to contain command files. The directory is symlinked to {file}`$XDG_CONFIG_HOME/opencode/command/`. | (attribute set of (strings concatenated with "\n" or absolute path)) or absolute path |
| programs.opencode.enable | Whether to enable opencode. | boolean |
| programs.opencode.enableMcpIntegration | Whether to integrate the MCP servers config from {option}`programs.mcp.servers` into {option}`programs.opencode.settings.mcp`. Note: Settings defined in {option}`programs.mcp.servers` are merged with {option}`programs.opencode.settings.mcp`, with OpenCode settings taking precedence. | boolean |
| programs.opencode.package | The opencode package to use. | null or package |
| programs.opencode.rules | You can provide global custom instructions to opencode. The value is either: - Inline content as a string - A path to a file containing the content This value is written to {file}`$XDG_CONFIG_HOME/opencode/AGENTS.md`. | strings concatenated with "\n" or absolute path |
| programs.opencode.settings | Configuration written to {file}`$XDG_CONFIG_HOME/opencode/opencode.json`. See <https://opencode.ai/docs/config/> for the documentation. Note, `"$schema": "https://opencode.ai/config.json"` is automatically added to the configuration. | JSON value |
| programs.opencode.skills | Custom agent skills for opencode. This option can either be: - An attribute set defining skills - A path to a directory containing multiple skill folders If an attribute set is used, the attribute name becomes the skill directory name, and the value is either: - Inline content as a string (creates `opencode/skill/<name>/SKILL.md`) - A path to a file (creates `opencode/skill/<name>/SKILL.md`) - A path to a directory (creates `opencode/skill/<name>/` with all files) This also accepts Nix store paths (e.g., source from a package), allowing you to reference subdirectories within a package source. If a path is used, it is expected to contain one folder per skill name, each containing a {file}`SKILL.md`. The directory is symlinked to {file}`$XDG_CONFIG_HOME/opencode/skill/`. See <https://opencode.ai/docs/skills/> for the documentation. | (attribute set of (strings concatenated with "\n" or absolute path or string)) or absolute path |
| programs.opencode.themes | Custom themes for opencode. This option can either be: - An attribute set defining themes - A path to a directory containing multiple theme files If an attribute set is used, the attribute name becomes the theme filename, and the value is either: - An attribute set that is converted to a JSON file (creates `opencode/themes/<name>.json`) - A path to a file (creates `opencode/themes/<name>.json`) If a path is used, it is expected to contain theme files. The directory is symlinked to {file}`$XDG_CONFIG_HOME/opencode/themes/`. Set `programs.opencode.settings.theme` to enable the custom theme. See <https://opencode.ai/docs/themes/> for the documentation. | (attribute set of (JSON value or absolute path)) or absolute path |
| programs.opencode.tools | Custom tools for opencode. This option can either be: - An attribute set defining tools - A path to a directory containing multiple tool files If an attribute set is used, the attribute name becomes the tool filename, and the value is either: - Inline content as a string (creates `opencode/tool/<name>.ts`) - A path to a file (creates `opencode/tool/<name>.ts` or `opencode/tool/<name>.js`) If a path is used, it is expected to contain tool files. The directory is symlinked to {file}`$XDG_CONFIG_HOME/opencode/tool/`. See <https://opencode.ai/docs/tools/> for the documentation. | (attribute set of (strings concatenated with "\n" or absolute path)) or absolute path |
| programs.opencode.web.enable | Whether to enable opencode web service. | boolean |
| programs.opencode.web.extraArgs | Extra arguments to pass to the opencode web command. These arguments override the "server" options defined in the configuration file. See <https://opencode.ai/docs/web/#config-file> for available options. | list of string |
| 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 {file}`$XDG_CONFIG_HOME/openstack/clouds.yaml`. See <https://docs.openstack.org/python-openstackclient/latest/configuration/index.html#clouds-yaml>. | open submodule of (YAML 1.1 value) |
| programs.openstackclient.enable | Whether to enable OpenStack command-line client. | boolean |
| programs.openstackclient.package | The openstackclient package to use. | null or package |
| programs.openstackclient.publicClouds | Public information about clouds. Configuration written to {file}`$XDG_CONFIG_HOME/openstack/clouds-public.yaml`. See <https://docs.openstack.org/python-openstackclient/latest/configuration/index.html#clouds-public-yaml>. | open submodule of (YAML 1.1 value) |
| programs.opkssh.enable | Whether to enable enable the OpenPubkey SSH client. | boolean |
| programs.opkssh.package | The opkssh package to use. | null or package |
| programs.opkssh.settings | Configuration written to {file}`$HOME/.opk/config.yml`. See <https://github.com/openpubkey/opkssh/blob/main/docs/config.md#client-config-opkconfigyml>. | YAML 1.1 value |
| programs.pandoc.citationStyles | List of .csl files to install. | list of absolute path |
| 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). | JSON value |
| programs.pandoc.defaultsFile | Resulting defaults file. | absolute path |
| programs.pandoc.enable | Whether to enable pandoc. | boolean |
| programs.pandoc.finalPackage | Resulting package. | package |
| programs.pandoc.package | The pandoc package to use. | package |
| programs.pandoc.templates | Custom templates. | attribute set of absolute path |
| programs.papis.enable | Whether to enable papis. | boolean |
| programs.papis.libraries | Attribute set of papis libraries. | attribute set of (submodule) |
| programs.papis.libraries.<name>.isDefault | Whether this is a default library. For papis to function without explicit library selection (i.e. without `-l <library>` or `--pick-lib` flags) there must be a default library defined. Note this can be also defined (or overridden) on a local `$(pwd)/.papis.config` or via python `$XDG_CONFIG_HOME/papis/config.py` config file. | boolean |
| programs.papis.libraries.<name>.name | This library's name. | string |
| programs.papis.libraries.<name>.settings | Configuration for this library. | attribute set of (boolean or signed integer or string) |
| programs.papis.package | The papis package to use. | null or package |
| programs.papis.settings | Configuration written to {file}`$XDG_CONFIG_HOME/papis/config`. See <https://papis.readthedocs.io/en/latest/configuration.html> for supported values. | attribute set of (boolean or signed integer or string) |
| programs.parallel.enable | Whether to enable GNU Parallel. | boolean |
| programs.parallel.package | The parallel-full package to use. | null or package |
| programs.parallel.will-cite | Accept GNU Parallels citation policy: <https://www.gnu.org/software/parallel/parallel_design.html#citation-notice> | boolean |
| programs.password-store.enable | Whether to enable Password store. | boolean |
| programs.password-store.package | The pass package to use. Can be used to specify extensions. | package |
| programs.password-store.settings | The `pass` environment variables dictionary. See the "Environment variables" section of {manpage}`pass(1)` and the extension man pages for more information about the available keys. | attribute set of string |
| programs.patdiff.enable | Whether to enable the {command}`patdiff` differ. See <https://opensource.janestreet.com/patdiff/> | boolean |
| programs.patdiff.enableGitIntegration | Whether to enable git integration for patdiff. When enabled, patdiff will be configured as git's external diff tool. | boolean |
| programs.patdiff.package | The patdiff package to use. | package |
| programs.pay-respects.enable | Whether to enable pay-respects. | boolean |
| programs.pay-respects.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.pay-respects.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.pay-respects.enableNushellIntegration | Whether to enable Nushell integration. | boolean |
| programs.pay-respects.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.pay-respects.options | List of options to pass to pay-respects <shell>. | list of string |
| programs.pay-respects.package | The pay-respects package to use. | package |
| programs.pay-respects.rules | Runtime rule files written to {file}`$XDG_CONFIG_HOME/pay-respects/rules/<name>.toml`. Attribute names map to filenames. For example, setting `rules.cargo = { ... };` creates {file}`$XDG_CONFIG_HOME/pay-respects/rules/cargo.toml`. The filename must match the command name, except for `_PR_GENERAL`. See <https://github.com/iffse/pay-respects/blob/main/rules.md> for runtime rule syntax and behavior. Note that these rules are only applied when the runtime-rules module is available to `pay-respects`. | attribute set of (TOML value) |
| programs.pazi.enable | Whether to enable pazi. | boolean |
| programs.pazi.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.pazi.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.pazi.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.pazi.package | The pazi package to use. | package |
| programs.pet.enable | Whether to enable pet. | boolean |
| programs.pet.package | The pet package to use. | null or package |
| programs.pet.selectcmdPackage | The fzf package to use. The package needed for the {var}`settings.selectcmd`. | null or package |
| programs.pet.settings | Settings written to {file}`config.toml`. See the pet documentation for details. | TOML value |
| programs.pet.snippets | The snippets. | list of (submodule) |
| programs.pet.snippets.*.command | The command. | string |
| programs.pet.snippets.*.description | Description of the snippet. | string |
| programs.pet.snippets.*.output | Example output of the command. | string |
| programs.pet.snippets.*.tag | List of tags attached to the command. | list of string |
| programs.pgcli.enable | Whether to enable pgcli. | boolean |
| programs.pgcli.package | The pgcli package to use. | null or package |
| programs.pgcli.settings | Configuration written to {file}`$XDG_CONFIG_HOME/pgcli/config`. See <https://www.pgcli.com/config> for more information. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.pianobar.enable | Whether to enable Enable pianobar. | boolean |
| programs.pianobar.package | The pianobar package to use. | null or package |
| programs.pianobar.settings | Apply configurations for `pianobar` via key/value attributes. Note; it is recommended to use `sops-nix`, or similar, secrets management solution for providing `programs.pianobar.settings.password_command` value. | open submodule of attribute set of (atom (null, bool, int, float or string)) |
| programs.pianobar.settings.password_command | Command pianobar will use to access password for Pandora music service authentication | non-empty string |
| programs.pianobar.settings.user | Username or emaill address for Pandora music service authentication | non-empty string |
| programs.pidgin.enable | Whether to enable Pidgin messaging client. | boolean |
| programs.pidgin.package | The pidgin package to use. | package |
| programs.pidgin.plugins | Plugins that should be available to Pidgin. | unspecified value |
| programs.pimsync.enable | Whether to enable pimsync. | boolean |
| programs.pimsync.package | The pimsync package to use. | package |
| programs.pimsync.settings | Settings to be added to pimsync.conf. See {manpage}`pimsync.conf(5)`. | anything |
| programs.pistol.associations | Associations written to the Pistol configuration at {file}`$XDG_CONFIG_HOME/pistol/pistol.conf`. | list of (submodule) |
| programs.pistol.associations.*.command | Preview command for files matched by this association. | string |
| programs.pistol.associations.*.fpath | File path regex that this association should match. | string |
| programs.pistol.associations.*.mime | Mime type regex that this association should match. | string |
| programs.pistol.enable | Whether to enable file previewer for terminal file managers. | boolean |
| programs.pistol.package | The pistol package to use. | null or package |
| programs.piston-cli.enable | Whether to enable piston-cli, code runner. | boolean |
| programs.piston-cli.package | The piston-cli package to use. | package |
| programs.piston-cli.settings | Configuration written to {file}`$XDG_CONFIG_HOME/piston-cli/config.yml`. | YAML 1.1 value |
| programs.pls.enable | Whether to enable pls, a modern replacement for {command}`ls`. | boolean |
| programs.pls.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.pls.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.pls.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.pls.package | The pls package to use. | package |
| programs.poetry.enable | Whether to enable poetry. | boolean |
| programs.poetry.package | The poetry package to use. May be used to install custom poetry plugins. | null or package |
| programs.poetry.settings | Configuration written to {file}`$XDG_CONFIG_HOME/pypoetry/config.toml` on Linux or {file}`$HOME/Library/Application Support/pypoetry/config.toml` on Darwin. See <https://python-poetry.org/docs/configuration/> for more information. | TOML value |
| programs.powerline-go.enable | Whether to enable Powerline-go, a beautiful and useful low-latency prompt for your shell. | boolean |
| programs.powerline-go.extraUpdatePS1 | Shell code to execute after the prompt is set. | string |
| 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>. | null or (list of string) |
| 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. | null or (list of string) |
| programs.powerline-go.newline | Set to true if the prompt should be on a line of its own. | boolean |
| programs.powerline-go.package | The powerline-go package to use. | package |
| 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. | null or (attribute set of string) |
| programs.powerline-go.settings | This can be any key/value pair as described in <https://github.com/justjanne/powerline-go>. | attribute set of (boolean or signed integer or string or list of string) |
| programs.pqiv.enable | Whether to enable pqiv image viewer. | boolean |
| programs.pqiv.extraConfig | Extra lines to be added to {file}`$XDG_CONFIG_HOME/pqivrc`. See {manpage}`pqiv(1)` for a list of available options. | strings concatenated with "\n" |
| programs.pqiv.package | The pqiv package to use. | package |
| programs.pqiv.settings | Configuration written to {file}`$XDG_CONFIG_HOME/pqivrc`. See {manpage}`pqiv(1)` for a list of available options. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.prismlauncher.enable | Whether to enable Prism Launcher. | boolean |
| programs.prismlauncher.extraPackages | Additional theme packages to install to the user environment. Themes can be sourced from <https://github.com/PrismLauncher/Themes> and should install to `$out/share/PrismLauncher/{themes,iconthemes,catpacks}`. | list of package |
| programs.prismlauncher.icons | List of paths to instance icons. These will be linked in {file}`$XDG_DATA_HOME/PrismLauncher/icons` on Linux and {file}`~/Library/Application Support/PrismLauncher/icons` on macOS. | list of absolute path |
| programs.prismlauncher.package | The prismlauncher package to use. | null or package |
| programs.prismlauncher.settings | Configuration written to {file}`prismlauncher.cfg`. | attribute set of (INI atom (null, bool, int, float or string)) |
| programs.ptyxis.enable | Whether to enable ptyxis. | boolean |
| programs.ptyxis.package | The ptyxis package to use. | null or package |
| programs.ptyxis.palettes | Written to {file}`$XDG_CONFIG_HOME/org.gnome.Prompt/palettes/NAME.palette`. See <https://gitlab.gnome.org/chergert/ptyxis/-/tree/main/data/palettes> for more information. | attribute set of ((attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))) or absolute path or string) |
| programs.pubs.enable | Whether to enable pubs. | boolean |
| programs.pubs.extraConfig | Configuration using syntax written to {file}`$HOME/.pubsrc`. | strings concatenated with "\n" |
| programs.pubs.package | The pubs package to use. | package |
| programs.pyenv.enable | Whether to enable pyenv. | boolean |
| programs.pyenv.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.pyenv.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.pyenv.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.pyenv.package | The pyenv package to use. | package |
| programs.pyenv.rootDirectory | The pyenv root directory ({env}`PYENV_ROOT`). ::: {.note} This deviates from upstream, which uses {file}`$HOME/.pyenv`. The default path in Home Manager is set according to the XDG base directory specification. ::: | absolute path |
| programs.pylint.enable | Whether to enable the pylint Python linter. | boolean |
| programs.pylint.package | The pylint package to use. | package |
| programs.pylint.settings | The pylint configuration. | 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) |
| programs.pyradio.enable | Whether to enable pyradio. | boolean |
| programs.pyradio.package | The pyradio package to use. | null or package |
| programs.pyradio.settings | Options to add to the PyRadio {file}`config` file. See <https://github.com/coderholic/pyradio/blob/master/pyradio/config> for available options. | attribute set of (string or signed integer or boolean) |
| programs.pyradio.stations | Radio stations to add to the {file}`stations.csv` file. If empty, {file}`stations.csv` defaults to the built-in playlist. To add a group, add a station with the url set to "-" and the name set to the name of the group. Its order in the list will be where it appears in `pyradio`. | list of (submodule) |
| programs.pyradio.stations.*.buffering | Buffering configuration to apply to the station. | null or (submodule) |
| programs.pyradio.stations.*.buffering.bitrate | Bitrate of the stream in kbps (modify only if using MPlayer). | positive integer, meaning >0 |
| programs.pyradio.stations.*.buffering.seconds | Number of seconds to buffer the stream. | positive integer, meaning >0 |
| programs.pyradio.stations.*.encoding | Encoding of the station's metadata block. | string |
| programs.pyradio.stations.*.forceHttp | If enabled, the connection is forced to use http (note when false it can either use http or https). | boolean |
| programs.pyradio.stations.*.iconUrl | URL of an icon to be shown in desktop notifications. | string |
| programs.pyradio.stations.*.name | Display name of the radio station. | string |
| programs.pyradio.stations.*.profile | Name of the profile to use when using mpv or mplayer. | string |
| programs.pyradio.stations.*.url | Stream URL of the radio station. | string |
| programs.pyradio.stations.*.volume | Volume to use for the station. | integer between 0 and 130 (both inclusive) |
| programs.pywal.enable | Whether to enable pywal. | boolean |
| programs.pywal.package | The pywal package to use. | package |
| programs.qcal.defaultNumDays | Default number of days to show calendar entries for | positive integer, meaning >0 |
| programs.qcal.enable | Whether to enable qcal, a CLI calendar application. | boolean |
| programs.qcal.package | The qcal package to use. | null or package |
| programs.qcal.timezone | Timezone to display calendar entries in | (optionally newline-terminated) single-line string |
| programs.quickshell.activeConfig | The name of the config to use. If `null`, quickshell will attempt to use a config located in `$XDG_CONFIG_HOME/quickshell` instead of one of the named sub-directories. | null or string |
| programs.quickshell.configs | A set of configs to include in the quickshell config directory. The key is the name of the config. The configuration that quickshell should use can be specified with the `activeConfig` option. | attribute set of absolute path |
| programs.quickshell.enable | Whether to enable quickshell, a flexbile QtQuick-based desktop shell toolkit.. | boolean |
| programs.quickshell.package | The quickshell package to use. | null or package |
| programs.quickshell.systemd.enable | Whether to enable quickshell systemd service. | boolean |
| programs.quickshell.systemd.target | The systemd target that will automatically start quickshell. If you set this to a WM-specific target, make sure that systemd integration for that WM is enabled (e.g. `wayland.windowManager.hyprland.systemd.enable`). **This is typically true by default**. | string |
| programs.qutebrowser.aliases | Aliases for commands. | attribute set of string |
| programs.qutebrowser.enable | Whether to enable qutebrowser. | boolean |
| programs.qutebrowser.enableDefaultBindings | Disable to prevent loading default key bindings. | boolean |
| programs.qutebrowser.extraConfig | Extra lines added to qutebrowser {file}`config.py` file. | strings concatenated with "\n" |
| programs.qutebrowser.greasemonkey | Greasemonkey userscripts to add to qutebrowser's {file}`greasemonkey` directory. | list of package |
| 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`. | attribute set of attribute set of (null or strings concatenated with " ;; ") |
| 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. | attribute set of string |
| programs.qutebrowser.loadAutoconfig | Load settings configured via the GUI. | boolean |
| programs.qutebrowser.package | The qutebrowser package to use. | null or package |
| programs.qutebrowser.perDomainSettings | Options to set, as in `settings` but per domain. Refer to {option}`settings` for details. | attribute set of anything |
| programs.qutebrowser.quickmarks | Quickmarks to add to qutebrowser's {file}`quickmarks` file. Note that when Home Manager manages your quickmarks, you cannot edit them at runtime. | attribute set of string |
| 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`. | attribute set of string |
| programs.qutebrowser.settings | Options to add to qutebrowser {file}`config.py` file. See <https://qutebrowser.org/doc/help/settings.html> for options. | attribute set of anything |
| programs.radicle.cli.package | The radicle-node package to use. | package |
| programs.radicle.enable | Whether to enable Radicle. | boolean |
| programs.radicle.settings | Radicle configuration, written to `~/.radicle/config.json. | open submodule of (JSON value) |
| programs.radicle.settings.node.alias | Human readable alias for your node. When running 'rad auth' for the first time, you need to use the exact same alias, otherwise 'rad auth' will fail because it cannot write the configuration file in your home directory (which is generated by nix). | string |
| programs.radicle.settings.node.listen | Addresses to bind to and listen for inbound connections. | list of string |
| programs.radicle.settings.publicExplorer | HTTPS URL pattern used to generate links to view content on Radicle via the browser. | string |
| programs.radicle.uri.rad.browser.enable | Whether to enable `rad:`-URI handling by web browser | unspecified value |
| programs.radicle.uri.rad.browser.preferredNode | The hostname of an instance of `radicle-node`, reachable via HTTPS. | string |
| programs.radicle.uri.rad.vscode.enable | Whether to enable `rad:`-URI handling by VSCode. | boolean |
| programs.radicle.uri.rad.vscode.extension | The unique identifier of the VSCode extension that should handle `rad:`-URIs. | string |
| programs.radicle.uri.web-rad.browser | Name of the XDG Desktop Entry for your browser. LibreWolf, Firefox and Chromium configured via home-manager will be detected automatically. The value of this option should likely be the same as the output of `xdg-mime query default x-scheme-handler/https`. | null or string |
| programs.radicle.uri.web-rad.enable | Whether to enable `web+rad:`-URI handling by web browser. | boolean |
| programs.radio-active.aliases | Key/value pairs where the key is name of radio station and value is URL. | attribute set of non-empty string |
| programs.radio-active.enable | Whether to enable Enable installing radio-active and writing configuration file. | boolean |
| programs.radio-active.package | The radio-active package to use. | null or package |
| programs.radio-active.settings | Declare-able configurations for radio-active written to {file}`$XDG_CONFIG_HOME/radio-active/configs.ini`. | attribute set of attribute set of (non-empty string or (nonnegative integer or floating point number, meaning >=0)) |
| programs.radio-cli.enable | Whether to enable radio-cli. | boolean |
| programs.radio-cli.package | The radio-cli package to use. | null or package |
| programs.radio-cli.settings | Configuration settings for radio-cli. For an example config, refer to: <https://github.com/margual56/radio-cli/blob/main/config.json> | JSON value |
| programs.ranger.aliases | Aliases written to {file}`$XDG_CONFIG_HOME/ranger/rc.conf`. | attribute set of string |
| programs.ranger.enable | Whether to enable ranger file manager. | boolean |
| programs.ranger.extraConfig | Extra configuration lines to add to {file}`$XDG_CONFIG_HOME/ranger/rc.conf`. | strings concatenated with "\n" |
| programs.ranger.extraPackages | Extra packages added to ranger. | list of package |
| programs.ranger.mappings | Mappings written to {file}`$XDG_CONFIG_HOME/ranger/rc.conf`. | attribute set of string |
| programs.ranger.package | The ranger package to use. | null or package |
| programs.ranger.plugins | List of files to be added to {file}`$XDG_CONFIG_HOME/ranger/plugins/`. | list of (submodule) |
| programs.ranger.plugins.*.name | Name of the plugin linked to {file}`$XDG_CONFIG_HOME/ranger/plugins/`. In the case of a single-file plugin, it must also have `.py` suffix. | string |
| programs.ranger.plugins.*.src | The plugin file or directory. | absolute path |
| programs.ranger.rifle | Settings written to {file}`$XDG_CONFIG_HOME/ranger/rifle.conf`. | list of (submodule) |
| programs.ranger.rifle.*.command | A command to run for the matching file. | string |
| programs.ranger.rifle.*.condition | A condition to match a file. | string |
| programs.ranger.settings | Settings written to {file}`$XDG_CONFIG_HOME/ranger/rc.conf`. | attribute set of (boolean or floating point number or signed integer or string) |
| programs.rbenv.enable | Whether to enable rbenv. | boolean |
| programs.rbenv.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.rbenv.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.rbenv.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.rbenv.package | The rbenv package to use. | package |
| programs.rbenv.plugins | rbenv plugins to install in {file}`$HOME/.rbenv/plugins/`. See <https://github.com/rbenv/rbenv/wiki/Plugins> for the full list of plugins. | list of (submodule) |
| programs.rbenv.plugins.*.name | Name of the plugin. | string |
| programs.rbenv.plugins.*.src | Path to the plugin folder. | absolute path |
| programs.rbw.enable | Whether to enable rbw, a CLI Bitwarden client. | boolean |
| programs.rbw.package | The rbw package to use. Package providing the {command}`rbw` tool and its {command}`rbw-agent` daemon. | package |
| programs.rbw.settings | rbw configuration, if not defined the configuration will not be managed by Home Manager. | null or (open submodule of (JSON value)) |
| programs.rbw.settings.base_url | The base-url for a self-hosted bitwarden installation. | null or string |
| programs.rbw.settings.email | The email address for your bitwarden account. | string |
| programs.rbw.settings.identity_url | The identity url for your bitwarden installation. | null or string |
| programs.rbw.settings.lock_timeout | The amount of time that your login information should be cached. | unsigned integer, meaning >=0 |
| 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: ```nix services.dbus.packages = [ pkgs.gcr ]; ``` | null or package |
| programs.rclone.enable | Whether to enable rclone. | boolean |
| programs.rclone.package | The rclone package to use. | package |
| programs.rclone.remotes | An attribute set of remote configurations. Each remote consists of regular configuration options and optional secrets. See <https://rclone.org/docs/> for more information on configuring specific remotes. | attribute set of (submodule) |
| programs.rclone.remotes.<name>.config | Regular configuration options as described in rclone's documentation <https://rclone.org/docs/>. When specifying options follow the formatting process outlined here <https://rclone.org/docs/#config-config-file>, namely: - Remove the leading double-dash (--) from the rclone option name - Replace hyphens (-) with underscores (_) - Convert to lowercase - Use the resulting string as your configuration key For example, the rclone option "--mega-hard-delete" would use "hard_delete" as the config key. Security Note: Always use the {option}`secrets` option for sensitive data instead of the {option}`config` option to prevent exposing credentials to the world-readable Nix store. | An attribute set containing a remote type and options. |
| programs.rclone.remotes.<name>.mounts | An attribute set mapping remote file paths to their corresponding mount point configurations. For each entry, to perform the equivalent of `rclone mount remote:path/to/files /path/to/local/mount` — as described in the rclone documentation <https://rclone.org/commands/rclone_mount/> — we create a key-value pair like this: `"path/to/files/on/remote" = { ... }`. | attribute set of (submodule) |
| programs.rclone.remotes.<name>.mounts.<name>.autoMount | Whether to enable automatic mounting. | boolean |
| programs.rclone.remotes.<name>.mounts.<name>.enable | Whether to enable this mount. | boolean |
| programs.rclone.remotes.<name>.mounts.<name>.logLevel | Set the log-level. See: https://rclone.org/docs/#logging | null or one of "ERROR", "NOTICE", "INFO", "DEBUG" |
| programs.rclone.remotes.<name>.mounts.<name>.mountPoint | A local file path specifying the location of the mount point. | string |
| programs.rclone.remotes.<name>.mounts.<name>.options | An attribute set of option values passed to `rclone mount`. To set a boolean option, assign it `true` or `false`. See <https://nixos.org/manual/nixpkgs/stable/#function-library-lib.cli.toCommandLineShellGNU> for more details on the format. Some caching options are set by default, namely `vfs-cache-mode = "full"` and `cache-dir`. These can be overridden if desired. | attribute set of (null or boolean or signed integer or floating point number or string) |
| programs.rclone.remotes.<name>.secrets | Sensitive configuration values such as passwords, API keys, and tokens. These must be provided as file paths to the secrets, which will be read at activation time. These values are expanded in a shell context within a systemd service, so you can use bash features like command substitution or variable expansion (e.g. "${XDG_RUNTIME_DIR}" as used by agenix). | attribute set of string |
| programs.rclone.requiresUnit | The name of a systemd user service that must complete before the rclone configuration file is written. This is typically used when secrets are managed by an external provisioner whose service must run before the secrets are accessible. When using sops-nix or agenix, this value is set automatically to sops-nix.service or agenix.service, respectively. Set this manually if you use a different secret provisioner. | null or string |
| programs.readline.bindings | Readline bindings. | attribute set of string |
| programs.readline.enable | Whether to enable readline. | boolean |
| programs.readline.extraConfig | Configuration lines appended unchanged to the end of the {file}`~/.inputrc` file. | strings concatenated with "\n" |
| programs.readline.includeSystemConfig | Whether to include the system-wide configuration. | boolean |
| programs.readline.variables | Readline customization variable assignments. | attribute set of (string or signed integer or boolean) |
| programs.retext.enable | Whether to enable retext. | boolean |
| programs.retext.package | The retext package to use. | null or package |
| programs.retext.settings | Configuration settings for retext. All the available options can be found here: <https://github.com/retext-project/retext/blob/master/configuration.md>. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.retroarch.cores | RetroArch cores to enable. You can provide custom core packages. | attribute set of (submodule) |
| programs.retroarch.cores.<name>.enable | Whether to enable RetroArch core. | boolean |
| programs.retroarch.cores.<name>.package | The ‹name› package to use. | package |
| programs.retroarch.enable | Whether to enable RetroArch. | boolean |
| programs.retroarch.finalPackage | Resulting RetroArch package. | package |
| programs.retroarch.package | The retroarch package to use. | package |
| programs.retroarch.settings | RetroArch configuration settings. See <https://github.com/libretro/RetroArch/blob/master/retroarch.cfg> for available configuration options. | attribute set of string |
| programs.riff.commandLineOptions | Command line arguments to include in the <command>RIFF</command> environment variable. Run <command>riff --help</command> for a full list of options | list of string |
| programs.riff.enable | Enable the <command>riff</command> diff highlighter. See <link xlink:href="https://github.com/walles/riff" />. | boolean |
| programs.riff.enableGitIntegration | Whether to enable git integration for riff. When enabled, riff will be configured as git's pager for diff, log, and show commands. | boolean |
| programs.riff.package | The riffdiff package to use. | package |
| 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. | boolean |
| programs.rio.package | The rio package to use. | null or package |
| programs.rio.settings | Configuration written to {file}`$XDG_CONFIG_HOME/rio/config.toml`. See <https://raphamorim.io/rio/docs/#configuration-file> for options. | TOML value |
| programs.rio.themes | Theme files written to {file}`$XDG_CONFIG_HOME/rio/themes/`. See <https://rioterm.com/docs/config#building-your-own-theme> for supported values. | attribute set of (TOML value or absolute path) |
| programs.ripgrep-all.custom_adapters | Custom adapters that invoke external preprocessing scripts. See <link xlink:href="https://github.com/phiresky/ripgrep-all/wiki#custom-adapters"/>. | list of (submodule) |
| programs.ripgrep-all.custom_adapters.*.args | The output path hint; the placeholders are the same as for rga's `args` | list of string |
| programs.ripgrep-all.custom_adapters.*.binary | The path of the binary to run | absolute path |
| programs.ripgrep-all.custom_adapters.*.description | A description of this adapter; shown in rga's help | string |
| programs.ripgrep-all.custom_adapters.*.disabled_by_default | If true, the adapter will be disabled by default | null or boolean |
| programs.ripgrep-all.custom_adapters.*.extensions | The file extensions this adapter supports | list of string |
| programs.ripgrep-all.custom_adapters.*.match_only_by_mime | if --rga-accurate, only match by mime types, ignore extensions completely | null or boolean |
| programs.ripgrep-all.custom_adapters.*.mimetypes | If not null and --rga-accurate is enabled, mime type matching is used instead of file name matching | null or (list of string) |
| programs.ripgrep-all.custom_adapters.*.name | The unique identifier and name of this adapter; must only include a-z, 0-9, _ | string |
| programs.ripgrep-all.custom_adapters.*.output_path_hint | Setting this is useful if the output format is not plain text (.txt) but instead some other format that should be passed to another adapter | null or string |
| programs.ripgrep-all.custom_adapters.*.version | The version identifier used to key cache entries; change if the configuration or program changes | signed integer |
| programs.ripgrep-all.enable | Whether to enable ripgrep-all (rga). | boolean |
| programs.ripgrep-all.package | The ripgrep-all package to use. | null or package |
| 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. | list of string |
| programs.ripgrep.enable | Whether to enable Ripgrep. | boolean |
| programs.ripgrep.package | The ripgrep package to use. | null or package |
| programs.rizin.enable | Whether to enable Rizin. | boolean |
| programs.rizin.extraConfig | Extra run configuration written to {file}`rizinrc`. See <https://book.rizin.re/src/configuration/initial_scripts.html> for more information. | strings concatenated with "\n" |
| programs.rizin.package | The rizin package to use. | null or package |
| programs.rizin.settings | Set of runtime configuration values written to the initial runcommands file. See <https://book.rizin.re/src/configuration/initial_scripts.html> for more information and use [](#opt-programs.rizin.extraConfig) to manually add commands. | attribute set of (string or signed integer or boolean or floating point number) |
| programs.rmpc.config | Configuration settings for rmpc in the Rusty Object Notation format. All available options can be found in the official documentation at <https://mierak.github.io/rmpc/next/configuration/>. | strings concatenated with "\n" |
| programs.rmpc.enable | Whether to enable rmpc. | boolean |
| programs.rmpc.package | The rmpc package to use. | null or package |
| programs.rofi.configPath | Path where to put generated configuration file. | string |
| programs.rofi.cycle | Whether to cycle through the results list. | null or boolean |
| programs.rofi.enable | Whether to enable Rofi: A window switcher, application launcher and dmenu replacement. | boolean |
| programs.rofi.extraConfig | Additional configuration to add. | (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 |
| programs.rofi.finalPackage | Resulting customized rofi package. | package |
| programs.rofi.font | Font to use. | null or string |
| programs.rofi.location | The location rofi appears on the screen. | one of "bottom", "bottom-left", "bottom-right", "center", "left", "right", "top", "top-left", "top-right" |
| programs.rofi.modes | Modes to enable. For custom modes see `man 5 rofi-script`. | list of (string or (submodule)) |
| programs.rofi.modes.*.name | Name used to reference the custom mode in the mode list. | string |
| programs.rofi.modes.*.path | Executable path for the custom rofi script mode. | string |
| programs.rofi.package | The rofi package to use. | package |
| programs.rofi.pass.enable | Whether to enable rofi integration with password-store. | boolean |
| 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>. | strings concatenated with "\n" |
| programs.rofi.pass.package | The rofi-pass package to use. | null or package |
| programs.rofi.pass.stores | Directory roots of your password-stores. | list of string |
| programs.rofi.plugins | List of rofi plugins to be installed. | list of package |
| programs.rofi.terminal | Path to the terminal which will be used to run console applications | null or string |
| 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 {command}`rofi-theme-selector` tool. | null or string or absolute 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) |
| programs.rofi.xoffset | Offset in the x-axis in pixels relative to the chosen location. | signed integer |
| programs.rofi.yoffset | Offset in the y-axis in pixels relative to the chosen location. | signed integer |
| programs.rtorrent.enable | Whether to enable rTorrent. | boolean |
| programs.rtorrent.extraConfig | Configuration written to {file}`$XDG_CONFIG_HOME/rtorrent/rtorrent.rc`. See <https://github.com/rakshasa/rtorrent/wiki/Config-Guide> for explanation about possible values. | strings concatenated with "\n" |
| programs.rtorrent.package | The rtorrent package to use. | null or package |
| programs.ruff.enable | Whether to enable ruff, an extremely fast Python linter and code formatter, written in Rust. | boolean |
| programs.ruff.package | The ruff package to use. | null or package |
| programs.ruff.settings | Ruff configuration. For available settings see <https://docs.astral.sh/ruff/settings>. | TOML value |
| programs.sagemath.configDir | Directory where the {file}`sage.init` file will be stored. Note that the upstream default is {file}`~/.sage`, but our default is to follow XDG. | string |
| programs.sagemath.dataDir | Location for {env}`DOT_SAGE`. Note that the upstream default is {file}`~/.sage`, but our default is to follow XDG. | string |
| programs.sagemath.enable | Whether to enable SageMath, a mathematics software system. | boolean |
| programs.sagemath.initScript | Contents of the {file}`init.sage` file that is loaded on startup. | strings concatenated with "\n" |
| programs.sagemath.package | The sage package to use. The SageMath package to use. | null or package |
| programs.sapling.aliases | Sapling aliases to define. | attribute set of string |
| programs.sapling.enable | Whether to enable Sapling. | boolean |
| programs.sapling.extraConfig | Additional configuration to add. | attribute set of anything |
| programs.sapling.package | The sapling package to use. | null or package |
| programs.sapling.userEmail | Default user email to use. | string |
| programs.sapling.userName | Default user name to use. | string |
| programs.satty.enable | Whether to enable Satty - Modern Screenshot Annotation. | boolean |
| programs.satty.package | The satty package to use. | null or package |
| programs.satty.settings | Configuration for Satty written to {file}`$XDG_CONFIG_HOME/satty/config.toml`. See the [Satty documentation](https://github.com/gabm/Satty#configuration-file) for available options. | TOML value |
| programs.sbt.baseUserConfigPath | Where the sbt configuration files should be located, relative {env}`HOME`. | string |
| programs.sbt.credentials | A list of credentials to define in the sbt configuration directory. | list of (submodule) |
| programs.sbt.credentials.*.host | The hostname of the repository you're authenticating to. | string |
| programs.sbt.credentials.*.passwordCommand | The command that provides the password or authentication token for the repository. | string |
| programs.sbt.credentials.*.realm | The realm of the repository you're authenticating to. | string |
| programs.sbt.credentials.*.user | The user you're using to authenticate. | string |
| programs.sbt.enable | Whether to enable sbt. | boolean |
| programs.sbt.package | The sbt package to use. | package |
| programs.sbt.plugins | A list of plugins to place in the sbt configuration directory. | list of (submodule) |
| programs.sbt.plugins.*.artifact | The name of the artifact. | string |
| programs.sbt.plugins.*.org | The organization the artifact is published under. | string |
| programs.sbt.plugins.*.version | The version of the plugin. | string |
| programs.sbt.pluginsExtra | A list of extra commands to put in plugins conf file. Use it in last resort when you can't use the `plugins` option. | list of string |
| 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. | list of (one of "local", "maven-central", "maven-local" or attribute set of string) |
| 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. | boolean |
| programs.scmpuff.enableAliases | Whether to enable aliases (e.g. gs, ga, gd, gco). | boolean |
| programs.scmpuff.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.scmpuff.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.scmpuff.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.scmpuff.package | The scmpuff package to use. | package |
| programs.screen.enable | Whether to enable screen. | boolean |
| programs.screen.package | The screen package to use. | null or package |
| programs.screen.screenrc | Config file for GNU Screen. All the details can be found here: <https://www.gnu.org/software/screen/manual/screen.html>. | null or absolute path or strings concatenated with "\n" |
| programs.script-directory.enable | Whether to enable script-directory. | boolean |
| programs.script-directory.package | The script-directory package to use. | package |
| programs.script-directory.settings | script-directory config, for options take a look at the [documentation](https://github.com/ianthehenry/sd#options) | attribute set of string |
| programs.senpai.config | Configuration for senpai. For a complete list of options, see {manpage}`senpai(5)`. | open submodule of attribute set of anything |
| 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. UR`ircs://`, `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. | string |
| programs.senpai.config.nickname | Your nickname, sent with a NICK IRC message. It mustn't contain spaces or colons (:). | string |
| programs.senpai.config.password | Your password, used for SASL authentication. Note that it will reside world-readable in the Nix store. | null or string |
| 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. | null or (list of string) |
| programs.senpai.enable | Whether to enable senpai. | boolean |
| programs.senpai.package | The senpai package to use. | package |
| programs.sesh.enable | Whether to enable the sesh terminal session manager. | boolean |
| programs.sesh.enableAlias | Whether to enable a shell alias `s` to quickly launch sessions. | boolean |
| programs.sesh.enableTmuxIntegration | Enable Tmux integration with sesh. | boolean |
| programs.sesh.fzfPackage | The fzf package to use. | null or package |
| programs.sesh.icons | Display icons next to results ({option}`--icons` argument). | boolean |
| programs.sesh.package | The sesh package to use. | package |
| programs.sesh.settings | Configuration for sesh, written to `~/.config/sesh/sesh.toml`. See the [sesh documentation](https://github.com/joshmedeski/sesh#configuration) for available options. | open submodule of (TOML value) |
| programs.sesh.tmuxKey | Keybinding for invoking sesh in Tmux. | string |
| programs.sesh.zoxidePackage | The zoxide package to use. | null or package |
| programs.sftpman.defaultSshKey | Path to the SSH key to be used by default. Can be overridden per host. | null or string |
| programs.sftpman.enable | Whether to enable sftpman, an application that handles sshfs/sftp file systems mounting. | boolean |
| programs.sftpman.mounts | The sshfs mount configurations written to {file}`$XDG_CONFIG_HOME/sftpman/mounts/`. | attribute set of (submodule) |
| programs.sftpman.mounts.<name>.authType | The authentication method to use. | one of "password", "publickey", "hostbased", "keyboard-interactive", "gssapi-with-mic", "authentication-agent" |
| programs.sftpman.mounts.<name>.beforeMount | Command to run before mounting. | string |
| programs.sftpman.mounts.<name>.host | The host to connect to. | string |
| programs.sftpman.mounts.<name>.mountDestPath | The path on the current machine where the remote path would be mounted. | null or string |
| programs.sftpman.mounts.<name>.mountOptions | Options to pass to sshfs. | list of string |
| programs.sftpman.mounts.<name>.mountPoint | The remote path to mount. | string |
| programs.sftpman.mounts.<name>.port | The port to connect to. | 16 bit unsigned integer; between 0 and 65535 (both inclusive) |
| programs.sftpman.mounts.<name>.sshKey | Path to the SSH key to use for authentication. Only applies if authMethod is `publickey`. | null or string |
| programs.sftpman.mounts.<name>.user | The username to authenticate with. | string |
| programs.sftpman.package | The sftpman package to use. | null or package |
| programs.sheldon.enable | Whether to enable sheldon. | boolean |
| programs.sheldon.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.sheldon.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.sheldon.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.sheldon.package | The sheldon package to use. | package |
| programs.sheldon.settings |
| TOML value |
| programs.sherlock.aliases | Defines custom aliases. Written to `sherlock_alias.json`. See <https://github.com/Skxxtz/sherlock/blob/main/docs/aliases.md> for more information. | JSON value |
| programs.sherlock.enable | Enable Sherlock, a fast and lightweight application launcher for Wayland. See <https://github.com/Skxxtz/sherlock> for more information. | boolean |
| programs.sherlock.ignore | A list of desktop entry IDs to ignore. Written to `sherlockignore`. See <https://github.com/Skxxtz/sherlock/blob/main/docs/sherlockignore.md> for more information. | strings concatenated with "\n" |
| programs.sherlock.launchers | Defines fallback launchers. Written to `fallback.json`. See <https://github.com/Skxxtz/sherlock/blob/main/docs/launchers.md> for more information. | JSON value |
| programs.sherlock.package | The sherlock package to use. | null or package |
| programs.sherlock.settings | Configuration for Sherlock. Written to `config.toml`. See <https://github.com/Skxxtz/sherlock/blob/main/docs/config.md> for available options. | TOML value |
| programs.sherlock.style | Custom CSS to style the Sherlock UI. Written to `main.css`. | strings concatenated with "\n" |
| programs.sherlock.systemd.enable | Whether to enable sherlock as a daemon. | boolean |
| programs.sioyek.bindings | Input configuration written to {file}`$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. | attribute set of (string or list of string) |
| programs.sioyek.config | Input configuration written to {file}`$XDG_CONFIG_HOME/sioyek/prefs_user.config`. See <https://github.com/ahrm/sioyek/blob/main/pdf_viewer/prefs.config>. | open submodule of attribute set of string |
| programs.sioyek.config.startup_commands | Commands to be run upon startup. Will be written to {file}`$XDG_CONFIG_HOME/sioyek/prefs_user.config`. See <https://github.com/ahrm/sioyek/blob/a4ce95fd968804fbf6ff3befcbe0d9b972bd754c/pdf_viewer/prefs.config#L116>. | string or list of string |
| programs.sioyek.enable | Whether to enable Sioyek, a PDF viewer designed for reading research papers and technical books. | boolean |
| programs.sioyek.package | The sioyek package to use. | package |
| programs.sketchybar.config | The sketchybar configuration. Can be specified as: 1. A string containing the configuration content directly 2. An attribute set with 'source' pointing to a directory containing the full configuration, and optionally 'recursive = true' to recursively copy all files 3. An attribute set with 'text' containing inline configuration When using a string or 'text', the appropriate shebang will be automatically added based on configType (bash or lua). When using a directory source, it should contain a file named "sketchybarrc" which serves as the main entry point. | null or strings concatenated with "\n" or (submodule) |
| programs.sketchybar.config.recursive | Whether to enable Whether to recursively link files from {option}`source` (if it is a directory) in `.config/sketchybar`. . | boolean |
| programs.sketchybar.config.source | The path to be linked to `.config/sketchybar` if {option}`source` is a directory, or to `.config/sketchybar/sketchybarrc` if it is a file. | null or absolute path |
| programs.sketchybar.config.text | Text to be included in `.config/sketchybar/sketchybarrc`. | strings concatenated with "\n" |
| programs.sketchybar.configType | The type of configuration to generate. Set to "bash" to use the standard bash configuration. Set to "lua" to use the Lua configuration via SbarLua. | one of "bash", "lua" |
| programs.sketchybar.enable | Whether to enable sketchybar. | boolean |
| programs.sketchybar.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. | function that evaluates to a(n) list of package |
| programs.sketchybar.extraPackages | Extra packages to add to PATH for the sketchybar service. | list of package |
| programs.sketchybar.includeSystemPath | Whether to include common system `PATH` in the wrapper. This allows sketchybar to access system binaries. | boolean |
| programs.sketchybar.luaPackage | The lua5_4 package to use. Lua interpreter to use when configType is lua. | null or package |
| programs.sketchybar.package | The sketchybar package to use. | package |
| programs.sketchybar.sbarLuaPackage | The sbarlua package to use. Required when using a lua configuration. | null or package |
| programs.sketchybar.service.enable | Whether to enable sketchybar service. | boolean |
| programs.sketchybar.service.errorLogFile | Absolute path to log all stderr output. | null or absolute path or string |
| programs.sketchybar.service.outLogFile | Absolute path to log all stdout output. | null or absolute path or string |
| programs.skim.changeDirWidgetCommand | The command that gets executed as the source for skim for the ALT-C keybinding. | null or string |
| programs.skim.changeDirWidgetOptions | Command line options for the ALT-C keybinding. | list of string |
| programs.skim.defaultCommand | The command that gets executed as the default source for skim when running. | null or string |
| programs.skim.defaultOptions | Extra command line options given to skim by default. | list of string |
| programs.skim.enable | Whether to enable skim - a command-line fuzzy finder. | boolean |
| programs.skim.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.skim.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.skim.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.skim.fileWidgetCommand | The command that gets executed as the source for skim for the CTRL-T keybinding. | null or string |
| programs.skim.fileWidgetOptions | Command line options for the CTRL-T keybinding. | list of string |
| programs.skim.historyWidgetOptions | Command line options for the CTRL-R keybinding. | list of string |
| programs.skim.package | The skim package to use. | package |
| programs.sm64ex.baserom | The path to the Super Mario 64 baserom to extract assets from. | null or absolute path |
| programs.sm64ex.enable | Whether to enable sm64ex. | boolean |
| programs.sm64ex.extraCompileFlags | Extra flags to pass to the compiler. See <https://github.com/sm64pc/sm64ex/wiki/Build-options> for more information. | null or (list of string) |
| programs.sm64ex.package | The sm64ex package to use. | null or package |
| programs.sm64ex.region | Your baserom's region. Note that only "us", "eu", and "jp" are supported. | null or one of "us", "eu", "jp" |
| programs.sm64ex.settings | Settings for sm64ex's {file}`$XDG_DATA_HOME/sm64pc/sm64config.txt` file. | null or (attribute set of (string or signed integer or boolean or list of string)) |
| programs.smug.enable | Whether to enable Smug session manager. | boolean |
| programs.smug.package | The smug package to use. | null or package |
| programs.smug.projects | Attribute set with project configurations. | attribute set of (submodule) |
| programs.smug.projects.<name>.beforeStart | Commands to execute before the tmux-session starts. | null or (list of string) |
| programs.smug.projects.<name>.env | Environment Variables to set in session. | null or (attribute set of string) |
| programs.smug.projects.<name>.root | Root path in filesystem of the smug project. This is where tmux changes its directory to. Application defaults to `$HOME`. | null or string |
| programs.smug.projects.<name>.stop | Commands to execute after the tmux-session is destroyed. | null or (list of string) |
| programs.smug.projects.<name>.windows | Windows to create in the project session | list of (submodule) |
| programs.smug.projects.<name>.windows.*.commands | Commands to execute when window starts. | null or (list of string) |
| programs.smug.projects.<name>.windows.*.layout | Layout of window when opening panes. | one of "main-horizontal", "main-vertical", "even-vertical", "even-horizontal", "tiled" |
| programs.smug.projects.<name>.windows.*.manual | Start window only manually, using the -w arg | null or boolean |
| programs.smug.projects.<name>.windows.*.name | Name of the tmux window; | string |
| programs.smug.projects.<name>.windows.*.panes | Panes to open in a window. | null or (list of (submodule)) |
| programs.smug.projects.<name>.windows.*.panes.*.commands | Commands to execute when pane starts. | null or (list of string) |
| programs.smug.projects.<name>.windows.*.panes.*.root | Root path of pane. This is relative to the path of the smug project. | null or string |
| programs.smug.projects.<name>.windows.*.panes.*.type | Type of pane. | one of "horizontal", "vertical" |
| programs.smug.projects.<name>.windows.*.root | Root path of window. This is relative to the path of the smug project. | null or string |
| programs.smug.projects.<name>.windows.*.selected | Whether this window should be selected by default at session start. | null or boolean |
| programs.spotify-player.actions | Configuration written to the `actions` field of {file}`$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. | list of (TOML value) |
| programs.spotify-player.enable | Whether to enable spotify-player. | boolean |
| programs.spotify-player.keymaps | Configuration written to the `keymaps` field of {file}`$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. | list of (TOML value) |
| programs.spotify-player.package | The spotify-player package to use. | null or package |
| programs.spotify-player.settings | Configuration written to {file}`$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. | TOML value |
| programs.spotify-player.themes | Configuration written to the `themes` field of {file}`$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. | list of (TOML value) |
| programs.sqls.enable | Whether to enable sqls, a SQL language server written in Go. | boolean |
| programs.sqls.package | The sqls package to use. | null or package |
| programs.sqls.settings | Configuration written to {file}`$XDG_CONFIG_HOME/sqls/config.yml`. See <https://github.com/lighttiger2505/sqls#db-configuration> for supported values. | YAML 1.1 value |
| programs.ssh.enable | Whether to enable SSH client configuration. | boolean |
| programs.ssh.enableDefaultConfig | Whether to enable or not the old default config values. This option will become deprecated in the future. For an equivalent, copy and paste the following code snippet in your config: programs.ssh.matchBlocks."*" = { forwardAgent = false; addKeysToAgent = "no"; compression = false; serverAliveInterval = 0; serverAliveCountMax = 3; hashKnownHosts = false; userKnownHostsFile = "~/.ssh/known_hosts"; controlMaster = "no"; controlPath = "~/.ssh/master-%r@%n:%p"; controlPersist = "no"; }; | boolean |
| programs.ssh.extraConfig | Extra configuration. | strings concatenated with "\n" |
| programs.ssh.extraOptionOverrides | Extra SSH configuration options that take precedence over any host specific configuration. | attribute set of string |
| programs.ssh.includes | File globs of ssh config files that should be included via the `Include` directive. See {manpage}`ssh_config(5)` for more information. | list of string |
| 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 {manpage}`ssh_config(5)` for more information. | DAG of submodule |
| programs.ssh.matchBlocks.<name>.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'). | null or string |
| programs.ssh.matchBlocks.<name>.addressFamily | Specifies which address family to use when connecting. | null or one of "any", "inet", "inet6" |
| programs.ssh.matchBlocks.<name>.certificateFile | Specifies files from which the user certificate is read. | (list of string) or null or string |
| programs.ssh.matchBlocks.<name>.checkHostIP | Check the host IP address in the {file}`known_hosts` file. | boolean |
| programs.ssh.matchBlocks.<name>.compression | Specifies whether to use compression. Omitted from the host block when `null`. | null or boolean |
| programs.ssh.matchBlocks.<name>.controlMaster | Configure sharing of multiple sessions over a single network connection. | null or one of "yes", "no", "ask", "auto", "autoask" |
| programs.ssh.matchBlocks.<name>.controlPath | Specify path to the control socket used for connection sharing. | null or string |
| programs.ssh.matchBlocks.<name>.controlPersist | Whether control socket should remain open in the background. | null or string |
| programs.ssh.matchBlocks.<name>.dynamicForwards | Specify dynamic port forwardings. See {manpage}`ssh_config(5)` for `DynamicForward`. | list of (submodule) |
| programs.ssh.matchBlocks.<name>.dynamicForwards.*.address | The address to bind to. | string |
| programs.ssh.matchBlocks.<name>.dynamicForwards.*.port | Specifies port number to bind to. | null or 16 bit unsigned integer; between 0 and 65535 (both inclusive) |
| programs.ssh.matchBlocks.<name>.extraOptions | Extra configuration options for the host. | attribute set of string |
| programs.ssh.matchBlocks.<name>.forwardAgent | Whether the connection to the authentication agent (if any) will be forwarded to the remote machine. | null or boolean |
| programs.ssh.matchBlocks.<name>.forwardX11 | Specifies whether X11 connections will be automatically redirected over the secure channel and {env}`DISPLAY` set. | boolean |
| programs.ssh.matchBlocks.<name>.forwardX11Trusted | Specifies whether remote X11 clients will have full access to the original X11 display. | boolean |
| programs.ssh.matchBlocks.<name>.hashKnownHosts | Indicates that {manpage}`ssh(1)` should hash host names and addresses when they are added to the known hosts file. | null or boolean |
| programs.ssh.matchBlocks.<name>.host | `Host` pattern used by this conditional block. See {manpage}`ssh_config(5)` for `Host` block details. This option is ignored if {option}`ssh.matchBlocks.*.match` if defined. | null or string |
| programs.ssh.matchBlocks.<name>.hostname | Specifies the real host name to log into. | null or string |
| programs.ssh.matchBlocks.<name>.identitiesOnly | Specifies that ssh should only use the authentication identity explicitly configured in the {file}`~/.ssh/config` files or passed on the ssh command-line, even if {command}`ssh-agent` offers more identities. | boolean |
| programs.ssh.matchBlocks.<name>.identityAgent | Specifies the location of the ssh identity agent. | (list of string) or null or string |
| programs.ssh.matchBlocks.<name>.identityFile | Specifies files from which the user identity is read. Identities will be tried in the given order. | (list of string) or null or string |
| programs.ssh.matchBlocks.<name>.kexAlgorithms | Specifies the available KEX (Key Exchange) algorithms. | null or (list of string) |
| programs.ssh.matchBlocks.<name>.localForwards | Specify local port forwardings. See {manpage}`ssh_config(5)` for `LocalForward`. | list of (submodule) |
| programs.ssh.matchBlocks.<name>.localForwards.*.bind | Local port binding options | submodule |
| programs.ssh.matchBlocks.<name>.localForwards.*.bind.address | The address to bind to. | string |
| programs.ssh.matchBlocks.<name>.localForwards.*.bind.port | Specifies port number to bind to. | null or 16 bit unsigned integer; between 0 and 65535 (both inclusive) |
| programs.ssh.matchBlocks.<name>.localForwards.*.host | Host port binding options | submodule |
| programs.ssh.matchBlocks.<name>.localForwards.*.host.address | The address to forward to. | null or string |
| programs.ssh.matchBlocks.<name>.localForwards.*.host.port | Specifies port number to forward to. | null or 16 bit unsigned integer; between 0 and 65535 (both inclusive) |
| programs.ssh.matchBlocks.<name>.match | `Match` block conditions used by this block. See {manpage}`ssh_config(5)` for `Match` block details. This option takes precedence over {option}`ssh.matchBlocks.*.host` if defined. | null or string |
| programs.ssh.matchBlocks.<name>.port | Specifies port number to connect on remote host. | null or 16 bit unsigned integer; between 0 and 65535 (both inclusive) |
| programs.ssh.matchBlocks.<name>.proxyCommand | The command to use to connect to the server. | null or string |
| programs.ssh.matchBlocks.<name>.proxyJump | The proxy host to use to connect to the server. | null or string |
| programs.ssh.matchBlocks.<name>.remoteForwards | Specify remote port forwardings. See {manpage}`ssh_config(5)` for `RemoteForward`. | list of (submodule) |
| programs.ssh.matchBlocks.<name>.remoteForwards.*.bind | Local port binding options | submodule |
| programs.ssh.matchBlocks.<name>.remoteForwards.*.bind.address | The address to bind to. | string |
| programs.ssh.matchBlocks.<name>.remoteForwards.*.bind.port | Specifies port number to bind to. | null or 16 bit unsigned integer; between 0 and 65535 (both inclusive) |
| programs.ssh.matchBlocks.<name>.remoteForwards.*.host | Host port binding options | submodule |
| programs.ssh.matchBlocks.<name>.remoteForwards.*.host.address | The address to forward to. | null or string |
| programs.ssh.matchBlocks.<name>.remoteForwards.*.host.port | Specifies port number to forward to. | null or 16 bit unsigned integer; between 0 and 65535 (both inclusive) |
| programs.ssh.matchBlocks.<name>.sendEnv | Environment variables to send from the local host to the server. | list of string |
| 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. | null or (positive integer, meaning >0) |
| programs.ssh.matchBlocks.<name>.serverAliveInterval | Set timeout in seconds after which response will be requested. | null or signed integer |
| programs.ssh.matchBlocks.<name>.setEnv | Environment variables and their value to send to the server. | attribute set of (string or absolute path or signed integer or floating point number) |
| programs.ssh.matchBlocks.<name>.user | Specifies the user to log in as. | null or string |
| programs.ssh.matchBlocks.<name>.userKnownHostsFile | Specifies one or more files to use for the user host key database, separated by whitespace. The default is {file}`~/.ssh/known_hosts`. | null or string |
| programs.ssh.package | The openssh package to use. By default, the client provided by your system is used. | null or package |
| programs.starship.configPath | Relative path to the user's home directory where the Starship config should be stored. | string |
| programs.starship.enable | Whether to enable starship. | boolean |
| programs.starship.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.starship.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.starship.enableInteractive | Only enable starship when the shell is interactive. This option is only valid for the Fish shell. Some plugins require this to be set to `false` to function correctly. | boolean |
| programs.starship.enableIonIntegration | Whether to enable Ion integration. | boolean |
| programs.starship.enableNushellIntegration | Whether to enable Nushell integration. | boolean |
| 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 | boolean |
| programs.starship.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.starship.package | The starship package to use. | package |
| programs.starship.presets | Preset files to be merged with settings in order. See <https://starship.rs/presets/> for the full list of available presets. | list of string |
| programs.starship.settings | Configuration written to {file}`$XDG_CONFIG_HOME/starship.toml`. See <https://starship.rs/config/> for the full list of options. | TOML value |
| programs.streamlink.enable | Whether to enable streamlink. | boolean |
| programs.streamlink.package | The streamlink package to use. | null or package |
| programs.streamlink.plugins | Streamlink plugins. If a source is set, the custom plugin will be linked to the data directory. Additional configuration specific to the plugin, if defined, will be written to the config directory, and override global settings. | attribute set of (submodule) |
| programs.streamlink.plugins.<name>.settings | Configuration for the specific plugin, written to {file}`$XDG_CONFIG_HOME/streamlink/config.<name>` (linux) or {file}`Library/Application Support/streamlink/config.<name>` (darwin). | attribute set of (boolean or signed integer or floating point number or string or list of (signed integer or floating point number or string)) |
| programs.streamlink.plugins.<name>.src | Source of the custom plugin. The value should be a path to the plugin file, or the text of the plugin code. Will be linked to {file}`$XDG_DATA_HOME/streamlink/plugins/<name>.py` (linux) or {file}`Library/Application Support/streamlink/plugins/<name>.py` (darwin). | null or absolute path or strings concatenated with "\n" |
| programs.streamlink.settings | Global configuration options for streamlink. It will be written to {file}`$XDG_CONFIG_HOME/streamlink/config` (linux) or {file}`Library/Application Support/streamlink/config` (darwin). | attribute set of (boolean or signed integer or floating point number or string or list of (signed integer or floating point number or string)) |
| programs.superfile.enable | Whether to enable superfile - Pretty fancy and modern terminal file manager. | boolean |
| programs.superfile.firstUseCheck | Enables the first time use popup. | boolean |
| programs.superfile.hotkeys | Hotkey configuration written to {file}`$XDG_CONFIG_HOME/superfile/hotkeys.toml` (linux) or {file}`Library/Application Support/superfile/hotkeys.toml` (darwin), See <https://superfile.netlify.app/configure/custom-hotkeys/> for supported values. | TOML value |
| programs.superfile.metadataPackage | The exiftool package to use. | null or package |
| programs.superfile.package | The superfile package to use. | null or package |
| programs.superfile.pinnedFolders | Entries that get added to the pinned panel. | list of (open submodule of (JSON value)) |
| programs.superfile.pinnedFolders.*.location | Location of the pinned entry. | absolute path |
| programs.superfile.pinnedFolders.*.name | Name that will be shown. | null or string |
| programs.superfile.settings | Configuration written to {file}`$XDG_CONFIG_HOME/superfile/config.toml` (linux) or {file}`Library/Application Support/superfile/config.toml` (darwin), See <https://superfile.netlify.app/configure/superfile-config/> for supported values. | TOML value |
| programs.superfile.themes | Theme files written to {file}`$XDG_CONFIG_HOME/superfile/theme/` (linux) or {file}`Library/Application Support/superfile/theme/` (darwin), See <https://superfile.netlify.app/configure/custom-theme/> for supported values. | attribute set of (TOML value or absolute path) |
| programs.superfile.zoxidePackage | The zoxide package to use. | null or package |
| programs.swappy.enable | Whether to enable swappy. | boolean |
| programs.swappy.package | The swappy package to use. | null or package |
| programs.swappy.settings | Configuration settings for swappy. All the available options can be found here: <https://github.com/jtheoof/swappy?tab=readme-ov-file#config> | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.sway-easyfocus.enable | Whether to enable sway-easyfocus. | boolean |
| programs.sway-easyfocus.package | The sway-easyfocus package to use. | null or package |
| programs.sway-easyfocus.settings | Configuration settings for sway-easyfocus. All available options can be found here: <https://github.com/edzdez/sway-easyfocus?tab=readme-ov-file#config-file>. | YAML 1.1 value |
| programs.swayimg.enable | Whether to enable swayimg. | boolean |
| programs.swayimg.package | The swayimg package to use. | package |
| programs.swayimg.settings | Configuration written to {file}`$XDG_CONFIG_HOME/swayimg/config`. See <https://github.com/artemsen/swayimg/blob/master/extra/swayimgrc> for a list of available options. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| 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: ```nix security.pam.services.swaylock = {}; ``` On non-NixOS, it is easiest to avoid incompatibility involving PAM by 1. stopping Home Manager from installing swaylock by setting {option}`programs.swaylock.package` to `null`; and 2. instead installing swaylock from your distribution's repository. | boolean |
| programs.swaylock.package | The swaylock package to use. | null or package |
| programs.swaylock.settings | Default arguments to {command}`swaylock`. An empty set disables configuration generation. | attribute set of (boolean or floating point number or signed integer or absolute path or string) |
| programs.swayr.enable | Whether to enable the swayr service. | boolean |
| programs.swayr.extraConfig | Extra configuration lines to append to the swayr configuration file. | strings concatenated with "\n" |
| programs.swayr.package | The swayr package to use. | package |
| programs.swayr.settings | Configuration included in `config.toml`. For available options see <https://git.sr.ht/~tsdh/swayr#swayr-configuration> | null or TOML value |
| programs.swayr.systemd.enable | Whether to enable swayr systemd integration. | boolean |
| programs.swayr.systemd.target | Systemd target to bind to. | string |
| programs.taskwarrior.colorTheme | Either one of the default provided theme as string, or a path to a theme configuration file. | null or string or absolute path |
| programs.taskwarrior.config | Key-value configuration written to {file}`$XDG_CONFIG_HOME/task/taskrc`. | attribute set of anything |
| programs.taskwarrior.dataLocation | Location where Task Warrior will store its data. Home Manager will attempt to create this directory. | string |
| programs.taskwarrior.enable | Whether to enable Task Warrior. | boolean |
| programs.taskwarrior.extraConfig | Additional content written at the end of {file}`$XDG_CONFIG_HOME/task/taskrc`. | strings concatenated with "\n" |
| programs.taskwarrior.package | The taskwarrior2 package to use. | null or package |
| programs.tealdeer.enable | Whether to enable Tealdeer. | boolean |
| programs.tealdeer.enableAutoUpdates | Whether to enable Auto updates. | boolean |
| programs.tealdeer.package | The tealdeer package to use. | package |
| programs.tealdeer.settings | Configuration written to {file}`$XDG_CONFIG_HOME/tealdeer/config.toml` on Linux or {file}`$HOME/Library/Application Support/tealdeer/config.toml` on Darwin. See <https://tealdeer-rs.github.io/tealdeer/config.html> for more information. | null or (open submodule of (TOML value)) |
| programs.tealdeer.settings.updates | Tealdeer can refresh the cache automatically when it is outdated. This behavior can be configured in the updates section. | open submodule of (TOML value) |
| programs.tealdeer.settings.updates.auto_update | Whether to enable auto-update. | boolean |
| 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 {var}`auto_update` is set to `false`. | positive integer, meaning >0 |
| programs.television.channels | Each set of channels are written to {file}`$XDG_CONFIG_HOME/television/cable/NAME.toml` See <https://alexpasmantier.github.io/television/docs/Users/channels> for options | attribute set of (TOML value) |
| programs.television.enable | Whether to enable television. | boolean |
| programs.television.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.television.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.television.enableNushellIntegration | Whether to enable Nushell integration. | boolean |
| programs.television.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.television.package | The television package to use. | null or package |
| programs.television.settings | Configuration written to {file}`$XDG_CONFIG_HOME/television/config.toml`. See <https://github.com/alexpasmantier/television/blob/main/.config/config.toml> for the full list of options. | TOML value |
| programs.terminator.config | configuration for terminator. For a list of all possible options refer to the {manpage}`terminator_config(5)` man page. | attribute set of anything |
| programs.terminator.enable | Whether to enable terminator, a tiling terminal emulator. | boolean |
| programs.terminator.package | The terminator package to use. | package |
| programs.termite.allowBold | Allow the output of bold characters when the bold escape sequence appears. | null or boolean |
| programs.termite.audibleBell | Have the terminal beep on the terminal bell. | null or boolean |
| programs.termite.backgroundColor | Background color value. | null or string |
| 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. | null or string |
| 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. | null or boolean |
| programs.termite.colorsExtra | Extra colors options that should be added to [colors] section. | strings concatenated with "\n" |
| 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. | null or one of "system", "on", "off" |
| programs.termite.cursorColor | Cursor color value. | null or string |
| programs.termite.cursorForegroundColor | Cursor foreground color value. | null or string |
| programs.termite.cursorShape | Specify how the cursor should look. Accepts block, ibeam and underline. | null or one of "block", "underline", "ibeam" |
| programs.termite.dynamicTitle | Settings dynamic title allows the terminal and the shell to update the terminal's title. | null or boolean |
| programs.termite.enable | Whether to enable Termite VTE-based terminal. | boolean |
| programs.termite.enableVteIntegration | Whether to enable Shell VTE integration. | boolean |
| programs.termite.filterUnmatchedUrls | Whether to hide url hints not matching input in url hints mode. | null or boolean |
| programs.termite.font | The font description for the terminal's font. | null or string |
| programs.termite.foregroundBoldColor | Foreground bold color value. | null or string |
| programs.termite.foregroundColor | Foreground color value. | null or string |
| programs.termite.fullscreen | Enables entering fullscreen mode by pressing F11. | null or boolean |
| programs.termite.geometry | The default window geometry for new terminal windows. | null or string |
| programs.termite.highlightColor | highlight color value. | null or string |
| programs.termite.hintsActiveBackgroundColor | Hints active background color value. | null or string |
| programs.termite.hintsActiveForegroundColor | Hints active foreground color value. | null or string |
| programs.termite.hintsBackgroundColor | Hints background color value. | null or string |
| programs.termite.hintsBorderColor | Hints border color value. | null or string |
| programs.termite.hintsBorderWidth | Hints border width. | null or string |
| programs.termite.hintsExtra | Extra hints options that should be added to [hints] section. | strings concatenated with "\n" |
| programs.termite.hintsFont | The font description for the hints font. | null or string |
| programs.termite.hintsForegroundColor | Hints foreground color value. | null or string |
| programs.termite.hintsPadding | Hints padding. | null or signed integer |
| programs.termite.hintsRoundness | Hints roundness. | null or string |
| programs.termite.iconName | The name of the icon to be used for the terminal process. | null or string |
| programs.termite.modifyOtherKeys | Emit escape sequences for extra keys, like the modifyOtherKeys resource for {manpage}`xterm(1)`. | null or boolean |
| programs.termite.mouseAutohide | Automatically hide the mouse pointer when you start typing. | null or boolean |
| programs.termite.optionsExtra | Extra options that should be added to [options] section. | strings concatenated with "\n" |
| programs.termite.package | The termite package to use. | null or package |
| programs.termite.scrollOnKeystroke | Scroll to the bottom automatically when a key is pressed. | null or boolean |
| programs.termite.scrollOnOutput | Scroll to the bottom when the shell generates output. | null or boolean |
| programs.termite.scrollbackLines | Set the number of lines to limit the terminal's scrollback. | null or signed integer |
| programs.termite.scrollbar | Scrollbar position. | null or one of "off", "left", "right" |
| programs.termite.searchWrap | Search from top again when you hit the bottom. | null or boolean |
| 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. | null or boolean |
| programs.termite.urgentOnBell | Sets the window as urgent on the terminal bell. | null or boolean |
| programs.tex-fmt.enable | Whether to enable tex-fmt. | boolean |
| programs.tex-fmt.package | The tex-fmt package to use. | null or package |
| programs.tex-fmt.settings | Configuration written to {file}`$XDG_CONFIG_HOME/tex-fmt/tex-fmt.toml` on Linux or {file}`$HOME/Library/Application Support/tex-fmt/tex-fmt.toml` on Darwin. See <https://github.com/WGUNDERWOOD/tex-fmt> and <https://github.com/WGUNDERWOOD/tex-fmt/blob/master/tex-fmt.toml> for more information. | TOML value |
| programs.texlive.enable | Whether to enable TeX Live. | boolean |
| programs.texlive.extraPackages | Extra packages available to TeX Live. | unspecified value |
| programs.texlive.package | Resulting customized TeX Live package. | package |
| programs.texlive.packageSet | TeX Live package set to use. | unspecified value |
| programs.thunderbird.enable | Whether to enable Thunderbird. | boolean |
| programs.thunderbird.nativeMessagingHosts | Additional packages containing native messaging hosts that should be made available to Thunderbird extensions. | list of package |
| programs.thunderbird.package | The thunderbird package to use. | package |
| programs.thunderbird.profiles | Attribute set of Thunderbird profiles. | attribute set of (submodule) |
| programs.thunderbird.profiles.<name>.accountsOrder | Custom ordering of accounts and local folders in Thunderbird's folder pane. The accounts are specified by their name. For declarative accounts, it must be the name of their attribute in `config.accounts.email.accounts` (or `config.programs.thunderbird.profiles.<name>.feedAccounts` for feed accounts). The local folders name can be found in the `mail.accountmanager.accounts` Thunderbird preference, for example with Settings > Config Editor ("account1" by default). Enabled accounts and local folders that aren't listed here appear in an arbitrary order after the ordered accounts. | list of string |
| programs.thunderbird.profiles.<name>.calendarAccountsOrder | Custom ordering of calendar accounts. The accounts are specified by their name. For declarative accounts, it must be the name of their attribute in `config.accounts.calendar.accounts`. Enabled accounts that aren't listed here appear in an arbitrary order after the ordered accounts. | list of string |
| programs.thunderbird.profiles.<name>.extensions | List of ‹name› add-on packages to install for this profile. Note that it is necessary to manually enable extensions inside ‹name› after the first installation. To automatically enable extensions add `"extensions.autoDisableScopes" = 0;` to [{option}`programs.thunderbird.profiles.<profile>.settings`](#opt-programs.thunderbird.profiles._name_.settings) | list of package |
| programs.thunderbird.profiles.<name>.extraConfig | Extra preferences to add to {file}`user.js`. | strings concatenated with "\n" |
| programs.thunderbird.profiles.<name>.feedAccounts | Attribute set of feed accounts. Feeds themselves have to be managed through Thunderbird's settings. This option allows feeds to coexist with declaratively managed email accounts. | attribute set of (submodule) |
| programs.thunderbird.profiles.<name>.feedAccounts.<name>.name | This feed account's name. | string |
| programs.thunderbird.profiles.<name>.isDefault | Whether this is a default profile. There must be exactly one default profile. | boolean |
| programs.thunderbird.profiles.<name>.name | This profile's name. | string |
| programs.thunderbird.profiles.<name>.search | Declarative search engine configuration. | submodule |
| programs.thunderbird.profiles.<name>.search.default | The default search engine used in the address bar and search bar. | null or string |
| programs.thunderbird.profiles.<name>.search.engines | Attribute set of search engine configurations. Engines that only have {var}`metaData` specified will be treated as builtin to Thunderbird. See [SearchEngine.jsm](https://searchfox.org/mozilla-central/rev/e3f42ec9320748b2aab3d474d1e47075def9000c/toolkit/components/search/SearchEngine.sys.mjs#890-923) 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, {var}`icon` is also a special option added by Home Manager to make it convenient to specify absolute icon paths. | attribute set of attribute set of (JSON value) |
| 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. | boolean |
| programs.thunderbird.profiles.<name>.search.meta.maintainers | List of maintainers of each module. This option should be defined at most once per module. The option value is not a list of maintainers, but an attribute set that maps module file names to lists of maintainers. | list of (maintainer) |
| 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. | list of string |
| programs.thunderbird.profiles.<name>.search.privateDefault | The default search engine used in the Private Browsing. | null or string |
| programs.thunderbird.profiles.<name>.settings | Preferences to add to this profile's {file}`user.js`. | Thunderbird preference (int, bool, string, and also attrs, list, float as a JSON string) |
| programs.thunderbird.profiles.<name>.userChrome | Custom Thunderbird user chrome CSS. | strings concatenated with "\n" |
| programs.thunderbird.profiles.<name>.userContent | Custom Thunderbird user content CSS. | strings concatenated with "\n" |
| programs.thunderbird.profiles.<name>.withExternalGnupg | Allow using external GPG keys with GPGME. | boolean |
| programs.thunderbird.settings | Attribute set of Thunderbird preferences to be added to all profiles. | Thunderbird preference (int, bool, string, and also attrs, list, float as a JSON string) |
| programs.timidity.enable | Whether to enable timidity, a software MIDI renderer. | boolean |
| programs.timidity.extraConfig | Extra configuration. | strings concatenated with "\n" |
| programs.timidity.finalPackage | Resulting package. | package |
| programs.timidity.package | The timidity package to use. | package |
| programs.tint2.enable | Whether to enable tint2, a simple, unobtrusive and light panel for Xorg. | boolean |
| programs.tint2.extraConfig | Commands for tint2 that will be add to the {file}`tint2rc` file. | strings concatenated with "\n" |
| programs.tint2.package | The tint2 package to use. | package |
| programs.tiny.enable | Whether to enable tiny, a TUI IRC client written in Rust. | boolean |
| programs.tiny.package | The tiny package to use. | package |
| programs.tiny.settings | Configuration written to {file}`$XDG_CONFIG_HOME/tiny/config.yml`. See <https://github.com/osa1/tiny/blob/master/crates/tiny/config.yml> for the default configuration. | YAML 1.1 value |
| programs.tirith.allowlist | List of allowed domains that bypass Tirith analysis. Written to `$XDG_CONFIG_HOME/tirith/allowlist`. | list of string |
| programs.tirith.enable | Whether to enable Tirith, a shell security monitor. | boolean |
| programs.tirith.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.tirith.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.tirith.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.tirith.package | The tirith package to use. | package |
| programs.tirith.policy | Tirith policy configuration. Written to `$XDG_CONFIG_HOME/tirith/policy.yaml`. See <https://github.com/sheeki03/tirith/blob/main/docs/cookbook.md> for policy examples. | YAML 1.1 value |
| programs.tmate.dsaFingerprint | Tmate server EdDSA key fingerprint. | null or string |
| programs.tmate.enable | Whether to enable tmate. | boolean |
| programs.tmate.extraConfig | Additional content written at the end of {file}`~/.tmate.conf`. | strings concatenated with "\n" |
| programs.tmate.host | Tmate server address. | null or string |
| programs.tmate.package | The tmate package to use. | package |
| programs.tmate.port | Tmate server port. | null or 16 bit unsigned integer; between 0 and 65535 (both inclusive) |
| programs.tmate.rsaFingerprint | Tmate server RSA key fingerprint. | null or string |
| programs.tmux.aggressiveResize | Resize the window to the size of the smallest session for which it is the current window. | boolean |
| programs.tmux.baseIndex | Base index for windows and panes. | unsigned integer, meaning >=0 |
| programs.tmux.clock24 | Use 24 hour clock. | boolean |
| programs.tmux.customPaneNavigationAndResize | Override the hjkl and HJKL bindings for pane navigation and resizing in VI mode. | boolean |
| programs.tmux.disableConfirmationPrompt | Disable confirmation prompt before killing a pane or window | boolean |
| programs.tmux.enable | Whether to enable tmux. | boolean |
| programs.tmux.escapeTime | Time in milliseconds for which tmux waits after an escape is input. | unsigned integer, meaning >=0 |
| programs.tmux.extraConfig | Additional configuration to add to {file}`tmux.conf`. | strings concatenated with "\n" |
| programs.tmux.focusEvents | On supported terminals, request focus events and pass them through to applications running in tmux. | boolean |
| programs.tmux.historyLimit | Maximum number of lines held in window history. | positive integer, meaning >0 |
| programs.tmux.keyMode | VI or Emacs style shortcuts. | one of "emacs", "vi" |
| programs.tmux.mouse | Whether to enable mouse support. | boolean |
| programs.tmux.newSession | Automatically spawn a session if trying to attach and none are running. | boolean |
| programs.tmux.package | The tmux package to use. | null or package |
| 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. | list of plugin packages or submodules |
| programs.tmux.plugins.*.extraConfig | Additional configuration for the associated plugin. | strings concatenated with "\n" |
| programs.tmux.plugins.*.plugin | The plugin package to use. Path of the configuration file to include. | package |
| programs.tmux.prefix | Set the prefix key. Overrules the "shortcut" option when set. | null or string |
| programs.tmux.resizeAmount | Number of lines/columns when resizing. | positive integer, meaning >0 |
| programs.tmux.reverseSplit | Reverse the window split shortcuts. | boolean |
| programs.tmux.secureSocket | Store tmux socket under {file}`/run`, which is more secure than {file}`/tmp`, but as a downside it doesn't survive user logout. | boolean |
| programs.tmux.sensibleOnTop | Run the sensible plugin at the top of the configuration. It is possible to override the sensible settings using the {option}`programs.tmux.extraConfig` option. | boolean |
| programs.tmux.shell | Set the default-shell tmux variable. | null or string |
| programs.tmux.shortcut | CTRL following by this key is used as the main shortcut. | string |
| programs.tmux.terminal | Set the $TERM variable. | string |
| programs.tmux.tmuxinator.enable | Whether to enable tmuxinator. | boolean |
| programs.tmux.tmuxp.enable | Whether to enable tmuxp. | boolean |
| programs.todoman.enable | Whether to enable todoman. | boolean |
| programs.todoman.extraConfig | Text for configuration of todoman. The syntax is Python. See [docs](`https://todoman.readthedocs.io/en/stable/man.html#id5`). for the full list of options. | strings concatenated with "\n" |
| programs.todoman.glob | The glob expansion which matches all directories relevant. | string |
| programs.todoman.package | The todoman package to use. | null or package |
| programs.tofi.enable | Whether to enable Tofi, a tiny dynamic menu for Wayland. | boolean |
| programs.tofi.package | The tofi package to use. | null or package |
| 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. | attribute set of (string or signed integer or boolean) |
| programs.topgrade.enable | Whether to enable topgrade. | boolean |
| programs.topgrade.package | The topgrade package to use. | package |
| programs.topgrade.settings | Configuration written to {file}`$XDG_CONFIG_HOME/topgrade.toml`. See <https://github.com/r-darwish/topgrade/wiki/Step-list> for the full list of options. | TOML value |
| programs.translate-shell.enable | Whether to enable translate-shell. | boolean |
| programs.translate-shell.package | The translate-shell package to use. | null or package |
| programs.translate-shell.settings | Options to add to {file}`$XDG_CONFIG_HOME/translate-shell/init.trans` file. See <https://github.com/soimort/translate-shell/wiki/Configuration> for options. | attribute set of (boolean or string or list of string) |
| programs.tray-tui.enable | Whether to enable tray-tui. | boolean |
| programs.tray-tui.package | The tray-tui package to use. | null or package |
| programs.tray-tui.settings | Configuration settings for tray-tui. All the available options can be found here: <https://github.com/Levizor/tray-tui/blob/main/config_example.toml> | TOML value |
| programs.trippy.enable | Whether to enable trippy. | boolean |
| programs.trippy.forceUserConfig | Whatever to force trippy to use user's config through the -c flag. This will prevent certain commands such as 'sudo' ignoring the configured settings. This will only work if you have 'programs.<shell>.enable' (bash, zsh, fish, ...), depending on your shell. | boolean |
| programs.trippy.package | The trippy package to use. | null or package |
| programs.trippy.settings | Configuration settings for trippy. All the available options can be found here: <https://trippy.rs/reference/configuration/> | TOML value |
| programs.twitch-tui.enable | Whether to enable twitch-tui. | boolean |
| programs.twitch-tui.package | The twitch-tui package to use. | null or package |
| programs.twitch-tui.settings | Configuration settings for twitch-tui. All the available options can be found here: <https://github.com/Xithrius/twitch-tui/blob/main/default-config.toml> | TOML value |
| programs.ty.enable | Whether to enable ty. | boolean |
| programs.ty.package | The ty package to use. | null or package |
| programs.ty.settings | Configuration written to {file}`$XDG_CONFIG_HOME/ty/ty.toml`. See <https://docs.astral.sh/ty/configuration/> and <https://docs.astral.sh/ty/reference/configuration/> for more information. | TOML value |
| programs.urxvt.enable | Whether to enable rxvt-unicode terminal emulator. | boolean |
| programs.urxvt.extraConfig | Additional configuration to add. | attribute set of anything |
| programs.urxvt.fonts | List of fonts to be used. | list of string |
| programs.urxvt.iso14755 | ISO14755 support for viewing and entering unicode characters. | boolean |
| programs.urxvt.keybindings | Mapping of keybindings to actions | attribute set of string |
| programs.urxvt.package | The rxvt-unicode package to use. | package |
| programs.urxvt.scroll.bar | Scrollbar settings. | submodule |
| programs.urxvt.scroll.bar.align | Scrollbar alignment. | one of "top", "bottom", "center" |
| programs.urxvt.scroll.bar.enable | Whether to enable the scrollbar | boolean |
| programs.urxvt.scroll.bar.floating | Whether to display an rxvt scrollbar without a trough. | boolean |
| programs.urxvt.scroll.bar.position | Scrollbar position. | one of "left", "right" |
| programs.urxvt.scroll.bar.style | Scrollbar style. | one of "rxvt", "plain", "next", "xterm" |
| programs.urxvt.scroll.keepPosition | Whether to keep a scroll position when TTY receives new lines. | boolean |
| programs.urxvt.scroll.lines | Number of lines to save in the scrollback buffer. | unsigned integer, meaning >=0 |
| programs.urxvt.scroll.scrollOnKeystroke | Whether to scroll to bottom on keyboard input. | boolean |
| programs.urxvt.scroll.scrollOnOutput | Whether to scroll to bottom on TTY output. | boolean |
| programs.urxvt.shading | Darken (0 to 99) or lighten (101 to 200) the transparent background. | integer between 0 and 200 (both inclusive) |
| programs.urxvt.transparent | Whether to enable pseudo-transparency. | boolean |
| programs.uv.enable | Whether to enable uv. | boolean |
| programs.uv.package | The uv package to use. | null or package |
| programs.uv.settings | Configuration written to {file}`$XDG_CONFIG_HOME/uv/uv.toml`. See <https://docs.astral.sh/uv/configuration/files/> and <https://docs.astral.sh/uv/reference/settings/> for more information. | TOML value |
| programs.vdirsyncer.enable | Whether to enable vdirsyncer. | boolean |
| programs.vdirsyncer.package | The vdirsyncer package to use. | package |
| programs.vdirsyncer.statusPath | A directory where vdirsyncer will store some additional data for the next sync. For more information, see the [vdirsyncer manual](https://vdirsyncer.pimutils.org/en/stable/config.html#general-section). | string |
| programs.vesktop.enable | Whether to enable Vesktop, an alternate client for Discord with Vencord built-in. | boolean |
| programs.vesktop.package | The vesktop package to use. | package |
| programs.vesktop.settings | Vesktop settings written to {file}`$XDG_CONFIG_HOME/vesktop/settings.json`. See <https://github.com/Vencord/Vesktop/blob/main/src/shared/settings.d.ts> for available options. | JSON value |
| programs.vesktop.vencord.extraQuickCss | Additional CSS rules. | strings concatenated with "\n" |
| programs.vesktop.vencord.settings | Vencord settings written to {file}`$XDG_CONFIG_HOME/vesktop/settings/settings.json`. See <https://github.com/Vendicated/Vencord/blob/main/src/api/Settings.ts> for available options. | JSON value |
| programs.vesktop.vencord.themes | Themes to add for Vencord, they can be enabled by setting `programs.vesktop.vencord.settings.enabledThemes` to `[ "THEME_NAME.css" ]` | attribute set of (strings concatenated with "\n" or absolute path) |
| programs.vesktop.vencord.useSystem | Whether to enable Vencord package from Nixpkgs. | boolean |
| programs.vicinae.enable | Whether to enable vicinae launcher daemon. | boolean |
| programs.vicinae.extensions | List of Vicinae extensions to install. You can use the `config.lib.vicinae.mkExtension` and `config.lib.vicinae.mkRayCastExtension` functions to create them, like: ```nix [ (config.lib.vicinae.mkExtension { name = "test-extension"; src = pkgs.fetchFromGitHub { owner = "schromp"; repo = "vicinae-extensions"; rev = "f8be5c89393a336f773d679d22faf82d59631991"; sha256 = "sha256-zk7WIJ19ITzRFnqGSMtX35SgPGq0Z+M+f7hJRbyQugw="; } + "/test-extension"; }) (config.lib.vicinae.mkRayCastExtension { name = "gif-search"; sha256 = "sha256-G7il8T1L+P/2mXWJsb68n4BCbVKcrrtK8GnBNxzt73Q="; rev = "4d417c2dfd86a5b2bea202d4a7b48d8eb3dbaeb1"; }) ], ``` | list of package |
| programs.vicinae.package | The vicinae package to use. | null or package |
| programs.vicinae.settings | Settings written as JSON to {file}`~/.config/vicinae/settings.json`. See {command}`vicinae config default`. | JSON value |
| programs.vicinae.systemd.autoStart | If the vicinae daemon should be started automatically | boolean |
| programs.vicinae.systemd.enable | Whether to enable vicinae systemd integration. | boolean |
| programs.vicinae.systemd.target | The systemd target that will automatically start the vicinae service. | string |
| programs.vicinae.themes | Theme settings to add to the themes folder in `~/.config/vicinae/themes`. See <https://docs.vicinae.com/theming/getting-started> for supported values. The attribute name of the theme will be the name of theme file, e.g. `base16-default-dark` will be `base16-default-dark.toml` (or `.json` if vicinae version is < 0.15.0). | TOML value |
| programs.vicinae.useLayerShell | Whether vicinae should use the layer shell. If you are using version 0.17 or newer, you should use {option}.programs.vicinae.settings.launcher_window.layer_shell.enabled = false instead. | boolean |
| programs.vifm.enable | Whether to enable vifm, a Vim-like file manager. | boolean |
| programs.vifm.extraConfig | Extra lines added to the {file}`$XDG_CONFIG_HOME/vifm/vifmrc` file. | strings concatenated with "\n" |
| programs.vifm.package | The vifm package to use. | null or package |
| programs.vim-vint.enable | Whether to enable the Vint linter for Vimscript. | boolean |
| programs.vim-vint.package | The vim-vint package to use. | null or package |
| programs.vim-vint.settings | Configuration written to {file}`$XDG_CONFIG_HOME/.vintrc.yaml` | YAML 1.1 value |
| programs.vim.defaultEditor | Whether to configure {command}`vim` as the default editor using the {env}`EDITOR` and {env}`VISUAL` environment variables. | boolean |
| programs.vim.enable | Whether to enable Vim. | boolean |
| programs.vim.extraConfig | Custom .vimrc lines | strings concatenated with "\n" |
| programs.vim.package | Resulting customized vim package | package |
| programs.vim.packageConfigurable | The vim-full package to use. Vim package to customize | package |
| programs.vim.plugins | List of vim plugins to install. To get a list of supported plugins run: {command}`nix-env -f '<nixpkgs>' -qaP -A vimPlugins`. Note: String values are deprecated, please use actual packages. | list of (string or package) |
| programs.vim.settings | At attribute set of Vim settings. The attribute names and corresponding values must be among the following supported options. {var}`background` : one of "dark", "light" {var}`backupdir` : list of string {var}`copyindent` : boolean {var}`directory` : list of string {var}`expandtab` : boolean {var}`hidden` : boolean {var}`history` : signed integer {var}`ignorecase` : boolean {var}`modeline` : boolean {var}`mouse` : one of "n", "v", "i", "c", "h", "a", "r" {var}`mousefocus` : boolean {var}`mousehide` : boolean {var}`mousemodel` : one of "extend", "popup", "popup_setpos" {var}`number` : boolean {var}`relativenumber` : boolean {var}`shiftwidth` : signed integer {var}`smartcase` : boolean {var}`tabstop` : signed integer {var}`undodir` : list of string {var}`undofile` : boolean See the Vim documentation for detailed descriptions of these options. Use [](#opt-programs.vim.extraConfig) to manually set any options not listed above. | submodule |
| programs.vinegar.enable | Whether to enable Vinegar. | boolean |
| programs.vinegar.package | The vinegar package to use. | null or package |
| programs.vinegar.settings | Configuration written to {file}`$XDG_CONFIG_HOME/vinegar/config.toml`. See <https://vinegarhq.org/Configuration/> for more information. | attribute set of (TOML value) |
| programs.visidata.enable | Whether to enable Visidata. | boolean |
| programs.visidata.package | The visidata package to use. | null or package |
| programs.visidata.visidatarc | Configuration settings and Python function declarations to be written to ~/.visidatarc. All available options can be found here: <https://www.visidata.org/docs/>. | strings concatenated with "\n" |
| programs.vivaldi.nativeMessagingHosts | List of Vivaldi Browser native messaging hosts to install. | list of package |
| programs.vivid.activeTheme | Active theme for vivid. | null or string |
| programs.vivid.colorMode | Color mode for vivid. | null or string or one of "8-bit", "24-bit" |
| programs.vivid.enable | Whether to enable vivid. | boolean |
| programs.vivid.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.vivid.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.vivid.enableNushellIntegration | Whether to enable Nushell integration. | boolean |
| programs.vivid.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.vivid.filetypes | Filetype database for vivid. You can find an example config at: <https://github.com/sharkdp/vivid/blob/master/config/filetypes.yml>. | YAML 1.1 value |
| programs.vivid.package | The vivid package to use. | null or package |
| programs.vivid.themes | An attribute set of vivid themes. Each value can either be a path to a theme file or an attribute set defining the theme directly (which will be converted from Nix to YAML). | attribute set of (absolute path or YAML 1.1 value) |
| programs.vscode.argvSettings | Configuration written to Visual Studio Code's {file}`argv.json`. This can be a JSON object or a path to a custom JSON file. | absolute path or JSON value |
| programs.vscode.dataFolderName | Override for extensions directory. This should match the `dataFolderName` field in the package's product.json. If `null`, then searches common locations for a product.json and uses the value from there. | string |
| programs.vscode.enable | Whether to enable Visual Studio Code. | boolean |
| programs.vscode.haskell.enable | Whether to enable Haskell integration for Visual Studio Code. | boolean |
| programs.vscode.haskell.hie.enable | Whether to enable Haskell IDE engine integration. | boolean |
| 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: ```nix nixpkgs.overlays = [ (self: super: { hie-nix = import ~/src/hie-nix {}; }) ] ``` | absolute path |
| programs.vscode.mutableExtensionsDir | Whether extensions can be installed or updated manually or by Visual Studio Code. Mutually exclusive to programs.vscode.profiles. | boolean |
| programs.vscode.nameShort | Override for package "short name", used for generating configuration. This should match the `shortName` field in the package's product.json. If `null`, then searches common locations for a product.json and uses the value from there. | string |
| programs.vscode.package | The vscode package to use. Version of Visual Studio Code to install. | package |
| programs.vscode.profiles | A list of all VSCode profiles. Mutually exclusive to programs.vscode.mutableExtensionsDir | attribute set of (submodule) |
| programs.vscode.profiles.<name>.enableExtensionUpdateCheck | Whether to enable update notifications for extensions. Can only be set for the default profile, but it applies to all profiles. | null or boolean |
| programs.vscode.profiles.<name>.enableMcpIntegration | Whether to integrate the MCP servers config from {option}`programs.mcp.servers` into {option}`programs.vscode.profiles.<name>.userMcp`. Note: Settings defined in {option}`programs.mcp.servers` are merged with {option}`programs.vscode.profiles.<name>.userMcp`, with VSCode settings taking precedence. | boolean |
| programs.vscode.profiles.<name>.enableUpdateCheck | Whether to enable update checks/notifications. Can only be set for the default profile, but it applies to all profiles. | null or boolean |
| programs.vscode.profiles.<name>.extensions | The extensions Visual Studio Code should be started with. | list of package |
| programs.vscode.profiles.<name>.globalSnippets | Defines global user snippets. | JSON value |
| programs.vscode.profiles.<name>.keybindings | Keybindings written to Visual Studio Code's {file}`keybindings.json`. This can be a JSON object or a path to a custom JSON file. | absolute path or list of (submodule) |
| programs.vscode.profiles.<name>.keybindings.*.args | Optional arguments for a command. | null or JSON value |
| programs.vscode.profiles.<name>.keybindings.*.command | The VS Code command to execute. | string |
| programs.vscode.profiles.<name>.keybindings.*.key | The key or key-combination to bind. | string |
| programs.vscode.profiles.<name>.keybindings.*.when | Optional context filter. | null or string |
| programs.vscode.profiles.<name>.languageSnippets | Defines user snippets for different languages. | JSON value |
| programs.vscode.profiles.<name>.userMcp | Configuration written to Visual Studio Code's {file}`mcp.json`. This can be a JSON object or a path to a custom JSON file. | absolute path or JSON value |
| programs.vscode.profiles.<name>.userSettings | Configuration written to Visual Studio Code's {file}`settings.json`. This can be a JSON object or a path to a custom JSON file. | absolute path or JSON value |
| programs.vscode.profiles.<name>.userTasks | Configuration written to Visual Studio Code's {file}`tasks.json`. This can be a JSON object or a path to a custom JSON file. | absolute path or JSON value |
| programs.wallust.enable | Whether to enable Wallust color scheme generator. | boolean |
| programs.wallust.package | The wallust package to use. | null or package |
| programs.wallust.settings | Configuration written to {file}`$XDG_CONFIG_HOME/wallust/wallust.toml`. See <https://explosion-mental.codeberg.page/wallust/config/> for documentation. | TOML value |
| programs.watson.enable | Whether to enable watson, a wonderful CLI to track your time. | boolean |
| programs.watson.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.watson.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.watson.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.watson.package | The watson package to use. | package |
| programs.watson.settings | Configuration written to {file}`$XDG_CONFIG_HOME/watson/config` on Linux or {file}`$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. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.waveterm.bookmarks | Bookmark definitions for WaveTerm. Details about the format and the options can be found here: <https://docs.waveterm.dev/config#webbookmarks-configuration>. | JSON value |
| programs.waveterm.enable | Whether to enable waveterm. | boolean |
| programs.waveterm.package | The waveterm package to use. | null or package |
| programs.waveterm.settings | Configuration settings for WaveTerm. All available options can be found here: <https://docs.waveterm.dev/config#configuration-keys>. | JSON value |
| programs.waveterm.themes | User defined terminal themes. All the details about available options and format can be found here: <https://docs.waveterm.dev/config#terminal-theming>. | JSON value |
| programs.waybar.enable | Whether to enable Waybar. | boolean |
| programs.waybar.package | The waybar package to use. | package |
| programs.waybar.settings | Configuration for Waybar, see <https://github.com/Alexays/Waybar/wiki/Configuration> for supported values. | (list of (open submodule of (JSON value))) or attribute set of (open submodule of (JSON value)) |
| 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. | null or absolute path or strings concatenated with "\n" |
| programs.waybar.systemd.enable | Whether to enable Waybar systemd integration. | boolean |
| programs.waybar.systemd.enableDebug | Whether to enable debug logging. | boolean |
| programs.waybar.systemd.enableInspect | Inspect objects and find their CSS classes, experiment with live CSS styles, and lookup the current value of CSS properties. See <https://developer.gnome.org/documentation/tools/inspector.html> | boolean |
| 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 {option}`wayland.windowManager.sway.systemd.enable`, otherwise the service may never be started. | string |
| programs.waylogout.enable | Whether or not to enable waylogout. | boolean |
| programs.waylogout.package | The waylogout package to use. | null or package |
| programs.waylogout.settings | Default arguments to {command}`waylogout`. An empty set disables configuration generation. | attribute set of (boolean or floating point number or signed integer or absolute path or string) |
| programs.wayprompt.enable | Whether to enable Wayprompt, a password-prompter for Wayland. | boolean |
| programs.wayprompt.package | The wayprompt package to use. | null or package |
| programs.wayprompt.settings | Configuration for wayprompt written to {file}`$XDG_CONFIG_HOME/wayprompt/config.ini`. See {manpage}`wayprompt(5)` for a list of available options. Note that colours can be either 6-hex-digit RGB or 8-hex-digit RGBA values. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.wezterm.colorSchemes | Attribute set of additional color schemes to be written to {file}`$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. | attribute set of (TOML value) |
| programs.wezterm.enable | Whether to enable wezterm. | boolean |
| programs.wezterm.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.wezterm.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.wezterm.extraConfig | Extra configuration written to {file}`$XDG_CONFIG_HOME/wezterm/wezterm.lua`. See <https://wezfurlong.org/wezterm/config/files.html> how to configure. | strings concatenated with "\n" |
| programs.wezterm.package | The wezterm package to use. | package |
| programs.wleave.enable | Whether to enable wleave. | boolean |
| programs.wleave.package | The wleave package to use. | null or package |
| programs.wleave.settings | Configuration for wleave. See <https://github.com/AMNatty/wleave#configuration> for supported values. | JSON value |
| programs.wleave.style | CSS style of wleave. See <https://github.com/AMNatty/wleave#styling> for the documentation. If the value is set to a path literal, then the path will be used as the css file. | null or absolute path or strings concatenated with "\n" |
| programs.wlogout.enable | Whether to enable wlogout. | boolean |
| programs.wlogout.layout | Layout configuration for wlogout, see <https://github.com/ArtsyMacaw/wlogout#config> for supported values. | list of (open submodule of (JSON value)) |
| programs.wlogout.layout.*.action | Command to execute when clicked. | absolute path or string |
| programs.wlogout.layout.*.circular | Make button circular. | null or boolean |
| programs.wlogout.layout.*.height | Relative height of tile. | null or integer or floating point number between 0 and 1 (both inclusive) |
| programs.wlogout.layout.*.keybind | Keyboard character to trigger this action. | string |
| programs.wlogout.layout.*.label | CSS label of button. | string |
| programs.wlogout.layout.*.text | Text displayed on button. | string |
| programs.wlogout.layout.*.width | Relative width of tile. | null or integer or floating point number between 0 and 1 (both inclusive) |
| programs.wlogout.package | The wlogout package to use. | null or package |
| 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. | null or absolute path or strings concatenated with "\n" |
| programs.wofi.enable | Whether to enable wofi: a launcher/menu program for wlroots based wayland compositors such as sway. | boolean |
| programs.wofi.package | The wofi package to use. | null or package |
| programs.wofi.settings | Configuration options for wofi. See {manpage}`wofi(5)`. | attribute set |
| programs.wofi.style | CSS style for wofi to use as a stylesheet. See {manpage}`wofi(7)` | null or strings concatenated with "\n" or absolute path |
| programs.workstyle.enable | Whether to enable Workstyle. | boolean |
| programs.workstyle.package | The workstyle package to use. | package |
| programs.workstyle.settings | Configuration for workstyle | TOML value |
| programs.workstyle.systemd.debug | Whether to enable Workstyle debug logs. | boolean |
| programs.workstyle.systemd.enable | Whether to enable Workstyle systemd integration. | boolean |
| programs.workstyle.systemd.target | The systemd target that will automatically start the Workstyle service. When setting this value to `"sway-session.target"`, make sure to also enable {option}`wayland.windowManager.sway.systemd.enable`, otherwise the service may never be started. | string |
| programs.xmobar.enable | Whether to enable Xmobar, a minimalistic status bar. | boolean |
| programs.xmobar.extraConfig | Extra configuration lines to add to {file}`$XDG_CONFIG_HOME/xmobar/.xmobarrc`. See <https://xmobar.org/#configuration> for options. | strings concatenated with "\n" |
| programs.xmobar.package | The xmobar package to use. | package |
| programs.xplr.enable | Whether to enable xplr, terminal UI based file explorer. | boolean |
| programs.xplr.extraConfig | Extra xplr configuration. | strings concatenated with "\n" |
| programs.xplr.package | The xplr package to use. | null or package |
| 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 {file}`~/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 {file}`$XDG_CONFIG_HOME/xplr/init.lua`. | null or (attribute set of (package or string)) |
| programs.yambar.enable | Whether to enable Yambar. | boolean |
| programs.yambar.package | The yambar package to use. | null or package |
| programs.yambar.settings | Configuration written to {file}`$XDG_CONFIG_HOME/yambar/config.yml`. See {manpage}`yambar(5)` for options. | YAML 1.1 value |
| programs.yambar.systemd.enable | Whether to enable yambar systemd integration. | boolean |
| programs.yambar.systemd.target | The systemd target that will automatically start the yambar service. When setting this value to `"sway-session.target"`, make sure to also enable {option}`wayland.windowManager.sway.systemd.enable`, otherwise the service may never be started. | string |
| programs.yarn.enable | Whether to enable management of yarn config. | boolean |
| programs.yarn.settings | Available configuration options for yarn see: <https://yarnpkg.com/configuration/yarnrc> | YAML 1.1 value |
| programs.yazi.enable | Whether to enable yazi. | boolean |
| programs.yazi.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.yazi.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.yazi.enableNushellIntegration | Whether to enable Nushell integration. | boolean |
| programs.yazi.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.yazi.extraPackages | Extra packages to make available to yazi. These packages will be added to the yazi wrapper's PATH. | list of package |
| programs.yazi.flavors | Pre-made themes. Values should be a package or path containing the required files. Will be linked to {file}`$XDG_CONFIG_HOME/yazi/flavors/<name>.yazi`. See <https://yazi-rs.github.io/docs/flavors/overview/> for documentation. | attribute set of (absolute path or package) |
| programs.yazi.initLua | The init.lua for Yazi itself. | null or absolute path or strings concatenated with "\n" |
| programs.yazi.keymap | Configuration written to {file}`$XDG_CONFIG_HOME/yazi/keymap.toml`. See <https://yazi-rs.github.io/docs/configuration/keymap> for the full list of options. | TOML value |
| programs.yazi.package | The yazi package to use. | null or package |
| programs.yazi.plugins | Lua plugins. Values should be a package or path containing an `init.lua` file. Will be linked to {file}`$XDG_CONFIG_HOME/yazi/plugins/<name>.yazi`. See <https://yazi-rs.github.io/docs/plugins/overview> for documentation. | attribute set of (absolute path or package) |
| programs.yazi.settings | Configuration written to {file}`$XDG_CONFIG_HOME/yazi/yazi.toml`. See <https://yazi-rs.github.io/docs/configuration/yazi> for the full list of options. | TOML value |
| programs.yazi.shellWrapperName | Name of the shell wrapper to be called. | string |
| programs.yazi.theme | Configuration written to {file}`$XDG_CONFIG_HOME/yazi/theme.toml`. See <https://yazi-rs.github.io/docs/configuration/theme> for the full list of options | TOML value |
| programs.yofi.blacklist | List of .desktop files yofi should ignore. | list of string |
| programs.yofi.enable | Whether to enable yofi. | boolean |
| programs.yofi.package | The yofi package to use. | null or package |
| programs.yofi.settings | Configuration settings for yofi. For all the available options see: <https://github.com/l4l/yofi/wiki/Configuration#main-configuration> | TOML value |
| programs.yt-dlp.enable | Whether to enable yt-dlp. | boolean |
| programs.yt-dlp.extraConfig | Extra configuration to add to {file}`$XDG_CONFIG_HOME/yt-dlp/config`. | strings concatenated with "\n" |
| programs.yt-dlp.package | The yt-dlp package to use. | package |
| programs.yt-dlp.settings | Configuration written to {file}`$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. | attribute set of (boolean or signed integer or string or list of (boolean or signed integer or string)) |
| programs.z-lua.enable | Whether to enable z.lua. | boolean |
| programs.z-lua.enableAliases | Whether to enable recommended z.lua aliases. | boolean |
| programs.z-lua.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.z-lua.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.z-lua.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.z-lua.options | List of options to pass to z.lua. | list of string |
| programs.z-lua.package | The z-lua package to use. | package |
| programs.zapzap.enable | Whether to enable zapzap. | boolean |
| programs.zapzap.package | The zapzap package to use. | null or package |
| programs.zapzap.settings | Configuration settings for zapzap. All the available options can be found by changing the settings from the GUI and looking at $XDG_CONFIG_HOME/ZapZap/ZapZap.conf. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| programs.zathura.enable | Whether to enable Zathura, a highly customizable and functional document viewer focused on keyboard interaction. | boolean |
| programs.zathura.extraConfig | Additional commands for zathura that will be added to the {file}`zathurarc` file. | strings concatenated with "\n" |
| programs.zathura.mappings | Add {option}`:map` mappings to zathura and make them permanent. See {manpage}`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";` | attribute set of string |
| programs.zathura.options | Add {option}`:set` command options to zathura and make them permanent. See {manpage}`zathurarc(5)` for the full list of options. | attribute set of (string or boolean or signed integer or floating point number) |
| programs.zathura.package | The zathura package to use. | package |
| programs.zed-editor.enable | Whether to enable Zed, the high performance, multiplayer code editor from the creators of Atom and Tree-sitter. | boolean |
| programs.zed-editor.extensions | A list of the extensions Zed should install on startup. Use the name of a repository in the [extension list](https://github.com/zed-industries/extensions/tree/main/extensions). | list of string |
| programs.zed-editor.extraPackages | Extra packages available to Zed. | list of package |
| programs.zed-editor.installRemoteServer | Whether to symlink the Zed's remote server binary to the expected location. This allows remotely connecting to this system from a distant Zed client. For more information, consult the ["Remote Server" section](https://wiki.nixos.org/wiki/Zed#Remote_Server) in the wiki. | boolean |
| programs.zed-editor.mutableUserDebug | Whether user debug configurations (debug.json) can be updated by zed. | boolean |
| programs.zed-editor.mutableUserKeymaps | Whether user keymaps (keymap.json) can be updated by zed. | boolean |
| programs.zed-editor.mutableUserSettings | Whether user settings (settings.json) can be updated by zed. | boolean |
| programs.zed-editor.mutableUserTasks | Whether user tasks (tasks.json) can be updated by zed. | boolean |
| programs.zed-editor.package | The zed-editor package to use. | null or package |
| programs.zed-editor.themes | Each theme is written to {file}`$XDG_CONFIG_HOME/zed/themes/theme-name.json` where the name of each attribute is the theme-name See <https://zed.dev/docs/extensions/themes> for the structure of a Zed theme | attribute set of (JSON value or absolute path or strings concatenated with "\n") |
| programs.zed-editor.userDebug | Configuration written to Zed's {file}`debug.json`. Global debug configurations for Zed's [Debugger](https://zed.dev/docs/debugger). | JSON value |
| programs.zed-editor.userKeymaps | Configuration written to Zed's {file}`keymap.json`. | JSON value |
| programs.zed-editor.userSettings | Configuration written to Zed's {file}`settings.json`. | JSON value |
| programs.zed-editor.userTasks | Configuration written to Zed's {file}`tasks.json`. [List of tasks](https://zed.dev/docs/tasks) that can be run from the command palette. | JSON value |
| programs.zellij.attachExistingSession | Whether to attach to the default session after being autostarted if a Zellij session already exists. Variable is checked in `auto-start` script. Requires shell integration to be enabled to have effect. | boolean |
| programs.zellij.enable | Whether to enable Zellij. | boolean |
| programs.zellij.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.zellij.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.zellij.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.zellij.exitShellOnExit | Whether to exit the shell when Zellij exits after being autostarted. Variable is checked in `auto-start` script. Requires shell integration to be enabled to have effect. | boolean |
| programs.zellij.extraConfig | Extra configuration lines to add to `$XDG_CONFIG_HOME/zellij/config.kdl`. This does not support zellij.yaml and it's mostly a workaround for https://github.com/nix-community/home-manager/issues/4659. | strings concatenated with "\n" |
| programs.zellij.layouts | Configuration written to {file}`$XDG_CONFIG_HOME/zellij/layouts/<layout>.kdl`. See <https://zellij.dev/documentation> for the full list of options. | attribute set of (YAML 1.1 value or absolute path or strings concatenated with "\n") |
| programs.zellij.package | The zellij package to use. | package |
| programs.zellij.settings | Configuration written to {file}`$XDG_CONFIG_HOME/zellij/config.kdl`. If `programs.zellij.package.version` is older than 0.32.0, then the configuration is written to {file}`$XDG_CONFIG_HOME/zellij/config.yaml`. See <https://zellij.dev/documentation> for the full list of options. | YAML 1.1 value |
| programs.zellij.themes | Each them is written to {file}`$XDG_CONFIG_HOME/zellij/themes/NAME.kdl`. See <https://zellij.dev/documentation/themes.html> for more information. | attribute set of (YAML 1.1 value or absolute path or strings concatenated with "\n") |
| programs.zk.enable | Whether to enable zk. | boolean |
| programs.zk.package | The zk package to use. | null or package |
| programs.zk.settings | Configuration written to {file}`$XDG_CONFIG_HOME/zk/config.toml`. See <https://github.com/mickael-menu/zk/blob/main/docs/config.md> for available options and documentation. | TOML value |
| programs.zoxide.enable | Whether to enable zoxide. | boolean |
| programs.zoxide.enableBashIntegration | Whether to enable Bash integration. | boolean |
| programs.zoxide.enableFishIntegration | Whether to enable Fish integration. | boolean |
| programs.zoxide.enableNushellIntegration | Whether to enable Nushell integration. | boolean |
| programs.zoxide.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| programs.zoxide.options | List of options to pass to zoxide init. | list of string |
| programs.zoxide.package | The zoxide package to use. | package |
| programs.zsh.antidote.enable | Whether to enable antidote - a zsh plugin manager. | boolean |
| programs.zsh.antidote.package | The antidote package to use. | null or package |
| programs.zsh.antidote.plugins | List of antidote plugins. | list of string |
| programs.zsh.antidote.useFriendlyNames | Whether to enable friendly names. | boolean |
| programs.zsh.autocd | Automatically enter into a directory if typed directly into shell. | null or boolean |
| programs.zsh.autosuggestion.enable | Enable zsh autosuggestions | boolean |
| programs.zsh.autosuggestion.highlight | Custom styles for autosuggestion highlighting. See {manpage}`zshzle(1)` for syntax. | null or string |
| 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`. Setting the option to an empty list `[]` will make ZSH_AUTOSUGGESTION_STRATEGY not be set automatically, allowing the variable to be declared in {option}`programs.zsh.localVariables` or {option}`programs.zsh.sessionVariables` | list of (one of "history", "completion", "match_prev_cmd") |
| programs.zsh.cdpath | List of paths to autocomplete calls to {command}`cd`. | list of string |
| programs.zsh.completionInit | Initialization commands to run when completion is enabled. | strings concatenated with "\n" |
| programs.zsh.defaultKeymap | The default base keymap to use. | null or one of "emacs", "vicmd", "viins" |
| programs.zsh.dirHashes | An attribute set that adds to named directory hash table. | attribute set of string |
| 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. | null or string |
| programs.zsh.enable | Whether to enable Z shell (Zsh). | boolean |
| programs.zsh.enableCompletion | Enable zsh completion. Don't forget to add ```nix environment.pathsToLink = [ "/share/zsh" ]; ``` to your system configuration to get completion for system packages (e.g. systemd). | boolean |
| programs.zsh.enableVteIntegration | Whether to enable integration with terminals using the VTE library. This will let the terminal track the current working directory. | boolean |
| programs.zsh.envExtra | Extra commands that should be added to {file}`.zshenv`. | strings concatenated with "\n" |
| programs.zsh.history | Options related to commands history configuration. | submodule |
| 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`. | boolean |
| programs.zsh.history.expireDuplicatesFirst | Expire duplicates first. | boolean |
| programs.zsh.history.extended | Save timestamp into the history file. | boolean |
| programs.zsh.history.findNoDups | Do not display a line previously found in the history file. | boolean |
| 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). | boolean |
| programs.zsh.history.ignoreDups | Do not enter command lines into the history list if they are duplicates of the previous event. | boolean |
| programs.zsh.history.ignorePatterns | Do not enter command lines into the history list if they match any one of the given shell patterns. | list of string |
| programs.zsh.history.ignoreSpace | Do not enter command lines into the history list if the first character is a space. | boolean |
| programs.zsh.history.path | History file location | string |
| programs.zsh.history.save | Number of history lines to save. | signed integer |
| programs.zsh.history.saveNoDups | Do not write duplicate entries into the history file. | boolean |
| programs.zsh.history.share | Share command history between zsh sessions. | boolean |
| programs.zsh.history.size | Number of history lines to keep. | signed integer |
| programs.zsh.historySubstringSearch | Options related to zsh-history-substring-search. | submodule |
| programs.zsh.historySubstringSearch.enable | Whether to enable history substring search. | boolean |
| 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]`. | (list of string) or string |
| 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]`. | (list of string) or string |
| programs.zsh.initContent | Content to be added to {file}`.zshrc`. To specify the order, use `lib.mkOrder`. Common order values: - 500 (mkBefore): Early initialization (replaces initExtraFirst) - 550: Before completion initialization (replaces initExtraBeforeCompInit) - 1000 (default): General configuration (replaces initExtra) - 1500 (mkAfter): Last to run configuration To specify both content in Early initialization and General configuration, use `lib.mkMerge`. e.g. initContent = let zshConfigEarlyInit = lib.mkOrder 500 "do something"; zshConfig = lib.mkOrder 1000 "do something"; in lib.mkMerge [ zshConfigEarlyInit zshConfig ]; | strings concatenated with "\n" |
| programs.zsh.localVariables | Extra local variables defined at the top of {file}`.zshrc`. | attribute set |
| programs.zsh.loginExtra | Extra commands that should be added to {file}`.zlogin`. | strings concatenated with "\n" |
| programs.zsh.logoutExtra | Extra commands that should be added to {file}`.zlogout`. | strings concatenated with "\n" |
| programs.zsh.oh-my-zsh | Options to configure oh-my-zsh. | submodule |
| 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. | string |
| programs.zsh.oh-my-zsh.enable | Whether to enable oh-my-zsh. | boolean |
| programs.zsh.oh-my-zsh.extraConfig | Extra settings for plugins. | strings concatenated with "\n" |
| programs.zsh.oh-my-zsh.package | The oh-my-zsh package to use. | package |
| programs.zsh.oh-my-zsh.plugins | List of oh-my-zsh plugins | list of string |
| programs.zsh.oh-my-zsh.theme | Name of the theme to be used by oh-my-zsh. | string |
| programs.zsh.package | The zsh package to use. | package |
| programs.zsh.plugins | Plugins to source in {file}`.zshrc`. | list of (submodule) |
| programs.zsh.plugins.*.completions | Paths of additional functions to add to {env}`fpath`. | list of string |
| programs.zsh.plugins.*.file | The plugin script to source. Required if the script name does not match {file}`name.plugin.zsh` using the plugin {option}`name` from the plugin {option}`src`. | string |
| programs.zsh.plugins.*.name | The name of the plugin. | string |
| programs.zsh.plugins.*.src | Path to the plugin folder. Will be added to {env}`fpath` and {env}`PATH`. | absolute path |
| programs.zsh.prezto | Options to configure prezto. | submodule |
| programs.zsh.prezto.autosuggestions.color | Set the query found color. | null or string |
| programs.zsh.prezto.caseSensitive | Set case-sensitivity for completion, history lookup, etc. | null or boolean |
| programs.zsh.prezto.color | Color output (automatically set to `false` on dumb terminals). | null or boolean |
| programs.zsh.prezto.completions.ignoredHosts | Set the entries to ignore in static {file}`/etc/hosts` for host completion. | list of string |
| programs.zsh.prezto.editor.dotExpansion | Automatically convert `....` to `../..` | null or boolean |
| programs.zsh.prezto.editor.keymap | Set the key mapping style to `emacs` or `vi`. | null or one of "emacs", "vi" |
| programs.zsh.prezto.editor.promptContext | Allow the Zsh prompt context to be shown. | null or boolean |
| programs.zsh.prezto.enable | Whether to enable prezto. | boolean |
| programs.zsh.prezto.extraConfig | Additional configuration to add to {file}`.zpreztorc`. | strings concatenated with "\n" |
| programs.zsh.prezto.extraFunctions | Set the Zsh functions to load ({manpage}`zshcontrib(1)`). | list of string |
| programs.zsh.prezto.extraModules | Set the Zsh modules to load ({manpage}`zshmodules(1)`). | list of string |
| programs.zsh.prezto.git.submoduleIgnore | Ignore submodules when they are `dirty`, `untracked`, `all`, or `none`. | null or one of "dirty", "untracked", "all", "none" |
| programs.zsh.prezto.gnuUtility.prefix | Set the command prefix on non-GNU systems. | null or string |
| programs.zsh.prezto.historySubstring.foundColor | Set the query found color. | null or string |
| programs.zsh.prezto.historySubstring.globbingFlags | Set the search globbing flags. | null or string |
| programs.zsh.prezto.historySubstring.notFoundColor | Set the query not found color. | null or string |
| programs.zsh.prezto.macOS.dashKeyword | Set the keyword used by {command}`mand` to open man pages in Dash.app. | null or string |
| programs.zsh.prezto.package | The prezto package to use. | package |
| programs.zsh.prezto.pmoduleDirs | Add additional directories to load prezto modules from. | list of absolute path |
| programs.zsh.prezto.pmodules | Set the Prezto modules to load (browse modules). The order matters. | list of string |
| 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. | null or one of "short", "long", "full" |
| 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. | null or boolean |
| 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. | null or string |
| programs.zsh.prezto.python.virtualenvAutoSwitch | Auto switch to Python virtualenv on directory change. | null or boolean |
| programs.zsh.prezto.python.virtualenvInitialize | Automatically initialize virtualenvwrapper if pre-requisites are met. | null or boolean |
| programs.zsh.prezto.ruby.chrubyAutoSwitch | Auto switch the Ruby version on directory change. | null or boolean |
| programs.zsh.prezto.screen.autoStartLocal | Auto start a session when Zsh is launched in a local terminal. | null or boolean |
| programs.zsh.prezto.screen.autoStartRemote | Auto start a session when Zsh is launched in a SSH connection. | null or boolean |
| programs.zsh.prezto.ssh.identities | Set the SSH identities to load into the agent. | list of string |
| programs.zsh.prezto.syntaxHighlighting.highlighters | Set syntax highlighters. By default, only the main highlighter is enabled. | list of string |
| programs.zsh.prezto.syntaxHighlighting.pattern | Set syntax pattern styles. | attribute set of string |
| programs.zsh.prezto.syntaxHighlighting.styles | Set syntax highlighting styles. | attribute set of string |
| programs.zsh.prezto.terminal.autoTitle | Auto set the tab and window titles. | null or boolean |
| programs.zsh.prezto.terminal.multiplexerTitleFormat | Set the multiplexer title format. | null or string |
| programs.zsh.prezto.terminal.tabTitleFormat | Set the tab title format. | null or string |
| programs.zsh.prezto.terminal.windowTitleFormat | Set the window title format. | null or string |
| programs.zsh.prezto.tmux.autoStartLocal | Auto start a session when Zsh is launched in a local terminal. | null or boolean |
| programs.zsh.prezto.tmux.autoStartRemote | Auto start a session when Zsh is launched in a SSH connection. | null or boolean |
| programs.zsh.prezto.tmux.defaultSessionName | Set the default session name. | null or string |
| programs.zsh.prezto.tmux.itermIntegration | Integrate with iTerm2. | null or boolean |
| programs.zsh.prezto.utility.safeOps | Enabled safe options. This aliases {command}`cp`, {command}`ln`, {command}`mv` and {command}`rm` so that they prompt before deleting or overwriting files. Set to `no` to disable this safer behavior. | null or boolean |
| programs.zsh.profileExtra | Extra commands that should be added to {file}`.zprofile`. | strings concatenated with "\n" |
| programs.zsh.sessionVariables | Environment variables that will be set for zsh session. | attribute set |
| programs.zsh.setOptions | Configure zsh options. See {manpage}`zshoptions(1)`. To unset an option, prefix it with "NO_". | list of string |
| 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. | attribute set of string |
| programs.zsh.shellGlobalAliases | Similar to [](#opt-programs.zsh.shellAliases), but are substituted anywhere on a line. | attribute set of string |
| programs.zsh.siteFunctions | Functions that are added to the Zsh environment and are subject to {command}`autoload`ing. The key is the name and the value is the body of the function to be autoloaded. They are also already marked for autoloading through `autoload -Uz`. | attribute set of strings concatenated with "\n" |
| programs.zsh.syntaxHighlighting | Options related to zsh-syntax-highlighting. | submodule |
| programs.zsh.syntaxHighlighting.enable | Whether to enable zsh syntax highlighting. | boolean |
| 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> Note: The "main" highlighter is always included automatically. If you'd like to exclude it, please configure with a higher priority using `mkForce`. | list of string |
| programs.zsh.syntaxHighlighting.package | The zsh-syntax-highlighting package to use. | package |
| 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> | attribute set of string |
| 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> | attribute set of string |
| programs.zsh.zplug.enable | Whether to enable zplug - a zsh plugin manager. | boolean |
| programs.zsh.zplug.package | The zplug package to use. | package |
| programs.zsh.zplug.plugins | List of zplug plugins. | list of (submodule) |
| programs.zsh.zplug.plugins.*.name | The name of the plugin. | string |
| programs.zsh.zplug.plugins.*.tags | The plugin tags. | list of string |
| programs.zsh.zplug.zplugHome | Path to zplug home directory. | absolute path |
| programs.zsh.zprof.enable | Enable zprof in your zshrc. | boolean |
| 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. | attribute set of string |
| programs.zsh.zsh-abbr.enable | Whether to enable zsh-abbr - zsh manager for auto-expanding abbreviations. | boolean |
| programs.zsh.zsh-abbr.globalAbbreviations | Similar to [](#opt-programs.zsh.zsh-abbr.abbreviations), but are expanded anywhere on a line. | attribute set of string |
| programs.zsh.zsh-abbr.package | The zsh-abbr package to use. | package |
| qt.enable | Whether to enable Qt 5 and 6 configuration. | boolean |
| qt.kde.settings | A set of values to be modified by {command}`kwriteconfig6`. The example value would cause the following command to run in the activation script: ``` shell kwriteconfig6 --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. | attribute set of (KDE option value) |
| qt.platformTheme | Deprecated. Use {option}`qt.platformTheme.name` instead. | null or one of "gtk", "gtk3", "gnome", "adwaita", "lxqt", "qtct", "kde", "kde6" or (submodule) |
| qt.platformTheme.name | Platform theme to use for Qt applications. Some examples are `gtk` : Use GTK theme with [`qtstyleplugins`](https://github.com/qt/qtstyleplugins) `gtk3` : Use [GTK3 integration](https://github.com/qt/qtbase/tree/dev/src/plugins/platformthemes/gtk3) for file picker dialogs, font and theme configuration `adwaita` : Use Adwaita theme with [`qadwaitadecorations`](https://github.com/FedoraQt/QAdwaitaDecorations) `gnome` (deprecated) : Use GNOME theme with [`qgnomeplatform`](https://github.com/FedoraQt/QGnomePlatform). Is no longer maintained so prefer `adwaita`. `lxqt` : Use LXQt theme style set using the [`lxqt-config-appearance`](https://github.com/lxqt/lxqt-config) application `qtct` : Use Qt style set using [`qt5ct`](https://github.com/desktop-app/qt5ct) and [`qt6ct`](https://github.com/trialuser02/qt6ct) applications `kde` : Use Qt settings from Plasma | null or string |
| qt.platformTheme.package | Theme package to be used in Qt5/Qt6 applications. Auto-detected from {option}`qt.platformTheme.name` if possible. See its documentation for available options. | null or package or list of package |
| qt.qt5ctSettings | Qtct configuration. Writes settings to `qt5ct/qt5ct.conf` file. Lists will be translated to comma-separated strings. Fonts must be quoted (see example). | null or (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)) |
| qt.qt6ctSettings | Qtct configuration. Writes settings to `qt6ct/qt6ct.conf` file. Lists will be translated to comma-separated strings. Fonts must be quoted (see example). | null or (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)) |
| 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`](https://github.com/FedoraQt/adwaita-qt) `breeze` : Use the Breeze style from [`breeze`](https://github.com/KDE/breeze) `bb10bright`, `bb10dark`, `cde`, `cleanlooks`, `gtk2`, `motif`, `plastique` : Use styles from [`qtstyleplugins`](https://github.com/qt/qtstyleplugins) `kvantum` : Use styles from [`kvantum`](https://github.com/tsujan/Kvantum) | null or string |
| qt.style.package | Theme package to be used in Qt5/Qt6 applications. Auto-detected from {option}`qt.style.name` if possible. See its documentation for available options. | null or package or list of package |
| services.activitywatch.enable | Whether to enable ActivityWatch, an automated time tracker. | boolean |
| services.activitywatch.extraOptions | Additional arguments to be passed on to the ActivityWatch server. | list of string |
| services.activitywatch.package | The activitywatch package to use. Specifically, this should be a package containing [the Rust implementation of ActivityWatch server](https://github.com/ActivityWatch/aw-server-rust). | package |
| services.activitywatch.settings | Configuration for `aw-server-rust` to be generated at {file}`$XDG_CONFIG_HOME/activitywatch/aw-server-rust/config.toml`. | TOML value |
| services.activitywatch.watchers | Watchers to be included with the service alongside with their configuration. Check with `systemctl --user status "*aw*"` If a configuration is set, a file will be generated in {file}`$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. ::: | attribute set of (submodule) |
| 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. | string |
| services.activitywatch.watchers.<name>.extraOptions | Extra arguments to be passed to the watcher executable. | list of string |
| services.activitywatch.watchers.<name>.name | The name of the watcher. This will be used as the directory name for {file}`$XDG_CONFIG_HOME/activitywatch/$NAME` when {option}`services.activitywatch.watchers.<name>.settings` is set. | string |
| services.activitywatch.watchers.<name>.package | The activitywatch package to use. The derivation containing the watcher executable. | package |
| services.activitywatch.watchers.<name>.settings | The settings for the individual watcher in TOML format. If set, a file will be generated at {file}`$XDG_CONFIG_HOME/activitywatch/$NAME/$FILENAME`. To set the basename of the settings file, see [](#opt-services.activitywatch.watchers._name_.settingsFilename). | TOML value |
| services.activitywatch.watchers.<name>.settingsFilename | The filename of the generated settings file. By default, this uses the watcher name to be generated at {file}`$XDG_CONFIG_HOME/activitywatch/$NAME/$NAME.toml`. This is useful in case the watcher requires a different name for the configuration file. | string |
| services.amberol.enable | Whether to enable Amberol music player as a daemon. Note, it is necessary to add ```nix programs.dconf.enable = true; ``` to your system configuration for the daemon to work correctly. | boolean |
| services.amberol.enableRecoloring | UI recoloring using the album art. | boolean |
| services.amberol.package | The amberol package to use. | package |
| services.amberol.replaygain | ReplayGain mode. | one of "album", "track", "off" |
| services.arrpc.enable | Whether to enable arrpc. | boolean |
| services.arrpc.package | The arrpc package to use. | package |
| services.arrpc.systemdTarget | Systemd target to bind to. | string |
| services.autorandr.enable | Whether to enable the Autorandr systemd service. This module is complementary to {option}`programs.autorandr` which handles the configuration (profiles). | boolean |
| services.autorandr.extraOptions | Extra options to pass to Autorandr. | list of string |
| services.autorandr.ignoreLid | Treat outputs as connected even if their lids are closed. | boolean |
| services.autorandr.matchEdid | Match displays based on edid instead of name. | boolean |
| services.autorandr.package | The autorandr package to use. | package |
| services.autotiling.enable | Whether to enable enable autotiling service. | boolean |
| services.autotiling.extraArgs | Extra arguments to pass to autotiling. | list of string |
| services.autotiling.package | The autotiling package to use. | package |
| services.autotiling.systemdTarget | Systemd target to bind to. | string |
| services.avizo.enable | Whether to enable avizo, a simple notification daemon. | boolean |
| services.avizo.package | The avizo package to use. | package |
| services.avizo.settings | The settings that will be written to the avizo configuration file. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| services.batsignal.enable | Whether to enable Batsignal Battery Daemon. | boolean |
| services.batsignal.extraArgs | Extra arguments to be passed to the batsignal executable. | list of string |
| services.batsignal.package | The batsignal package to use. | package |
| services.betterlockscreen.arguments | List of arguments appended to `./betterlockscreen --lock [args]` | list of string |
| services.betterlockscreen.enable | Whether to enable betterlockscreen, a screen-locker module. | boolean |
| services.betterlockscreen.inactiveInterval | Value used for {option}`services.screen-locker.inactiveInterval`. | signed integer |
| services.betterlockscreen.package | The betterlockscreen package to use. | package |
| services.blanket.enable | Whether to enable blanket. | boolean |
| services.blanket.package | The blanket package to use. | package |
| 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 ```nix services.blueman.enable = true; ``` | boolean |
| services.blueman-applet.package | The blueman package to use. | package |
| services.blueman-applet.systemdTargets | The systemd targets that will automatically start the blueman applet service. When setting this value to `["sway-session.target"]`, make sure to also enable {option}`wayland.windowManager.sway.systemd.enable`, otherwise the service may never be started. | list of string |
| services.borgmatic.enable | Whether to enable Borgmatic service. | boolean |
| 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 {manpage}`systemd.time(7)` for more information about the format. On Darwin, it must be one of: hourly, daily, weekly, monthly, semiannually, annually, which are implemented as defined in {manpage}`systemd.time(7)`. | string |
| services.cachix-agent.credentialsFile | Required file that needs to contain `CACHIX_AGENT_TOKEN=...`. | absolute path |
| services.cachix-agent.enable | Whether to enable Cachix Deploy Agent: <https://docs.cachix.org/deploy/>. | boolean |
| services.cachix-agent.host | Cachix URI to use. | null or string |
| services.cachix-agent.name | The unique agent name. | string |
| services.cachix-agent.package | The cachix package to use. | package |
| services.cachix-agent.profile | The Nix profile name. | string |
| services.cachix-agent.verbose | Whether to enable verbose output. | boolean |
| services.caffeine.enable | Whether to enable Caffeine service. | boolean |
| services.caffeine.package | The caffeine-ng package to use. | package |
| services.cbatticon.batteryId | ID of the battery to monitor. List with {command}`cbatticon -p`. Defaults to the first entry in the list. | null or string |
| services.cbatticon.commandCriticalLevel | Command to execute when the critical battery level is reached. | null or strings concatenated with "\n" |
| services.cbatticon.commandLeftClick | Command to execute when left clicking on the tray icon. | null or strings concatenated with "\n" |
| services.cbatticon.criticalLevelPercent | Critical level percentage of the battery in percent (without the percent symbol). | null or integer between 0 and 100 (both inclusive) |
| services.cbatticon.enable | Whether to enable cbatticon. | boolean |
| services.cbatticon.hideNotification | Hide the notification popups. | null or boolean |
| services.cbatticon.iconType | Icon type to display in the system tray. | null or one of "standard", "notification", "symbolic" |
| services.cbatticon.lowLevelPercent | Low level percentage of the battery in percent (without the percent symbol). | null or integer between 0 and 100 (both inclusive) |
| services.cbatticon.package | The cbatticon package to use. Use {var}`pkgs.batticonplus` for wayland support. | package |
| services.cbatticon.updateIntervalSeconds | Number of seconds between updates of the battery information. | null or (positive integer, meaning >0) |
| services.clipcat.ctlSettings | Configuration settings for clipcatctl. All available options can be found here: <https://github.com/xrelkd/clipcat?tab=readme-ov-file#configuration>. | TOML value |
| services.clipcat.daemonSettings | Configuration settings for clipcatd. All available options can be found here: <https://github.com/xrelkd/clipcat?tab=readme-ov-file#configuration>. | TOML value |
| services.clipcat.enable | Whether to enable clipcat. | boolean |
| services.clipcat.enableSystemdUnit | Enable clipcat's Systemd Unit. | boolean |
| services.clipcat.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| services.clipcat.menuSettings | Configuration settings for clipcat-menu. All available options can be found here: <https://github.com/xrelkd/clipcat?tab=readme-ov-file#configuration>. | TOML value |
| services.clipcat.package | The clipcat package to use. | package |
| services.cliphist.allowImages | Store images in clipboard history. | boolean |
| services.cliphist.clipboardPackage | The wl-clipboard package to use. | package |
| services.cliphist.enable | Whether to enable cliphist, a clipboard history “manager” for wayland. | boolean |
| services.cliphist.extraOptions | Flags to append to the cliphist command. | list of string |
| services.cliphist.package | The cliphist package to use. | package |
| services.cliphist.systemdTargets | The systemd targets that will automatically start the cliphist service. When setting this value to `["sway-session.target"]`, make sure to also enable {option}`wayland.windowManager.sway.systemd.enable`, otherwise the service may never be started. Note: A single string value is deprecated, please use a list. | (list of string) or string |
| services.clipman.enable | Whether to enable clipman, a simple clipboard manager for Wayland. | boolean |
| services.clipman.package | The clipman package to use. | package |
| 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 {option}`wayland.windowManager.sway.systemd.enable`, otherwise the service may never be started. | string |
| services.clipmenu.enable | Whether to enable clipmenu, the clipboard management daemon. | boolean |
| services.clipmenu.launcher | Launcher command, if not set, {command}`dmenu` will be used by default. | null or string |
| services.clipmenu.package | The clipmenu package to use. | package |
| services.clipse.allowDuplicates | Allow duplicates | boolean |
| services.clipse.enable | Whether to enable Enable clipse clipboard manager. | boolean |
| services.clipse.historySize | Number of history lines to keep. | signed integer |
| services.clipse.imageDisplay.heightCut | Height cut | signed integer |
| services.clipse.imageDisplay.scaleX | Image scaling factor X | signed integer |
| services.clipse.imageDisplay.scaleY | Image scaling factor Y | signed integer |
| services.clipse.imageDisplay.type | Preview image method | one of "basic", "kitty", "sixel" |
| services.clipse.keyBindings | Custom key bindings | JSON value |
| services.clipse.package | The clipse package to use. | null or package |
| services.clipse.systemdTarget | The systemd target that will automatically start the clipse service. When setting this value to `"sway-session.target"`, make sure to also enable {option}`wayland.windowManager.sway.systemd.enable`, otherwise the service may never be started. | string |
| services.clipse.theme | Configuration written to {file}`$XDG_CONFIG_HOME/clipse/custom_theme.json`. | JSON value |
| services.colima.bashPackage | The bashNonInteractive package to use. Used by colima's internal scripts. | package |
| services.colima.colimaHomeDir | Directory to store colima configuration. This also sets $COLIMA_HOME. | string |
| services.colima.coreutilsPackage | The coreutils package to use. Used in various ways by colima. | package |
| services.colima.curlPackage | The curl package to use. Used by colima to donwload images. | package |
| services.colima.dockerPackage | The docker package to use. Used by colima to activate profiles. Not needed if no profile is set to isActive. | package |
| services.colima.enable | Whether to enable Colima, a container runtime. | boolean |
| services.colima.kubectlPackage | The kubectl package to use. Used by colima when kubernetes is enabled in the profile. | package |
| services.colima.limaHomeDir | Directory to store lima files. This also sets $LIMA_HOME. | null or string |
| services.colima.package | The colima package to use. | package |
| services.colima.perlPackage | The perl package to use. Used by colima during image download for the shasum command. | package |
| services.colima.profiles | Profiles allow multiple colima configurations. The default profile is active by default. If you have used colima before, you may need to delete existing configuration using `colima delete` or use a different profile. Note that removing a configured profile will not delete the corresponding Colima instance. You will need to manually run `colima delete <profile-name>` to remove the instance and release resources. | attribute set of (submodule) |
| services.colima.profiles.<name>.isActive | Whether to set this profile as: - active docker context - active kubernetes context - active incus remote Exactly one or zero profiles should have this option set. | boolean |
| services.colima.profiles.<name>.isService | Whether this profile will run as a service. | boolean |
| services.colima.profiles.<name>.logFile | Combined stdout and stderr log file for the Colima service. | absolute path |
| services.colima.profiles.<name>.name | The profile's name. | string |
| services.colima.profiles.<name>.setDockerHost | Set this context as $DOCKER_HOST. Exactly one or zero profiles should have this option set. | boolean |
| services.colima.profiles.<name>.settings | Colima configuration settings, see <https://github.com/abiosoft/colima/blob/main/embedded/defaults/colima.yaml> or run `colima template`. | YAML 1.1 value |
| services.colima.sshPackage | The openssh package to use. Used by colima to manage the vm. | package |
| services.comodoro.enable | Whether to enable Comodoro server. | boolean |
| services.comodoro.environment | Extra environment variables to be exported in the service. | attribute set of string |
| services.comodoro.package | The comodoro package to use. | package |
| services.comodoro.preset | Use configuration from the given preset as defined in the configuration file. | non-empty string |
| services.comodoro.protocols | Define protocols the server should use to accept requests. | non-empty (list of non-empty string) |
| services.conky.enable | Whether to enable Conky, a light-weight system monitor. | boolean |
| 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 {command}`conky --print-config`, will be used. | strings concatenated with "\n" |
| services.conky.package | The conky package to use. | package |
| services.copyq.enable | Whether to enable CopyQ, a clipboard manager with advanced features. | boolean |
| services.copyq.forceXWayland | Force the CopyQ to use the X backend on wayland | boolean |
| services.copyq.package | The copyq package to use. | package |
| 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 {option}`wayland.windowManager.sway.systemd.enable`, otherwise the service may never be started. | string |
| 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. | attribute set of (absolute path or strings concatenated with "\n") |
| services.darkman.enable | Whether to enable darkman, a tool that automatically switches dark-mode on and off based on the time of the day. | boolean |
| 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. | attribute set of (absolute path or strings concatenated with "\n") |
| services.darkman.package | The darkman package to use. | null or package |
| services.darkman.settings | Settings for the {command}`darkman` command. See <https://darkman.whynothugo.nl/#CONFIGURATION> for details. | open submodule of (YAML 1.1 value) |
| services.davmail.enable | Whether to enable DavMail, an MS Exchange gateway.. | boolean |
| services.davmail.imitateOutlook | Whether DavMail pretends to be Outlook. | boolean |
| services.davmail.package | The davmail package to use. | package |
| services.davmail.settings | Davmail configuration. Refer to <http://davmail.sourceforge.net/serversetup.html> and <http://davmail.sourceforge.net/advanced.html> for details on supported values. | attribute set of (string, package, bool, int or float) |
| services.devilspie2.config | Content of file placed in the devilspie2 config directory. | strings concatenated with "\n" |
| services.devilspie2.enable | Whether to enable Devilspie2, a window matching utility, allowing the user to perform scripted actions on windows as they are created. | boolean |
| services.devilspie2.package | The devilspie2 package to use. | package |
| services.dropbox.enable | Whether to enable Dropbox daemon. | boolean |
| services.dropbox.package | The dropbox-cli package to use. | package |
| services.dropbox.path | Where to put the Dropbox directory. | absolute path |
| services.dunst.configFile | Path to the configuration file read by dunst. Note that the configuration generated by Home Manager will be written to {file}`$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. | null or string or absolute path |
| services.dunst.enable | Whether to enable the dunst notification daemon. | boolean |
| services.dunst.iconTheme | Set the icon theme. | submodule |
| services.dunst.iconTheme.name | The name of the theme within the package. | string |
| services.dunst.iconTheme.package | Package providing the theme. | package |
| services.dunst.iconTheme.size | The desired icon size. | string |
| services.dunst.package | The dunst package to use. | package |
| services.dunst.settings | Configuration written to {file}`$XDG_CONFIG_HOME/dunst/dunstrc`. | open submodule of attribute set of attribute set of (string or boolean or signed integer or list of string) |
| services.dunst.settings.global.icon_path | Paths where dunst will look for icons. | strings concatenated with ":" |
| services.dunst.waylandDisplay | Set the service's {env}`WAYLAND_DISPLAY` environment variable. | string |
| services.dwm-status.enable | Whether to enable dwm-status user service. | boolean |
| services.dwm-status.extraConfig | Extra config of dwm-status. | JSON value |
| services.dwm-status.order | List of enabled features in order. | list of (one of "audio", "backlight", "battery", "cpu_load", "network", "time") |
| services.dwm-status.package | The dwm-status package to use. | package |
| services.easyeffects.enable | Whether to enable Easyeffects daemon. Note, it is necessary to add ```nix programs.dconf.enable = true; ``` to your system configuration for the daemon to work correctly. | boolean |
| services.easyeffects.extraPresets | List of presets to import to easyeffects. Presets are written to input and output folder in `$XDG_DATA_HOME/easyeffects`. Top level block (input/output) determines the folder the file is written to. See community presets at: https://github.com/wwmm/easyeffects/wiki/Community-Presets | null or (attribute set of attribute set of (JSON value)) |
| services.easyeffects.package | The easyeffects package to use. | package |
| services.easyeffects.preset | Which preset to use when starting easyeffects. Will likely need to launch easyeffects to initially create preset. | string |
| services.emacs.client.arguments | Command-line arguments to pass to {command}`emacsclient`. | list of string |
| services.emacs.client.enable | Whether to enable generation of Emacs client desktop file. | boolean |
| services.emacs.defaultEditor | Whether to configure {command}`emacsclient` as the default editor using the {env}`EDITOR` and {env}`VISUAL` environment variables. | boolean |
| services.emacs.enable | Whether to enable the Emacs daemon. | boolean |
| services.emacs.extraOptions | Extra command-line arguments to pass to {command}`emacs`. | list of string |
| services.emacs.package | The Emacs package to use. | package |
| services.emacs.socketActivation.enable | Whether to enable systemd socket activation for the Emacs service. | boolean |
| 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`. | boolean or value "graphical" (singular enum) |
| services.espanso.configs | The Espanso configuration to use. See <https://espanso.org/docs/configuration/basics/> for a description of available options. | YAML 1.1 value |
| services.espanso.enable | Whether to enable Espanso: cross platform text expander in Rust. | boolean |
| services.espanso.matches | The Espanso matches to use. See <https://espanso.org/docs/matches/basics/> for a description of available options. | YAML 1.1 value |
| services.espanso.package | The espanso package to use. | package |
| services.espanso.package-wayland | The espanso-wayland package to use. Which `espanso` package to use when running under wayland. | null or package |
| services.espanso.waylandSupport | Whether to enable wayland support on linux | boolean |
| services.espanso.x11Support | Whether to enable x11 support on linux | boolean |
| services.etesync-dav.enable | Whether to enable etesync-dav. | boolean |
| services.etesync-dav.package | The etesync-dav package to use. | package |
| services.etesync-dav.serverUrl | The URL to the etesync server. | string |
| services.etesync-dav.settings | Settings for etesync-dav, passed as environment variables. | attribute set of (string or signed integer) |
| services.flameshot.enable | Whether to enable Flameshot. | boolean |
| services.flameshot.package | The flameshot package to use. | package |
| services.flameshot.settings | Configuration to use for Flameshot. See <https://github.com/flameshot-org/flameshot/blob/master/flameshot.example.ini> for available options. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| services.fluidsynth.enable | Whether to enable fluidsynth midi synthesizer. | boolean |
| services.fluidsynth.extraOptions | Extra arguments, added verbatim to the fluidsynth command. See {manpage}`fluidsynth.conf(1)`. | list of string |
| services.fluidsynth.package | The fluidsynth package to use. | package |
| services.fluidsynth.soundFont | The soundfont file to use, in SoundFont 2 format. | absolute path |
| services.fluidsynth.soundService | The systemd sound service to depend on. | one of "jack", "pipewire-pulse", "pulseaudio" |
| 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 {option}`services.fnott.settings` will be generated and written to {file}`$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. | string or absolute path |
| services.fnott.enable | Whether to enable fnott, a lightweight Wayland notification daemon for wlroots-based compositors . | boolean |
| services.fnott.extraFlags | Extra arguments to use for executing fnott. | list of string |
| services.fnott.package | The fnott package to use. | package |
| services.fnott.settings | Configuration written to {file}`$XDG_CONFIG_HOME/fnott/fnott.ini`. See {manpage}`fnott.ini(5)` for a list of available options and <https://codeberg.org/dnkl/fnott/src/branch/master/fnott.ini> for an example configuration. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| services.fusuma.enable | Whether to enable the fusuma systemd service to automatically enable touchpad gesture. | boolean |
| services.fusuma.extraPackages | Extra packages needs to bring to the scope of fusuma service. | list of package |
| services.fusuma.package | The fusuma package to use. | package |
| services.fusuma.settings | YAML config that will override the default fusuma configuration. | YAML 1.1 value |
| services.gammastep.dawnTime | Set the time interval of dawn manually. The times must be specified as HH:MM in 24-hour format. | null or string |
| services.gammastep.duskTime | Set the time interval of dusk manually. The times must be specified as HH:MM in 24-hour format. | null or string |
| services.gammastep.enable | Whether to enable Gammastep. | boolean |
| services.gammastep.enableVerboseLogging | Whether to enable verbose service logging. | boolean |
| services.gammastep.latitude | Your current latitude, between `-90.0` and `90.0`. Must be provided along with longitude. | null or string or floating point number |
| services.gammastep.longitude | Your current longitude, between `-180.0` and `180.0`. Must be provided along with latitude. | null or string or floating point number |
| services.gammastep.package | Gammastep derivation to use. | package |
| 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. | one of "manual", "geoclue2" |
| services.gammastep.settings | The configuration to pass to Gammastep. Available options for Gammastep described in {manpage}`gammastep(1)`. | open submodule of attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| services.gammastep.temperature.day | Colour temperature to use during the day, between `1000` and `25000` K. | signed integer |
| services.gammastep.temperature.night | Colour temperature to use at night, between `1000` and `25000` K. | signed integer |
| services.gammastep.tray | Start the gammastep-indicator tray applet. | boolean |
| services.getmail.enable | Whether to enable the getmail systemd service to automatically retrieve mail. | boolean |
| 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. | string |
| services.getmail.package | The getmail package to use. | package |
| services.git-sync.enable | Whether to enable git-sync services. | boolean |
| services.git-sync.package | The git-sync package to use. | package |
| services.git-sync.repositories | The repositories that should be synchronized. | attribute set of (submodule) |
| services.git-sync.repositories.<name>.extraPackages | Extra packages available to git-sync. | list of package |
| services.git-sync.repositories.<name>.interval | The interval, specified in seconds, at which the synchronization will be triggered even without filesystem changes. | signed integer |
| services.git-sync.repositories.<name>.path | The path at which to sync the repository | absolute path |
| 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. | string |
| services.glance.enable | Whether to enable glance. | boolean |
| services.glance.package | The glance package to use. | package |
| 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. | YAML 1.1 value |
| services.gnome-keyring.components | The GNOME keyring components to start. If empty then the default set of components will be started. | list of (one of "pkcs11", "secrets", "ssh") |
| services.gnome-keyring.enable | Whether to enable GNOME Keyring. | boolean |
| services.gnome-keyring.package | The gnome-keyring package to use. | package |
| services.gpg-agent.defaultCacheTtl | Set the time a cache entry is valid to the given number of seconds. | null or signed integer |
| services.gpg-agent.defaultCacheTtlSsh | Set the time a cache entry used for SSH keys is valid to the given number of seconds. | null or signed integer |
| services.gpg-agent.enable | Whether to enable GnuPG private key agent. | boolean |
| services.gpg-agent.enableBashIntegration | Whether to enable Bash integration. | boolean |
| services.gpg-agent.enableExtraSocket | Whether to enable extra socket of the GnuPG key agent (useful for GPG Agent forwarding). | boolean |
| services.gpg-agent.enableFishIntegration | Whether to enable Fish integration. | boolean |
| services.gpg-agent.enableNushellIntegration | Whether to enable Nushell integration. | boolean |
| 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 {option}`disable-scdaemon` setting to gpg-agent. | boolean |
| services.gpg-agent.enableSshSupport | Whether to use the GnuPG key agent for SSH keys. | boolean |
| services.gpg-agent.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| services.gpg-agent.extraConfig | Extra configuration lines to append to the gpg-agent configuration file. | strings concatenated with "\n" |
| 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 {option}`no-grab` setting to gpg-agent. | boolean |
| 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). | null or signed integer |
| 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). | null or signed integer |
| services.gpg-agent.noAllowExternalCache | Tell Pinentry not to enable features which use an external cache for passphrases. Some desktop environments prefer to unlock all credentials with one master password and may have installed a Pinentry which employs an additional external cache to implement such a policy. By using this option the Pinentry is advised not to make use of such a cache and instead always ask the user for the requested passphrase. | boolean |
| services.gpg-agent.pinentry.package | The pinentry-gnome3 package to use. Which pinentry interface to use. If not `null`, it sets {option}`pinentry-program` in {file}`gpg-agent.conf`. Beware that `pinentry-gnome3` may not work on non-GNOME systems. You can fix it by adding the following to your configuration: ```nix home.packages = [ pkgs.gcr ]; ``` | null or package |
| services.gpg-agent.pinentry.program | Which program to search for in the configured `pinentry.package`. | null or string |
| services.gpg-agent.sshKeys | Which GPG keys (by keygrip) to expose as SSH keys. | null or (list of string) |
| services.gpg-agent.verbose | Whether to produce verbose output. | boolean |
| services.grobi.enable | Whether to enable the grobi display setup daemon. | boolean |
| 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 {option}`execute_after` key in {file}`$XDG_CONFIG_HOME/grobi.conf`. | list of string |
| services.grobi.package | The grobi package to use. | package |
| 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 {option}`rules` key in {file}`$XDG_CONFIG_HOME/grobi.conf`. | list of attribute set of (string or boolean or signed integer or list of string) |
| services.gromit-mpx.enable | Whether to enable Gromit-MPX annotation tool. | boolean |
| 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. | null or string or (positive integer, meaning >0) |
| services.gromit-mpx.opacity | Opacity of the drawing overlay. | float between 0.0 and 1.0 (inclusive) |
| services.gromit-mpx.package | The gromit-mpx package to use. | package |
| services.gromit-mpx.tools | Tool definitions for gromit-mpx to use. | list of (submodule) |
| services.gromit-mpx.tools.*.arrowSize | If not `null`, automatically draw an arrow at the end of a stroke with the given size. | null or (positive integer, meaning >0) |
| services.gromit-mpx.tools.*.color | The stroke (or recolor) color of the tool. | string |
| services.gromit-mpx.tools.*.device | Use this tool with the given xinput device. The device with the name default works with any input. | string |
| services.gromit-mpx.tools.*.modifiers | Only activate this tool if the given modifiers are also active. | list of (one of "1", "2", "3", "4", "5", "SHIFT", "CONTROL", "ALT", "META") |
| services.gromit-mpx.tools.*.size | The tool size. | positive integer, meaning >0 |
| services.gromit-mpx.tools.*.type | Which type of tool this is. | one of "pen", "eraser", "recolor" |
| 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. | null or string or (positive integer, meaning >0) |
| services.home-manager.autoExpire.enable | Whether to enable the Home Manager expire service that periodically expire your old Home Manager generations. | boolean |
| services.home-manager.autoExpire.frequency | The interval at which the Home Manager auto expire is run. This value is passed to the systemd timer configuration as the `OnCalendar` option. The format is described in {manpage}`systemd.time(7)`. On Darwin, it must be one of: hourly, daily, weekly, monthly, semiannually, annually, which are implemented as defined in {manpage}`systemd.time(7)`. | string |
| services.home-manager.autoExpire.store.cleanup | Whether to enable to cleanup Nix store when the Home Manager expire service runs. It will use `nix-collect-garbage` to cleanup the store, removing all unreachable store objects from the current user (i.e.: not only the expired Home Manager generations). This may not be what you want, this is why this option is disabled by default. | boolean |
| services.home-manager.autoExpire.store.options | Options given to `nix-collect-garbage` when the service runs. | string |
| services.home-manager.autoExpire.timestamp | Remove generations older than `TIMESTAMP` where `TIMESTAMP` is interpreted as in the -d argument of the date tool. | string |
| services.home-manager.autoUpgrade.enable | Whether to enable the Home Manager upgrade service that periodically updates your Nix channels before running `home-manager switch`. | boolean |
| services.home-manager.autoUpgrade.flakeDir | The directory of the flake to update. | string |
| 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 {manpage}`systemd.time(7)`. | string |
| services.home-manager.autoUpgrade.useFlake | Whether to use 'nix flake update' instead of 'nix-channel --update'. | boolean |
| services.hound.databasePath | The Hound database path. | absolute path |
| services.hound.enable | Whether to enable hound. | boolean |
| services.hound.listenAddress | Listen address of the Hound daemon. | string |
| services.hound.maxConcurrentIndexers | Limit the amount of concurrent indexers. | positive integer, meaning >0 |
| services.hound.package | The hound package to use. | package |
| services.hound.repositories | The repository configuration. | attribute set of (JSON value) |
| services.hypridle.enable | Whether to enable Hypridle, Hyprland's idle daemon. | boolean |
| services.hypridle.importantPrefixes | List of prefix of attributes to source at the top of the config. | list of string |
| services.hypridle.package | The hypridle package to use. | null or package |
| 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.hypr.land/Hypr-Ecosystem/hypridle/> for more examples. | Hypridle configuration value |
| services.hypridle.systemdTarget | Systemd target to bind to. | string |
| services.hyprlauncher.enable | Whether to enable hyprlauncher. | boolean |
| services.hyprlauncher.package | The hyprlauncher package to use. | null or package |
| services.hyprlauncher.settings | Configuration settings for hyprlauncher. All the available options can be found here: <https://wiki.hypr.land/Hypr-Ecosystem/hyprlauncher/#config> | Hyprland configuration value |
| services.hyprpaper.enable | Whether to enable Hyprpaper, Hyprland's wallpaper daemon. | boolean |
| services.hyprpaper.importantPrefixes | List of prefix of attributes to source at the top of the config. | list of string |
| services.hyprpaper.package | The hyprpaper package to use. | null or package |
| 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.hypr.land/Hypr-Ecosystem/hyprpaper/> for more examples. | Hyprpaper configuration value |
| services.hyprpolkitagent.enable | Whether to enable Hyprland Policykit Agent. | boolean |
| services.hyprpolkitagent.package | The hyprpolkitagent package to use. | package |
| services.hyprshell.enable | Whether to enable hyprshell. | boolean |
| services.hyprshell.package | The hyprshell package to use. | null or package |
| services.hyprshell.settings | Configuration settings for hyprshell. All the avaiblable options can be found here: <https://github.com/H3rmt/hyprshell/blob/hyprshell-release/docs/CONFIGURE.md#config-options> | JSON value |
| services.hyprshell.style | CSS file for customizing hyprshell. All the available options can be found here: <https://github.com/H3rmt/hyprshell/blob/hyprshell-release/docs/CONFIGURE.md#css> | absolute path or strings concatenated with "\n" |
| services.hyprshell.systemd.args | Arguments to pass to the hyprshell service | string |
| services.hyprshell.systemd.enable | Whether to enable the hyprshell Systemd service. | boolean |
| services.hyprshell.systemd.target | The Systemd target that will start the hyprshell service | string |
| services.hyprsunset.enable | Whether to enable Hyprsunset, Hyprland's blue-light filter. | boolean |
| services.hyprsunset.extraArgs | Additional command-line arguments to pass to `hyprsunset`. | list of string |
| services.hyprsunset.importantPrefixes | List of prefix of attributes to source at the top of the config. | list of string |
| services.hyprsunset.package | The hyprsunset package to use. | package |
| services.hyprsunset.settings | Hyprsunset configuration written in Nix. Entries with the same key should be written as lists. Variables' and colors' names should be quoted. See <https://wiki.hypr.land/Hypr-Ecosystem/hyprsunset/> for more examples. | Hyprsunset configuration value |
| services.hyprsunset.systemdTarget | Systemd target to bind to. | string |
| services.hyprsunset.transitions | Deprecated - Use {option}`services.hyprsunset.settings` instead to manage transitions. Set of transitions for different times of day (e.g., sunrise, sunset) | attribute set of (submodule) |
| services.hyprsunset.transitions.<name>.calendar | Deprecated - Use {option}`services.hyprsunset.settings` instead to manage transitions. Systemd calendar expression for when to run this transition. | string |
| services.hyprsunset.transitions.<name>.requests | Deprecated - Use {option}`services.hyprsunset.settings` instead to manage transitions. List of requests to pass to `hyprctl hyprsunset` for this transition. Each inner list represents a separate command. | list of list of string |
| services.imapnotify.enable | Whether to enable imapnotify. | boolean |
| services.imapnotify.package | The goimapnotify package to use. | package |
| services.imapnotify.path | List of packages to provide in PATH for the imapnotify service. Note, this does not apply to the Darwin launchd service. | list of package |
| services.jankyborders.enable | Whether to enable jankyborders. | boolean |
| services.jankyborders.errorLogFile | Absolute path to log all stderr output. | null or absolute path or string |
| services.jankyborders.outLogFile | Absolute path to log all stdout output. | null or absolute path or string |
| services.jankyborders.package | The jankyborders package to use. | package |
| services.jankyborders.settings | Configuration settings to passed to `borders` in {file}`$XDG_CONFIG_HOME/borders/bordersc`. See <https://github.com/FelixKratz/JankyBorders> for the documentation. | attribute set of anything |
| services.jellyfin-mpv-shim.enable | Whether to enable Jellyfin mpv shim. | boolean |
| services.jellyfin-mpv-shim.mpvBindings | mpv input bindings to use for jellyfin-mpv-shim. If null, jellyfin-mpv-shim will use its default input configuration. | null or (attribute set of string) |
| services.jellyfin-mpv-shim.mpvConfig | mpv configuration options to use for jellyfin-mpv-shim. If null, jellyfin-mpv-shim will use its default mpv configuration. | null or (attribute set of (string or signed integer or boolean or floating point number)) |
| services.jellyfin-mpv-shim.package | The jellyfin-mpv-shim package to use. | package |
| services.jellyfin-mpv-shim.settings | Configuration written to {file}`$XDG_CONFIG_HOME/jellyfin-mpv-shim/conf.json`. See <https://github.com/jellyfin/jellyfin-mpv-shim#configuration> for the configuration documentation. | JSON value |
| services.kanshi.enable | Whether to enable kanshi, a Wayland daemon that automatically configures outputs. | boolean |
| services.kanshi.extraConfig | Extra configuration lines to append to the kanshi configuration file. | strings concatenated with "\n" |
| services.kanshi.package | The kanshi package to use. | package |
| services.kanshi.profiles | Attribute set of profiles. | attribute set of (submodule) |
| 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. | (list of string) or string convertible to it |
| services.kanshi.profiles.<name>.name | Profile name | string |
| services.kanshi.profiles.<name>.outputs | Outputs configuration. | list of (submodule) |
| services.kanshi.profiles.<name>.outputs.*.adaptiveSync | Enables or disables adaptive synchronization (aka. Variable Refresh Rate). | null or boolean |
| services.kanshi.profiles.<name>.outputs.*.alias | Defines an alias for the output | null or string |
| 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 {manpage}`sway(1)`, output names and descriptions can be obtained via `swaymsg -t get_outputs`. | string |
| 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. | null or string |
| services.kanshi.profiles.<name>.outputs.*.position | <x>,<y> Places the output at the specified position in the global coordinates space. | null or string |
| services.kanshi.profiles.<name>.outputs.*.scale | Scales the output by the specified scale factor. | null or floating point number |
| services.kanshi.profiles.<name>.outputs.*.status | Enables or disables the specified output. | null or one of "enable", "disable" |
| services.kanshi.profiles.<name>.outputs.*.transform | Sets the output transform. | null or one of "normal", "90", "180", "270", "flipped", "flipped-90", "flipped-180", "flipped-270" |
| services.kanshi.settings | Ordered list of directives. See kanshi(5) for informations. | list of attribute-tagged union with choices: include, output, profile |
| services.kanshi.settings.*.include | Include as another file from _path_. Expands shell syntax (see *wordexp*(3) for details). | string |
| services.kanshi.settings.*.output | output attribute set. | submodule |
| services.kanshi.settings.*.output.adaptiveSync | Enables or disables adaptive synchronization (aka. Variable Refresh Rate). | null or boolean |
| services.kanshi.settings.*.output.alias | Defines an alias for the output | null or string |
| 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 {manpage}`sway(1)`, output names and descriptions can be obtained via `swaymsg -t get_outputs`. | 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. | null or string |
| services.kanshi.settings.*.output.position | <x>,<y> Places the output at the specified position in the global coordinates space. | null or string |
| services.kanshi.settings.*.output.scale | Scales the output by the specified scale factor. | null or floating point number |
| services.kanshi.settings.*.output.status | Enables or disables the specified output. | null or one of "enable", "disable" |
| services.kanshi.settings.*.output.transform | Sets the output transform. | null or one of "normal", "90", "180", "270", "flipped", "flipped-90", "flipped-180", "flipped-270" |
| services.kanshi.settings.*.profile | profile attribute set. | submodule |
| 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. | (list of string) or string convertible to it |
| services.kanshi.settings.*.profile.name | Profile name | string |
| services.kanshi.settings.*.profile.outputs | Outputs configuration. | list of (submodule) |
| services.kanshi.settings.*.profile.outputs.*.adaptiveSync | Enables or disables adaptive synchronization (aka. Variable Refresh Rate). | null or boolean |
| services.kanshi.settings.*.profile.outputs.*.alias | Defines an alias for the output | null or string |
| 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 {manpage}`sway(1)`, output names and descriptions can be obtained via `swaymsg -t get_outputs`. | 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. | null or string |
| services.kanshi.settings.*.profile.outputs.*.position | <x>,<y> Places the output at the specified position in the global coordinates space. | null or string |
| services.kanshi.settings.*.profile.outputs.*.scale | Scales the output by the specified scale factor. | null or floating point number |
| services.kanshi.settings.*.profile.outputs.*.status | Enables or disables the specified output. | null or one of "enable", "disable" |
| services.kanshi.settings.*.profile.outputs.*.transform | Sets the output transform. | null or one of "normal", "90", "180", "270", "flipped", "flipped-90", "flipped-180", "flipped-270" |
| services.kanshi.systemdTarget | Systemd target to bind to. | string |
| services.kbfs.enable | Whether to enable Keybase File System. | boolean |
| services.kbfs.extraFlags | Additional flags to pass to the Keybase filesystem on launch. | list of string |
| services.kbfs.mountPoint | Mount point for the Keybase filesystem, relative to {env}`HOME`. | string |
| services.kbfs.package | The kbfs package to use. | package |
| services.kdeconnect.enable | Whether to enable KDE connect. | boolean |
| services.kdeconnect.indicator | Whether to enable kdeconnect-indicator service. | boolean |
| services.kdeconnect.package | The kdeconnect-kde package to use. | package |
| services.keybase.enable | Whether to enable Keybase. | boolean |
| services.keybase.package | The keybase package to use. | package |
| services.keynav.enable | Whether to enable keynav. | boolean |
| services.keynav.package | The keynav package to use. | package |
| services.librespot.enable | Whether to enable Librespot (Spotify Connect speaker daemon). | boolean |
| services.librespot.package | The librespot package to use. | package |
| services.librespot.settings | Command-line arguments to pass to librespot. Boolean values render as a flag if true, and nothing if false. Null values are ignored. All other values are rendered as options with an argument. | open submodule of attribute set of (null or boolean or string or signed integer or absolute path) |
| services.librespot.settings.cache | Path to a directory where files will be cached after downloading. | null or absolute path |
| services.librespot.settings.system-cache | Path to a directory where system files (credentials, volume) will be cached. | null or absolute path |
| services.lieer.enable | Whether to enable lieer Gmail synchronization service. | boolean |
| services.linux-wallpaperengine.assetsPath | Path to the assets directory. | null or absolute path |
| services.linux-wallpaperengine.clamping | Clamping mode for all wallpapers. | null or one of "clamp", "border", "repeat" |
| services.linux-wallpaperengine.enable | Whether to enable linux-wallpaperengine, an implementation of Wallpaper Engine functionality. | boolean |
| services.linux-wallpaperengine.package | The linux-wallpaperengine package to use. | package |
| services.linux-wallpaperengine.wallpapers | Define wallpapers. | list of (submodule) |
| services.linux-wallpaperengine.wallpapers.*.audio.automute | Automute when another app is playing sound. | boolean |
| services.linux-wallpaperengine.wallpapers.*.audio.processing | Enables audio processing for background. | boolean |
| services.linux-wallpaperengine.wallpapers.*.audio.silent | Mutes all sound of the wallpaper. | boolean |
| services.linux-wallpaperengine.wallpapers.*.extraOptions | Extra arguments to pass to the linux-wallpaperengine command for this wallpaper. | list of string |
| services.linux-wallpaperengine.wallpapers.*.fps | Limits the FPS to a given number. | null or signed integer |
| services.linux-wallpaperengine.wallpapers.*.monitor | Which monitor to display the wallpaper. | string |
| services.linux-wallpaperengine.wallpapers.*.scaling | Scaling mode for this wallpaper. | null or one of "stretch", "fit", "fill", "default" |
| services.linux-wallpaperengine.wallpapers.*.wallpaperId | Wallpaper to be used. Can either be a Steam Workshop ID or the path to the background folder. | string |
| services.listenbrainz-mpd.enable | Whether to enable listenbrainz-mpd. | boolean |
| services.listenbrainz-mpd.package | The listenbrainz-mpd package to use. | null or package |
| services.listenbrainz-mpd.settings | Configuration for listenbrainz-mpd written to {file}`$XDG_CONFIG_HOME/listenbrainz-mpd/config.toml`. | TOML value |
| services.local-ai.enable | Whether to enable LocalAI is the free, Open Source OpenAI alternative.. | boolean |
| services.local-ai.environment | Additional environment passed to local-ai service. Used to configure local-ai See <https://localai.io/basics> for available options. | attribute set of string |
| services.local-ai.package | The local-ai package to use. | package |
| services.lorri.enable | Whether to enable lorri build daemon. | boolean |
| services.lorri.enableNotifications | Whether to enable lorri build notifications. | boolean |
| services.lorri.nixPackage | Which nix package to use. | package |
| services.lorri.package | The lorri package to use. | package |
| services.ludusavi.backupNotification | Send a notification message after a successful backup. | boolean |
| services.ludusavi.configFile | Path to a Ludusavi `config.yaml`. Mutually exclusive with the `settings` option. See https://github.com/mtkennerly/ludusavi/blob/master/docs/help/configuration-file.md for available options. | null or absolute path |
| services.ludusavi.enable | Whether to enable Ludusavi game backup tool. | boolean |
| services.ludusavi.frequency | How often to run ludusavi. This value is passed to the systemd timer configuration as the onCalendar option. See {manpage}`systemd.time(7)` for more information about the format. | string |
| services.ludusavi.package | The ludusavi package to use. | package |
| services.ludusavi.settings | Ludusavi configuration as an attribute set. See https://github.com/mtkennerly/ludusavi#configuration-file for available options. | YAML 1.1 value |
| services.lxqt-policykit-agent.enable | Whether to enable LXQT Policykit Agent. | boolean |
| services.lxqt-policykit-agent.package | The lxqt-policykit package to use. | package |
| services.macos-remap-keys.enable | Whether to enable macOS key remapping service. | boolean |
| services.macos-remap-keys.keyboard | Mapping of keyboard keys to remap | attribute set of string |
| services.macos-remap-keys.keypad | Mapping of keypad keys to remap | attribute set of string |
| services.mako.enable | Whether to enable mako. | boolean |
| services.mako.extraConfig | Additional configuration lines to inject directly into the generated config file. | strings concatenated with "\n" |
| services.mako.package | The mako package to use. | package |
| services.mako.settings | Configuration settings for mako. Can include both global settings and sections. All available options can be found here: <https://github.com/emersion/mako/blob/master/doc/mako.5.scd>. | attribute set of (INI atom (null, bool, int, float or string) or attribute set of (INI atom (null, bool, int, float or string))) |
| services.mbsync.configFile | Optional configuration file to link to use instead of the default file ({file}`~/.mbsyncrc`). | null or absolute path |
| services.mbsync.enable | Whether to enable mbsync. | boolean |
| services.mbsync.frequency | How often to run mbsync. This value is passed to the systemd timer configuration as the onCalendar option. See {manpage}`systemd.time(7)` for more information about the format. | string |
| services.mbsync.package | The isync package to use. | package |
| services.mbsync.postExec | An optional command to run after mbsync executes successfully. This is useful for running mailbox indexing tools. | null or string |
| services.mbsync.preExec | An optional command to run before mbsync executes. This is useful for creating the directories mbsync is going to use. | null or string |
| services.mbsync.verbose | Whether mbsync should produce verbose output. | boolean |
| services.megasync.enable | Whether to enable Megasync client. | boolean |
| services.megasync.forceWayland | Force Megasync to run on wayland | boolean |
| services.megasync.package | The megasync package to use. | package |
| services.mopidy.enable | Whether to enable Mopidy music player daemon. | boolean |
| services.mopidy.extensionPackages | Mopidy extensions that should be loaded by the service. | list of package |
| 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. | list of absolute path |
| services.mopidy.settings | Configuration written to {file}`$XDG_CONFIG_HOME/mopidy/mopidy.conf`. See <https://docs.mopidy.com/en/latest/config/> for more details. | attribute set of attribute set of (Mopidy config value) |
| services.mpd-discord-rpc.enable | Whether to enable the mpd-discord-rpc service. | boolean |
| services.mpd-discord-rpc.package | The mpd-discord-rpc package to use. | package |
| services.mpd-discord-rpc.settings | Configuration included in `config.toml`. For available options see <https://github.com/JakeStanger/mpd-discord-rpc#configuration> | TOML value |
| services.mpd-mpris.enable | Whether to enable mpd-mpris: An implementation of the MPRIS protocol for MPD. | boolean |
| services.mpd-mpris.mpd.host | The address where MPD is listening for connections. | null or string |
| 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") | null or string |
| services.mpd-mpris.mpd.password | The password to connect to MPD. | null or string |
| services.mpd-mpris.mpd.port | The port number where MPD is listening for connections. | null or 16 bit unsigned integer; between 0 and 65535 (both inclusive) |
| services.mpd-mpris.mpd.useLocal | Whether to configure for the local MPD daemon. If `true` the `network`, `host`, and `port` settings are ignored. | boolean |
| services.mpd-mpris.package | The mpd-mpris package to use. | package |
| services.mpd.dataDir | The directory where MPD stores its state, tag cache, playlists etc. | absolute path |
| services.mpd.dbFile | The path to MPD's database. If set to `null` the parameter is omitted from the configuration. | null or string |
| services.mpd.enable | Whether to enable MPD, the music player daemon. | boolean |
| services.mpd.enableSessionVariables | Whether to set {env}`MPD_HOST` {env}`MPD_PORT` environment variables according to {option}`services.mpd.network`. | boolean |
| services.mpd.extraArgs | Extra command-line arguments to pass to MPD. | list of string |
| services.mpd.extraConfig | Extra directives added to the end of MPD's configuration file, {file}`mpd.conf`. Basic configuration like file location and uid/gid is added automatically to the beginning of the file. For available options see {manpage}`mpd.conf(5)`. | strings concatenated with "\n" |
| services.mpd.musicDirectory | The directory where mpd reads music from. If [](#opt-xdg.userDirs.enable) is `true` then the defined XDG music directory is used. Otherwise, you must explicitly specify a value. | absolute path or string |
| services.mpd.network.listenAddress | The address for the daemon to listen on. Use `any` to listen on all addresses. | string |
| services.mpd.network.port | The TCP port on which the the daemon will listen. | 16 bit unsigned integer; between 0 and 65535 (both inclusive) |
| services.mpd.package | The mpd package to use. | package |
| services.mpd.playlistDirectory | The directory where mpd stores playlists. | absolute path |
| services.mpdris2.enable | Whether to enable mpDris2 the MPD to MPRIS2 bridge. | boolean |
| services.mpdris2.mpd.host | The address where MPD is listening for connections. | string |
| services.mpdris2.mpd.musicDirectory | If set, mpDris2 will use this directory to access music artwork. | null or absolute path |
| services.mpdris2.mpd.password | The password to connect to MPD. | null or string |
| services.mpdris2.mpd.port | The port number where MPD is listening for connections. | 16 bit unsigned integer; between 0 and 65535 (both inclusive) |
| services.mpdris2.multimediaKeys | Whether to enable multimedia key support. | boolean |
| services.mpdris2.notifications | Whether to enable song change notifications. | boolean |
| services.mpdris2.package | The mpdris2 package to use. | package |
| services.mpdscribble.enable | Whether to enable mpdscribble, an MPD client which submits info about tracks being played to Last.fm (formerly AudioScrobbler) . | boolean |
| services.mpdscribble.endpoints | Endpoints to scrobble to. If the endpoint is one of "jamendo", "last.fm", "libre.fm", "listenbrainz" the url is set automatically. | attribute set of (submodule) |
| services.mpdscribble.endpoints.<name>.passwordFile | File containing the password, either as MD5SUM or cleartext. | null or string |
| services.mpdscribble.endpoints.<name>.url | The url endpoint where the scrobble API is listening. | string |
| services.mpdscribble.endpoints.<name>.username | Username for the scrobble service. | string |
| services.mpdscribble.host | Host for the mpdscribble daemon to search for a mpd daemon on. | string |
| services.mpdscribble.journalInterval | How often should mpdscribble save the journal file? [seconds] | signed integer |
| services.mpdscribble.package | The mpdscribble package to use. | package |
| services.mpdscribble.passwordFile | File containing the password for the mpd daemon. | null or string |
| services.mpdscribble.port | Port for the mpdscribble daemon to search for a mpd daemon on. | 16 bit unsigned integer; between 0 and 65535 (both inclusive) |
| services.mpdscribble.proxy | HTTP proxy URL. | null or string |
| services.mpdscribble.verbose | Log level for the mpdscribble daemon. | signed integer |
| services.mpris-proxy.enable | Whether to enable a proxy forwarding Bluetooth MIDI controls via MPRIS2 to control media players. | boolean |
| services.mpris-proxy.package | The bluez package to use. | package |
| services.muchsync.package | The muchsync package to use. | package |
| services.muchsync.remotes | Muchsync remotes to synchronise with. | attribute set of (submodule) |
| services.muchsync.remotes.<name>.frequency | How often to run {command}`muchsync`. This value is passed to the systemd timer configuration as the `OnCalendar` option. See {manpage}`systemd.time(7)` for more information about the format. | string |
| services.muchsync.remotes.<name>.local.checkForModifiedFiles | Check for locally modified files. Without this option, muchsync assumes that files in a maildir are never edited. {option}`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"). | boolean |
| services.muchsync.remotes.<name>.local.importNew | Whether to begin the synchronisation by running {command}`notmuch new` locally. | boolean |
| 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. {option}`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"). | boolean |
| services.muchsync.remotes.<name>.remote.host | Remote SSH host to synchronize with. | string |
| services.muchsync.remotes.<name>.remote.importNew | Whether to begin the synchronisation by running {command}`notmuch new` on the remote side. | boolean |
| 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. | string |
| services.muchsync.remotes.<name>.sshCommand | Specifies a command line to pass to {command}`/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. | string |
| services.muchsync.remotes.<name>.upload | Whether to propagate local changes to the remote. | boolean |
| services.network-manager-applet.enable | Whether to enable the Network Manager applet (nm-applet). | boolean |
| services.network-manager-applet.package | The networkmanagerapplet package to use. | package |
| services.nextcloud-client.enable | Whether to enable Nextcloud Client. | boolean |
| services.nextcloud-client.package | The nextcloud-client package to use. | package |
| services.nextcloud-client.startInBackground | Whether to start the Nextcloud client in the background. | boolean |
| services.notify-osd.enable | Whether to enable notify-osd. | boolean |
| services.notify-osd.package | The notify-osd package to use. | package |
| services.ollama.acceleration | What interface to use for hardware acceleration. - `null`: default behavior - if `nixpkgs.config.rocmSupport` is enabled, uses `"rocm"` - if `nixpkgs.config.cudaSupport` is enabled, uses `"cuda"` - otherwise defaults to `false` - `false`: disable GPU, only use CPU - `"rocm"`: supported by most modern AMD GPUs - may require overriding gpu type with `services.ollama.rocmOverrideGfx` if rocm doesn't detect your AMD gpu - `"cuda"`: supported by most modern NVIDIA GPUs | null or one of false, "rocm", "cuda" |
| services.ollama.enable | Whether to enable ollama server for local large language models. | boolean |
| services.ollama.environmentVariables | Set arbitrary environment variables for the ollama service. Be aware that these are only seen by the ollama server (systemd service), not normal invocations like `ollama run`. Since `ollama run` is mostly a shell around the ollama server, this is usually sufficient. | attribute set of string |
| services.ollama.host | The host address which the ollama server HTTP interface listens to. | string |
| services.ollama.package | The ollama package to use. | package |
| services.ollama.port | Which port the ollama server listens to. | 16 bit unsigned integer; between 0 and 65535 (both inclusive) |
| services.opensnitch-ui.enable | Whether to enable Opensnitch client. | boolean |
| services.opensnitch-ui.package | The opensnitch-ui package to use. | package |
| services.osmscout-server.enable | Whether to enable OSM Scout Server. | boolean |
| services.osmscout-server.network.listenAddress | The address for the server to listen on. | string |
| services.osmscout-server.network.port | The TCP port on which the server will listen. | 16 bit unsigned integer; between 0 and 65535 (both inclusive) |
| services.osmscout-server.network.startWhenNeeded | Enable systemd socket activation. | boolean |
| services.osmscout-server.package | The osmscout-server package to use. | package |
| services.owncloud-client.enable | Whether to enable Owncloud Client. | boolean |
| services.owncloud-client.package | The owncloud-client package to use. | package |
| services.pantalaimon.enable | Whether to enable Pantalaimon, an E2EE aware proxy daemon for matrix clients. | boolean |
| services.pantalaimon.package | The pantalaimon package to use. | package |
| services.pantalaimon.settings | Configuration written to {file}`$XDG_CONFIG_HOME/pantalaimon/pantalaimon.conf`. See <https://github.com/matrix-org/pantalaimon/blob/master/docs/manpantalaimon.5.md> or {manpage}`pantalaimon(5)` for options. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| services.parcellite.enable | Whether to enable Parcellite. | boolean |
| services.parcellite.extraOptions | Command line arguments passed to Parcellite. | list of string |
| services.parcellite.package | The parcellite package to use. | package |
| services.pass-secret-service.enable | Whether to enable Pass libsecret service. | boolean |
| services.pass-secret-service.package | The pass-secret-service package to use. | package |
| services.pass-secret-service.storePath | Absolute path to the password store. If the {option}`programs.password-store` module is enabled, the {option}`programs.password-store.settings.PASSWORD_STORE_DIR` option will be checked, if found it will be inherited as the default. | null or string |
| services.pasystray.enable | Whether to enable PulseAudio system tray. | boolean |
| services.pasystray.extraOptions | Extra command-line arguments to pass to {command}`pasystray`. | list of string |
| services.pasystray.package | The pasystray package to use. | package |
| services.pbgopy.cache.ttl | The TTL for the cache. Use `"0s"` to disable it. | string |
| services.pbgopy.enable | Whether to enable pbgopy. | boolean |
| services.pbgopy.httpAuth | Basic HTTP authentication's username and password. Both the username and password are escaped. | null or string |
| services.pbgopy.port | The port to host the pbgopy server on. | 16 bit unsigned integer; between 0 and 65535 (both inclusive) |
| services.picom.activeOpacity | Opacity of active windows. | integer or floating point number between 0 and 1 (both inclusive) |
| services.picom.backend | Backend to use: `egl`, `glx`, `xrender` or `xr_glx_hybrid`. | one of "egl", "glx", "xrender", "xr_glx_hybrid" |
| services.picom.enable | Whether to enable Picom X11 compositor. | boolean |
| services.picom.extraArgs | Extra arguments to be passed to the picom executable. | list of string |
| services.picom.extraConfig | Extra configuration lines to append to the picom configuration file. | strings concatenated with "\n" |
| services.picom.fade | Fade windows in and out. | boolean |
| services.picom.fadeDelta | Time between fade animation step (in ms). | positive integer, meaning >0 |
| services.picom.fadeExclude | List of conditions of windows that should not be faded. See `picom(1)` man page for more examples. | list of string |
| services.picom.fadeSteps | Opacity change between fade steps (in and out). | pair of integer or floating point number between 0.01 and 1 (both inclusive) |
| services.picom.inactiveOpacity | Opacity of inactive windows. | integer or floating point number between 0.1 and 1 (both inclusive) |
| services.picom.menuOpacity | Opacity of dropdown and popup menu. | integer or floating point number between 0 and 1 (both inclusive) |
| services.picom.opacityRules | Rules that control the opacity of windows, in format PERCENT:PATTERN. | list of string |
| services.picom.package | The picom package to use. | package |
| 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)`. | 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
|
| services.picom.shadow | Draw window shadows. | boolean |
| services.picom.shadowExclude | List of conditions of windows that should have no shadow. See `picom(1)` man page for more examples. | list of string |
| services.picom.shadowOffsets | Left and right offset for shadows (in pixels). | pair of signed integer |
| services.picom.shadowOpacity | Window shadows opacity. | integer or floating point number between 0 and 1 (both inclusive) |
| services.picom.vSync | Enable vertical synchronization. | boolean |
| services.picom.wintypes | Rules for specific window types. | attribute set |
| services.pimsync.configFile | Optional configuration file to use instead of the default file ({file}`$XDG_CONFIG_HOME/pimsync/pimsync.conf`). | null or absolute path |
| services.pimsync.enable | Whether to enable pimsync. | boolean |
| services.pimsync.package | The pimsync package to use. | package |
| services.pimsync.verbosity | The verbosity in which pimsync should log. | one of "trace", "debug", "info", "warn", "error" |
| services.pizauth.accounts | Pizauth accounts that should be configured | attribute set of (submodule) |
| services.pizauth.accounts.<name>.authUri | The OAuth2 server's authentication URI. | string |
| services.pizauth.accounts.<name>.clientId | The OAuth2 client ID. | string |
| services.pizauth.accounts.<name>.clientSecret | The OAuth2 client secret. | null or string |
| services.pizauth.accounts.<name>.extraConfig | Additional configuration that will be added to the account configuration. See pizauth.conf(5) for available options. | null or string |
| services.pizauth.accounts.<name>.loginHint | An optional login hint for the account provider. | null or string |
| services.pizauth.accounts.<name>.name | Unique identifier of the account. This is set to the attribute name of the account configuration. | string |
| services.pizauth.accounts.<name>.scopes | The scopes which the OAuth2 token will give access to. Optional. Note that Office365 requires the non-standard "offline_access" scope to be specified in order for pizauth to be able to operate successfully. | null or (list of string) |
| services.pizauth.accounts.<name>.tokenUri | The OAuth2 server's token URI. | string |
| services.pizauth.enable | Whether to enable Pizauth, a commandline OAuth2 authentication daemon . | boolean |
| services.pizauth.extraConfig | Additional global configuration. See pizauth.conf(5) for a available options. | null or string |
| services.pizauth.package | The pizauth package to use. | package |
| services.plan9port.fontsrv.enable | Whether to enable the Plan 9 file system access to host fonts. | boolean |
| services.plan9port.package | The plan9port package to use. | package |
| services.plan9port.plumber.enable | Whether to enable the Plan 9 file system for interprocess messaging. | boolean |
| services.playerctld.enable | Whether to enable playerctld daemon. | boolean |
| services.playerctld.package | The playerctl package to use. | package |
| services.plex-mpv-shim.enable | Whether to enable Plex mpv shim. | boolean |
| services.plex-mpv-shim.package | The plex-mpv-shim package to use. | package |
| services.plex-mpv-shim.settings | Configuration written to {file}`$XDG_CONFIG_HOME/plex-mpv-shim/config.json`. See <https://github.com/iwalton3/plex-mpv-shim/blob/master/README.md> for the configuration documentation. | JSON value |
| services.podman.autoUpdate.enable | Automatically update the podman images. | boolean |
| services.podman.autoUpdate.onCalendar | The systemd `OnCalendar` expression for the update. See {manpage}`systemd.time(7)` for a description of the format. | string |
| services.podman.builds | Defines Podman build quadlet configurations. | attribute set of (submodule) |
| services.podman.builds.<name>.authFile | Path of the authentication file. | null or absolute path |
| services.podman.builds.<name>.autoStart | Whether to start the build on boot. Requires user lingering. | boolean |
| services.podman.builds.<name>.description | The description of the build. | null or string |
| services.podman.builds.<name>.environment | Environment variables to set in the build. | attribute set of (null or boolean or signed integer or string or absolute path or list of (null or boolean or signed integer or string or absolute path)) |
| services.podman.builds.<name>.extraConfig | INI sections and values to populate the Build Quadlet. | attribute set of attribute set of ((attribute set of (null or boolean or signed integer or string or absolute path or list of (null or boolean or signed integer or string or absolute path))) or list of (null or boolean or signed integer or string or absolute path) or null or boolean or signed integer or string or absolute path) |
| services.podman.builds.<name>.extraPodmanArgs | Extra arguments to pass to the podman build command. | list of string |
| services.podman.builds.<name>.file | Path to a Containerfile which contains instructions to build the image. | string |
| services.podman.builds.<name>.labels | The labels to apply to the build. | attribute set of string |
| services.podman.builds.<name>.tags | Name associated with the build. First tag will always be "homemanager/<name>". | list of string |
| services.podman.builds.<name>.tlsVerify | Require HTTPS and verification of certificates when contacting registries. | boolean |
| services.podman.builds.<name>.workingDirectory | WorkingDirectory of the systemd unit file. | null or absolute path |
| services.podman.containers | Defines Podman container quadlet configurations. | attribute set of (submodule) |
| services.podman.containers.<name>.addCapabilities | The capabilities to add to the container. | list of string |
| services.podman.containers.<name>.autoStart | Whether to start the container on boot (requires user lingering). | boolean |
| services.podman.containers.<name>.autoUpdate | The autoupdate policy for the container. | one of <null>, "registry", "local" |
| services.podman.containers.<name>.description | The description of the container. | null or string |
| services.podman.containers.<name>.devices | The devices to mount into the container | list of string |
| services.podman.containers.<name>.dropCapabilities | The capabilities to drop from the container. | list of string |
| services.podman.containers.<name>.entrypoint | The container entrypoint. | null or string |
| services.podman.containers.<name>.environment | Environment variables to set in the container. | attribute set of (null or boolean or signed integer or string or absolute path or list of (null or boolean or signed integer or string or absolute path)) |
| services.podman.containers.<name>.environmentFile | Paths to files containing container environment variables. | list of string |
| services.podman.containers.<name>.exec | The command to run after the container start. | null or string |
| services.podman.containers.<name>.extraConfig | INI sections and values to populate the Container Quadlet. | attribute set of attribute set of ((attribute set of (null or boolean or signed integer or string or absolute path or list of (null or boolean or signed integer or string or absolute path))) or list of (null or boolean or signed integer or string or absolute path) or null or boolean or signed integer or string or absolute path) |
| services.podman.containers.<name>.extraPodmanArgs | Extra arguments to pass to the podman run command. | list of string |
| services.podman.containers.<name>.group | The group ID inside the container. | null or signed integer or string |
| services.podman.containers.<name>.image | The container image. | string |
| services.podman.containers.<name>.ip4 | Set an IPv4 address for the container. | null or string |
| services.podman.containers.<name>.ip6 | Set an IPv6 address for the container. | null or string |
| services.podman.containers.<name>.labels | The labels to apply to the container. | attribute set of string |
| services.podman.containers.<name>.network | The network mode or network/s to connect the container to. Equivalent to `podman run --network=<option>`. | string or list of string |
| services.podman.containers.<name>.networkAlias | Network aliases for the container. | list of string |
| services.podman.containers.<name>.ports | A mapping of ports between host and container | list of string |
| services.podman.containers.<name>.user | The user ID inside the container. | null or signed integer or string |
| services.podman.containers.<name>.userNS | Use a user namespace for the container. | null or string |
| services.podman.containers.<name>.volumes | The volumes to mount into the container. | list of string |
| services.podman.enable | Whether to enable Podman, a daemonless container engine. | boolean |
| services.podman.enableTypeChecks | Whether to enable type checks for podman quadlets. | boolean |
| services.podman.images | Defines Podman image quadlet configurations. | attribute set of (submodule) |
| services.podman.images.<name>.authFile | Path of the authentication file used to connect to registry. | null or absolute path |
| services.podman.images.<name>.autoStart | Whether to pull the image on boot. Requires user lingering. | boolean |
| services.podman.images.<name>.certDir | Path of certificates (*.{crt,cert,key}) used to connect to registry. | null or absolute path |
| services.podman.images.<name>.decryptionKeyFile | Path to key used for decryption of images. | null or absolute path |
| services.podman.images.<name>.description | The description of the image. | null or string |
| services.podman.images.<name>.extraConfig | INI sections and values to populate the Image Quadlet. | attribute set of attribute set of ((attribute set of (null or boolean or signed integer or string or absolute path or list of (null or boolean or signed integer or string or absolute path))) or list of (null or boolean or signed integer or string or absolute path) or null or boolean or signed integer or string or absolute path) |
| services.podman.images.<name>.extraPodmanArgs | Extra arguments to pass to the podman image pull command. | list of string |
| services.podman.images.<name>.image | Image to pull. | string |
| services.podman.images.<name>.password | Password used to connect to registry. (Will be visible in nix store) | null or string |
| services.podman.images.<name>.tag | FQIN of referenced Image when source is a file or directory archive. | null or string |
| services.podman.images.<name>.tlsVerify | Require HTTPS and verification of certificates when contacting registries. | boolean |
| services.podman.images.<name>.username | Username used to connect to registry. | null or string |
| services.podman.machines | Declarative podman machine configurations. | attribute set of (submodule) |
| services.podman.machines.<name>.autoStart | Whether to automatically start this machine on login. | boolean |
| services.podman.machines.<name>.cpus | Number of CPUs to allocate to the machine. If null, uses podman's default. | null or (positive integer, meaning >0) |
| services.podman.machines.<name>.diskSize | Disk size in GB for the machine. If null, uses podman's default. | null or (positive integer, meaning >0) |
| services.podman.machines.<name>.image | Bootable image to use for the machine. If null, uses podman's default. | null or string |
| services.podman.machines.<name>.memory | Memory in MB to allocate to the machine. If null, uses podman's default. | null or (positive integer, meaning >0) |
| services.podman.machines.<name>.rootful | Whether to run the machine in rootful mode. If null, uses podman's default. Rootful mode runs containers as root inside the VM. | null or boolean |
| services.podman.machines.<name>.swap | Swap size in MB for the machine. If null, uses podman's default. | null or (positive integer, meaning >0) |
| services.podman.machines.<name>.timezone | Timezone to set in the machine. If null, uses podman's default. | null or string |
| services.podman.machines.<name>.username | Username used in the machine image. If null, uses podman's default. | null or string |
| services.podman.machines.<name>.volumes | Volumes to mount in the machine, specified as source:target pairs. If empty, podman will use its default volume mounts. | list of string |
| services.podman.machines.<name>.watchdogInterval | Interval in seconds to check if the machine is running | positive integer, meaning >0 |
| services.podman.networks | Defines Podman network quadlet configurations. | attribute set of (submodule) |
| services.podman.networks.<name>.autoStart | Whether to start the network on boot (requires user lingering). | boolean |
| services.podman.networks.<name>.description | The description of the network. | null or string |
| services.podman.networks.<name>.driver | The network driver to use. | null or string |
| services.podman.networks.<name>.extraConfig | INI sections and values to populate the Network Quadlet | attribute set of attribute set of ((attribute set of (null or boolean or signed integer or string or absolute path or list of (null or boolean or signed integer or string or absolute path))) or list of (null or boolean or signed integer or string or absolute path) or null or boolean or signed integer or string or absolute path) |
| services.podman.networks.<name>.extraPodmanArgs | Extra arguments to pass to the podman network create command. | list of string |
| services.podman.networks.<name>.gateway | The gateway IP to use for the network. | null or string |
| services.podman.networks.<name>.internal | Whether the network should be internal | null or boolean |
| services.podman.networks.<name>.labels | The labels to apply to the network. | attribute set of string |
| services.podman.networks.<name>.subnet | The subnet to use for the network. | null or string |
| services.podman.package | The podman package to use. | package |
| services.podman.settings.containers | containers.conf configuration | TOML value |
| services.podman.settings.mounts | mounts.conf configuration | list of string |
| services.podman.settings.policy | Signature verification policy file. If this option is empty the default policy file from `skopeo` will be used. | attribute set |
| services.podman.settings.registries.block | List of blocked repositories. | list of string |
| services.podman.settings.registries.insecure | List of insecure repositories. | list of string |
| services.podman.settings.registries.search | List of repositories to search. | list of string |
| services.podman.settings.storage | storage.conf configuration | TOML value |
| services.podman.useDefaultMachine | Whether to create and use the default podman machine. The default machine will be named `podman-machine-default` and configured with podmans default values. | boolean |
| services.podman.volumes | Defines Podman volume quadlet configurations. | attribute set of (submodule) |
| services.podman.volumes.<name>.autoStart | Whether to create the volume on boot. | boolean |
| services.podman.volumes.<name>.copy | Copy content of the image located at the mountpoint of the volume on first run. | boolean |
| services.podman.volumes.<name>.description | The description of the volume. | null or string |
| services.podman.volumes.<name>.device | The path of a device which is mounted for the volume. | null or string |
| services.podman.volumes.<name>.driver | The volume driver to use. | null or string |
| services.podman.volumes.<name>.extraConfig | INI sections and values to populate the Volume Quadlet. | attribute set of attribute set of ((attribute set of (null or boolean or signed integer or string or absolute path or list of (null or boolean or signed integer or string or absolute path))) or list of (null or boolean or signed integer or string or absolute path) or null or boolean or signed integer or string or absolute path) |
| services.podman.volumes.<name>.extraPodmanArgs | Extra arguments to pass to the podman volume create command. | list of string |
| services.podman.volumes.<name>.group | The group ID owning the volume inside the container. | null or signed integer or string |
| services.podman.volumes.<name>.image | Specifies the image the volume is based on when Driver is set to the image. | null or string |
| services.podman.volumes.<name>.labels | The labels to apply to the volume. | attribute set of string |
| services.podman.volumes.<name>.preserve | Whether the volume should be preserved if it is removed from the configuration. Setting this to false will cause the volume to be deleted if the volume is removed from the configuration | boolean |
| services.podman.volumes.<name>.type | Filesystem type of Device. (used as -t in mount commands) | null or string |
| services.podman.volumes.<name>.user | The user ID owning the volume inside the container. | null or signed integer or string |
| services.polkit-gnome.enable | Whether to enable GNOME Policykit Agent. | boolean |
| services.polkit-gnome.package | The polkit_gnome package to use. | package |
| 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 {option}`services.polybar.settings` for a more nix-friendly format. | (attribute set of attribute set of (string or boolean or signed integer or list of string)) or absolute path convertible to it |
| services.polybar.enable | Whether to enable Polybar status bar. | boolean |
| services.polybar.extraConfig | Additional configuration to add. | strings concatenated with "\n" |
| services.polybar.package | The polybar package to use. | package |
| 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 {command}`polybar` executable is in the {env}`PATH`. Note, this script must start all bars in the background and then terminate. | strings concatenated with "\n" |
| 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: ```nix "module/volume" = { type = "internal/pulseaudio"; format.volume = "<ramp-volume> <label-volume>"; label.muted.text = "🔇"; label.muted.foreground = "#666"; ramp.volume = ["🔈" "🔉" "🔊"]; click.right = "pavucontrol &"; } ``` becomes: ```ini [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 & ``` | attribute set of attribute sets |
| services.poweralertd.enable | Whether to enable the Upower-powered power alertd. | boolean |
| services.poweralertd.extraArgs | Extra command line arguments to pass to poweralertd. | list of string |
| services.poweralertd.package | The poweralertd package to use. | package |
| services.proton-pass-agent.enable | Whether to enable Proton Pass as a SSH agent. | boolean |
| services.proton-pass-agent.enableBashIntegration | Whether to enable Bash integration. | boolean |
| services.proton-pass-agent.enableFishIntegration | Whether to enable Fish integration. | boolean |
| services.proton-pass-agent.enableNushellIntegration | Whether to enable Nushell integration. | boolean |
| services.proton-pass-agent.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| services.proton-pass-agent.extraArgs | Options given to `pass-cli ssh-agent shart` when the service is run. See <https://protonpass.github.io/pass-cli/commands/ssh-agent/#passphrase-protected-ssh-keys> for more information. | list of string |
| services.proton-pass-agent.package | The proton-pass-cli package to use. | package |
| services.proton-pass-agent.socket | The agent's socket; interpreted as a suffix to {env}`$XDG_RUNTIME_DIR` on Linux and `$(getconf DARWIN_USER_TEMP_DIR)` on macOS. This option adds the `--socket-path` argument to the command. | string |
| services.protonmail-bridge.enable | Whether to enable ProtonMail Bridge. | boolean |
| services.protonmail-bridge.extraPackages | List of derivations to place in ProtonMail Bridge's service path. | list of package |
| services.protonmail-bridge.logLevel | Log level of the ProtonMail Bridge service. If set to null, the service uses its default log level. | null or one of "panic", "fatal", "error", "warn", "info", "debug" |
| services.protonmail-bridge.package | The protonmail-bridge package to use. | package |
| services.psd.backupLimit | Maximum number of crash recovery snapshots to keep (the oldest ones are deleted first). | unsigned integer, meaning >=0 |
| services.psd.browsers | A list of browsers to sync. An empty list will enable all browsers to be managed by profile-sync-daemon. Available choices are: chromium chromium-dev conkeror.mozdev.org epiphany falkon firefox firefox-trunk google-chrome google-chrome-beta google-chrome-unstable heftig-aurora icecat inox luakit midori opera opera-beta opera-developer opera-legacy otter-browser qupzilla qutebrowser palemoon rekonq seamonkey surf vivaldi vivaldi-snapshot | list of string |
| services.psd.enable | Whether to enable Profile-sync-daemon service. | boolean |
| services.psd.package | The profile-sync-daemon package to use. | package |
| services.psd.resyncTimer | The amount of time to wait before syncing browser profiles back to the disk. Takes a systemd time span, see {manpage}`systemd.time(7)`. The time unit defaults to seconds if omitted. | string |
| services.psd.useBackup | Whether to completly enable or disable the crash recovery feature. | boolean |
| services.pueue.enable | Whether to enable Pueue, CLI process scheduler and manager. | boolean |
| services.pueue.package | The pueue package to use. | null or package |
| services.pueue.settings | Configuration written to {file}`$XDG_CONFIG_HOME/pueue/pueue.yml`. | YAML 1.1 value |
| services.pulseeffects.enable | Whether to enable Pulseeffects daemon Note, it is necessary to add ```nix programs.dconf.enable = true; ``` to your system configuration for the daemon to work correctly. | boolean |
| services.pulseeffects.package | The pulseeffects-legacy package to use. | package |
| services.pulseeffects.preset | Which preset to use when starting pulseeffects. Will likely need to launch pulseeffects to initially create preset. | string |
| services.radicle.node.args | Additional command line arguments to pass when executing `radicle-node`. | string |
| services.radicle.node.enable | Whether to enable Radicle Node. | boolean |
| services.radicle.node.environment | Environment to set when executing `radicle-node`. | attribute set of (null or string or absolute path or package) |
| services.radicle.node.lazy.enable | Whether to enable a proxy service to lazily start and stop Radicle Node on demand. | boolean |
| services.radicle.node.lazy.exitIdleTime | The idle time after which no interaction with Radicle Node via the `rad` CLI should be stopped, in a format that {manpage}`systemd-socket-proxyd(8)` understands for its `--exit-idle-time` argument. | string |
| services.radicle.node.package | The radicle-node package to use. | package |
| services.random-background.display | Display background images according to this option. | one of "center", "fill", "max", "scale", "tile" |
| 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. | boolean |
| services.random-background.enableXinerama | Will place a separate image per screen when enabled, otherwise a single image will be stretched across all screens. | boolean |
| 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. | string |
| 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. | null or string |
| services.random-background.package | The feh package to use. | package |
| services.recoll.configDir | The directory to contain Recoll configuration files. This will be set as {env}`RECOLL_CONFDIR`. | string |
| services.recoll.enable | Whether to enable Recoll file index service. | boolean |
| services.recoll.package | The recoll package to use. | package |
| services.recoll.settings | The configuration to be written at {file}`$RECOLL_CONFDIR/recoll.conf`. See {manpage}`recoll.conf(5)` for more details about the configuration. | attribute set of (Recoll config value) |
| services.recoll.startAt | When or how often the periodic update should run. Must be the format described from {manpage}`systemd.time(7)`. | string |
| services.redshift.dawnTime | Set the time interval of dawn manually. The times must be specified as HH:MM in 24-hour format. | null or string |
| services.redshift.duskTime | Set the time interval of dusk manually. The times must be specified as HH:MM in 24-hour format. | null or string |
| services.redshift.enable | Whether to enable Redshift. | boolean |
| services.redshift.enableVerboseLogging | Whether to enable verbose service logging. | boolean |
| services.redshift.latitude | Your current latitude, between `-90.0` and `90.0`. Must be provided along with longitude. | null or string or floating point number |
| services.redshift.longitude | Your current longitude, between `-180.0` and `180.0`. Must be provided along with latitude. | null or string or floating point number |
| services.redshift.package | Redshift derivation to use. | package |
| 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. | one of "manual", "geoclue2" |
| services.redshift.settings | The configuration to pass to Redshift. Available options for Redshift described in {manpage}`redshift(1)`. | open submodule of attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| services.redshift.temperature.day | Colour temperature to use during the day, between `1000` and `25000` K. | signed integer |
| services.redshift.temperature.night | Colour temperature to use at night, between `1000` and `25000` K. | signed integer |
| services.redshift.tray | Start the redshift-gtk tray applet. | boolean |
| services.remmina.addRdpMimeTypeAssoc | Whether to enable Remmina RDP file open option. | boolean |
| services.remmina.enable | Whether to enable Remmina. | boolean |
| services.remmina.package | The remmina package to use. | package |
| services.remmina.systemdService.enable | Whether to enable systemd Remmina service. | boolean |
| services.remmina.systemdService.startupFlags | Startup flags documented in the manpage to run at service startup. | list of string |
| services.rescrobbled.enable | Whether to enable rescrobbled, a MPRIS music scrobbler daemon. | boolean |
| services.rescrobbled.package | The rescrobbled package to use. | package |
| services.rescrobbled.settings | Configuration written to {file}`$XDG_CONFIG_HOME/rescrobbled/config.toml` See <https://github.com/InputUsername/rescrobbled#configuration> for the full list of options. | TOML value |
| services.restic.backups | Backup configurations for Restic. On Linux systems, a corresponding systemd user service (and optionally a systemd timer for automatic scheduling) will be created, along with a helper wrapper script. On non-Linux platforms, only the helper wrapper script will be created. | attribute set of (submodule) |
| services.restic.backups.<name>.backupCleanupCommand | A script that must run after finishing the backup process. This option is only supported on linux. | null or string |
| services.restic.backups.<name>.backupPrepareCommand | A script that must run before starting the backup process. This option is only supported on linux. | null or string |
| services.restic.backups.<name>.checkOpts | A list of options for 'restic check'. This option is only supported on linux. | list of string |
| services.restic.backups.<name>.createWrapper | Whether to generate and add a script to the system path, that has the same environment variables set as the systemd service. This can be used to e.g. mount snapshots or perform other opterations, without having to manually specify most options. | boolean |
| services.restic.backups.<name>.dynamicFilesFrom | A script that produces a list of files to back up. The results of this command, along with the paths specified via {option}`paths`, are given to the '--files-from' option. This option is only supported on linux. | null or string |
| services.restic.backups.<name>.environmentFile | A file containing the credentials to access the repository, in the format of an EnvironmentFile as described by {manpage}`systemd.exec(5)`. See <https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html> for the specific credentials you will need for your backend. | null or string |
| services.restic.backups.<name>.exclude | Patterns to exclude when backing up. See <https://restic.readthedocs.io/en/stable/040_backup.html#excluding-files> for details on syntax. This option is only supported on linux. | list of string |
| services.restic.backups.<name>.extraBackupArgs | Extra arguments passed to restic backup. This option is only supported on linux. | list of string |
| services.restic.backups.<name>.extraOptions | Extra extended options to be passed to the restic `-o` flag. See the restic documentation for more details. | list of string |
| services.restic.backups.<name>.inhibitsSleep | Prevents the system from sleeping while backing up. This uses systemd-inhibit to block system idling so you may need to enable polkitd with {option}`security.polkit.enable`. This option is only supported on linux. | boolean |
| services.restic.backups.<name>.initialize | Create the repository if it does not already exist. This option is only supported on linux. | boolean |
| services.restic.backups.<name>.package | The restic package to use. | package |
| services.restic.backups.<name>.passwordFile | A file containing the repository password. | string |
| services.restic.backups.<name>.paths | Paths to back up, alongside those defined by the {option}`dynamicFilesFrom` option. If left empty and {option}`dynamicFilesFrom` is also not specified, no backup command will be run. This can be used to create a prune-only job. This option is only supported on linux. | list of string |
| services.restic.backups.<name>.progressFps | Controls the frequency of progress reporting. | null or (nonnegative integer or floating point number, meaning >=0) |
| services.restic.backups.<name>.pruneOpts | A list of policy options for 'restic forget --prune', to automatically prune old snapshots. See <https://restic.readthedocs.io/en/latest/060_forget.html#removing-snapshots-according-to-a-policy> for a full list of options. Note: The 'forget' command is run *after* the 'backup' command, so keep that in mind when constructing the --keep-\* options. This option is only supported on linux. | list of string |
| services.restic.backups.<name>.rcloneOptions | Options to pass to rclone to control its behavior. See <https://rclone.org/docs/#options> for available options. When specifying option names, strip the leading `--`. To set a flag such as `--drive-use-trash`, which does not take a value, set the value to the Boolean `true`. | attribute set of (string or boolean or signed integer) |
| services.restic.backups.<name>.repository | Repository to backup to. This should be in the form of a backend specification as detailed here <https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html>. If your using the rclone backend, you can configure your remotes with {option}`programs.rclone.remotes` then use them in your backend specification. | null or string |
| services.restic.backups.<name>.repositoryFile | Path to a file containing the repository location to backup to. This should be in the same form as the {option}`repository` option. | null or absolute path |
| services.restic.backups.<name>.runCheck | Whether to run 'restic check' with the provided `checkOpts` options. This option is only supported on linux. | boolean |
| services.restic.backups.<name>.ssh-package | The openssh package to use. | package |
| services.restic.backups.<name>.timerConfig | When to run the backup. See {manpage}`systemd.timer(5)` for details. If null no timer is created and the backup will only run when explicitly started. This option is only supported on linux. | null or (attribute set of (boolean or signed integer or string or absolute path or list of (boolean or signed integer or string or absolute path))) |
| services.restic.enable | Whether to enable restic. | boolean |
| services.rsibreak.enable | Whether to enable rsibreak. | boolean |
| services.rsibreak.package | The rsibreak package to use. | package |
| services.safeeyes.enable | Whether to enable The Safe Eyes OSGI service. | boolean |
| services.safeeyes.package | The safeeyes package to use. | package |
| services.screen-locker.enable | Whether to enable screen locker for X session. | boolean |
| 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 {option}`xautolock.enable` is true, it will use this setting. See <https://linux.die.net/man/1/xautolock>. Otherwise, this will be used with {command}`xset` to configure the X server's screensaver timeout. | signed integer |
| services.screen-locker.lockCmd | Locker command to run. | string |
| services.screen-locker.lockCmdEnv | Environment variables to source a with the locker command (lockCmd). | list of string |
| services.screen-locker.xautolock.detectSleep | Whether to reset xautolock timers when awaking from sleep. No effect if {option}`xautolock.enable` is false. | boolean |
| services.screen-locker.xautolock.enable | Use xautolock for time-based locking. | boolean |
| services.screen-locker.xautolock.extraOptions | Extra command-line arguments to pass to {command}`xautolock`. No effect if {option}`xautolock.enable` is false. | list of string |
| services.screen-locker.xautolock.package | The xautolock package to use. | package |
| services.screen-locker.xss-lock.extraOptions | Extra command-line arguments to pass to {command}`xss-lock`. | list of string |
| services.screen-locker.xss-lock.package | The xss-lock package to use. | package |
| services.screen-locker.xss-lock.screensaverCycle | The X server's screensaver cycle value expressed as seconds. This will be used with {command}`xset` to configure the cycle along with timeout. | signed integer |
| services.sctd.baseTemperature | The base color temperature used by sctd, which should be between 2500 and 9000. See {manpage}`sctd(1)` for more details. | integer between 2500 and 9000 (both inclusive) |
| services.sctd.enable | Whether to enable sctd. | boolean |
| services.sctd.package | The sct package to use. | package |
| services.shikane.enable | Whether to enable shikane, A dynamic output configuration tool that automatically detects and configures connected outputs based on a set of profiles.. | boolean |
| services.shikane.package | The shikane package to use. | package |
| services.shikane.settings | Configuration written to <filename>$XDG_CONFIG_HOME/shikane/config.toml</filename>. </para><para> See <link xlink:href="https://gitlab.com/w0lff/shikane/-/blob/master/docs/shikane.5.man.md" /> for more information. | TOML value |
| services.shpool.enable | Whether to enable shpool. | boolean |
| services.shpool.package | The shpool package to use. | null or package |
| services.shpool.settings | Configuration to use for shpool. See <https://github.com/shell-pool/shpool/blob/master/CONFIG.md> for available options. | TOML value |
| services.shpool.systemd | Whether to enable systemd service and socket for shpool. | boolean |
| services.signaturepdf.enable | Whether to enable signaturepdf; signing, organizing, editing metadatas or compressing PDFs. | boolean |
| services.signaturepdf.extraConfig | Additional configuration optional. | attribute set of (string or signed integer or boolean or floating point number) |
| services.signaturepdf.package | The signaturepdf package to use. | package |
| services.signaturepdf.port | The port on which the application runs | 16 bit unsigned integer; between 0 and 65535 (both inclusive) |
| services.skhd.config | Contents of skhd's configuration file. If empty (the default), the configuration file won't be managed. See [documentation](https://github.com/koekeishiya/skhd) and [example](https://github.com/koekeishiya/skhd/blob/master/examples/skhdrc). | null or absolute path or strings concatenated with "\n" |
| services.skhd.enable | Whether to enable skhd. | boolean |
| services.skhd.errorLogFile | Absolute path to log all stderr output. | null or absolute path or string |
| services.skhd.outLogFile | Absolute path to log all stdout output. | null or absolute path or string |
| services.skhd.package | The skhd package to use. | package |
| services.snixembed.beforeUnits | List of other units that should be started after snixembed. | list of string |
| services.snixembed.enable | Whether to enable snixembed: proxy StatusNotifierItems as XEmbedded systemtray-spec icons. | boolean |
| services.snixembed.package | The snixembed package to use. | package |
| services.spotifyd.enable | Whether to enable SpotifyD connect. | boolean |
| services.spotifyd.package | The spotifyd package to use. Can be used to specify extensions. | package |
| services.spotifyd.settings | Configuration for spotifyd | TOML value |
| services.ssh-agent.defaultMaximumIdentityLifetime | Set a default value for the maximum lifetime in seconds of identities added to the agent. | null or (positive integer, meaning >0) |
| services.ssh-agent.enable | Whether to enable OpenSSH private key agent. | boolean |
| services.ssh-agent.enableBashIntegration | Whether to enable Bash integration. | boolean |
| services.ssh-agent.enableFishIntegration | Whether to enable Fish integration. | boolean |
| services.ssh-agent.enableNushellIntegration | Whether to enable Nushell integration. | boolean |
| services.ssh-agent.enableZshIntegration | Whether to enable Zsh integration. | boolean |
| services.ssh-agent.package | The openssh package to use. | package |
| services.ssh-agent.pkcs11Whitelist | Specify a list of approved path patterns for PKCS#11 and FIDO authenticator middleware libraries. When using the -s or -S options with {manpage}`ssh-add(1)`, only libraries matching these patterns will be accepted. See {manpage}`ssh-agent(1)`. | list of string |
| services.ssh-agent.socket | The agent's socket; interpreted as a suffix to {env}`$XDG_RUNTIME_DIR` on Linux and `$(getconf DARWIN_USER_TEMP_DIR)` on macOS. | string |
| services.ssh-tpm-agent.enable | Whether to enable SSH agent for TPMs. | boolean |
| services.ssh-tpm-agent.keyDir | Path of the directory to look for TPM sealed keys in, defaults to $HOME/.ssh if unset | null or absolute path |
| services.ssh-tpm-agent.package | The ssh-tpm-agent package to use. | package |
| services.stalonetray.config | Stalonetray configuration as a set of attributes. | attribute set of (null or string or boolean or signed integer) |
| services.stalonetray.enable | Whether to enable Stalonetray system tray. | boolean |
| services.stalonetray.extraConfig | Additional configuration lines for stalonetrayrc. | strings concatenated with "\n" |
| services.stalonetray.package | The stalonetray package to use. | package |
| services.status-notifier-watcher.enable | Whether to enable Status Notifier Watcher. | boolean |
| services.status-notifier-watcher.package | The status-notifier-item package to use. | package |
| services.swayidle.enable | Whether to enable idle manager for Wayland. | boolean |
| services.swayidle.events | Run command on occurrence of a event. | (submodule) or (list of (attribute set)) convertible to it |
| services.swayidle.events.after-resume | Command to run after resuming. | null or string |
| services.swayidle.events.before-sleep | Command to run before suspending. | null or string |
| services.swayidle.events.lock | Command to run when the logind session is locked. | null or string |
| services.swayidle.events.unlock | Command to run when the logind session is unlocked. | null or string |
| services.swayidle.extraArgs | Extra arguments to pass to swayidle. | list of string |
| services.swayidle.package | The swayidle package to use. | package |
| services.swayidle.systemdTarget | Systemd target to bind to. | string |
| services.swayidle.timeouts | List of commands to run after idle timeout. | list of (submodule) |
| services.swayidle.timeouts.*.command | Command to run after timeout seconds of inactivity. | string |
| services.swayidle.timeouts.*.resumeCommand | Command to run when there is activity again. | null or string |
| services.swayidle.timeouts.*.timeout | Timeout in seconds. | positive integer, meaning >0 |
| services.swaync.enable | Whether to enable Swaync notification daemon. | boolean |
| services.swaync.package | The swaynotificationcenter package to use. | package |
| services.swaync.settings | Configuration written to {file}`$XDG_CONFIG_HOME/swaync/config.json`. See <https://github.com/ErikReider/SwayNotificationCenter/blob/main/src/configSchema.json> for the documentation. | JSON value |
| 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. | null or absolute path or strings concatenated with "\n" |
| services.swayosd.enable | Whether to enable swayosd, a GTK based on screen display for keyboard shortcuts like caps-lock and volume. | boolean |
| services.swayosd.package | The swayosd package to use. | package |
| services.swayosd.stylePath | Use a custom Stylesheet file instead of looking for one. | null or absolute path |
| services.swayosd.topMargin | OSD margin from top edge (0.5 would be screen center). | null or float between 0.0 and 1.0 (inclusive) |
| services.swww.enable | Whether to enable swww, a Solution to your Wayland Wallpaper Woes. | boolean |
| services.swww.extraArgs | Options given to swww-daemon when the service is run. See `swww-daemon --help` for more information. | list of string |
| services.swww.package | The swww package to use. | package |
| services.sxhkd.enable | Whether to enable simple X hotkey daemon. | boolean |
| services.sxhkd.extraConfig | Additional configuration to add. | strings concatenated with "\n" |
| services.sxhkd.extraOptions | Command line arguments to invoke {command}`sxhkd` with. | list of string |
| services.sxhkd.keybindings | An attribute set that assigns hotkeys to commands. | attribute set of (null or string or absolute path) |
| services.sxhkd.package | The sxhkd package to use. containing the sxhkd executable | package |
| services.syncthing.allProxy | Overwrites the {env}`all_proxy` environment variable for the Syncthing process to the given value. This is normally used to let Syncthing connect through a SOCKS5 proxy server. See <https://docs.syncthing.net/users/proxying.html>. | null or string |
| services.syncthing.cert | Path to the `cert.pem` file, which will be copied into Syncthing's config directory. | null or string |
| services.syncthing.enable | Whether to enable Syncthing, a self-hosted open-source alternative to Dropbox and Bittorrent Sync. . | boolean |
| services.syncthing.extraOptions | Extra command-line arguments to pass to {command}`syncthing` | list of string |
| services.syncthing.guiAddress | The address to serve the web interface at. | string |
| services.syncthing.key | Path to the `key.pem` file, which will be copied into Syncthing's config directory. | null or string |
| services.syncthing.overrideDevices | Whether to delete the devices which are not configured via the [devices](#opt-services.syncthing.settings.devices) option. If set to `false`, devices added via the web interface will persist and will have to be deleted manually. | boolean |
| services.syncthing.overrideFolders | Whether to delete the folders which are not configured via the [folders](#opt-services.syncthing.settings.folders) option. If set to `false`, folders added via the web interface will persist and will have to be deleted manually. | boolean |
| services.syncthing.package | The syncthing package to use. | package |
| services.syncthing.passwordFile | Path to the gui password file. | null or absolute path |
| services.syncthing.settings | Extra configuration options for Syncthing. See <https://docs.syncthing.net/users/config.html>. Note that this attribute set does not exactly match the documented XML format. Instead, this is the format of the JSON REST API. There are slight differences. For example, this XML: ```xml <options> <listenAddress>default</listenAddress> <minHomeDiskFree unit="%">1</minHomeDiskFree> </options> ``` corresponds to the Nix code: ```nix { options = { listenAddresses = [ "default" ]; minHomeDiskFree = { unit = "%"; value = 1; }; }; } ``` | open submodule of (JSON value) |
| services.syncthing.settings.devices | Peers/devices which Syncthing should communicate with. Note that you can still add devices manually, but those changes will be reverted on restart if [overrideDevices](#opt-services.syncthing.overrideDevices) is enabled. | attribute set of (open submodule of (JSON value)) |
| services.syncthing.settings.devices.<name>.autoAcceptFolders | Automatically create or share folders that this device advertises at the default path. See <https://docs.syncthing.net/users/config.html?highlight=autoaccept#config-file-format>. | boolean |
| services.syncthing.settings.devices.<name>.id | The device ID. See <https://docs.syncthing.net/dev/device-ids.html>. | string |
| services.syncthing.settings.devices.<name>.name | The name of the device. | string |
| services.syncthing.settings.folders | Folders which should be shared by Syncthing. Note that you can still add folders manually, but those changes will be reverted on restart if [overrideFolders](#opt-services.syncthing.overrideFolders) is enabled. | attribute set of (open submodule of (JSON value)) |
| services.syncthing.settings.folders.<name>.copyOwnershipFromParent | On Unix systems, tries to copy file/folder ownership from the parent directory (the directory it’s located in). Requires running Syncthing as a privileged user, or granting it additional capabilities (e.g. CAP_CHOWN on Linux). | boolean |
| services.syncthing.settings.folders.<name>.devices | The devices this folder should be shared with. Each device must be defined in the [devices](#opt-services.syncthing.settings.devices) option. A list of either strings or attribute sets, where values are device names or device configurations. | list of (string or (open submodule of (JSON value))) |
| services.syncthing.settings.folders.<name>.enable | Whether to share this folder. This option is useful when you want to define all folders in one place, but not every machine should share all folders. | boolean |
| services.syncthing.settings.folders.<name>.id | The ID of the folder. Must be the same on all devices. | string |
| services.syncthing.settings.folders.<name>.label | The label of the folder. | string |
| services.syncthing.settings.folders.<name>.path | The path to the folder which should be shared. Only absolute paths (starting with `/`) and paths relative to the user's home directory (starting with `~/`) are allowed. | string starting with / or ~/ |
| services.syncthing.settings.folders.<name>.type | Controls how the folder is handled by Syncthing. See <https://docs.syncthing.net/users/config.html#config-option-folder.type>. | one of "sendreceive", "sendonly", "receiveonly", "receiveencrypted" |
| services.syncthing.settings.folders.<name>.versioning | How to keep changed/deleted files with Syncthing. There are 4 different types of versioning with different parameters. See <https://docs.syncthing.net/users/versioning.html>. | null or (open submodule of (JSON value)) |
| services.syncthing.settings.folders.<name>.versioning.type | The type of versioning. See <https://docs.syncthing.net/users/versioning.html>. | one of "external", "simple", "staggered", "trashcan" |
| services.syncthing.settings.options | The options element contains all other global configuration options | open submodule of (JSON value) |
| services.syncthing.settings.options.limitBandwidthInLan | Whether to apply bandwidth limits to devices in the same broadcast domain as the local device. | null or boolean |
| services.syncthing.settings.options.localAnnounceEnabled | Whether to send announcements to the local LAN, also use such announcements to find other devices. | null or boolean |
| services.syncthing.settings.options.localAnnouncePort | The port on which to listen and send IPv4 broadcast announcements to. | null or signed integer |
| services.syncthing.settings.options.maxFolderConcurrency | This option controls how many folders may concurrently be in I/O-intensive operations such as syncing or scanning. The mechanism is described in detail in a [separate chapter](https://docs.syncthing.net/advanced/option-max-concurrency.html). | null or signed integer |
| services.syncthing.settings.options.relaysEnabled | When true, relays will be connected to and potentially used for device to device connections. | null or boolean |
| services.syncthing.settings.options.urAccepted | Whether the user has accepted to submit anonymous usage data. The default, 0, mean the user has not made a choice, and Syncthing will ask at some point in the future. "-1" means no, a number above zero means that that version of usage reporting has been accepted. | null or signed integer |
| services.syncthing.tray.command | Syncthing tray command to use. | string |
| services.syncthing.tray.enable | Whether to enable a syncthing tray service. | boolean |
| services.syncthing.tray.package | The syncthingtray package to use. | package |
| services.systembus-notify.enable | Whether to enable systembus-notify - system bus notification daemon. | boolean |
| services.systembus-notify.package | The systembus-notify package to use. | package |
| services.taffybar.enable | Whether to enable Taffybar. | boolean |
| services.taffybar.package | The taffybar package to use. | package |
| services.tahoe-lafs.enable | Whether to enable Tahoe-LAFS. | boolean |
| services.tahoe-lafs.package | The tahoe-lafs package to use. | package |
| services.tailscale-systray.enable | Whether to enable Official Tailscale systray application for Linux. | boolean |
| services.tailscale-systray.package | The tailscale package to use. | package |
| services.taskwarrior-sync.enable | Whether to enable Taskwarrior periodic sync. | boolean |
| services.taskwarrior-sync.frequency | How often to run `taskwarrior sync`. This value is passed to the systemd timer configuration as the `OnCalendar` option. See {manpage}`systemd.time(7)` for more information about the format. | string |
| services.taskwarrior-sync.package | The taskwarrior2 package to use. | package |
| services.tldr-update.enable | Whether to enable Automatic updates for the tldr CLI . | boolean |
| services.tldr-update.package | The tldr package to use. | package |
| services.tldr-update.period | Systemd timer period to create for scheduled {command}`tldr --update`. The format is described in {manpage}`systemd.time(7)`. | string |
| services.tomat.enable | Whether to enable Tomat Pomodoro server. | boolean |
| services.tomat.package | The tomat package to use. | package |
| services.tomat.settings | Tomat configuration. See <https://github.com/jolars/tomat/blob/main/docs/configuration.md> for supported values. | open submodule of (TOML value) |
| services.trayer.enable | Whether to enable trayer, the lightweight GTK2+ systray for UNIX desktops. | boolean |
| services.trayer.package | The trayer package to use. | package |
| services.trayer.settings | Trayer configuration as a set of attributes. Further details can be found in [trayer's README](https://github.com/sargon/trayer-srg/blob/master/README). {var}`SetDockType` : boolean (default: `true`) {var}`SetPartialStrut` : boolean (default: `true`) {var}`align` : one of "left", "right", "center" (default: `"center"`) {var}`alpha` : signed integer (default: `127`) {var}`distance` : signed integer (default: `0`) {var}`distancefrom` : one of "left", "right", "top", "bottom" (default: `"top"`) {var}`edge` : one of "left", "right", "top", "bottom", "none" (default: `"bottom"`) {var}`expand` : boolean (default: `true`) {var}`height` : signed integer (default: `26`) {var}`heighttype` : one of "request", "pixel" (default: `"pixel"`) {var}`iconspacing` : signed integer (default: `0`) {var}`margin` : signed integer (default: `0`) {var}`monitor` : unsigned integer, meaning >=0, or value "primary" (singular enum) (default: `0`) {var}`padding` : signed integer (default: `0`) {var}`tint` : string (default: `"0xFFFFFFFF"`) {var}`transparent` : boolean (default: `false`) {var}`width` : signed integer (default: `100`) {var}`widthtype` : one of "request", "pixel", "percent" (default: `"percent"`) | attribute set of (null or string or boolean or signed integer) |
| services.trayscale.enable | Whether to enable An unofficial GUI wrapper around the Tailscale CLI client.. | boolean |
| services.trayscale.hideWindow | Whether to hide the trayscale window on startup. | boolean |
| services.trayscale.package | The trayscale package to use. | package |
| services.twmn.duration | The time each notification remains visible, in milliseconds. | unsigned integer, meaning >=0 |
| services.twmn.enable | Whether to enable twmn, a tiling window manager notification daemon. | boolean |
| 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. | attribute set |
| services.twmn.host | Host address to listen on for notifications. | string |
| services.twmn.icons.critical | Path to the critical notifications' icon. | null or absolute path |
| services.twmn.icons.info | Path to the informative notifications' icon. | null or absolute path |
| services.twmn.icons.warning | Path to the warning notifications' icon. | null or absolute path |
| services.twmn.port | UDP port to listen on for notifications. | 16 bit unsigned integer; between 0 and 65535 (both inclusive) |
| services.twmn.screen | Screen number to display notifications on when using a multi-head desktop. | null or signed integer |
| services.twmn.soundCommand | Command to execute to play a notification's sound. | string |
| services.twmn.text.color | Notification's text color. RGB hex and keywords (e.g. `lightgray`) are supported. | string |
| services.twmn.text.font.family | Notification text's font family. | string |
| services.twmn.text.font.package | The font package to use. Package providing the font to use for the notification text. This package is only used if `font.package` is not null. | null or package |
| services.twmn.text.font.size | Notification text's font size. | unsigned integer, meaning >=0 |
| services.twmn.text.font.variant | Notification text's font variant. | 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" |
| services.twmn.text.maxLength | Maximum length of the text before it is cut and suffixed with "...". Never cuts if `null`. | null or (unsigned integer, meaning >=0) |
| services.twmn.window.alwaysOnTop | Whether to enable forcing the notification window to always be on top. | boolean |
| services.twmn.window.animation.bounce.duration | The bounce animation duration in milliseconds. | unsigned integer, meaning >=0 |
| services.twmn.window.animation.bounce.enable | Whether to enable notification bounce when displaying next notification directly. | boolean |
| services.twmn.window.animation.easeIn | Options for the notification appearance's animation. | submodule |
| services.twmn.window.animation.easeIn.curve | The qt easing-curve animation to use for the animation. See [ QEasingCurve documentation](https://doc.qt.io/qt-5/qeasingcurve.html#Type-enum). | integer between 0 and 40 (both inclusive) |
| services.twmn.window.animation.easeIn.duration | The animation duration in milliseconds. | unsigned integer, meaning >=0 |
| services.twmn.window.animation.easeOut | Options for the notification disappearance's animation. | submodule |
| services.twmn.window.animation.easeOut.curve | The qt easing-curve animation to use for the animation. See [ QEasingCurve documentation](https://doc.qt.io/qt-5/qeasingcurve.html#Type-enum). | integer between 0 and 40 (both inclusive) |
| services.twmn.window.animation.easeOut.duration | The animation duration in milliseconds. | unsigned integer, meaning >=0 |
| services.twmn.window.color | Notification's background color. RGB hex and keywords (e.g. `lightgray`) are supported. | string |
| services.twmn.window.height | Height of the slide bar. Useful to match your tiling window manager's bar. | unsigned integer, meaning >=0 |
| services.twmn.window.offset.x | Offset of the notification's slide starting point in pixels on the horizontal axis (positive is rightward). | signed integer |
| services.twmn.window.offset.y | Offset of the notification's slide starting point in pixels on the vertical axis (positive is upward). | signed integer |
| services.twmn.window.opacity | The notification window's opacity. | integer between 0 and 100 (both inclusive) |
| 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. | one of "tr", "top_right", "tl", "top_left", "br", "bottom_right", "bl", "bottom_left", "tc", "top_center", "bc", "bottom_center", "c", "center" |
| services.udiskie.automount | Whether to automatically mount new devices. | boolean |
| 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. | boolean |
| services.udiskie.notify | Whether to show pop-up notifications. | boolean |
| services.udiskie.package | The udiskie package to use. | package |
| services.udiskie.settings | Configuration written to {file}`$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. | YAML 1.1 value |
| 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. | one of "always", "auto", "never" |
| services.unclutter.enable | Whether to enable unclutter. | boolean |
| services.unclutter.extraOptions | More arguments to pass to the unclutter command. | list of string |
| services.unclutter.package | The unclutter-xfixes package to use. | package |
| services.unclutter.threshold | Minimum number of pixels considered cursor movement. | signed integer |
| services.unclutter.timeout | Number of seconds before the cursor is marked inactive. | signed integer |
| services.unison.enable | Whether to enable Unison synchronisation. | boolean |
| services.unison.package | The unison package to use. | package |
| services.unison.pairs | Unison root pairs to keep synchronised. | attribute set of (submodule) |
| 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 {manpage}`unison(1)` for a list of available options. | attribute set of (string or list of string) |
| services.unison.pairs.<name>.roots | Pair of roots to synchronise. | list of string of length 2 |
| services.unison.pairs.<name>.stateDirectory | Unison state directory to use. | absolute path |
| services.vdirsyncer.configFile | Optional configuration file to link to use instead of the default file ({file}`$XDG_CONFIG_HOME/vdirsyncer/config`). | null or absolute path |
| services.vdirsyncer.enable | Whether to enable vdirsyncer. | boolean |
| services.vdirsyncer.frequency | How often to run vdirsyncer. This value is passed to the systemd timer configuration as the onCalendar option. See {manpage}`systemd.time(7)` for more information about the format. | string |
| services.vdirsyncer.package | The vdirsyncer package to use. | package |
| services.vdirsyncer.verbosity | Whether vdirsyncer should produce verbose output. | null or one of "CRITICAL", "ERROR", "WARNING", "INFO", "DEBUG" |
| services.volnoti.enable | Whether to enable Volnoti volume HUD daemon. | boolean |
| services.volnoti.package | The volnoti package to use. | package |
| services.walker.enable | Whether to enable walker. | boolean |
| services.walker.package | The walker package to use. | null or package |
| services.walker.settings | Configuration settings for walker. All the available options can be found here: <https://github.com/abenz1267/walker/wiki/Basic-Configuration> | TOML value |
| services.walker.systemd.enable | Whatever to enable Walker's Systemd Unit. | boolean |
| services.walker.theme | The custom theme used by walker. Setting this option overrides `settings.theme`. | null or (submodule) |
| services.walker.theme.layout | The layout of the theme. See <https://github.com/abenz1267/walker/wiki/Theming> for the full list of options. | TOML value |
| services.walker.theme.name | The theme name. | string |
| services.walker.theme.style | The styling of the theme, written in GTK CSS. | strings concatenated with "\n" |
| services.way-displays.enable | Whether to enable way-displays. | boolean |
| services.way-displays.package | The way-displays package to use. | package |
| services.way-displays.settings | The way-displays configuration written to {file}`$XDG_CONFIG_HOME/way-displays/cfg.yml`. See <https://github.com/alex-courtis/way-displays/wiki/Configuration> for a description of available options. When `null` a configuration file is not generated, which allows way-displays to write its own configuration. | null or YAML 1.1 value |
| services.way-displays.systemdTarget | Systemd target to bind to. | string |
| services.wayvnc.autoStart | Whether to enable autostarting of wayvnc. | boolean |
| services.wayvnc.enable | Whether to enable wayvnc VNC server. | boolean |
| services.wayvnc.package | The wayvnc package to use. | package |
| services.wayvnc.settings | See CONFIGURATION section in {manpage}`wayvnc(1)`. | open submodule of attribute set of (atom (null, bool, int, float or string)) |
| services.wayvnc.settings.address | The address to which the server shall bind, e.g. 0.0.0.0 or localhost. | string |
| services.wayvnc.settings.port | The port to which the server shall bind. | 16 bit unsigned integer; between 0 and 65535 (both inclusive) |
| services.wayvnc.systemdTarget | Systemd target to bind to. | string |
| services.wl-clip-persist.clipboardType | The clipboard type to persist. - `regular`: Persist the regular clipboard only (recommended). - `primary`: Persist the primary selection only. - `both`: Persist both regular and primary clipboards. Note: Operating on the primary clipboard may have unintended side effects for some applications. | one of "regular", "primary", "both" |
| services.wl-clip-persist.enable | Whether to enable wl-clip-persist, a Wayland clipboard persistence tool. | boolean |
| services.wl-clip-persist.extraOptions | Extra command-line arguments to pass to wl-clip-persist. Available options include: - `--write-timeout <ms>`: Timeout for writing clipboard data (default: 3000). - `--ignore-event-on-error`: Only handle events without errors. - `--all-mime-type-regex <regex>`: Filter events by MIME type regex. - `--selection-size-limit <bytes>`: Limit clipboard data size. - `--reconnect-tries <n>`: Number of reconnection attempts. - `--reconnect-delay <ms>`: Delay between reconnect attempts (default: 100). - `--disable-timestamps`: Disable log timestamps. | list of string |
| services.wl-clip-persist.package | The wl-clip-persist package to use. | package |
| services.wl-clip-persist.systemdTargets | The systemd targets that will automatically start the wl-clip-persist service. | (list of string) or string |
| services.wlsunset.enable | Whether to enable wlsunset. | boolean |
| services.wlsunset.gamma | Gamma value to use. | string or floating point number or signed integer |
| services.wlsunset.latitude | Your current latitude, between `-90.0` and `90.0`. | null or string or floating point number or signed integer |
| services.wlsunset.longitude | Your current longitude, between `-180.0` and `180.0`. | null or string or floating point number or signed integer |
| services.wlsunset.output | Name of output to use, by default all outputs are used. | null or string |
| services.wlsunset.package | The wlsunset package to use. | package |
| services.wlsunset.sunrise | The time when the sun rises (in 24 hour format). | null or string |
| services.wlsunset.sunset | The time when the sun sets (in 24 hour format). | null or string |
| services.wlsunset.systemdTarget | Systemd target to bind to. | string |
| services.wlsunset.temperature.day | Colour temperature to use during the day, in Kelvin (K). This value must be greater than `temperature.night`. | signed integer |
| services.wlsunset.temperature.night | Colour temperature to use during the night, in Kelvin (K). This value must be smaller than `temperature.day`. | signed integer |
| services.wluma.enable | Whether to enable Enable wluma, a service for automatic brightness adjustment. | boolean |
| services.wluma.package | The wluma package to use. | package |
| services.wluma.settings | Configuration to use for wluma. See <https://github.com/maximbaz/wluma/blob/main/config.toml> for available options. | TOML value |
| services.wluma.systemd.enable | Wluma systemd integration | boolean |
| services.wluma.systemd.target | The systemd target that will automatically start the Wluma service. When setting this value to `"sway-session.target"`, make sure to also enable {option}`wayland.windowManager.sway.systemd.enable`, otherwise the service may never be started. | null or string |
| services.wob.enable | Whether to enable wob. | boolean |
| services.wob.package | The wob package to use. | null or package |
| services.wob.settings | Configuration written to {file}`$XDG_CONFIG_HOME/wob/wob.ini`. See {manpage}`wob.ini(5)` for documentation. | attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)) |
| services.wob.systemd | Whether to enable systemd service and socket for wob. | boolean |
| services.wpaperd.enable | Whether to enable wpaperd. | boolean |
| services.wpaperd.package | The wpaperd package to use. | null or package |
| services.wpaperd.settings | Configuration written to {file}`$XDG_CONFIG_HOME/wpaperd/wallpaper.toml`. See <https://github.com/danyspin97/wpaperd#wallpaper-configuration> for the full list of options. | TOML value |
| services.xcape.enable | Whether to enable xcape. | boolean |
| services.xcape.mapExpression | The value has the grammar `Key[|OtherKey]`. The list of key names is found in the header file {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. | attribute set of string |
| services.xcape.package | The xcape package to use. | package |
| services.xcape.timeout | If you hold a key longer than this timeout, xcape will not generate a key event. Default is 500 ms. | null or signed integer |
| services.xembed-sni-proxy.enable | Whether to enable XEmbed SNI Proxy. | boolean |
| services.xembed-sni-proxy.package | The plasma-workspace package to use. | package |
| services.xidlehook.detect-sleep | Whether to enable detecting when the system wakes up from a suspended state and resetting the idle timer. | boolean |
| services.xidlehook.enable | Whether to enable xidlehook systemd service. | boolean |
| services.xidlehook.environment | Extra environment variables to be exported in the script. These options are passed unescaped as `export name=value`. | attribute set of string |
| services.xidlehook.not-when-audio | Disable locking when audio is playing. | boolean |
| services.xidlehook.not-when-fullscreen | Disable locking when a fullscreen application is in use. | boolean |
| services.xidlehook.once | Whether to enable running the program once and exiting. | boolean |
| services.xidlehook.package | The xidlehook package to use. | package |
| 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. | list of (submodule) |
| 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. | string |
| services.xidlehook.timers.*.command | Command executed after the idle timeout is reached. Path to executables are accepted. The command is automatically escaped. | null or string |
| services.xidlehook.timers.*.delay | Time before executing the command. | unsigned integer, meaning >=0 |
| services.xscreensaver.enable | Whether to enable XScreenSaver. | boolean |
| services.xscreensaver.package | The xscreensaver package to use. | package |
| services.xscreensaver.settings | The settings to use for XScreenSaver. | attribute set of (boolean or signed integer or string) |
| services.xsettingsd.enable | Whether to enable xsettingsd. | boolean |
| services.xsettingsd.package | The xsettingsd package to use. | package |
| services.xsettingsd.settings | Xsettingsd options for configuration file. See <https://github.com/derat/xsettingsd/wiki/Settings> for documentation on these values. | attribute set of (boolean or signed integer or string) |
| services.xsuspender.debug | Whether to enable debug output. | boolean |
| services.xsuspender.defaults | XSuspender defaults. | submodule |
| services.xsuspender.defaults.autoSuspendOnBattery | Whether to auto-apply rules when switching to battery power even if the window(s) didn't just lose focus. | boolean |
| 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. | signed integer |
| services.xsuspender.defaults.execResume | Before resuming, execute this shell script. Resume the process regardless script failure. | null or string |
| services.xsuspender.defaults.execSuspend | Before suspending, execute this shell script. If it fails, abort suspension. | null or string |
| services.xsuspender.defaults.matchWmClassContains | Match windows that wm class contains string. | null or string |
| services.xsuspender.defaults.matchWmClassGroupContains | Match windows where wm class group contains string. | null or string |
| services.xsuspender.defaults.matchWmNameContains | Match windows where wm name contains string. | null or string |
| services.xsuspender.defaults.onlyOnBattery | Whether to enable process suspend only on battery. | boolean |
| services.xsuspender.defaults.resumeEvery | Resume interval in seconds. | signed integer |
| services.xsuspender.defaults.resumeFor | Resume duration in seconds. | signed integer |
| services.xsuspender.defaults.sendSignals | Whether to send SIGSTOP / SIGCONT signals or not. If false just the exec scripts are run. | boolean |
| services.xsuspender.defaults.suspendDelay | Initial suspend delay in seconds. | signed integer |
| services.xsuspender.defaults.suspendSubtreePattern | Also suspend descendant processes that match this regex. | null or string |
| services.xsuspender.enable | Whether to enable XSuspender. | boolean |
| services.xsuspender.package | The xsuspender package to use. | package |
| services.xsuspender.rules | Attribute set of XSuspender rules. | attribute set of (submodule) |
| 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. | boolean |
| 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. | signed integer |
| services.xsuspender.rules.<name>.execResume | Before resuming, execute this shell script. Resume the process regardless script failure. | null or string |
| services.xsuspender.rules.<name>.execSuspend | Before suspending, execute this shell script. If it fails, abort suspension. | null or string |
| services.xsuspender.rules.<name>.matchWmClassContains | Match windows that wm class contains string. | null or string |
| services.xsuspender.rules.<name>.matchWmClassGroupContains | Match windows where wm class group contains string. | null or string |
| services.xsuspender.rules.<name>.matchWmNameContains | Match windows where wm name contains string. | null or string |
| services.xsuspender.rules.<name>.onlyOnBattery | Whether to enable process suspend only on battery. | boolean |
| services.xsuspender.rules.<name>.resumeEvery | Resume interval in seconds. | signed integer |
| services.xsuspender.rules.<name>.resumeFor | Resume duration in seconds. | signed integer |
| services.xsuspender.rules.<name>.sendSignals | Whether to send SIGSTOP / SIGCONT signals or not. If false just the exec scripts are run. | boolean |
| services.xsuspender.rules.<name>.suspendDelay | Initial suspend delay in seconds. | signed integer |
| services.xsuspender.rules.<name>.suspendSubtreePattern | Also suspend descendant processes that match this regex. | null or string |
| services.yubikey-agent.enable | Whether to enable Seamless ssh-agent for YubiKeys. | boolean |
| services.yubikey-agent.package | The yubikey-agent package to use. | package |
| 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 ```console $ home-manager generations | head -1 2022-05-02 22:49 : id 1758 -> /nix/store/jy…ac-home-manager-generation ``` then run ```console $ /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. ::: | attribute set of (submodule) |
| specialisation.<name>.configuration | Arbitrary Home Manager configuration settings. | submodule |
| 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 {manpage}`systemd.automount(5)`. | attribute set of (open submodule of systemd automount unit configuration) |
| systemd.user.automounts.<name>.Unit.Description | A short human-readable label of the unit. | null or string |
| systemd.user.automounts.<name>.Unit.Documentation | List of URIs referencing documentation for the unit. | (list of string) or string convertible to it |
| systemd.user.enable | Whether to enable the user systemd service manager. | boolean |
| 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 {manpage}`systemd.mount(5)`. | attribute set of (open submodule of systemd mount unit configuration) |
| systemd.user.mounts.<name>.Unit.Description | A short human-readable label of the unit. | null or string |
| systemd.user.mounts.<name>.Unit.Documentation | List of URIs referencing documentation for the unit. | (list of string) or string convertible to it |
| systemd.user.packages | Packages providing systemd user units. This is the Home Manager equivalent of NixOS’s `systemd.packages` option. Files in {file}`«pkg»/share/systemd/user` will be included in the user’s {file}`$XDG_DATA_HOME/systemd/user` directory. | list of package |
| 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 {manpage}`systemd.path(5)`. | attribute set of (open submodule of systemd path unit configuration) |
| systemd.user.paths.<name>.Unit.Description | A short human-readable label of the unit. | null or string |
| systemd.user.paths.<name>.Unit.Documentation | List of URIs referencing documentation for the unit. | (list of string) or string convertible to it |
| 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 {manpage}`systemd.service(5)`. | attribute set of (open submodule of systemd service unit configuration) |
| systemd.user.services.<name>.Service.Environment | Environment variables available to executed processes. | (list of string) or string convertible to it |
| systemd.user.services.<name>.Service.ExecStart | Command that is executed when this service is started. | package or string or list of (package or string) |
| systemd.user.services.<name>.Unit.Description | A short human-readable label of the unit. | null or string |
| systemd.user.services.<name>.Unit.Documentation | List of URIs referencing documentation for the unit. | (list of string) or string convertible to it |
| systemd.user.services.<name>.Unit.X-Reload-Triggers | List of free form strings that can be used to trigger a service reload during Home Manager activation. | list of (package or string) |
| systemd.user.services.<name>.Unit.X-Restart-Triggers | List of free form strings that can be used to trigger a service restart during Home Manager activation. | list of (package or string) |
| systemd.user.services.<name>.Unit.X-SwitchMethod | The preferred method to use when switching from an old to a new version of this service. | one of <null>, "reload", "restart", "stop-start", "keep-old" |
| systemd.user.servicesStartTimeoutMs | How long to wait for started services to fail until their start is considered successful. The value 0 indicates no timeout. | unsigned integer, meaning >=0 |
| systemd.user.sessionVariables | Environment variables that will be set for the user session. The variable values must be as described in {manpage}`environment.d(5)`. | attribute set of (signed integer or string) |
| systemd.user.settings | Extra config options for user session service manager. See {manpage}`systemd-user.conf(5)` for available options. | open submodule of 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) |
| systemd.user.settings.Manager.DefaultEnvironment | Configures environment variables passed to all executed processes. | attribute set of (null or string or absolute path or package) |
| systemd.user.settings.Manager.ManagerEnvironment | Sets environment variables just for the manager process itself. | attribute set of (null or string or absolute path or package) |
| 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 {manpage}`systemd.slice(5)`. | attribute set of (open submodule of systemd slice unit configuration) |
| systemd.user.slices.<name>.Unit.Description | A short human-readable label of the unit. | null or string |
| systemd.user.slices.<name>.Unit.Documentation | List of URIs referencing documentation for the unit. | (list of string) or string convertible to it |
| 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 {manpage}`systemd.socket(5)`. | attribute set of (open submodule of systemd socket unit configuration) |
| systemd.user.sockets.<name>.Unit.Description | A short human-readable label of the unit. | null or string |
| systemd.user.sockets.<name>.Unit.Documentation | List of URIs referencing documentation for the unit. | (list of string) or string convertible to it |
| 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 {command}`systemctl` commands to run. You will have to manually run those commands after the switch. `sd-switch` (or `true`) : Use sd-switch, a tool that determines the necessary changes and automatically apply them. | boolean or one of "suggest", "sd-switch" |
| systemd.user.systemctlPath | Absolute path to the {command}`systemctl` tool. This option may need to be set if running Home Manager on a non-NixOS distribution. | string |
| 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 {manpage}`systemd.target(5)`. | attribute set of (open submodule of systemd target unit configuration) |
| systemd.user.targets.<name>.Unit.Description | A short human-readable label of the unit. | null or string |
| systemd.user.targets.<name>.Unit.Documentation | List of URIs referencing documentation for the unit. | (list of string) or string convertible to it |
| 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 {manpage}`systemd.timer(5)`. | attribute set of (open submodule of systemd timer unit configuration) |
| systemd.user.timers.<name>.Unit.Description | A short human-readable label of the unit. | null or string |
| systemd.user.timers.<name>.Unit.Documentation | List of URIs referencing documentation for the unit. | (list of string) or string convertible to it |
| systemd.user.tmpfiles.rules | Rules for creating and cleaning up temporary files automatically. See {manpage}`tmpfiles.d(5)` for the exact format. | list of string |
| targets.darwin.copyApps.directory | Path to link apps relative to the home directory. | string |
| targets.darwin.copyApps.enable | Whether to enable copying macOS applications to the user environment (works with Spotlight). | boolean |
| targets.darwin.copyApps.enableChecks | Whether to enable enable App Management checks. | boolean |
| targets.darwin.currentHostDefaults | Set macOS user defaults. Unlike {option}`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. ::: | open submodule of attribute set of attribute set of anything |
| targets.darwin.currentHostDefaults."com.apple.controlcenter".BatteryShowPercentage | Whether to show battery percentage in the menu bar. | null or boolean |
| 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 {option}`targets.darwin.currentHostDefaults`. ::: | open submodule of attribute set of attribute set of anything |
| targets.darwin.defaults."com.apple.Safari"."WebKitPreferences.developerExtrasEnabled" | Configures the web inspector. ::: {.warning} Instead of setting this option directly, set {option}`IncludeDevelopMenu` instead. ::: | null or boolean |
| targets.darwin.defaults."com.apple.Safari".AutoFillCreditCardData | Whether to enable autofill of credit card numbers. | null or boolean |
| targets.darwin.defaults."com.apple.Safari".AutoFillPasswords | Whether to enable autofill of usernames and passwords. | null or boolean |
| targets.darwin.defaults."com.apple.Safari".AutoOpenSafeDownloads | Whether to enable opening of downloaded files. | null or boolean |
| targets.darwin.defaults."com.apple.Safari".IncludeDevelopMenu | Whether to enable "Develop" menu in the menu bar. | null or boolean |
| targets.darwin.defaults."com.apple.Safari".ShowOverlayStatusBar | Whether to enable status bar. | null or boolean |
| targets.darwin.defaults."com.apple.Safari".WebKitDeveloperExtrasEnabledPreferenceKey | Configures the web inspector. ::: {.warning} Instead of setting this option directly, set {option}`IncludeDevelopMenu` instead. ::: | null or boolean |
| targets.darwin.defaults."com.apple.Safari.SandboxBroker".ShowDevelopMenu | Show the "Develop" menu in Safari's menubar. ::: {.warning} Instead of setting this option directly, set {option}`"com.apple.Safari".IncludeDevelopMenu` instead. ::: | null or boolean |
| targets.darwin.defaults."com.apple.desktopservices".DSDontWriteNetworkStores | Disable use of {file}`.DS_Store` files on network shares. See [the official article](https://support.apple.com/en-us/HT208209) for more info. | null or boolean |
| targets.darwin.defaults."com.apple.desktopservices".DSDontWriteUSBStores | Disable use of {file}`.DS_Store` files on thumb drives. | null or boolean |
| targets.darwin.defaults."com.apple.dock".autohide | Hide the Dock automatically | null or boolean |
| targets.darwin.defaults."com.apple.dock".expose-group-apps | Whether to enable grouping of windows by application in Mission Control. | null or boolean |
| targets.darwin.defaults."com.apple.dock".orientation | Position of the Dock on the screen | null or one of "left", "bottom", "right" |
| targets.darwin.defaults."com.apple.dock".size-immutable | Whether to enable locking of the dock size. | null or boolean |
| targets.darwin.defaults."com.apple.dock".tilesize | Sets the size of the dock. | null or signed integer |
| targets.darwin.defaults."com.apple.finder".AppleShowAllFiles | Show hidden files in Finder | null or boolean |
| targets.darwin.defaults."com.apple.finder".FXRemoveOldTrashItems | Automatically delete items from trash after 30 days | null or boolean |
| targets.darwin.defaults."com.apple.finder".ShowPathBar | Show the path bar at the bottom of a Finder window | null or boolean |
| targets.darwin.defaults."com.apple.finder".ShowStatusBar | Show the status bar at the bottom of a Finder window | null or boolean |
| targets.darwin.defaults."com.apple.menuextra.battery".ShowPercent | This option no longer works on macOS 11 and later. Instead, use {option}`targets.darwin.currentHostDefaults.\"com.apple.controlcenter\".BatteryShowPercentage`. Whether to show battery percentage in the menu bar. | null or one of "YES", "NO" |
| targets.darwin.defaults."com.apple.menuextra.clock".IsAnalog | Whether to enable showing an analog clock instead of a digital one. | null or boolean |
| targets.darwin.defaults."com.apple.menuextra.clock".Show24Hour | Whether to enable showing a 24-hour clock, instead of a 12-hour clock. | null or boolean |
| targets.darwin.defaults."com.apple.menuextra.clock".ShowAMPM | Show the AM/PM label. Useful if Show24Hour is false. Default is null. | null or boolean |
| targets.darwin.defaults."com.apple.menuextra.clock".ShowDate | Show the full date. Default is null. 0 = When Space Allows 1 = Always 2 = Never | null or one of 0, 1, 2 |
| targets.darwin.defaults."com.apple.menuextra.clock".ShowDayOfMonth | Whether to enable showing the day of the month. | null or boolean |
| targets.darwin.defaults."com.apple.menuextra.clock".ShowDayOfWeek | Whether to enable showing the day of the week. | null or boolean |
| targets.darwin.defaults."com.apple.menuextra.clock".ShowSeconds | Whether to enable showing the clock with second precision, instead of minutes. | null or boolean |
| targets.darwin.defaults."com.googlecode.iterm2".AddNewTabAtEndOfTabs | Whether to enable placement of new tabs at the end of the tab bar. | null or boolean |
| targets.darwin.defaults."com.googlecode.iterm2".AlternateMouseScroll | Whether to enable arrow keys when scrolling in alternate screen mode. | null or boolean |
| targets.darwin.defaults."com.googlecode.iterm2".CopySelection | Whether to enable copy to clipboard upon selecting text. | null or boolean |
| targets.darwin.defaults."com.googlecode.iterm2".ExperimentalKeyHandling | Whether to enable experimental key handling for AquaSKK compatibility. | null or boolean |
| 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 | null or signed integer |
| targets.darwin.defaults.NSGlobalDomain.AppleLanguages | Sets the language to use in the preferred order. | null or (list of string) |
| targets.darwin.defaults.NSGlobalDomain.AppleLocale | Configures the user locale. | null or string |
| targets.darwin.defaults.NSGlobalDomain.AppleMeasurementUnits | Sets the measurement unit. | null or one of "Centimeters", "Inches" |
| targets.darwin.defaults.NSGlobalDomain.AppleMetricUnits | Whether to enable the metric system. | null or boolean |
| targets.darwin.defaults.NSGlobalDomain.ApplePressAndHoldEnabled | Repeat a key when it is held down (false) or display the accented character selector (true) | null or boolean |
| targets.darwin.defaults.NSGlobalDomain.AppleShowAllExtensions | Always show file extensions in Finder | null or boolean |
| targets.darwin.defaults.NSGlobalDomain.AppleTemperatureUnit | Sets the temperature unit. | null or one of "Celsius", "Fahrenheit" |
| 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. | null or signed integer |
| targets.darwin.defaults.NSGlobalDomain.NSAutomaticCapitalizationEnabled | Whether to enable automatic capitalization. | null or boolean |
| targets.darwin.defaults.NSGlobalDomain.NSAutomaticDashSubstitutionEnabled | Whether to enable smart dashes. | null or boolean |
| targets.darwin.defaults.NSGlobalDomain.NSAutomaticPeriodSubstitutionEnabled | Whether to enable period with double space. | null or boolean |
| targets.darwin.defaults.NSGlobalDomain.NSAutomaticQuoteSubstitutionEnabled | Whether to enable smart quotes. | null or boolean |
| targets.darwin.defaults.NSGlobalDomain.NSAutomaticSpellingCorrectionEnabled | Whether to enable spelling correction. | null or boolean |
| targets.darwin.keybindings | This will configure the default keybindings for text fields in macOS applications. See [Apple's documentation](https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/EventOverview/TextDefaultsBindings/TextDefaultsBindings.html) for more details. ::: {.warning} Existing keybinding configuration will be wiped when using this option. ::: | attribute set of anything |
| targets.darwin.linkApps.directory | Path to link apps relative to the home directory. | string |
| targets.darwin.linkApps.enable | Whether to enable linking macOS applications to the user environment. | boolean |
| targets.darwin.search | Default search engine. | null or one of "Bing", "DuckDuckGo", "Ecosia", "Google", "Yahoo" |
| targets.genericLinux.enable | Whether to enable settings that make Home Manager work better on GNU/Linux distributions other than NixOS. | boolean |
| targets.genericLinux.gpu.enable | Whether to enable GPU driver integration for non-NixOS systems. | boolean |
| targets.genericLinux.gpu.nixStateDirectory | The path to the Nix state directory. This only needs to be changed from default if the path was overridden, e.g., by setting the `NIX_STATE_DIR` environment variable. | absolute path |
| targets.genericLinux.gpu.nvidia.enable | Whether to enable proprietary Nvidia drivers. | boolean |
| targets.genericLinux.gpu.nvidia.sha256 | The hash of the downloaded driver file. It can be obtained by running, for example, ```sh nix store prefetch-file https://download.nvidia.com/XFree86/Linux-x86_64/@VERSION@/NVIDIA-Linux-x86_64-@VERSION@.run ``` where `@VERSION@` is replaced with the exact driver version. If you are on ARM, replace Linux-x86_64 with Linux-aarch64. | null or string matching the pattern sha256-.*= |
| targets.genericLinux.gpu.nvidia.version | The exact version of Nvidia drivers to use. This version **must** match the version of the driver used by the host OS. | null or string matching the pattern [0-9]{3}\.[0-9]{2,3}\.[0-9]{2} |
| targets.genericLinux.gpu.packages | The Nixpkgs package set where drivers are taken from. | attribute set |
| targets.genericLinux.gpu.setupPackage | Resulting setup package. | package |
| targets.genericLinux.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 | one of "mesa", "mesaPrime", "nvidia", "nvidiaPrime" |
| targets.genericLinux.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 | null or (list of (one of "mesa", "mesaPrime", "nvidia", "nvidiaPrime")) |
| targets.genericLinux.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 | one of "mesa", "mesaPrime", "nvidia", "nvidiaPrime" |
| targets.genericLinux.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. | null or (attribute set) |
| targets.genericLinux.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. | string |
| targets.genericLinux.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. | null or one of "mesa", "nvidia" |
| targets.genericLinux.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. | null or string |
| targets.genericLinux.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. | boolean |
| 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. | boolean |
| vdirsyncer.auth | Authentication settings. The default is `basic`. | null or one of "basic", "digest", "guess" |
| 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. | null or string or list of string |
| 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. | null or (list of string) |
| 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. | null or (list of string) |
| vdirsyncer.collections | The collections to synchronize between the storages. | null or (list of (string or list of string)) |
| 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. | null or one of "remote wins", "local wins" or list of string |
| vdirsyncer.enable | Whether to enable synchronization using vdirsyncer. | boolean |
| 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. | null or (list of string) |
| vdirsyncer.metadata | Metadata keys that should be synchronized when vdirsyncer metasync is executed. | list of string |
| 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. | null or one of "revert", "error", "ignore" |
| vdirsyncer.postHook | Command to call for each item creation and modification. The command will be called with the path of the new/updated file. | null or strings concatenated with "\n" |
| vdirsyncer.timeRange | A time range to synchronize. start and end can be any Python expression that returns a `datetime.datetime` object. | null or (submodule) |
| vdirsyncer.timeRange.end | End of time range to show. | string |
| vdirsyncer.timeRange.start | Start of time range to show. | string |
| vdirsyncer.tokenFile | A file path where access tokens are stored. | null or string |
| vdirsyncer.urlCommand | A command that prints the URL of the storage. | null or (list of string) |
| vdirsyncer.useVcard4 | Specifies whether vdirsyncer should request vCards in version 4.0. If set to `false` then vdirsyncer will default to version 3.0. | boolean |
| vdirsyncer.userAgent | The user agent to report to the server. Defaults to `vdirsyncer`. | null or string |
| vdirsyncer.userNameCommand | A command that prints the user name to standard output. | null or (list of string) |
| vdirsyncer.verify | Null or path to certificate to verify SSL against | null or absolute path |
| 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. | null or string |
| wayland.systemd.target | The systemd target that will automatically start the graphical Wayland services. This option is a generalization of individual `systemd.target` or `systemdTarget`, and affect all Wayland services by default. When setting this value to `"sway-session.target"`, make sure to also enable {option}`wayland.windowManager.sway.systemd.enable`, otherwise the service may never be started. | string |
| 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 {env}`PATH`, but does not make certain system-level changes. NixOS users should enable the NixOS module with {option}`programs.hyprland.enable`, which makes system-level changes such as adding a desktop session entry. ::: | boolean |
| wayland.windowManager.hyprland.extraConfig | Extra configuration lines to add to `~/.config/hypr/hyprland.conf`. | strings concatenated with "\n" |
| wayland.windowManager.hyprland.finalPackage | The Hyprland package after applying configuration. | null or package |
| wayland.windowManager.hyprland.finalPortalPackage | The xdg-desktop-portal-hyprland package after overriding its hyprland input. | null or package |
| wayland.windowManager.hyprland.importantPrefixes | List of prefix of attributes to source at the top of the config. | list of string |
| wayland.windowManager.hyprland.package | The hyprland package to use. Set this to null if you use the NixOS module to install Hyprland. | null or package |
| wayland.windowManager.hyprland.plugins | List of Hyprland plugins to use. Can either be packages or absolute plugin paths. | list of (package or absolute path) |
| wayland.windowManager.hyprland.portalPackage | The xdg-desktop-portal-hyprland package to use. | null or package |
| 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.hypr.land> for more examples. ::: {.note} Use the [](#opt-wayland.windowManager.hyprland.plugins) option to declare plugins. ::: | Hyprland configuration value |
| wayland.windowManager.hyprland.sourceFirst | Whether to enable putting source entries at the top of the configuration . | boolean |
| wayland.windowManager.hyprland.submaps | Attribute set of Hyprland submaps. See <https://wiki.hypr.land/Configuring/Binds#submaps> to learn about submaps | attribute set of (submodule) |
| wayland.windowManager.hyprland.submaps.<name>.onDispatch | Submap to use after a dispatch. Can either be a name or `reset` to disable submap after any dispatch. | string |
| wayland.windowManager.hyprland.submaps.<name>.settings | Hyprland binds to be put in the submap | Hyprland binds |
| wayland.windowManager.hyprland.systemd.enable | Whether to enable {file}`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` - `XDG_SESSION_TYPE` | boolean |
| wayland.windowManager.hyprland.systemd.enableXdgAutostart | Whether to enable autostart of applications using {manpage}`systemd-xdg-autostart-generator(8)`. | boolean |
| wayland.windowManager.hyprland.systemd.extraCommands | Extra commands to be run after D-Bus activation. | list of string |
| wayland.windowManager.hyprland.systemd.variables | Environment variables to be imported in the systemd & D-Bus user environment. | list of string |
| wayland.windowManager.hyprland.xwayland.enable | Whether or not to enable XWayland. Overrides the `enableXWayland` option of the Hyprland package. In newer versions of Hyprland, you can use the {option}`wayland.windowManager.hyprland.settings.xwayland` option to avoid recompiling Hyprland. | boolean |
| wayland.windowManager.labwc.autostart | Command to autostart when labwc start. | list of string |
| wayland.windowManager.labwc.enable | Whether to enable Labwc, a wayland window-stacking compositor. | boolean |
| wayland.windowManager.labwc.environment | Environment variable to add when labwc start. | list of string |
| wayland.windowManager.labwc.extraConfig | Extra lines appended to {file}`$XDG_CONFIG_HOME/labwc/rc.xml`. | strings concatenated with "\n" |
| wayland.windowManager.labwc.menu | Config to configure labwc menu | list of (XML value) |
| wayland.windowManager.labwc.package | The labwc package to use. Set to `null` to use Nixos labwc package. | null or package |
| wayland.windowManager.labwc.rc | Config to configure labwc options. Use "@attributes" for attributes. See <https://labwc.github.io/labwc-config.5.html> for configuration. | open submodule of (XML value) |
| wayland.windowManager.labwc.systemd.enable | Whether to enable {file}`labwc-session.target` on labwc startup. This links to {file}`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` | boolean |
| wayland.windowManager.labwc.systemd.extraCommands | Extra commands to be run after D-Bus activation. | list of string |
| wayland.windowManager.labwc.systemd.variables | Environment variables to be imported in the systemd & D-Bus user environment. | list of string |
| wayland.windowManager.labwc.xwayland.enable | Whether to enable XWayland. | boolean |
| wayland.windowManager.river.enable | Whether to enable the river window manager. | boolean |
| wayland.windowManager.river.extraConfig | Extra lines appended to {file}`$XDG_CONFIG_HOME/river/init`. | strings concatenated with "\n" |
| wayland.windowManager.river.extraSessionVariables | Extra session variables set when running the compositor. | attribute set |
| wayland.windowManager.river.package | The river-classic 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. | null or package |
| wayland.windowManager.river.settings | General settings given to `riverctl`. | River configuration value |
| wayland.windowManager.river.systemd.enable | Whether to enable {file}`river-session.target` on river startup. This links to {file}`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` | boolean |
| wayland.windowManager.river.systemd.extraCommands | Extra commands to be run after D-Bus activation. | list of string |
| wayland.windowManager.river.systemd.variables | Environment variables to be imported in the systemd & D-Bus user environment. | list of string |
| wayland.windowManager.river.xwayland.enable | Whether to enable XWayland. | boolean |
| wayland.windowManager.sway.checkConfig | If enabled, validates the generated config file. | boolean |
| wayland.windowManager.sway.config | Sway configuration options. | null or (submodule) |
| wayland.windowManager.sway.config.assigns | An attribute set that assigns applications to workspaces based on criteria. | attribute set of list of attribute set of (string or boolean) |
| wayland.windowManager.sway.config.bars | Sway bars settings blocks. Set to empty list to remove bars completely. | list of (submodule) |
| 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>. | submodule |
| wayland.windowManager.sway.config.bars.*.colors.activeWorkspace | Border, background and text color for a workspace button when the workspace is active. | null or (submodule) |
| wayland.windowManager.sway.config.bars.*.colors.background | Background color of the bar. | null or string |
| wayland.windowManager.sway.config.bars.*.colors.bindingMode | Border, background and text color for the binding mode indicator | null or (submodule) |
| wayland.windowManager.sway.config.bars.*.colors.focusedBackground | Background color of the bar on the currently focused monitor output. | null or string |
| wayland.windowManager.sway.config.bars.*.colors.focusedSeparator | Text color to be used for the separator on the currently focused monitor output. | null or string |
| wayland.windowManager.sway.config.bars.*.colors.focusedStatusline | Text color to be used for the statusline on the currently focused monitor output. | null or string |
| wayland.windowManager.sway.config.bars.*.colors.focusedWorkspace | Border, background and text color for a workspace button when the workspace has focus. | null or (submodule) |
| 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. | null or (submodule) |
| wayland.windowManager.sway.config.bars.*.colors.separator | Text color to be used for the separator. | null or string |
| wayland.windowManager.sway.config.bars.*.colors.statusline | Text color to be used for the statusline. | null or string |
| 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. | null or (submodule) |
| wayland.windowManager.sway.config.bars.*.command | Command that will be used to start a bar. | string |
| wayland.windowManager.sway.config.bars.*.extraConfig | Extra configuration lines for this bar. | strings concatenated with "\n" |
| wayland.windowManager.sway.config.bars.*.fonts | Font configuration for this bar. | (list of string) or (submodule) |
| wayland.windowManager.sway.config.bars.*.fonts.names | List of font names list used for window titles. Only FreeType fonts are supported. The order here is important (e.g. icons font should go before the one used for text). | list of string |
| wayland.windowManager.sway.config.bars.*.fonts.size | The font size to use for window titles. | floating point number or string |
| wayland.windowManager.sway.config.bars.*.fonts.style | The font style to use for window titles. | string |
| wayland.windowManager.sway.config.bars.*.hiddenState | The default bar mode when 'bar.mode' == 'hide'. | null or one of "hide", "show" |
| 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. | null or string |
| wayland.windowManager.sway.config.bars.*.mode | Bar visibility mode. | null or one of "dock", "hide", "invisible" |
| wayland.windowManager.sway.config.bars.*.position | The edge of the screen swaybar should show up. | null or one of "top", "bottom" |
| wayland.windowManager.sway.config.bars.*.statusCommand | Command that will be used to get status lines. | null or string |
| wayland.windowManager.sway.config.bars.*.trayOutput | Where to output tray. | null or string |
| 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. | null or signed integer |
| wayland.windowManager.sway.config.bars.*.workspaceButtons | Whether workspace buttons should be shown or not. | null or boolean |
| wayland.windowManager.sway.config.bars.*.workspaceNumbers | Whether workspace numbers should be displayed within the workspace buttons. | null or boolean |
| wayland.windowManager.sway.config.bindkeysToCode | Whether to make use of {option}`--to-code` in keybindings. | boolean |
| wayland.windowManager.sway.config.bindswitches | Binds <switch> to execute the sway command command on state changes. Supported switches are lid (laptop lid) and tablet (tablet mode) switches. Valid values for state are on, off and toggle. These switches are on when the device lid is shut and when tablet mode is active respectively. toggle is also supported to run a command both when the switch is toggled on or off. See sway(5). | attribute set of (submodule) |
| wayland.windowManager.sway.config.bindswitches.<name>.action | The sway command to execute on state changes | string |
| wayland.windowManager.sway.config.bindswitches.<name>.locked | Unless the flag --locked is set, the command will not be run when a screen locking program is active. If there is a matching binding with and without --locked, the one with will be preferred when locked and the one without will be preferred when unlocked. | boolean |
| wayland.windowManager.sway.config.bindswitches.<name>.reload | If the --reload flag is given, the binding will also be executed when the config is reloaded. toggle bindings will not be executed on reload. The --locked flag will operate as normal so if the config is reloaded while locked and --locked is not given, the binding will not be executed. | boolean |
| 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>. | submodule |
| wayland.windowManager.sway.config.colors.background | Background color of the window. Only applications which do not cover the whole area expose the color. | string |
| wayland.windowManager.sway.config.colors.focused | A window which currently has the focus. | submodule |
| 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. | submodule |
| 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. | submodule |
| wayland.windowManager.sway.config.colors.unfocused | A window which is not focused. | submodule |
| wayland.windowManager.sway.config.colors.urgent | A window which has its urgency hint activated. | submodule |
| 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. | null or string |
| wayland.windowManager.sway.config.down | Home row direction key for moving down. | string |
| wayland.windowManager.sway.config.floating | Floating window settings. | submodule |
| wayland.windowManager.sway.config.floating.border | Floating windows border width. | signed integer |
| wayland.windowManager.sway.config.floating.criteria | List of criteria for windows that should be opened in a floating mode. | list of attribute set of (string or boolean) |
| wayland.windowManager.sway.config.floating.modifier | Modifier key or keys that can be used to drag floating windows. | string |
| wayland.windowManager.sway.config.floating.titlebar | Whether to show floating window titlebars. | boolean |
| wayland.windowManager.sway.config.focus | Focus related settings. | submodule |
| wayland.windowManager.sway.config.focus.followMouse | Whether focus should follow the mouse. | one of "yes", "no", "always" or boolean |
| wayland.windowManager.sway.config.focus.forceWrapping | Whether to force focus wrapping in tabbed or stacked containers. This option is deprecated, use {option}`focus.wrapping` instead. | boolean |
| 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. | boolean or one of "container", "output" |
| 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> | one of "smart", "urgent", "focus", "none" |
| 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> | one of "yes", "no", "force", "workspace" |
| wayland.windowManager.sway.config.fonts | Font configuration for window titles, nagbar... | (list of string) or (submodule) |
| wayland.windowManager.sway.config.fonts.names | List of font names list used for window titles. Only FreeType fonts are supported. The order here is important (e.g. icons font should go before the one used for text). | list of string |
| wayland.windowManager.sway.config.fonts.size | The font size to use for window titles. | floating point number or string |
| wayland.windowManager.sway.config.fonts.style | The font style to use for window titles. | string |
| wayland.windowManager.sway.config.gaps | Gaps related settings. | null or (submodule) |
| wayland.windowManager.sway.config.gaps.bottom | Bottom gaps value. | null or signed integer |
| wayland.windowManager.sway.config.gaps.horizontal | Horizontal gaps value. | null or signed integer |
| wayland.windowManager.sway.config.gaps.inner | Inner gaps value. | null or signed integer |
| wayland.windowManager.sway.config.gaps.left | Left gaps value. | null or signed integer |
| wayland.windowManager.sway.config.gaps.outer | Outer gaps value. | null or signed integer |
| wayland.windowManager.sway.config.gaps.right | Right gaps value. | null or signed integer |
| wayland.windowManager.sway.config.gaps.smartBorders | This option controls whether to disable container borders on workspace with a single container. | one of "on", "off", "no_gaps" |
| wayland.windowManager.sway.config.gaps.smartGaps | This option controls whether to disable all gaps (outer and inner) on workspace with a single container. | boolean or one of "on", "off", "inverse_outer" |
| wayland.windowManager.sway.config.gaps.top | Top gaps value. | null or signed integer |
| wayland.windowManager.sway.config.gaps.vertical | Vertical gaps value. | null or signed integer |
| wayland.windowManager.sway.config.input | An attribute set that defines input modules. See {manpage}`sway-input(5)` for options. | attribute set of attribute set of string |
| 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. | attribute set of (null or string) |
| 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>. | attribute set of (null or string) |
| wayland.windowManager.sway.config.left | Home row direction key for moving left. | string |
| wayland.windowManager.sway.config.menu | Default launcher to use. | string |
| 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'. | attribute set of attribute set of string |
| wayland.windowManager.sway.config.modifier | Modifier key that is used for all default keybindings. | one of "Shift", "Control", "Mod1", "Mod2", "Mod3", "Mod4", "Mod5" or string |
| wayland.windowManager.sway.config.output | An attribute set that defines output modules. See {manpage}`sway-output(5)` for options. | attribute set of attribute set of string |
| wayland.windowManager.sway.config.right | Home row direction key for moving right. | string |
| wayland.windowManager.sway.config.seat | An attribute set that defines seat modules. See {manpage}`sway-input(5)` for options. | attribute set of attribute set of string |
| 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>. | list of (submodule) |
| wayland.windowManager.sway.config.startup.*.always | Whether to run command on each sway restart. | boolean |
| wayland.windowManager.sway.config.startup.*.command | Command that will be executed on startup. | string |
| wayland.windowManager.sway.config.terminal | Default terminal to run. | string |
| wayland.windowManager.sway.config.up | Home row direction key for moving up. | string |
| wayland.windowManager.sway.config.window | Window titlebar and border settings. | submodule |
| wayland.windowManager.sway.config.window.border | Window border width. | signed integer |
| wayland.windowManager.sway.config.window.commands | List of commands that should be executed on specific windows. See {option}`for_window` swaywm option documentation. | list of (submodule) |
| wayland.windowManager.sway.config.window.commands.*.command | Swaywm command to execute. | string |
| 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). | attribute set of (string or boolean) |
| wayland.windowManager.sway.config.window.hideEdgeBorders | Hide window borders adjacent to the screen edges. | one of "none", "vertical", "horizontal", "both", "smart", "smart_no_gaps", "--i3 none", "--i3 vertical", "--i3 horizontal", "--i3 both", "--i3 smart", "--i3 smart_no_gaps" |
| wayland.windowManager.sway.config.window.titlebar | Whether to show window titlebars. | boolean |
| 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". | boolean |
| wayland.windowManager.sway.config.workspaceLayout | The mode in which new containers on workspace level will start. | one of "default", "stacking", "tabbed" |
| wayland.windowManager.sway.config.workspaceOutputAssign | Assign workspaces to outputs. | list of (submodule) |
| wayland.windowManager.sway.config.workspaceOutputAssign.*.output | Name(s) of the output(s) from {command}` swaymsg -t get_outputs `. | string or list of string |
| wayland.windowManager.sway.config.workspaceOutputAssign.*.workspace | Name of the workspace to assign. | string |
| wayland.windowManager.sway.enable | Whether to enable sway wayland compositor. | boolean |
| wayland.windowManager.sway.extraConfig | Extra configuration lines to add to ~/.config/sway/config. | strings concatenated with "\n" |
| wayland.windowManager.sway.extraConfigEarly | Like extraConfig, except lines are added to ~/.config/sway/config before all other configuration. | strings concatenated with "\n" |
| wayland.windowManager.sway.extraOptions | Command line arguments passed to launch Sway. Please DO NOT report issues if you use an unsupported GPU (proprietary drivers). | list of string |
| wayland.windowManager.sway.extraSessionCommands | Shell commands executed just before Sway is started. | strings concatenated with "\n" |
| 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. | null or package |
| wayland.windowManager.sway.swaynag.enable | Whether to enable configuration of swaynag, a lightweight error bar for sway. | boolean |
| wayland.windowManager.sway.swaynag.settings | Configuration written to {file}`$XDG_CONFIG_HOME/swaynag/config`. See {manpage}`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. | attribute set of attribute set of (Swaynag config atom (null, bool, int, float, str)) |
| wayland.windowManager.sway.systemd.dbusImplementation | The D-Bus implementation used on the system. This affects which tool is used to import environment variables when starting the Sway session. On NixOS, this should match the value of the option [`services.dbus.implementation` (NixOS)](https://nixos.org/manual/nixos/stable/options#opt-services.dbus.implementation). When set to `dbus`, `dbus-update-activation-environment --systemd <variables>` is run. Otherwise, when set to `broker`, `systemctl --user import-environment <variables>` is run. See <https://github.com/swaywm/sway/wiki#systemd-and-dbus-activation-environments> for more documentation. | one of "dbus", "broker" |
| wayland.windowManager.sway.systemd.enable | Whether to enable {file}`sway-session.target` on sway startup. This links to {file}`graphical-session.target`. Some important environment variables will be imported to systemd and dbus user environment before reaching the target, including * {env}`DISPLAY` * {env}`WAYLAND_DISPLAY` * {env}`SWAYSOCK` * {env}`XDG_CURRENT_DESKTOP` * {env}`XDG_SESSION_TYPE` * {env}`NIXOS_OZONE_WL` * {env}`XCURSOR_THEME` * {env}`XCURSOR_SIZE` You can extend this list using the `systemd.variables` option. | boolean |
| wayland.windowManager.sway.systemd.extraCommands | Extra commands to run after D-Bus activation. | list of string |
| wayland.windowManager.sway.systemd.variables | Environment variables imported into the systemd and D-Bus user environment. | list of string |
| wayland.windowManager.sway.systemd.xdgAutostart | Whether to enable autostart of applications using {manpage}`systemd-xdg-autostart-generator(8)` . | boolean |
| wayland.windowManager.sway.wrapperFeatures | Attribute set of features to enable in the wrapper. | submodule |
| 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. | boolean |
| wayland.windowManager.sway.wrapperFeatures.gtk | Whether to make use of the wrapGAppsHook wrapper to execute sway with required environment variables for GTK applications. | boolean |
| wayland.windowManager.sway.xwayland | Enable xwayland, which is needed for the default configuration of sway. | boolean |
| wayland.windowManager.wayfire.enable | Whether to enable Wayfire, a wayland compositor based on wlroots. | boolean |
| wayland.windowManager.wayfire.package | The wayfire package to use. Set to `null` to not add any wayfire package to your path. This should be done if you want to use the NixOS wayfire module to install wayfire. | null or package |
| wayland.windowManager.wayfire.plugins | Additional plugins to use with wayfire | list of package |
| wayland.windowManager.wayfire.settings | Wayfire configuration written in Nix. See <https://github.com/WayfireWM/wayfire/wiki/Configuration> | open submodule of attribute set of attribute set of (string or absolute path or boolean or signed integer or floating point number) |
| wayland.windowManager.wayfire.settings.core.plugins | Load the specified plugins | strings concatenated with " " |
| wayland.windowManager.wayfire.systemd.enable | Whether to enable {file}`wayfire-session.target` on wayfire startup. This links to {file}`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` | boolean |
| wayland.windowManager.wayfire.systemd.extraCommands | Extra commands to be run after D-Bus activation. | list of string |
| wayland.windowManager.wayfire.systemd.variables | Environment variables to be imported in the systemd & D-Bus user environment. | list of string |
| wayland.windowManager.wayfire.wf-shell.enable | Whether to enable Manage wf-shell Configuration. | boolean |
| wayland.windowManager.wayfire.wf-shell.package | The wf-shell package to use. | package |
| wayland.windowManager.wayfire.wf-shell.settings | Wf-shell configuration written in Nix. See <https://github.com/WayfireWM/wf-shell/blob/master/wf-shell.ini.example> | attribute set of attribute set of (string or absolute path or boolean or signed integer or floating point number) |
| wayland.windowManager.wayfire.xwayland.enable | Whether to enable XWayland. | boolean |
| xdg.autostart.enable | Whether to enable creation of XDG autostart entries. | boolean |
| xdg.autostart.entries | Paths to desktop files that should be linked to `XDG_CONFIG_HOME/autostart` | list of absolute path |
| xdg.autostart.readOnly | Make `XDG_CONFIG_HOME/autostart` a symlink to a readonly directory so that programs cannot install arbitrary autostart services. | boolean |
| xdg.cacheFile | Attribute set of files to link into the user's XDG cache home. | attribute set of (submodule) |
| xdg.cacheFile.<name>.enable | Whether this file should be generated. This option allows specific files to be disabled. | boolean |
| xdg.cacheFile.<name>.executable | Set the execute bit. If `null`, defaults to the mode of the {var}`source` file or to `false` for files created through the {var}`text` option. | null or boolean |
| xdg.cacheFile.<name>.force | Whether the target path should be unconditionally replaced by the managed file source. Warning, this will silently delete the target regardless of whether it is a file or link. | boolean |
| xdg.cacheFile.<name>.ignorelinks | When `recursive` is enabled, adds `-ignorelinks` flag to lndir It causes lndir to not treat symbolic links in the source directory specially. The link created in the target directory will point back to the corresponding (symbolic link) file in the source directory. If the link is to a directory | boolean |
| xdg.cacheFile.<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. | strings concatenated with "\n" |
| xdg.cacheFile.<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. | boolean |
| xdg.cacheFile.<name>.source | Path of the source file or directory. If [](#opt-xdg.cacheFile._name_.text) is non-null then this option will automatically point to a file containing that text. | absolute path |
| xdg.cacheFile.<name>.target | Path to target file relative to {var}`xdg.cacheHome`. | string |
| xdg.cacheFile.<name>.text | Text of the file. If this option is null then [](#opt-xdg.cacheFile._name_.source) must be set. | null or strings concatenated with "\n" |
| xdg.cacheHome | Absolute path to directory holding application caches. Sets `XDG_CACHE_HOME` for the user if `xdg.enable` is set `true`. | absolute path |
| xdg.configFile | Attribute set of files to link into the user's XDG configuration home. | attribute set of (submodule) |
| xdg.configFile.<name>.enable | Whether this file should be generated. This option allows specific files to be disabled. | boolean |
| xdg.configFile.<name>.executable | Set the execute bit. If `null`, defaults to the mode of the {var}`source` file or to `false` for files created through the {var}`text` option. | null or boolean |
| xdg.configFile.<name>.force | Whether the target path should be unconditionally replaced by the managed file source. Warning, this will silently delete the target regardless of whether it is a file or link. | boolean |
| xdg.configFile.<name>.ignorelinks | When `recursive` is enabled, adds `-ignorelinks` flag to lndir It causes lndir to not treat symbolic links in the source directory specially. The link created in the target directory will point back to the corresponding (symbolic link) file in the source directory. If the link is to a directory | boolean |
| 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. | strings concatenated with "\n" |
| 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. | boolean |
| xdg.configFile.<name>.source | Path of the source file or directory. If [](#opt-xdg.configFile._name_.text) is non-null then this option will automatically point to a file containing that text. | absolute path |
| xdg.configFile.<name>.target | Path to target file relative to {var}`xdg.configHome`. | string |
| xdg.configFile.<name>.text | Text of the file. If this option is null then [](#opt-xdg.configFile._name_.source) must be set. | null or strings concatenated with "\n" |
| xdg.configHome | Absolute path to directory holding application configurations. Sets `XDG_CONFIG_HOME` for the user if `xdg.enable` is set `true`. | absolute path |
| xdg.dataFile | Attribute set of files to link into the user's XDG data home. | attribute set of (submodule) |
| xdg.dataFile.<name>.enable | Whether this file should be generated. This option allows specific files to be disabled. | boolean |
| xdg.dataFile.<name>.executable | Set the execute bit. If `null`, defaults to the mode of the {var}`source` file or to `false` for files created through the {var}`text` option. | null or boolean |
| xdg.dataFile.<name>.force | Whether the target path should be unconditionally replaced by the managed file source. Warning, this will silently delete the target regardless of whether it is a file or link. | boolean |
| xdg.dataFile.<name>.ignorelinks | When `recursive` is enabled, adds `-ignorelinks` flag to lndir It causes lndir to not treat symbolic links in the source directory specially. The link created in the target directory will point back to the corresponding (symbolic link) file in the source directory. If the link is to a directory | boolean |
| 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. | strings concatenated with "\n" |
| 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. | boolean |
| xdg.dataFile.<name>.source | Path of the source file or directory. If [](#opt-xdg.dataFile._name_.text) is non-null then this option will automatically point to a file containing that text. | absolute path |
| xdg.dataFile.<name>.target | Path to target file relative to <varname>xdg.dataHome</varname>. | string |
| xdg.dataFile.<name>.text | Text of the file. If this option is null then [](#opt-xdg.dataFile._name_.source) must be set. | null or strings concatenated with "\n" |
| xdg.dataHome | Absolute path to directory holding application data. Sets `XDG_DATA_HOME` for the user if `xdg.enable` is set `true`. | absolute path |
| 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/latest/recognized-keys.html> for more information on options. | attribute set of (submodule) |
| xdg.desktopEntries.<name>.actions | The set of actions made available to application launchers. | attribute set of (submodule) |
| xdg.desktopEntries.<name>.actions.<name>.exec | Program to execute, possibly with arguments. | null or string |
| xdg.desktopEntries.<name>.actions.<name>.icon | Icon to display in file manager, menus, etc. | null or string or absolute path |
| xdg.desktopEntries.<name>.actions.<name>.name | Name of the action. | string |
| xdg.desktopEntries.<name>.categories | Categories in which the entry should be shown in a menu. | null or (list of string) |
| xdg.desktopEntries.<name>.comment | Tooltip for the entry. | null or string |
| xdg.desktopEntries.<name>.exec | Program to execute, possibly with arguments. | null or string |
| xdg.desktopEntries.<name>.genericName | Generic name of the application. | null or string |
| xdg.desktopEntries.<name>.icon | Icon to display in file manager, menus, etc. | null or string or absolute path |
| xdg.desktopEntries.<name>.mimeType | The MIME type(s) supported by this application. | null or (list of string) |
| xdg.desktopEntries.<name>.name | Specific name of the application. | string |
| 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. | null or boolean |
| xdg.desktopEntries.<name>.prefersNonDefaultGPU | If true, the application prefers to be run on a more powerful discrete GPU if available. | null or boolean |
| xdg.desktopEntries.<name>.settings | Extra key-value pairs to add to the `[Desktop Entry]` section. This may override other values. | attribute set of string |
| 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. | null or boolean |
| xdg.desktopEntries.<name>.terminal | Whether the program runs in a terminal window. | null or boolean |
| xdg.desktopEntries.<name>.type | The type of the desktop entry. | one of "Application", "Link", "Directory" |
| xdg.enable | Whether to enable management of XDG base directories. | boolean |
| xdg.mime.desktopFileUtilsPackage | The desktop-file-utils package to use. Used when running update-desktop-database. | package |
| 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. | boolean |
| xdg.mime.sharedMimeInfoPackage | The shared-mime-info package to use. Used when running update-mime-database. | package |
| xdg.mimeApps.associations.added | Defines additional associations of applications with mimetypes, as if the .desktop file was listing this mimetype in the first place. | attribute set of ((list of string) or ((list of string) or string) convertible to it) |
| xdg.mimeApps.associations.removed | Removes associations of applications with mimetypes, as if the .desktop file was *not* listing this mimetype in the first place. | attribute set of ((list of string) or ((list of string) or string) convertible to it) |
| xdg.mimeApps.defaultApplicationPackages | Packages whose `.desktop` files will be used to establish default mimetype associations. These associations are appended to the associations in [](#opt-xdg.mimeApps.defaultApplications). If multiple packages associate with the same mime type, then the priority among them is determined by their order in the list. | list of package |
| 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. | attribute set of ((list of string) or ((list of string) or string) convertible to it) |
| xdg.mimeApps.enable | Whether to manage {file}`$XDG_CONFIG_HOME/mimeapps.list`. The generated file is read-only. | boolean |
| xdg.portal.config | Sets which portal backend should be used to provide the implementation for the requested interface. For details check {manpage}`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. | attribute set of attribute set of (string or ((list of string) or string) convertible to it) |
| 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. | list of package |
| xdg.portal.enable | Whether to enable [XDG desktop integration](https://github.com/flatpak/xdg-desktop-portal). Note, if you installed Home Manager via its NixOS module and 'home-manager.useUserPackages' is enabled, make sure to add ``` nix environment.pathsToLink = [ "/share/xdg-desktop-portal" "/share/applications" ]; ``` to your NixOS configuration so that the portal definitions and DE provided configurations get linked. | boolean |
| xdg.portal.extraPortals | List of additional portals that should be added to the environment. The directory where the portal definitions have been merged together (likely `~/.nix-profile/share/xdg-desktop-portal/portals`) will get passed to `xdg-desktop-portal.service` via the `NIX_XDG_DESKTOP_PORTAL_DIR` environment variable. Portals allow interaction with system, like choosing files or taking screenshots. At minimum, a desktop portal implementation should be listed. | list of package |
| 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](https://github.com/NixOS/nixpkgs/issues/160923) for more info. | boolean |
| xdg.stateFile | Attribute set of files to link into the user's XDG state home. | attribute set of (submodule) |
| xdg.stateFile.<name>.enable | Whether this file should be generated. This option allows specific files to be disabled. | boolean |
| xdg.stateFile.<name>.executable | Set the execute bit. If `null`, defaults to the mode of the {var}`source` file or to `false` for files created through the {var}`text` option. | null or boolean |
| xdg.stateFile.<name>.force | Whether the target path should be unconditionally replaced by the managed file source. Warning, this will silently delete the target regardless of whether it is a file or link. | boolean |
| xdg.stateFile.<name>.ignorelinks | When `recursive` is enabled, adds `-ignorelinks` flag to lndir It causes lndir to not treat symbolic links in the source directory specially. The link created in the target directory will point back to the corresponding (symbolic link) file in the source directory. If the link is to a directory | boolean |
| 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. | strings concatenated with "\n" |
| 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. | boolean |
| xdg.stateFile.<name>.source | Path of the source file or directory. If [](#opt-xdg.stateFile._name_.text) is non-null then this option will automatically point to a file containing that text. | absolute path |
| xdg.stateFile.<name>.target | Path to target file relative to <varname>xdg.stateHome</varname>. | string |
| xdg.stateFile.<name>.text | Text of the file. If this option is null then [](#opt-xdg.stateFile._name_.source) must be set. | null or strings concatenated with "\n" |
| xdg.stateHome | Absolute path to directory holding application states. Sets `XDG_STATE_HOME` for the user if `xdg.enable` is set `true`. | absolute path |
| xdg.systemDirs.config | Directory names to add to {env}`XDG_CONFIG_DIRS` in the user session. | list of string |
| xdg.systemDirs.data | Directory names to add to {env}`XDG_DATA_DIRS` in the user session. | list of string |
| xdg.terminal-exec.enable | Whether to enable xdg-terminal-exec, the [proposed](https://gitlab.freedesktop.org/xdg/xdg-specs/-/merge_requests/46) Default Terminal Execution Specification. | boolean |
| xdg.terminal-exec.package | The xdg-terminal-exec package to use. | null or package |
| xdg.terminal-exec.settings | Configuration options for the Default Terminal Execution Specification. The keys are the desktop environments that are matched (case-insensitively) against {env}`XDG_CURRENT_DESKTOP`, or `default` which is used when the current desktop environment is not found in the configuration. The values are a list of terminals' [desktop file IDs](https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s02.html#desktop-file-id) to try in order of decreasing priority. | attribute set of list of string |
| xdg.userDirs.createDirectories | Whether to enable automatic creation of the XDG user directories. | boolean |
| xdg.userDirs.desktop | The Desktop directory. | null or (string or absolute path convertible to it) |
| xdg.userDirs.documents | The Documents directory. | null or (string or absolute path convertible to it) |
| xdg.userDirs.download | The Downloads directory. | null or (string or absolute path convertible to it) |
| xdg.userDirs.enable | Whether to manage {file}`$XDG_CONFIG_HOME/user-dirs.dirs`. The generated file is read-only. | boolean |
| xdg.userDirs.extraConfig | Other user directories. The key ‘MISC’ corresponds to the user-dirs entry ‘XDG_MISC_DIR’. | attribute set of (string or absolute path convertible to it) |
| xdg.userDirs.music | The Music directory. | null or (string or absolute path convertible to it) |
| xdg.userDirs.package | The xdg-user-dirs package to use. | null or package |
| xdg.userDirs.pictures | The Pictures directory. | null or (string or absolute path convertible to it) |
| xdg.userDirs.publicShare | The Public share directory. | null or (string or absolute path convertible to it) |
| xdg.userDirs.setSessionVariables | Whether to set the XDG user dir environment variables, like `XDG_DESKTOP_DIR`. ::: {.note} The recommended way to get these values is via the `xdg-user-dir` command or by processing `$XDG_CONFIG_HOME/user-dirs.dirs` directly in your application. ::: This defaults to `true` for state version < 26.05 and `false` otherwise. | boolean |
| xdg.userDirs.templates | The Templates directory. | null or (string or absolute path convertible to it) |
| xdg.userDirs.videos | The Videos directory. | null or (string or absolute path convertible to it) |
| xfconf.settings | Settings to write to the Xfconf configuration system. | xfconf settings |
| xresources.extraConfig | Additional X server resources contents. If this and all other xresources options are `null`, then this feature is disabled and no {file}`~/.Xresources` link is produced. | strings concatenated with "\n" |
| xresources.path | Path where Home Manager should link the {file}`.Xresources` file. | string |
| 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 {file}`~/.Xresources` link is produced. | null or (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))) |
| xsession.enable | Whether to enable X Session. | boolean |
| xsession.initExtra | Extra shell commands to run during initialization. | strings concatenated with "\n" |
| xsession.numlock.enable | Whether to enable Num Lock. | boolean |
| xsession.pointerCursor.defaultCursor | Alias of {option}`home.pointerCursor.x11.defaultCursor`. | submodule |
| xsession.pointerCursor.name | Alias of {option}`home.pointerCursor.name`. | submodule |
| xsession.pointerCursor.package | Alias of {option}`home.pointerCursor.package`. | submodule |
| xsession.pointerCursor.size | Alias of {option}`home.pointerCursor.size`. | submodule |
| 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. | boolean |
| xsession.profileExtra | Extra shell commands to run before session start. | strings concatenated with "\n" |
| xsession.profilePath | Path, relative to {env}`HOME`, where Home Manager should write the X profile script. | string |
| xsession.scriptPath | Path, relative to {env}`HOME`, where Home Manager should write the X session script. | string |
| xsession.windowManager.awesome.enable | Whether to enable Awesome window manager. | boolean |
| xsession.windowManager.awesome.luaModules | List of lua packages available for being used in the Awesome configuration. | list of package |
| xsession.windowManager.awesome.noArgb | Disable client transparency support, which can be greatly detrimental to performance in some setups | boolean |
| xsession.windowManager.awesome.package | The awesome package to use. to use for running the Awesome WM | package |
| xsession.windowManager.bspwm.alwaysResetDesktops | If set to `true`, desktops configured in {option}`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`. | boolean |
| xsession.windowManager.bspwm.enable | Whether to enable bspwm window manager. | boolean |
| xsession.windowManager.bspwm.extraConfig | Additional shell commands to be run at the end of the config file. | strings concatenated with "\n" |
| xsession.windowManager.bspwm.extraConfigEarly | Like extraConfig, except commands are run at the start of the config file. | strings concatenated with "\n" |
| xsession.windowManager.bspwm.monitors | Specifies the names of desktops to create on each monitor. | attribute set of list of string |
| xsession.windowManager.bspwm.package | The bspwm package to use. | package |
| xsession.windowManager.bspwm.rules | Rule configuration. The keys of the attribute set are the targets of the rules. | attribute set of (open submodule of attribute set of (boolean or signed integer or floating point number or string)) |
| xsession.windowManager.bspwm.rules.<name>.border | Whether the node should have border. | null or boolean |
| xsession.windowManager.bspwm.rules.<name>.center | Whether the node will be put in the center, in floating mode. | null or boolean |
| xsession.windowManager.bspwm.rules.<name>.desktop | The desktop where the rule should be applied. | null or string |
| xsession.windowManager.bspwm.rules.<name>.focus | Whether the node should gain focus on creation. | null or boolean |
| xsession.windowManager.bspwm.rules.<name>.follow | Whether focus should follow the node when it is moved. | null or boolean |
| xsession.windowManager.bspwm.rules.<name>.hidden | Whether the node should occupy any space. | null or boolean |
| xsession.windowManager.bspwm.rules.<name>.layer | The layer where a new window should spawn. | null or one of "below", "normal", "above" |
| xsession.windowManager.bspwm.rules.<name>.locked | Whether the node should ignore {command}`node --close` messages. | null or boolean |
| 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. | null or boolean |
| xsession.windowManager.bspwm.rules.<name>.marked | Whether the node will be marked for deferred actions. | null or boolean |
| xsession.windowManager.bspwm.rules.<name>.monitor | The monitor where the rule should be applied. | null or string |
| xsession.windowManager.bspwm.rules.<name>.node | The node where the rule should be applied. | null or string |
| xsession.windowManager.bspwm.rules.<name>.private | Whether the node should stay in the same tiling position and size. | null or boolean |
| xsession.windowManager.bspwm.rules.<name>.rectangle | The node's geometry, in the format `WxH+X+Y`. | null or string |
| xsession.windowManager.bspwm.rules.<name>.splitDir | The direction where the container is going to be split. | null or one of "north", "west", "south", "east" |
| xsession.windowManager.bspwm.rules.<name>.splitRatio | The ratio between the new window and the previous existing window in the desktop. | null or floating point number |
| xsession.windowManager.bspwm.rules.<name>.state | The state in which a new window should spawn. | null or one of "tiled", "pseudo_tiled", "floating", "fullscreen" |
| xsession.windowManager.bspwm.rules.<name>.sticky | Whether the node should stay on the focused desktop. | null or boolean |
| xsession.windowManager.bspwm.settings | General settings given to `bspc config`. | 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)) |
| xsession.windowManager.bspwm.startupPrograms | Programs to be executed during startup. | list of string |
| 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 {option}`xsession.initExtra`. | string |
| xsession.windowManager.fluxbox.apps | Apps configuration for Fluxbox, written to {file}`~/.fluxbox/apps`. Look at the {manpage}`fluxbox(1)` manpage for details. | strings concatenated with "\n" |
| xsession.windowManager.fluxbox.enable | Whether to enable Fluxbox window manager. | boolean |
| xsession.windowManager.fluxbox.extraCommandLineArgs | Extra command line arguments to pass to {command}`fluxbox`. Look at the {manpage}`fluxbox(1)` manpage for details. | list of string |
| xsession.windowManager.fluxbox.init | Init configuration for Fluxbox, written to {file}`~/.fluxbox/init`. Look at the {manpage}`fluxbox(1)` manpage for details. | strings concatenated with "\n" |
| xsession.windowManager.fluxbox.keys | Keyboard shortcuts configuration for Fluxbox, written to {file}`~/.fluxbox/keys`. Look at the {manpage}`fluxbox-keys(1)` manpage for details. | strings concatenated with "\n" |
| xsession.windowManager.fluxbox.menu | Menu configuration for Fluxbox, written to {file}`~/.fluxbox/menu`. Look at the {manpage}`fluxbox-menu(1)` manpage for details. | strings concatenated with "\n" |
| xsession.windowManager.fluxbox.package | The fluxbox package to use. | null or package |
| xsession.windowManager.fluxbox.slitlist | Slitlist configuration for Fluxbox, written to {file}`~/.fluxbox/slitlist`. Look at the {manpage}`fluxbox(1)` manpage for details. | strings concatenated with "\n" |
| xsession.windowManager.fluxbox.windowmenu | Window menu configuration for Fluxbox, written to {file}`~/.fluxbox/windowmenu`. Look at the {manpage}`fluxbox-menu(1)` manpage for details. | strings concatenated with "\n" |
| xsession.windowManager.herbstluftwm.enable | Whether to enable herbstluftwm window manager. | boolean |
| xsession.windowManager.herbstluftwm.enableAlias | Set an alias for the {command}`herbstclient` command in the {file}`autostart` script that only stores its arguments and executes them all at once at the end of the {file}`autostart` script. This reduces the amount of flickering you get while all options are being applied and improves the performance. On the other hand, this makes it more difficult to write bash functions that call {command}`herbstclient`. You can work around this by calling {command}`command herbstclient` in your functions to still get some of the benefits of enabling this alias. | boolean |
| xsession.windowManager.herbstluftwm.extraConfig | Extra configuration lines to add verbatim to {file}`$XDG_CONFIG_HOME/herbstluftwm/autostart`. | strings concatenated with "\n" |
| xsession.windowManager.herbstluftwm.keybinds | Herbstluftwm keybinds. | attribute set of string |
| xsession.windowManager.herbstluftwm.mousebinds | Herbstluftwm mousebinds. | attribute set of string |
| xsession.windowManager.herbstluftwm.package | The herbstluftwm package to use. | package |
| xsession.windowManager.herbstluftwm.rules | Herbstluftwm rules. | list of string |
| xsession.windowManager.herbstluftwm.settings | Herbstluftwm settings. | attribute set of (boolean or signed integer or string) |
| xsession.windowManager.herbstluftwm.tags | Tags to create on startup. | list of string |
| xsession.windowManager.i3.config | i3 configuration options. | null or (submodule) |
| xsession.windowManager.i3.config.assigns | An attribute set that assigns applications to workspaces based on criteria. | attribute set of list of attribute set of (string or boolean) |
| xsession.windowManager.i3.config.bars | i3 bars settings blocks. Set to empty list to remove bars completely. | list of (submodule) |
| 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>. | submodule |
| xsession.windowManager.i3.config.bars.*.colors.activeWorkspace | Border, background and text color for a workspace button when the workspace is active. | null or (submodule) |
| xsession.windowManager.i3.config.bars.*.colors.background | Background color of the bar. | null or string |
| xsession.windowManager.i3.config.bars.*.colors.bindingMode | Border, background and text color for the binding mode indicator | null or (submodule) |
| xsession.windowManager.i3.config.bars.*.colors.focusedBackground | Background color of the bar on the currently focused monitor output. | null or string |
| xsession.windowManager.i3.config.bars.*.colors.focusedSeparator | Text color to be used for the separator on the currently focused monitor output. | null or string |
| xsession.windowManager.i3.config.bars.*.colors.focusedStatusline | Text color to be used for the statusline on the currently focused monitor output. | null or string |
| xsession.windowManager.i3.config.bars.*.colors.focusedWorkspace | Border, background and text color for a workspace button when the workspace has focus. | null or (submodule) |
| 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. | null or (submodule) |
| xsession.windowManager.i3.config.bars.*.colors.separator | Text color to be used for the separator. | null or string |
| xsession.windowManager.i3.config.bars.*.colors.statusline | Text color to be used for the statusline. | null or string |
| 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. | null or (submodule) |
| xsession.windowManager.i3.config.bars.*.command | Command that will be used to start a bar. | string |
| xsession.windowManager.i3.config.bars.*.extraConfig | Extra configuration lines for this bar. | strings concatenated with "\n" |
| xsession.windowManager.i3.config.bars.*.fonts | Font configuration for this bar. | (list of string) or (submodule) |
| xsession.windowManager.i3.config.bars.*.fonts.names | List of font names list used for window titles. Only FreeType fonts are supported. The order here is important (e.g. icons font should go before the one used for text). | list of string |
| xsession.windowManager.i3.config.bars.*.fonts.size | The font size to use for window titles. | floating point number or string |
| xsession.windowManager.i3.config.bars.*.fonts.style | The font style to use for window titles. | string |
| xsession.windowManager.i3.config.bars.*.hiddenState | The default bar mode when 'bar.mode' == 'hide'. | null or one of "hide", "show" |
| 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. | null or string |
| xsession.windowManager.i3.config.bars.*.mode | Bar visibility mode. | null or one of "dock", "hide", "invisible" |
| xsession.windowManager.i3.config.bars.*.position | The edge of the screen i3bar should show up. | null or one of "top", "bottom" |
| xsession.windowManager.i3.config.bars.*.statusCommand | Command that will be used to get status lines. | null or string |
| xsession.windowManager.i3.config.bars.*.trayOutput | Where to output tray. | null or string |
| 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. | null or signed integer |
| xsession.windowManager.i3.config.bars.*.workspaceButtons | Whether workspace buttons should be shown or not. | null or boolean |
| xsession.windowManager.i3.config.bars.*.workspaceNumbers | Whether workspace numbers should be displayed within the workspace buttons. | null or boolean |
| 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>. | submodule |
| xsession.windowManager.i3.config.colors.background | Background color of the window. Only applications which do not cover the whole area expose the color. | string |
| xsession.windowManager.i3.config.colors.focused | A window which currently has the focus. | submodule |
| 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. | submodule |
| 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. | submodule |
| xsession.windowManager.i3.config.colors.unfocused | A window which is not focused. | submodule |
| xsession.windowManager.i3.config.colors.urgent | A window which has its urgency hint activated. | submodule |
| 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. | null or string |
| xsession.windowManager.i3.config.floating | Floating window settings. | submodule |
| xsession.windowManager.i3.config.floating.border | Floating windows border width. | signed integer |
| xsession.windowManager.i3.config.floating.criteria | List of criteria for windows that should be opened in a floating mode. | list of attribute set of (string or boolean) |
| xsession.windowManager.i3.config.floating.modifier | Modifier key or keys that can be used to drag floating windows. | string |
| xsession.windowManager.i3.config.floating.titlebar | Whether to show floating window titlebars. | boolean |
| xsession.windowManager.i3.config.focus | Focus related settings. | submodule |
| xsession.windowManager.i3.config.focus.followMouse | Whether focus should follow the mouse. | boolean |
| xsession.windowManager.i3.config.focus.forceWrapping | Whether to force focus wrapping in tabbed or stacked containers. This option is deprecated, use {option}`focus.wrapping` instead. | boolean |
| 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. | boolean |
| 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> | one of "smart", "urgent", "focus", "none" |
| 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> | one of "yes", "no", "force", "workspace" |
| xsession.windowManager.i3.config.fonts | Font configuration for window titles, nagbar... | (list of string) or (submodule) |
| xsession.windowManager.i3.config.fonts.names | List of font names list used for window titles. Only FreeType fonts are supported. The order here is important (e.g. icons font should go before the one used for text). | list of string |
| xsession.windowManager.i3.config.fonts.size | The font size to use for window titles. | floating point number or string |
| xsession.windowManager.i3.config.fonts.style | The font style to use for window titles. | string |
| xsession.windowManager.i3.config.gaps | Gaps related settings. | null or (submodule) |
| xsession.windowManager.i3.config.gaps.bottom | Bottom gaps value. | null or signed integer |
| xsession.windowManager.i3.config.gaps.horizontal | Horizontal gaps value. | null or signed integer |
| xsession.windowManager.i3.config.gaps.inner | Inner gaps value. | null or signed integer |
| xsession.windowManager.i3.config.gaps.left | Left gaps value. | null or signed integer |
| xsession.windowManager.i3.config.gaps.outer | Outer gaps value. | null or signed integer |
| xsession.windowManager.i3.config.gaps.right | Right gaps value. | null or signed integer |
| xsession.windowManager.i3.config.gaps.smartBorders | This option controls whether to disable container borders on workspace with a single container. | one of "on", "off", "no_gaps" |
| xsession.windowManager.i3.config.gaps.smartGaps | This option controls whether to disable all gaps (outer and inner) on workspace with a single container. | boolean or one of "on", "off", "inverse_outer" |
| xsession.windowManager.i3.config.gaps.top | Top gaps value. | null or signed integer |
| xsession.windowManager.i3.config.gaps.vertical | Vertical gaps value. | null or signed integer |
| 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. | attribute set of (null or string) |
| 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>. | attribute set of (null or string) |
| xsession.windowManager.i3.config.menu | Default launcher to use. | string |
| 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'. | attribute set of attribute set of string |
| xsession.windowManager.i3.config.modifier | Modifier key that is used for all default keybindings. | one of "Shift", "Control", "Mod1", "Mod2", "Mod3", "Mod4", "Mod5" or string |
| 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>. | list of (submodule) |
| xsession.windowManager.i3.config.startup.*.always | Whether to run command on each i3 restart. | boolean |
| xsession.windowManager.i3.config.startup.*.command | Command that will be executed on startup. | string |
| xsession.windowManager.i3.config.startup.*.notification | Whether to enable startup-notification support for the command. See {option}`--no-startup-id` option description in the i3 user guide. | boolean |
| xsession.windowManager.i3.config.startup.*.workspace | Launch application on a particular workspace. DEPRECATED: Use [](#opt-xsession.windowManager.i3.config.assigns) instead. See <https://github.com/nix-community/home-manager/issues/265>. | null or string |
| xsession.windowManager.i3.config.terminal | Default terminal to run. | string |
| xsession.windowManager.i3.config.window | Window titlebar and border settings. | submodule |
| xsession.windowManager.i3.config.window.border | Window border width. | signed integer |
| xsession.windowManager.i3.config.window.commands | List of commands that should be executed on specific windows. See {option}`for_window` i3wm option documentation. | list of (submodule) |
| xsession.windowManager.i3.config.window.commands.*.command | i3wm command to execute. | string |
| 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). | attribute set of (string or boolean) |
| xsession.windowManager.i3.config.window.hideEdgeBorders | Hide window borders adjacent to the screen edges. | one of "none", "vertical", "horizontal", "both", "smart" |
| xsession.windowManager.i3.config.window.titlebar | Whether to show window titlebars. | boolean |
| 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". | boolean |
| xsession.windowManager.i3.config.workspaceLayout | The mode in which new containers on workspace level will start. | one of "default", "stacking", "tabbed" |
| xsession.windowManager.i3.config.workspaceOutputAssign | Assign workspaces to outputs. | list of (submodule) |
| xsession.windowManager.i3.config.workspaceOutputAssign.*.output | Name(s) of the output(s) from {command}` i3-msg -t get_outputs `. | string or list of string |
| xsession.windowManager.i3.config.workspaceOutputAssign.*.workspace | Name of the workspace to assign. | string |
| xsession.windowManager.i3.enable | Whether to enable i3 window manager. | boolean |
| xsession.windowManager.i3.extraConfig | Extra configuration lines to add to ~/.config/i3/config. | strings concatenated with "\n" |
| xsession.windowManager.i3.package | The i3 package to use. | null or package |
| xsession.windowManager.spectrwm.bindings | Spectrwm keybindings. | attribute set of string |
| xsession.windowManager.spectrwm.enable | Whether to enable Spectrwm window manager. | boolean |
| xsession.windowManager.spectrwm.package | The spectrwm package to use. providing the spectrwm command | package |
| xsession.windowManager.spectrwm.programs | Spectrwm programs variables. | attribute set of string |
| xsession.windowManager.spectrwm.quirks | Spectrwm quicks (custom window rules). | attribute set of string |
| xsession.windowManager.spectrwm.settings | Spectrwm settings. | attribute set of (boolean or signed integer or string) |
| xsession.windowManager.spectrwm.unbindings | List of keybindings to disable from default Spectrwm configuration. | list of string |
| xsession.windowManager.xmonad.buildScript | Build script for your xmonad configuration. | null or absolute path |
| xsession.windowManager.xmonad.config | The configuration file to be used for xmonad. This must be an absolute path or `null` in which case {file}`~/.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 {command}`xmonad --recompile`) will fail. | null or absolute path |
| xsession.windowManager.xmonad.enable | Whether to enable xmonad window manager. | boolean |
| xsession.windowManager.xmonad.enableContribAndExtras | Enable xmonad-{contrib,extras} in xmonad. | boolean |
| 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 {var}`haskellPackages` as the sole argument. | unspecified value |
| xsession.windowManager.xmonad.haskellPackages | The {var}`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 {var}`extraPackages`. | unspecified value |
| xsession.windowManager.xmonad.libFiles | Additional files that will be saved in {file}`~/.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. | attribute set of absolute path |