DEV Community

Cover image for Personalizando o Windows Terminal
Daniela Caus
Daniela Caus

Posted on

Personalizando o Windows Terminal

 1. Programas
       1.1. Windows Terminal
       1.2. Powershell
       1.3. Scoop
 2. Aparência do Powershell
       2.4. Oh-my-posh
       2.5. Nerd Fonts
       2.6. Terminal Icons
 3. Extensões de autocomplete
       3.7. Z
       3.8. PSReadLine
       3.9. Posh git
 4. Conclusão


Recentemente tive mais contato com outros desenvolvedores via pair programming, e percebi o quanto o terminal deles era mais agradável de usar.

Com isso, conheci alguns programas e extensões que tornam a experiência de navegação entre as pastas muito mais simples, além de deixá-lo visualmente mais agradável e informativo. Mesmo quando uso o terminal no VS Code, a diferença foi gritante:

Terminal como usava antes, que era o bash no VS Code

Meu terminal depois, usando o Powershell no Windows terminal

Ainda não parti para o lado Linux ou Mac da força, então fui pesquisar por soluções no bom e tradicional Windows, mesmo.

Se você tem interesse em ter uma experiência melhor no terminal usando Windows, dá uma olhada no que fiz por aqui e veja se tem algo que quer replicar por aí!

Programas

Inicialmente eu usava só o git bash no próprio VS Code. Quando passei a usar mais de um repositório para rodar uma aplicação, senti a necessidade de ter um terminal onde eu pudesse acompanhar os comandos que eu rodava em cada um, de forma mais centralizada, sem que necessariamente eu tivesse que abrir a IDE. Pra isso, baixei programas que me permitisse usar abas (cada uma acessando um path independente, como o VS Code permite), e um terminal mais atualizado.

Windows Terminal

Esse programa pode ser baixado na Microsoft Store, que geralmente vem com o Windows. Segue aqui o link para te dar um atalho.

Pra mim, ele tem sido melhor que o Windows Powershell, porque me permite abrir várias abas do terminal, assim como geralmente fazemos com abas de um navegador. Também é possível deixar a aparência dele mais bonitinha, se você gostar desses "fru-frus", como eu. Sem os outros programas que mencionarei mais pra frente, logo de início, já é possível deixá-lo assim:

Windows terminal com letras todas cinza claro e fundo com transparência fosca

Para adicionar essa transparência é necessário mexer nas configurações, mas isso já te ensino, porque antes quero apresentar uma versão mais atualizada do terminal que vem com o Windows.

Powershell

É uma versão mais atualizada do Windows Powershell que vem com o Windows (esse azul abaixo). A Microsoft fala que as duas versões podem ser usados em conjunto, fazendo com que a instalação de um não substitua o outro, mas não sei o porquê desse comportamento. Também é possível instalar o Powershell a partir da versão 7 na loja da Microsoft, nesse link.

Windows Powershell, uma versão mais antiga

Agora sim, vamos ver como deixar o Windows Terminal com uma aparência um pouco mais amigável, além de alterar o terminal padrão para o PowerShell.

No Windows Terminal, selecione as configurações seguindo os caminhos a seguir:

Inicialização > Perfil padrão: Powershell
Aparência > Usar material acrílico [...]: Ativado
Padrões > Aparência:

  • Esquema de cores: Vintage
  • Transparência > habilitar material acrílico: Ativado
  • Transparência > Opacidade de fundo: 70%

Essas são algumas das configurações do meu terminal, mas é legal ir explorando para entender as suas preferências.

Scoop

O Scoop é um "instalador" de programas, assim como o Winget (que geralmente já vem com o Windows). Esse é um programa opcional, não vou usá-lo para as extensões que eu mencionar nesse artigo, mas ele pode te ajudar a instalar vários outros programas via linha de comando, de uma forma mais rápida e simples, sem aquelas telinhas de download e instalação (dá até pra usá-lo para instalar o Spotify, por exemplo).

A instalação do Scoop pode ser feita com os dois comandos abaixo:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iex
Enter fullscreen mode Exit fullscreen mode

Obs.: O primeiro comando é uma configuração importante para que seja possível instalar coisas remotamente na sua máquina. Sem isso, pode ser que seu Windows não permita a instalação nesse formato.

