The fact that each monitor acts on its own in OS X Mavericks is pretty cool. However, I find that I have to use my mouse and click on the unfocused monitor before I can actually slide back and forth its screens (or spaces).

What's the keyboard shortcut to switch focus to another monitor?

update: follow up question

  • 2
    doesn't really solve the problem because you have to move you hand to your mouse to move the pointer into the other screen to then put you hand back on the keyboard for the Control + Arrow the only people that might profit are Lefties who use the mouse left-handed. best would be a Shift + Control + Arrow to switch between screens. Now to figure a way to get that Macro to work. – user60494 Oct 25 '13 at 10:45
  • @Stephan that's exactly what i'm asking about – abbood Oct 25 '13 at 13:19
  • cmd + tab usually works for me when trying to switch from my laptop to my external monitor. – Milind Sep 30 '16 at 16:08
  • It's sad that none of the suggested solutions work for Mac OS Sierra... I think this feature should be built-in the OS. – Ardee Aram Jan 16 '17 at 3:05
  • i updated my answer below.. hopefully it better addresses the problem – abbood Jan 17 '17 at 7:44

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.

  • 3
    i see the value in what you're saying.. although i still wouldn't consider it ideal. b/c you are using dekstop numbers.. and to go back and forth to a specifically numbered desktop forces you to remember it (having to go through mission control to see the number of a desktop defeats the whole point of a 'shortcut').. the number one rule in human/computer interaction is "don't make me think".. i was hoping for something that's more intiuitive.. like <+[ctr] or smtn.. that requires 0 brain memory/processing on the user's part.. but i still gave you a +1 :) – abbood Oct 29 '13 at 5:27
  • 16
    after testing with your solution.. it definitely saves time.. but it doesn't address the main problem: shifting focus.. b/c even if it shows a screen i'm interested in.. that screen is still not in focus.. and so i still gotta take my hands of the keyboard and put my mouse on that screen.. then move my hands back to my keyboard.. :( – abbood Oct 29 '13 at 6:36
  • 1
    The reason I picked this answer is b/c it involved the act of switching between screens (ie ctrl + > or ctrl + <) and that in itself guarantees that the screen being switched to gets highlighted.. and it's very intuitive too (ie no numbers involved or intermediate steps) – abbood Nov 4 '13 at 5:59
  • 2
    Sorry but I just tried it in El Capitan and it is not working :/ I can not change focus to my external display :/ – Anastasios Andronidis Oct 5 '16 at 13:43
  • 2
    Doesn't really switch between displays in Mac OS Sierra... – Ardee Aram Jan 16 '17 at 2:59

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!

  • 1
    Lazy people can click here, all others need not apply: itunes.apple.com/us/app/catchmouse/id439700005?mt=12 – crazysim Nov 15 '13 at 20:19
  • 2
    Hmmm, doesn't seem to be available in the US store currently. – Jason Axelson Jul 29 '14 at 19:31
  • 3
    Does anyone know where CatchMouse ended up or if there is an alternative? The link on the Mac App Store and the link to the developer in the comments here are all broken. – zaphoyd Nov 19 '15 at 15:20
  • 1
    Not available on our region? Why? :( – Ardee Aram Jan 16 '17 at 2:48
  • 1
    This github repo seems to host it. This is the best solution as of now, in my opinion. July, 2017 – Enrico Borba Jul 10 '17 at 17:15
up vote 9 down vote accepted

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

  • 1
    How did you get this to work? I've been playing with Slate, but it seems like those commands just give focus to the next window to the right or left of the current one. Are you able to get it to solve the problem from your original question? – shanebonham Nov 4 '14 at 1:05
  • yeah it did @shanebonham.. you just have to go through the config file and make sure you're doing the right command – abbood Dec 4 '14 at 13:22
  • 1
    I don't think this exists with slate currently - github.com/jigish/slate/issues/458 I would really like to see this as well. – notthehoff Mar 21 '16 at 14:53
  • 1
    @abbood This absolutely doesn't work, it's can change focus between apps but not between monitors, i've tries everything, and i've read the documentation. – Abude Apr 23 '16 at 21:22
  • Thanks for this. Worked out of the box without having to touch the config file or create one. CMD + right arrow/left arrow switches focus between monitors. (NOTE - I'm using two external monitors with the actual laptop closed, in clamshell). None of the above solutions worked for me on OSX El Capitan. – MyCompassSpins Sep 2 '16 at 18:57

I use Keyboard Maestro to do just this. I mapped the F16 thru F19 keys in this order.

F16 Left monitor move left

F17 Left monitor move right

F18 Right monitor move left

F19 Right monitor move right

I created 4 Keyboard Maestro Actions for this, one for each monitor and one for each direction. Here is the basic shortcut which gets adjusted accordingly:

  1. Move the mouse over to whichever monitor without clicking.

  2. Keystroke Ctrl-[left arrow] or [right arrow], depending.

Actually I changed the Keyboard Shortcut in System Preferences under mission control from:

Ctrl-Arrow to move left/right a space to:

Shift-Control-Option-Command left/right arrow to free up the simpler control arrows for other activities. I also changed the Keyboard Maestro Macro to reflect the change.

While at it I also have the following mission control operations.

F13 Show desktop

F14 Show application windows

F15 Mission Control

I have it set up for the mouse to stay on the changed monitor but it could easily be set to return to where it started from.

  • 3
    It took me a while to figure out how to get Keyboard Maestro to move the mouse to my laptop monitor, so in case anyone else is having trouble too, I got it working like this: just move at SCREEN(Internal,MidX), SCREEN(Internal,MidY) relative to the absolute position – Shevaun Jan 9 '14 at 3:53
  • This is the best answer, Keyboard Maestro is well developed, is currently supported on Sierra, and has so many powerful options to control the mouse, this is awesome! – chrismarx Mar 6 '17 at 16:23

(This should be a comment but I don't have the reputation to post one.)

I have the same issue. I work almost exclusively in full-screen apps and switch between them with ctrl+◀︎ and ctrl+▶︎. I like to work on my primary monitor and use the secondary for Messages. But I don't want to leave Messages visible when I'm not using it; I would rather switch back to the Desktop on the secondary monitor. But to put focus on the secondary monitor, I have to move the mouse pointer, totally defeating the time and effort savings of using the keyboard shortcut for app switching.

For what it's worth, you don't have to click on anything to change focus to a different monitor. You only need to move your mouse pointer where you want focus.

  • 3
    yeah the point is to avoid using the mouse all together for such a common and basic operation – abbood Oct 25 '13 at 3:04

Keyboard Maestro can help you do that.

In my case, I use CTRL + 0,1,2 to refer screen 0, 1, 2. Below is how I configure that. Also, 0,1,2 on number pad is close to your arrow keys, then you can use CTRL + arrows to switch windows on selected display.

Notice, I use click because I want to move the focus to the window under cursor.

mouse movement to select display

  • I used this tip to make it work for me for dual monitors. Here is what I did to add shortcut for my non main monitor. It only gives the option relative to main screen window. So to make the mouse move to the left display, I set the relative mouse position to -500. – dreamerkumar Mar 13 at 17:53

protected by Community Nov 22 '13 at 10:24

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.