🖨️ Adding nodes (switches, routers, other devices)
Adding new nodes is in principle very simple. All you need to do
is assign an id and (arbitrary) deviceType. Based on the deviceType
this may pre-select some configuration options such as the rendering style.
{
nodes.toaster = {
deviceType = "device";
hardware.info = "ToasterMAX 3000";
};
}
Nodes have many options, so be sure to read through the option reference if you want to manually add something more complex.
👾 Icons
There are several icons included in nix-topology, which you can access by setting
any of the icon options to a string "<category>.<name>". Have a look at the
icons folder to see what's available already. You can also add your own
icons to the registry by defining icons.<category>.<name>.
🖼️ Images
In several places you will be able to set an icon or image to be displayed
in a node's rendering. Usually you can either reference an existing icon with "<category>.<name>",
or specify a path to an image instead. Currently nix-topology supports svg, png and jpeg files.
While svg is always recommended for quality, beware that a viewBox must be set and it
must be square, otherwise it may be streched.
To create a viewbox for any svg and optimize it, you can use scour and svgo:
nix-shell -p nodePackages.svgo scour
scour --enable-viewboxing -i in.svg -o out.svg
svgo -i in.svg -o out.svg