Windows Terminal(以下Terminalと表記する)のQuakeモード(写真01)は、画面の上半分にタイトルバーなしのウィンドウを表示するモードで、Terminalが起動していれば、いつでもホットキーで呼び出すことができる。Terminalで作業する頻度が高い場合、これを設定しておくと、いつでもTerminalを呼び出すことができる。

  • Windows Terminal ベスト設定 第6回 「Quakeモードを使う」

    写真01: デスクトップの上部に表示されているのがQuakeウィンドウ。下は、通常のTerminalウィンドウ。ペイン分割などを行なってQuakeウィンドウを開きたい場合、起動オプションなどを指定したwt.exeへのショートカットをスタートアップフォルダーなどに作成しておく

Quakeモードを設定すると、常用するTerminalウィンドウを1つに絞ることができ、ウィンドウを見失うことがない。1つのウィンドウを使い続けることで、シェルのヒストリ機能などが有効に利用できる。

ちなみにQuakeモードは、ゲームプログラム「Quake」から取られており、同ゲームには、ブラインドのように上から降りてくるコンソールウィンドウ表示があった。このように画面上部から降りてくるウィンドウを「Drop-down Window」といい、同じくQuakeにちなんだTerminalアプリは、少なくない。もちろん、Quakeモードもアニメーションを装備している。

Quakeモードとは?

Quakeモードは、プリセットされたglobalSummonアクションである。globalSummonとは、ホットキーでいつでも呼び出すことができるTerminalのアクションだ。QuakeモードTerminalウィンドウは、標準ではWin+@で呼び出すことができる。

Quakeモードウィンドウは、アニメーション付きで常にモニターの上半分に表示される。位置やサイズを変更することはできないが、設定により表示させる仮想デスクトップやモニターを選ぶことができる。基本的にはウィンドウの表示方法が異なるのみで、他の動作は、globalSummonで開いたウィンドウと同一である。

Quakeモードウィンドウは、必ず「_quake」というTerminalウィンドウ名を持つ。逆にいうと、Terminalウィンドウの名前を「_quake」にすれば、Quakeモードでウィンドウが開く。デフォルトでは、デフォルトプロファイルを使ったTerminalウィンドウが開くが、設定により、他のプロファイルや複数ペインを持った状態でも開くことが可能だ。

Quakeモードは、「Win+@」でオンオフが可能だ。ウィンドウにはタブバーやタイトルバーが表示されないが、機能としては、Terminalウィンドウとまったく同じである。タブバー、タイトルバーが表示されないため、ウィンドウの移動、新規タブ、タブメニューや設定をマウス操作で行なうことはできないが、キーボードやコマンドパレットを使うことで、すべてのTerminal機能を利用できる。注意するのは、新規タブを作った場合や設定ページを開いた場合、元のタブに戻るには、キー操作を行なう必要がある。最初に開くQuakeモードウィンドウは、常にIndex=0のタブになるため、「SwitchToTab」(デフォルトでは、Ctrl+Alt+1)で元に戻ることができる。

Quakeモードウィンドウは、左右の幅は固定だが、高さは、下の端をマウスでドラッグすることで調整が可能だ。

Quakeモードを使いやすく

Quakeモードは、横長となるため、最初から左右に分割しておくと便利だ。さまざまな使い方があるが、左右ともにWindows PowerShellにしておけば、他方にヘルプを表示しながらといった使い方が可能になる。あるいはPowerShellとWSL(bash)という組合せもあるだろう。Quarkモード起動用のショートカットを使い、ログイン時に自動実行される「スタートアップ」フォルダーに配置しておくことで、ログイン時にQuakeウィンドウを分割するなどして起動させておくことができる。

Terminal設定にある「コンピュータのスタートアップ時に起動」は設定しない。これを設定してしまうとデフォルトプロファイルでQuakeウィンドウが作られてしまうからだ。  具体的には、エクスプローラーで「スタートアップフォルダー」を開き、ショートカットを以下のコマンドラインで作る。このコマンドラインでは、PowerShellプロファイルを作り、自動で分割して右側にUbuntuプロファイルを指定している。


%LOCALAPPDATA%\Microsoft\WindowsApps\wt.exe --window _quake new-tab --profile "PowerShell"; split-pane --profile "Ubuntu"; move-focus left

