Questions about extension development for an extension which affects the screen using GLSL

I’m making an extension to adjust color properties of the screen (hue/saturation right now)… to do this I use an effect written in GLSL (and I need to use GLSLEffect because ShaderEffect doesn’t let me pass vectors).

Should I attach this effect to Main.layoutManager.uiGroup or global.stage? Both kinda work, but are there any differences?
I also see they affect screenshots and screencasts, but I guess there’s no other way…

Also if I wanted per-monitor settings, is there a better way than passing monitor coordinates to shaders and checking them there? Is Main.layoutManager.monitors order reliable or do I need to distinguish monitors by something else?
I’ve not seen any extension that deals with multiple monitors this way…