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.