Tutorial – configurar um prompt personalizado para PowerShell ou WSL com o Oh My Posh

Este tutorial fornece alguns recursos e orientações para ajudar você a personalizar o prompt de comando para o PowerShell ou WSL (Subsistema do Windows para Linux) usando o Oh My Posh. O Oh My Posh oferece funcionalidades de temas para uma experiência de prompt de comando totalmente personalizado com prompts e codificações de cores de status do Git.

Neste tutorial, você aprenderá como:

Windows Terminal Custom Prompt

Instalar uma fonte Nerd

Prompts de comando personalizados geralmente usam glifos (um símbolo gráfico) para estilização. Se a sua fonte não incluir os glifos adequados, você poderá ver vários caracteres de substituição Unicode '▯' pelo prompt. Para ver todos os glifos em seu terminal, recomendamos instalar uma Fonte Nerd.

Se você quiser uma fonte parecida com o Cascadia Code, a fonte Nerd Caskaydia Cove foi criada com base no repositório do Cascadia Code por um membro da comunidade).

Após o download, será necessário descompactar e instalar a fonte no sistema. Como adicionar uma nova fonte ao Windows.

Para definir uma fonte Nerd para uso com o Oh My Posh e o Terminal Icons, abra a interface do usuário de configurações do Terminal do Windows selecionando Configurações (Ctrl + ,) no menu suspenso do Terminal do Windows. Selecione o perfil em que você deseja aplicar a fonte, o PowerShell, por exemplo, e, em seguida, a guia Aparência. No menu suspenso Tipo da Fonte, selecione Fonte Nerd CaskaydiaCove ou qualquer fonte Nerd que você queira usar com o prompt personalizado.

Observação

Se você quiser usar uma fonte de terminal que não dê suporte a ícones de glifo, como Cascadia Code PL, considere usar um tema do Oh My Posh que contenha a função minimal, indicando que ícones adicionais não são necessários.

Personalizar o prompt do PowerShell com o Oh My Posh

O Oh My Posh permite que você use um conjunto de cores completo para definir e renderizar seu prompt de terminal, incluindo a capacidade de usar temas internos ou criar o próprio tema personalizado.

Instalar o Oh My Posh para PowerShell

Para personalizar o prompt do PowerShell, instale o Oh My Posh usando o winget. Insira o comando:

winget install JanDeDobbeleer.OhMyPosh

Isso instalará:

Você precisará concordar com os termos de origem e pode encontrar a instância em que mais de um pacote está disponível. Nesse caso, selecione a ID do pacote que você deseja usar e insira novamente o comando: winget install <package ID>.

Screenshot of winget install oh my posh packages.

Para usar a versão da Microsoft Store do Oh My Posh, que será atualizada automaticamente quando novas versões estiverem disponíveis, use o comando:

winget install XP8K0HKJFRXGCK

Insira oh-my-posh version para confirmar o número de versão de sua instalação Oh My Posh. Para garantir que você tenha as atualizações mais recentes, use o seguinte comando: winget upgrade oh-my-posh.

Observação

Se você quiser instalar a versão mais recente do Oh My Posh no PowerShell, convém primeiro remover os arquivos armazenados em cache do módulo OMP e desinstalar o módulo antigo. Essas são instruções sobre como fazer isso nos documentos do Oh My Posh. Se você estiver mais familiarizado com o instalador Scoop ou um método de instalação manual que permita automação, eles também poderão ser usados para instalação no Windows, basta seguir as instruções nos documentos do Oh My Posh.

Escolher e aplicar um tema de prompt do PowerShell

Você pode procurar a lista completa de temas na página de temas do Oh My Posh.

Escolha um tema e atualize seu perfil do PowerShell com este comando. Você pode substituir notepad pelo o editor de texto de sua escolha.

notepad $PROFILE

Se você receber um erro de caminho, talvez ainda não tenha um perfil para o PowerShell. Para criar um perfil, use o seguinte comando do PowerShell para criação de perfil e tente abri-lo com um editor de texto novamente.

new-item -type file -path $profile -force

