Do you fertilize with something organic? That might encourage fungus, yeast, or something else that gnats like. Maybe try a different fertilizer for a few weeks.
Is the soil highly organic? Maybe the top layer needs to be less organic.
Maybe a dry soil SURFACE would help discourage the gnats.
Bottom watering might help keep the surface dry.
A small fan?
Or less frequent, heavier waterings.
A 1/4" or 1/2" layer of coarse grit or very very fine gravel on top of the soil mix would dry out quickly.
I like shredded pine bark nuggets or chips as a top dressing. Since it would only be a top dressing, the chips or nuggets could be almost any convenient size larger than 1/8" or 1/4". The nuggets have to be big enough that they don't hold much water by capillary attraction. Thus you would have to screen out or blow away powder, dust and fine bark fibers.
Some nuggets should be small enough that gnats can't easily crawl between bark chunks and reach a damp, organic soil surface.
P.S. .... H2O2 dilution
http://www.using-hydrogen-pero...
This site suggests 0.1% hydrogen peroxide for watering plants or soaking seeds.
Use 1-2 ounces per quart, if you have standard "drugstore peroxide" that is 3% strong.
("Food grade" peroxide is 35%.)
I have read several experienced gardeners saying they use stronger concentrations.