suna/Firefox上の操作をキーボード入力で完結させる拡張機能諸々を作った

Created Fri, 31 Dec 2021 16:52:22 +0900 Modified Tue, 04 Oct 2022 01:39:33 +0000
2307 Words

Firefox上の操作をキーボード入力で完結させる拡張機能諸々を作った

拡張機能

諸々

拡張機能 + 諸々によって Firefox上の操作をキーボード入力で完結させることができる。

目次

誘い

Webブラウジングがキーボードの操作だけで完結してくれると心地良い!

拡張機能

vimode

⚠️
キーボードショートカットの競合はなるべく避けるよう意識したつもりですが、完全に避ける事は当然に不可能です。
(余談ですが、vimode のような拡張機能は、ブラウザベンダが想定している「王道」ではなく「邪道」な拡張機能です。)
また、vimode が機能しては困るサイトも出てくると思います。(タイピングサイトなど)
そのようなサイトでは、vimode を機能させないように なるべく共通の特性でフィルターを掛けていますが、
共通の特性の無いWebサイトに対しては、個別の対応はしていません。(対応予定もありません。)
vimode が機能して困る場面で「拡張機能を無効」、必要な場面で「拡張機能を有効」という運用を想定しています。

まずは中核。
キーボードショートカットを提供する Firefox Add-on である。

コンセプトは以下の通りである。

  • キー入力の組み合わせは2つ以下
  • 主要な操作はキー入力の組み合わせを必要としない
  • 標準のキーボードショートカットを可能な限り邪魔しない
  • どこかvi,vimらしい操作感
  • vi,vimの操作感に寄り過ぎない
  • どこか標準のキーボードショートカットを更に短縮している操作感
  • 必要最低限のパーミッション要求

あとは、Demoで感じていただきたい。
操作方法はvimode#vi-like-operationsを参照されたい。
demo_vimode

諸々

searchmode

続いて vimodeのトップページ。
これは至極シンプルなWeb検索トップ画面で、検索エンジンの切り替えができるようになっている。

vimodeの キーo で開くようにしており、vimodeの機能の一部としての位置付けとなる。
ただし、独立したWebページにしているため(※1) 単体での利用もできる。
動的にDOM操作を行う 数多の検索トップ画面の気持ち悪さから 多少なりとも開放されるのかもしれない。
(※1) 組込みページは 拡張機能が無効になる仕様が存在するため、独立したWebページにしている。

先述の通り これはvimodeのトップページで、
vimodeとシームレスに繋がるよう ページ内にキーボードショートカットを用意している。

あとは、Demoで感じていただきたい。
操作方法はsearchmode#keyboard-shortcutsを参照されたい。
demo_searchmode

mousemode

⚠️
Repository を Public から Public archive へ変更しました。
私が、X Window System から Wayland へ移行したためです。

また、dependencies の mouse_rs の dependencies の stdweb は2019年10月に開発を停止しています。
ご利用の際は、ご留意いただけますと幸いです。
koute/stdweb - https://github.com/koute/stdweb

ついでに余談ですが、mousemode 的アプローチは お遊び程度のご利用をお勧めします。
手元に「赤ポチ」がある方は、そちらをご利用された方が幸せになれると思います。

ページ内のリンクをクリックするために Tabを連打して目的のリンクにフォーカスを合わせなければいけない?
その心配は無用、マウス操作もキーボード操作に組み込んでしまえば良い。
あなたはTabを連打する必要も無いし、リンク属性に付与された小さなアルファベットに目を凝らす必要も無い。

あとは、Demoで感じていただきたい。
インストール方法・操作方法はmousemode#mousemodeを参照されたい。
demo_mousemode

おわり

「マウスを排す」というよりは、可能な限り「既存との共存」を目指した。

ここまで試していただいた方は、Firefoxをキーボードだけで ある程度自在に操作ができるようになったのではないだろうか。

合う・合わない は承知の上、
私と似た感覚を持つ方が 1人2人...はどこかに存在するのではないかと思い 公開をした。

数あるオペレーションの一つ として楽しんでいただければ嬉しく思う。

余談1

本記事の公開までを含めると それなりの労力が掛かっている。
構想・初期学習・周辺準備・開発・テスト・ドキュメント作成・デモ撮影・記事作成…。
ここまでの一連の道のりを経た時、OSSの在り方を考えさせられた。
やる・やらない も自由な世界。
通常の思考であれば 「やらない」に傾く。
しかし それが通常となってしまっては OSSの持続性 に 陰り が出てきそうだ。

余談2

何かの操作をキーボードだけで制御している時はそこそこ心地が良いものだ。

脳で現実世界を制御している感覚に浸ることができるからだ。
大なり小なりあれどそこそこ心地が良いものだ。

何かがWebブラウザとした場合、脳で現実世界を制御している感覚を阻害する要因がある。
そう、マウス操作だ。
誤解して欲しくないのは、マウスは悪く無い点である。

キーボードとマウスの両方を扱っている場合、脳からの伝達がそれぞれに分岐する。
この分岐してしまう点が脳で現実世界を制御している感覚を阻害する要因と考えている。

この脳からの分岐問題は どちらかに操作を寄せてしまえば解決する。
どちらに寄せるか・・文字入力が必要な点で キーボードが妥当な選択だろう。
スクリーンキーボードは どうも分が悪い。

キーボードに操作を寄せると決まったところで、キーボードでどのように操作を実現するか。
既存のショートカットを使う?

うーん・・・一部は使えそう。
しかし、使いたいショートカットは それ自体が脳で現実世界を制御している感覚を阻害する要因になりそうだ。
キー入力は簡単に直感的に・・・馴染み深いキーバインドに・・・。

・・・そうか、そういうことか。