You can get very close if not all the way with qtile if you accept using python instead of haskell.
https://docs.qtile.org/en/stable/manual/ref/layouts.html#mon...