c/fe

http://d.hatena.ne.jp/uzulla から移行しました。

Butlerがヤバい、Firefoxから一発で辞書を引く

http://www.manytricks.com/butler/
ButlerというOSX用アプリがすげえ便利過ぎる。

まずは小手調べ、キーバインド変更

Firefoxとかで、前のタブ、次のタブをするときはCtrl+Tab、Ctrl+Shift+tabを押す訳だが、これが結構指がつる。
そんなとき、Butlerを使ってキーバインドをかえてみた。LDR風でCtrl+A,Sでタブを移動させたい。


Butlerの環境設定のメニュー構成で、以下の様に設定する。

キーストロークを追加

「見えない項目」に右クリックで
スマートアイテム>キーストローク
を追加し、右側のインスペクタのデフォルトタイトル「キーストローク」をFx Tab Fwdなどと適当に書き換える。

キーストロークの内容を設定

「キー」タブで、
Ctrl+Tab
を同時におすと、キーストロークの登録ができる。
まちがえたら、下部の「<x」みたいなBackspaceボタンをクリックすると、削除できる。

キーストロークにホットキーを設定

次に、トリガのタブをひらき、ホットキーで
Ctrl+S
を同時におして、ショートカットを登録する。
すると、「例外:以下のアプリ[では有効ではない]」となっているので、ここを[のみ有効]として、直下のフィールドに「Firefox」と入力し、設定してあげる。

いざテスト

これで設定はOK、FirefoxでC-Sとすることで、タブが送られる事が確認出来るはずです。


同様のCtrl+AをCtrl+Shift+Tabに設定してあげれば、Ctrl+A,Sでタブが移動でき、指の疲労軽減につながりますね。

本題、Firefoxで辞書を引く

OSXには辞書.app(Dictionary.app)が標準であり、結構便利。
特に、Safariでは範囲選択してCmd+Dするだけでポップアップで辞書が引ける、これはすっごく便利なのだがCocoaアプリケーションでしかできない技らしく、Firefoxではできない。


だが、これがButlerで実現できる。

コンテナを登録する

今度はコンテナを使う。
見えない項目にコンテナを追加し、名前は「Firefoxで辞書を引く」などと設定する。
そのコンテナのトリガーには「Cmd+Shift+D」かつ、Firefoxだけで有効とする(上の方法を参照)
同じタブの「すべての内容を連続してひらく」としておくことで、この後で追加する一連のアクションが連続して実行される。

コンテナの中にキーストロークを追加

次に、コンテナ内部(子要素)にキーストロークを追加する。
今回はトリガーは不要で、キーストロークには「Cmd+C」を設定する(つまりコピーするキー操作)。
Cmd+Cの後に、ウェイトを入れてあげる、入力欄下の+をクリックして、0.5秒程度を入れておくと良い。*1

コンテナの中にAppleScriptを追加

最後にコンテナ内部に
スマートアイテム>AppleScriptAppleScript
をえらび、AppleScriptを追加する。
こちらもトリガーは設定せず、AppleScriptのコードには

open location ("dict://" & (the clipboard)) as string

と指定してあげる。

つまり何をやっているかといえば

Cmd+cでクリップボードに選択範囲をおくり、そのクリップボードの内容をDict://に送って辞書を引いているのだ。

いざ実行

Firefoxをひらき、テキストを範囲選択し、Cmd+Shift+Dをタイプする。
最初一回は連続実行してよいかと確認画面が出るが、常にOK、とすればよい。


これで自動的に辞書.appが引かれ、検索が行われる筈、すげー便利です。

開いた辞書.appはCtrl+Wなどで閉じれば、即Firefoxにフォーカスが戻ります。


欠点はクリップボードが汚染されてしまうこと

AppleScriptをがんばればできるのかもしれないけど、俺はAppleScriptさっぱりわからないので、妥協してます。
だれかがんばって下さい。

辞書を換える事だってできる、はず。

ウェブページを自動的にひらくとか、そういう事だってできるはずです。

もちろんFirefox以外でもつかえる

*1:ウェイト無しだと、自分の環境ではうまく動かなかった。