devShell
Sets up a shell environment that activates with nix develop
or direnv
.
Parameters
Note: All parameters for mkShell
are also
supported.
extraShellHook (optional)
Bash statements added to the shellHook
attribute.
fontPaths
(optional)
List of sources specifying paths to font files that will be made available to your Typst project. With this, you can compile Typst projects even when the fonts it uses are not available on your system.
Used for setting TYPST_FONT_PATHS
(see text#font
).
Example
{
outputs = { nixpkgs, typix }: let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
in {
devShells.${system}.default = typix.lib.${system}.devShell {
fontPaths = [
"${pkgs.roboto}/share/fonts/truetype"
];
};
};
}
forceVirtualPaths
(optional)
If there are any conflicts between virtualPaths
and files in your
project directory, they will not be overwritten unless forceVirtualPaths
is
true
.
Default is false
.
virtualPaths
(optional)
List of sources that will be made virtually available to your Typst project. Useful for projects which rely on remote resources, such as images or data.
Each element of the list is an attribute set with the following keys:
src
: path to source file or directorydest
(optional): path where file(s) will be made available (defaults to.
)- If
src
is a directory,dest
will be a directory containing the files in that directory.- Specifying the same
dest
for multiplesrc
directories will merge them.
- Specifying the same
- If
src
is a file,dest
will be a copy of that file.
- If
Instead of an attrset, you may use a path which will be interpreted the same as
if you had specified an attrset with just src
.
NOTE: Any paths specified here will not overwrite files in your project
directory, unless you set forceVirtualPaths
to true
.
Example
You can specify dependencies in your flake input, and then use them in your project with something like:
{
inputs = {
font-awesome = {
url = "github:FortAwesome/Font-Awesome";
flake = false;
};
};
outputs = { typix, font-awesome }: let
system = "x86_64-linux";
in {
devShells.${system}.default = typix.lib.${system}.devShell {
virtualPaths = [
{
dest = "icons";
src = "${font-awesome}/svgs/regular";
}
];
};
};
}
Then, reference the files in Typst:
#image("icons/heart.svg")