Как установить темы для Oh My Posh в Powershell 5.1?
Я ежедневно использую Powershell 5.1 в Windows Terminal. Однако через несколько дней моя тема Oh My Posh перестала работать и распечатала ошибку, в которой говорилось, что она не может найти нужную мне тему (iterm2), и вернулась к теме по умолчанию.
Я удалил (
Remove-Module -Name oh-my-posh -Force
) и переустановил (
Install-Module -Name oh-my-posh -Scope CurrentUser
) Oh My Posh, но это не устранило проблему. Как решить ?
Спасибо
2 ответа
Это случилось и со мной. Я исправил это, вручную загрузив темы в нужное место.
Если вы хотите упростить задачу, я создал однострочник powershell, который это исправляет:
New-Item -Path "$home\Documents\WindowsPowerShell\Modules\oh-my-posh" -Name "themes" -ItemType Directory; Set-Location -Path "$home\Documents\WindowsPowerShell\Modules\oh-my-posh\themes"; Invoke-WebRequest -UseBasicParsing -Uri https://api.github.com/repos/JanDeDobbeleer/oh-my-posh/contents/themes | Select-Object -ExpandProperty Content | ConvertFrom-Json | ForEach-Object {$_ | Select-Object -ExpandProperty name | Select-String -Pattern ".*.omp.json"} | ForEach-Object {$_.toString().Replace(".omp.json", "")} | ForEach-Object {Invoke-WebRequest -Uri "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/$_.omp.json" -UseBasicParsing -OutFile "$_.omp.json"}
Он использует API GH для получения списка доступных тем, а затем загружает их в нужное место с помощью небольшой магии PowerShell.
После загрузки тем вручную вы также можете проверить переменную env "POSH_THEMES_PATH"
это должно быть "$home\Documents\WindowsPowerShell\Modules\oh-my-posh\themes"
Вы можете проверить это:
echo $env:POSH_THEMES_PATH
Вы можете изменить его:
$env:POSH_THEMES_PATH = "path"