When the base modules that are provided by devshell are not enough, it is possible to extend it.
All the devshell.toml schema options that are Declared in: the extra/
folder in the schema documentation are loaded on demand.
In order to load an extra module, use the <name> in the import section. For
example to make the locale options available, import locale:
devshell.toml:
imports = ["locale"]Make sure to add this at the first statement in the file.
Now that the module has been loaded, the devshell.toml understands the
locale prefix:
imports = ["locale"]
[locale]
lang = "en_US.UTF-8"From a nix flake you would import it like
imports = ["${devshell}/extra/locale.nix"];Building your own modules requires to understand the Nix language. If this is too complicated, please reach out to the issue tracker and describe your use-case. We want to be able to support a wide variety of development scenario.
In the same way as previously introduced, devshell will also load files that
are relative to the devshell.toml. For example:
imports = ["mymodule.nix"]Will load the mymodule.nix file in the project repository and extend the
devshell.toml schema accordingly.