Em seguida, é necessário adicionar o diretório C:\Users\<USERNAME>\scoop\shims (lembre de adaptar esse endereço para o seu username na sua máquina) como um novo diretório dentre as variáveis ambiente da máquina dentro de Path:

  • Clique na tecla Windows do teclado e busque por "variáveis ambiente". Deve aparecer a opção "Editar as variáveis ambientes do sistema". Selecione essa opção.
  • Clique em "Variáveis ambiente"
  • Selecione a opção "Path" dentro de "variáveis do Sistema", e depois clique em "editar"
  • Selecione "novo", e digite o diretório informado acima. No meu caso, foi assim:

Passo a passo para editar as variáveis ambientes no Windows 10

Aparência do Powershell

Por mais que já tenha mencionado algumas configurações que personalizam a aparência do Windows terminal, agora vou especificar alguns programas que também personalizam o conteúdo dele.

Oh-my-posh

Essa é uma extensão que personaliza a aparência e o conteúdo da linha de comando. Por aqui, incluí o nome do usuário, o caminho da pasta, a branch atual, e a hora, cada uma dessas partes com uma cor que gosto:

Meu terminal com oh-my-posh, bem colorido

Para instalar o oh-my-posh, uma das opções é usar o winget:

winget install JanDeDobbeleer.OhMyPosh -s winget
Enter fullscreen mode Exit fullscreen mode

No site da aplicação tem outras opções de instalação (inclusive com scoop!), caso não queira usar essa, ou encontre algum tipo de problema.

Depois dessa instalação, é necessário que o perfil do seu terminal identifique que ele precisa usar o oh-my-posh. Pra isso, vamos abrir o perfil do Powershell no VS Code com o comando abaixo 1:

code $PROFILE
Enter fullscreen mode Exit fullscreen mode

ATENÇÃO: É importante usar esse comando dentro do terminal Powershell, uma vez que é dele que estamos falando. Se abrir dentro do Windows Powershell, por exemplo, já será outro perfil.

O Powershell lê e executa os comandos desse arquivo a cada vez que é aberto. Nele, copie e cole o seguinte comando:

oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\jandedobbeleer.omp.json"
Enter fullscreen mode Exit fullscreen mode

Salvando esse arquivo e abrindo uma nova aba no terminal, você já verá algo como a imagem abaixo. Pode ser que os ícones ainda não estejam aparecendo, mas isso está relacionado à fonte, que falarei na próxima aplicação:

Terminal com o tema Jandedobbeleer

Caso queira utilizar um dos temas incluídos na instalação do oh-my-posh, você pode explorar nessa página. Basta substituir o nome do tema no comando do perfil do Powershell que você copiou acima. Se quiser usar o "M365Princess", por exemplo, é só trocar o comando no arquivo por:

oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\M365Princess.omp.json"
Enter fullscreen mode Exit fullscreen mode

No meu caso, eu fiz um tema personalizado. Se quiser fazer o mesmo, você pode criar um arquivo JSON e informar o caminho até ele nesse comando para o oh-my-posh do perfil do Powershell. O Oh-my-posh ensina a fazer isso na seção de configuração de sua documentação. Se quiser usar o meu, ele está aqui, lembrando eu posso tê-lo modificado dependendo do momento do futuro em que você estiver lendo isso.

Nerd Fonts

Para que os ícones do seu terminal apareçam, o oh-my-posh precisa que você use uma fonte compatível com eles, e uma das recomendações da própria aplicação é instalar uma fonte dentre as "Nerd Fonts".

Você pode baixar diretamente do repositório deles, ou usando um comando do oh-my-posh:

oh-my-posh font install
Enter fullscreen mode Exit fullscreen mode

Essa última forma é bem intuitiva, basta selecionar uma das fontes e ele fará a instalação. Depois disso você precisará selecionar a fonte baixada nas configurações do Windows Terminal:

Seleção de fonte no terminal

Caso tenha baixado a fonte de outra forma, você também deve encontrá-la nas configurações.

Terminal Icons

Essa é mais uma extensão para melhorar a aparência do terminal, acrescentando ícones do tipo de arquivo ou pasta que está na lista:

Comando "ls" com o Terminal Icons instalado

Para instalar, basta rodar os seguintes comandos no seu terminal:

Install-Module -Name Terminal-Icons -Repository PSGallery -Force
Import-Module Terminal-Icons
Enter fullscreen mode Exit fullscreen mode

A cada vez que você abrir seu terminal, para ver o terminal Icons em funcionamento, você precisaria rodar novamente o comando Import-Module Terminal-Icons. Para que isso não seja necessário, basta acrescentar esse comando no arquivo de perfil do Powershell. (Lembra como faz isso? -> code $PROFILE).

