I had the same problem after switching away from Compiz, as I have not found a real solution and I did not want to use single scripts, I forked a project, which nearly had the features which I needed.
You can find it under: https://github.com/gillesB/azulejo
It is not perfect yet, multiple screen support is missing, but I use it everyday. It should also be usable in other desktop environments as it is based on EWMH (1). For example I used it for a while with Mate and I tested it shortly with Cinnamon.