LoginSignup
2
1

More than 3 years have passed since last update.

Windows Terminal v0.8.10091.0 に入門する (+ PowerShell Core 7.0.0v-rc.1 の導入)

Posted at

やること

この記事では Windows Terminal の設定について書きます。
また PowerShell Core 7 の内容には触れませんが、Windows Terminal 上で使う場合の設定を書きます。

前提

  • Windows 10 Pro
  • PowerShell Core 6 がインストールされていないこと。
    • v6 と v7 の環境共存についてはこの記事では触れません。

目次

  1. PowerShell Core 7 をインストール (MSIX パッケージ使用)
  2. Windows Terminal をインストール (Windows Store 使用)
  3. Windows Terminal で PowerShell Core 7 を起動
  4. Windows Terminal 設定
    1. 概要
    2. デフォルトシェル
    3. フォント
    4. カラースキーム
    5. アイコン
    6. 背景
    7. コピーペースト
    8. ブラウン管風画面
  5. Awesome PowerShell

1. PowerShell Core 7 をインストール (MSIX パッケージ使用)

PowerShell Core 7 を導入しない場合はここは飛ばしてください。

PowerShell Core の GitHub Release ページから拡張子が msix のファイルをダウンロードします。
執筆時は PowerShell-7.0.0-rc.1-win-x64.msix をダウンロードしました。
MSIX パッケージはファイルをダブルクリックではインストールできないので、PowerShell プロンプトを開いて以下を実行してインストールします。

# ファイルのあるフォルダで実行する
Add-AppxPackage PowerShell-7.0.0-rc.1-win-x64.msix

ちなみに v7 からはアイコンが以下のように変わったみたいです。
powershellcore.PNG

他のインストール方法は以下を参照してください。
参考: Windows への PowerShell Core のインストール - PowerShell | Microsoft Docs

2. Windows Terminal をインストール (Windows Store 使用)

Windows Terminal は Windows Store からインストールします。
Terminal で検索すれば出てきます。(下図の一番左)
windowsstore.png

3. Windows Terminal で PowerShell Core 7 を起動

初期状態だとメニューに PowerShell Core が表示されません。1
これを以下のようにします。
pscoreonterminal.PNG

メニューから Settings を開き、profile.json を開きます。
このとき *.json に関連付けが無い場合はメモ帳が開きます。
別のエディタで編集したい場合は関連付けしておきましょう。

