チュートリアル: Oh My Posh を使用して PowerShell または WSL のカスタム プロンプトをセットアップする

このチュートリアルでは、Oh My Posh を使用して PowerShell または Linux 用 Windows サブシステム (WSL) のコマンド プロンプトをカスタマイズする際に役立つリソースと指示書をいくつか紹介します。 Oh My Posh には、Git 状態の色分けとプロンプトを提供する、完全にカスタマイズされたコマンド プロンプト エクスペリエンスを実現するためのテーマ機能が用意されています。

このチュートリアルでは、以下の内容を学習します。

Windows ターミナルのカスタム プロンプト

Nerd Font をインストールする

カスタマイズされたコマンド プロンプトでは、多くの場合、プロンプトのスタイルを設定するのにグリフ (グラフィック シンボル) を使用します。 お使いのフォントに適切なグリフが含まれていない場合は、プロンプト全体に Unicode の置換文字 '▯' がいくつか表示されることがあります。 ターミナルのすべてのグリフを表示するには、Nerd Font をインストールすることをお勧めします。

Cascadia Code のようなフォントを使用する必要がある場合は、コミュニティ メンバーによって Cascadia Code リポジトリから構築された Caskaydia Cove Nerd Font を利用できます。)

ダウンロードが完了したら、フォントを解凍してシステムにインストールする必要があります (Windows に新しいフォントを追加する方法)。

Oh My Posh と Terminal Icons で使用する Nerd Font を設定するには、Windows ターミナルのドロップダウン メニューから [設定] (Ctrl+,) を選択して、Windows ターミナルの設定 UI を開きます。 フォントを適用するプロファイル (PowerShell など) を選択し、[外観] タブを選択します。[フォント フェイス] ドロップダウン メニューで、CaskaydiaCove Nerd Font を選択するか、カスタマイズされたプロンプトで使用したい任意の Nerd フォントを選択します。

注意

グリフ アイコンがサポートされていないターミナル フォント (Cascadia Code PL など) を使用する必要がある場合は、minimal 関数が含まれる Oh My Posh のテーマを使用して、追加のアイコンが不要であることを示すことを検討してください。

Oh My Posh を使用して PowerShell プロンプトをカスタマイズする

Oh My Posh では、フル カラー セットを使用してターミナル プロンプトを定義し、表示することができます (組み込みのテーマを使用したり、独自のカスタム テーマを作成するなど)。

PowerShell 用の Oh My Posh をインストールする

PowerShell プロンプトをカスタマイズするには、winget を使用して Oh My Posh をインストールできます。 次のコマンドを入力します。

winget install oh-my-posh

これにより、次のものがインストールされます。

ソースの条件に同意する必要があり、1 つ以上のパッケージが利用可能である場合があります。 この場合は、使用するパッケージ ID を選択し、コマンド winget install <package ID> を再入力します。

winget install oh my posh パッケージのスクリーンショット。

新しいバージョンがリリースされると自動的に更新される Microsoft Store バージョンの Oh My Posh を使うには、次のコマンドを使います。

winget install XP8K0HKJFRXGCK

oh-my-posh --version を入力して、Oh My Posh インストールのバージョン番号を確認します。 更新が最新であることを確認するには、コマンド winget upgrade oh-my-posh を使用します。

注意

PowerShell で最新バージョンの Oh My Posh をインストールする場合、必要に応じて、まず OMP モジュールのキャッシュ ファイルを削除し、古いモジュールをアンインストールします。 この方法については、Oh My Posh のドキュメントを参照してください。Scoop インストーラーまたは自動化できる手動インストール方法に慣れている場合は、それらを使って Windows にインストールすることもできます。Oh My Posh のドキュメントの手順を実行してください。

PowerShell プロンプトのテーマを選択して適用する

すべてのテーマの一覧を表示するには、Oh My Posh のテーマ ページを参照してください。

テーマを選択し、次のコマンドを使用して PowerShell プロファイルを更新します (notepad を任意のテキスト エディターに置き換えることもできます)。

notepad $PROFILE

PowerShell プロファイル ファイルの末尾に次の内容を追加して、paradox テーマを設定します (paradox をお好みのテーマに置き換えてください)。

oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\paradox.omp.json" | Invoke-Expression

これで、新規の PowerShell インスタンスが起動する際に、Oh My Poshがインポートされ、コマンド ライン テーマが設定されるようになります。

Note

これは、Windows ターミナル プロファイルではありません。 PowerShell プロファイルは、PowerShell が起動するたびに実行されるスクリプトです。 PowerShell プロファイルの詳細を参照してください。

ヒント

Oh My Posh は、[全般設定] で osc99 を有効にすることで、現在の作業ディレクトリを復元するように構成することができます。 Oh My Posh のドキュメントを参照してください。

Oh My Posh を使用して WSL プロンプトをカスタマイズする

組み込みのテーマを使用して PowerShell プロンプトをカスタマイズするのと同じように、Oh My Posh を使用して WSL プロンプトをカスタマイズできるようになりました。

WSL 用の Oh My Posh をインストールする

Bash や Zsh などを使用して、Oh My Posh のドキュメントの Linux インストール ガイドに従って、WSL 用の Oh My Posh をインストールすることをお勧めします。

Oh My Posh を使用して WSL プロンプトをカスタマイズするのに現時点で推奨されるパスは、インストールに Homebrew パッケージ マネージャーを使用することです。 (Homebrew が WSL で動作するようになりました!) Linux 用の Homebrew をインストールする際には、次のステップの手順に従って、Homebrew を PATH と bash シェル プロファイル スクリプトに追加してください。

Homebrew によって、次のものがインストールされます。

  • oh-my-posh - 実行可能ファイル、/usr/local/bin に追加される
  • themes - 最新の Oh My Posh のテーマ

WSL プロンプトのテーマを選択して適用する

Oh My Posh のテーマは、oh-my-posh ディレクトリ内に JSON ファイルとして見つかります。 これを見つけるには、「cd $(brew --prefix oh-my-posh)」と入力してから単に「cd themes」と入力するか、「ls」と入力して一覧を表示できます。 WSL 経由で実行されている Ubuntu-20.04 の場合、パスは \\wsl.localhost\Ubuntu-20.04\home\linuxbrew\.linuxbrew\Cellar\oh-my-posh\6.34.1\themes のようになります。 また、Oh My Posh のドキュメントの「Themes (テーマ)」で、テーマの見た目を確認することもできます。

テーマを使用するには、テーマを themes フォルダーから自分の $Home フォルダーにコピーし、次の行を自分の $Home フォルダー内に見つかる .profile ファイルの下部に追加します。

eval "$(oh-my-posh --init --shell bash --config ~/jandedobbeleer.omp.json)"

jandedobbeleer.omp.json は自分が使用するテーマの名前に置き換えることができます。ただし、そのテーマが $Home フォルダーにコピーされている必要があります。

また、PowerShell を使用する Windows と WSL を使用する Windows の両方で oh-my-posh を使用している場合は、Windows ユーザーのホーム フォルダー内のテーマを選択することで、PowerShell のテーマを WSL と共有できます。 お使いの WSL ディストリビューションの .profile パスで、~ をパス /mnt/c/Users/<WINDOWSUSERNAME> に置き換えます。 <WINDOWSUSERNAME> を自分の Windows ユーザー名に置き換えます。

必要に応じて、Oh My Posh のテーマをカスタマイズできます。

Terminal-Icons を使用して不足しているフォルダーまたはファイルのアイコンを追加する

Terminal-Icons は、Windows ターミナルでファイルまたはフォルダーを表示しているときに、名前または拡張子に基づいて適切なアイコンを検索して、不足している可能性があるファイルやフォルダーのアイコンを追加する、PowerShell のモジュールです。 よく知られているファイルやフォルダーのアイコンを使用しようとしますが、見つからなかった場合は汎用のファイルまたはフォルダーのアイコンにフォールバックします。

PowerShell を使用して Terminal-Icons をインストールするには、次のコマンドを使用します。

Install-Module -Name Terminal-Icons -Repository PSGallery

使用方法やコマンドなどの詳細については、GitHub の Terminal-Icons のリポジトリを参照してください。

その他のリソース