Adicione o conteúdo a seguir ao final do seu arquivo de perfil do PowerShell para definir o tema paradox. Substitua paradox pelo tema de sua escolha.

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

Agora, cada nova instância do PowerShell será iniciada com a importação do Oh My Posh e a definição do seu tema de linha de comando.

Se você receber um erro de script ao tentar abrir uma nova instância do PowerShell, sua política de execução do PowerShell poderá ser restrita. Para definir sua política de execução do PowerShell como irrestrita, você precisará iniciar o PowerShell como administrador e, em seguida, usar o seguinte comando:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

Observação

Este não é o seu perfil do Terminal do Windows. Seu perfil do PowerShell é um script que é executado toda vez que o PowerShell é iniciado. Saiba mais sobre os perfis do PowerShell.

Dica

Confira as perguntas frequentes do Oh My Posh para obter respostas para perguntas ou problemas comuns. Para saber mais sobre a configuração e as configurações gerais, como restaurar o diretório de trabalho atual, confira a documentação do Oh My Posh.

Personalizar o prompt do WSL com o Oh My Posh

Agora o Oh My Posh permite que você personalize os prompts do WSL, assim como faria com um prompt do PowerShell usando temas integrados.

Instalar o Oh My Posh para WSL

É recomendável instalar o Oh My Posh para WSL, seja usando Bash, Zsh ou outro meio, seguindo o guia de instalação do Linux na documentação do Oh My Posh.

Atualmente, o caminho recomendado para personalizar prompts do WSL com o Oh My Posh usa o gerenciador de pacotes Homebrew para instalação. (Agora o Homebrew funciona com o WSL!) Ao instalar o Homebrew para Linux, siga as instruções das Próximas etapas para adicionar o Homebrew ao PATH e ao script de perfil do shell do bash.

O Homebrew instalará:

  • oh-my-posh – Executável, adicionado a /usr/local/bin
  • themes – Os temas mais recentes do Oh My Posh

Escolher e aplicar um tema de prompt do WSL

Os temas do Oh My Posh serão encontrados no diretório oh-my-posh como arquivos JSON. Encontre-os inserindo cd $(brew --prefix oh-my-posh) e, em seguida, basta inserir cd themes e ls para obter a lista. Para o Ubuntu-20.04 em execução via WSL, o caminho provavelmente será algo como: \\wsl.localhost\Ubuntu-20.04\home\linuxbrew\.linuxbrew\Cellar\oh-my-posh\6.34.1\themes. Você também pode ver a aparência dos temas nos documentos do Oh My Posh: Temas.

Para usar um tema, copie-o da pasta themes para sua pasta $Home e, em seguida, adicione essa linha à parte inferior do arquivo .profile encontrado na sua pasta $Home:

eval "$(oh-my-posh init bash --config ~/jandedobbeleer.omp.json)"

Você pode substituir jandedobbeleer.omp.json pelo nome do tema que preferir usar, desde que ele seja copiado para sua pasta $Home.

Como alternativa, se você estiver usando o oh-my-posh no Windows com o PowerShell e com o WSL, poderá compartilhar o tema do PowerShell com o WSL apontando para um tema na pasta base do seu usuário do Windows. No caminho da distribuição .profile do WSL, substitua ~ pelo caminho: /mnt/c/Users/<WINDOWSUSERNAME>. Substituindo <WINDOWSUSERNAME> por seu próprio nome de usuário do Windows.

Você pode personalizar os temas Oh My Posh, se quiser.

Use Terminal-Icons para adicionar ícones de pastas ou arquivos ausentes

Terminal-Icons é um módulo do PowerShell que adiciona ícones de arquivo e pasta que podem estar ausentes ao exibir arquivos ou pastas no Terminal do Windows, procurando o ícone apropriado com base no nome ou na extensão. Ele tenta usar ícones para arquivos/pastas conhecidos, mas usa um ícone de arquivo ou pasta genérico se não encontrar o ícone específico.

Para instalar Terminal-Icons com o PowerShell, use o comando:

Install-Module -Name Terminal-Icons -Repository PSGallery

Para obter mais informações, incluindo como usar e os comandos, confira o repositório Terminal-Icons no GitHub.

Recursos adicionais