web-dev-qa-db-ja.com

Mac OS XのFocus-follows-mouse(プラス自動レイズ)

(私はそれがいかにクレイジーかについて聞きたくありません!:)

Focus-follows-mouseは、ポイントツーフォーカス、ポインターフォーカス、および(一部の実装では)ずさんなフォーカスとしても知られています。 [これを検索可能にする他の用語を追加してください!] Xマウス

152
dreeves

コマンドラインで次のコマンドを発行して、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用のバージョンはリリースしていません)。

71
Clint Ecker

Steve Yegge しばらく前にこれについてのエッセイを書いたが、そこで彼は適切な拡張子を書こうとして失敗した。それ以来、OS X用のフォーカス-フォロー-マウスアプリケーションを見つけようとして失敗しました。

56
John Millikin

Focus-follows-mouseは、メニューバーが画面の上部にあるように設計されているため、OS Xに特に適した入力方法ではありません。アプリケーションウィンドウの外にマウスを移動してメニューに移動すると、途中で他のアプリケーションのウィンドウと交差すると、メニューが変更されます。

はい、そうです、dreevesのコメントへの返信で、Terminal(またはデスクトップ上の他の単一のアプリケーション)で完全に機能します。影響を受けるのはTerminalウィンドウだけなので、ウィンドウを切り替えてもメニューは変わらないからです。 X11アプリは通常、ウィンドウにメニューバーが埋め込まれているため、X11で正常に機能します。したがって、アクセスするためにウィンドウを離れる必要はありません。

もちろん、フォーカスが変更されたりメニューが切り替わる前に人為的な遅延を導入することで、メニュー変更の問題を回避できますが、他のデスクトップと同様に機能することはありません。

48
calum_b

これは完全なソリューションにはほど遠いですが、OSX(10.11)に組み込まれている2つの便利なアクションは次のとおりです。

⌃⌥-クリック(control-option-click)-ウィンドウを上げることなくフォーカスを切り替えます

⌘-click(command-click)-フォーカスを切り替えずにウィンドウをクリックします

これらのショートカットがいつ導入されたかはわかりません。どこにも書かれたものを見つけることができなかったからです。

39
dvj

Amethyst はこの機能をサポートしています。 brew cask install amethystで簡単にインストールできます。

これが私が使用する設定ファイルです。 focus-follows-mouse以外のすべての機能をオフにします。 ~/.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
}
15
wprl

メニューの問題は、従来のフォーカス-フォロー-マウスが機能しない唯一の理由です。

代替手段は次のとおりです。キーボードのキーが押されるまでフォーカスを変更しないでください。これはfocus-follows-mouseのユースケースの95%をカバーし、この古いcurmudgeonly Xユーザーを本当に幸せにします。 ChromeでWebページを何回スクロールするかわからないので、Command-Tを押して新しいタブを開き、代わりにターミナルで開いているタブを見つけます。私の脳がMacを使って8ヶ月たってもこれに気がつかなかったら、決してそうならないでしょう。

13
Kyle Rose

そこで、MouseFocus.appで行ったいくつかの欠陥のある作業を再度改善することにしました。これらは現在修正されています。このツールの機能をよりよく反映するために、すべてを「AutoRaise」に名前変更しました。ウィンドウにカーソルを合わせると、ウィンドウが前面に(選択した遅延で)表示され、フォーカスを取得します。ツールは here からダウンロードできます。使用するには、/ Applications /フォルダーにコピーして、実行可能であることを確認します(chmod 700 AutoRaise)。次に、Finder内からダブルクリックします。すばやくオン/オフを切り替えるには、以下のapplescriptを使用して、オートマトンserviceワークフローに貼り付けます。次に、システム環境設定|キーボード|ショートカットを使用して、作成したサービスをキーボードショートカットにバインドします。

更新(2017/03/29):AutoRaiseバイナリが更新されました。コマンドラインで遅延が指定されていない場合、同じフォルダーでAutoRaise.delayファイルも検索します。 「起動アプリケーション」はコマンドライン引数をサポートしていないため、これは以下のapplescriptを使用する場合に特に便利です。遅延は50ms単位で指定する必要があります。たとえば、150msの遅延を指定するには、ターミナルで次のコマンドを1回実行します。「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

更新(18-04-2019):ソース https://github.com/sbmpost/AutoRaise

9
sbmpost

私は現在MondoMouseを使用していますが、その癖があっても、それなしではMacを使用できませんでした。彼らは無料の試用版を持っています、そして私は皆にそれを勧めます。

モンドマウス

8
mcotton

Codetekにはこれを行う製品がありましたが、Leopard以降のバージョンはリリースしていません。

