(我不想听别人说我有多疯狂想要那个!:)

焦点跟随鼠标也被称为点对焦点、指针焦点和(在某些实现中)草率焦点。[添加其他术语,使搜索更容易!]]鼠标光标


当前回答

你不可能真的做得很好,因为Mac界面的设计根本没有考虑到焦点跟随鼠标(有或没有自动上升)。我怀疑这种情况在短时间内不会改变,除非它改变,否则每个试图实现焦点跟随鼠标的人都会遇到同样的障碍,并以不满意的结果结束(对于那些想要这样做的人来说)。

所以,是的,你想要这个是疯狂的——但出于技术原因。习惯按自己的方式使用Mac,我相信当你找到新的高效的工作方式时,你强迫它像你过去使用的任何X11东西那样工作的愿望会逐渐消退。

其他回答

大约10年来,我一直在周期性地回到这个问题上,最后我找到了一个简单的解决方案:AutoRaise https://github.com/sbmpost/AutoRaise

默认情况下,它启用焦点跟随鼠标和自动升起。您可以使用配置选项来延迟自动触发。

它也有所谓的“扭曲”功能,当你Command-Tab到窗口时,将鼠标指针居中。在我尝试之前,我从来不知道我需要它,但一旦我尝试了,我就不能没有它!

如果有人感兴趣的话,这里有一个多监视器自动对焦的玩具级实现:https://bitbucket.org/sivann/mac-screenfocus/src/master/

它大部分工作,但不能处理同一应用程序在不同显示器的多个窗口。如果你将鼠标移到另一个显示器上,会将焦点移到上一个应用程序上。

给DwellClick一个尝试。虽然这不是它的预期目的,但自动单击行为有一个类似于自动提高或焦点跟随鼠标的副作用。

就我个人而言,我只在光标移动停止后使用左键点击的功能,但也有修改器点击和窗口拖动辅助功能,这非常方便。

在浏览网页时,这也有点令人沮丧,因为你要么想要禁用应用程序,要么更注意光标停留在哪里(例如,不要停留在任何你不想激活的链接或按钮上)。

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

所以是的,在回复dreeves的评论时,它对终端(或桌面上任何其他单一应用程序)工作得非常好,因为它只会影响终端窗口,所以当你切换窗口时,菜单永远不会改变。它适用于X11,因为X11应用程序通常将它们的菜单栏嵌入在窗口中,所以你不必离开窗口就可以访问它们。

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

So I decided to improve again on the work I did on the MouseFocus.app which still had some flaws. Those are fixed now. I renamed the whole thing to "AutoRaise" to better reflect what this tool does: When you hover a window it will be raised to the front (with a delay of your choosing) and gets the focus. The tool can be downloaded here. To use it, copy it to your /Applications/ folder making sure it is executable (chmod 700 AutoRaise). Then double click it from within Finder. To quickly toggle it on/off you can use the applescript below and paste it into an automator service workflow. Then bind the created service to a keyboard shortcut via System Preferences|Keyboard|Shortcuts.

更新(29-03-2017):AutoRaise二进制文件已经更新。如果命令行上没有指定delay,它现在也会在同一个主文件夹中查找autorrise .delay文件。这在使用下面的applescript时特别有用,因为“启动应用程序”不支持命令行参数。延迟应该以50ms 20ms为单位指定。例如,在一个终端上执行'echo 1 > ~/AutoRaise.delay'命令,指定延时为20ms。

on run {input, parameters}
    tell application "Finder"
        if exists of application process "AutoRaise" then
            quit application "/Applications/AutoRaise"
            display notification "AutoRaise Stopped"
        else
            launch application "/Applications/AutoRaise"
            display notification "AutoRaise Started"
        end if
    end tell
    return input
end run

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

更新(05-06-2020):默认延迟时间被设置为2,轮询时间被缩短。这些设置可以防止快速移动鼠标(例如到达顶部菜单)时意外地弹出窗口。同时一个扭曲鼠标功能已经添加和内存泄漏已被修复。欲了解更多细节,请参阅README