Foxy Gesturesのユーザースクリプト(User Script)自作について
参考資料の列挙と、「最後のタブを開くスクリプト」の作成方法を記載しています。
javascriptとかブラウザのユーザースクリプトに不慣れな人が、 Foxy Gesturesのユーザースクリプトを自作する際に参考に出来る記事です。
背景
Firefox 57 へのアップデートで、FireGesturesというマウスジェスチャーアドオンが使えなくなる(なんというかAPI的に互換動作が無理な物が多いらしい)ので、 Foxy Gesturesへ乗り換えてみた。
けど、Foxy Gesturesはジェスチャーに関連付けできる動作の種類が少ないので、 今回ユーザースクリプトを自作してみた。
参考にした資料
- ここが非常に詳しいです。関連する資料や「executeInBackground() 関数」が重要です。
- 公式のUser Scripts のページ
最後のタブを開くスクリプト
上述の資料を参考に「最後のタブを開くスクリプト」を作ってみました。
- 公式のユーザースクリプトの説明が少ないので、実動作で使用されている下記のコードを確認。
このファイルでデフォルトで使用できる動作の中身(スクリプト)があります。 今回はそれの 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とか、ユーザースクリプトに不慣れな自分は、この様にして スクリプトを自作できたので、残しておきます。