跳至主要内容

美化你的 Windows Terminal (oh-my-posh)

說明

記錄一下怎麼讓 Windows Terminal 能夠支援不同的主題

Image

Windows Terminal

先下載 Windows Terminal

字體

先下載 Nerd Fonts 字體,在 release 的頁面找到你要用的字體並且下載,我這邊是跟參考資料用一樣的字體 FiraCode

下載完將裡面的檔案解壓縮到隨便一個資料夾,把所有的字體全選,並點擊右鍵安裝。

Image

設定 Window Terminal 字體

點擊 Windows Terminal 旁邊 + 號的 ,之後點擊 Settings

Image

然後在左邊的 Profiles 找到 Defaults,並點擊 Appearance

Image

之後在 Font face 的地方選擇你剛剛安裝的字體

Image

Oh My Posh

Oh My Posh 是一個開源的終端機提示工具,用於美化和自訂終端機的 prompt。

要安裝 Oh My Posh 的話,先確認一下有沒有 winget 這個套件管理工具。

Windows Terminal 執行 winget,有看到以下畫面的話代表是有安裝的。

Image

如果沒有安裝 winget 的話,可以參考官方其他的安裝方法

安裝 Oh My Posh

這邊用 winget 來 demo 如何安裝,在 Windows Terminal 執行以下指令來安裝 Oh My Posh

winget install JanDeDobbeleer.OhMyPosh -s winget

安裝完以後,在 Windows Terminal 執行以下指令。

oh-my-posh

Image

再執行以下指令,來套用預設主題。

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

Image

Themes

如果不喜歡預設的主題,也可以來這裡挑你喜歡的主題。

找到喜歡的主題後,把主題名稱換成你想要的主題名稱。

oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\主題名稱.omp.json" | Invoke-Expression

儲存主題

現在設定完以後,只要我們開新的 Terminal,會發現主題遺失了。

執行以下指令來查看自己的 shell 是哪種,然後在照著官網的步驟執行。

oh-my-posh get shell

我這邊以 powershell demo 怎麼儲存主題,

先執行以下指令來建立 Microsoft.PowerShell_profile.ps1 檔案,我們需要這個檔案來保存主題。

New-Item -Path $PROFILE -Type File -Force

之後使用 notepad 打開

notepad $PROFILE

把剛剛套用主題的指令貼到檔案內,然後儲存。

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

Image

最後再執行以下指令,就會看到主題更改成功了。

. $PROFILE

Image

VS Code

要是 VS CodeTerminal 有出現 icon 亂碼的問題,可以在 VS Codesettings.json 把我們下載的字體補上:

{
"terminal.integrated.fontFamily": "'FiraCode Nerd Font'"
}

History Autocomplete

順便記錄一下要怎麼讓我們的 Windows Terminal 支援 History Autocomplete

Image

先安裝 PSReadLine

Install-Module PSReadLine -Force

確認是否安裝成功

Image

設定 History Autocomplete

Set-PSReadLineOption -PredictionSource History

之後將 Windows Terminal 關閉後重新開啟,並執行以下指令:

Set-PSReadLineOption -PredictionViewStyle ListView

現在應該會看到 Autocomplete 的呈現方式變成 List 了

Image

但現在重開 Windows Terminal 後,會發現 List 消失了。

所以執行

notepad $PROFILE

把以下這段貼到檔案中

Set-PSReadLineOption -PredictionViewStyle ListView

Image

Terminal-Icons

最後安裝 Terminal-Icons

Install-Module -Name Terminal-Icons -Repository PSGallery -Force

執行

notepad $PROFILE

把以下這段貼到檔案中

Import-Module Terminal-Icons

Image

Image

參考資料

oh-my-posh

🎨 Make Windows Terminal Look Better | Oh My Posh Guide