# Customizando o terminal do Windows — Como deixar o Terminal Windows Bonito e performático

Uma das ferramentas que está sempre com você como desenvolvedor de software, é o Terminal (ou se preferir, Console). Portanto, podemos usar alguns módulos e extensões para fazer com que ele se torne mais inteligente e nos ajude ainda mais em produtividade no dia-a-dia.

![](https://miro.medium.com/v2/resize:fit:700/1*rRJjQ1rC8K7A8kVWt8LkEw.png align="center")

## **First things First**

Primeiramente o mais importante. Nesse post irei mostrar como configurar o básico do terminal e como deixar ele pronto para otimizar no dia-a-dia de dev. Mas se você quiser também dá aquele boost em sua máquina (ou instancia) Linux ou MacOS, aqui [neste outro artigo](https://medium.com/@allansrc/boosting-up-your-terminal-for-development-productivity-9bc07404ef1e) mostro como fazer nessas plataformas :)

### **O que terei no final desse “Guia”?**

Eu escolhi alguns módulos que ajudam no trabalho, por exemplo:  
\- Preenchimento automático de comando em linha;  
\- Sugestões comuns/mais usados;  
\- Indicadores de Git, Path e Projeto;  
\- E destaque coloridos para ajuda na semântica do comando (Temas!).

![](https://miro.medium.com/v2/resize:fit:700/1*Vw1ntD5Vcu-K19sKAlJwQQ.png align="center")

### **Ferramentas**

Para podermos ter esses módulos auxiliares, vamos precisar de está usando o **OhMyPosh** no app **Windows terminal**, que pode ser baixado na Microsoft Store, pelo gerenciador de pacote da microsoft [**winget**](https://learn.microsoft.com/pt-br/windows/package-manager/winget/), ou [**scoop**](https://scoop.sh/)*(que é o ‘homebrew’ para Windows)* e até diretamente pelo powershel (manual)*.*

Caso o Windows Terminal já não esteja instalado na sua máquina, instale usando uma das opções que preferir, mas recomentdo usar o app da loja Microsoft: [**link**](https://www.microsoft.com/store/productId/9N0DX20HK701?ocid=pdpshare). Em sequida instale o OhMyPosh usando uma das opções abaixo. Copie e cole o comando no seu terminal (Windows Terminal / PowerShell):  
\- **winget**::

```plaintext
winget install JanDeDobbeleer.OhMyPosh -s winget
```

\- **scoop:**

```plaintext
scoop install https://github.com/JanDeDobbeleer/oh-my=posh/releases/lastest/download/oh-my-posh.json
```

\- **manual:**

```plaintext
Set-ExecutionPolicy Bypass -Scope Process -Force; Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://ohmyposh.dev/install.ps1'))
```

Feito isso, reinicie o terminal, e terá instalado o ohmyposh e o seu pacote de temas. Caso deseje ver o caminho que foi feito a instalação, execute o seguinte comando:

```plaintext
(Get-Command oh-my-posh).Source
```

### **Temas e Fontes**

O próximo passo agora, é fazer a instalação da Fonte. Assim poderemos ter os ícons de branching do Git, *font-ligatures* etc. Para esse Setup eu escolhi a Fonte **FiraCode** que venho usando há bastante tempo e nunca tive problemas, uso inclusive como fonte pricipal do VSCode.

Para instalar a fonte basta rodar o seguinte comando no terminal e selecionar a fonte desejada com as setas (⬆️/⬇️). Para esse exemplo recomendo descer até achar a fonte **FiraCode Nerd Font**:

```plaintext
oh-my-posh font install
```

Após a instalação, vá nas configurações do terminal. Por padrão o atalho `ctrl+,` abre as configurações, mas caso não funcione, basta clicar no ícone de contexto do terminal e navegar para as configurações e em seguida selecione a opção “Abrir o arquivo JSON” (Imagens abaixo):

![](https://miro.medium.com/v2/resize:fit:700/1*klTRd6GLvibz6GH_XUe5SQ.png align="center")

![](https://miro.medium.com/v2/resize:fit:700/1*eIjUo9aubgDWvd8YpF-6gw.png align="center")

Feito isso, no arquivo aberto, localize a key **profile/defaults** e deixe a key **font** com o valor como no exemlo abaixo. Caso não exista a key fonte, adicione-a.

```plaintext
{
    "profiles":
    {
        "defaults":
        {
            "font": 
            {
                "face": "FiraCode Nerd Font"
            }
        }
    }
}
```

Para adicionar suporte às fontes no terminal integrado do VSCode, você só precisa abrir o vscode, precisone F1 para abrir a command pallet e digitar **“settings json”** e selecionar a opção para abrir as configurações do vscode “Open User Settings (JSON)”. Localize e altere o campo **terminal.integrated.fontFamily** como na imagem abaixo, salve e reinicie o vscode, e tudo certo!

![](https://miro.medium.com/v2/resize:fit:700/1*vs944sEjTA46Ofl_2_YPbQ.png align="center")

Agora partimos para os temas. Edite seu script de profile do PowerShell. Você pode encontrar-lo na variável **$PROFILE** do PowerShell. Por exemplo, usando o VSCode:  
`code $PROFILE`  
Caso o comando gere algum erro, ou o arquivo ainda não existir crie o arquivo e tente novamente.  
Para criar o arquivo execute o seguinte comando:

```plaintext
New-Item -Path $PROFILE -Type File -Force
```

Ao conseguir abrir o arquivo, adicione o sequinte código e salve:

```plaintext
oh-my-posh init pwsh | Invoke-Expression
```

Depois de adicionado, recarregue seu PROFILE para que as alterações tenham efeito, ou reinicie o terminal. Agora você notará que o terminal já está diferente.

![](https://miro.medium.com/v2/resize:fit:700/1*8rK_qHDBDx3wWETNSOCFXw.png align="center")

terminal with ohmyposh prompt

## **Toques finais**

Agora já temos o teminal com quase tudo pronto. Caso queira explorar a diversidade de temas basta rodar o comando `Get-PoshThemes` que será listado os temas e o comando para o selecionar como default.

![](https://miro.medium.com/v2/resize:fit:700/1*Lm9V1srpYyO1xp35qrpjUA.png align="center")

Por exemplo, no meu caso o comando exemplo foi:

```plaintext
oh-my-posh init pwsh --config 'C:\Users\allan\AppData\Local\Programs\oh-my-posh\themes\jandedobbeleer.omp.json' | Invoke-Expression
```

Caso eu queira mudar o tema para o “zash” basta eu substituir o path do arquivo final, por exemplo: de `..\themes\jandedobbeler.omp.json` por `.\themes\zash.omp.json`

Para concluir, vamos abrir o arquivo $PROFILE novamente e colar o código abaixo, após isso, salve e reinicie o terminal:

```plaintext
Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -HistorySearchCursorMovesToEnd
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward
```

Isso adicionará o **Predictive IntelliSense** que é implementado no mecanismo do PowerShell e apresentado por meio do módulo PSReadLine e fornece previsão baseada em histórico no **InlineView**.

Caso você esteja vendo algum erro no seu terminal ao abrir ou ao tentar execultar alguns dos comando desse guia parecido com o retorno abaixo, você precisará atualizar seu módulo PSReadline:

> ***Get-PSReadLineKeyHandler : A parameter cannot be found that matches parameter name ‘Key’***

Para atualizar basta seguir os passos de instalação/update da documentação oficial do PSReadLine disponível [aqui](https://github.com/PowerShell/PSReadLine#install-from-powershellgallery-preferred).

E *Voilà*! O terminal está pronto para uso e otimizado com complementos para ferramentas comuns como git, Node, comandos baseados no histórico de execução, realce de sintaxe com indicador de comando ausente e assim por diante!!

![](https://miro.medium.com/v2/resize:fit:700/1*Vw1ntD5Vcu-K19sKAlJwQQ.png align="left")

Espero que você goste e que essas dicas economizem alguns segundos por dia e horas por semana ou por ano em seu trabalho.  
Até mais, e Até!

[**#2Articles1Week**](https://hashnode.com/n/2articles1week)
