在OS X 10.9+上,有一个键盘快捷方式可以在多个显示器之间切换焦点。

每个显示器在OS X Mavericks中都可以独立操作,这一点非常酷。然而,我发现在我能够在不同屏幕(或空间)之间滑动之前,我必须使用鼠标点击未聚焦的显示器。 有没有快捷键可以切换到另一个显示器? 更新:跟进问题

2这并不真正解决问题,因为你必须移动手到鼠标上将指针移到另一个屏幕上,然后再把手放回键盘上按下Control + Arrow。唯一可能从中受益的人可能是使用左手操作鼠标的左撇子。 最好的方法是使用Shift + Control + Arrow在屏幕之间切换。现在要想办法让宏起作用。 - user60494
@Stephan,这正是我所询问的内容。 - abbood
1通常情况下,当我想要从我的笔记本电脑切换到外接显示器时,我会使用cmd + tab的快捷键。 - Milind
1很遗憾,没有任何建议的解决方案适用于Mac OS Sierra... 我认为这个功能应该内置在操作系统中。 - Ardee Aram
我在下面更新了我的答案,希望能更好地解决问题。 - abbood
1我没有足够的声望来回答这个问题,但是从2022年开始,你可以通过BetterTouchTool相当容易地实现这一点:创建一个键盘快捷键,分配三个动作(保存当前鼠标位置、将鼠标移动到指定位置和左键单击),以及一个键盘快捷键,分配两个动作(恢复保存的鼠标位置和左键单击)。 - ajdev8
7个回答

