在Mac OS X上关注跟随鼠标(加上自动加注)

时间:2008-09-19 00:24:31

标签: macos focus mouse

(我不想听到我有多疯狂!)

焦点跟随鼠标也称为点对焦,指针焦点,以及(在某些实现中)草率焦点。 [添加其他条款,使其更易于搜索!] X-mouse

23 个答案:

答案 0 :(得分:70)

您可以通过在命令行发出以下命令来为Terminal.app执行此操作:

defaults write com.apple.Terminal FocusFollowsMouse -bool true

对于X11应用,您可以这样做:

defaults write com.apple.x11 wm_ffm -bool true

在Snow Leopard中,请改用:

defaults write org.x.X11 wm_ffm -bool true

显然有一个名为CodeTek Virtual Desktop的程序可以在系统范围内模拟它,但它的成本为$$(并且他们从未获得过OSX Leopard的版本)。

答案 1 :(得分:55)

Steve Yegge一段时间写了一篇关于这篇文章的文章,在那里他尝试了并且未能写出合适的扩展名。我已经尝试为OS X找到焦点跟随鼠标应用程序,但也失败了。

答案 2 :(得分:47)

Focus-follow-mouse不是特别适合OS X的输入法,因为它的菜单栏设计在屏幕的顶部。当您将鼠标移出应用程序窗口以进入菜单时,如果它在途中穿过任何其他应用程序的窗口,则菜单会发生变化。

所以是的,在回复dreeves评论时,它适用于终端(或桌面上的任何其他单个应用程序),因为它将影响的唯一其他窗口是终端窗口,因此菜单永远不会像你一样改变切换窗口。它适用于X11,因为X11应用程序通常在窗口中嵌入了菜单栏,因此您无需离开窗口即可访问它们。

当然,您可以通过在焦点更改和/或菜单切换之前引入人工延迟来解决菜单更改问题,但它永远不会像在其他桌面上那样工作。

答案 3 :(得分:39)

虽然这远不是​​一个完整的解决方案,但OSX(10.11)中内置的两个方便的操作是:

^单击(控制选项 - 单击) - 切换焦点而不提升窗口

⌘-click (按住命令单击) - 在窗口中点击而不切换焦点

不确定何时引入这些快捷方式,因为我无法在任何地方找到它们。

答案 4 :(得分:15)

Amethyst支持此功能。它可以使用brew cask install amethyst轻松安装。

这是我使用的配置文件。除焦点跟随鼠标外,它还会关闭所有功能。将其保存到~/.amethyst

