How do specialArgs work?

I may have found a hint in @djacu’s excellent Function Arguments - NixOS Modules Lessons

It looks like specialArgs is always passed as an argument as well as all its attributes!

Which seems to be what the line @zimward pointed at do

({ inherit lib options config specialArgs; } // specialArgs)

Which means, pass lib, options, config, specialArgs and “merge” with all the attributes of specialArgs (using the // operator).

4 Likes