Apple - Keyboard shortcut to switch focus between multiple displays on OS X 10.9+

Here's a way that works from the keyboard:

  1. Open System Preferences -> Keyboard and click the Shortcuts tab.

  2. Choose Mission Control from the sidebar.

  3. Scroll down until you see Mission Control listed in the main panel; check its box if not checked, and click the disclosure triangle.

  4. You should see Move left a space, Move right a space, and then a series of Switch to Desktop 1, Switch to Desktop 2, etc. for as many desktop spaces as you have going at the moment.

  5. Check all of the boxes of the Switch to Desktop N type.

  6. In my prefs, each of those Switch-tos has a shortcut already there - Ctrl-1, Ctrl-2, ... Ctrl-N, where N is the Desktop number (Control key is shown as a carat ('^'). You can assign whatever you want to these, but keeping them in a sequential scheme helps, so I suggest leaving them as is.

  7. Now, you can switch among your functioning desktops (aka Spaces), and if one you choose is on the other display, focus will shift to that display.

  8. If you don't remember which number a Desktop is, you could first use your shortcut for Mission Control itself (mine is ⌥ Opt-Up Arrow, which I think was the default, but again you can set that for whatever you want). You'll see your current numbered Desktops, and can then use the appropriate shortcut. Press ⎋ Esc to get out of Mission Control.

  9. I see that if I have all of the Switch-tos checked, then if I had another Desktop and check keyboard shortcuts again, the new Desktop is added to the Switch-to list and its shortcut is checked as well. So no need to go back to Prefs after the above steps.

Thanks for stimulating me to poke into this. I was having the same frustration as you and others!

ADDED for El Capitan: In my October 31 2016 note I describe my latest finding for switching to a space in the external display. It seems you need at least two spaces defined on your external display, and then you need to hit Control-N, Control-M, and you will be live in space M, where N & M are space numbers of spaces on the external display.


Best solution I've found thus far is to install the free CatchMouse utility off the app store. It allows you to assign different keyboard shortcuts to "warp" the mouse pointer to the center of each monitor. In my case I've mapped my left hand monitor to Ctrl+⎇ Alt+, and the right one to Ctrl+⎇ Alt+.

Note: The link to CatchMouse has been updated to an unknown and untrusted source. Download and use at your own risk!


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

update

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):

enter image description here

scenario 1 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

scenario 2 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..