I switched to Niri (https://github.com/niri-wm/niri) about six months ago and I find it does wonders for focus.
Set the default window width to 1/4 or 1/3 of the screen width (depending on the screen size) and it's easy to keep just the right context visible.
Niri is so good. The spatialized layout really keeps me aware of where I need to go.
I do wish it had virtual outputs though. Such that we can either combine screens to form a big monitor, or subdivide a screen to make multiple outputs. I have been doing some coding on a 42" OLED tv, and I really want both a side tray and an overhead output. There's stilch which does this; I wonder if River is capable enough to do something similar. https://github.com/wegel/stilch