最後の“move-focus left”は、最初に開いたペインにカーソルを戻すためのものだ。

なお、起動時オプションに関しては、Microsoftの以下のページに解説がある。

・Windows ターミナルのコマンド ライン引数
https://learn.microsoft.com/ja-jp/windows/terminal/command-line-arguments?tabs=windows

後述するように、Quakeウィンドウは、設定により、仮想デスクトップとモニターの関係が決まる。プライマリディスプレイなど、固定した仮想デスクトップのプライマリモニターを使いたい場合、この方法で、ログイン時にプライマリモニターでQuakeウィンドウを作成する必要がある。

作成するTerminalウィンドウがQuakeモード用であることを示すため、かならず「--window _quake」を指定する。

Quakeモードウィンドウの指定

Quakeウィンドウの開き方などは、settings.jsonで指定を行なっておく。settings.jsonの編集方法に関しては、本連載で解説したので参考にしてほしい。

・Windows Terminal ベスト設定 第1回「キーボードカスタマイズ 導入編」
https://news.mynavi.jp/article/20211025-2168960/

前述のようにQuakeモードは、globalSummonアクションの特殊な形式であり、基本的な設定は、globalSummonアクションと同一である。表01にglobalSummonアクションの書式を示す。"name"に“_quake”と指定することで、Quakeモードの設定となる。なお、ここに別の名前を指定し、異なるキー割り当てを行なえば、複数のglobalSummonウィンドウを開くことができる。

  • ■表01

また、settings.json内でQuakeモードやglobalSummonで、開くウィンドウのプロファイルを指定することはできない。キー割り当てやウィンドウの設定のみをsettings.json内で行ない、前述のようにコマンドラインからウィンドウ名とプロファイルを指定してTerminalを起動する。

具体的な設定だが、まずTerminalの設定ページにある「JSONファイルを開く」あるいは「Ctrl+Shift+,」(カンマ)で外部エディタでsettings.jsonファイルを開く。具体的には、リスト01のようなアクションをJSONファイルの"actions":オブジェクト内で定義しておく。

リスト01
※settings.jsonの"actions":[と]の間に記述する。


{
    "command": 
        {
            "action": "globalSummon",
            "desktop": "any",
            "monitor": "any",
            "name": "_quake",
            "dropdownDuration": 0,
            "toggleVisibility": true
        },
    "keys": "win+@"
},

"desktop"と"monitor"は、仮想デスクトップとマルチモニターに対して、どのように表示するのかを指定する(表02)。"desktop"は、仮想デスクトップとの関係を指定し、"monitor"はマルチモニター時にモニターとの関係を指定する。

  • ■表02

仮想デスクトップを目的別に使い分けるような場合には、「"desktop":"onCurrent"」として、仮想デスクトップごとにQuakeウィンドウを作成する。これで、仮想デスクトップごとにQuakeウィンドウが作られ、それぞれ独立したセッションになる。この設定では、すでにQuakeウィンドウが作られた仮想デスクトップでは、既存のものがアクティブになる。

逆に仮想デスクトップ間で共通に作業したい場合は、「"desktop":"toCurrent"」として、1つのQuakeウィンドウを現在の仮想デスクトップに表示させる。

常に、1つの仮想デスクトップ上でのみ利用したい場合には、「"desktop":"any"」として、ホットキーを押したときにQuakeウィンドウを作成した仮想デスクトップに切り替えるようにする。

"monitor"は、マルチモニター時にのみ有効で、それぞれ、「固定」("any")、「前面ウィンドウのあるモニター」("toCurrent")、「マウスカーソルのあるモニター」("toMouse")を意味する。

筆者としては、常に同じ仮想デスクトップ、同じモニターを意味する「"desktop":"any"、"monitor": "any"」がお勧めである。このようにすることで、仮想デスクトップを使っていても、元の仮想デスクトップに戻ってQuakeウィンドウを使うことができる。