{
    "LAYOUTS": "----------------------",
    "layouts": [
    ],

    "MODIFIERS": "----------------------",
    "Valid modifiers are": [
        "option",
        "shift",
        "control",
        "command"
    ],

    "mod1": [
    ],
    "mod2": [
    ],

    "COMMANDS": "----------------------",
    "Commands are": {
        "cycle-layout": "Cycle layout to the next layout",
        "cycle-layout-backward": "Cycle layout to the previous layout",
        "focus-screen-1": "Focus the main window on the first screen",
        "focus-screen-2": "Focus the main window on the second screen",
        "focus-screen-3": "Focus the main window on the third screen",
        "focus-screen-2": "Focus the main window on the second screen",
        "focus-screen-3": "Focus the main window on the third screen",
        "focus-screen-4": "Focus the main window on the fourth screen",
        "throw-screen-1": "Throw the focused window to the first screen",
        "throw-screen-2": "Throw the focused window to the second screen",
        "throw-screen-3": "Throw the focused window to the third screen",
        "throw-screen-4": "Throw the focused window to the fourth screen",
        "shrink-main": "Shrink the main pane of the current layout",
        "expand-main": "Expand the main pane of the current layout",
        "increase-main": "Increase the number of windows in the main pane",
        "decrease-main": "Decrease the number of windows in the main pane",
        "focus-ccw": "Move window focus counter-clockwise on the current screen",
        "focus-cw": "Move window focus clockwise on the current screen",
        "swap-ccw": "Swap focused window with the next window going counter-clockwi$
        "swap-cw": "Swap focused window with the next window going clockwise",
        "swap-main": "Swap focused window with the main window of its screen",
        "throw-space-1": "Throw the focused window to the first space",
        "throw-space-2": "Throw the focused window to the second space",
        "throw-space-3": "Throw the focused window to the third space",
        "throw-space-4": "Throw the focused window to the fourth space",
        "throw-space-5": "Throw the focused window to the fifth space",
        "throw-space-6": "Throw the focused window to the sixth space",
        "throw-space-7": "Throw the focused window to the seventh space",
        "throw-space-8": "Throw the focused window to the eighth space",
        "throw-space-9": "Throw the focused window to the ninth space",
        "throw-space-8": "Throw the focused window to the eighth space",
        "throw-space-9": "Throw the focused window to the ninth space",
        "toggle-float": "Toggle the focused window between being floating and tiled"
    },

    "screens": "3",

    "cycle-layout": {
        "mod": "mod1",
    },
    "cycle-layout-backward": {
        "mod": "mod2",
    },
    "select-tall-layout": {
        "mod": "mod1"
    },
    "select-wide-layout": {
        "mod": "mod1"
    },
    "select-fullscreen-layout": {
        "mod": "mod1"
    },
    "select-column-layout": {
        "mod": "mod1"
    },
        "mod": "mod1"
    },
    "focus-screen-1": {
        "mod": "mod1"
    },
    "focus-screen-2": {
        "mod": "mod1"
    },
    "focus-screen-3": {
        "mod": "mod1"
    },
    "focus-screen-4": {
        "mod": "mod1"
    },
    "throw-screen-1": {
        "mod": "mod2"
    },
    "throw-screen-2": {
        "mod": "mod2"
    },
    "throw-screen-3": {
        "mod": "mod2"
    },
    "throw-screen-4": {
        "mod": "mod2"
    "throw-screen-4": {
        "mod": "mod2"
    },
    "shrink-main": {
        "mod": "mod1"
    },
    "expand-main": {
        "mod": "mod1"
    },
    "increase-main": {
        "mod": "mod1"
    },
    "decrease-main": {
        "mod": "mod1"
    },
    "focus-ccw": {
        "mod": "mod1"
    },
    "focus-cw": {
        "mod": "mod1"
    },
    "swap-screen-ccw": {
        "mod": "mod2"
    },
    "swap-screen-cw": {
    },
    "swap-screen-cw": {
        "mod": "mod2"
    },
    "swap-ccw": {
        "mod": "mod2"
    },
    "swap-cw": {
        "mod": "mod2"
    },
    "swap-main": {
        "mod": "mod1"
    },
    "throw-space-1": {
        "mod": "mod2"
    },
    "throw-space-2": {
        "mod": "mod2"
    },
    "throw-space-3": {
        "mod": "mod2"
    },
    "throw-space-4": {
        "mod": "mod2"
    },

        "mod": "mod2"
    },
    "throw-space-5": {
        "mod": "mod2"
    },
    "throw-space-6": {
        "mod": "mod2"
    },
    "throw-space-7": {
        "mod": "mod2"
    },
    "throw-space-8": {
        "mod": "mod2"
    },
    "throw-space-9": {
        "mod": "mod2"
    },
    "toggle-float": {
        "mod": "mod1"
    },
    "toggle-tiling": {
        "mod": "mod2"
    },
    "display-current-layout": {
        "mod": "mod1"
    "display-current-layout": {
        "mod": "mod1"
    },

    "MISC": "----------------------",
    "floating": [],
    "float-small-windows": false,
    "mouse-follows-focus": false,
    "focus-follows-mouse": true,
    "enables-layout-hud": false,
    "enables-layout-hud-on-space-change": false
}

答案 5 :(得分:13)

菜单问题是传统焦点跟随鼠标不起作用的唯一原因。

这是另一种选择:在键盘上按下键之前不要改变焦点。这将覆盖95%的焦点跟随鼠标的使用案例,并将使这个古怪的X用户真的很开心。我不知道有多少次我会在Chrome浏览器中滚动浏览网页,然后点击Command-T打开一个新标签页,然后找到终端中的标签页。如果我的大脑在使用Mac的8个月内没有发现它,那它永远不会。

答案 6 :(得分:9)

所以我决定再次改进我在MouseFocus.app上所做的工作,这仍然有一些缺陷。现在已经修好了。我把整个事情重命名为" AutoRaise"为了更好地反映这个工具的作用:当你悬停一个窗口时,它将被提升到前面(你选择的延迟)并获得焦点。该工具可以下载here。要使用它,请将其复制到您的/ Applications /文件夹,确保它是可执行的(chmod 700 AutoRaise)。然后在Finder中双击它。要快速打开/关闭它,您可以使用下面的AppleScript并将其粘贴到automator 服务工作流程中。然后通过“系统偏好设置”|“键盘”|“快捷方式”将创建的服务绑定到键盘快捷方式。

