Windows Terminal
O Windows Terminal finalmente chegou para trazer uma melhor experiência para nossa vida via CLI, algo que era algo distante para usuários Windows.
Enquanto o Mac e Linux possuem diversas customizações para seus terminais, o Windows parecia ter parado no tempo com aquela tela azul do Power Shell.
Embora houvessem alternativas como o Hyper.js e CMDER, é sempre bom ter algo oficial, suportado pela Microsoft, e convenhamos, qual a dificuldade em suportar temas e customizações?
Instalação
Caso ainda não possua o Windows Terminal instalado, você pode fazer seu Download em uma das fontes oficiais listadas abaixo.
Políticas do Power Shell
Em alguns casos, durante a execução de comandos NPM no Windows, você poderá receber um erro com a seguinte mensagem: "O arquivo XXXX não pode ser carregado porque a execução de scripts foi desabilitada neste sistema"
Isto ocorre pois as políticas de execução do Power Shell em seu sistema não estão habilitada. Para resolver este problema, feche todos os terminais abertos e abra um novo Power Shell em modo administrador (Clicar com botão direito do mouse sobre o ícone do Power Shell e acessar a opção Executar como Administrador).
Nesta nova janela que se abriu, como administrador, execute o seguinte comando:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Feche novamente a janela e reabra o Power Shell ou qualquer terminal que esteja utilizando. Desta vez não precisa ser como administrador. O erro deve parar de acontecer.
Posh-git e Oh-my-posh
Para esta customização vamos precisar de dois módulos adicionais, o Posh-git e Oh-my-posh, que podem ser instalados utilizando os comandos abaixo no Windows Terminal.
Install-Module posh-git -Scope CurrentUser
Install-Module oh-my-posh -Scope CurrentUser
Enquanto o Posh-git vai nos dar várias informações sobre o repositório atual, como branch, commits entre outros, o Oh-my-posh vai tornar tudo mais bonito.
Alterando o perfil
Com os módulos instalados, vamos configurar o perfil do terminal para sempre carregar estes módulos durante sua inicialização.
Para este passo, precisaremos do Visual Studio Code instalado.
Execute o seguinte código para abrir seu perfil atual no VS Code em modo de edição.
code $PROFILE
Em seguida, adicione as seguintes linhas ao arquivo:
Import-Module posh-git
Import-Module oh-my-posh
Set-PoshPrompt Paradox
O que fizemos foi carregar os dois módulos instalados e definir o tema padrão como Paradox. Você pode conferir a lista completa de temas aqui.
Fontes
O Oh-my-posh utiliza alguns ícones para exibir a branch atual do repositório, dentre outros, então precisamos instalar alguma fonte que dê suporte ao mesmo.
Particularmente, prefiro a Source Code Pro for Powerline, mas a nova fonte, lançada recentemente pela Microsoft, chamada Cascadia também é muito bonita. Aí vai do seu gosto.
Feita a instalação das fontes, abra um novo Windows Terminal (Caso não esteja aberto) e pressione CTRL+, para exibir as configurações do mesmo.
Então realize a alteração da configuração fontFace
conforme mostrado abaixo:
Versão Source Code Pro
"fontFace": "Source Code Pro for Powerline",
Versão Cascadia Code
"fontFace": "Cascadia Code PL"
Fontes adicionais do OhMyPosh
ATUALIZADO EM 15/01/2022 Para utilizar o OhMyPost você precisa instalar a fonte Caskadya Cove Nerd Font.
Configurações adicionais
Em adicional, eu gosto de sempre limpar a tela do terminal em seu início, e isto pode ser feito utilizando a linha Clear-Host
como mostrado abaixo. Também podemos adicionar uma mensagem de boas vindas utilizando o Write-Host
.
Para finalizar, podemos trocar o nome da variável que exibe o caminho atual, para ter algo mais curto, sem o nome do usuário/computador por exemplo. Isto é feito utilizando o $DefaultUser
.
Execute novamente o código em um terminal para abrir seu perfil atual no VS Code em modo de edição.
code $PROFILE
Em seguida, acrescente as seguintes linhas ao arquivo:
Clear-Host
Write-Host "balta.io"
$DefaultUser = 'balta'
Power Level 10K
O Power Level 10K é um tema bem robusto, mas que exige algumas configurações extras. Particularmente tenho usado e recomendo.
Fontes
Baixe e instale as fontes Meslo for PowerLine, utilizadas no tema:
Instalação
O PW10K exige um arquivo chamado pwsh10k.omp.json
na raiz da sua pasta raiz, a $HOME
. Ele sugere o seguinte processo:
- Abra um terminal e execute
git clone https://github.com/Kudostoy0u/pwsh10k
- Navegue para a pasta
cd pwsh10k
- Execute o PS1 para instalar o tema
.\install.ps1
Aqui este modo não funciou, deu problema de permissão na execução do script PS1, então fiz o processo manual:
- Abra um terminal e execute
git clone https://github.com/Kudostoy0u/pwsh10k
- Navegue para a pasta
cd pwsh10k
- Abra a pasta pelo Windows Explorer executando
explorer.exe .
- Copie o arquivo
pwsh10k.omp.json
- Volte ao terminal e navegue para
cd $HOME
- Abra a pasta pelo Windows Explorer executando
explorer.exe .
- Cole o arquivo
pwsh10k.omp.json
- Feche todos os terminais e abra novamente
Pronto, agora só precisamos alterar o tema para o PW10, executando code $PROFILE
no Terminal e alterando o arquivo para o seguinte:
Import-Module posh-git
Import-Module oh-my-posh
Set-PoshPrompt -Theme ~/pwsh10k.omp.json
Módulos adicionais (2022)
ATUALIZADO EM 12/01/2022
Adicionando ícones as pastas
O módulo PSGallery
adiciona ícones as pastas quando usamos o comando ls
. Fica bem legal e ele muda a cor inclusive.
Install-Module -Name Terminal-Icons -Repository PSGallery
Com o módulo instalado, basta importar ele no arquivo do profile.
Import-Module -Name Terminal-Icons
Adicionando módulos
Um dos recursos incríveis do Oh My Posh é o uso módulos ou como eles chamam, Segments. Tem diversos segments, até para Spotify. Neste exemplo vamos usar o do Git
, .NET
e Azure
, mas recomendo ver este link na sessão Segments para mais detalhes.
Para adicionar segmentos eu criei um arquivo chamado ohmyposh.json
no $HOME
do Windows (Vale para Mac ou Linux também) e depois referenciei ele no arquivo de perfil (code $PROFILE
). Como o arquivo ficou grande, segue o GIST dele.
Import-Module oh-my-posh
Import-Module -Name Terminal-Icons
Clear-Host
oh-my-posh --init --shell pwsh --config ~/ohmyposh.json | Invoke-Expression
Reinicie os terminais abertos e pronto 💜