Keyboard shortcut to switch focus between multiple displays on OS X 10.9+
Solution 1:
Here's a way that works from the keyboard:
Open
System Preferences -> Keyboard
and click theShortcuts
tab.Choose
Mission Control
from the sidebar.Scroll down until you see Mission Control listed in the main panel; check its box if not checked, and click the disclosure triangle.
You should see
Move left a space
,Move right a space
, and then a series ofSwitch to Desktop 1
,Switch to Desktop 2
, etc. for as many desktop spaces as you have going at the moment.Check all of the boxes of the
Switch to Desktop N
type.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.
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.
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.
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.
Solution 2:
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!