Darwin Manual

Version darwin4.073935f


Preface
1. Configuration Options

Preface

Nix modules for darwin.

Chapter 1. Configuration Options

documentation.enable

Whether to install documentation of packages from environment.systemPackages into the generated system path.

See "Multiple-output packages" chapter in the nixpkgs manual for more info.

Type: boolean

Default: true

Declared by:

<darwin/modules/documentation>
documentation.doc.enable

Whether to install documentation distributed in packages' /share/doc. Usually plain text and/or HTML. This also includes "doc" outputs.

Type: boolean

Default: true

Declared by:

<darwin/modules/documentation>
documentation.info.enable

Whether to install info pages and the info command. This also includes "info" outputs.

Type: boolean

Default: true

Declared by:

<darwin/modules/documentation>
documentation.man.enable

Whether to install manual pages and the man command. This also includes "man" outputs.

Type: boolean

Default: true

Declared by:

<darwin/modules/documentation>
environment.darwinConfig

The path of the darwin configuration.nix used to configure the system, this updates the default darwin-config entry in NIX_PATH. Since this changes an environment variable it will only apply to new shells.

NOTE: Changing this requires running darwin-rebuild switch -I darwin-config=/path/to/configuration.nix the first time to make darwin-rebuild aware of the custom location.

Type: path or string

Default: "\$HOME/.nixpkgs/darwin-configuration.nix"

Declared by:

<darwin/modules/environment>
environment.etc

Set of files that have to be linked in /etc.

Type: list or attribute set of submodules

Default: { }

Declared by:

<darwin/modules/system/etc.nix>
environment.etc.<name?>.enable

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

Type: boolean

Default: true

Declared by:

<darwin/modules/system/etc.nix>
environment.etc.<name?>.source

Path of the source file.

Type: path

Declared by:

<darwin/modules/system/etc.nix>
environment.etc.<name?>.target

Name of symlink. Defaults to the attribute name.

Type: string

Default: "‹name›"

Declared by:

<darwin/modules/system/etc.nix>
environment.etc.<name?>.text

Text of the file.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/system/etc.nix>
environment.extraInit

Shell script code called during global environment initialisation after all variables and profileVariables have been set. This code is asumed to be shell-independent, which means you should stick to pure sh without sh word split.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/environment>
environment.extraOutputsToInstall

List of additional package outputs to be symlinked into /run/current-system/sw.

Type: list of strings

Default: [ ]

Example: [ "doc" "info" "devdoc" ]

Declared by:

<darwin/modules/environment>
environment.interactiveShellInit

Shell script code called during interactive shell initialisation. This code is asumed to be shell-independent, which means you should stick to pure sh without sh word split.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/environment>
environment.launchAgents

Set of files that have to be linked in /Library/LaunchAgents.

Type: list or attribute set of submodules

Default: { }

Declared by:

<darwin/modules/system/launchd.nix>
environment.launchAgents.<name?>.enable

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

Type: boolean

Default: true

Declared by:

<darwin/modules/system/launchd.nix>
environment.launchAgents.<name?>.source

Path of the source file.

Type: path

Declared by:

<darwin/modules/system/launchd.nix>
environment.launchAgents.<name?>.target

Name of symlink. Defaults to the attribute name.

Type: string

Default: "‹name›"

Declared by:

<darwin/modules/system/launchd.nix>
environment.launchAgents.<name?>.text

Text of the file.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/system/launchd.nix>
environment.launchDaemons

Set of files that have to be linked in /Library/LaunchDaemons.

Type: list or attribute set of submodules

Default: { }

Declared by:

<darwin/modules/system/launchd.nix>
environment.launchDaemons.<name?>.enable

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

Type: boolean

Default: true

Declared by:

<darwin/modules/system/launchd.nix>
environment.launchDaemons.<name?>.source

Path of the source file.

Type: path

Declared by:

<darwin/modules/system/launchd.nix>
environment.launchDaemons.<name?>.target

Name of symlink. Defaults to the attribute name.

Type: string

Default: "‹name›"

Declared by:

<darwin/modules/system/launchd.nix>
environment.launchDaemons.<name?>.text

Text of the file.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/system/launchd.nix>
environment.loginShell

Configure default login shell.

Type: string

Default: "\$SHELL"

Declared by:

<darwin/modules/environment>
environment.loginShellInit

Shell script code called during login shell initialisation. This code is asumed to be shell-independent, which means you should stick to pure sh without sh word split.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/environment>
environment.pathsToLink

List of directories to be symlinked in /run/current-system/sw.

Type: list of strings

Default: [ ]

Example: [ "/share/doc" ]

Declared by:

<darwin/modules/environment>
environment.postBuild

Commands to execute when building the global environment.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/environment>
environment.profiles

A list of profiles used to setup the global environment.

Type: list of strings

Declared by:

<darwin/modules/environment>
environment.shellAliases

An attribute set that maps aliases (the top level attribute names in this option) to command strings or directly to build outputs. The alises are added to all users' shells.

Type: attribute set of strings

Default: { }

Example: { ll = "ls -l"; }

Declared by:

<darwin/modules/environment>
environment.shellInit

Shell script code called during shell initialisation. This code is asumed to be shell-independent, which means you should stick to pure sh without sh word split.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/environment>
environment.shells

A list of permissible login shells for user accounts. No need to mention /bin/sh and other shells that are available by default on macOS.

Type: list of package or paths

Default: [ ]

Example:

[ pkgs.bashInteractive pkgs.zsh ]

Declared by:

<darwin/modules/system/shells.nix>
environment.systemPackages

The set of packages that appear in /run/current-system/sw. These packages are automatically available to all users, and are automatically updated every time you rebuild the system configuration. (The latter is the main difference with installing them in the default profile, /nix/var/nix/profiles/default.

Type: list of packages

Default: [ ]

Example:

[ pkgs.curl pkgs.vim ]

Declared by:

<darwin/modules/environment>
environment.systemPath

The set of paths that are added to PATH.

Type: list of path or strings

Declared by:

<darwin/modules/environment>
environment.userLaunchAgents

Set of files that have to be linked in ~/Library/LaunchAgents.

Type: list or attribute set of submodules

Default: { }

Declared by:

<darwin/modules/system/launchd.nix>
environment.userLaunchAgents.<name?>.enable

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

Type: boolean

Default: true

Declared by:

<darwin/modules/system/launchd.nix>
environment.userLaunchAgents.<name?>.source

Path of the source file.

Type: path

Declared by:

<darwin/modules/system/launchd.nix>
environment.userLaunchAgents.<name?>.target

Name of symlink. Defaults to the attribute name.

Type: string

Default: "‹name›"

Declared by:

<darwin/modules/system/launchd.nix>
environment.userLaunchAgents.<name?>.text

Text of the file.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/system/launchd.nix>
environment.variables

A set of environment variables used in the global environment. These variables will be set on shell initialisation. The value of each variable can be either a string or a list of strings. The latter is concatenated, interspersed with colon characters.

Type: attribute set of string or list of stringss

Default: { }

Example: { EDITOR = "vim"; LANG = "nl_NL.UTF-8"; }

Declared by:

<darwin/modules/environment>
fonts.enableFontDir

Whether to enable font management and install configured fonts to /Library/Fonts.

NOTE: removes any manually-added fonts.

Type: unspecified

Default: false

Declared by:

<darwin/modules/fonts>
fonts.fonts

List of fonts to install.

Type: list of paths

Default: [ ]

Example:

[ pkgs.dejavu_fonts ]

Declared by:

<darwin/modules/fonts>
launchd.agents

Definition of per-user launchd agents.

When a user logs in, a per-user launchd is started. It does the following: 1. It loads the parameters for each launch-on-demand user agent from the property list files found in /System/Library/LaunchAgents, /Library/LaunchAgents, and the user’s individual Library/LaunchAgents directory. 2. It registers the sockets and file descriptors requested by those user agents. 3. It launches any user agents that requested to be running all the time. 4. As requests for a particular service arrive, it launches the corresponding user agent and passes the request to it. 5. When the user logs out, it sends a SIGTERM signal to all of the user agents that it started.

Type: attribute set of submodules

Default: { }

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.command

Command executed as the service's main process.

Type: string or path

Default: ""

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.environment

Environment variables passed to the service's processes.

Type: attribute set of string or list of stringss

Default: { }

Example: { LANG = "nl_NL.UTF-8"; PATH = "/foo/bar/bin"; }

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.path

Packages added to the service's PATH environment variable. Only the bin and subdirectories of each package is added.

Type: list of path or strings

Default: [ ]

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.script

Shell commands executed as the service's main process.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig

Each attribute in this set specifies an option for a key in the plist. https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man5/launchd.plist.5.html

Type: submodule

Default: { }

Example: { KeepAlive = true; Program = "/run/current-system/sw/bin/nix-daemon"; }

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.AbandonProcessGroup

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.Debug

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.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 run-ning running ning system. If you wish to know whether a job is loaded in launchd, reading this key from a configura-tion configuration tion 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 necessar-ily necessarily ily 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 crite-ria criteria ria are insufficient to describe the conditions under which your job needs to run. The cost to have a job loaded in launchd is negligible, so there is no harm in loading a job which only runs once or very rarely.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.EnableGlobbing

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.EnableTransactions

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.EnvironmentVariables

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

Type: null or attribute set of strings

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.ExitTimeOut

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.GroupName

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

Type: null or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.HardResourceLimits

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

Type: null or submodule

Default: null

Example: { NumberOfFiles = 4096; }

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.HardResourceLimits.CPU

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.HardResourceLimits.Core

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.HardResourceLimits.Data

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.HardResourceLimits.FileSize

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.HardResourceLimits.MemoryLock

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.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 (HardResource-Limits) (HardResourceLimits) Limits) value in addition to the setrlimit(2) values.

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.HardResourceLimits.NumberOfProcesses

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.HardResourceLimits.ResidentSetSize

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.HardResourceLimits.Stack

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.InitGroups

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.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 dictio-nary dictionary nary of conditions may be specified to selectively control whether launchd keeps a job alive or not. If multiple keys are provided, launchd ORs them, thus providing maximum flexibility to the job to refine the logic and stall if necessary. If launchd finds no reason to restart the job, it falls back on demand based invocation. Jobs that exit quickly and frequently when configured to be kept alive will be throttled to converve system resources.

Type: null or boolean or submodule

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.Label

This required key uniquely identifies the job to launchd.

Type: string

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.LaunchOnlyOnce

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.LimitLoadFromHosts

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

Type: null or list of strings

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.LimitLoadToHosts

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

Type: null or list of strings

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.LimitLoadToSessionType

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

Type: null or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.LowPriorityIO

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.MachServices

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

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

Type: null or submodule

Default: null

Example: { ResetAtClose = true; }

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.MachServices.HideUntilCheckIn

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.MachServices.ResetAtClose

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.Nice

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.OnDemand

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.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. Interac-tive Interactive tive jobs are critical to maintaining a responsive user experience, and this key should only be used if an app's ability to be responsive depends on it, and cannot be made Adaptive.

Type: null or one of "Background", "Standard", "Adaptive", "Interactive"

Default: null

Example: "Background"

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.Program

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

Type: null or path

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.ProgramArguments

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

Type: null or list of strings

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.QueueDirectories

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

Type: null or list of strings

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.RootDirectory

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

Type: null or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.RunAtLoad

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.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 appli-cation application cation developer to use to differentiate which descriptors correspond to which application level proto-cols protocols cols (e.g. http vs. ftp vs. DNS...). At check-in time, the value of each Sockets dictionary key will be an array of descriptors. Daemon/Agent writers should consider all descriptors of a given key to be to be effectively equivalent, even though each file descriptor likely represents a different networking protocol which conforms to the criteria specified in the job configuration file.

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

