(我不想听到我想要那个有多疯狂!:)
焦点跟随鼠标也称为点对焦点,指针焦点和(在某些实现中)草率焦点。[添加其他术语,使其更易于搜索!] X鼠标
(我不想听到我想要那个有多疯狂!:)
焦点跟随鼠标也称为点对焦点,指针焦点和(在某些实现中)草率焦点。[添加其他术语,使其更易于搜索!] X鼠标
Answers:
您可以通过在命令行中发出以下命令来为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推出一个版本)。
史蒂夫·耶格(Steve Yegge)不久前写了一篇有关此事的文章,在那儿他尝试并未能写出合适的扩展名。从那以后,我一直试图为OS X找到关注焦点-鼠标的应用程序,但也失败了。
焦点跟随鼠标不是OS X的特别合适的输入方法,因为其菜单栏被设计为位于屏幕顶部。当您将鼠标移出应用程序窗口以进入菜单时,如果它在途中与任何其他应用程序的窗口交叉,则菜单会更改。
因此,是的,在回应dreeves的评论时,它对于Terminal(或桌面上的任何其他单个应用程序)非常有效,因为它将影响的唯一其他窗口是Terminal窗口,因此菜单在切换窗口时不会改变。它对X11很好用,因为X11应用程序通常将菜单栏嵌入到窗口中,因此您不必离开窗口即可访问它们。
当然,您可以通过在焦点更改和/或菜单切换之前引入人为的延迟来解决菜单更改问题,但是这种方法永远无法像其他台式机那样工作。
尽管这并不是一个完整的解决方案,但是OSX(10.11)内置的两个便捷操作是:
⌃⌥单击(control-option-click)-在不提高窗口的情况下切换焦点
⌘单击(命令单击)-在窗口中单击而不切换焦点
不确定何时引入这些快捷方式,因为我找不到在任何地方写的快捷方式。
click
用于没有焦点的窗口。
菜单问题是传统的焦点跟随鼠标无法正常工作的唯一原因。
这是另一种选择:在键盘上按下某个键之前不要改变焦点。这将覆盖95%的关注焦点,鼠标使用案例,并使这个老的curmudgeonly X用户非常满意。我不知道要在Chrome中浏览网页多少次,然后按Command-T打开新标签页,然后在终端中找到打开的标签页。如果在使用Mac的8个月内我的大脑没有动静,那就永远不会。
紫水晶支持此功能。可以使用轻松安装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
}
因此,我决定再次改进在MouseFocus.app上所做的工作,该程序仍然存在一些缺陷。这些现在已修复。我将整个名称重命名为“ AutoRaise”,以更好地反映此工具的功能:当您将窗口悬停时,它会被提升到最前面(延迟选择)并获得焦点。该工具可在此处下载。要使用它,请将其复制到您的/ Applications /文件夹中,确保其可执行(chmod 700 AutoRaise)。然后从Finder中双击它。要快速打开/关闭它,您可以使用下面的applescript并将其粘贴到automator 服务工作流程中。然后通过“系统偏好设置” |“键盘” |“快捷方式”将创建的服务绑定到键盘快捷方式。
更新(29-03-2017):AutoRaise二进制文件已更新。如果在命令行上未指定任何延迟,则现在还将在命令行中查找AutoRaise.delay文件。相同主文件夹。当使用下面的applescript时,这特别有用,因为“启动应用程序”不支持命令行参数。延迟应以50毫秒20毫秒 例如,要指定20ms的延迟,请在终端中运行以下命令一次:'echo 1>〜/ AutoRaise.delay'
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,并且减少了轮询时间。这些设置可防止在快速移动鼠标时(例如到达顶部菜单)意外的窗口升高。还添加了扭曲鼠标功能,并修复了内存泄漏。有关更多详细信息,请查看自述文件
现在可以在macOS上关注鼠标,在我的情况下是Mojave,可以使用chunkwm。请参阅此堆栈溢出响应以获取“不自动提高”解决方案。通过离开激活自动提高
chunkc set ffm_disable_autoraise 0
在中~/.chunkwmrc
。
编辑 2019-09-12:
chunkwm已被yabai取代。安装:
brew tap koekeishiya/formulae
brew install yabai
mkdir -p ~/.config/yabai/
printf 'yabai -m config focus_follows_mouse autoraise' >> ~/.config/yabai/yabairc
brew services start yabai
Codetek的产品可以做到这一点,但他们从未发布过Leopard或更高版本的版本。
MondoMouse可以执行跟随鼠标的操作,但是不能自动进行抬起。即使焦点跟随鼠标也坏了。例如,它不使用命令选项卡发挥出色(如果你命令选项卡到一个新的应用程序,不要触摸鼠标,那么它应该不是焦点切换回哪里鼠标指针恰好是-我可以肯定,我所见过的Linux中的每个实现都能正确实现,但MondoMouse却不能。
您可以仅对终端窗口启用焦点跟随鼠标(不自动升高)(只需在终端中执行以下操作):
defaults write com.apple.Terminal FocusFollowsMouse -string YES
对于X11 Windows同样如此:
defaults write org.x.X11 wm_ffm -bool true
(对于10.5.5之前的Mac版本,这是:
defaults write com.apple.x11 wm_ffm true
)
我不知道其他支持它的应用程序。
有趣的是,Leopard具有默认情况下启用的一种焦点跟随鼠标(自动提升)功能。滚轮可在未聚焦的窗口中工作。
不幸的是,CodeTek虚拟桌面专业版已不再开发,几年前该公司似乎已经倒闭了。
历史参考资料:http : //www.codetek.com/ctvd/ (不适用于新的OS X版本!)
历史评论:http : //www.osnews.com/story/6144
使用CodeTek虚拟桌面专业版,您可以获取“关注焦点”鼠标并禁用“自动提升”功能,并且还具有用于虚拟桌面的Pager,这与Fvwm在Linux上的工作方式类似。它确实运行完美–我曾经购买过的最好的软件。它与所有应用程序一致地工作,并且切换应用程序,将窗口移动到不同的工作区以及在工作区中进行导航比在最新的OS X版本[10.6、10.7、10.8]中实现的方式容易得多。
不幸的是,在Mac OS X 10.5上,VirtualDesktop Pro停止工作,并且苹果公司似乎积极地确保CodeTek将不会继续在其上工作。
令人遗憾的是,苹果粉碎了CodeTek及其产品-Virtual Desktop Pro确实优于当前实施OS X工作区的方式。它基本上像LINUX上的Fvwm一样工作-超快速导航-无需不必要的点击或鼠标手势...
令我伤心的是,苹果决定了窗口管理器(Finder)的行为,并且似乎不再允许第三方替换Finder。
给DwellClick一试。尽管这不是出于预期目的,但自动单击行为会产生类似于自动抬起鼠标或关注鼠标的副作用。
就个人而言,我仅在光标移动停止后才使用左键单击功能,但是还可以使用带有修饰符的单击和非常方便的窗口拖动辅助功能。
在浏览网页时,这也会让您感到沮丧,因为您要么想要禁用该应用程序,要么更注意光标停留在什么地方(例如,不要在您不想激活的任何链接或按钮上)。
解决方案:因为我习惯于在Windows中进行自动升级,所以在Mac上非常想念它。我为Mac找到的解决方案是Zooom(是,三点)。它具有自动升起功能。您甚至可以设置毫秒数以等待自动筹集。没有它就无法生存。您可以在截图中看到自动提升功能,如您在屏幕快照https://www.macupdate.com/app/mac/23203/zooom http://coderage-software.com/zooom/index.html中看到的那样
在MacOS Mojave上测试了MondoMouse(https://www.atomicbird.com/about/mac-apps)。似乎对我来说很好!
要安装该面板,将出现“不再启用系统偏好设置”> “ 辅助功能 ” 的通知。您必须在“ 安全和隐私”>“辅助功能”>“隐私”中进行设置
关于在打开的每个应用程序中允许MondoMouse的警告,但是一旦设置,它就可以正常工作!终于解脱了 :)
您实际上无法做得很好,因为Mac界面在设计时就没有考虑到焦点跟随鼠标(带有或不带有自动升高)。我怀疑这会很快改变,除非这样做,否则所有尝试实现焦点跟随鼠标的人都会遇到相同的障碍,最终结果(对于那些想要这种事情的人而言)并不令人满意。
所以,是的,你是疯了希望-但出于技术原因。习惯于按自己的方式使用Mac,我相信您迫切希望它像以前使用的任何X11东西一样运行,因为您会找到新的有效工作方式。