跳至主要内容

美化你的 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 Code 的 Terminal 有出現 icon 亂碼的問題,可以在 VS Code 的 settings.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