Type: null or list or attribute set of submodules

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.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 SockService-Name. SockServiceName. Name.

Type: null or boolean or list of strings

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.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 Sock-Family SockFamily Family family also be set, otherwise the results are undefined.

Type: null or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.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 inher-ited inherited ited by all jobs spawned by launchd.

Type: null or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.Sockets.<name?>.SockFamily

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

Type: null or one of "IPv4", "IPv6"

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.Sockets.<name?>.SockNodeName

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

Type: null or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.Sockets.<name?>.SockPassive

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.Sockets.<name?>.SockPathMode

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.Sockets.<name?>.SockPathName

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

Type: null or path

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.Sockets.<name?>.SockProtocol

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

Type: null or one of "TCP"

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.Sockets.<name?>.SockServiceName

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

Type: null or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.Sockets.<name?>.SockType

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

Type: null or one of "stream", "dgram", "seqpacket"

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.SoftResourceLimits

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

Type: null or submodule

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.SoftResourceLimits.CPU

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.SoftResourceLimits.Core

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.SoftResourceLimits.Data

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.SoftResourceLimits.FileSize

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.SoftResourceLimits.MemoryLock

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.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 (HardResource-Limits) (HardResourceLimits) Limits) value in addition to the setrlimit(2) values.

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.SoftResourceLimits.NumberOfProcesses

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.SoftResourceLimits.ResidentSetSize

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.SoftResourceLimits.Stack

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.StandardErrorPath

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

Type: null or path

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.StandardInPath

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

Type: null or path

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.StandardOutPath

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

Type: null or path

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.StartCalendarInterval

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

Type: null or list of submodules

Default: null

Example: { Hour = 2; Minute = 30; }

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.StartCalendarInterval.*.Day

The day on which this job will be run.

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.StartCalendarInterval.*.Hour

The hour on which this job will be run.

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.StartCalendarInterval.*.Minute

The minute on which this job will be run.

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.StartCalendarInterval.*.Month

The month on which this job will be run.

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.StartCalendarInterval.*.Weekday

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.StartInterval

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.StartOnMount

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.ThrottleInterval

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.TimeOut

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.Umask

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.UserName

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

Type: null or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.WaitForDebugger

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.WatchPaths

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

Type: null or list of paths

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.WorkingDirectory

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

Type: null or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.inetdCompatibility

The presence of this key specifies that the daemon expects to be run as if it were launched from inetd.

Type: null or submodule

Default: null

Example: { Wait = true; }

Declared by:

<darwin/modules/launchd>
launchd.agents.<name>.serviceConfig.inetdCompatibility.Wait

This flag corresponds to the "wait" or "nowait" option of inetd. If true, then the listening socket is passed via the standard in/out/error file descriptors. If false, then accept(2) is called on behalf of the job, and the result is passed via the standard in/out/error descriptors.

Type: null or boolean or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons

Definition of launchd daemons.

After the system is booted and the kernel is running, launchd is run to finish the system initialization. As part of that initialization, it goes through the following steps: 1. It loads the parameters for each launch-on-demand system-level daemon from the property list files found in /System/Library/LaunchDaemons/ and /Library/LaunchDaemons/. 2. It registers the sockets and file descriptors requested by those daemons. 3. It launches any daemons that requested to be running all the time. 4. As requests for a particular service arrive, it launches the corresponding daemon and passes the request to it. 5. When the system shuts down, it sends a SIGTERM signal to all of the daemons that it started.

Type: attribute set of submodules

Default: { }

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.command

Command executed as the service's main process.

Type: string or path

Default: ""

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.environment

Environment variables passed to the service's processes.

Type: attribute set of string or list of stringss

Default: { }

Example: { LANG = "nl_NL.UTF-8"; PATH = "/foo/bar/bin"; }

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.path

Packages added to the service's PATH environment variable. Only the bin and subdirectories of each package is added.

Type: list of path or strings

Default: [ ]

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.script

Shell commands executed as the service's main process.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig

Each attribute in this set specifies an option for a key in the plist. https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man5/launchd.plist.5.html

Type: submodule

Default: { }

Example: { KeepAlive = true; Program = "/run/current-system/sw/bin/nix-daemon"; }

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.AbandonProcessGroup

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.Debug

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.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 run-ning running ning system. If you wish to know whether a job is loaded in launchd, reading this key from a configura-tion configuration tion 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 necessar-ily necessarily ily 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 crite-ria criteria ria are insufficient to describe the conditions under which your job needs to run. The cost to have a job loaded in launchd is negligible, so there is no harm in loading a job which only runs once or very rarely.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.EnableGlobbing

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.EnableTransactions

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.EnvironmentVariables

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

Type: null or attribute set of strings

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.ExitTimeOut

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.GroupName

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

Type: null or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.HardResourceLimits

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

Type: null or submodule

Default: null

Example: { NumberOfFiles = 4096; }

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.HardResourceLimits.CPU

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.HardResourceLimits.Core

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.HardResourceLimits.Data

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.HardResourceLimits.FileSize

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.HardResourceLimits.MemoryLock

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.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 (HardResource-Limits) (HardResourceLimits) Limits) value in addition to the setrlimit(2) values.

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.HardResourceLimits.NumberOfProcesses

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.HardResourceLimits.ResidentSetSize

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.HardResourceLimits.Stack

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.InitGroups

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.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 dictio-nary dictionary nary of conditions may be specified to selectively control whether launchd keeps a job alive or not. If multiple keys are provided, launchd ORs them, thus providing maximum flexibility to the job to refine the logic and stall if necessary. If launchd finds no reason to restart the job, it falls back on demand based invocation. Jobs that exit quickly and frequently when configured to be kept alive will be throttled to converve system resources.

Type: null or boolean or submodule

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.Label

This required key uniquely identifies the job to launchd.

Type: string

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.LaunchOnlyOnce

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.LimitLoadFromHosts

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

Type: null or list of strings

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.LimitLoadToHosts

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

Type: null or list of strings

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.LimitLoadToSessionType

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

Type: null or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.LowPriorityIO

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.MachServices

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

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

Type: null or submodule

Default: null

Example: { ResetAtClose = true; }

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.MachServices.HideUntilCheckIn

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.MachServices.ResetAtClose

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.Nice

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.OnDemand

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.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. Interac-tive Interactive tive jobs are critical to maintaining a responsive user experience, and this key should only be used if an app's ability to be responsive depends on it, and cannot be made Adaptive.

Type: null or one of "Background", "Standard", "Adaptive", "Interactive"

Default: null

Example: "Background"

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.Program

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

Type: null or path

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.ProgramArguments

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

Type: null or list of strings

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.QueueDirectories

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

Type: null or list of strings

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.RootDirectory

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

Type: null or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.RunAtLoad

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.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 appli-cation application cation developer to use to differentiate which descriptors correspond to which application level proto-cols protocols cols (e.g. http vs. ftp vs. DNS...). At check-in time, the value of each Sockets dictionary key will be an array of descriptors. Daemon/Agent writers should consider all descriptors of a given key to be to be effectively equivalent, even though each file descriptor likely represents a different networking protocol which conforms to the criteria specified in the job configuration file.

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

Type: null or list or attribute set of submodules

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.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 SockService-Name. SockServiceName. Name.

Type: null or boolean or list of strings

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.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 Sock-Family SockFamily Family family also be set, otherwise the results are undefined.

Type: null or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.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 inher-ited inherited ited by all jobs spawned by launchd.

Type: null or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.Sockets.<name?>.SockFamily

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

Type: null or one of "IPv4", "IPv6"

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.Sockets.<name?>.SockNodeName

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

Type: null or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.Sockets.<name?>.SockPassive

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.Sockets.<name?>.SockPathMode

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.Sockets.<name?>.SockPathName

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

Type: null or path

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.Sockets.<name?>.SockProtocol

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

Type: null or one of "TCP"

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.Sockets.<name?>.SockServiceName

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

Type: null or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.Sockets.<name?>.SockType

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

Type: null or one of "stream", "dgram", "seqpacket"

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.SoftResourceLimits

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

Type: null or submodule

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.SoftResourceLimits.CPU

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.SoftResourceLimits.Core

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.SoftResourceLimits.Data

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.SoftResourceLimits.FileSize

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.SoftResourceLimits.MemoryLock

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.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 (HardResource-Limits) (HardResourceLimits) Limits) value in addition to the setrlimit(2) values.

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.SoftResourceLimits.NumberOfProcesses

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.SoftResourceLimits.ResidentSetSize

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.SoftResourceLimits.Stack

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.StandardErrorPath

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

Type: null or path

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.StandardInPath

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

Type: null or path

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.StandardOutPath

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

Type: null or path

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.StartCalendarInterval

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

Type: null or list of submodules

Default: null

Example: { Hour = 2; Minute = 30; }

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.StartCalendarInterval.*.Day

The day on which this job will be run.

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.StartCalendarInterval.*.Hour

The hour on which this job will be run.

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.StartCalendarInterval.*.Minute

The minute on which this job will be run.

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.StartCalendarInterval.*.Month

The month on which this job will be run.

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.StartCalendarInterval.*.Weekday

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.StartInterval

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.StartOnMount

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.ThrottleInterval

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.TimeOut

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.Umask

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.UserName

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

Type: null or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.WaitForDebugger

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.WatchPaths

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

Type: null or list of paths

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.WorkingDirectory

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

Type: null or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.inetdCompatibility

The presence of this key specifies that the daemon expects to be run as if it were launched from inetd.

Type: null or submodule

Default: null

Example: { Wait = true; }

Declared by:

<darwin/modules/launchd>
launchd.daemons.<name>.serviceConfig.inetdCompatibility.Wait

This flag corresponds to the "wait" or "nowait" option of inetd. If true, then the listening socket is passed via the standard in/out/error file descriptors. If false, then accept(2) is called on behalf of the job, and the result is passed via the standard in/out/error descriptors.

Type: null or boolean or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.envVariables

A set of environment variables to be set on all future processes launched by launchd in the caller's context. The value of each variable can be either a string or a list of strings. The latter is concatenated, interspersed with colon characters.

Type: attribute set of string or list of stringss

Default: { }

Example: { LANG = "nl_NL.UTF-8"; }

Declared by:

<darwin/modules/launchd>
launchd.user.agents

Definition of per-user launchd agents.

When a user logs in, a per-user launchd is started. It does the following: 1. It loads the parameters for each launch-on-demand user agent from the property list files found in /System/Library/LaunchAgents, /Library/LaunchAgents, and the user’s individual Library/LaunchAgents directory. 2. It registers the sockets and file descriptors requested by those user agents. 3. It launches any user agents that requested to be running all the time. 4. As requests for a particular service arrive, it launches the corresponding user agent and passes the request to it. 5. When the user logs out, it sends a SIGTERM signal to all of the user agents that it started.

Type: attribute set of submodules

Default: { }

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.command

Command executed as the service's main process.

Type: string or path

Default: ""

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.environment

Environment variables passed to the service's processes.

Type: attribute set of string or list of stringss

Default: { }

Example: { LANG = "nl_NL.UTF-8"; PATH = "/foo/bar/bin"; }

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.path

Packages added to the service's PATH environment variable. Only the bin and subdirectories of each package is added.

Type: list of path or strings

Default: [ ]

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.script

Shell commands executed as the service's main process.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig

Each attribute in this set specifies an option for a key in the plist. https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man5/launchd.plist.5.html

Type: submodule

Default: { }

