<defaultPackageName>.enable
Enable the <defaultPackageName> module
Type: boolean
Default: false
<defaultPackageName>.packageDefinitions.existing
the merge strategy to use for packageDefinitions inherited from the package this module was based on choose between “replace”, “merge” or “discard” replace uses utils.mergeCatDefs merge uses utils.deepmergeCats discard does not inherit see :help nixCats.flake.outputs.exports for more info on the merge strategy options
Type: one of “replace”, “merge”, “discard”
Default: "replace"
<defaultPackageName>.packageDefinitions.merge
VERY IMPORTANT when setting aliases for each package, they must not be the same as ANY other neovim package for that user. It will cause a build conflict.
You can have as many nixCats installed per user as you want, as long as you obey that rule.
for information on the values you may return, see :help nixCats.flake.outputs.settings and :help nixCats.flake.outputs.categories
Type: null or (attribute set of function representing the settings and categories for a nvim package, where multiple declarations are combined using utils.deepmergeCats)
Default: null
Example:
''
packageDefinitions.merge = {
nixCats = { pkgs, ... }: {
settings = {
wrapRc = true;
configDirName = "nixCats-nvim";
# nvimSRC = inputs.neovim;
aliases = [ "vim" "nixCats" ];
};
categories = {
generalBuildInputs = true;
markdown = true;
gitPlugins = true;
general = true;
custom = true;
neonixdev = true;
debug = false;
test = true;
lspDebugMode = false;
themer = true;
colorscheme = "onedark";
};
};
}
''
<defaultPackageName>.packageDefinitions.replace
VERY IMPORTANT when setting aliases for each package, they must not be the same as ANY other neovim package for that user. It will cause a build conflict.
You can have as many nixCats installed per user as you want, as long as you obey that rule.
for information on the values you may return, see :help nixCats.flake.outputs.settings and :help nixCats.flake.outputs.categories
Type: null or (attribute set of function representing the settings and categories for a nvim package, where multiple declarations are combined using utils.mergeCatDefs)
Default: null
Example:
''
packageDefinitions.replace = {
nixCats = { pkgs, ... }: {
settings = {
wrapRc = true;
configDirName = "nixCats-nvim";
# nvimSRC = inputs.neovim;
aliases = [ "vim" "nixCats" ];
};
categories = {
generalBuildInputs = true;
markdown = true;
gitPlugins = true;
general = true;
custom = true;
neonixdev = true;
debug = false;
test = true;
lspDebugMode = false;
themer = true;
colorscheme = "onedark";
};
};
}
''
<defaultPackageName>.packageNames
A list of packages from packageDefinitions to include
Type: list of string
Default: [ ]
Example:
''
packageNames = [ "nixCats" ]
''
<defaultPackageName>.addOverlays
A list of overlays to make available to any nixCats package from this module but not to your system. Will have access to system overlays regardless of this setting.
Type: list of anything
Default: [ ]
Example:
''
addOverlays = [ (self: super: { nvimPlugins = { pluginDerivationName = pluginDerivation; }; }) ]
''
<defaultPackageName>.categoryDefinitions.existing
the merge strategy to use for categoryDefinitions inherited from the package this module was based on choose between “replace”, “merge” or “discard” replace uses utils.mergeCatDefs merge uses utils.deepmergeCats discard does not inherit see :help nixCats.flake.outputs.exports for more info on the merge strategy options
Type: one of “replace”, “merge”, “discard”
Default: "replace"
<defaultPackageName>.categoryDefinitions.merge
see :help nixCats.flake.outputs.categories uses utils.deepmergeCats to recursively update and merge category lists if duplicates are defined see :help nixCats.flake.outputs.exports for more info on the merge strategy options
Type: null or function returning sets of categories of different types of dependency, where multiple declarations are combined using utils.deepmergeCats
Default: null
Example:
''
# see :help nixCats.flake.outputs.categories
categoryDefinitions.merge = { pkgs, settings, categories, name, ... }@packageDef: { }
''
<defaultPackageName>.categoryDefinitions.replace
see :help nixCats.flake.outputs.categories uses utils.mergeCatDefs to recursively update old categories with new values see :help nixCats.flake.outputs.exports for more info on the merge strategy options
Type: null or function returning sets of categories of different types of dependency, where multiple declarations are combined using utils.mergeCatDefs
Default: null
Example:
''
# see :help nixCats.flake.outputs.categories
categoryDefinitions.replace = { pkgs, settings, categories, name, ... }@packageDef: { }
''
<defaultPackageName>.dontInstall
If true, do not output to packages list, output only to config.<defaultPackageName>.out
Type: boolean
Default: false
<defaultPackageName>.luaPath
The path to your nvim config directory in the store. In templates, this is “./.”
Type: string or path
Default: ""
Example: "./nvim"
<defaultPackageName>.nixpkgs_version
a different nixpkgs import to use. By default will use the one from the flake, or system pkgs.
Type: null or anything
Default: null
Example:
''
nixpkgs_version = inputs.nixpkgs
''
<defaultPackageName>.out.packages
Resulting customized neovim packages.
Type: attribute set of package (read only)
<defaultPackageName>.utils
Type: attribute set of anything (read only)
_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
: ThespecialArgs
argument passed toevalModules
.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
includesmodulesPath
, which allows you to import extra modules from the nixpkgs package tree without having to somehow make the module aware of the location of thenixpkgs
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 thenixpkgs.pkgs
option.
Type: lazy attribute set of raw value
Declared by: - <nixpkgs/lib/modules.nix>
A note about <defaultPackageName>
:
The nixCats modules are created by the utils.mkNixosModules and utils.mkHomeModules functions.
The string you pass as defaultPackageName
to the function is used as the prefix for the module options.
If you wish to customize the module namespace further, you may provide a list of strings as moduleNamespace
to the function and set it to any arbitrary attribute path
The module offered by the base nixCats flake has set defaultPackageName
to nixCats