这是一个可以通过键盘实现的方法:
  1. 打开“系统偏好设置 -> 键盘”,点击“快捷键”选项卡。

  2. 在侧边栏中选择“任务控制”。

  3. 向下滚动,直到在主面板中找到“任务控制”;如果未选中,请勾选其复选框,并点击展开三角形。

  4. 您应该会看到“向左移动一个空间”,“向右移动一个空间”,然后是一系列“切换到桌面1”,“切换到桌面2”等等,对应当前存在的桌面空间数量。

  5. 勾选所有“切换到桌面N”的复选框。

  6. 在我的偏好设置中,每个“切换到”都已经有一个快捷键了 - Ctrl-1Ctrl-2,... Ctrl-N,其中N是桌面编号(控制键显示为插入符号('^')。您可以将它们分配为任何您想要的键位,但保持顺序一致会更方便,所以我建议您保留原样。

  7. 现在,您可以在不同的工作区(也称为“Spaces”)之间切换,如果您选择的工作区在其他显示器上,焦点将自动切换到该显示器。

  8. 如果您忘记了某个桌面的编号,您可以先使用任务控制本身的快捷键(我的是 ⌥ Opt-↑ 上箭头,我想这是默认设置,但您可以根据需要自定义)。您将看到当前已编号的桌面,然后可以使用相应的快捷键。按下 ⎋ Esc 退出任务控制。

  9. 我注意到,如果我勾选了所有的“切换到”,那么如果我有另一个桌面并再次检查快捷键,新的桌面将被添加到“切换到”列表中,并且其快捷键也会被选中。所以在上述步骤之后不需要返回偏好设置。

谢谢你激发了我去探索这个问题。我和你以及其他人一样都有同样的困扰! 为了适应El Capitan系统:在我2016年10月31日的笔记中,我描述了一个最新的方法来切换到外部显示器的空间。似乎你需要在外部显示器上定义至少两个空间,并且按下Control-N、Control-M键,你就可以进入M空间,其中N和M是外部显示器上的空间编号。

3我明白你所说的价值所在,虽然我仍然不认为它是理想的。因为你使用的是桌面编号,来回切换到特定编号的桌面会强迫你记住它(通过任务控制查看桌面编号违背了“快捷方式”的初衷)。。人机交互的首要原则是“不让我思考”。。我希望能有更直观的操作方式。。比如<+[Ctrl]之类的,这样用户在使用过程中不需要任何脑力记忆/处理..但我还是给了你一个+1 :) - abbood
48经过使用您的解决方案进行测试后,确实节省了时间,但它并没有解决主要问题:转移焦点。因为即使它显示了我感兴趣的屏幕,该屏幕仍然不在焦点中,所以我仍然需要将手从键盘上拿开,把鼠标放在那个屏幕上,然后再把手放回键盘上。:( - abbood
2如果我使用上面描述的Control-N快捷键(其中N是桌面编号),那么刚刚切换到的显示屏会获得焦点,如果它不是当前在该显示屏上查看的桌面。如果我按下Control N+1,然后按下Control-N,然后桌面N会获得焦点。所以我可以在不离开键盘的情况下进入我选择的桌面和显示屏,但这需要多按一次键盘,并且似乎需要可供切换的N+1桌面。显然不是最佳选择,但它避免使用鼠标。 - Bruce Van Allen
1我选择这个答案的原因是因为它涉及在屏幕之间切换(即ctrl + >或ctrl + <)的操作,这本身就保证了被切换到的屏幕会被突出显示...而且这种操作非常直观(即没有涉及数字或中间步骤)。 - abbood
1+1除了#9外。保持未选中,所以我必须进入首选项手动为每个新桌面勾选它。 - Geo
@BruceVanAllen 我有4个桌面/空间,但是我的系统偏好设置 > 键盘 > 快捷键 > Mission Control 只显示“切换到桌面1。” 没有任何选项可以切换到桌面N。 你有什么想法吗?我正在使用Mavericks操作系统。 - chishaku
3抱歉,但我刚在El Capitan上尝试了一下,它不起作用:/ 我无法将焦点切换到我的外部显示器 :/ - Anastasios Andronidis
1我也无法将焦点切换到我的外部显示器。:((El Capitan) - dieend
好的,以下是我在El Capitan中找到的内容。(假设Sys Prefs:Mission Control: Displays Have Separate Spaces已经勾选。)1. 在键盘设置中的快捷方式:Mission Control中,“切换到桌面N”命令的数量似乎由你已经定义的桌面空间数量决定。2. 如果你至少在外部显示器上创建了两个空间。 - Bruce Van Allen
  1. 在键盘设置中,快捷键:任务控制的“切换到桌面N”命令数量似乎是根据已定义的桌面空间数量来设定的。
  2. 您可以通过使用任务控制的热角(如有需要,可进行设置)来查看每个空间的编号。
  3. 假设我在外接显示器上创建了至少两个空间,比如空间3和空间4,这样操作可以生效:当我处于主显示器的第一个空间时,按下Control 3,然后再按下Control 4,我会进入外接显示器的第4个空间。然后可以使用Control-N在该显示器上切换不同的空间。您可以试一试这个方法是否适用。
- Bruce Van Allen
12在Mac OS Sierra中,实际上并不能很好地切换显示屏... - Ardee Aram
如果只是对于已经可见的桌面进行切换焦点,这将是一个相当不错的解决办法,以弥补 OS X 提供的尴尬地不可定制的显示屏。假设我在左侧的显示器上有桌面1和2,目前显示的是2。我不能直接切换到桌面2并使其获得焦点,而是需要先切换到1再切回2...真是遗憾。 - Greg Hilston

我刚刚发现了一个开源的窗口管理器,叫做slate。从我的角度来看,它比divvysizeup都要好。而且它还有一个用于在屏幕之间切换焦点的快捷键绑定。它的默认快捷键绑定可以在这里看到(非常可自定义)... 它的默认设置是

额外奖励:这是我的slate 配置文件.. 它可以给你一些启动的思路

更新

从评论中我意识到我上面的回答并不是关于切换焦点,而是关于将窗口从一个显示器扔到另一个显示器。这不是问题的内容。

这个解决方案假设您已经在所有显示器上打开了应用程序窗口...

请查看此截图以了解我的解决方案(点击放大):

enter image description here

场景1 我只需点击tab在应用程序之间切换(即从已聚焦的监视器上切换到我想要集中注意力的终端)。

场景2 我通过简单地点击`来执行相同操作,这使我在同一应用程序的窗口之间进行切换。在下面的示例中,我在三个监视器上都有Chrome窗口,所以我只需逐个浏览它们,直到找到我要切换焦点的窗口。


2你是怎么使它工作的?我一直在用Slate,但好像这些命令只是将焦点切换到当前窗口左边或右边的下一个窗口。你能够用它解决你之前提出的问题吗? - shanebonham
是的,@shanebonham,你只需要浏览配置文件并确保使用正确的命令。 - abbood
1我不认为目前有这个与石板的存在——https://github.com/jigish/slate/issues/458。我也非常希望能看到这一点。 - notthehoff
2@abbood 这绝对行不通,它可以在应用程序之间切换焦点,但不能在显示器之间切换,我已经尝试了所有方法,并阅读了文档。 - Abude
谢谢这个。直接使用,不需要修改配置文件或创建一个。CMD + 右箭头/左箭头在监视器之间切换焦点。(注意 - 我使用两个外接显示器,并将实际笔记本电脑合上,在贝壳模式下)。以上的解决方案在OSX El Capitan上都不适用于我。 - Justin
1无法运行。对于“开箱即用”体验不确定。我使用的是Mac OS Sierra系统。 - Ardee Aram
抱怨的那些人是对的...我更新了答案。 - abbood
两种选择(情景)都不能解决问题。确实,它们将焦点转移到其他应用程序/窗口,但是它们在更强的意义上并没有将焦点转移到其他屏幕:当您使用Ctrl+箭头切换到侧边窗口(空间)时,您仍然停留在原始屏幕上。 - amka66

迄今为止,我找到的最佳解决方案是在应用商店安装免费的CatchMouse实用程序。它允许您为每个显示器的中心分配不同的键盘快捷键来“跳转”鼠标指针。在我的情况下,我将左侧显示器映射为Ctrl+⎇ Alt+,右侧显示器映射为Ctrl+⎇ Alt+注意:CatchMouse的链接已更新为未知且不受信任的来源。请自行承担风险下载和使用!

很好,运作良好! - abbood
1懒人可以点击这里,其他人不必申请:https://itunes.apple.com/us/app/catchmouse/id439700005?mt=12 - nelsonjchen
我得补充一下,上面的建议本身并不能实现高亮显示...所以我的做法是,一旦鼠标光标在正确的屏幕上,我就可以使用Ctrl+左或Ctrl+右来在屏幕之间切换。 - abbood
2嗯,目前在美国商店似乎不可用。 - Jason Axelson
CatchMouse仍然可以从开发者处获得,截至2014年12月:http://ftnew.com/catchmouse.html - KevinButler
3有人知道CatchMouse最后去了哪里吗?或者是否有其他替代品?Mac App Store上的链接和这里评论中的开发者链接都失效了。 - zaphoyd
我很久以前就在找这样的东西!谢谢! - Giovanni Benussi
2不在我们的地区可用吗?为什么?:( - Ardee Aram
3这个 GitHub 仓库 似乎是它的托管地。依我看,这是目前最好的解决方案。2017年7月。 - Enrico Borba
1我无法在2020年2月的Catalina系统上让CatchMouse工作 :( - Danny Harding
1回应 @DannyHarding: 当触发器被键入时,CatchMouse在相应的屏幕上显示一个放大的光标,但那基本上就是它的全部功能。它不会将焦点给予指定的屏幕。 - Dave Land
我已确认Catchmouse在Big Sur上可用。 - StevieD

(这应该是一条评论,但我没权限发表评论。) 我有同样的问题。我几乎只在全屏应用程序中工作,并使用ctrl+◀︎ctrl+▶︎在它们之间切换。我喜欢在我的主显示器上工作,并将辅助显示器用于消息。但是当我不使用消息时,我不想让消息一直可见;我宁愿切换回辅助显示器上的桌面。但是要将焦点放在辅助显示器上,我必须移动鼠标指针,完全破坏了使用键盘快捷键进行应用程序切换的时间和精力节省。 值得一提的是,你不需要点击任何东西来改变对不同显示器的焦点。你只需要把鼠标指针移到你想要聚焦的位置即可。

6是的,关键是要完全避免使用鼠标来进行如此常见和基本的操作。 - abbood
有关此事的任何更新吗? - humble
1@Flavin 不仅你的评论值得成为一个完整的答案,而且它是最好的答案。尴尬的是,这个答案几乎是在9年之后才出现的!我也陷入了完全相同的问题,除了从互联网上安装一款软件之外,我看不到其他解决办法,但这对我来说是不可行的。然而,你最后的评论让整个移动鼠标的过程少了50%的痛苦!我只能将就着用了。谢谢你! - amka66

我使用Keyboard Maestro来完成这个任务。 我按照以下顺序映射了F16至F19键。 F16:左监视器向左移动 F17:左监视器向右移动 F18:右监视器向左移动 F19:右监视器向右移动 为此,我创建了4个Keyboard Maestro操作,每个监视器以及每个方向都有一个。以下是基本的快捷键设置,根据需要进行调整: 1. 将鼠标移动到目标监视器上,但不要点击。 2. 按下Ctrl + 左箭头或右箭头键。 实际上,我在系统偏好设置的任务控制中将键盘快捷键从“Ctrl + 箭头”改为“Shift + Control + Option + Command + 左/右箭头”,以释放简单的控制箭头供其他活动使用。我还相应更改了Keyboard Maestro宏。 在此过程中,我还对任务控制进行了以下操作。 按下 F13 键,显示桌面。 按下 F14 键,显示应用程序窗口。 按下 F15 键,进入任务控制中心。 我已经设置鼠标停留在更改的监视器上,但它也可以轻松设置为返回到起始位置。

4我花了一些时间才弄明白如何让Keyboard Maestro将鼠标移动到我的笔记本显示屏上,所以如果还有其他人遇到困难,我是这样解决的:使用just move命令,并相对于绝对位置在SCREEN(Internal,MidX)SCREEN(Internal,MidY)处移动。 - Shevaun
1这是最好的答案,Keyboard Maestro非常发达,在Sierra上得到了支持,而且有很多强大的选项来控制鼠标,真是太棒了! - chrismarx

Keyboard Maestro 可以帮助你实现这个功能。 在我的情况下,我使用 CTRL + 0、1、2 来表示屏幕 0、1、2。下面是我如何进行配置。此外,数字键盘上的 0、1、2 靠近方向键,这样你就可以使用 CTRL + 方向键来在选定的显示器上切换窗口。 请注意,我使用点击操作是因为我想将焦点移动到鼠标下的窗口。

mouse movement to select display


2我用这个技巧让双显示器适应我的需求。以下是我为非主要显示器添加快捷方式的步骤。它只提供相对于主屏幕窗口的选项。所以,为了使鼠标移动到左侧显示器,我将相对鼠标位置设置为-500。 - dreamerkumar

另一个选择是受xmonad启发的MacOS窗口管理器Amethyst,它有一些默认的按键绑定PN,可以在屏幕之间循环鼠标指针。当然,它还有更多功能。