Appendix C. nix-darwin Module Options

_module.args

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

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

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

  • lib: The nixpkgs library.

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

  • options: The options declared in all modules.

  • specialArgs: The specialArgs argument passed to evalModules.

  • All attributes of specialArgs

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

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

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

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

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

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

Type: lazy attribute set of raw value

Declared by:

<nixpkgs/lib/modules.nix>
home-manager.backupFileExtension

On activation move existing files by appending the given file extension rather than exiting with an error.

Type: null or string

Default: null

Example: "backup"

Declared by:

<home-manager/nixos/common.nix>
home-manager.extraSpecialArgs

Extra specialArgs passed to Home Manager. This option can be used to pass additional arguments to all modules.

Type: attribute set

Default: { }

Example: { inherit emacs-overlay; }

Declared by:

<home-manager/nixos/common.nix>
home-manager.sharedModules

Extra modules added to all users.

Type: list of raw value

Default: [ ]

Example: [ { home.packages = [ nixpkgs-fmt ]; } ]

Declared by:

<home-manager/nixos/common.nix>
home-manager.useGlobalPkgs

Whether to enable using the system configuration’s pkgs argument in Home Manager. This disables the Home Manager options nixpkgs.*.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/nixos/common.nix>
home-manager.useUserPackages

Whether to enable installation of user packages through the users.users.<name>.packages option.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/nixos/common.nix>
home-manager.users

Per-user Home Manager configuration.

Type: attribute set of (Home Manager module)

Default: { }

Declared by:

<home-manager/nixos/common.nix>
home-manager.verbose

Whether to enable verbose output on activation.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/nixos/common.nix>