This shader is the best CRT simulation so far. No doubt. But I think there is still some room for enhancements. Besides barrel distortion, in reality there are two effects that define the special look of a CRT display. The first one are the scanlines. These are defined by the image resolution (translating to the number of rows the cathode ray travels from top to bottom). The second one is the dot pitch of the monitor, which is totally independent from the input image resolution but is instead defined by the monitors shadow mask.
An ideal shader would first apply a scanline effect to the original image resolution, then upscale the image to a resolution that resembles the monitors dot pitch and after that apply a second part of the shader, simulating the monitors shadow mask itself.
From the looks of it, the current shader does instead seem to apply both effects with the input resolution, whith doesn't look completely convincing especially in lower resolutions like 320x200.
Separating both effects would most likely lead to a very different shader, but there might be a much simpler way, that, despite not being entirely 'correct', also would lead to more convincing results for lower resolutions: upscaling smaller input images to, lets say 640x480, 800x600 or something like that and applying the current shader to this upscaled image most likely will improve the overall impression for lower resolutions alot.
I would love to try this myself, but someone with shader programming experience (which I unfortunately do not have) would surely be much faster.
BTW1.: the scanline effect looks a bit too strong with this shader for my taste. At least I can't remember any real sreen that showed completely black space between scanlines. If visible at all, this should be a more subtle effect. But that will most likely strongly depend on the age and/or type of the simulated monitor.
BTW2.: To get physically correct scanlines one would have to do something entirely different and more complicated than darkening every other line of the image, since the width of the scanline gap varies, depending on the luminosity of the current pixel (respectively the current intensity of the cathode rays), which can be observed in the attached secreenshot quite nicely. Brighter pixels 'bleed' more heavily into neighboring ones than darker pixels. EDIT: The shader already does take that into account
BTW3.: A 'realistic' dot pitch resolution might be anything in the range of ~640x480 to ~1600x1200, again depending on the age of the simulated monitor.
Attached is an image that quite nicely shows that on real CRTs the effects caused by scanlines and the monitors shadows mask are independent form each other.