当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《在MacOSX上关注跟随鼠标(加上自动加注)》经验,为你挑选了12个好方法。

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

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



1> Clint Ecker..:

您可以通过在命令行发出以下命令来为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虚拟桌面的程序,它将在系统范围内模拟它,但它的成本为$$(并且他们从未获得OSX Leopard的版本).


iTerm2具有内置的此功能...在首选项中,选择指针选项卡,在底部向下是"焦点跟随鼠标"选项.它甚至可以从目前活跃的应用程序中获取焦点(即,说您的浏览器是活动应用程序,并且您正在键入浏览器字段...鼠标进入iTerm2窗口并且您的输入显示在那里,鼠标移出并且它会返回到您的浏览器或其他活动应用程序).
附录:为终端设置此选项,如果您将鼠标悬停在终端窗口上,即使是在另一个应用程序中,也可以使用它!因为对我来说,这是我可能真正想要使用它的主要原因,这使得它成为99%的答案!巨大的投票!(好吧,我已经做过了,但如果可以,我会再做一次.)

2> John Milliki..:

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


他似乎没有提出他写的代码:(
这很有意义。令我烦恼/困扰的一件事是,滚动行为似乎确实没有重点。因此,我可以将鼠标移到另一个窗口,滚动文本,然后在我开始键入内容时,输出将转到另一个应用程序。

3> calum_b..:

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

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

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


和其他人一样,几年前我就是老式的X-Windows转向Mac.而且和其他人一样,这一个问题继续让我陷入困境.不得不点击一个窗口让它集中,然后让它自动升到顶部是不好的.(我正要写出像'疯狂'这样的词,但我决定不会超过这个词.)
@Calum:对不起,但我不同意.我在Mac OS X上使用了Focus-Follows-Mouse(使用CodeTek Virtual Desktop Pro),它运行得非常好!它与所有应用程序保持一致,切换应用程序,将窗口移动到不同的工作区,导航工作区比在最新的OS X [10.6.7]中实现它更容易.令人遗憾的是,Apple粉碎了CodeTek及其产品 - Virtual Desktop Pro确实优于OS X工作区的实施方式.它的工作基本上就像在LINUX上的Fvwm - 超快速导航.
关于菜单栏的完全公平的点虽然标准延迟但在实践中对我来说不是问题.
这只是原因之一*OS X中*分离的顶级菜单栏*是我见过的最离奇,最荒谬的UI想法之一.无论谁提出那个都需要涂焦油和羽毛.
@Calum:我现在无法真正测试它,因为我的Mac没有运行10.4或更早,但如果我没记错,应用程序会在几分之一秒后切换,菜单栏会相应切换
@Nate我同意它现在有它的问题,但它在1984年第一次出现在Mac上时是一个非常好的系统.但在那些日子里,屏幕只有9英寸,因此鼠标移动距离不是问题,你可以一次只运行一个应用程序(桌面配件除外),直到MultiFinder三年后出现.
@Nate如果您使用鼠标,轨迹球或触摸板作为指点设备(基本上不是触摸或笔),屏幕边缘特别容易到达位置,因为您可以在菜单的大致方向上简单地"过冲" item和你的指针将在它上面停止.注意菜单项的热点如何与屏幕的上边缘相互齐平.

4> dvj..:

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

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

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

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



5> Kyle Rose..:

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

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


这将是辉煌的。焦点跟随鼠标的要点之一是使键盘焦点移至其他窗口,而不必显式单击它们,因此按焦点聚焦应该做正确的事情。有什么实现吗?

6> wprl..:

紫水晶支持此功能.它可以很容易地安装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
}


如果有人发现"焦点跟随鼠标_无需自动"功能,我想听听它.与此同时:@JasonR.Coombs [你更新的〜/ .amethyst设置](http://paste.jaraco.com/iwSBT)为我工作 - 非常有帮助,谢谢.
配置文件中存在多个语法错误.我已经纠正了这些并粘贴了它们[这里](http://paste.jaraco.com/iwSBT).
我试过紫水晶,它解决了OP的问题.它似乎不支持变焦Focus Follows Mouse _without_ Autoraise.
您无需手动修改配置文件.您可以在紫水晶首选项中启用此功能.名称是Focus跟随鼠标(实验).

7> sbmpost..:

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

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


逾期未到,但是可以在这里找到此东西的来源:https://github.com/sbmpost/AutoRaise
你可以编辑以前的帖子吗?对一个帖子中的一个特定应用程序进行投票比使用不同版本的多个帖子更清晰,更容易.
感谢您使用该工具,效果很好.如果你开源它会很棒!

8> dreeves..:

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> mcotton..:

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

MondoMouse


我尝试了MondoMouse,但是如果我启用了focus-follow-mouse,它会自动提升窗口.自动加注对我来说很烦人,它会大大降低我的工作效率.是否可以在没有自动加注的情况下获得焦点跟随鼠标?

10> asselinpaul..:

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



11> cksubs..:

有趣的是,Leopard默认启用了一种焦点跟随鼠标(无人机自动).滚轮在未聚焦的窗口中工作.


这是Leopard的一项新功能.Daring Fireball对于一些小部件/窗口如何点击聚焦以及其他小部件无法点击激活小部件有很多内容.所以它肯定不一致.

12> Les Grieve..:

现在可以在macOS上关注鼠标了,在我的情况下,可以使用chunkwm在Mojave中进行鼠标操作。请参阅此堆栈溢出响应以获取“不自动提高”解决方案。通过离开激活自动提高

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

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有