タブ(Tab)はGUI(Graphical User Interface)の一種で、1つのウインドウ上に複数のウインドウを持つことができる機能だ。「タブ機能」「タブウインドウ」「タブユーザーインタフェース」などとも呼ばれる。タブを持つアプリケーションは、通常ウインドウ上部に表示されるタブと呼ばれるUIによって複数のウインドウを管理する。タブごとに分けられたウインドウは、対象のウインドウに紐付いたタブをクリック、またはショートカットキーによって選択することで表示が切り替えられるようになっている。

Windows TerminalのタブUI

1つのウインドウ上でいくつものアプリケーションを利用できるのが、タブの最大の利点と言える。Windows Consoleを使用しつつWSLで複数のLinux環境も同時に利用する場合、タブ機能がないとそれぞれ専用のターミナルアプリケーションをデスクトップ環境に立ち上げて操作しなければならない。限られたスペースしかないデスクトップ環境上で複数のターミナルアプリケーションを立ち上げれば、その分並行して利用するアプリケーションの閲覧や操作がしづらくなる。

また、単純に、離れたウインドウの切り替えよりもタブの切り替えのほうが素早く作業できるといったメリットもある。複数のアプリケーション上で並行作業で行わなければならない作業において、タブは作業効率の向上に貢献するのだ。

リソースが少ないデスクトップ環境で多くのアプリケーションを同時に利用できるタブ機能だが、デメリットもいくつか存在する。例えば、1つのウインドウに多くのタブを作ると、どのタブでどの作業を行っているのかわかりにくくなり、逆に作業効率が下がってしまう可能性がある。また、使わなくなったタブを残したままにすることで、無用なリソースの消費が発生する点なども挙げられる。

ただし、これらのデメリットがあってもなお、現在のGUIアプリケーションにおけるタブ機能の必要性は非常に高い。それは、UNIX系OSやMacOS向けに提供されているGUIアプリケーションの多くに採用されていることからもわかる。また、多くのターミナルアプリケーションでは標準実装されており、Windows Terminalもプレビュー版であるにも関わらず、すでにタブ機能が搭載されている。こうしたことからも、特にターミナルアプリケーションにおいては大事な機能の1つであると言えるだろう。

Windowsアプリケーションはタブが少ない

UNIX系OS向けに開発されているGUIアプリケーションは、タブ機能を提供していることが多い。しかしながら、これがWindowsとなるとタブ機能を搭載している標準のアプリケーションは少ない。Windows 10のデフォルトブラウザである「Edge」はタブ機能を備えてはいるが、エクスプローラやメモ帳などにはタブ機能はない。もちろん、標準のターミナルアプリケーションである「Windows Console」も同様だ。

タブ機能を持つWindowsのデフォルトブラウザ「Microsoft Edge」

Microsoftはこのような状況に対して何もアクションを起こさなかったわけではない。2017年、Microsoftは「Sets」と呼ばれる機能をWindows 10向けに開発中であることを発表した。Setsは単一のウインドウ画面で複数の異なるアプリケーションをタブ管理できるようにするUIだ。Setsを使えば、Microsoft Officeやエクスプローラ、Windows Consoleなどの異なるアプリケーションを1つのウインドウにまとめ、タブごとで操作できるようになる。

この機能が正式にWindowsに追加されれば、Windows Consoleにタブ機能を実装する必要がなくなるわけだが、残念ながら現在のところ、この取り組みは開発が頓挫してしまっている。開発の再開は発表されていないが、次期WindowsにSetsのような機能が搭載されるかもしれない。

タブを使ってみよう

実際にWindows Terminalのタブを使ってみよう。タブ機能を有するブラウザを利用したことがあるユーザーであれば、Windows Terminalのタブも直感的に操作できるだろう。

Windows Terminalを立ち上げると、まずはPowershellウインドウとして起動する。ウインドウ上部がタブバーとなっており、タブを追加するとタブバー内に新たなタブが表示され切り替わるようになっている。タブ内にはタブタイトルが表示され、標準ではPowershellであれば「Windows Powershell」、コマンドプロンプトであれば「cmd」、WSLであれば対象のLinuxのユーザー名@ホスト名とカレントディレクトリとなっている。

タブの追加は、タブバーに表示されるタブの右側に新規タブを追加する「+」アイコン、またはそのさらに右側にあるドロップダウンメニュー用の「∨」アイコンから行える。「+」を選択するとタブの最右側に新たなタブが追加され、追加したタブに切り替わってPowershellが新たに起動する。

「+」アイコン(左)と「+」で追加したタブ(右)

PowershellではなくコマンドプロンプトやWSLを新規タブとして追加したい場合は、”∨”アイコンを選択する。”∨”をクリックすると使用しているWindows環境内でWindows Terminalで扱えるアプリケーションが表示される。例えばメニュー内にあるUbuntuを選択すると追加したタブに切り替わり、Ubuntuが操作できるようになる。

「∨」で表示したプルダウンメニュー(左)と追加したUbuntuタブ(右)

タブはドラッグ&ドロップで移動させることができる。移動させたいタブ上にマウスカーソルを持っていきドラッグ&ドロップで左右に動かすと対象の場所に移動させることができる。 またタブの数がウインドウ幅よりも多く、表示しきれなくなった場合にタブバーにスクロール機能が表示され、スクロールして表示をずらすことができるようになっている。追加したタブを削除するには、各タブタイトルの右に表示されている「☓」アイコンをクリックすればよい。

UbuntuタブをPowershellタブの間に移動

タブ数がウインドウの幅によって表示できなくなった場合にスクロールが可能に

今回紹介したタブには、ショートカットキーも用意されている。標準で提供されているタブ用のショートカットキーは次のようになっている。「Ctrl」+「Shift」+「数字」キーで追加できるタブは、プルダウンメニューで確認できる。「Ctrl」+「Alt」+「数字」キーは、一番左のタブからインデックスとして数字キーが割り当てられている。例えば、左から2番目のタブに切り替えたい場合のショートカットは「Ctrl」+「Alt」+「2」キーといった具合だ。

キー操作 内容
Ctrl-Shift-t タブを追加
Ctrl-Shift-数字キー タブを追加
Ctrl-Tab 次のタブに切り替え
Ctrl-Shift-v 前のタブに切り替え
Ctrl-Shift-Space プルダウンメニューを表示
Ctrl-Alt-数字キー 特定のタブに切り替え

プルダウンメニューでショートカットキーを確認できる

タブを有効に活用しよう

Windows Terminalは公開当初からタブ機能を提供している。当初のタブは機能が貧弱で改善すべき点が散見されていたが、徐々に扱いやすくなってきている。Windows TerminalのタブUI周りにはWinUIライブラリが採用されており、執筆時現在のバージョンではWinUI 2.2のTabView機能をWindows Community Toolkitを使って実現している。

執筆時現在のタブUIは、ウィンドウサイズを変更した際にタブバーも一緒に展開されなかったり、タブブラウザのようにタブをドラッグ&ドロップで別ウィンドウに切り分けることなどができない。他のタブを有するアプリケーションと比較して実現できていない機能やバグが残念ながらまだ残っているが、これらの問題についてはWinUIのアップグレードによって改善されていくのではないかと思われる。

ターミナルアプリケーションにおいて、タブはもはや必須の機能の1つと言える。Windows Terminalを使う際は、ぜひタブを有効活用して作業効率を高めていってもらいたい。

参考資料