更新(29-03-2017):AutoRaise二进制文件已更新。如果在命令行上未指定延迟,它现在还将在同一文件夹中查找AutoRaise.delay文件。这在使用下面的AppleScript时特别有用,因为它启动了应用程序'不支持命令行参数。延迟应以50ms为单位。例如,要指定150ms的延迟,请在终端中运行此命令一次:' echo 3> AutoRaise.delay'

 mv XXX_20160101-19.dmp XXX_20151231.dmp
 mv XXX_20160125-17.dmp XXX_20160124.dmp

更新(18-04-2019):来源https://github.com/sbmpost/AutoRaise

答案 7 :(得分:8)

我目前使用的是MondoMouse,即使有它的怪癖,如果没有它,我也无法使用我的mac。他们有免费试用版,我会推荐给大家。

MondoMouse

答案 8 :(得分:7)

Codetek有一个产品可以做到这一点,但他们从未发布过Leopard或更高版本的版本。

MondoMouse可以做一些焦点跟随鼠标,但不能自动加注。 甚至焦点跟随鼠标也被破坏了。 例如,它不能与命令选项卡一起使用(如果你命令选项卡到新的应用程序而不触摸鼠标那么它应该将焦点切换回鼠标指针发生的任何地方是 - 我很确定我见过的Linux中的所有实现都是正确的,但是MondoMouse却没有。)

您可以为终端窗口启用焦点跟随鼠标(无自动)(只需在终端中执行以下操作):

defaults write com.apple.Terminal FocusFollowsMouse -string YES

同样适用于X11窗口:

defaults write org.x.X11 wm_ffm -bool true 