Example: { KeepAlive = true; Program = "/run/current-system/sw/bin/nix-daemon"; }

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.AbandonProcessGroup

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.Debug

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.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 run-ning running ning system. If you wish to know whether a job is loaded in launchd, reading this key from a configura-tion configuration tion 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 necessar-ily necessarily ily 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 crite-ria criteria ria are insufficient to describe the conditions under which your job needs to run. The cost to have a job loaded in launchd is negligible, so there is no harm in loading a job which only runs once or very rarely.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.EnableGlobbing

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.EnableTransactions

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.EnvironmentVariables

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

Type: null or attribute set of strings

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.ExitTimeOut

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.GroupName

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

Type: null or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.HardResourceLimits

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

Type: null or submodule

Default: null

Example: { NumberOfFiles = 4096; }

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.HardResourceLimits.CPU

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.HardResourceLimits.Core

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.HardResourceLimits.Data

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.HardResourceLimits.FileSize

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.HardResourceLimits.MemoryLock

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.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 (HardResource-Limits) (HardResourceLimits) Limits) value in addition to the setrlimit(2) values.

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.HardResourceLimits.NumberOfProcesses

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.HardResourceLimits.ResidentSetSize

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.HardResourceLimits.Stack

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.InitGroups

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.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 dictio-nary dictionary nary of conditions may be specified to selectively control whether launchd keeps a job alive or not. If multiple keys are provided, launchd ORs them, thus providing maximum flexibility to the job to refine the logic and stall if necessary. If launchd finds no reason to restart the job, it falls back on demand based invocation. Jobs that exit quickly and frequently when configured to be kept alive will be throttled to converve system resources.

Type: null or boolean or submodule

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.Label

This required key uniquely identifies the job to launchd.

Type: string

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.LaunchOnlyOnce

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.LimitLoadFromHosts

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

Type: null or list of strings

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.LimitLoadToHosts

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

Type: null or list of strings

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.LimitLoadToSessionType

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

Type: null or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.LowPriorityIO

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.MachServices

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

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

Type: null or submodule

Default: null

Example: { ResetAtClose = true; }

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.MachServices.HideUntilCheckIn

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.MachServices.ResetAtClose

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.Nice

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.OnDemand

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.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. Interac-tive Interactive tive jobs are critical to maintaining a responsive user experience, and this key should only be used if an app's ability to be responsive depends on it, and cannot be made Adaptive.

Type: null or one of "Background", "Standard", "Adaptive", "Interactive"

Default: null

Example: "Background"

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.Program

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

Type: null or path

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.ProgramArguments

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

Type: null or list of strings

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.QueueDirectories

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

Type: null or list of strings

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.RootDirectory

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

Type: null or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.RunAtLoad

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.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 appli-cation application cation developer to use to differentiate which descriptors correspond to which application level proto-cols protocols cols (e.g. http vs. ftp vs. DNS...). At check-in time, the value of each Sockets dictionary key will be an array of descriptors. Daemon/Agent writers should consider all descriptors of a given key to be to be effectively equivalent, even though each file descriptor likely represents a different networking protocol which conforms to the criteria specified in the job configuration file.

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

Type: null or list or attribute set of submodules

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.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 SockService-Name. SockServiceName. Name.

Type: null or boolean or list of strings

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.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 Sock-Family SockFamily Family family also be set, otherwise the results are undefined.

Type: null or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.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 inher-ited inherited ited by all jobs spawned by launchd.

Type: null or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.Sockets.<name?>.SockFamily

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

Type: null or one of "IPv4", "IPv6"

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.Sockets.<name?>.SockNodeName

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

Type: null or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.Sockets.<name?>.SockPassive

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.Sockets.<name?>.SockPathMode

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.Sockets.<name?>.SockPathName

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

Type: null or path

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.Sockets.<name?>.SockProtocol

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

Type: null or one of "TCP"

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.Sockets.<name?>.SockServiceName

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

Type: null or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.Sockets.<name?>.SockType

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

Type: null or one of "stream", "dgram", "seqpacket"

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.SoftResourceLimits

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

Type: null or submodule

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.SoftResourceLimits.CPU

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.SoftResourceLimits.Core

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.SoftResourceLimits.Data

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.SoftResourceLimits.FileSize

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.SoftResourceLimits.MemoryLock

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.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 (HardResource-Limits) (HardResourceLimits) Limits) value in addition to the setrlimit(2) values.

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.SoftResourceLimits.NumberOfProcesses

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.SoftResourceLimits.ResidentSetSize

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.SoftResourceLimits.Stack

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.StandardErrorPath

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

Type: null or path

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.StandardInPath

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

Type: null or path

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.StandardOutPath

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

Type: null or path

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.StartCalendarInterval

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

Type: null or list of submodules

Default: null

Example: { Hour = 2; Minute = 30; }

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.StartCalendarInterval.*.Day

The day on which this job will be run.

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.StartCalendarInterval.*.Hour

The hour on which this job will be run.

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.StartCalendarInterval.*.Minute

The minute on which this job will be run.

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.StartCalendarInterval.*.Month

The month on which this job will be run.

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.StartCalendarInterval.*.Weekday

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.StartInterval

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.StartOnMount

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.ThrottleInterval

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.TimeOut

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.Umask

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

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.UserName

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

Type: null or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.WaitForDebugger

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

Type: null or boolean

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.WatchPaths

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

Type: null or list of paths

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.WorkingDirectory

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

Type: null or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.inetdCompatibility

The presence of this key specifies that the daemon expects to be run as if it were launched from inetd.

Type: null or submodule

Default: null

Example: { Wait = true; }

Declared by:

<darwin/modules/launchd>
launchd.user.agents.<name>.serviceConfig.inetdCompatibility.Wait

This flag corresponds to the "wait" or "nowait" option of inetd. If true, then the listening socket is passed via the standard in/out/error file descriptors. If false, then accept(2) is called on behalf of the job, and the result is passed via the standard in/out/error descriptors.

Type: null or boolean or string

Default: null

Declared by:

<darwin/modules/launchd>
launchd.user.envVariables

A set of environment variables to be set on all future processes launched by launchd in the caller's context. The value of each variable can be either a string or a list of strings. The latter is concatenated, interspersed with colon characters.

Type: attribute set of string or list of stringss

Default: { }

Example: { LANG = "nl_NL.UTF-8"; }

Declared by:

<darwin/modules/launchd>
networking.dns

The list of dns servers used when resolving domain names.

Type: list of strings

Default: [ ]

Example: [ "8.8.8.8" "8.8.4.4" "2001:4860:4860::8888" "2001:4860:4860::8844" ]

Declared by:

<darwin/modules/networking>
networking.hostName

Hostname for your machine.

Type: null or string

Default: null

Example: "myhostname"

Declared by:

<darwin/modules/networking>
networking.knownNetworkServices

List of networkservices that should be configured.

To display a list of all the network services on the server's hardware ports, use networksetup -listallnetworkservices.

Type: list of strings

Default: [ ]

Example: [ "Wi-Fi" "Ethernet Adaptor" "Thunderbolt Ethernet" ]

Declared by:

<darwin/modules/networking>
networking.search

The list of search paths used when resolving domain names.

Type: list of strings

Default: [ ]

Declared by:

<darwin/modules/networking>
nix.package

This option specifies the package or profile that contains the version of Nix to use throughout the system. To keep the version of nix originally installed the default profile can be used.

eg. /nix/var/nix/profiles/default

Type: package or path

Default: "pkgs.nix"

Example:

pkgs.nixUnstable

Declared by:

<darwin/modules/nix>
nix.allowedUsers

A list of names of users (separated by whitespace) that are allowed to connect to the Nix daemon. As with nix.trustedUsers, you can specify groups by prefixing them with @. Also, you can allow all users by specifying *. The default is *. Note that trusted users are always allowed to connect.

Type: list of strings

Default: [ "*" ]

Example: [ "@wheel" "@builders" "alice" "bob" ]

Declared by:

<darwin/modules/nix>
nix.binaryCachePublicKeys

List of public keys used to sign binary caches. If nix.requireSignedBinaryCaches is enabled, then Nix will use a binary from a binary cache if and only if it is signed by any of the keys listed here. By default, only the key for cache.nixos.org is included.

Type: list of strings

Example: [ "hydra.nixos.org-1:CNHJZBh9K4tP3EKF6FkkgeVYsS3ohTl+oS0Qa8bezVs=" ]

Declared by:

<darwin/modules/nix>
nix.binaryCaches

List of binary cache URLs used to obtain pre-built binaries of Nix packages.

Type: list of strings

Example: [ "https://cache.example.org/" ]

Declared by:

<darwin/modules/nix>
nix.buildCores

This option defines the maximum number of concurrent tasks during one build. It affects, e.g., -j option for make. The default is 1. The special value 0 means that the builder should use all available CPU cores in the system. Some builds may become non-deterministic with this option; use with care! Packages will only be affected if enableParallelBuilding is set for them.

Type: signed integer

Default: 1

Example: 64

Declared by:

<darwin/modules/nix>
nix.buildMachines