"dropdownDuration"は、Quakeウィンドウのアニメーションの動作時間を設定する。大きな値にするほど、アニメーションがゆっくりになる。0を指定すると上から降りてくるアニメーションが行なわれず、Windowsのデフォルトアニメーション(ウィンドウを元に戻すアニメーション)になる。アニメーションも悪くはないのだが、ウィンドウを閉じるときの画面の再描画がちらついて、うるさく感じることがある。

また、ここでホットキーを定義できる。「"keys": "win+@"」は、Quakeウィンドウを開くホットキーをWin+@にしている。他のキーに変更することも可能だが、すでにホットキーとして登録されているキーの組合せは利用できない。Windowsには、使われているホットキーを表示させる機能がないため、他の空いているホットキーを調べるのはちょっと面倒だ。

また、Winキーを使うホットキーは、Microsoft専用とされているため、Winキーを使う他の組合せは、いまは未割り当てでも、今後のWindowsバージョンアップで使われてしまう可能性がある。Winキーを使う場合、標準のWin+@を使うことが望ましい。

Quakeモードで便利なアクション

Quakeモードでは、タブバーがないので、多くの操作をキーまたはコマンドパレットで行なう必要がある。キー割り当てを完全に覚えていなくても、コマンドパレットを使うことで、基本アクションを実行させることはできる。分割方法や起動プロファイルなど引数の指定が必要なSplitPaneなどのアクションについては、デフォルトで、メニュー方式で起動するアクションが定義されている。

こうしたメニュー付きのアクションには、末尾に「...」が付けられている。たとえば、ペイン分割なら、「ウィンドウを分割します...」(日本語)、「Split Pane ...」(英語)のアクションが定義されていて、それぞれ、コマンドパレットで選択すると、プロファイルの選択、分割方向の選択となる。

ただし、デフォルトでは、すべてのプロファイル、すべての分割方法を選択するようになっており、場合によっては、メニュー選択が面倒になる。

このため、(リスト02)以下のように特定のプロファイルだけを右側で分割するアクションを作る。"name"の設定で先頭に数字を付けるとコマンドパレットの中で前に並ぶ。このようにすることで素早く選択が可能になる。

リスト02
※settings.jsonの"actions":[と]の間に記述する。


{   "commands": [
        {   "command":
             {   "action":"splitPane",
                  "split":"right",
                  "profile":"PowerShell"
             },
            "icon": "ms-appx:///ProfileIcons/pwsh.png",
             "name":"PowerShell"
        },
        {   "command":
            {  "action":"splitPane",
                "split":"right",
                "profile":"Windows PowerShell"
            },
            "icon": "ms-appx:///ProfileIcons/{61c54bbd-c2c6-5271-96e7-009a87ff44bf}.png",
            "name":"Windows PowerShell"
        },
        {   "command":
                {
                    "action":"splitPane",
                    "split":"right",
                    "profile":"Ubuntu-20.04"
                },
           "icon": "%USERPROFILE%\\OneDrive\\APP\\WindowsTerminal\\Ubuntu32-black.png",
           "name":"Ubuntu-20.04"
        }
    ],
    "name": "0 Split..."
},

あるいは、(リスト03)以下のように特定のプロファイルだけで、右側に分割するアクション(Commands)を作成してもいいだろう。

リスト03
※settings.jsonの"actions":[と]の間に記述する。


{   "command":
        {
            "action":"splitPane",
            "split":"right",
            "profile":"PowerShell"
        },  
    "icon": "ms-appx:///ProfileIcons/pwsh.png", 
    "name": "1 Split Right Pwsh"
},

これらも、settings.jsonファイルの"actions"オブジェクトの中(配列を示す角括弧の中)に記述する。

Terminalを使うことが多いなら、Quakeモードを設定しておくと、起動がラクになる。いつでもWin+@で指定した位置にウィンドウが表示されるため、PowerShellなどで作成したツールを簡単に起動可能だ。

  • 写真02: 多数のプロファイルがあると、コマンドパレットでプロファイルの選択が面倒になる。そこで、よく使うプロファイルだけを登録したアクションを定義しておくと、プロファイルを限定でき選択が楽になる

  • 写真03: アクションを定義するとき、名前の前に数字をつけておくと、コマンドパレットで先頭に並ぶため選択が簡単になる

>> Windows Terminal ベスト設定 連載バックナンバー
https://news.mynavi.jp/tag/winterminal/