(对于10.5.5之前的mac版本,这是:

defaults write com.apple.x11 wm_ffm true

我不知道有任何其他支持它的应用程序。

答案 9 :(得分:7)

大约10年以来,我一直定期回覆此问题,终于找到了一个简单的解决方案:AutoRaise https://github.com/sbmpost/AutoRaise

默认情况下,它启用焦点跟随鼠标并自动升起。您可以使用config选项延迟自动提升。

它也具有所谓的“扭曲”功能,当您将Command-Tab移到窗口时,该功能会将鼠标指针置于窗口的中央。在尝试之前,我从来不知道自己需要它,但是一旦尝试,我就无法没有它!

答案 10 :(得分:6)

chunkwm也支持这个(默认情况下我相信): chunkwm

答案 11 :(得分:5)

有趣的是,Leopard默认启用了一种焦点跟随鼠标(没有自动启动)。滚轮在不专心的窗口中工作。

答案 12 :(得分:4)

不幸的是,CodeTek Virtual Desktop Pro已不再开发,该公司似乎已在几年前停业......

历史参考:http://www.codetek.com/ctvd/(不适用于新的OS X版本!)

历史回顾:http://www.osnews.com/story/6144

使用CodeTek Virtual Desktop Pro,您可以获得Focus-Follow-Mouse并禁用自动提升,并且它还具有虚拟桌面的寻呼机 - 类似于Fvwm在Linux上的工作方式。它真的很完美 - 我买过的最好的软件。 它与所有应用程序保持一致,切换应用程序,将窗口移动到不同的工作区,导航工作区比在最新的OS X版本中实现它更容易[10.6,10.7,10.8]

不幸的是,在Mac OS X 10.5中,VirtualDesktop Pro停止工作,看起来Apple似乎积极确保CodeTek不会继续使用它。

令人遗憾的是,Apple粉碎了CodeTek及其产品 - Virtual Desktop Pro确实优于OS X工作空间目前的实施方式。它的工作原理基本上就像在LINUX上的Fvwm - 超快速导航 - 没有不必要的点击或鼠标手势......

令我感到遗憾的是,Apple发现了Windows管理员(Finder)的行为,并且似乎不再允许第三方更换Finder。

答案 13 :(得分:3)

尝试DwellClick。虽然,它不是出于预期目的,但自动点击行为的副作用类似于自动加注或焦点跟随鼠标。

就个人而言,我只在光标移动休息后才使用左键单击功能,但是还有单击修改器和窗口拖动辅助功能非常方便。

网页浏览时也有点令人沮丧,因为你要么想要禁用应用程序,要么更加清楚光标所处的位置(例如,不要在你不打算激活的任何链接或按钮上)。

答案 14 :(得分:3)

还存在点击加注的相关问题。在OSX下,每次单击一个窗口时,它也会被抬起,从而可能隐藏其他窗口。当从两个窗口进行复制/粘贴时,这是有问题的,其中一个窗口覆盖了大部分屏幕。我喜欢保留一个全局(在所有工作区中都是活动的)记事本,我可以从中复制/粘贴东西(可以是命令,文本,待办事项等)。这在OSX下具有挑战性。如果有一个禁用点击加注的选项会很高兴。

答案 15 :(得分:2)

现在可以在macOS(在我的情况下为Mojave)中使用chunkwm来关注鼠标。  请参阅this堆栈溢出响应以获取“不自动提高”解决方案。通过离开激活自动提高

chunkc set ffm_disable_autoraise         0

~/.chunkwmrc中。

答案 16 :(得分:1)

解决方案:因为我已经习惯了在Windows中自动化,所以我在Mac上严重错过了它。 我在Mac上找到的解决方案是Zooom(是的,三个o)。它具有自动功能。您甚至可以在自动调整之前设置等待毫秒数。没有它就无法生存。 Autoraise是prefs中的一个选项,您可以在屏幕截图https://www.macupdate.com/app/mac/23203/zooom中看到 http://coderage-software.com/zooom/index.html

答案 17 :(得分:1)

尝试使用这些选项,我的Command-Tab开始表现得很奇怪。以下是再次关注应用程序的解决方案:

似乎前一个功能,即终端窗口焦点随鼠标移动而改变的能力在10.6中被破坏,导致Command-Tab无法正确传输窗口焦点。要解决此问题,只需将以下命令粘贴到终端:

默认写入com.apple.Terminal FocusFollowsMo​​use -string NO

然后重启终端。

答案 18 :(得分:1)

在Mac中使用驻留功能。 转到辅助功能->键盘->辅助功能键盘(我在Catalina上)

Click here for more info


enter image description here

enter image description here

答案 19 :(得分:0)

在MacOS Mojave上测试了MondoMouse(https://www.atomicbird.com/about/mac-apps)。似乎对我来说很好!

要安装面板,将出现一个为辅助设备启用访问权限,该通知不再位于系统偏好设置>辅助功能中。您必须在安全和隐私>辅助功能>隐私

中进行设置

关于在打开的每个应用程序中允许MondoMouse的警告,但是一旦设置,它就可以正常工作!真是解脱:)

答案 20 :(得分:0)

如果有人感兴趣,这里是多显示器自动对焦的工作玩具级实现:https://bitbucket.org/sivann/mac-screenfocus/src/master/

它大多有效,但不能在不同显示器上处理同一应用程序的多个窗口。如果您将鼠标移动到另一台显示器,则将焦点放在最后一个拥有它的应用上。

答案 21 :(得分:0)

对于双屏“专注于悬停”部分的一些可能有用的建议。当另一个屏幕已经具有输入框焦点时,它不会修复某些问题,例如在输入框中键入内容。但它可能会帮助那些为了“专注于悬停”而来到这里的人。

如果没有这个修复,我总是不得不在显示器中“聚焦点击”,然后我才能根据上下文点击任何东西。

您可以通过以下方式了解“专注于悬停”的某些方面:

  1. 进入“系统偏好设置”
  2. 选择“任务控制”选项
  3. 在那里你应该看到“显示器有单独的空间”,取消它

那么至少在选择 Monitor1 的情况下,现在您可以立即点击 Monitor2 中的某些内容,例如电子邮件或 Tab,而无需第一次“点击焦点”。

与往常一样,这可能不适用于每个人,具体取决于操作系统版本和其他方面。

答案 22 :(得分:-13)

你不能真正做得好,因为Mac界面的设计并没有考虑到焦点跟随鼠标(有或没有自动加注)。我怀疑这种情况会在短期内发生变化,除非确实如此,否则每个试图实施焦点跟随鼠标的人都会遇到相同的障碍并且结果令人不满意(对于那些想要这样的人)。

所以,是的,你因为想要这个而疯狂 - 但出于技术原因。习惯于按照自己的条件使用Mac,我确信你希望强制它的行为就像你曾经使用过的X11一样,当你找到新的有效工作方式时,它会稍微消退。