(我不想听别人说我有多疯狂想要那个!:)
焦点跟随鼠标也被称为点对焦点、指针焦点和(在某些实现中)草率焦点。[添加其他术语,使搜索更容易!]]鼠标光标
(我不想听别人说我有多疯狂想要那个!:)
焦点跟随鼠标也被称为点对焦点、指针焦点和(在某些实现中)草率焦点。[添加其他术语,使搜索更容易!]]鼠标光标
当前回答
还有一个相关的问题是点击后提高。在OSX下,每次单击一个窗口时,它也会被引发,因此可能会隐藏其他窗口。当从两个窗口复制/粘贴时,这是有问题的,其中一个窗口覆盖了大部分屏幕。我喜欢保留一个全局记事本(在所有工作区中都是活动的),从中复制/粘贴东西(可以是命令、文本、待办事项等任何东西)。在OSX下,这是一个挑战。如果有一个选项可以禁用“点击时提升”就好了。
其他回答
聚焦鼠标并不是一个特别适合OS X的输入法,因为它的菜单栏被设计在屏幕的顶部。当您将鼠标移出应用程序窗口以进入菜单时,如果它在此过程中穿过任何其他应用程序的窗口,菜单将发生变化。
所以是的,在回复dreeves的评论时,它对终端(或桌面上任何其他单一应用程序)工作得非常好,因为它只会影响终端窗口,所以当你切换窗口时,菜单永远不会改变。它适用于X11,因为X11应用程序通常将它们的菜单栏嵌入在窗口中,所以你不必离开窗口就可以访问它们。
当然,您可以通过在焦点更改和/或菜单切换之前引入人为延迟来解决菜单更改问题,但它永远不会像在其他桌面上那样工作。
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
)
我不知道还有其他应用程序支持它。
chunkwm也支持这个功能(我相信是默认的): chunkwm
菜单问题是传统的焦点跟随鼠标无法工作的唯一原因。
这里有一个替代方案:在键盘上按下一个键之前不要改变焦点。这将覆盖95%的焦点跟踪鼠标用例,并将使这个老的脾气暴躁的X用户非常高兴。我不知道有多少次我在Chrome中浏览网页,按下Command-T键打开一个新标签,却发现这个标签在终端中打开了。如果我的大脑在使用Mac的8个月里还没有注意到这一点,那它永远也不会注意到。
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