programs.workrave.enable

Whether to enable Workrave.

type

boolean

example

{
  programs.workrave.enable = true;
}

default

{
  programs.workrave.enable = false;
}

programs.workrave.blockMode

0 = No blocking 1 = Block input 2 = Block input and screen

type

signed integer

default

{
  programs.workrave.blockMode = 1;
}

programs.workrave.dailyLimit.enable

type

boolean

default

{
  programs.workrave.dailyLimit.enable = true;
}

programs.workrave.dailyLimit.ignorable

type

boolean

default

{
  programs.workrave.dailyLimit.ignorable = true;
}

programs.workrave.dailyLimit.limit

type

signed integer

default

{
  programs.workrave.dailyLimit.limit = 14400;
}

programs.workrave.dailyLimit.skippable

type

boolean

default

{
  programs.workrave.dailyLimit.skippable = true;
}

programs.workrave.dailyLimit.snooze

type

signed integer

default

{
  programs.workrave.dailyLimit.snooze = 1200;
}

programs.workrave.extraConfig

type

attribute set

default

{
  programs.workrave.extraConfig = {};
}

programs.workrave.gui.applet

type

boolean

default

{
  programs.workrave.gui.applet = true;
}

programs.workrave.gui.mainWindow

type

boolean

default

{
  programs.workrave.gui.mainWindow = true;
}

programs.workrave.gui.trayIcon

type

boolean

default

{
  programs.workrave.gui.trayIcon = true;
}

programs.workrave.microPause.enable

type

boolean

default

{
  programs.workrave.microPause.enable = true;
}

programs.workrave.microPause.autoReset

type

signed integer

default

{
  programs.workrave.microPause.autoReset = 30;
}

programs.workrave.microPause.ignorable

type

boolean

default

{
  programs.workrave.microPause.ignorable = true;
}

programs.workrave.microPause.limit

type

signed integer

default

{
  programs.workrave.microPause.limit = 300;
}

programs.workrave.microPause.skippable

type

boolean

default

{
  programs.workrave.microPause.skippable = true;
}

programs.workrave.microPause.snooze

type

signed integer

default

{
  programs.workrave.microPause.snooze = 150;
}

programs.workrave.restBreak.enable

type

boolean

default

{
  programs.workrave.restBreak.enable = true;
}

programs.workrave.restBreak.autoReset

type

signed integer

default

{
  programs.workrave.restBreak.autoReset = 60;
}

programs.workrave.restBreak.ignorable

type

boolean

default

{
  programs.workrave.restBreak.ignorable = true;
}

programs.workrave.restBreak.limit

type

signed integer

default

{
  programs.workrave.restBreak.limit = 2700;
}

programs.workrave.restBreak.skippable

type

boolean

default

{
  programs.workrave.restBreak.skippable = true;
}

programs.workrave.restBreak.snooze

type

signed integer

default

{
  programs.workrave.restBreak.snooze = 180;
}

programs.workrave.sound.enable

type

boolean

default

{
  programs.workrave.sound.enable = true;
}

programs.workrave.sound.volume

type

signed integer

default

{
  programs.workrave.sound.volume = 100;
}

services.apt-cacher-ng.enable

Whether to enable apt-cacher-ng.

type

boolean

example

{
  services.apt-cacher-ng.enable = true;
}

default

{
  services.apt-cacher-ng.enable = false;
}

services.apt-cacher-ng.enableNixCache

enable cache.nixos.org caching via PfilePatternEx and VfilePatternEx.

