I just found an open source window manager called slate.. From my point of view it's better than divvy and better than sizeup.. and it has a key binding for switching focus between screens. Its default key bindings are shown here (very customizable).. it defaults to~ ⌘→ and ⌘←
bonus: here is my slate config file.. it can give you some ideas to get you started
From the comments I realized that my above answer isn't about switching focus, rather it's about throwing windows around from one monitor to another. That's not what the question was about.
This solution works assuming that you already have application windows already open in all your monitors..
Take a look at this screenshot to understand my solution (click on it to zoom):
i simply click on ⌘tab to switch between the applications (ie i switch from chrome which is on the already focused monitor to terminal which is on the monitor i want to focus on
I do the same simply by clicking on ⌘`, this makes me switch between windows of the same application.. in the example below i got chrome windows in all three monitors, so I simply go through them until I reach the window I want to switch focus to..
update 2: works using skhd + yabai
This solution requires that you install both yabai and skhd.
in your skhd config file put something like this (you can adjust the keybindings and focus numbers to your liking):
ctrl + alt - right : yabai -m display --focus 1
ctrl + alt - left : yabai -m display --focus 2