🚀 Tutorial completo: Oh My Posh no Windows Terminal + Temas + Plugins
Este guia mostra como transformar o Windows Terminal + PowerShell em um terminal moderno e personalizado usando:
- 🎨 Oh My Posh
- 🔤 Nerd Font
- 🖼️ Temas personalizados
- 📁 Terminal-Icons
- ⌨️ PSReadLine
- 🧭 zoxide
- 🔎 PSFzf
- ⚡ Autocomplete e sugestões baseadas no histórico
- 🛠️ Aliases e funções úteis
[!TIP]O recomendado é utilizar o Windows Terminal com PowerShell 7. O Oh My Posh também funciona no Windows PowerShell 5.1, mas o PowerShell 7 oferece uma experiência mais moderna.
1. Pré-requisitos
Abra o Windows Terminal usando o PowerShell.
Para verificar a versão do PowerShell:
$PSVersionTable.PSVersion
Se você estiver usando PowerShell 7, deverá aparecer algo como:
Major Minor Patch
----- ----- -----
7 x x
Se estiver usando o Windows PowerShell antigo, normalmente aparecerá:
5 1 x
[!NOTE]Se você quiser instalar o PowerShell 7, procure por PowerShell na Microsoft Store ou instale pelo site oficial da Microsoft.
2. Instalar o Oh My Posh
A maneira mais simples atualmente é utilizar o winget.
Execute:
winget install JanDeDobbeleer.OhMyPosh --source winget
Depois da instalação, feche o Windows Terminal e abra novamente.
Verifique se o Oh My Posh está funcionando:
oh-my-posh version
Se aparecer a versão instalada, está tudo certo.
[!TIP]Caso o comando não seja encontrado imediatamente, feche completamente o Windows Terminal e abra uma nova janela.
3. Instalar uma Nerd Font
Os temas do Oh My Posh utilizam diversos símbolos e ícones.
Para que esses símbolos apareçam corretamente, é recomendado instalar uma Nerd Font.
Uma opção muito popular é:
CaskaydiaCove Nerd Font
Outra opção é:
MesloLGM Nerd Font
Você pode escolher qualquer Nerd Font que preferir.
Depois de instalar a fonte no Windows, abra o:
Windows Terminal
Entre em:
Settings
Depois:
Profiles
→ Defaults
→ Appearance
→ Font face
Selecione a fonte Nerd Font instalada.
Por exemplo:
CaskaydiaCove Nerd Font
Salve as alterações.
[!IMPORTANT]A fonte configurada no Windows Terminal deve ser a mesma fonte Nerd Font instalada no Windows. Caso contrário, os ícones do Oh My Posh podem aparecer como quadrados ou caracteres estranhos.
4. Criar o perfil do PowerShell
O PowerShell possui um arquivo chamado $PROFILE.
Esse arquivo é executado automaticamente sempre que o PowerShell é iniciado.
Para descobrir onde ele está:
$PROFILE
Para verificar se ele existe:
Test-Path $PROFILE
Se retornar:
False
crie o arquivo:
New-Item -Type File -Path $PROFILE -Force
Agora você pode abrir o perfil no Notepad:
notepad $PROFILE
Ou, se você usa VS Code:
code $PROFILE
5. Escolher um tema do Oh My Posh
O Oh My Posh possui diversos temas prontos.
Para descobrir onde os temas estão instalados:
$env:POSH_THEMES_PATH
Você pode listar os temas disponíveis:
Get-ChildItem $env:POSH_THEMES_PATH
Os temas possuem arquivos como:
paradox.omp.json
jandedobbeleer.omp.json
agnoster.omp.json
atomic.omp.json
avit.omp.json
blue-owl.omp.json
capr4n.omp.json
catppuccin.omp.json
clean-detailed.omp.json
cobalt2.omp.json
craver.omp.json
darkblood.omp.json
emodipt.omp.json
fish.omp.json
hul10.omp.json
powerlevel10k_lean.omp.json
powerlevel10k_rainbow.omp.json
robbyruss.omp.json
slim.omp.json
tokyo.omp.json
Você pode visualizar os temas disponíveis na galeria oficial do Oh My Posh.
6. Testar um tema temporariamente
Antes de configurar o tema permanentemente, você pode testá-lo.
Por exemplo:
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\paradox.omp.json" | Invoke-Expression
Se quiser testar outro:
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\tokyo.omp.json" | Invoke-Expression
Outro:
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\catppuccin.omp.json" | Invoke-Expression
Outro:
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\powerlevel10k_lean.omp.json" | Invoke-Expression
O tema será aplicado apenas à sessão atual.
Isso é ótimo para experimentar diferentes temas.
7. Configurar o tema permanentemente
Depois de escolher o tema, abra seu perfil:
notepad $PROFILE
Adicione:
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\paradox.omp.json" | Invoke-Expression
Troque:
paradox
pelo tema que você escolheu.
Por exemplo:
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\tokyo.omp.json" | Invoke-Expression
Salve o arquivo.
Agora reinicie o Windows Terminal.
Seu tema será carregado automaticamente sempre que o PowerShell iniciar.
8. Instalar Terminal-Icons
O Terminal-Icons adiciona ícones para arquivos e pastas diretamente no PowerShell.
Instale com:
Install-Module -Name Terminal-Icons -Repository PSGallery
Se aparecer uma confirmação sobre o repositório, confirme.
Depois, abra seu perfil:
notepad $PROFILE
Adicione:
Import-Module Terminal-Icons
Agora, quando você executar:
ls
ou:
Get-ChildItem
os arquivos e diretórios terão ícones.
9. Configurar autocomplete com PSReadLine
O PowerShell possui o módulo PSReadLine, que permite configurar sugestões e autocomplete.
Verifique se está instalado:
Get-Module PSReadLine -ListAvailable
Você pode instalar ou atualizar usando:
Install-Module PSReadLine -Scope CurrentUser -Force
Agora abra o perfil:
notepad $PROFILE
Adicione:
Import-Module PSReadLine
Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -PredictionViewStyle ListView
Set-PSReadLineOption -EditMode Windows
Isso habilita sugestões baseadas nos comandos que você já executou.
Por exemplo, se você já executou:
npm run build
e começar a digitar:
npm
o PowerShell poderá sugerir comandos anteriores.
Você pode navegar pelas sugestões usando:
↑
↓
ou selecionar uma sugestão da lista.
10. Habilitar autocomplete com Tab
O PowerShell já possui autocomplete com a tecla:
TAB
Por exemplo:
cd Doc
Pressione:
TAB
O PowerShell tentará completar:
Documents
Você também pode usar o Tab para completar:
- nomes de arquivos
- pastas
- comandos
- parâmetros
- módulos
- comandos do Git
11. Instalar zoxide
O zoxide é uma alternativa inteligente ao cd.
Ele aprende quais diretórios você acessa com frequência.
Depois de instalado, você poderá fazer algo como:
z projeto
E ele pode encontrar automaticamente um diretório que você acessa frequentemente contendo projeto no caminho.
Instale usando:
winget install ajeetdsouza.zoxide
Depois, abra o perfil:
notepad $PROFILE
Adicione:
Invoke-Expression (& { (zoxide init powershell | Out-String) })
Reinicie o PowerShell.
Agora você pode usar:
z nome-da-pasta
Para listar diretórios conhecidos:
zoxide query -l
12. Instalar PSFzf
O PSFzf combina PowerShell com o fzf, permitindo pesquisar arquivos, diretórios e histórico de comandos de forma interativa.
Instale o fzf:
winget install junegunn.fzf
Depois instale o módulo:
Install-Module PSFzf -Scope CurrentUser -Force
Abra seu perfil:
notepad $PROFILE
Adicione:
Import-Module PSFzf
Set-PsFzfOption -PSReadLineChordProvider 'Ctrl+f'
Set-PsFzfOption -PSReadLineChordReverseHistory 'Ctrl+r'
Agora:
Ctrl + F
pode ser utilizado para pesquisar arquivos e diretórios.
E:
Ctrl + R
para pesquisar no histórico de comandos usando uma interface fuzzy search.
13. Instalação completa recomendada
Depois de configurar tudo, seu $PROFILE pode ficar assim:
# ==========================================
# OH MY POSH
# ==========================================
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\tokyo.omp.json" | Invoke-Expression
# ==========================================
# TERMINAL ICONS
# ==========================================
Import-Module Terminal-Icons
# ==========================================
# PSREADLINE
# ==========================================
Import-Module PSReadLine
Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -PredictionViewStyle ListView
Set-PSReadLineOption -EditMode Windows
# ==========================================
# ZOXIDE
# ==========================================
Invoke-Expression (& { (zoxide init powershell | Out-String) })
# ==========================================
# PSFZF
# ==========================================
Import-Module PSFzf
Set-PsFzfOption -PSReadLineChordProvider 'Ctrl+f'
Set-PsFzfOption -PSReadLineChordReverseHistory 'Ctrl+r'
Salve o arquivo e reinicie o Windows Terminal.
14. Criar aliases úteis
Você também pode adicionar seus próprios aliases ao $PROFILE.
Por exemplo:
Set-Alias ll Get-ChildItem
Set-Alias c Clear-Host
Agora:
ll
é equivalente a:
Get-ChildItem
E:
c
limpa o terminal.
15. Criar funções personalizadas
Para comandos mais complexos, você pode criar funções.
Por exemplo:
function .. {
Set-Location ..
}
Agora:
..
volta uma pasta.
Você também pode criar:
function ... {
Set-Location ../..
}
Assim:
...
volta duas pastas.
Outro exemplo:
function home {
Set-Location $HOME
}
Agora:
home
leva você diretamente para sua pasta de usuário.
16. Criar comandos rápidos para projetos
Se você trabalha com programação, pode criar atalhos para seus projetos.
Por exemplo:
function projeto {
Set-Location "C:\Users\SeuUsuario\Documents\Projetos\MeuProjeto"
}
Agora basta executar:
projeto
Para entrar diretamente na pasta.
Você também pode criar comandos para abrir o VS Code:
function codeprojeto {
Set-Location "C:\Users\SeuUsuario\Documents\Projetos\MeuProjeto"
code .
}
Agora:
codeprojeto
entra na pasta e abre o projeto no VS Code.
17. Recarregar o perfil sem reiniciar o terminal
Depois de modificar o $PROFILE, você pode recarregar as configurações usando:
. $PROFILE
Isso executará novamente o seu perfil.
Caso você tenha alterado o tema do Oh My Posh e queira atualizar:
. $PROFILE
18. Verificar se tudo está funcionando
Execute:
oh-my-posh version
Depois:
Get-Module Terminal-Icons
Depois:
Get-Module PSReadLine
Depois:
zoxide --version
E:
fzf --version
Se todos retornarem informações de versão ou módulo, sua instalação está funcionando.
19. Resultado final
Com tudo configurado, sua experiência ficará aproximadamente assim:
╭─ user@PC ~/Projetos/meu-projeto main
╰─ ❯
Você terá:
🎨 Oh My Posh
└── Tema personalizado
🔤 Nerd Font
└── Ícones e símbolos
📁 Terminal-Icons
└── Ícones para arquivos e pastas
⌨️ PSReadLine
├── Histórico inteligente
├── Autocomplete
└── Sugestões de comandos
🧭 zoxide
└── Navegação inteligente entre diretórios
🔎 PSFzf
├── Busca fuzzy de arquivos
└── Busca no histórico
🛠️ PowerShell Profile
├── Aliases
├── Funções
└── Atalhos personalizados
20. Meu $PROFILE recomendado
Para um setup de desenvolvedor, eu recomendo começar com algo simples:
# ==========================================
# OH MY POSH
# ==========================================
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\tokyo.omp.json" | Invoke-Expression
# ==========================================
# TERMINAL ICONS
# ==========================================
Import-Module Terminal-Icons
# ==========================================
# PSREADLINE
# ==========================================
Import-Module PSReadLine
Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -PredictionViewStyle ListView
Set-PSReadLineOption -EditMode Windows
# ==========================================
# ZOXIDE
# ==========================================
Invoke-Expression (& { (zoxide init powershell | Out-String) })
# ==========================================
# PSFZF
# ==========================================
Import-Module PSFzf
Set-PsFzfOption -PSReadLineChordProvider 'Ctrl+f'
Set-PsFzfOption -PSReadLineChordReverseHistory 'Ctrl+r'
# ==========================================
# ALIASES
# ==========================================
Set-Alias ll Get-ChildItem
Set-Alias c Clear-Host
# ==========================================
# FUNÇÕES
# ==========================================
function .. {
Set-Location ..
}
function ... {
Set-Location ../..
}
function home {
Set-Location $HOME
}
Depois de salvar:
. $PROFILE
E pronto. Você terá um PowerShell moderno dentro do Windows Terminal, com prompt personalizado, ícones, autocomplete, histórico inteligente, navegação rápida e busca fuzzy.
[!TIP]O mais importante é instalar primeiro o Oh My Posh + Nerd Font, testar alguns temas e só depois adicionar os módulos. Se alguma coisa quebrar, fica muito mais fácil identificar qual componente causou o problema.
🔗 Referências
- Documentação oficial do Oh My Posh
- Documentação da Microsoft sobre customização do Windows Terminal
- Documentação do PowerShell e PSReadLine