2009年12月13日

Firefoxの検索カスタマイズ

Firefoxで明らかにSleipnirに劣っている機能として検索バーの利便性があります。

たとえば、Sleipnirでは、検索単語の最初に決められたショートカット文字を入力すると自動的に検索エンジンを切り換えて検索してくれる機能がありますが、FireFoxではマウスか[Ctrl]+上下カーソルキーで選ばなくてはならず、検索エンジンが増減するとそのたびに場所を覚えないといけないという不便さがありました。
(一応、アドレスバーではスマートキーワードサーチという機能で、同じようなことが出来る用のですが、メインの検索エンジンじゃない時だけ、アドレスバー使うのも馬鹿馬鹿しいので・・・)

で、どうにかならないかと探ったところ下記のサイトにある「enableKeywordsSearchInSearchBar.uc.js」と言うスクリプトでSleipnirと同じ動作に出来ることがわかりました。

なお、上記のスクリプトを利用するためにはuserChrome.jsと言うプラグインなどのセットをあらかじめ準備しないと使えません。

userChrome.jsのセットアップ方法はこんな感じです。

  1. userchrome.js.xpiをインストールする
  2. ユーザスクリプトを読み込むためのサブスクリプトローダをこちらからダウンロードして「userChrome.js」という名前でFirefoxのプロファイルフォルダの「chrome\」以下に配置する
  3. 実際に動かしたいユーザスクリプトをFirefoxのプロファイルフォルダの「chrome\」以下や「chrome\SubScript」辺りに保存する
  4. Firefoxを再起動する
詳しい使い方はこちらのサイトをご覧下さい。
(ただ、このサイト、時間帯によっては全く繋がらないんですよねぇ・・・)

また、私の環境ではenableKeywordsSearchInSearchBar.uc.jsがうまく動作しなかったのですが、ちょっとデバッグしてみた結果、Tab Mix Plus(TMP)用の設定がうまく動いていなかったようなので、enableKeywordsSearchInSearchBar.uc.jsの115行目を下記のように書き換えることでTMP用の分岐に入らないようにしたらうまく動くようになりました。
(追記したのは赤字部分です)

  if (!searchBar)
    return
//  if ("TMP_SearchLoadURL" in window){ //TMP
  if (0){ //TMP
   var TMP_SearchLoadURL__keyworks = TMP_SearchLoadURL;
    TMP_SearchLoadURL = function(aData, aEvent, aWhere){
多分、正しい対応ではないと思いますが動作するようになったので、しばらくこれで試してみようと思います。

これで、検索バーでもショートカット文字による検索が出来るようになって大変便利になりました。

また、このほかにも検索履歴を表示するボタンがないと言う問題がありますが、そちらは下記のようなハックで対応できます。

まず、FirefoxのプロファイルフォルダにあるchromeフォルダにuserChrome.cssという名前で下記の内容を保存します。

/* 検索バーに履歴ボタンを表示させる */
#searchbar .autocomplete-history-dropmarker {
        display: -moz-box !important;
        -moz-binding: url("chrome://global/content/bindings/autocomplete.xml#history-dropmarker");
}
これで、Firefoxを再起動すると検索履歴ボタンが表示されるようになりますが、そのままだと検索ワードのアルファベット順で並んでしまうことがあるのでその場合は下記のアドオンを入れます。以上で個人的にFirefoxの検索バーは大変使いやすくなりました。

Posted by Takuchan at 2009年12月13日 23:39 | トラックバック(0)