チュートリアル - Oh My Posh を使用して PowerShell または WSL のカスタム プロンプトを設定する
このチュートリアルでは、Oh My Posh を使用して PowerShell または Linux 用 Windows サブシステム (WSL) のコマンド プロンプトをカスタマイズする際に役立つリソースと指示書をいくつか紹介します。 Oh My Posh には、Git 状態の色分けとプロンプトを提供する、完全にカスタマイズされたコマンド プロンプト エクスペリエンスを実現するためのテーマ機能が用意されています。
このチュートリアルでは、以下の内容を学習します。
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 JanDeDobbeleer.OhMyPosh
これにより、次のものがインストールされます。
oh-my-posh.exe
: Windows 実行可能ファイルthemes
: 最新の Oh My Posh のテーマ
ソースの条件に同意する必要があり、1 つ以上のパッケージが利用可能である場合があります。 この場合は、使用するパッケージ ID を選択し、コマンド winget install <package ID>
を再入力します。
新しいバージョンがリリースされると自動的に更新される 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 のプロファイルがまだない可能性があります。 作成するには、次の PowerShell コマンドを使用してプロファイルを作成してから、それをテキスト エディターで再度開いてみてください。
new-item -type file -path $profile -force
PowerShell プロファイル ファイルの末尾に次の内容を追加して、paradox
テーマを設定します (paradox
をお好みのテーマに置き換えてください)。
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\paradox.omp.json" | Invoke-Expression
これで、新規の PowerShell インスタンスが起動する際に、Oh My Poshがインポートされ、コマンド ライン テーマが設定されるようになります。
新しい PowerShell インスタンスを開こうとしたときにスクリプト エラーが発生する場合、PowerShell の実行ポリシーが制限されている可能性があります。 PowerShell 実行ポリシーを無制限に設定するには、管理者として PowerShell を起動してから、次のコマンドを使用する必要があります。
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
Note
これは、Windows ターミナル プロファイルではありません。 PowerShell プロファイルは、PowerShell が起動するたびに実行されるスクリプトです。 PowerShell プロファイルの詳細を参照してください。
ヒント
一般的な質問や問題に対する回答については、「Oh My Posh の FAQ」を参照してください。 現在の作業ディレクトリを復元する方法など、構成と一般的な設定の詳細については、「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 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 のリポジトリを参照してください。
その他のリソース
- Oh my Posh のドキュメント
- Terminal-Icons リポジトリ
- Posh-Git のドキュメント: Posh-Git は、PowerShell プロンプトに表示できる Git 状態のサマリー情報を指定することで、Git と PowerShell を統合する PowerShell のモジュールです。
- PowerLine のドキュメント: Powerline は vim 用のステータスライン プラグインであり、zsh、bash、tmux、IPython、Awesome、i3、Qtile などの他の複数のアプリケーションのステータスラインとプロンプトを提供します。
Windows Terminal