northerner said: My sympathy - I battled fungus gnats for about 2 yrs before I got it figured out. Cutting to the chase - you mentioned that you tried small stones on top of the soil. Small stones or pebbles leave too big of gaps - the gnats thank you for making nifty caves for them to hide while they get to the soil to dig in and lay more eggs unwatched. SAND. Not pebbles. Not stones. SAND. Add about 1/4" or 1 cm to the top of all plants that have any gnats. All of them. If the adults can't get back to lay more eggs, which they can't with the sand, they'll stop increasing the egg population. Adults die in about 2 weeks. If the larva can't get back up through the sand when they turn into gnats - which they can't - then you'll end that population too. They'll be stuck in the ground - and die. Done. To prevent washing the sand off by watering, consider bottom watering only. I added cut up shoe laces as wicks through the bottoms of many pots. Worked fine. Some plants I could top water with the sand. You just don't want to make bare spots by washing the sand off or making it too thin while you're going through at least a few weeks of this. Make SURE the edges of the soil surface where it touches the pot is covered with sand too. Gnats can see those gaps if you don't cover the edges.
That's it.
You're not going to have to worry about overwatering. You're not going to need any treatments. Just remove their ability to reproduce and they're done.
Seriously. I went through all the hoops people suggested with no luck at all. I even bought Sundew and Butterwort to eat the gnats - which was helpful AFTER I did this by reducing the adult numbers quicker while their last days were numbered. But the sand was the thing that turned tables.
Good luck.
Oh - and any time you buy potting materials (soil, peat, etc.) or potted plants - assume it is infested until proven otherwise.
Ideally the top layer of soil should dry out every time in between watering. Reducing watering is probably the best preventative measure you can take with any serious gnat problem.