This option lists the machines to be used if distributed builds are enabled (see 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. Each element of the list should be an attribute set containing the machine's host name (hostname), the user name to be used for the SSH connection (sshUser), the Nix system type (system, e.g., "i686-linux"), the maximum number of jobs to be run in parallel on that machine (maxJobs), the path to the SSH private key to be used to connect (sshKey), a list of supported features of the machine (supportedFeatures) and a list of mandatory features of the machine (mandatoryFeatures). The SSH private key should not have a passphrase, and the corresponding public key should be added to ~sshUser/authorized_keys on the remote machine.

Type: list of attribute sets

Default: [ ]

Example: [ { hostName = "voila.labs.cs.uu.nl"; maxJobs = 1; sshKey = "/root/.ssh/id_buildfarm"; sshUser = "nix"; system = "powerpc-darwin"; } { hostName = "linux64.example.org"; mandatoryFeatures = [ "perf" ] ; maxJobs = 2; sshKey = "/root/.ssh/id_buildfarm"; sshUser = "buildfarm"; supportedFeatures = [ "kvm" ] ; system = "x86_64-linux"; } ]

Declared by:

<darwin/modules/nix>
nix.daemonIONice

Whether the Nix daemon process should considered to be low priority when doing file system I/O.

Type: boolean

Default: false

Declared by:

<darwin/modules/nix>
nix.daemonNiceLevel

Nix daemon process priority. This priority propagates to build processes. 0 is the default Unix process priority, 19 is the lowest.

Type: signed integer

Default: 0

Declared by:

<darwin/modules/nix>
nix.distributedBuilds

Whether to distribute builds to the machines listed in nix.buildMachines.

NOTE: This requires services.nix-daemon.enable for a multi-user install.

Type: boolean

Default: false

Declared by:

<darwin/modules/nix>
nix.extraOptions

Additional text appended to nix.conf.

Type: strings concatenated with "\n"

Default: ""

Example:

''
gc-keep-outputs = true
gc-keep-derivations = true
''

Declared by:

<darwin/modules/nix>
nix.gc.automatic

Automatically run the garbage collector at a specific time.

Type: boolean

Default: false

Declared by:

<darwin/modules/services/nix-gc>
nix.gc.interval

The time interval at which the garbage collector will run.

Type: attribute set

Default: { Hour = 3; Minute = 15; }

Declared by:

<darwin/modules/services/nix-gc>
nix.gc.options

Options given to nix-collect-garbage when the garbage collector is run automatically.

Type: string

Default: ""

Example: "--max-freed \$((64 * 1024**3))"

Declared by:

<darwin/modules/services/nix-gc>
nix.gc.user

User that runs the garbage collector.

Type: null or string

Default: null

Declared by:

<darwin/modules/services/nix-gc>
nix.maxJobs

This option defines the maximum number of jobs that Nix will try to build in parallel. The default is 1. You should generally set it to the total number of logical cores in your system (e.g., 16 for two CPUs with 4 cores each and hyper-threading).

Type: signed integer

Default: 1

Example: 64

Declared by:

<darwin/modules/nix>
nix.nixPath

The default Nix expression search path, used by the Nix evaluator to look up paths enclosed in angle brackets (e.g. <nixpkgs>).

Named entries can be specified using an attribute set, if an entry is configured multiple times the value with the lowest ordering will be used.

Type: nix path

Default: [ { darwin-config = "\$HOME/.nixpkgs/darwin-configuration.nix"; } "/nix/var/nix/profiles/per-user/root/channels" "\$HOME/.nix-defexpr/channels" ]

Example: [ { trunk = "/src/nixpkgs"; } ]

Declared by:

<darwin/modules/nix>
nix.readOnlyStore

If set, NixOS will enforce the immutability of the Nix store by making /nix/store a read-only bind mount. Nix will automatically make the store writable when needed.

Type: boolean

Default: true

Declared by:

<darwin/modules/nix>
nix.requireSignedBinaryCaches

If enabled (the default), Nix will only download binaries from binary caches if they are cryptographically signed with any of the keys listed in nix.binaryCachePublicKeys. If disabled, signatures are neither required nor checked, so it's strongly recommended that you use only trustworthy caches and https to prevent man-in-the-middle attacks.

Type: boolean

Default: true

Declared by:

<darwin/modules/nix>
nix.sandboxPaths

Directories from the host filesystem to be included in the sandbox.

Type: list of strings

Default: [ ]

Example: [ "/dev" "/proc" ]

Declared by:

<darwin/modules/nix>
nix.trustedBinaryCaches

List of binary cache URLs that non-root users can use (in addition to those specified using nix.binaryCaches) by passing --option binary-caches to Nix commands.

Type: list of strings

Default: [ ]

Example: [ "https://hydra.example.org/" ]

Declared by:

<darwin/modules/nix>
nix.trustedUsers

A list of names of users that have additional rights when connecting to the Nix daemon, such as the ability to specify additional binary caches, or to import unsigned NARs. You can also specify groups by prefixing them with @; for instance, @wheel means all users in the wheel group.

Type: list of strings

Default: [ "root" ]

Example: [ "root" "alice" "@wheel" ]

Declared by:

<darwin/modules/nix>
nix.useDaemon

If set, Nix will use the daemon to perform operations. Use this instead of services.nix-daemon.enable if you don't wan't the daemon service to be managed for you.

Type: boolean

Default: false

Declared by:

<darwin/modules/nix>
nix.useSandbox

If set, Nix will perform builds in a sandboxed environment that it will set up automatically for each build. This prevents impurities in builds by disallowing access to dependencies outside of the Nix store.

Type: boolean or one of "relaxed"

Default: false

Declared by:

<darwin/modules/nix>
nix.version

The version of nix. Used to determine what settings to configure in nix.conf

Type: string

Default: "<unknown>"

Example: "1.11.6"

Declared by:

<darwin/modules/nix>
nixpkgs.config

The configuration of the Nix Packages collection. (For details, see the Nixpkgs documentation.) It allows you to set package configuration options, and to override packages globally through the packageOverrides option. The latter is a function that takes as an argument the original Nixpkgs, and must evaluate to a set of new or overridden packages.

Type: nixpkgs config

Default: { }

Example:

{ firefox.enableGeckoMediaPlayer = true;
  packageOverrides = pkgs: {
    firefox60Pkgs = pkgs.firefox60Pkgs.override {
      enableOfficialBranding = true;
    };
  };
}

Declared by:

<darwin/modules/nix/nixpkgs.nix>
nixpkgs.overlays

List of overlays to use with the Nix Packages collection. (For details, see the Nixpkgs documentation.) It allows you to override packages globally. This is a function that takes as an argument the original Nixpkgs. The first argument should be used for finding dependencies, and the second should be used for overriding recipes.

Type: list of nixpkgs overlays

Default: [ ]

Example:

[ (self: super: {
    openssh = super.openssh.override {
      hpnSupport = true;
      withKerberos = true;
      kerberos = self.libkrb5;
    };
  };
) ]

Declared by:

<darwin/modules/nix/nixpkgs.nix>
nixpkgs.system

Specifies the Nix platform type for which NixOS should be built. If unset, it defaults to the platform type of your host system. Specifying this option is useful when doing distributed multi-platform deployment, or when building virtual machines.

Type: string

Example: "x86_64-darwin"

Declared by:

<darwin/modules/nix/nixpkgs.nix>
programs.bash.enable

Whether to configure bash as an interactive shell.

Type: boolean

Default: true

Declared by:

<darwin/modules/programs/bash>
programs.bash.enableCompletion

Enable bash completion for all interactive bash shells.

NOTE. This doesn't work with bash 3.2, which is the default on macOS.

Type: boolean

Default: false

Declared by:

<darwin/modules/programs/bash>
programs.bash.interactiveShellInit

Shell script code called during interactive bash shell initialisation.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/programs/bash>
programs.fish.enable

Whether to configure fish as an interactive shell.

Type: boolean

Default: false

Declared by:

<darwin/modules/programs/fish.nix>
programs.fish.interactiveShellInit

Shell script code called during interactive fish shell initialisation.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/programs/fish.nix>
programs.fish.loginShellInit

Shell script code called during fish login shell initialisation.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/programs/fish.nix>
programs.fish.promptInit

Shell script code used to initialise fish prompt.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/programs/fish.nix>
programs.fish.shellAliases

Set of aliases for fish shell. See environment.shellAliases for an option format description.

Type: attribute set

Default: { }

Declared by:

<darwin/modules/programs/fish.nix>
programs.fish.shellInit

Shell script code called during fish shell initialisation.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/programs/fish.nix>
programs.fish.vendor.completions.enable

Whether fish should use completion files provided by other packages.

Type: boolean

Default: true

Declared by:

<darwin/modules/programs/fish.nix>
programs.fish.vendor.config.enable

Whether fish should source configuration snippets provided by other packages.

Type: boolean

Default: true

Declared by:

<darwin/modules/programs/fish.nix>
programs.fish.vendor.functions.enable

Whether fish should autoload fish functions provided by other packages.

Type: boolean

Default: true

Declared by:

<darwin/modules/programs/fish.nix>
programs.gnupg.agent.enable

Enables GnuPG agent for every user session.

Type: boolean

Default: false

Declared by:

<darwin/modules/programs/gnupg.nix>
programs.gnupg.agent.enableSSHSupport

Enable SSH agent support in GnuPG agent. Also sets SSH_AUTH_SOCK environment variable correctly.

Type: boolean

Default: false

Declared by:

<darwin/modules/programs/gnupg.nix>
programs.info.enable

Whether to enable info pages and the info command.

Type: boolean

Default: true

Declared by:

<darwin/modules/programs/info>
programs.man.enable

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

Type: boolean

Default: true

Declared by:

<darwin/modules/programs/man.nix>
programs.nix-index.enable

Whether to enable nix-index and it's command-not-found helper.

Type: boolean

Default: false

Declared by:

<darwin/modules/programs/nix-index>
programs.nix-index.package

This option specifies the nix-index package to use.

Type: package

Default: "pkgs.nix-index"

Declared by:

<darwin/modules/programs/nix-index>
programs.ssh.knownHosts

The set of system-wide known SSH hosts.

Type: list or attribute set of submodules

Default: { }

Example:

[
  {
    hostNames = [ "myhost" "myhost.mydomain.com" "10.10.1.4" ];
    publicKeyFile = ./pubkeys/myhost_ssh_host_dsa_key.pub;
  }
  {
    hostNames = [ "myhost2" ];
    publicKeyFile = ./pubkeys/myhost2_ssh_host_dsa_key.pub;
  }
]

Declared by:

<darwin/modules/programs/ssh>
programs.ssh.knownHosts.<name?>.hostNames

A list of host names and/or IP numbers used for accessing the host's ssh service.

Type: list of strings

Default: [ ]

Declared by:

<darwin/modules/programs/ssh>
programs.ssh.knownHosts.<name?>.publicKey

The public key data for the host. You can fetch a public key from a running SSH server with the ssh-keyscan command. The public key should not include any host names, only the key type and the key itself.

Type: null or string

Default: null

Example: "ecdsa-sha2-nistp521 AAAAE2VjZHN...UEPg=="

Declared by:

<darwin/modules/programs/ssh>
programs.ssh.knownHosts.<name?>.publicKeyFile

The path to the public key file for the host. The public key file is read at build time and saved in the Nix store. You can fetch a public key file from a running SSH server with the ssh-keyscan command. The content of the file should follow the same format as described for the publicKey option.

Type: null or path

Default: null

Declared by:

<darwin/modules/programs/ssh>
programs.tmux.enable

Whether to configure tmux.

Type: boolean

Default: false

Declared by:

<darwin/modules/programs/tmux.nix>
programs.tmux.enableFzf

Enable fzf keybindings for selecting tmux sessions and panes.

Type: boolean

Default: false

Example: true

Declared by:

<darwin/modules/programs/tmux.nix>
programs.tmux.enableMouse

Enable mouse support for tmux.

Type: boolean

Default: false

Example: true

Declared by:

<darwin/modules/programs/tmux.nix>
programs.tmux.enableSensible

Enable sensible configuration options for tmux.

Type: boolean

Default: false

Example: true

Declared by:

<darwin/modules/programs/tmux.nix>
programs.tmux.enableVim

Enable vim style keybindings for copy mode, and navigation of tmux panes.

Type: boolean

Default: false

Example: true

Declared by:

<darwin/modules/programs/tmux.nix>
programs.tmux.defaultCommand

The default command to use for tmux panes.

Type: string or package

Declared by:

<darwin/modules/programs/tmux.nix>
programs.tmux.iTerm2

Cater to iTerm2 and its tmux integration, as appropriate.

Type: boolean

Default: false

Example: true

Declared by:

<darwin/modules/programs/tmux.nix>
programs.tmux.tmuxConfig

Extra configuration to add to tmux.conf.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/programs/tmux.nix>
programs.tmux.tmuxOptions.<name>.enable

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

Type: boolean

Default: true

Declared by:

<darwin/modules/programs/tmux.nix>
programs.tmux.tmuxOptions.<name>.source

Path of the source file.

Type: path

Declared by:

<darwin/modules/programs/tmux.nix>
programs.tmux.tmuxOptions.<name>.target

Name of symlink. Defaults to the attribute name.

Type: string

Default: "‹name›"

Declared by:

<darwin/modules/programs/tmux.nix>
programs.tmux.tmuxOptions.<name>.text

Text of the file.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/programs/tmux.nix>
programs.vim.enable

Whether to configure vim.

Type: boolean

Default: false

Declared by:

<darwin/modules/programs/vim.nix>
programs.vim.enableSensible

Enable sensible configuration options for vim.

Type: boolean

Default: false

Example: true

Declared by:

<darwin/modules/programs/vim.nix>
programs.vim.extraKnownPlugins

Custom plugin declarations to add to VAM's knownPlugins.

Type: attribute set of packages

Default: { }

Example:

{
  vim-jsx = pkgs.vimUtils.buildVimPluginFrom2Nix {
    name = "vim-javascript-2016-07-29";
    src = pkgs.fetchgit {
      url = "git://github.com/mxw/vim-jsx";
      rev = "261114c925ea81eeb4db1651cc1edced66d6b5d6";
      sha256 = "17pffzwnvsimnnr4ql1qifdh4a0sqqsmcwfiqqzgglvsnzw5vpls";
    };
    dependencies = [];

  };
}

Declared by:

<darwin/modules/programs/vim.nix>
programs.vim.plugins

VAM plugin dictionaries to use for vim_configurable.

Type: list of attribute sets

Default: [ ]

Example: [ { names = [ "surround" "vim-nix" ] ; } ]

Declared by:

<darwin/modules/programs/vim.nix>
programs.vim.vimConfig

Extra vimrcConfig to use for vim_configurable.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/programs/vim.nix>
programs.vim.vimOptions.<name>.enable

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

Type: boolean

Default: true

Declared by:

<darwin/modules/programs/vim.nix>
programs.vim.vimOptions.<name>.source

Path of the source file.

Type: path

Declared by:

<darwin/modules/programs/vim.nix>
programs.vim.vimOptions.<name>.target

Name of symlink. Defaults to the attribute name.

Type: string

Default: "‹name›"

Declared by:

<darwin/modules/programs/vim.nix>
programs.vim.vimOptions.<name>.text

Text of the file.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/programs/vim.nix>
programs.zsh.enable

Whether to configure zsh as an interactive shell.

Type: boolean

Default: false

Declared by:

<darwin/modules/programs/zsh>
programs.zsh.enableBashCompletion

Enable bash completion for all interactive zsh shells.

Type: boolean

Default: true

Declared by:

<darwin/modules/programs/zsh>
programs.zsh.enableCompletion

Enable zsh completion for all interactive zsh shells.

Type: boolean

Default: true

Declared by:

<darwin/modules/programs/zsh>
programs.zsh.enableFzfCompletion

Enable fzf completion.

Type: boolean

Default: false

Declared by:

<darwin/modules/programs/zsh>
programs.zsh.enableFzfGit

Enable fzf keybindings for C-g git browsing.

Type: boolean

Default: false

Declared by:

<darwin/modules/programs/zsh>
programs.zsh.enableFzfHistory

Enable fzf keybinding for Ctrl-r history search.

Type: boolean

Default: false

Declared by:

<darwin/modules/programs/zsh>
programs.zsh.enableSyntaxHighlighting

Enable zsh-syntax-highlighting.

Type: boolean

Default: false

Declared by:

<darwin/modules/programs/zsh>
programs.zsh.interactiveShellInit

Shell script code called during interactive zsh shell initialisation.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/programs/zsh>
programs.zsh.loginShellInit

Shell script code called during zsh login shell initialisation.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/programs/zsh>
programs.zsh.promptInit

Shell script code used to initialise the zsh prompt.

Type: strings concatenated with "\n"

Default: "autoload -U promptinit && promptinit && prompt walters"

Declared by:

<darwin/modules/programs/zsh>
programs.zsh.shellInit

Shell script code called during zsh shell initialisation.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/programs/zsh>
programs.zsh.variables

A set of environment variables used in the global environment. These variables will be set on shell initialisation. The value of each variable can be either a string or a list of strings. The latter is concatenated, interspersed with colon characters.

Type: attribute set of string or list of stringss

Default: { }

Declared by:

<darwin/modules/programs/zsh>
security.pki.caCertificateBlacklist

A list of blacklisted CA certificate names that won't be imported from the Mozilla Trust Store into /etc/ssl/certs/ca-certificates.crt. Use the names from that file.

Type: list of strings

Default: [ ]

Example: [ "WoSign" "WoSign China" "CA WoSign ECC Root" "Certification Authority of WoSign G2" ]

Declared by:

<darwin/modules/security/pki>
security.pki.certificateFiles

A list of files containing trusted root certificates in PEM format. These are concatenated to form /etc/ssl/certs/ca-certificates.crt, which is used by many programs that use OpenSSL, such as curl and git.

Type: list of paths

Default: [ ]

Example:

[ "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt" ]

Declared by:

<darwin/modules/security/pki>
security.pki.certificates

A list of trusted root certificates in PEM format.

Type: list of strings

Default: [ ]

Example:

[ ''
    NixOS.org
    =========
    -----BEGIN CERTIFICATE-----
    MIIGUDCCBTigAwIBAgIDD8KWMA0GCSqGSIb3DQEBBQUAMIGMMQswCQYDVQQGEwJJ
    TDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0
    ...
    -----END CERTIFICATE-----
  ''
]

Declared by:

<darwin/modules/security/pki>
security.sandbox.profiles

Definition of sandbox profiles.

Type: attribute set of submodules

Default: { }

Declared by:

<darwin/modules/security/sandbox>
security.sandbox.profiles.<name>.allowLocalNetworking

Whether to allow localhost network access inside the sandbox.

Type: boolean

Default: false

Declared by:

<darwin/modules/security/sandbox>
security.sandbox.profiles.<name>.allowNetworking

Whether to allow network access inside the sandbox.

Type: boolean

Default: false

Declared by:

<darwin/modules/security/sandbox>
security.sandbox.profiles.<name>.allowSystemPaths

Whether to allow read access to FHS paths like /etc and /var.

Type: boolean

Default: false

Declared by:

<darwin/modules/security/sandbox>
security.sandbox.profiles.<name>.closure

List of store paths to make accessible.

Type: list of packages

Default: [ ]

Declared by:

<darwin/modules/security/sandbox>
security.sandbox.profiles.<name>.readablePaths

List of paths that should be read-only inside the sandbox.

Type: list of paths

Default: [ ]

Declared by:

<darwin/modules/security/sandbox>
security.sandbox.profiles.<name>.writablePaths

List of paths that should be read/write inside the sandbox.

Type: list of paths

Default: [ ]

Declared by:

<darwin/modules/security/sandbox>
services.activate-system.enable

Whether to activate system at boot time.

Type: boolean

Default: true

Declared by:

<darwin/modules/services/activate-system>
services.autossh.sessions

List of AutoSSH sessions to start as systemd services. Each service is named 'autossh-{session.name}'.

Type: list of submodules

Default: [ ]

Example: [ { extraArguments = "-N -D4343 billremote@socks.host.net"; monitoringPort = 20000; name = "socks-peer"; user = "bill"; } ]

Declared by:

<darwin/modules/services/autossh.nix>
services.autossh.sessions.*.extraArguments

Arguments to be passed to AutoSSH and retransmitted to SSH process. Some meaningful options include -N (don't run remote command), -D (open SOCKS proxy on local port), -R (forward remote port), -L (forward local port), -v (Enable debug). Check ssh manual for the complete list.

Type: string

Example: "-N -D4343 bill@socks.example.net"

Declared by:

<darwin/modules/services/autossh.nix>
services.autossh.sessions.*.monitoringPort

Port to be used by AutoSSH for peer monitoring. Note, that AutoSSH also uses mport+1. Value of 0 disables the keep-alive style monitoring

Type: signed integer

Default: 0

Example: 20000

Declared by:

<darwin/modules/services/autossh.nix>
services.autossh.sessions.*.name

Name of the local AutoSSH session

Type: string

Example: "socks-peer"

Declared by:

<darwin/modules/services/autossh.nix>
services.autossh.sessions.*.user

Name of the user the AutoSSH session should run as

Type: string

Example: "bill"

Declared by:

<darwin/modules/services/autossh.nix>
services.buildkite-agent.enable

Whether to enable buildkite-agent.

Type: boolean

Default: false

Example: true

Declared by:

<darwin/modules/services/buildkite-agent.nix>
services.buildkite-agent.package

Which buildkite-agent derivation to use

Type: package

Default: "pkgs.buildkite-agent"

Declared by:

<darwin/modules/services/buildkite-agent.nix>
services.buildkite-agent.dataDir

The workdir for the agent

Type: string

Default: "/var/lib/buildkite-agent"

Declared by:

<darwin/modules/services/buildkite-agent.nix>
services.buildkite-agent.extraConfig

Extra lines to be added verbatim to the configuration file.

Type: strings concatenated with "\n"

Default: ""

Example: "debug=true"

Declared by:

<darwin/modules/services/buildkite-agent.nix>
services.buildkite-agent.hooks.checkout

The `checkout` hook script will replace the default checkout routine of the bootstrap.sh script. You can use this hook to do your own SCM checkout behaviour

Type: null or strings concatenated with "\n"

Default: null

Declared by:

<darwin/modules/services/buildkite-agent.nix>
services.buildkite-agent.hooks.command

The `command` hook script will replace the default implementation of running the build command.

Type: null or strings concatenated with "\n"

Default: null

Declared by:

<darwin/modules/services/buildkite-agent.nix>
services.buildkite-agent.hooks.environment

The `environment` hook will run before all other commands, and can be used to set up secrets, data, etc. Anything exported in hooks will be available to the build script.

Note: the contents of this file will be copied to the world-readable Nix store.

Type: null or strings concatenated with "\n"

Default: null

Example:

''
export SECRET_VAR=`head -1 /run/keys/secret`
''

Declared by:

<darwin/modules/services/buildkite-agent.nix>
services.buildkite-agent.hooks.post-artifact

The `post-artifact` hook will run just after artifacts are uploaded

Type: null or strings concatenated with "\n"

Default: null

Declared by:

<darwin/modules/services/buildkite-agent.nix>
services.buildkite-agent.hooks.post-checkout

The `post-checkout` hook will run after the bootstrap script has checked out your projects source code.

Type: null or strings concatenated with "\n"

Default: null

Declared by:

<darwin/modules/services/buildkite-agent.nix>
services.buildkite-agent.hooks.post-command

The `post-command` hook will run after the bootstrap script has run your build commands

Type: null or strings concatenated with "\n"

Default: null

Declared by:

<darwin/modules/services/buildkite-agent.nix>
services.buildkite-agent.hooks.pre-artifact

The `pre-artifact` hook will run just before artifacts are uploaded

Type: null or strings concatenated with "\n"

Default: null

Declared by:

<darwin/modules/services/buildkite-agent.nix>
services.buildkite-agent.hooks.pre-checkout

The `pre-checkout` hook will run just before your projects source code is checked out from your SCM provider

Type: null or strings concatenated with "\n"

Default: null

Declared by:

<darwin/modules/services/buildkite-agent.nix>
services.buildkite-agent.hooks.pre-command

The `pre-command` hook will run just before your build command runs

Type: null or strings concatenated with "\n"

Default: null

Declared by:

<darwin/modules/services/buildkite-agent.nix>
services.buildkite-agent.hooks.pre-exit

The `pre-exit` hook will run just before your build job finishes

Type: null or strings concatenated with "\n"

Default: null

Declared by:

<darwin/modules/services/buildkite-agent.nix>
services.buildkite-agent.meta-data

Meta data for the agent. This is a comma-separated list of key=value pairs.

Type: string

Default: ""

Example: "queue=default,docker=true,ruby2=true"

Declared by:

<darwin/modules/services/buildkite-agent.nix>
services.buildkite-agent.name

The name of the agent.

Type: string

Default: "%hostname-%n"

Declared by:

<darwin/modules/services/buildkite-agent.nix>
services.buildkite-agent.openssh.privateKeyPath

Private agent key.

A run-time path to the key file, which is supposed to be provisioned outside of Nix store.

Type: path

Declared by:

<darwin/modules/services/buildkite-agent.nix>
services.buildkite-agent.openssh.publicKeyPath

Public agent key.

A run-time path to the key file, which is supposed to be provisioned outside of Nix store.

Type: path

Declared by:

<darwin/modules/services/buildkite-agent.nix>
services.buildkite-agent.preCommands

Extra commands to run before starting buildkite.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/services/buildkite-agent.nix>
services.buildkite-agent.runtimePackages

Add programs to the buildkite-agent environment

Type: list of packages

Default: "[ pkgs.bash pkgs.nix ]"

Declared by:

<darwin/modules/services/buildkite-agent.nix>
services.buildkite-agent.tokenPath

The token from your Buildkite "Agents" page.

A run-time path to the token file, which is supposed to be provisioned outside of Nix store.

Type: path

Declared by:

<darwin/modules/services/buildkite-agent.nix>
services.chunkwm.enable

Whether to enable the chunkwm window manager.

Type: boolean

Default: false

Declared by:

<darwin/modules/services/chunkwm.nix>
services.chunkwm.package

This option specifies the chunkwm package to use.

Type: package

Example:

pkgs.chunkwm

Declared by:

<darwin/modules/services/chunkwm.nix>
services.chunkwm.extraConfig

Additional commands for chunkwmrc.

Type: strings concatenated with "\n"

Default: ""

Example: "chunkc tiling::rule --owner Emacs --state tile"

Declared by:

<darwin/modules/services/chunkwm.nix>
services.chunkwm.hotload

Whether to enable hotload.

Type: boolean

Default: true

Declared by:

<darwin/modules/services/chunkwm.nix>
services.chunkwm.plugins.border.config

Optional border plugin configuration.

Type: strings concatenated with "\n"

Default: "chunkc set focused_border_color 0xffc0b18b"

Declared by:

<darwin/modules/services/chunkwm.nix>
services.chunkwm.plugins.dir

Chunkwm Plugins directory.

Type: path

Default: "/run/current-system/sw/lib/chunkwm/plugins"

Declared by:

<darwin/modules/services/chunkwm.nix>
services.chunkwm.plugins.list

Chunkwm Plugins to enable.

Type: list of one of "border", "ffm", "tiling"s

Default: [ "border" "ffm" "tiling" ]

Example: [ "tiling" ]

Declared by:

<darwin/modules/services/chunkwm.nix>
services.chunkwm.plugins.tiling.config

Optional tiling plugin configuration.

Type: strings concatenated with "\n"

Example: "chunkc set global_desktop_mode bsp"

Declared by:

<darwin/modules/services/chunkwm.nix>
services.emacs.enable

Whether to enable the Emacs Daemon.

Type: boolean

Default: false

Declared by:

<darwin/modules/services/emacs.nix>
services.emacs.package

This option specifies the emacs package to use.

Type: path

Default: (build of emacs-26.3)

Declared by:

<darwin/modules/services/emacs.nix>
services.emacs.exec

Emacs command/binary to execute.

Type: string

Default: "emacs"

Declared by:

<darwin/modules/services/emacs.nix>
services.khd.enable

Whether to enable the khd hotkey daemon.

Type: boolean

Default: false

Declared by:

<darwin/modules/services/khd>
services.khd.package

This option specifies the khd package to use.

Type: package

Default: "pkgs.khd"

Declared by:

<darwin/modules/services/khd>
services.khd.i3Keybindings

Wether to configure i3 style keybindings for kwm.

Type: boolean

Default: false

Declared by:

<darwin/modules/services/khd>
services.khd.khdConfig

Config to use for khdrc.

Type: strings concatenated with "\n"

Default: ""

Example: "alt + shift - r : kwmc quit"

Declared by:

<darwin/modules/services/khd>
services.kwm.enable

Whether to enable the khd window manager.

Type: boolean

Default: false

Declared by:

<darwin/modules/services/kwm>
services.kwm.package

This option specifies the kwm package to use.

Type: path

Default: "pkgs.kwm"

Declared by:

<darwin/modules/services/kwm>
services.kwm.kwmConfig

Config to use for kwmrc.

Type: strings concatenated with "\n"

Default: ""

Example: ''kwmc rule owner="iTerm2" properties={role="AXDialog"}''

Declared by:

<darwin/modules/services/kwm>
services.mopidy.enable

Whether to enable the Mopidy Daemon.

Type: boolean

Default: false

Declared by:

<darwin/modules/services/mopidy.nix>
services.mopidy.package

This option specifies the mopidy package to use.

Type: path

Default: "pkgs.mopidy"

Declared by:

<darwin/modules/services/mopidy.nix>
services.mopidy.mediakeys.enable

Whether to enable the Mopidy OSX Media Keys support daemon.

Type: boolean

Default: false

Declared by:

<darwin/modules/services/mopidy.nix>
services.mopidy.mediakeys.package

This option specifies the mediakeys package to use.

Type: path

Default: "pkgs.pythonPackages.osxmpdkeys"

Declared by:

<darwin/modules/services/mopidy.nix>
services.nix-daemon.enable

Whether to enable the nix-daemon service.

Type: boolean

Default: false

Declared by:

<darwin/modules/services/nix-daemon.nix>
services.nix-daemon.enableSocketListener

Whether to make the nix-daemon service socket activated.

Type: boolean

Default: false

Declared by:

<darwin/modules/services/nix-daemon.nix>
services.nix-daemon.logFile

The logfile to use for the nix-daemon service. Alternatively sudo launchctl debug system/org.nixos.nix-daemon --stderr can be used to stream the logs to a shell after restarting the service with sudo launchctl kickstart -k system/org.nixos.nix-daemon.

Type: null or path

Default: null

Example: "/var/log/nix-daemon.log"

Declared by:

<darwin/modules/services/nix-daemon.nix>
services.nix-daemon.tempDir

The TMPDIR to use for nix-daemon.

Type: null or path

Default: null

Declared by:

<darwin/modules/services/nix-daemon.nix>
services.ofborg.enable

Whether to enable the ofborg builder service.

Type: boolean

Default: false

Declared by:

<darwin/modules/services/ofborg>
services.ofborg.package

This option specifies the ofborg package to use. eg.

(import <ofborg> {}).ofborg.rs

$ nix-channel --add https://github.com/NixOS/ofborg/archive/released.tar.gz ofborg $ nix-channel --update

Type: package

Example:

pkgs.ofborg

Declared by:

<darwin/modules/services/ofborg>
services.ofborg.configFile

Configuration file to use for ofborg.

WARNING Don't use a path literal or derivation for this, that would expose credentials in the store making them world readable.

Type: path

Declared by:

<darwin/modules/services/ofborg>
services.ofborg.logFile

Whether to enable the khd window manager.

Type: path

Default: "/var/log/ofborg.log"

Declared by:

<darwin/modules/services/ofborg>
services.offlineimap.enable

Whether to enable Offlineimap, a software to dispose your mailbox(es) as a local Maildir(s)..

Type: boolean

Default: false

Example: true

Declared by:

<darwin/modules/services/mail/offlineimap.nix>
services.offlineimap.package

Offlineimap derivation to use.

Type: package

Default: "pkgs.offlineimap"

Declared by:

<darwin/modules/services/mail/offlineimap.nix>
services.offlineimap.extraConfig

Additional text to be appended to offlineimaprc.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/services/mail/offlineimap.nix>
services.offlineimap.path

List of derivations to put in Offlineimap's path.

Type: list of paths

Default: [ ]

Example:

[ pkgs.pass pkgs.bash pkgs.notmuch ]

Declared by:

<darwin/modules/services/mail/offlineimap.nix>
services.offlineimap.runQuick

Run only quick synchronizations. Ignore any flag updates on IMAP servers. If a flag on the remote IMAP changes, and we have the message locally, it will be left untouched in a quick run.

Type: boolean

Default: false

Declared by:

<darwin/modules/services/mail/offlineimap.nix>
services.offlineimap.startInterval

Optional key to start offlineimap services each N seconds

Type: null or signed integer

Default: 300

Example:

300

Declared by:

<darwin/modules/services/mail/offlineimap.nix>
services.postgresql.enable

Whether to run PostgreSQL.

Type: boolean

Default: false

Declared by:

<darwin/modules/services/postgresql>
services.postgresql.enableTCPIP

Whether PostgreSQL should listen on all network interfaces. If disabled, the database can only be accessed via its Unix domain socket or via TCP connections to localhost.

Type: boolean

Default: false

Declared by:

<darwin/modules/services/postgresql>
services.postgresql.package

PostgreSQL package to use.

Type: package

Default: "pkgs.postgresql96"

Declared by:

<darwin/modules/services/postgresql>
services.postgresql.characterSet

Character set specified during initialization

Type: string

Default: "UTF8"

Example: "SJIS"

Declared by:

<darwin/modules/services/postgresql>
services.postgresql.dataDir

Data directory for PostgreSQL.

Type: path

Default: "/var/lib/postgresql"

Example: "/var/lib/postgresql/9.6"

Declared by:

<darwin/modules/services/postgresql>
services.postgresql.extraConfig

Additional text to be appended to postgresql.conf.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/services/postgresql>
services.postgresql.extraPlugins

When this list contains elements a new store path is created. PostgreSQL and the elements are symlinked into it. Then pg_config, postgres and pg_ctl are copied to make them use the new $out/lib directory as pkglibdir. This makes it possible to use postgis without patching the .sql files which reference $libdir/postgis-1.5.

Type: list of paths

Default: [ ]

Example:

[ (pkgs.postgis.override { postgresql = pkgs.postgresql94; }) ]

Declared by:

<darwin/modules/services/postgresql>
services.postgresql.port

The port on which PostgreSQL listens.

Type: signed integer

Default: 5432

Declared by:

<darwin/modules/services/postgresql>
services.privoxy.enable

Whether to enable the privoxy proxy service.

Type: boolean

Default: false

Declared by:

<darwin/modules/services/privoxy>
services.privoxy.package

This option specifies the privoxy package to use.

Type: package

Default: (build of privoxy-3.0.28)

Example:

pkgs.privoxy

Declared by:

<darwin/modules/services/privoxy>
services.privoxy.confdir

Directory for privoxy files such as .action and .filter.

Type: null or path

Default: null

Declared by:

<darwin/modules/services/privoxy>
services.privoxy.config

Config to use for privoxy

Type: strings concatenated with "\n"

Default: ""

Example: "forward / upstream.proxy:8080"

Declared by:

<darwin/modules/services/privoxy>
services.privoxy.listenAddress

The address and TCP port on which privoxy will listen.

Type: string

Default: "127.0.0.1:8118"

Declared by:

<darwin/modules/services/privoxy>
services.privoxy.templdir

Directory for privoxy template files.

Type: path

Default: "\${pkgs.privoxy}/etc/templates"

Declared by:

<darwin/modules/services/privoxy>
services.redis.enable

Whether to enable the redis database service.

Type: boolean

Default: false

Declared by:

<darwin/modules/services/redis>
services.redis.package

This option specifies the redis package to use

Type: path

Default: "pkgs.redis"

Declared by:

<darwin/modules/services/redis>
services.redis.appendOnly

By default data is only periodically persisted to disk, enable this option to use an append-only file for improved persistence.

Type: boolean

Default: false

Declared by:

<darwin/modules/services/redis>
services.redis.bind

The IP interface to bind to.

Type: null or string

Default: null

Example: "127.0.0.1"

Declared by:

<darwin/modules/services/redis>
services.redis.dataDir

Data directory for the redis database.

Type: path

Default: "/var/lib/redis"

Declared by:

<darwin/modules/services/redis>
services.redis.port

The port for Redis to listen to.

Type: signed integer

Default: 6379

Declared by:

<darwin/modules/services/redis>
services.redis.unixSocket

The path to the socket to bind to.

Type: null or path

Default: null

Example: "/var/run/redis.sock"

Declared by:

<darwin/modules/services/redis>
services.skhd.enable

Whether to enable the skhd hotkey daemon.

Type: boolean

Default: false

Declared by:

<darwin/modules/services/skhd>
services.skhd.package

This option specifies the skhd package to use.

Type: package

Default: (build of skhd-0.3.0)

Declared by:

<darwin/modules/services/skhd>
services.skhd.skhdConfig

Config to use for skhdrc.

Type: strings concatenated with "\n"

Default: ""

Example: "alt + shift - r : chunkc quit"

Declared by:

<darwin/modules/services/skhd>
services.synapse-bt.enable

Whether to run Synapse BitTorrent Daemon.

Type: boolean

Default: false

Declared by:

<darwin/modules/services/synapse-bt.nix>
services.synapse-bt.package

Synapse BitTorrent package to use.

Type: package

Default: "pkgs.synapse-bt"

Declared by:

<darwin/modules/services/synapse-bt.nix>
services.synapse-bt.downloadDir

Download directory for Synapse BitTorrent.

Type: path

Default: "/var/lib/synapse-bt"

Example: "/var/lib/synapse-bt/downloads"

Declared by:

<darwin/modules/services/synapse-bt.nix>
services.synapse-bt.extraConfig

Extra configuration options for Synapse BitTorrent.

Type: attribute set

Default: { }

Declared by:

<darwin/modules/services/synapse-bt.nix>
services.synapse-bt.port

The port on which Synapse BitTorrent listens.

Type: signed integer

Default: 16384

Declared by:

<darwin/modules/services/synapse-bt.nix>
services.synergy.package

The package used for the synergy client and server.

Type: package

Default: "pkgs.synergy"

Declared by:

<darwin/modules/services/synergy>
services.synergy.client.enable

Whether to enable the Synergy client (receive keyboard and mouse events from a Synergy server).

Type: boolean

Default: false

Declared by:

<darwin/modules/services/synergy>
services.synergy.client.autoStart

Whether the Synergy client should be started automatically.

Type: boolean

Default: true

Declared by:

<darwin/modules/services/synergy>
services.synergy.client.screenName

Use the given name instead of the hostname to identify ourselves to the server.

Type: string

Default: ""

Declared by:

<darwin/modules/services/synergy>
services.synergy.client.serverAddress

The server address is of the form: [hostname][:port]. The hostname must be the address or hostname of the server. The port overrides the default port, 24800.

Type: string

Declared by:

<darwin/modules/services/synergy>
services.synergy.server.enable

Whether to enable the Synergy server (send keyboard and mouse events).

Type: boolean

Default: false

Declared by:

<darwin/modules/services/synergy>
services.synergy.server.address

Address on which to listen for clients.

Type: string

Default: ""

Declared by:

<darwin/modules/services/synergy>
services.synergy.server.autoStart

Whether the Synergy server should be started automatically.

Type: boolean

Default: true

Declared by:

<darwin/modules/services/synergy>
services.synergy.server.configFile

The Synergy server configuration file.

Type: string

Default: "/etc/synergy-server.conf"

Declared by:

<darwin/modules/services/synergy>
services.synergy.server.screenName

Use the given name instead of the hostname to identify this screen in the configuration.

Type: string

Default: ""

Declared by:

<darwin/modules/services/synergy>
system.activationScripts.<name>.enable

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

Type: boolean

Default: true

Declared by:

<darwin/modules/system/activation-scripts.nix>
system.activationScripts.<name>.source

Path of the source file.

Type: path

Declared by:

<darwin/modules/system/activation-scripts.nix>
system.activationScripts.<name>.target

Name of symlink. Defaults to the attribute name.

Type: string

Default: "‹name›"

Declared by:

<darwin/modules/system/activation-scripts.nix>
system.activationScripts.<name>.text

Text of the file.

Type: strings concatenated with "\n"

Default: ""

Declared by:

<darwin/modules/system/activation-scripts.nix>
system.checks.verifyNixPath

Whether to run the NIX_PATH validation checks.

Type: boolean

Default: true

Declared by:

<darwin/modules/system/checks.nix>
system.darwinLabel

Label to be used in the names of generated outputs.

Type: string

Declared by:

<darwin/modules/system/version.nix>
system.defaults..GlobalPreferences.com.apple.sound.beep.sound

Sets the system-wide alert sound. Found under "Sound Effects" in the "Sound" section of "System Preferences". Look in "/System/Library/Sounds" for possible candidates.

Type: null or path

Default: null

Declared by:

<darwin/modules/system/defaults/GlobalPreferences.nix>
system.defaults.LaunchServices.LSQuarantine

Whether to enable quarantine for downloaded applications. The default is true.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/LaunchServices.nix>
system.defaults.NSGlobalDomain.AppleFontSmoothing

Sets the level of font smoothing (sub-pixel font rendering).

Type: null or one of 0, 1, 2

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.AppleKeyboardUIMode

Configures the keyboard control behavior. Mode 3 enables full keyboard control.

Type: null or one of 3

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.AppleMeasurementUnits

Whether to use centimeters (metric) or inches (US, UK) as the measurement unit. The default is based on region settings.

Type: null or one of "Centimeters", "Inches"

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.AppleMetricUnits

Whether to use the metric system. The default is based on region settings.

Type: null or one of 0, 1

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.ApplePressAndHoldEnabled

Whether to enable the press-and-hold feature. The default is true.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.AppleShowAllExtensions

Whether to show all file extensions in finder. The default is false.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.AppleShowScrollBars

When to show the scrollbars. Options are 'WhenScrolling', 'Automatic' and 'Always'.

Type: null or one of "WhenScrolling", "Automatic", "Always"

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.AppleTemperatureUnit

Whether to use Celsius or Fahrenheit. The default is based on region settings.

Type: null or one of "Celsius", "Fahrenheit"

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.InitialKeyRepeat

# Apple menu > System Preferences > Keyboard If you press and hold certain keyboard keys when in a text area, the key’s character begins to repeat. For example, the Delete key continues to remove text for as long as you hold it down.

This sets how long you must hold down the key before it starts repeating.

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.KeyRepeat

# Apple menu > System Preferences > Keyboard If you press and hold certain keyboard keys when in a text area, the key’s character begins to repeat. For example, the Delete key continues to remove text for as long as you hold it down.

This sets how fast it repeats once it starts.

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.NSAutomaticCapitalizationEnabled

Whether to enable automatic capitalization. The default is true.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.NSAutomaticDashSubstitutionEnabled

Whether to enable smart dash substitution. The default is true.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.NSAutomaticPeriodSubstitutionEnabled

Whether to enable smart period substitution. The default is true.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.NSAutomaticQuoteSubstitutionEnabled

Whether to enable smart quote substitution. The default is true.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.NSAutomaticSpellingCorrectionEnabled

Whether to enable automatic spelling correction. The default is true.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.NSDisableAutomaticTermination

Whether to disable the automatic termination of inactive apps.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.NSDocumentSaveNewDocumentsToCloud

Whether to save new documents to iCloud by default. The default is true.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.NSNavPanelExpandedStateForSaveMode

Whether to use expanded save panel by default. The default is false.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.NSNavPanelExpandedStateForSaveMode2

Whether to use expanded save panel by default. The default is false.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.NSScrollAnimationEnabled

Whether to enable smooth scrolling. The default is true.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.NSTableViewDefaultSizeMode

Sets the size of the finder sidebar icons: 1 (small), 2 (medium) or 3 (large). The default is 3.

Type: null or one of 1, 2, 3

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.NSTextShowsControlCharacters

Whether to display ASCII control characters using caret notation in standard text views. The default is false.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.NSUseAnimatedFocusRing

Whether to enable the focus ring animation. The default is true.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.NSWindowResizeTime

Sets the speed speed of window resizing. The default is given in the example.

Type: null or float

Default: null

Example: "0.20"

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.PMPrintingExpandedStateForPrint

Whether to use the expanded print panel by default. The default is false.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.PMPrintingExpandedStateForPrint2

Whether to use the expanded print panel by default. The default is false.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain._HIHideMenuBar

Whether to autohide the menu bar. The default is false.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.com.apple.keyboard.fnState

Use F1, F2, etc. keys as standard function keys.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.com.apple.mouse.tapBehavior

Configures the trackpad tap behavior. Mode 1 enables tap to click.

Type: null or one of 1

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.com.apple.sound.beep.feedback

# Apple menu > System Preferences > Sound Make a feedback sound when the system volume changed. This setting accepts the integers 0 or 1. Defaults to 1.

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.com.apple.sound.beep.volume

# Apple menu > System Preferences > Sound Sets the beep/alert volume level from 0.000 (muted) to 1.000 (100% volume).

75% = 0.7788008 50% = 0.6065307 25% = 0.4723665

Type: null or float

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.com.apple.springing.delay

Set the spring loading delay for directories. The default is given in the example.

Type: null or float

Default: null

Example: "1.0"

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.com.apple.springing.enabled

Whether to enable spring loading (expose) for directories.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.com.apple.swipescrolldirection

Whether to enable "Natural" scrolling direction. The default is true.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.com.apple.trackpad.enableSecondaryClick

Whether to enable trackpad secondary click. The default is true.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.com.apple.trackpad.scaling

Configures the trackpad tracking speed (0 to 3). The default is "1".

Type: null or float

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.NSGlobalDomain.com.apple.trackpad.trackpadCornerClickBehavior

Configures the trackpad corner click behavior. Mode 1 enables right click.

Type: null or one of 1

Default: null

Declared by:

<darwin/modules/system/defaults/NSGlobalDomain.nix>
system.defaults.SoftwareUpdate.AutomaticallyInstallMacOSUpdates

Automatically install Mac OS software updates. Defaults to false.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/SoftwareUpdate.nix>
system.defaults.alf.allowdownloadsignedenabled

# Apple menu > System Preferences > Security and Privacy > Firewall Allows any downloaded Application that has been signed to accept incoming requests. Default is 0.

0 = disabled 1 = enabled

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/system/defaults/alf.nix>
system.defaults.alf.allowsignedenabled

# Apple menu > System Preferences > Security and Privacy > Firewall Allows any signed Application to accept incoming requests. Default is true.

0 = disabled 1 = enabled

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/system/defaults/alf.nix>
system.defaults.alf.globalstate

# Apple menu > System Preferences > Security and Privacy > Firewall Enable the internal firewall to prevent unauthorised applications, programs and services from accepting incoming connections.

0 = disabled 1 = enabled 2 = blocks all connections except for essential services

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/system/defaults/alf.nix>
system.defaults.alf.loggingenabled

# Apple menu > System Preferences > Security and Privacy > Firewall Enable logging of requests made to the firewall. Default is 0.

0 = disabled 1 = enabled

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/system/defaults/alf.nix>
system.defaults.alf.stealthenabled

# Apple menu > System Preferences > Security and firewall Drops incoming requests via ICMP such as ping requests. Default is 0.

0 = disabled 1 = enabled

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/system/defaults/alf.nix>
system.defaults.dock.enable-spring-load-actions-on-all-items

Enable spring loading for all Dock items. The default is false;

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/dock.nix>
system.defaults.dock.autohide

Whether to automatically hide and show the dock. The default is false.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/dock.nix>
system.defaults.dock.autohide-delay

Sets the speed of the autohide delay. The default is given in the example.

Type: null or float

Default: null

Example: "0.24"

Declared by:

<darwin/modules/system/defaults/dock.nix>
system.defaults.dock.autohide-time-modifier

Sets the speed of the animation when hiding/showing the Dock. The default is given in the example.

Type: null or float

Default: null

Example: "1.0"

Declared by:

<darwin/modules/system/defaults/dock.nix>
system.defaults.dock.dashboard-in-overlay

Whether to hide Dashboard as a Space. The default is false;

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/dock.nix>
system.defaults.dock.expose-animation-duration

Sets the speed of the Mission Control animations. The default is given in the example.

Type: null or float

Default: null

Example: "1.0"

Declared by:

<darwin/modules/system/defaults/dock.nix>
system.defaults.dock.expose-group-by-app

Whether to group windows by application in Mission Control's Exposé. The default is true.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/dock.nix>
system.defaults.dock.launchanim

Animate opening applications from the Dock. The default is true.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/dock.nix>
system.defaults.dock.mineffect

Set the minimize/maximize window effect. The default is genie.

Type: null or one of "genie", "suck", "scale"

Default: null

Declared by:

<darwin/modules/system/defaults/dock.nix>
system.defaults.dock.minimize-to-application

Whether to minimize windows into their application icon. The default is false.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/dock.nix>
system.defaults.dock.mouse-over-hilite-stack

Enable highlight hover effect for the grid view of a stack in the Dock.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/dock.nix>
system.defaults.dock.mru-spaces

Whether to automatically rearrange spaces based on most recent use. The default is true.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/dock.nix>
system.defaults.dock.orientation

Position of the dock on screen. The default is "bottom".

Type: null or one of "bottom", "left", "right"

Default: null

Declared by:

<darwin/modules/system/defaults/dock.nix>
system.defaults.dock.show-process-indicators

Show indicator lights for open applications in the Dock. The default is true.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/dock.nix>
system.defaults.dock.show-recents

Show recent applications in the dock. The default is true.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/dock.nix>
system.defaults.dock.showhidden

Whether to make icons of hidden applications tranclucent. The default is false.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/dock.nix>
system.defaults.dock.static-only

Show only open applications in the Dock. The default is false.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/dock.nix>
system.defaults.dock.tilesize

Size of the icons in the dock. The default is 64.

Type: null or signed integer

Default: null

Declared by:

<darwin/modules/system/defaults/dock.nix>
system.defaults.finder.AppleShowAllExtensions

Whether to always show file extensions. The default is false.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/finder.nix>
system.defaults.finder.FXEnableExtensionChangeWarning

Whether to show warnings when change the file extension of files. The default is true.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/finder.nix>
system.defaults.finder.QuitMenuItem

Whether to allow quitting of the Finder. The default is false.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/finder.nix>
system.defaults.finder._FXShowPosixPathInTitle

Whether to show the full POSIX filepath in the window title. The default is false.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/finder.nix>
system.defaults.loginwindow.DisableConsoleAccess

Disables the ability for a user to access the console by typing “>console” for a username at the login window. Default is false.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/loginwindow.nix>
system.defaults.loginwindow.GuestEnabled

# Apple menu > System Preferences > Users and Groups > Login Options Allow users to login to the machine as guests using the Guest account. Default is true.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/loginwindow.nix>
system.defaults.loginwindow.LoginwindowText

Text to be shown on the login window. Default "\\U03bb".

Type: null or string

Default: null

Declared by:

<darwin/modules/system/defaults/loginwindow.nix>
system.defaults.loginwindow.PowerOffDisabledWhileLoggedIn

# Apple menu > System Preferences > Users and Groups > Login Options If set to true, the Power Off menu item will be disabled when the user is logged in. Default is false.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/loginwindow.nix>
system.defaults.loginwindow.RestartDisabled

# Apple menu > System Preferences > Users and Groups > Login Options Hides the Restart button on the login screen. Default is false.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/loginwindow.nix>
system.defaults.loginwindow.RestartDisabledWhileLoggedIn

# Apple menu > System Preferences > Users and Groups > Login Options Disables the “Restart” option when users are logged in. Default is false.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/loginwindow.nix>
system.defaults.loginwindow.SHOWFULLNAME

# Apple menu > System Preferences > Users and Groups > Login Options Displays login window as a name and password field instead of a list of users. Default is false.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/loginwindow.nix>
system.defaults.loginwindow.ShutDownDisabled

# Apple menu > System Preferences > Users and Groups > Login Options Hides the Shut Down button on the login screen. Default is false.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/loginwindow.nix>
system.defaults.loginwindow.ShutDownDisabledWhileLoggedIn

# Apple menu > System Preferences > Users and Groups > Login Options Disables the "Shutdown" option when users are logged in. Default is false.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/loginwindow.nix>
system.defaults.loginwindow.SleepDisabled

# Apple menu > System Preferences > Users and Groups > Login Options Hides the Sleep button on the login screen. Default is false.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/loginwindow.nix>
system.defaults.loginwindow.autoLoginUser

# Apple menu > System Preferences > Users and Groups > Login Options Auto login the supplied user on boot. Default is Off.

Type: null or string

Default: null

Declared by:

<darwin/modules/system/defaults/loginwindow.nix>
system.defaults.screencapture.location

The filesystem path to which screencaptures should be written.

Type: null or string

Default: null

Declared by:

<darwin/modules/system/defaults/screencapture.nix>
system.defaults.smb.NetBIOSName

Hostname to use for NetBIOS.

Type: null or string

Default: null

Declared by:

<darwin/modules/system/defaults/smb.nix>
system.defaults.smb.ServerDescription

Hostname to use for sharing services.

Type: null or string

Default: null

Declared by:

<darwin/modules/system/defaults/smb.nix>
system.defaults.spaces.spans-displays

# Apple menu > System Preferences > Mission Control Displays have separate Spaces (note a logout is required before this setting will take affect).

false = each physical display has a separate space (Mac default) true = one space spans across all physical displays

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/spaces.nix>
system.defaults.trackpad.ActuationStrength

0 to enable Silent Clicking, 1 to disable. The default is 1.

Type: null or one of 0, 1

Default: null

Declared by:

<darwin/modules/system/defaults/trackpad.nix>
system.defaults.trackpad.Clicking

Whether to enable trackpad tap to click. The default is false.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/trackpad.nix>
system.defaults.trackpad.FirstClickThreshold

For normal click: 0 for light clicking, 1 for medium, 2 for firm. The default is 1.

Type: null or one of 0, 1, 2

Default: null

Declared by:

<darwin/modules/system/defaults/trackpad.nix>
system.defaults.trackpad.SecondClickThreshold

For force touch: 0 for light clicking, 1 for medium, 2 for firm. The default is 1.

Type: null or one of 0, 1, 2

Default: null

Declared by:

<darwin/modules/system/defaults/trackpad.nix>
system.defaults.trackpad.TrackpadRightClick

Whether to enable trackpad right click. The default is false.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/trackpad.nix>
system.defaults.trackpad.TrackpadThreeFingerDrag

Whether to enable three finger drag. The default is false.

Type: null or boolean

Default: null

Declared by:

<darwin/modules/system/defaults/trackpad.nix>
system.keyboard.enableKeyMapping

Whether to enable keyboard mappings.

Type: boolean

Default: false

Declared by:

<darwin/modules/system/keyboard.nix>
system.keyboard.nonUS.remapTilde

Whether to remap the Tilde key on non-us keyboards.

Type: boolean

Default: false

Declared by:

<darwin/modules/system/keyboard.nix>
system.keyboard.remapCapsLockToControl

Whether to remap the Caps Lock key to Control.

Type: boolean

Default: false

Declared by:

<darwin/modules/system/keyboard.nix>
system.keyboard.remapCapsLockToEscape

Whether to remap the Caps Lock key to Escape.

Type: boolean

Default: false

Declared by:

<darwin/modules/system/keyboard.nix>
system.nixpkgsRelease

The nixpkgs release (e.g. 16.03).

Type: string (read only)

Declared by:

<darwin/modules/system/version.nix>
system.profile

Profile to use for the system.

Type: path

Default: "/nix/var/nix/profiles/system"

Declared by:

<darwin/modules/system>
system.stateVersion

Every once in a while, a new NixOS release may change configuration defaults in a way incompatible with stateful data. For instance, if the default version of PostgreSQL changes, the new version will probably be unable to read your existing databases. To prevent such breakage, you can set the value of this option to the NixOS release with which you want to be compatible. The effect is that NixOS will option defaults corresponding to the specified release (such as using an older version of PostgreSQL).

Type: signed integer

Default: 4

Declared by:

<darwin/modules/system/version.nix>
time.timeZone

The time zone used when displaying times and dates. See https://en.wikipedia.org/wiki/List_of_tz_database_time_zones or run sudo systemsetup -listtimezones for a comprehensive list of possible values for this setting.

Type: null or string

Default: null

Example: "America/New_York"

Declared by:

<darwin/modules/time>
users.groups

Configuration for groups.

Type: list or attribute set of submodules

Default: { }

Declared by:

<darwin/modules/users>
users.groups.<name?>.description

The group's description.

Type: string

Default: ""

Declared by:

<darwin/modules/users>
users.groups.<name?>.gid

The group's GID.

Type: gid

Declared by:

<darwin/modules/users>
users.groups.<name?>.members

The group's members.

Type: list of strings

Default: [ ]

Declared by:

<darwin/modules/users>
users.groups.<name?>.name

The group's name. If undefined, the name of the attribute set will be used.

Type: string

Declared by:

<darwin/modules/users>
users.knownGroups

List of groups owned and managed by nix-darwin. Used to indicate what users are safe to create/delete based on the configuration. Don't add system groups to this.

Type: list of strings

Default: [ ]

Declared by:

<darwin/modules/users>
users.knownUsers

List of users owned and managed by nix-darwin. Used to indicate what users are safe to create/delete based on the configuration. Don't add the admin user or other system users to this.

Type: list of strings

Default: [ ]

Declared by:

<darwin/modules/users>
users.nix.configureBuildUsers

Configuration for nixbld group and users. NOTE: This does not work unless knownGroups/knownUsers is set.

Type: boolean

Default: false

Declared by:

<darwin/modules/users/nixbld>
users.nix.nrBuildUsers

Number of nixbld user accounts created to perform secure concurrent builds.

Type: integer

Default: 32

Declared by:

<darwin/modules/users/nixbld>
users.users

Configuration for users.

Type: list or attribute set of submodules

Default: { }

Declared by:

<darwin/modules/users>
users.users.<name?>.packages

The set of packages that should be made availabe to the user. This is in contrast to environment.systemPackages, which adds packages to all users.

Type: list of packages

Default: [ ]

Example:

[ pkgs.firefox pkgs.thunderbird ]

Declared by:

<darwin/modules/users>
users.users.<name?>.createHome

Create the home directory when creating the user.

Type: boolean

Default: false

Declared by:

<darwin/modules/users>
users.users.<name?>.description

A short description of the user account, typically the user's full name.

Type: string

Default: ""

Example: "Alice Q. User"

Declared by:

<darwin/modules/users>
users.users.<name?>.gid

The user's primary group.

Type: signed integer

Default: 20

Declared by:

<darwin/modules/users>
users.users.<name?>.home

The user's home directory.

Type: path

Default: "/var/empty"

Declared by:

<darwin/modules/users>
users.users.<name?>.isHidden

Whether to make the user account hidden.

Type: boolean

Default: true

Declared by:

<darwin/modules/users>
users.users.<name?>.name

The name of the user account. If undefined, the name of the attribute set will be used.

Type: string

Declared by:

<darwin/modules/users>
users.users.<name?>.shell

The user's shell.

Type: package or path

Default: "/sbin/nologin"

Example:

pkgs.bashInteractive

Declared by:

<darwin/modules/users>
users.users.<name?>.uid

The user's UID.

Type: signed integer

Declared by:

<darwin/modules/users>