Foxy Gesturesのユーザースクリプト(User Script)自作について

参考資料の列挙と、「最後のタブを開くスクリプト」の作成方法を記載しています。

javascriptとかブラウザのユーザースクリプトに不慣れな人が、 Foxy Gesturesのユーザースクリプトを自作する際に参考に出来る記事です。

背景

Firefox 57 へのアップデートで、FireGesturesというマウスジェスチャーアドオンが使えなくなる(なんというかAPI的に互換動作が無理な物が多いらしい)ので、 Foxy Gesturesへ乗り換えてみた。

けど、Foxy Gesturesはジェスチャーに関連付けできる動作の種類が少ないので、 今回ユーザースクリプトを自作してみた。

参考にした資料

最後のタブを開くスクリプト

上述の資料を参考に「最後のタブを開くスクリプト」を作ってみました。

公式のユーザースクリプトの説明が少ないので、実動作で使用されている下記のコードを確認。

このファイルでデフォルトで使用できる動作の中身(スクリプト)があります。 今回はそれの function commandNextTab (data) を参考に以下を作りました。 let index の右辺を (tabs.length - 1) にかえただけです。

executeInBackground(() => {
    getCurrentWindowTabs().then(tabs => {
        let active = tabs.find(tab => tab.active);
        if ((active.index === (tabs.length - 1)) && !modules.settings.nextTabWrap) {
            return Promise.resolve();
        } else {
            // Transition the gesture into the new tab using state cloning.
            let index = (tabs.length - 1) % tabs.length;
            let next = tabs[index];
            return transitionGesture(active, next, data.cloneState)
              .then(() => browser.tabs.update(next.id, { active: true }));
        }
    });
}, []);

このコードを、Foxy Gesturesのアドオン設定のUser Scriptに設定して、ジェスチャーを割り当てれば終了。

javascriptとか、ユーザースクリプトに不慣れな自分は、この様にして スクリプトを自作できたので、残しておきます。