Extensões de autocomplete

Ok, já falei bastante de extensões que deixam o terminal mais bonito. A partir daqui, vou mostrar algumas que são mega úteis para facilitar o dia a dia, especialmente na navegação entre as pastas.

Z

Essa extensão é um intellisense que consegue aprender com a navegação que você faz entre as pastas, possibilitando que não seja mais necessário digitar o caminho completo quando estiver navegando entre uma e outra.

Gif do Z em ação no Windows Terminal

Como se trata de um intellisense, ele precisa que você faça algumas navegações entre as pastas para "aprender" os que mais acessa. Com isso, é natural que ele não aja conforme o gif acima das primeiras vezes, mas ele aprende bem rápido.

Para instalá-lo, basta digitar o comando:

Install-Module -Name Z -Force
Enter fullscreen mode Exit fullscreen mode

PSReadLine

O PSReadLine é um módulo do Powershell que permite o autocomplete de uma forma inteligente, também. Algumas configurações interessantes podem ser usadas para visualizar e navegar pelo histórico de comandos similares ao que você está digitando:

Histórico de comandos com PSReadline configurado

Para instalar, o comando é:

Install-Module -Name PSReadLine -AllowPrerelease -Force -SkipPublisherCheck
Enter fullscreen mode Exit fullscreen mode

Agora, para que as opções apareçam conforme a imagem acima, vamos colocar mais alguns comandos no perfil do Powershell (aquele code $PROFILE maroto).

Set-PSReadlineKeyHandler -Key Tab -Function MenuComplete

Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -PredictionViewStyle ListView
Enter fullscreen mode Exit fullscreen mode

Você pode aprender mais sobre esses comandos na documentação do PSReadLine

Posh git

O PSReadLine e o Z conseguem dar conta de facilitar o uso de vários comandos, no entanto o posh-git ajuda particularmente no autocomplete dos comandos do git. Um simples "tab" após digitar git checkout, por exemplo, faz com que apareçam todas as opções de branches existentes no projeto.

Autocomplete com Posh Git

Não só isso, mas existem outros vários benefícios que essa extensão pode trazer.

Para usar, basta rodar o comando:

Install-Module posh-git -Scope CurrentUser -Force
Enter fullscreen mode Exit fullscreen mode

Conclusão

Com essas configurações, a linha de comando fica mais apresentável e fácil de navegar. Ela pode até mesmo se tornar mais informativa, caso sejam incluídos alguns segmentos específicos do oh-my-posh.

Para as configurações de aparência, acrescentamos basicamente algumas cores e ícones, mas também adicionamos blocos de conteúdo baseados no diretório em que você se encontra na navegação de pastas e arquivos.

Já as extensões de autocomplete permitem que ferramentas inteligentes usem o seu histórico de comandos para diminuir o tanto que você digita no terminal.

Além das configurações que ensinei por aqui, também é possível dar até mesmo um "apelido" para alguns comandos, como por exemplo para o git, usando:

Set-Alias g git
Enter fullscreen mode Exit fullscreen mode

Usando esse Set-Alias no seu perfil do Powershell, você pode escrever g no lugar de git, e economizar umas letrinhas.

Por fim, compartilho com você o meu arquivo de perfil do Powershell:

# Prompt
# Import-Module oh-my-posh
Import-Module posh-git
Import-Module -Name Terminal-Icons

# Carrega configurações do prompt
oh-my-posh init pwsh --config ~\Documents\PowerShell\danicaus.omp.json | Invoke-Expression

# Navegação com autocomplete
Set-PSReadlineKeyHandler -Key Tab -Function MenuComplete
Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward

Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -PredictionViewStyle ListView

# Adaptando comandos do teclado
Set-Alias vim nvim
Set-Alias g git
Enter fullscreen mode Exit fullscreen mode

Espero que essas informações tenham sido uteis pra você!

Caso tenha alguma dúvida ou sugestão de mais extensões para deixar o Powershell ainda melhor, comente aí embaixo! 💻


  1. Também é possível usar o bloco de notas, trocando a palavra "code" por "note". 

Top comments (1)

Collapse
 
jhonatanjunio profile image
Jhonatan "oNinjaDev" Junio

Ótimo artigo! Queria ter lido ele há um tempo atrás, onde tive de juntar um monte de informação espalhada 🥲
Mas antes tarde do que nunca! Agora sei qual artigo indicar quando alguém me perguntar como personalizar o terminal hehe
Parabéns Dani! Sucessooooo