WEBサービス創造記

WEBサービスを作ったり保守したりしてる人のメモブログです。

FirefoxのキーバインドをJavaScriptを利用して変更する

      2012/12/18

Greasemonkeyのインストール

UbuntuやFedoraのFirefoxでは、 Ctrl+[ と Ctrl+] でブラウザの履歴を戻ったり進んだりできますが、WindowsのFirefoxでは Alt+← と Alt+→ に設定されています。
個人的にはLinux版のキーバインドの方が使い易いのでカスタマイズしようと思ったのですが、Firefoxはデフォルトでショートカットキーの変更はできないようです。

Firefox はキーボードショートカットのカスタマイズ機能を提供していません。

Firefoxの有名なアドオンで、JavaScriptによるユーザーサイドスクリプトを実行できる Greasemonkey というものがあるので、それを利用して上記キーバインド変更を実現出来るか試してみました。

Greasemonkey は “ツール → アドオン → アドオンを入手”から検索し、インストールできます。

ユーザスクリプトの作成

Greasemonkey をインストールすると、Firefoxのステータスバーに猿のアイコンが表示されます。
このアイコンに色がついている状態だと Greasemonkey は有効で、白黒で表示されている状態だと無効になっています。有効無効は左クリックで切り替えることができます。

自作のスクリプトを登録する場合は、 Greasemonkey のアイコンを右クリックし、”新規ユーザスクリプト”を選択します。
“新規ユーザスクリプト”をクリックするとポップアップが出てきます。
項目はそれぞれ以下の通りなので、適宜入力します。

Name スクリプトの名前
Namespace 他の作者が同じNameのスクリプトを作っていた場合,ここでそれぞれを区別します.普通は自サイトのドメインを入れておけばいいみたいです.無ければ空でもOK
Description スクリプトの説明文です
Includes (One per line) スクリプトを適用するサイトです.ワイルドカード”*”が使えます.一行ずつ別のサイトを書けます.デフォルトでは新規追加ダイアログボックスを表示した時点で表示していたウェブページのURLが入ります.
Excludes (One per line) スクリプトを適用しないサイトです.Includesの条件を絞り込むのに使いそうです.

入力すると、エディタが起動するのでスクリプトを記述して、保存します。
初回起動時のみ、スクリプト編集に仕様するエディタのフルパスの入力を求められますが、後でエディタを変更したい場合は下記の手順で再設定します。

1. ロケーションバー(アドレスバー)に「about:config」と入力する
2. 設定名「greasemonkey.editor」の値を使うテキストエディタのフルパス名に変更する

ここでは下記のようなスクリプトを記述しました。

historyshortcutkey.user.js
// ==UserScript==
// @name           HistoryShortcutKey
// @namespace      linuxserver.jp
// @description    Ctrl+[ / Ctrl+]
// @include        *
// ==/UserScript==

document.addEventListener("keydown", function(event){
    if (event.ctrlKey && event.keyCode == 219) {
        history.back();
    }
    if (event.ctrlKey && event.keyCode == 221) {
        history.forward();
    }
}, true);

また、GreaseMonkey のユーザスクリプトは “%APPDATA%\Mozilla\Firefox\Profiles\xxxxxxxx.default\gm_scripts” に保存されています。

ファイルを保存後、ステータスバーの GreaseMonkey のアイコンを右クリックしスクリプトが有効になっている事を確認し、動作チェックを行って完了です。

 - JavaScript , ,