mecobalamin’s diary

人間万事塞翁が馬

https://help.hatenablog.com/entry/developer-option

Windows Terminalのインストールと設定


つい最近、WSLをPowerShellから起動できることを知った
以下のようにするだけ

$ wsl

今までWSLをインストールしたときに標準でつかえる
ターミナルエミュレータを使っていたが
PowerShellでWSLを使えるなら
これらを一つのウィンドウで使えるようにできないだろうか

そう思って探してみたら
Windows Terminalを見つけた

Windows Terminalとは

マイクロソフトによって開発中のWindows 10向けの端末エミュレータである[2]。MITライセンスの下で公開されており、コマンドプロンプトPowerShell、WSL及びSSHに対応している[3]。

Microsoft Storeから入手可能
Microsoft Apps

タブも使えて便利


標準ではPowerShellが起動する
WSL(Ubuntu)はウィンドウ上部の"v"をクリックすると
いくつかメニューが表示されるので
Ubuntuを選択して起動する
起動時はWSLのホームではなくPowerShellのホームディレクトリになっている

やや使いづらい
そこでカスタマイズした設定を記録する


以下のサイトを参考にした
Windows Terminalをカスタマイズしよう!(v1.0.1401.0版) - Qiita
Windows Terminal Tips - Qiita


手順として

  1. 拡張子.jsonAtomに関連付ける
  2. settings.jsonAtomで編集

編集内容は

  • デフォルトをWSLにする
  • 起動時のウインドウの位置を左上部に合わせる
  • ウインドウサイズを120文字、50行にする
  • フォントをMyrica Mに、サイズを12 ptに変更する
  • WSL起動時のディレクトリをホームにする


設定はWindow Terminalウインドウの
"v"をクリックして"設定”から行う

設定ファイルはsettings.jsonというjson形式のファイルで
”設定”をクリックするとこのファイルが開く
ファイルは拡張子.jsonを関連付けたアプリを使って
開くので今回はAtomに関連付けておく
Atomにしたのは使い慣れているから

関連付けは
"設定” -> ”アプリ” -> "規定のアプリ" -> "ファイルの種類ごとに規定のアプリを選ぶ"
から行う

設定ファイルを開いて以下のように編集する

WSLをデフォルトで起動する
guidで指定する

    "defaultProfile": "{2c4de342-38b7-51cf-b940-2309a097f518}",

ウインドウの位置合わせ

    "initialPosition": "0,0",

一行あたりの文字数と行数

    "initialCols": 120,
    "initialRows": 58,

フォントの種類とサイズの指定

    "fontFace": "Myrica M",
    "fontSize": 12

起動時のディレクトリを指定する
dオプションはディストリビューションを指定している

    "commandline" : "wsl.exe ~ -d Ubuntu",

ディストリビューションPowerShellから

$ wsl -l

で確認できる

これらをsettings.jsonに追加する
書き込む場所はdefaults.jsonを参考にすると良い
”設定”をaltキーを押しながらクリックすると
settings.jsonではなくdefaults.jsonが起動する

defaults.jsonパーミッションの関係で
編集できなかった

書き換えたsettings.json全文は以下の通り

// This file was initially generated by Windows Terminal 1.1.2233.0
// It should still be usable in newer versions, but newer versions might have additional
// settings, help text, or changes that you will not see unless you clear this file
// and let us generate a new one for you.

// To view the default settings, hold "alt" while clicking on the "Settings" button.
// For documentation on these settings, see: https://aka.ms/terminal-documentation
{
    "$schema": "https://aka.ms/terminal-profiles-schema",

    "defaultProfile": "{2c4de342-38b7-51cf-b940-2309a097f518}",
    "initialPosition": "0,0",
    "initialCols": 120,
    "initialRows": 58,

    // You can add more global application settings here.
    // To learn more about global settings, visit https://aka.ms/terminal-global-settings

    // If enabled, selections are automatically copied to your clipboard.
    "copyOnSelect": false,

    // If enabled, formatted data is also copied to your clipboard
    "copyFormatting": false,

    // A profile specifies a command to execute paired with information about how it should look and feel.
    // Each one of them will appear in the 'New Tab' dropdown,
    //   and can be invoked from the commandline with `wt.exe -p xxx`
    // To learn more about profiles, visit https://aka.ms/terminal-profile-settings
    "profiles":
    {
        "defaults":
        {
            // Put settings here that you want to apply to all profiles.
            "fontFace": "Myrica M",
            "fontSize": 12
        },
        "list":
        [
            {
                // Make changes here to the powershell.exe profile.
                "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
                "name": "Windows PowerShell",
                "commandline": "powershell.exe",
                "hidden": false
            },
            {
                // Make changes here to the cmd.exe profile.
                "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
                "name": "コマンド プロンプト",
                "commandline": "cmd.exe",
                "hidden": false
            },
            {
                "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
                "hidden": false,
                "name": "Ubuntu",
                "commandline" : "wsl.exe ~ -d Ubuntu",
                "source": "Windows.Terminal.Wsl"
            },
            {
                "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
                "hidden": false,
                "name": "Azure Cloud Shell",
                "source": "Windows.Terminal.Azure"
            }
        ]
    },

    // Add custom color schemes to this array.
    // To learn more about color schemes, visit https://aka.ms/terminal-color-schemes
    "schemes": [],

    // Add custom keybindings to this array.
    // To unbind a key combination from your defaults.json, set the command to "unbound".
    // To learn more about keybindings, visit https://aka.ms/terminal-keybindings
    "keybindings":
    [
        // Copy and paste are bound to Ctrl+Shift+C and Ctrl+Shift+V in your defaults.json.
        // These two lines additionally bind them to Ctrl+C and Ctrl+V.
        // To learn more about selection, visit https://aka.ms/terminal-selection
        { "command": {"action": "copy", "singleLine": false }, "keys": "ctrl+c" },
        { "command": "paste", "keys": "ctrl+v" },

        // Press Ctrl+Shift+F to open the search box
        { "command": "find", "keys": "ctrl+shift+f" },

        // Press Alt+Shift+D to open a new pane.
        // - "split": "auto" makes this pane open in the direction that provides the most surface area.
        // - "splitMode": "duplicate" makes the new pane use the focused pane's profile.
        // To learn more about panes, visit https://aka.ms/terminal-panes
        { "command": { "action": "splitPane", "split": "auto", "splitMode": "duplicate" }, "keys": "alt+shift+d" }
    ]
}