追加する設定は以下の通りです。

    "profiles":
    [
    // 省略
        {
            "guid": "{afaa79f1-5186-4f66-9c26-57671e5ab2a7}",
            "name": "PowerShell Core 7.0.0v-rc.1",
            "commandline": "pwsh.exe",
            "icon": "C:\\Program Files\\WindowsApps\\Microsoft.PowerShell_7.0.1.0_x64__8wekyb3d8bbwe\\assets\\Powershell_av_colors.ico",
            "hidden": false
        },
    // 省略

設定は基本的にファイルを保存すると即時反映されます。
設定ミスがある場合は Windows Terminal 側でエラーの場所が表示されます。

設定値の説明

簡単に設定した値の説明をします。

設定値 説明
guid ユニークID (後述)
name 表示名
commandline シェルの実行ファイル
icon アイコン画像のファイルパス
hidden メニューに表示するかどうか

guid はアプリケーションとは全く関係ないと考えて良いようです。

私も最初、cmd や PowerShell Core v6 の guid がどの解説ページを見ても同じだったので PowerShell Core v7 も決まった値があると思って探しました。しかし結論は Windows Terminal の説明ではどこにもアプリケーションに紐付くとは書いておらず、ただ「設定を一意に特定する」とだけ書いてあります。つまりユニークなIDであれば何でもいいと解釈しました。
解説ページで同じなのは Windows Terminal のデフォルト設定にハードコードされているからです。

Issue を流し読みしたところ guid の生成には PowerShell で new-guid を実行すれば良いようです。

PS C:\> new-guid

Guid
----
4e66dda2-8853-4195-bcec-91e64f154726

4. Windows Terminal 設定

4-1. 概要

Windows Terminal の設定を理解するには以下を見れば大体分かります。

profile.json のパスと特殊な URI スキーム

ms-appdata:///Local/ という URI は profile.json のあるパスを指します。2
同じフォルダに背景画像などを入れておくと便利です。

profile.json のパスは以下の通りです。

%localappdata%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\

詳しくはこちらを参照して下さい。

4-2. デフォルトシェル

defaultProfile に設定した guid の値と対応する設定がデフォルトシェルになります。

例: PowerShell Core v7 をデフォルトコンソールにする

{
    "$schema": "https://aka.ms/terminal-profiles-schema",

    "defaultProfile": "{afaa79f1-5186-4f66-9c26-57671e5ab2a7}",

    "profiles":
    [
    // 省略
        {
            "guid": "{afaa79f1-5186-4f66-9c26-57671e5ab2a7}", // この値を設定
            "name": "PowerShell Core 7.0.0v-rc.1",
    // 省略

4-3. フォント

fontFacefontSize で設定出来ます。

例: 白源フォント, フォントサイズ 16 に設定する

"fontFace" : "HackGen Console for Powerline",
"fontSize" : 16    // デフォルト値は 12

4-4. カラースキーム

カラースキームは 4-1. 概要 に記載した default.json で定義されているものであれば colorScheme にその name 値を書くだけで使えます。
他のカラースキームを使いたい場合は schemes に追加します。

例: Doracula カラースキームを使う

// 省略
        {
            "guid": "{afaa79f1-5186-4f66-9c26-57671e5ab2a7}",
            "name": "PowerShell Core 7.0.0v-rc.1",
            "commandline": "pwsh.exe",
            "icon": "C:\\Program Files\\WindowsApps\\Microsoft.PowerShell_7.0.1.0_x64__8wekyb3d8bbwe\\assets\\Powershell_av_colors.ico",
            "colorScheme": "Dracula", // 追加
// 省略
    "schemes": [
        {
            "name" : "Dracula",
            "background" : "#282A36",
            "black" : "#21222C",
            "blue" : "#BD93F9",
            "brightBlack" : "#6272A4",
            "brightBlue" : "#D6ACFF",
            "brightCyan" : "#A4FFFF",
            "brightGreen" : "#69FF94",
            "brightPurple" : "#FF92DF",
            "brightRed" : "#FF6E6E",
            "brightWhite" : "#FFFFFF",
            "brightYellow" : "#FFFFA5",
            "cyan" : "#8BE9FD",
            "foreground" : "#F8F8F2",
            "green" : "#50FA7B",
            "purple" : "#FF79C6",
            "red" : "#FF5555",
            "white" : "#F8F8F2",
            "yellow" : "#F1FA8C"
        }
    ],
// 省略

参考: Dracula — A dark theme for Windows Terminal and 84+ apps

4-5. アイコン

アイコンは icon に画像のパスを設定するだけで好きな画像を使えます。
この記事では以下のように Windows アプリからアイコンを参照しているので、その解説をします。

"icon": "C:\\Program Files\\WindowsApps\\Microsoft.PowerShell_7.0.1.0_x64__8wekyb3d8bbwe\\assets\\Powershell_av_colors.ico"

なお、いくつかの解説記事では ms-appx:///ProfileIcons/ という URI スキームを使っていますが、推奨されないようです。
私も試そうとしましたが、そもそもパスが分からなかったので諦めました。

解説

探し方を簡単に説明します。まず Windows アプリ情報は Get-AppxPackage コマンドで表示できます。
全部出すと表示が長くなるので Where-Object (where) で絞り込みするのが良いでしょう。

Get-AppxPackage | where { $_.Name -eq "Microsoft.WindowsTerminal" }

出力:

Name              : Microsoft.WindowsTerminal
Publisher         : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture      : X64
ResourceId        :
Version           : 0.7.3451.0
PackageFullName   : Microsoft.WindowsTerminal_0.7.3451.0_x64__8wekyb3d8bbwe
InstallLocation   : C:\Program Files\WindowsApps\Microsoft.WindowsTerminal_0.7.3451.0_x64__8wekyb3d8bbwe
IsFramework       : False
PackageFamilyName : Microsoft.WindowsTerminal_8wekyb3d8bbwe
PublisherId       : 8wekyb3d8bbwe
IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
NonRemovable      : False
Dependencies      : {Microsoft.VCLibs.140.00_14.0.27810.0_x64__8wekyb3d8bbwe, Microsoft.VCLibs.140.00.UWPDesktop_14.0.2
                    7810.0_x64__8wekyb3d8bbwe}
IsPartiallyStaged : False
SignatureKind     : Store
Status            : Ok

ここの InstallLocation にアプリのあるパスが書かれています。
なお C:\Program Files\WindowsApps\ 配下にはエクスプローラからアクセスすることはできません。(アクセス権限を変更すれば可能ですがセキュリティ的に脆弱になるので非推奨です)
PowerShell でなら中身を検索できるので、以下のようなコマンドで *.ico*.png を探してみると画像ファイルが見つかります。

// *.png を探す
Get-ChildItem -r -Filter "*.png" "C:\Program Files\WindowsApps\Microsoft.PowerShell_7.0.1.0_x64__8wekyb3d8bbwe" | select fullname
// *.ico を探す
Get-ChildItem -r -Filter "*.ico" "C:\Program Files\WindowsApps\Microsoft.PowerShell_7.0.1.0_x64__8wekyb3d8bbwe" | select fullname

出力例: *.ico

FullName
--------
C:\Program Files\WindowsApps\Microsoft.PowerShell_7.0.1.0_x64__8wekyb3d8bbwe\assets\Powershell_av_colors.ico
C:\Program Files\WindowsApps\Microsoft.PowerShell_7.0.1.0_x64__8wekyb3d8bbwe\assets\Powershell_avatar.ico
C:\Program Files\WindowsApps\Microsoft.PowerShell_7.0.1.0_x64__8wekyb3d8bbwe\assets\Powershell_black.ico
C:\Program Files\WindowsApps\Microsoft.PowerShell_7.0.1.0_x64__8wekyb3d8bbwe\assets\ps_black_32x32.ico

Powershell_black.ico は従来の黒い PowerShell Core アイコンです。お好みでご利用ください。

4-6. 背景

背景は useAcrylic でアクリル板のような半透過にしたり、背景画像を backgroundImage で設定出来たりします。

アクリル風
image.png

背景画像
background1.PNG

4-7. コピーペースト

コピペは普通にできますが3、いくつかやり方があります。

  • コピー
    • ウィンドウ内の文字を選択して右クリック
    • ウィンドウ内の文字を選択して Ctrl+Shift+c
      • Ctrl+c はコマンドの中断 (正確には SIGINT) の送信に使われているため
  • ペースト
    • 何も選択していない状態でウィンドウ内を右クリック
    • Ctrl+v
    • Ctrl+Shift+v
    • Shift+Insert

4-8. ブラウン管風の画面にする

Windows Terminal v0.8.10091.0 からブラウン管風の画面にする機能が追加されました。
参考: Microsoftの無料コマンドラインアプリ「Windows Terminal」がブラウン管ライクな見た目に変身可能に - GIGAZINE

以下の設定をして、アプリケーションを再起動すれば適用されます。

"experimental.retroTerminalEffect": true

image.png
※右の方にフォントのゴミ(?)が映っていますが、なおせませんでした。

5. Awesome PowerShell

その他の便利なモジュールや解説はこちらを参照してください。
janikvonrotz/awesome-powershell: A curated list of delightful PowerShell modules and resources

おわり


  1. PowerShell Core v6 の場合は Windows Terminal が自動的に認識して設定に追加してくれるようです。 

  2. 正確には「PCごとのアプリケーション設定フォルダ」ですが、こっちの方が分かりやすいので。 

  3. Editing Windows Terminal JSON Settings にはコピペ用のキーバインドを設定してね、と書かれていますが現在は設定不要でした。 

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1