Foi um passeio incrível para o Oh MyPosh, mas chegou a hora de aumentar um pouco. Atualmente, os desenvolvedores não se apegam mais a um shell/idioma, são todas as ferramentas que usamos para resolver um certo problema. O mesmo precisa se aplicar a Oh meu chique. É hora de se ajustar a essa filosofia.
É por isso que esta versão do OH My Posh está entrando no modo de manutenção enquanto estou trabalhando duro para tirar o V3 da porta. Dado que o V3 é totalmente diferente sob o capô, ele é hospedado separadamente por enquanto. Do ponto de vista do usuário, ele deve oferecer a mesma experiência pronta para uso, com a vantagem adicional de que os temas personalizados sejam uma primeira classe, sem cidadãos de código.
Install-Module oh - my - posh - Scope CurrentUser - AllowPrereleaseTambém está disponível documentação, o que deve dar uma experiência melhor do que esta leitura nos últimos anos :-)
Se você é um desenvolvedor que procura adicionar funcionalidade, dê uma olhada no V3 para ver se ele já existe lá. Caso contrário, sinta -se à vontade para criar um problema ou relações públicas no V3, aceitarei apenas as correções de bugs em V2 a partir de agora .
Um mecanismo de tema para PowerShell inspirado no trabalho realizado por Chris Benti no PS-Config e Oh-My-ZSH no OSX e Linux (daí o nome).
Mais informações sobre por que eu fiz isso pode ser encontrado no meu blog.

Características:
Você deve usar um host de console moderno como Conemu, Alacritty, Terminus, Hyper, FluentTerminal ou o terminal oficial do Windows para ter uma ótima experiência terminal no Windows.
Existem várias maneiras de adquirir o Terminal Windows - na Microsoft Store, o Github Repo ou os métodos de comando abaixo:
Via Winget (gerente oficial de pacotes para Windows):
winget install -- id = Microsoft.WindowsTerminal - eVia Chocolatey:
choco install microsoft - windows - terminalVia Scoop:
scoop install windows - terminal As fontes que eu uso são fontes do PowerLine, há um ótimo repositório que as contém. Eu uso Meslo LG M Regular for Powerline Nerd Font na minha configuração Conemu, juntamente com as cores personalizadas. Você pode encontrar meu tema aqui.
Caso você observe os glifos estranhos após a instalação de uma fonte de escolha, verifique se os glifos estão disponíveis (talvez eles tenham um local diferente na fonte; se for o caso, ajuste o ícone correto $ThemeSettings ). Se for o personagem que você deseja não é suportado, selecione uma fonte diferente.
Você precisa usar a Galeria PowerShell para instalar oh-my-posh.
Instale o chiqueiro e oh-my-posh:
Install-Module posh - git - Scope CurrentUser
Install-Module oh - my - posh - Scope CurrentUserHabilite o prompt:
# Start the default settings
Set-Prompt
# Alternatively set the desired theme:
Set-Theme Agnoster Caso você esteja executando isso no PS Core, também instale a versão 2.0.0-beta1 do PSReadLine
Install-Module - Name PSReadLine - AllowPrerelease - Scope CurrentUser - Force - SkipPublisherCheckPara ativar o motor Editar seu perfil PowerShell:
if ( ! ( Test-Path - Path $PROFILE )) { New-Item - Type File - Path $PROFILE - Force }
notepad $PROFILEAnexe as seguintes linhas ao seu perfil do PowerShell:
Import-Module posh - git
Import-Module oh - my - posh
Set-Theme ParadoxO último comando define o tema do console. Verifique a lista de temas disponíveis abaixo.
Liste a configuração atual:
$ThemeSettings 
Você pode ajustar as configurações manipulando $ThemeSettings . Este exemplo permite ajustar o símbolo do ramo usando um caractere unicode:
$ThemeSettings .GitSymbols.BranchSymbol = [ char ]::ConvertFromUtf32( 0xE0A0 )Também não se esqueça das configurações de Git Posh (Ative a indicação de esconderijo, por exemplo):
$GitPromptSettings Ocultar seu username@domain quando não estiver em uma máquina virtual para os temas Agnoster, Fish, Honukai, Paradox e Sorin:
$DefaultUser = ' yourUsernameHere ' Set-Theme : Defina um tema no diretório de temas. Se nenhuma correspondência for encontrada, ela não será alterada. O AutoComplete está disponível para listar e concluir temas disponíveis.
Set-Theme paradox Show-ThemeColors : exibir as cores usadas pelo tema

Show-Colors : Exibir cores configuradas em Conemu

















Se você deseja criar um tema, ele pode ser feito com bastante facilidade adicionando um arquivo mytheme.psm1 na pasta indicada em $ThemeSettings.MyThemesLocation (a pasta padrão para ~DocumentsWindowsPowerShellPoshThemes , sinta -se à vontade para alterá -lo).
A única função necessária é Write-Theme . Você pode usar o seguinte modelo para começar:
# requires -Version 2 -Modules posh -git
function Write-Theme
{
param (
[ bool ]
$lastCommandFailed ,
[ string ]
$with
)
# enter your prompt building logic here
}
$sl = $ global :ThemeSettings # local settings Sinta-se à vontade para usar as funções públicas do Helper Get-VCSStatus , Get-VcsInfo , Get-FormattedRootLocation , Get-ShortPath , Set-CursorForRightBlockWrite , Set-CursorUp , Set-Newline ou adicionar sua própria lógica.
Para testar a saída em Conemu, basta mudar para o seu tema:
Set-Theme mythemeSe você quiser incluir seu tema em Oh-My-Posh, envie-me um PR e tentarei dar feedback o mais rápido possível.
Feliz tema!
Como parece ter acesso às informações da pilha ao usar o Pushd/PopD, é uma espécie de missão impossível de dentro de um tema, você pode usar uma solução alternativa proposta por Jonathan Leech-Pepin. No seu $PROFILE , adicione uma variável que atuará como um ponteiro escopo corretamente para buscar o contexto da pilha:
$getStackContext = { Get-Location - Stack}Em seguida, em seu tema personalizado, acesse as informações que você deseja exibir:
$stackCount = ( & $getStackContext ).count Isso é causado pela funcionalidade ConsoleTitle . Conforme explicado por Andrew Stanton-Nurse, está ligado a como os terminais funcionam com códigos OSC. A correção é desativar a funcionalidade ConsoleTitle quando no ITERM2 adicionando o seguinte snippet ao seu $PROFILE .
if ( $ env: LC_TERMINAL -eq " iTerm2 " ) {
$ThemeSettings .Options.ConsoleTitle = $false
}