to use the apt-cacher-ng in your nixos configuration: nix.binary-cache = [ http://acng-host:port/nixos ];

These options cannot be used in extraConfig, use SVfilePattern and SPfilePattern or disable this option.

type

boolean

default

{
  services.apt-cacher-ng.enableNixCache = true;
}

services.apt-cacher-ng.bindAddress

listen address of apt-cacher-ng. Defaults to every interface.

type

string

example

{
  services.apt-cacher-ng.bindAddress = "localhost 192.168.7.254 publicNameOnMainInterface";
}

default

{
  services.apt-cacher-ng.bindAddress = "";
}

services.apt-cacher-ng.cacheDir

Path to apt-cacher-ng cache directory. Will be created and chowned to acng-user

type

string

default

{
  services.apt-cacher-ng.cacheDir = "/var/cache/acng/cache";
}

services.apt-cacher-ng.cacheExpiration

number of days before packages expire in the cache without being requested.

type

signed integer

default

{
  services.apt-cacher-ng.cacheExpiration = 4;
}

services.apt-cacher-ng.extraConfig

extra config appended to the generated acng.conf

type

strings concatenated with "\n"

default

{
  services.apt-cacher-ng.extraConfig = "";
}

services.apt-cacher-ng.logDir

Path to apt-cacher-ng log directory. Will be created and chowned to acng-user

type

string

default

{
  services.apt-cacher-ng.logDir = "/var/cache/acng/log";
}

services.apt-cacher-ng.port

port of apt-cacher-ng

type

signed integer

default

{
  services.apt-cacher-ng.port = 3142;
}

services.check-battery.enable

Whether to enable Warn when battery is almost empty.

type

boolean

example

{
  services.check-battery.enable = true;
}

default

{
  services.check-battery.enable = false;
}

services.check-battery.interval

Interval in seconds at which battery level is checked.

type

string

default

{
  services.check-battery.interval = "60";
}

services.check-battery.threshold

Must be formatted as 00:00:00 This is string compared to the level shown by acpi -b.

type

string

default

{
  services.check-battery.threshold = "00:45:00";
}

services.etlegacy.enable

Whether to enable ET: legacy dedicated server.

type

boolean

example

{
  services.etlegacy.enable = true;
}

default

{
  services.etlegacy.enable = false;
}

services.etlegacy.package

etlegacy package to run

type

package

default

{
  services.etlegacy.package = "pkgs.legacy";
}

services.etlegacy.bind

Bind on this network IP, it not specified will bind on all IP's.

type

null or string

default

{
  services.etlegacy.bind = null;
}

services.etlegacy.configFile

The server's configuration file.

type

path

services.etlegacy.openFirewall

Whether to automatically open the specified UDP port in the firewall.

type

boolean

default

{
  services.etlegacy.openFirewall = true;
}

services.etlegacy.port

The port to which the service should bind.

type

signed integer

default

{
  services.etlegacy.port = 27960;
}

services.etlegacy.stateDirName

Name of the directory under /var/lib holding the server's data.

type

string

default

{
  services.etlegacy.stateDirName = "etlegacy";
}

services.gnome-keyring-daemon.enable

Whether to enable GNOME Keyring.

type

boolean

example

{
  services.gnome-keyring-daemon.enable = true;
}

default

{
  services.gnome-keyring-daemon.enable = false;
}

services.gnome-keyring-daemon.components

The GNOME keyring components to start. If empty then the default set of components will be started.

type

list of one of "pkcs11", "secrets", "ssh"

default

{
  services.gnome-keyring-daemon.components = [];
}

services.gnome-keyring-daemon.executable

The gnome-keyring-daemon needs to have the cap_ipc_lock capability, otherwise you get error messages like these: https://unix.stackexchange.com/questions/112030/gnome-keyring-daemon-insufficient-process-capabilities-unsecure-memory-might-g

NixOS can create the wrapper for you by enabling:

services.gnome3.keyring-daemon.enable = true;

If you're using sway you need to disable the PAM service, since then you need DBus to work:

security.pam.services.login.enableGnomeKeyring = mkForce false;

type

string

example

{
  services.gnome-keyring-daemon.executable = "/run/wrappers/bin/gnome-keyring-daemon";
}

default

{
  services.gnome-keyring-daemon.executable = "${pkgs.gnome3.gnome-keyring}/bin/gnome-keyring-daemon";
}

services.import-garmin-connect.enable

Whether to enable Import Garmin Connect.

type

boolean

example

{
  services.import-garmin-connect.enable = true;
}

default

{
  services.import-garmin-connect.enable = false;
}

services.import-garmin-connect.influx.db

type

string

default

{
  services.import-garmin-connect.influx.db = "garmin";
}

services.import-garmin-connect.influx.host

type

string

example

{
  services.import-garmin-connect.influx.host = "127.0.0.1";
}

default

{
  services.import-garmin-connect.influx.host = "localhost";
}

services.import-garmin-connect.influx.port

type

signed integer

default

{
  services.import-garmin-connect.influx.port = 8086;
}

services.import-garmin-connect.interval

OnCalendar specification

type

string

default

{
  services.import-garmin-connect.interval = "hourly";
}

services.import-garmin-connect.profiles

Profiles

type

attribute set of submodule

services.import-garmin-connect.profiles.<name>.passwordFile

Password file

type

string

services.import-garmin-connect.profiles.<name>.profile

Profile name

type

string

services.import-garmin-connect.profiles.<name>.username

Username

type

string

services.mako.enable

Whether to enable Mako, lightweight notification daemon for Wayland .

type

boolean

example

{
  services.mako.enable = true;
}

default

{
  services.mako.enable = false;
}

services.mako.actions

Applications may request an action to be associated with activating a notification. Disabling this will cause mako to ignore these requests.

type

null or boolean

default

{
  services.mako.actions = true;
}

services.mako.anchor

Show notifications at the specified position on the output. Supported values are top-right, top-center, top-left, bottom-right, bottom-center, bottom-left, and center.

type

null or one of "top-right", "top-center", "top-left", "bottom-right", "bottom-center", "bottom-left", "center"

default

{
  services.mako.anchor = "top-right";
}

services.mako.backgroundColor

Set popup background color to a specific color, represented in hex color code.

type

null or string

default

{
  services.mako.backgroundColor = "#285577FF";
}

services.mako.borderColor

Set popup border color to a specific color, represented in hex color code.

type

null or string

default

{
  services.mako.borderColor = "#4C7899FF";
}

services.mako.borderRadius

Set popup corner radius to the specified number of pixels.

type

null or signed integer

default

{
  services.mako.borderRadius = 0;
}

services.mako.borderSize

Set popup border size to the specified number of pixels.

type

null or signed integer

default

{
  services.mako.borderSize = 1;
}

services.mako.defaultTimeout

Set the default timeout to timeout in milliseconds. To disable the timeout, set it to zero.

type

null or signed integer

default

{
  services.mako.defaultTimeout = 0;
}

services.mako.font

Font to use, in Pango format.

type

null or string

default

{
  services.mako.font = "monospace 10";
}

services.mako.format

Set notification format string to format. See FORMAT SPECIFIERS for more information. To change this for grouped notifications, set it within a grouped criteria.

type

null or string

default

{
  services.mako.format = "<b>%s</b>\n%b";
}

services.mako.groupBy

A comma-separated list of criteria fields that will be compared to other visible notifications to determine if this one should form a group with them. All listed criteria must be exactly equal for two notifications to group.

type

null or string

default

{
  services.mako.groupBy = null;
}

services.mako.height

Set maximum height of notification popups. Notifications whose text takes up less space are shrunk to fit.

type

null or signed integer

default

{
  services.mako.height = 100;
}

services.mako.iconPath

Paths to search for icons when a notification specifies a name instead of a full path. Colon-delimited. This approximates the search algorithm used by the XDG Icon Theme Specification, but does not support any of the theme metadata. Therefore, if you want to search parent themes, you'll need to add them to the path manually. The /usr/share/icons/hicolor and /usr/share/pixmaps directories are always searched.

type

null or string

default

{
  services.mako.iconPath = null;
}

services.mako.icons

Whether or not to show icons in notifications.

type

null or boolean

default

{
  services.mako.icons = true;
}

services.mako.ignoreTimeout

If set, mako will ignore the expire timeout sent by notifications and use the one provided by default-timeout instead.

type

null or boolean

default

{
  services.mako.ignoreTimeout = false;
}

services.mako.layer

Arrange mako at the specified layer, relative to normal windows. Supported values are background, bottom, top, and overlay. Using overlay will cause notifications to be displayed above fullscreen windows, though this may also occur at top depending on your compositor.

type

null or one of "background", "bottom", "top", "overlay"

default

{
  services.mako.layer = "top";
}

services.mako.margin

Set margin of each edge specified in pixels. Specify single value to apply margin on all sides. Two comma-seperated values will set vertical and horizontal edges seperately. Four comma-seperated will give each edge a seperate value. For example: 10,20,5 will set top margin to 10, left and right to 20 and bottom to five.

type

null or string

default

{
  services.mako.margin = "10";
}

services.mako.markup

If 1, enable Pango markup. If 0, disable Pango markup. If enabled, Pango markup will be interpreted in your format specifier and in the body of notifications.

type

null or boolean

default

{
  services.mako.markup = true;
}

services.mako.maxIconSize

Set maximum icon size to the specified number of pixels.

type

null or signed integer

default

{
  services.mako.maxIconSize = 64;
}

services.mako.maxVisible

Set maximum number of visible notifications. Set -1 to show all.

type

null or signed integer

default

{
  services.mako.maxVisible = 5;
}

services.mako.output

Show notifications on the specified output. If empty, notifications will appear on the focused output. Requires the compositor to support the Wayland protocol xdg-output-unstable-v1 version 2.

type

null or string

default

{
  services.mako.output = null;
}

services.mako.padding

Set padding of each edge specified in pixels. Specify single value to apply margin on all sides. Two comma-seperated values will set vertical and horizontal edges seperately. Four comma-seperated will give each edge a seperate value. For example: 10,20,5 will set top margin to 10, left and right to 20 and bottom to five.

type

null or string

default

{
  services.mako.padding = "5";
}

services.mako.progressColor

Set popup progress indicator color to a specific color, represented in hex color code. To draw the progress indicator on top of the background color, use the over attribute. To replace the background color, use the source attribute (this can be useful when the notification is semi-transparent).

type

null or string

default

{
  services.mako.progressColor = "over #5588AAFF";
}

services.mako.sections

type

list of submodule

services.mako.sections.*.actions

Applications may request an action to be associated with activating a notification. Disabling this will cause mako to ignore these requests.

type

null or boolean

default

{
  services.mako.sections.*.actions = null;
}

services.mako.sections.*.backgroundColor

Set popup background color to a specific color, represented in hex color code.

type

null or string

default

{
  services.mako.sections.*.backgroundColor = null;
}

services.mako.sections.*.borderColor

Set popup border color to a specific color, represented in hex color code.

type

null or string

default

{
  services.mako.sections.*.borderColor = null;
}

services.mako.sections.*.borderRadius

Set popup corner radius to the specified number of pixels.

type

null or signed integer

default

{
  services.mako.sections.*.borderRadius = null;
}

services.mako.sections.*.borderSize

Set popup border size to the specified number of pixels.

type

null or signed integer

default

{
  services.mako.sections.*.borderSize = null;
}

services.mako.sections.*.criteria

type

list of attribute set of string

example

{
  services.mako.sections.*.criteria = "[]";
}

services.mako.sections.*.defaultTimeout

Set the default timeout to timeout in milliseconds. To disable the timeout, set it to zero.

type

null or signed integer

default

{
  services.mako.sections.*.defaultTimeout = null;
}

services.mako.sections.*.font

Font to use, in Pango format.

type

null or string

default

{
  services.mako.sections.*.font = null;
}

services.mako.sections.*.format

Set notification format string to format. See FORMAT SPECIFIERS for more information. To change this for grouped notifications, set it within a grouped criteria.

type

null or string

default

{
  services.mako.sections.*.format = null;
}

services.mako.sections.*.groupBy

A comma-separated list of criteria fields that will be compared to other visible notifications to determine if this one should form a group with them. All listed criteria must be exactly equal for two notifications to group.

type

null or string

default

{
  services.mako.sections.*.groupBy = null;
}

services.mako.sections.*.height

Set maximum height of notification popups. Notifications whose text takes up less space are shrunk to fit.

type

null or signed integer

default

{
  services.mako.sections.*.height = null;
}

services.mako.sections.*.iconPath

Paths to search for icons when a notification specifies a name instead of a full path. Colon-delimited. This approximates the search algorithm used by the XDG Icon Theme Specification, but does not support any of the theme metadata. Therefore, if you want to search parent themes, you'll need to add them to the path manually. The /usr/share/icons/hicolor and /usr/share/pixmaps directories are always searched.

type

null or string

default

{
  services.mako.sections.*.iconPath = null;
}

services.mako.sections.*.icons

Whether or not to show icons in notifications.

type

null or boolean

default

{
  services.mako.sections.*.icons = null;
}

services.mako.sections.*.ignoreTimeout

If set, mako will ignore the expire timeout sent by notifications and use the one provided by default-timeout instead.

type

null or boolean

default

{
  services.mako.sections.*.ignoreTimeout = null;
}

services.mako.sections.*.margin

Set margin of each edge specified in pixels. Specify single value to apply margin on all sides. Two comma-seperated values will set vertical and horizontal edges seperately. Four comma-seperated will give each edge a seperate value. For example: 10,20,5 will set top margin to 10, left and right to 20 and bottom to five.

type

null or string

default

{
  services.mako.sections.*.margin = null;
}

services.mako.sections.*.markup

If 1, enable Pango markup. If 0, disable Pango markup. If enabled, Pango markup will be interpreted in your format specifier and in the body of notifications.

type

null or boolean

default

{
  services.mako.sections.*.markup = null;
}

services.mako.sections.*.maxIconSize

Set maximum icon size to the specified number of pixels.

type

null or signed integer

default

{
  services.mako.sections.*.maxIconSize = null;
}

services.mako.sections.*.padding

Set padding of each edge specified in pixels. Specify single value to apply margin on all sides. Two comma-seperated values will set vertical and horizontal edges seperately. Four comma-seperated will give each edge a seperate value. For example: 10,20,5 will set top margin to 10, left and right to 20 and bottom to five.

type

null or string

default

{
  services.mako.sections.*.padding = null;
}

services.mako.sections.*.progressColor

Set popup progress indicator color to a specific color, represented in hex color code. To draw the progress indicator on top of the background color, use the over attribute. To replace the background color, use the source attribute (this can be useful when the notification is semi-transparent).

type

null or string

default

{
  services.mako.sections.*.progressColor = null;
}

services.mako.sections.*.textColor

Set popup text color to a specific color, represented in hex color code.

type

null or string

default

{
  services.mako.sections.*.textColor = null;
}

services.mako.sections.*.width

Set width of notification popups in specified number of pixels.

type

null or signed integer

default

{
  services.mako.sections.*.width = null;
}

services.mako.sort

Sorts incoming notifications by time and/or priority in ascending(+) or descending(-) order.

type

null or one of "+time", "-time", "+priority", "-priority"

default

{
  services.mako.sort = "-time";
}

services.mako.textColor

Set popup text color to a specific color, represented in hex color code.

type

null or string

default

{
  services.mako.textColor = "#FFFFFFFF";
}

services.mako.width

Set width of notification popups in specified number of pixels.

type

null or signed integer

default

{
  services.mako.width = 300;
}

services.nginx.sso.enable

Whether to enable nginx-sso service.

type

boolean

example

{
  services.nginx.sso.enable = true;
}

default

{
  services.nginx.sso.enable = false;
}

services.nginx.sso.package

The nginx-sso package that should be used.

type

package

default

{
  services.nginx.sso.package = "pkgs.nginx-sso";
}

services.nginx.sso.configuration

nginx-sso configuration (documentation) as a Nix attribute set.

type

attribute set of unspecified

example

{
  services.nginx.sso.configuration = {
    _type = "literalExpression";
    text = ''
      {
        listen = { addr = "127.0.0.1"; port = 8080; };
      
        providers.token.tokens = {
          myuser = "MyToken";
        };
      
        acl = {
          rule_sets = [
            {
              rules = [ { field = "x-application"; equals = "MyApp"; } ];
              allow = [ "myuser" ];
            }
          ];
        };
      }
      
    '';
  };
}

default

{
  services.nginx.sso.configuration = {};
}

services.nginx.sso.secrets

Inserts values in the configuration yaml with the contents read from the secret file.

type

attribute set of path

example

{
  services.nginx.sso.secrets = {
    _type = "literalExpression";
    text = ''
      {
        ".cookie.authentication_key" = "/secrets/nginx-sso/authentication_key";
      }
      
    '';
  };
}

default

{
  services.nginx.sso.secrets = {};
}

services.prometheus.nats-exporter.enable

Whether to enable the prometheus nats exporter.

type

boolean

example

{
  services.prometheus.nats-exporter.enable = true;
}

default

{
  services.prometheus.nats-exporter.enable = false;
}

services.prometheus.nats-exporter.extraFlags

Extra command line flags to pass to the exporter. See:

https://github.com/nats-io/prometheus-nats-exporter#usage

type

list of string

default

{
  services.prometheus.nats-exporter.extraFlags = [];
}

services.prometheus.nats-exporter.listenAddress

Address to listen on.

type

string

default

{
  services.prometheus.nats-exporter.listenAddress = "0.0.0.0";
}

services.prometheus.nats-exporter.port

Port to listen on.

type

signed integer

default

{
  services.prometheus.nats-exporter.port = 7777;
}

services.prometheus.nats-exporter.url

NATS monitor endpoint to query.

type

string

default

{
  services.prometheus.nats-exporter.url = "http://127.0.0.1:8222";
}

services.prometheus.nvme-collector.enable

Whether to enable the prometheus nvme collector.

type

boolean

example

{
  services.prometheus.nvme-collector.enable = true;
}

default

{
  services.prometheus.nvme-collector.enable = false;
}

services.prometheus.nvme-collector.interval

Interval to collect nvme metrics on.

type

string

default

{
  services.prometheus.nvme-collector.interval = "2m";
}

services.prometheus.nvme-collector.textfileDir

Textfile directory that node-exporter is watching

type

string

default

{
  services.prometheus.nvme-collector.textfileDir = "/var/lib/prometheus/node-exporter/textfile";
}

services.prometheus.smartmon-collector.enable

Whether to enable the prometheus smartmon collector.

type

boolean

example

{
  services.prometheus.smartmon-collector.enable = true;
}

default

{
  services.prometheus.smartmon-collector.enable = false;
}

services.prometheus.smartmon-collector.interval

Interval to collect smartmon information on.

type

string

default

{
  services.prometheus.smartmon-collector.interval = "2m";
}

services.prometheus.smartmon-collector.textfileDir

Textfile directory that node-exporter is watching

type

string

default

{
  services.prometheus.smartmon-collector.textfileDir = "/var/lib/prometheus/node-exporter/textfile";
}

services.prometheus.unbound-exporter.enable

Whether to enable the prometheus unbound exporter.

type

boolean

example

{
  services.prometheus.unbound-exporter.enable = true;
}

default

{
  services.prometheus.unbound-exporter.enable = false;
}

services.prometheus.unbound-exporter.controlCert

type

string

services.prometheus.unbound-exporter.controlKey

type

string

services.prometheus.unbound-exporter.listenAddress

Address to listen on.

type

string

default

{
  services.prometheus.unbound-exporter.listenAddress = "0.0.0.0";
}

services.prometheus.unbound-exporter.port

Port to listen on.

type

signed integer

default

{
  services.prometheus.unbound-exporter.port = 9167;
}

services.prometheus.unbound-exporter.serverCA

type

string

services.random-wallpaper.enable

Whether to enable random desktop wallpaper.

type

boolean

example

{
  services.random-wallpaper.enable = true;
}

default

{
  services.random-wallpaper.enable = false;
}

services.random-wallpaper.altMapping

type

attribute set of list of string

example

{
  services.random-wallpaper.altMapping = {
    1080x1920 = [
      "vertical"
    ];
    1368x768 = [
      "1920x1080"
    ];
  };
}

default

{
  services.random-wallpaper.altMapping = {};
}

services.random-wallpaper.backend

type

one of "xorg", "sway"

default

{
  services.random-wallpaper.backend = "xorg";
}

services.random-wallpaper.directories

type

list of string

services.random-wallpaper.interval

The duration between changing wallpaper image, set to null to only set wallpaper when logging in. Should be formatted as a duration understood by systemd.

type

null or string

default

{
  services.random-wallpaper.interval = null;
}

services.solaredge-influx.enable

Whether to enable Import Solaredge data into InfluxDB.

type

boolean

example

{
  services.solaredge-influx.enable = true;
}

default

{
  services.solaredge-influx.enable = false;
}

services.solaredge-influx.apiKeyFile

File path to the API key

type

string

services.solaredge-influx.energy.interval

OnUnitActiveSec specification

type

string

default

{
  services.solaredge-influx.energy.interval = "15min";
}

services.solaredge-influx.energy.period

Period to scrape in minutes

type

signed integer

default

{
  services.solaredge-influx.energy.period = 60;
}

services.solaredge-influx.influx.db

type

string

default

{
  services.solaredge-influx.influx.db = "power";
}

services.solaredge-influx.influx.host

type

string

example

{
  services.solaredge-influx.influx.host = "127.0.0.1";
}

default

{
  services.solaredge-influx.influx.host = "localhost";
}

services.solaredge-influx.influx.port

type

signed integer

default

{
  services.solaredge-influx.influx.port = 8086;
}

services.solaredge-influx.inverter.interval

OnUnitActiveSec specification

type

string

default

{
  services.solaredge-influx.inverter.interval = "60min";
}

services.solaredge-influx.inverter.period

Period to scrape in minutes

type

signed integer

default

{
  services.solaredge-influx.inverter.period = 120;
}

services.solaredge-influx.inverter.serial

Serial number of the inverter

type

string

services.solaredge-influx.power.interval

OnUnitActiveSec specification

type

string

default

{
  services.solaredge-influx.power.interval = "15min";
}

services.solaredge-influx.power.period

Period to scrape in minutes

type

signed integer

default

{
  services.solaredge-influx.power.period = 60;
}

services.solaredge-influx.siteId

Solaredge site id

type

signed integer

services.solaredge-influx.versionCheck.interval

OnCalendar specification

type

string

default

{
  services.solaredge-influx.versionCheck.interval = "daily";
}

services.swayidle.enable

Whether to enable Idle manager for Wayland.

type

boolean

example

{
  services.swayidle.enable = true;
}

default

{
  services.swayidle.enable = false;
}

services.swayidle.events

type

list of submodule

example

{
  services.swayidle.events = ''
    [
      { event = "before-sleep"; command = "swaylock"; }
      { event = "lock"; command = "lock"; }
    ]
    
  '';
}

default

{
  services.swayidle.events = [];
}

services.swayidle.events.*.command

Command to run when event occurs

type

string

services.swayidle.events.*.event

type

one of "before-sleep", "after-resume", "lock", "unlock"

services.swayidle.extraArgs

type

list of string

default

{
  services.swayidle.extraArgs = [];
}

services.swayidle.timeouts

type

list of submodule

default

{
  services.swayidle.timeouts = [];
}

services.swayidle.timeouts.*.command

Command to run after timeout seconds of inactivity

type

string

services.swayidle.timeouts.*.resumeCommand

Command to run when there is activity again

type

null or string

default

{
  services.swayidle.timeouts.*.resumeCommand = null;
}

services.swayidle.timeouts.*.timeout

Timeout in seconds

type

positive integer, meaning >0

example

{
  services.swayidle.timeouts.*.timeout = 60;
}

services.wordpress

Specification of one or more WordPress sites to serve via NGINX.

type

attribute set of submodule

default

{
  services.wordpress = {};
}

services.wordpress.<name>.package

Which WordPress package to use.

type

package

default

{
  services.wordpress.<name>.package = {
    drvPath = "wordpress-5.9.3";
    name = "wordpress-5.9.3";
    outPath = "wordpress-5.9.3";
    type = "derivation";
  };
}

services.wordpress.<name>.database.createLocally

Create the database and database user locally.

type

boolean

default

{
  services.wordpress.<name>.database.createLocally = true;
}

services.wordpress.<name>.database.host

Database host address.

type

string

default

{
  services.wordpress.<name>.database.host = "localhost";
}

services.wordpress.<name>.database.name

Database name.

type

string

default

{
  services.wordpress.<name>.database.name = "wordpress";
}

services.wordpress.<name>.database.passwordFile

A file containing the password corresponding to

.

type

null or path

example

{
  services.wordpress.<name>.database.passwordFile = "/run/keys/wordpress-dbpassword";
}

default

{
  services.wordpress.<name>.database.passwordFile = null;
}

services.wordpress.<name>.database.port

Database host port.

type

16 bit unsigned integer; between 0 and 65535 (both inclusive)

default

{
  services.wordpress.<name>.database.port = 3306;
}

services.wordpress.<name>.database.socket

Path to the unix socket file to use for authentication.

type

null or path

default

{
  services.wordpress.<name>.database.socket = "/run/mysqld/mysqld.sock";
}

services.wordpress.<name>.database.tablePrefix

The $table_prefix is the value placed in the front of your database tables. Change the value if you want to use something other than wp_ for your database prefix. Typically this is changed if you are installing multiple WordPress blogs in the same database.

See .

type

string

default

{
  services.wordpress.<name>.database.tablePrefix = "wp_";
}

services.wordpress.<name>.database.user

Database user.

type

string

default

{
  services.wordpress.<name>.database.user = "wordpress";
}

services.wordpress.<name>.extraConfig

Any additional text to be appended to the wp-config.php configuration file. This is a PHP script. For configuration settings, see .

type

strings concatenated with "\n"

example

{
  services.wordpress.<name>.extraConfig = ''
    define( 'AUTOSAVE_INTERVAL', 60 ); // Seconds
    
  '';
}

default

{
  services.wordpress.<name>.extraConfig = "";
}

services.wordpress.<name>.hostName

Hostname for this wordpress installation

type

string

example

{
  services.wordpress.<name>.hostName = "wordpress.local";
}

services.wordpress.<name>.https

type

boolean

default

{
  services.wordpress.<name>.https = true;
}

services.wordpress.<name>.maxUploadSize

Defines the upload limit for files. This changes the relevant options in php.ini and nginx if enabled.

type

string

default

{
  services.wordpress.<name>.maxUploadSize = "128M";
}

services.wordpress.<name>.phpOptions

Options for PHP's php.ini file for nextcloud.

type

attribute set of string

default

{
  services.wordpress.<name>.phpOptions = {
    catch_workers_output = "yes";
    display_errors = "stderr";
    error_reporting = "E_ALL & ~E_DEPRECATED & ~E_STRICT";
    expose_php = "Off";
    "opcache.enable_cli" = "1";
    "opcache.fast_shutdown" = "1";
    "opcache.interned_strings_buffer" = "8";
    "opcache.max_accelerated_files" = "10000";
    "opcache.memory_consumption" = "128";
    "opcache.revalidate_freq" = "1";
    "openssl.cafile" = "/etc/ssl/certs/ca-certificates.crt";
    short_open_tag = "Off";
  };
}

services.wordpress.<name>.plugins

List of path(s) to respective plugin(s) which are copied from the 'plugins' directory. These plugins need to be packaged before use, see example.

type

list of path

example

{
  services.wordpress.<name>.plugins = ''
    # Wordpress plugin 'embed-pdf-viewer' installation example
    embedPdfViewerPlugin = pkgs.stdenv.mkDerivation {
      name = "embed-pdf-viewer-plugin";
      # Download the theme from the wordpress site
      src = pkgs.fetchurl {
        url = "https://downloads.wordpress.org/plugin/embed-pdf-viewer.2.0.3.zip";
        sha256 = "1rhba5h5fjlhy8p05zf0p14c9iagfh96y91r36ni0rmk6y891lyd";
      };
      # We need unzip to build this package
      buildInputs = [ pkgs.unzip ];
      # Installing simply means copying all files to the output directory
      installPhase = "mkdir -p $out; cp -R * $out/";
    };
    
    And then pass this theme to the themes list like this:
      plugins = [ embedPdfViewerPlugin ];
    
  '';
}

default

{
  services.wordpress.<name>.plugins = [];
}

services.wordpress.<name>.pluginsPath

Path to the directory containing the plugins. This option can't be used together with 'plugins'.

type

null or path

default

{
  services.wordpress.<name>.pluginsPath = null;
}

services.wordpress.<name>.poolConfig

Options for the WordPress PHP pool. See the documentation on php-fpm.conf for details on configuration directives.

type

attribute set of string or signed integer or boolean

default

{
  services.wordpress.<name>.poolConfig = {
    pm = "dynamic";
    "pm.max_children" = 32;
    "pm.max_requests" = 500;
    "pm.max_spare_servers" = 4;
    "pm.min_spare_servers" = 2;
    "pm.start_servers" = 2;
  };
}

services.wordpress.<name>.themes

List of path(s) to respective theme(s) which are copied from the 'theme' directory. These themes need to be packaged before use, see example.

type

list of path

example

{
  services.wordpress.<name>.themes = ''
    # Let's package the responsive theme
    responsiveTheme = pkgs.stdenv.mkDerivation {
      name = "responsive-theme";
      # Download the theme from the wordpress site
      src = pkgs.fetchurl {
        url = "https://downloads.wordpress.org/theme/responsive.3.14.zip";
        sha256 = "0rjwm811f4aa4q43r77zxlpklyb85q08f9c8ns2akcarrvj5ydx3";
      };
      # We need unzip to build this package
      buildInputs = [ pkgs.unzip ];
      # Installing simply means copying all files to the output directory
      installPhase = "mkdir -p $out; cp -R * $out/";
    };
    
    And then pass this theme to the themes list like this:
      themes = [ responsiveTheme ];
    
  '';
}

default

{
  services.wordpress.<name>.themes = [];
}

services.wordpress.<name>.themesPath

Path to the directory containing the themes. This option can't be used together with 'themes'.

type

null or path

default

{
  services.wordpress.<name>.themesPath = null;
}

services.wordpress.<name>.uploadsDir

This directory is used for uploads of pictures. The directory passed here is automatically created and permissions adjusted as required.

type

path

default

{
  services.wordpress.<name>.uploadsDir = "/var/lib/wordpress/‹name›/uploads";
}

xdg.apps

Configure XDG default apps for mime types.

type

attribute set of submodule

default

{
  xdg.apps = {};
}

xdg.apps.<name>.package

type

null or package

default

{
  xdg.apps.<name>.package = null;
}

xdg.apps.<name>.mimeTypes

type

list of string

xdg.apps.<name>.name

type

string