Chrome でカレントタブの右隣に新規タブを開く

はじめに

Firefox を長年使い続けています。ですが、 Chrome / Edge を使うこともあります。 Chrome の長年の不満の1つは、タブを開く挙動が Firefox と異なる点です。

カレントタブから2つ以上タブを開く挙動が次のように異なります。
Chrome は、 [カレントタブ][1つめ][2つめ] の順にタブを開きます。
Firefox は、 [カレントタブ][2つめ][1つめ] の順にタブを開きます。

カレントタブの右隣には、最後に開いたタブがあってほしいのです。これを実現する拡張機能を長年待ち続けましたが、ついぞこの機能を実現する拡張機能を見つけることができませんでした。

そこで、今回重い腰を上げて拡張機能を自作することにしました。


後で気付いたことですが、上記の動作は、 Firefox 標準の動作ではありませんでした。Firefox の標準動作は、 Chrome 同様の動作のようです。ですが、拡張機能(Sidebery)の設定によって、上記の動作を実現していたようです。(Sidebery の Chrome 版は、存在しません)

Sidebery
Position of new tab
Place new tab opened from another tab
[last child] -> [first child]

既存の拡張機能

類似の機能を調べると次の拡張機能が多くのユーザーを抱えていることがわかりました。

これらの拡張機能は、上記の目的の動作を実現できます。ただし、副作用としてカレントタブ以外からの新規タブ(ウィンドウ・ブックマーク・履歴など)がことごとくカレントタブの右隣で開きはじめます。これは、目的とする拡張機能ではありません。

作成した拡張機能

次の拡張機能を作成しました。

この拡張機能は、カレントタブから作成された新規タブをカレントタブの右隣に開きます。

この拡張機能は、次の動作を実現します。

  • カレントタブからの新規タブは、カレントタブの右隣に開きます。
    • 2つめ以降の新規タブも、カレントタブの右隣に開きます。
    • ピン留めタブからの新規タブは、最後のピン留めタブの右隣に開きます。

そして、次の動作に影響を受与えないよう制御します。

  • ウィンドウからの新規タブは、ウィンドウの右端に開きます。
  • ショートカットからの新規タブは、ウィンドウの右端に開きます。
  • ブックマークからの新規タブは、ウィンドウの右端に開きます。
  • タブコンテキストメニューからの新規タブは、カレントタブの右隣に開きます。
  • 閉じたタブ・ウィンドウを元の状態で復元します。

※他の拡張機能または設定と干渉する場合は、この限りではありません。

これで、使い慣れたタブ挙動を実現できます。

不思議なことは、この拡張機能があまりにも単純なことです。コード本体が100行に満たないほどです。誰かが既に作成していたとしても不思議ではありません。ちゃんと探せば同じ機能を持った拡張機能が見つかるかもしれません。ただ、これで個人的には満足です。あのわずらわしさから開放されます。

備考:ソースコード

コードは、次の GitHub でも確認できます。

備考:動作について

拡張機能の開発に伴って理解したことですが、「カレントタブの右隣に新規タブを開く」は、正確ではないようです。正確には、「親タブの右隣に新規タブを開く」が正しいようです。

「カレントタブの右隣に新規タブを開く」だと、「新規タブを開く動作」と「左右へのタブ移動」を同時に行うと問題が発生する可能性があります。カレントタブがタイミングの関係から変化してしまい、意図した動作とならないことがあります。「親タブ(過去のカレントタブ)の右隣に新規タブを開く」であれば、この問題は発生しません。ただし、この問題が発生する可能性は極めて低いため、実際のところどちらの動作でもたいした影響はありません。