Já experimentou o Windows Terminal?
Tags: windows, productivity
Published: 2022-07-04 17:34:13

**_ATUALIZAÇÃO: As versões mais novas do Windows Terminal (a partir da versão 1.7.1033.0) agora contam com uma tela de configuração facilitando e muito a personalização da aplicação. Configura a seção [Configurando o Terminal](/2021/01/19/Ja-experimentou-o-Windows-Terminal/#Configurando-o-Terminal) para mais detalhes._**

Se você é um programador ou tem algum trabalho mais técnico, com certeza já precisou utilizar a linha de comando para alguma coisa, seja para instalar algum pacote do NPM, fazer um commit no GIT ou qualquer outra atividade em que nem sempre existe uma interface gráfica.

No Windows, para isso você pode utilizar diretamente uma janela do PowerShell ou do Prompt de Comando, ou utilizar ferramentas de terminais como o [ConEmu](https://conemu.github.io/) ou o [cmdr](https://cmder.net/).

Porém, pensando em ter uma ferramenta feita especificamente para o Windows, a Microsoft investiu na criação do Windows Terminal, uma ferramenta de terminal moderna que já conta com diversas funcionalidades interessantes, e que vem sendo melhorada a cada versão.

Eu utilizo o Windows Terminal desde o seu lançamento, e se você ainda não utiliza, vale a pena experimentar.
Vou te mostrar como instalar e começar a utilizá-lo, assim como também aproveitar e mostrar algumas configurações e personalizações possíveis para ele.

<!-- more -->

# Instalando o Windows Terminal

A primeira coisa a se fazer é instalar o Windows Terminal. Você pode fazer isso de duas maneiras: pela loja de aplicativos da Microsoft, ou direto pela página do projeto do Windows Terminal no GitHub.

Se o seu computador tiver acesso à Microsoft Store, basta procurar por "Windows Terminal" na loja ou acessar a [página da aplicação](https://www.microsoft.com/store/productId/9N0DX20HK701) e selecionar a opção para fazer a instalação.

_É recomendado fazer a instalação pela Microsoft Store pois você receberá atualizações de versões automaticamente._

![](https://lfrigodesouzaimages.blob.core.windows.net/images/ja-experimentou-o-windows-terminal/microsoft_store_install.png)

Caso seu computador é corporativo e possui algum tipo de restrição para acessar a Microsoft Store ou você não consiga fazer a instalação por lá, você pode fazer o download do terminal direto pela [página do projeto no GitHub](https://github.com/microsoft/terminal/tags).
Por exemplo, na data de criação desde artigo, a versão mais recente disponível é a [v1.4.3243.0](https://github.com/microsoft/terminal/releases/tag/v1.4.3243.0). Em cada página de versão, além das novas funcionalidades e alterações da aplicação, ao final da página estão disponíveis os instaladores. Baixe o instalador e execute-o para instalar o Windows Terminal no seu computador.

![](https://lfrigodesouzaimages.blob.core.windows.net/images/ja-experimentou-o-windows-terminal/github_install.png)

# Funcionalidades

Após a instalação, busque pelo Windows Terminal no menu Iniciar do seu Windows, e execute a aplicação.
Automaticamente o Windows Terminal irá verificar quais ferramentas de linha de comando e shells estejam instaladas no computador, e irá deixá-las disponíveis no menu dinamicamente.
Por exemplo, eu possuo a versão [core do PowerShell](https://github.com/powershell/powershell) instalada, assim como o Ubuntu do [Windows Subsystem for Linux (WSL)](https://docs.microsoft.com/pt-br/windows/wsl/about), e automaticamente elas ficam disponíveis para mim.

![](https://lfrigodesouzaimages.blob.core.windows.net/images/ja-experimentou-o-windows-terminal/lista_de_perfis.png)

Você pode abrir múltiplas abas de um mesmo terminal, ou abas de terminais diferentes.
Utilizando o comando `ctrl + shift + p` será exibida uma caixa de comando com uma lista de comandos que você pode escolher para interagir com os terminais e com a aplicação, como deixar em modo de tela cheia, dividir uma aba com múltiplos terminais, aumentar tamanho da fonte, deixar o Windows Terminal sempre no topo de outras janelas, etc.

![](https://lfrigodesouzaimages.blob.core.windows.net/images/ja-experimentou-o-windows-terminal/caixa_de_comandos.png)

Essa lista de comandos também mostra os atalhos do teclado para diversos desses comandos. Eu particularmente gosto sempre de decorar os atalhos para agilizar os comandos que eu mais utilizo, e o Windows Terminal também permite que você configure atalhos personalizados (já irei mostrar como).

# Configurando o Terminal

Assim como o Windows Terminal possui diversos comandos, ele também possui diversas opções de configurações e personalizações.
É possível personalizar o terminal tanto pela tela de configurações quanto alterando diretamente o arquivo de configurações.

**_Originalmente quando escrevi este artigo, a tela de configuração ainda não estava disponível. Portanto, eu trago com detalhes as configurações focando na edição do arquivo JSON, porém todas as opções existentes no arquivo estão disponíveis também pela tela._**

![](https://lfrigodesouzaimages.blob.core.windows.net/images/ja-experimentou-o-windows-terminal/tela_configuracao.png)

## Abrindo o arquivo de configuração

Utilize o comando `ctrl + ,` para abrir a tela de configurações, e então selecione a opção 'Abrir o arquivo JSON' nela para abrir diretamente o arquivo de configurações. O arquivo será aberto no seu editor de textos padrão, como o VSCode ou Notepad++.

_Caso você possua o VSCode instalado, recomendo fortemente que você abra o arquivo de configuração por ele. Nele será possível utilizar a funcionalidade de auto-completar para preencher o nome de parâmetros de configuração e suas opções._

Por exemplo, esse é o arquivo de configuração do terminal criado pela versão 1.4.3243.0. Caso a versão do seu terminal seja diferente, é possível que exista algumas diferenças entre eles, porém essas configurações costumam manter a compatibilidade. Ou seja, um arquivo de configuração de uma versão anterior irá funcionar em uma versão mais nova.

```json
{
  "$schema": "https://aka.ms/terminal-profiles-schema",
  "defaultProfile": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
  "copyOnSelect": false,
  "copyFormatting": false,
  "profiles": {
    "defaults": {},
    "list": [
      {
        "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
        "name": "Windows PowerShell",
        "commandline": "powershell.exe",
        "hidden": false
      },
      {
        "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
        "name": "Command Prompt",
        "commandline": "cmd.exe",
        "hidden": false
      },
      {
        "guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
        "hidden": false,
        "name": "PowerShell",
        "source": "Windows.Terminal.PowershellCore"
      },
      {
        "guid": "{07b52e3e-de2c-5db4-bd2d-ba144ed6c273}",
        "hidden": false,
        "name": "Ubuntu-20.04",
        "source": "Windows.Terminal.Wsl"
      },
      {
        "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
        "hidden": false,
        "name": "Azure Cloud Shell",
        "source": "Windows.Terminal.Azure"
      }
    ]
  },

  "schemes": [],

  "actions": [
    { "command": { "action": "copy", "singleLine": false }, "keys": "ctrl+c" },
    { "command": "paste", "keys": "ctrl+v" },
    { "command": "find", "keys": "ctrl+shift+f" },
    {
      "command": {
        "action": "splitPane",
        "split": "auto",
        "splitMode": "duplicate"
      },
      "keys": "alt+shift+d"
    }
  ]
}
```

## Deixando o terminal com a sua cara

Com o arquivo de configuração aberto, você pode alterar as configurações que desejar para deixar o terminal do jeito que você preferir.
Para a maioria das configurações, basta fazer a alteração no arquivo e salvar que o terminal já irá se atualizar para utilizar as configurações mais recentes.

_Caso você tenha feito alterações de configurações e depois se arrependeu, ou se alguma coisa quebrou, para restaurar as configurações padrões do terminal basta excluir o arquivo ou o seu conteúdo, fechar e abrir o Windows Terminal. Desta forma ele irá gerar automaticamente um novo arquivo de configurações com as opções padrões daquela versão._

Essas são algumas das principais configurações que você pode alterar.

### Perfil padrão

É possível configurar vários terminais para serem utilizados no Windows Terminal, assim como diversos perfis para um mesmo terminal. E logo no começo do arquivo existe a propriedade `defaultProfile` em que você define o 'guid' (Identificador único universal) do perfil que você quer que seja o padrão do terminal, e que seja aberto primeiro quando você abre o Windows Terminal.

Na tela de configuração essa opção fica em _Inicialização_ > _Perfil padrão_.

### Comandos personalizados

Na propriedade `actions` você pode definir atalhos de teclado personalizados para executar comandos no terminal. Na tela de configuração hoje é possível apenas consultar todas as ações existentes, sem a possibilidade de alterações por ela. Para isso ainda é necessário editar diretamente o arquivo.

Por exemplo, por padrão, para duplicar uma guia, o comando é o `duplicateTab` e o atalho é `ctrl + shift + d`. Porém, eu posso alterar para qualquer outro atalho que eu desejar, apenas adicionando uma nova configuração na lista de actions, como `ctrl + shift + +`:

```json
    "actions":
    [
        { "command": "find", "keys": "ctrl+shift+f" },
        { "command": "duplicateTab", "keys": "ctrl+shift+plus" }
    ]
```

Ou eu posso também definir o atalho `ctrl + t_` para abrir uma janela de busca de abas (`tabSearch`), um comando que por padrão não possui um atalho vinculado:

```json
    "actions":
    [
        { "command": "find", "keys": "ctrl+shift+f" },
        { "command": "duplicateTab", "keys": "ctrl+shift+plus" },
        { "command": "tabSearch", "keys": "ctrl+t" }
    ]
```

São diversas possibilidades de configurações, e você pode deixar o terminal com os comandos e atalhos que você já utiliza normalmente em outras ferramentas, para facilitar o seu dia-a-dia.
Existe uma [página nas documentações do Windows Terminal](https://docs.microsoft.com/pt-br/windows/terminal/customize-settings/actions) que lista todas ações que podem ser configuradas.

### Criando um novo perfil

A grande vantagem do Windows Terminal é a possibilidade de criação de diversos perfis para um mesmo terminal ou para terminais diferentes, o que possibilidade centralizar em uma só aplicação todos os terminais ou shells que você utilize.

Para criar um novo perfil, você precisa adicionar um novo registro na propriedade `profiles` > `list`.
Cada item da lista é um perfil que fica disponível no terminal.

Pela tela de configuração, existe a opção _Adicionar novo_ que gera um novo perfil automaticamente, incluindo um novo GUID.

Um perfil que eu gosto sempre de adicionar é o perfil do Git Bash. Caso você utilize o Git para controle de código fontes, você já deve ter aberto o Git Bash para executar algum comando, e é possível deixá-lo acessível através do Windows Terminal.

Para isso, você pode adicionar o seguinte perfil junto dos outros na lista de perfis:

```json
{
  "guid": "{2c551079-2bd2-4a4a-bba4-9c50f21361aa}",
  "name": "Git Bash",
  "commandline": "sh",
  "hidden": false
}
```

Primeiro de tudo, você precisa gerar um GUID para o seu perfil. Esse é um identificador único que servirá para diferenciar os perfis, e é ele que você utiliza para definir o perfil padrão. Para gerar um guid você pode utilizar uma ferramenta online como o [Online GUID / UUID Generator](https://www.guidgenerator.com/online-guid-generator.aspx).
Não importa o valor que seja gerado, desde que ele tenha o mesmo formato dos GUIDs dos outros perfis, e seja único entre eles.

Depois você define um nome para o perfil, que é o que será exibido no menu. No caso, defini como 'Git Bash'.

Também é possível ocultar do menu um perfil através da propriedade `hidden`, colocando `false` caso o perfil deva ser exibido, ou `true` caso ele deva fica oculto. Assim é possível remover um perfil sem necessariamente excluí-lo do arquivo de configuração, facilitando posteriormente caso você deseje utilizá-lo novamente.

E por fim, a última configuração necessária é a `commandline`, e ela pode ser a mais complexa de se configurar, pois será necessário definir o comando que será executado pelo Windows Terminal ao iniciar aquele perfil.

![](https://lfrigodesouzaimages.blob.core.windows.net/images/ja-experimentou-o-windows-terminal/git_bash.png)

Por exemplo, para o Git, o comando a ser utilizado é um simples `sh`, porém antes disso é necessário adicionar a pasta de binários de instalação do git contento o sh.exe no PATH do Windows.

![](https://lfrigodesouzaimages.blob.core.windows.net/images/ja-experimentou-o-windows-terminal/git_bash_variaveis_de_ambiente.png)

### Configurações visuais

Também é possível fazer algumas configurações visuais no seu terminal, como alterar o ícone de um perfil no menu, ou adicionar uma imagem de plano de fundo do terminal (é possível até colocar um gif se você quiser). As propriedades para essas configurações são a `icon` e `backgroundImage`. Nelas você deve definir o caminho para as imagens que deseja utilizar. _Se atente para utilizar a barra invertida no caminho dos arquivos, ou utilizar duas barras em vez de apenas uma._.

Na tela de configurações, as configurações visuais ficam na aba _Aparência_ dentro de cada perfil.

Você também pode definir um esquema de cores para o seu perfil. Por padrão já existem alguns esquemas de cores pré-definidos, mas posteriormente vou mostrar como criar novos esquemas. O esquema de cor fica definido na opção `colorScheme`.

```json
{
  "guid": "{2c551079-2bd2-4a4a-bba4-9c50f21361aa}",
  "name": "Git Bash",
  "commandline": "sh",
  "icon": "D:/Repos/WindowsTerminal/git-for-windows.ico",
  "backgroundImage": "D:\\Repos\\WindowsTerminal\\green_blue_bg.jfif",
  "colorScheme": "Vintage",
  "hidden": false
}
```

![](https://lfrigodesouzaimages.blob.core.windows.net/images/ja-experimentou-o-windows-terminal/git_bash_personalizado.png)

Existem outras configurações visuais, como aplicar transparência na janela, trocar o tipo e tamanho da fonte, etc.
Todas as configurações disponíveis estão na [página de documentação do Windows Terminal](https://docs.microsoft.com/pt-br/windows/terminal/customize-settings/profile-settings).

### Criando um esquema de cores

Para criar um esquema de cores, você deve adicionar um registro com as cores na propriedade `schemes`.
Você deve definir todas as cores que o terminal irá utilizar, como cor da fonte, cor de fundo, cor do cursor, etc.
Por padrão, já existem os seguintes esquemas de cores que você pode experimentar nos perfis para ver como o seu terminal fica:

- Campbell
- Campbell Powershell
- Vintage
- One Half Dark
- One Half Light
- Solarized Dark
- Solarized Light
- Tango Dark
- Tango Light

Na tela de configuração, existe a opção _Esquema de cores_ que traz todos os esquemas facilitando a sua edição.
Porém, para inclusão de um tema que seja copiado de outro lugar, ainda é mais fácil fazer pelo arquivo JSON.

Para te ajudar na criação de um esquema de cores personalizado, você pode utilizar o site [TerminalSplash](https://terminalsplash.com/). Escolha um tema, clique em "code" que será exibido para você as configurações do esquema. Basta copiar e colocar como um novo item dentro da propriedade `schemes`, depois voltar no seu perfil e definir a propriedade `colorScheme` com o nome do esquema criado (o nome está na propriedade `name` do esquema).

```json
  "schemes": [
    {
      "name": "Aurelia",
      "background": "#1a1a1a",
      "black": "#000000",
      "blue": "#579BD5",
      "brightBlack": "#797979",
      "brightBlue": "#9CDCFE",
      "brightCyan": "#2BC4E2",
      "brightGreen": "#1AD69C",
      "brightPurple": "#975EAB",
      "brightRed": "#EB2A88",
      "brightWhite": "#EAEAEA",
      "brightYellow": "#e9ad95",
      "cyan": "#00B6D6",
      "foreground": "#EA549F",
      "green": "#4EC9B0",
      "purple": "#714896",
      "red": "#E92888",
      "white": "#EAEAEA",
      "yellow": "#CE9178"
    }
  ],
```

Você também pode alterar os valores das cores como achar melhor, sempre colocando o valor da cor em base hexadecimal.

### Definindo configurações padrões para os perfis

E por fim, para facilitar as configurações, é possível definir configurações padrões para todos os perfis. Assim, por exemplo, você pode configurar um esquema de cores, ou estilo/tamanho de fonte que serão utilizados em todos os perfis que você criar.

De estilo de fonte eu gosto de utilizar alguma das [NerdFonts](https://www.nerdfonts.com/), pois elas possuem diversos caracteres não convencionais que deixam os textos exibidos do terminal com um visual melhor Existem NerdFonts em diversos estilos, e particularmente eu gosto da [Caskaydia Cove Nerd Font](https://www.programmingfonts.org/#cascadia-code).

As configurações padrão são definidas na propriedade `profiles` > `defaults`.

```json
    "defaults": {
      "fontFace": "CaskaydiaCove Nerd Font",
      "fontSize": 10,
      "cursorShape": "filledBox"
    },
```

Também é possível definir configurações padrões para a cor e tipo do cursor, configurações de teclado, rolagem das páginas, etc.

Lembrando que uma configuração definida aqui valerá para todos os perfis, mas uma configuração específica de um perfil irá sobrescrever o que tiver sido defino como padrão.
Por exemplo, posso definir o tamanho da fonte como "10" como padrão para todos os meus perfis, mas em um perfil em específico posso deixar o tamanho como "12".

# Bora deixar o terminal do seu jeito!

Com esse monte de configurações que eu passei com certeza já dá pra gastar um tempo configurando e deixando o terminal da melhor forma para o seu uso.

Lembrando que apresentei aqui apenas algumas das configurações e funcionalidades principais do Windows Terminal. Para uma lista completa, não deixe de acessar a [página de documentação da aplicação](https://docs.microsoft.com/pt-br/windows/terminal/), lá estão explicados todas essas configurações que eu mostrei e muitas outras.

E caso queira uma inspiração, eu deixo meu arquivo de configuração do terminal em um [repositório público do GitHub](https://github.com/lfrigodesouza/WindowsTerminal). Você pode acessá-lo tanto para ver as configurações que utilizo, como também as imagens de fundo e ícones dos meus perfis.

![](https://lfrigodesouzaimages.blob.core.windows.net/images/ja-experimentou-o-windows-terminal/windows_terminal.png)