タブ整理の為のchrome拡張機能

chrome.google.com

開発動機

私はいつもこんな感じで開いたタブを整理しています。

  1. まず溜っているタブから適当に1つ選び、何を調べていた時のものか思い出す

  2. 1つのタブだけで思い出せなければ、前後のタブも見る

  3. 思い出せれば、タブの並びや、ページタイトルなどから近くの不要なタブを判断する

この時点で判断が付けば1つ1つのタブを開かずに整理が出来るのですが、大量にタブを開いているとページタイトルは全く見えなくなり、結局1つ1つタブを開く羽目になります。 この時にタブがサスペンド状態だったりしたら、閉じる為にサスペンド状態を戻すことになり、何となく無駄な感じが否めません。

そこで丁度Elmで何か作ってみたい、というのもあったので拡張機能を自分で作ることにしました。

機能

  • 全ウィンドウ、タブを一覧で見える
  • タイトル、URLでタブを検索できる
  • タブをまとめて削除できる
  • タブをまとめて別ウィンドウに移動できる

以下ライブラリを利用することでfirefoxでも動作します。 github.com

Elmについて

qiita.com

ここを参考に作りましたが拡張機能作成という点において、Elmであることで極端に作成しづらいということはなかったです。 当然ながらAPIを呼び出す時にPortsを介さないといけないというElm特有の点はありますが、それ以外の点で(気付いていないだけかもしれませんが)特に面倒な点はありませんでした。

  • ネストしたrecordの更新
  • モジュール分割方法

他にも分からないことが多々ありますが、Elmアーキテクチャに沿って開発をすることで一貫性を保ち易いのではないかと感じました。 またreactやvueに比べると変化のスピードもそこまで早くないので、学習したことがすぐに陳腐化することもないのではないでしょうか。 今後も機会を見つけ利用したいです。

試した拡張機能

そもそも大量のタブが開かないようにする、タブを開ける数を制限する拡張機能を試しました。ただ、本来の作業(調べもの等)をしている最中に別の作業(タブの数を調整)が割り込んでくることになり、その点が煩わしくなり、使うのを止めました。

タブのリスト化をしてくれる拡張機能で OneTab を使ったのですが、一旦タブを全て閉じるという挙動がイメージに合いませんでした。あと、簡単に開いているタブを保存できる/しちゃうことで、整理するタイミングを失い、そのままタブを死蔵させそうな気もしました。