MondoMouseは、フォーカスフォローマウスを並べ替えることができますが、自動レイズはできません。しかし、フォーカスフォローマウスでも壊れています。たとえば、コマンドタブではうまく動作しません(新しいアプリケーションにコマンドタブを押してマウスに触れない場合は、notマウスポインタが発生する場所にフォーカスを戻す必要がありますあること-私が見た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

それをサポートする他のアプリケーションは知りません。

7
dreeves

chunkwmもこれをサポートしています(デフォルトでは信じています): chunkwm

6
asselinpaul

興味深いことに、Leopardには、デフォルトで有効になっているフォーカスフォローマウス(オートレイズ)のフレーバーが1つあります。スクロールホイールは、フォーカスのないウィンドウで機能します。

5
cksubs

残念ながらCodeTek Virtual Desktop Proは開発されておらず、数年前に会社は廃業したようです。

歴史的なリファレンス: http://www.codetek.com/ctvd/ (新しいOS Xバージョンでは動作しません!)

歴史的レビュー: http://www.osnews.com/story/6144

CodeTek Virtual Desktop Proを使用すると、Focus-Follow-Mouseを取得し、Auto-Raiseを無効にすることができました。また、LinuxでFvwmが機能するのと同様に、仮想デスクトップ用のページャーもありました。それは本当に完璧に動作しました-私が今まで買ったソフトウェアの最高の作品。すべてのアプリで一貫して機能し、アプリの切り替え、ウィンドウの異なるワークスペースへの移動、ワークスペースのナビゲートは、最新のOS Xバージョン[10.6、10.7、10.8]での実装よりもはるかに簡単に機能しました。

残念ながら、Mac OS X 10.5 VirtualDesktop Proでは動作が停止し、Apple CodeTekが動作を継続しないことを積極的に確認したようです。

AppleがCodeTekを粉砕し、その製品-Virtual Desktop Proは、OS Xワークスペースの現在の実装方法よりも本当に優れていました。クリックまたはマウスジェスチャ...

Appleはウィンドウマネージャ(Finder)の動作を指示し、サードパーティによるFinderの置き換えを許可しないようです。

4
Tilo

DwellClick を試してください。意図された目的ではありませんが、自動クリック動作には、自動レイズまたはフォーカスフォローマウスに似た副作用があります。

個人的には、カーソルの動きが止まった後に左クリックの機能を使用しますが、モディファイアを使用したクリックや、非常に便利なウィンドウドラッグアシストもあります。

また、アプリを無効にするか、カーソルが置かれている場所(たとえば、アクティブにするつもりのないリンクやボタンではない)を意識する必要があるため、Webブラウジング中に少しイライラします。

3
Ben M

また、クリックで発生する関連問題もあります。 OSXでは、ウィンドウがクリックされるたびに、ウィンドウも上げられ、潜在的に他のウィンドウを非表示にします。これは、そのうちの1つが画面のほとんどをカバーする2つのウィンドウからコピー/貼り付けを行う場合に問題となります。グローバル(すべてのワークスペースでアクティブ)メモ帳を保持して、そこからコピー/貼り付けを行います(コマンド、テキスト、todoアイテムなど)。これは、OSXでは困難です。クリックでレイズを無効にするオプションがあると便利です。

3
sfar

chunkwm を使用して、macOSではMojave、マウスではフォーカスがマウスに追従するようになりました。 「オートレイズなし」ソリューションについては、 this Stack Overflow responseを参照してください。オートレイズは、退出することでアクティブになります

chunkc set ffm_disable_autoraise         0

~/.chunkwmrc

2
Les Grieve

これらのオプションを試してみると、Command-Tabが奇妙に動作し始めました。アプリに再びフォーカスを与える方法のソリューションは次のとおりです。

以前の機能、つまりターミナルのウィンドウフォーカスがマウスの動きに応じて変化する機能は10.6で壊れており、Command-Tabがウィンドウフォーカスを正しく転送しないようです。問題を修正するには、次のコマンドをターミナルに貼り付けます。

デフォルトはcom.Apple.Terminal FocusFollowsMo​​use -string NOを書き込みます

次に、ターミナルを再起動します。

1
Team Pannous

解決策:私はWindowsでオートレイズに慣れていたので、Macで見逃しました。私がMac用に見つけた解決策はZooomです(はい、3つあります)。オートレイズ機能があります。オートレイズの前に待機するミリ秒を設定することもできます。それなしでは生きていけない。スクリーンショットでわかるように、オートレイズは環境設定のオプションです https://www.macupdate.com/app/mac/23203/zooomhttp://coderage-software.com /zooom/index.html

1
Gary Kaputnik

MacOS MojaveでMondoMouse( https://www.atomicbird.com/about/mac-apps )をテストしました。私にとってはうまくいくようです!

Prefpaneをインストールするには、「アクセスしやすいデバイスへのアクセスを有効にする」という通知があります。これは、System Preferences> Accessibilityにはありません。Security&Privacy> Accessibility> Privacyで設定する必要があります

開いている各アプリでMondoMouseを許可することについていくつかの警告が表示されますが、一度設定すると正常に動作します!なんて安心:)

0
MaltaCode