I use the r+cmd app for deterministic app switching.
Caps mapped to right command.
Karabiner to map dual-cmd+jkl; to mapped vertical slice so j is left quarter, j+k is left side, etc.
dual-cmd+i moves windows between screens and dual-cmd+u rotates current window through full, top half, bottom half.
The whole thing is deterministic and super fast and gives me more permutations than I'll ever need.