Yes, the shader is hardcoded in the NeoGui library.
I have to admit that it looks quite nice if done well. Just one problem: A normal/spec map needs some sort of lighting to do those calculations. The current 2D renderer does not have any lighting support. I doubt that it would be useful in any GUI situation so I guess this feature would only be implemented for Sprites and Tiles.
We need nothing fancy there. Just some 2D light sources with X/Y position and radius. Everything else can be calculated using that. And of course: Allow loading textures for normal and spec map 😀