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