Recently I have started using Yabai and Skhd. These are two very helpfull tools to easily switch focus between windows on osx.
I like to use the "Mission Control" with multiple screens to focus on specific jobs. Like one with a terminal and one with IntelliJ.
Yabai is a window management utility that easily rearranges your windows
Skhd is a hotkey daemon so that you also can easily interact with the windows.
Installing the tools is as easy as you can expect:
brew install koekeishiya/formulae/skhd
brew services start skhd
brew install koekeishiya/formulae/yabai
brew services start yabai
Small tip for the IntelliJ users:
"Go to IntelliJ IDEA > Preferences > Appearance & behavior > Appearance > UI Options > Always show full path in window header"
Then add to the configuration of yabai:
yabai -m rule --add app="IntelliJ IDEA" manage=off
yabai -m rule --add app="IntelliJ IDEA" title=".*\[(.*)\].*" manage=on
Now yabai will only take control of intelliJ main screen and not try to resize the popups
For more information
I recommend watching the following youtube clip from Josh, he really gives a nice explanation on how to use them.