Windows Terminal - Instalação e Configuração
Compartilho todas as configurações que realizei no Windows Terminal para torná-lo mais produtivo e agradável
Table of contents
- Introdução
- O que é Windows Terminal?
- Definindo o Windows Terminal como o aplicativo padrão
- Definindo o Linux (WSL2) como perfil padrão do Terminal
- Aplicando efeito Acrílico no Windows Terminal
- Instalando fonte do Nerd Fonts
- Instalando o Zsh Shell no WSL2
- Instalando o ohMyZsh no WSL2
- Instalando o tema Powerlevel10k
- Aplicando ColorScheme Homebrew no Windows Terminal
- Remova a pasta do Windows como padrão do seu Linux
- Adicione Plugins
- Divida o Terminal em Painéis
- Minha Configuração Atualizada
Introdução
Personalizar seu ambiente de desenvolvimento é uma jornada única para cada pessoa. É aquele toque especial que torna as longas horas de código mais agradáveis e produtivas. E é exatamente sobre isso que vamos conversar hoje!
Vou guiá-lo através da minha experiência pessoal de customização do Windows Terminal, compartilhando cada passo e configuração que implementei para criar um ambiente que funciona perfeitamente para mim. Mas lembre-se: isso é apenas um ponto de partida, um mapa que você pode usar para explorar suas próprias preferências.
Afinal, não existe certo ou errado quando falamos de personalização - o que importa é criar um ambiente que reflita seu estilo e otimize seu fluxo de trabalho. Seja nas escolhas de cores, temas ou atalhos de teclado, você terá total liberdade para adaptar essas sugestões ao seu gosto.
E para facilitar ainda mais sua jornada, ao final deste artigo, compartilharei meus arquivos de configuração completos. Assim, você poderá usá-los como referência ou ponto de partida para criar sua própria configuração única do Windows Terminal.
Vamos começar?
O que é Windows Terminal?
O Terminal do Windows é um aplicativo de terminal moderno para usuários de ferramentas de linha de comando e shells como o Prompt de Comando, o PowerShell e o WSL (Subsistema do Windows para Linux). Seus principais recursos incluem suporte a várias guias, painéis, caracteres e um mecanismo de renderização de texto acelerado por GPU com a capacidade de criar os próprios temas e personalizar texto, cores, telas de fundo e atalhos.
Definindo o Windows Terminal como o aplicativo padrão
1- Clique em Iniciar
→ digite Windows Terminal
2- Clique em Configurações
3- Em Aplicativo terminal padrão → escolha a opção Windows Terminal
Definindo o Linux (WSL2) como perfil padrão do Terminal
1- Ainda em Configurações
→ em Perfil
padrão escolha a opção Ubuntu
Aplicando efeito Acrílico no Windows Terminal
1- Ainda em Configurações
→ no menu Perfis
→ clique no perfil Ubuntu
→ selecione a aba Aparência
→ Habilite o Acrílico
e defina a porcentagem de sua preferência
Instalando fonte do Nerd Fonts
Eu normalmente gosto de utilizar duas fontes:
Fira Code
-
Source Code Pro
Fira Code
, mas o mesmo passo a passo se aplica para qualquer fonte.1- Acesse o site do Nerd Fonts
em:
2- Clique em Download
3- Acesse sua pasta Downloads
→ extraia a pasta FiraCode
4- Pressione Ctrl + A
para selecionar todas as fontes → clique com o lado direito do mouse → Instalar
5- Aguarde a instalação ser concluída
Substituir
Instalando o Zsh Shell no WSL2
1- Atualize o linux com o comando:
sudo apt update
2- Instale o Zsh Shell
com o comando:
sudo apt install zsh -y
Instalando o ohMyZsh no WSL2
1- Digite o comando → pressione y
quando solicitado:
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Ao final você deverá ver uma tela parecida com:
Instalando o tema Powerlevel10k
1- Digite o comando:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k
2- Abra o arquivo de configuração ~/.zshrc
digitando o comando:
sudo nano ~/.zshrc
3- Altere a linha ZSH_THEME
de robbyrussel
para powerlevel10k/powerlevel10k
→ pressione Ctrl + X
→ Y
→ Enter
para salvar
4- Entraremos agora na configuração do tema Powerlevel10k
Diamante
" ainda, isso ocorre porque ainda não definimos para o Windows Terminal usar nossa fonte FiraCode
que baixamos lá no início deste passo a passoEntão nesse momento, apenas clique em q
para sair da configuração do tema e você verá algo parecido com:
5- Agora clique na seta para baixo
→ Configurações
6- No menu Perfis
→ Clique em Ubuntu
→ mude para a aba Aparência
→ altere o campo Tipo de Fonte para FiraCode Nerd Font Mono
→ Clique em Salvar
7- Feche e abra novamente o Windows Terminal
8- Agora ao abrir, podemos ver o ícone de "Diamante
" e seguir com a configuração do tema Powerlevel10k
→ pressione y
9- Também podemos ver o ícone de cadeado, então pressione y
10- Também podemos ver o logo do Debian, então novamente basta pressionarmos y
11- Por fim, podemos ver todos os ícones, então você já sabe né, pressione y
novamente
12- Agora pressione 3 para escolhermos a opção Rainbow
13- Pressione 1 para escolhermos a opção Unicode
14- Pressione 1 para não mostrar o horário
15- Pressione 1 para definir o separador
16- Pressione 4 para definir o separador final
17- Pressione 5
18- Pressione 1
19- Pressione 2
20- Pressione 2
21- Pressione 1
22- Pressione n
23- Pressione 1
24- Pressione y
para aplicar as configurações do tema Powerlevel10k em nosso arquivo ~/.zshrc
25- Feche e abra novamente seu Windows Terminal
Aplicando ColorScheme Homebrew no Windows Terminal
1- Acesse o site:
2- Abra a lista suspensa e selecione Homebrew
3- Clique no botão Get Theme
4- Agora vá para seu Windows Terminal → Configurações → Abrir o arquivo JSON
5- Abra com um editor de texto (por exemplo o bloco de notas)
→ procure pelo bloco schemes
→ após a primeira [
pressione Enter
para ir para linha abaixo
→ cole o conteúdo que copiamos do botão Get Theme do passo 3
→ após o }
adicione uma vírgula
→ salve o arquivo
6- Retorne as configurações do Windows Terminal → no menu Perfis clique em Ubuntu
→ selecione a aba Aparência
→ Altere o campo Esquema de Cores para Homebrew
7- Salve as alterações → Feche e abra novamente o Windows Terminal → você terá um resultado parecido com:
tema/colorScheme Homebrew
, mas você pode repetir esses passos quantas vezes quiser com temas e cores diferentes de sua preferência.Você também pode alterar as cores de um tema existente em:
- Windows Terminal → Configurações → Esquemas de cores
Remova a pasta do Windows como padrão do seu Linux
Por padrão seu WSL2 irá montar a pasta do seu usuário do Windows no Linux:
Para removermos isso e irmos direto a pasta /home
do Linux quando conectarmos, vamos fazer:
10- Acesse Configurações → no menu Perfis escolha Ubuntu → No campo Diretório Inicial → mude de %USERPROFILE%
para ~
11- Agora ao abrir seu terminal do Linux, iremos diretamente para a pasta /home
Adicione Plugins
Zsh Autosuggestions
Conforme você digita, você verá uma sugestão de conclusão.
Se você pressionar a tecla de seta para a direita, ela preencherá a sugestão. Se você clicar na guia, ele listará mais sugestões abaixo. Continue a clicar na guia para percorrer o ciclo completo.
1- Digite o comando:
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
2- Acesse o arquivo:
nano ~/.zshrc
3- Edite a linha plugins adicionando zsh-autosuggestions
Zsh-syntax-highlighting
Quando você digitar o comando corretamente ele ficará na cor verde, quando você digitar um comando errado, ficará na cor vermelha tornando mais fácil encontrar erros.
1- Digite o comando:
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
2- Acesse o arquivo:
nano ~/.zshrc
3- Edite a linha plugins adicionando zsh-syntax-highlighting
Copypath
Às vezes, você está no fundo de uma pasta e lembra que precisa voltar para atualizar outro arquivo na pasta pai. Você não quer ter que voltar e reinserir esse longo caminho novamente, use o copypath
para copiar o caminho do seu diretório atual
Copyfile
Copie o conteúdo de um arquivo para a área de transferência. É um recurso que você não sabe que precisa até precisar.
CopyBuffer
Pressione Ctrl + O
e copie o texto do comando digitado na linha de comando, você pode pensar que não precisará dele, mas certamente vai.
JsonTools
Com certeza você vai se deparar em cenários em que chamadas de API ou solicitações CURL
irão retornar um monte de json
confusos de ler na linha de comando, esse plugin simplesmente irá "imprimir" bem o json
em sua linha de comando. E pode ser uma boa alternativa para a ferramenta jq
.
Divida o Terminal em Painéis
Existem atalhos muito úteis no teclado, um deles que mais uso é dividir o mesmo terminal em painéis diferentes. Isso me ajuda principalmente quando em um painel posso ver meus containers do docker, já no outro posso estar em um SSH e em outro vendo os logs. Também muito útil quando preciso conectar em várias instâncias SSH e executar o mesmo script, fazendo e acompanhando tudo de uma única vez.
- Divida para baixo (
split down
): pressioneAlt + Shift + Hífen (-)
-
não é numérico e sim um hífen mesmo- Divida para a direita (
split right
): pressioneAlt + Shif + Soma (+)
+
não é numérico e sim ao lado do backspace do teclado- Combine para baixo e para direita quantas vezes quiser e de acordo com sua preferência:
Alterne de um painel para o outro com o atalho
Alt + Seta
Feche um painel com o atalho
Ctrl + Shift + W
Minha Configuração Atualizada
Isso é muito pessoal, cada um tem sua preferência, e a maioria de nós irá mudar isso com certa frequência para não ficar cansativo e enjoativo.
Eu mesmo mudo meus temas, fontes e cores o tempo todo, porém aqui compartilho sempre meu arquivo settings.json
atualizado para que eu possa recupera-lo quando precisar ou para você que gostar também poder usar.
⚠️ Importante: Ao utilizar esta configuração, você precisará personalizar alguns campos específicos para o seu ambiente:
defaultProfile
: Identifica qual perfil será carregado por padrão ao abrir o terminal
guid
: Um identificador único para cada perfil
name
: O nome que você deseja exibir para cada perfilAbaixo você encontrará um exemplo completo da configuração, que poderá usar como base para criar a sua. Lembre-se de ajustar estes campos conforme suas necessidades antes de aplicar as configurações.
{
"$help": "https://aka.ms/terminal-documentation",
"$schema": "https://aka.ms/terminal-profiles-schema",
"actions":
[
{
"command": "toggleBroadcastInput",
"id": "User.toggleBroadcastInput",
"keys": "alt+shift+b"
},
{
"command":
{
"action": "copy",
"singleLine": false
},
"id": "User.copy.644BA8F2",
"keys": "ctrl+c"
},
{
"command": "paste",
"id": "User.paste",
"keys": "ctrl+v"
},
{
"command": "find",
"id": "User.find",
"keys": "ctrl+shift+f"
},
{
"command":
{
"action": "splitPane",
"split": "auto",
"splitMode": "duplicate"
},
"id": "User.splitPane.A6751878",
"keys": "alt+shift+d"
}
],
"centerOnLaunch": false,
"copyFormatting": "none",
"copyOnSelect": true,
"defaultProfile": "{3641aa37-d513-51d1-a250-67449a7b34e5}",
"experimental.detectURLs": true,
"launchMode": "maximized",
"newTabMenu":
[
{
"type": "remainingProfiles"
}
],
"profiles":
{
"defaults": {},
"list":
[
{
"commandline": "%SystemRoot%\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
"guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
"hidden": false,
"name": "Windows PowerShell"
},
{
"commandline": "%SystemRoot%\\System32\\cmd.exe",
"guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
"hidden": false,
"name": "Prompt de comando"
},
{
"guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
"hidden": false,
"name": "Azure Cloud Shell",
"source": "Windows.Terminal.Azure"
},
{
"colorScheme": "SimplesCloud - Night Owl",
"font":
{
"face": "SauceCodePro Nerd Font",
"size": 18
},
"guid": "{3641aa37-d513-51d1-a250-67449a7b34e5}",
"hidden": false,
"name": "[Work] - SimplesCloud-Ubuntu-22.04",
"source": "Windows.Terminal.Wsl"
},
{
"guid": "{4ff56d04-d9cf-57ea-bae2-ad396374e7e3}",
"hidden": false,
"name": "Ubuntu 22.04.5 LTS",
"source": "CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc"
}
]
},
"schemes":
[
{
"background": "#000000",
"black": "#000000",
"blue": "#0000B2",
"brightBlack": "#666666",
"brightBlue": "#0000FF",
"brightCyan": "#00E5E5",
"brightGreen": "#00D900",
"brightPurple": "#E500E5",
"brightRed": "#E50000",
"brightWhite": "#E5E5E5",
"brightYellow": "#E5E500",
"cursorColor": "#23FF18",
"cyan": "#00A6B2",
"foreground": "#00FF00",
"green": "#00A600",
"name": "Homebrew",
"purple": "#B200B2",
"red": "#990000",
"selectionBackground": "#083905",
"white": "#BFBFBF",
"yellow": "#999900"
},
{
"background": "#1D2033",
"black": "#282936",
"blue": "#0717FF",
"brightBlack": "#626483",
"brightBlue": "#62D6E8",
"brightCyan": "#A1EFE4",
"brightGreen": "#EBFF87",
"brightPurple": "#B45BCF",
"brightRed": "#FF0909",
"brightWhite": "#F7F7FB",
"brightYellow": "#00F769",
"cursorColor": "#AEAFAD",
"cyan": "#A1EFE4",
"foreground": "#FFFFFF",
"green": "#49E287",
"name": "SimplesCloud",
"purple": "#B45BCF",
"red": "#FF0909",
"selectionBackground": "#FFFFFF",
"white": "#E9E9F4",
"yellow": "#00F769"
},
{
"background": "#FBFBFB",
"black": "#403F53",
"blue": "#288ED7",
"brightBlack": "#403F53",
"brightBlue": "#288ED7",
"brightCyan": "#2AA298",
"brightGreen": "#08916A",
"brightPurple": "#D6438A",
"brightRed": "#DE3D3B",
"brightWhite": "#979797",
"brightYellow": "#DAAA01",
"cursorColor": "#FFFFFF",
"cyan": "#2AA298",
"foreground": "#403F53",
"green": "#08916A",
"name": "SimplesCloud - Light Owl",
"purple": "#D6438A",
"red": "#DE3D3B",
"selectionBackground": "#FFFFFF",
"white": "#F0F0F0",
"yellow": "#E0AF02"
},
{
"background": "#011627",
"black": "#011627",
"blue": "#82AAFF",
"brightBlack": "#575656",
"brightBlue": "#82AAFF",
"brightCyan": "#7FDBCA",
"brightGreen": "#22DA6E",
"brightPurple": "#C792EA",
"brightRed": "#EF5350",
"brightWhite": "#FFFFFF",
"brightYellow": "#FFEB95",
"cursorColor": "#FFFFFF",
"cyan": "#21C7A8",
"foreground": "#D6DEEB",
"green": "#22DA6E",
"name": "SimplesCloud - Night Owl",
"purple": "#C792EA",
"red": "#EF5350",
"selectionBackground": "#FFFFFF",
"white": "#FFFFFF",
"yellow": "#ADDB67"
}
],
"themes": []
}
E aqui compartilho também meu ~/.zshrc
atualizado pelos mesmos motivos.
Zsh Shell
, serve mais para quando eu precisar consultar e recuperar, se você usar ele provavelmente deverá editar mudando alguns nomes, caminhos e valores reais que você usa, então por favor atente-se que copiar isso e colar pode não funcionar perfeitamente para você sem alguns ajustes!# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below.
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
# Path to your oh-my-zsh installation.
export ZSH="$HOME/.oh-my-zsh"
export PATH=$PATH:/home/tech/bin:PATH
# Set name of the theme to load --- if set to "random", it will
# load a random theme each time oh-my-zsh is loaded, in which case,
# to know which specific one was loaded, run: echo $RANDOM_THEME
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
ZSH_THEME="powerlevel10k/powerlevel10k"
# Set list of themes to pick from when loading at random
# Setting this variable when ZSH_THEME=random will cause zsh to load
# a theme from this variable instead of looking in $ZSH/themes/
# If set to an empty array, this variable will have no effect.
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
# Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true"
# Uncomment the following line to use hyphen-insensitive completion.
# Case-sensitive completion must be off. _ and - will be interchangeable.
# HYPHEN_INSENSITIVE="true"
# Uncomment one of the following lines to change the auto-update behavior
# zstyle ':omz:update' mode disabled # disable automatic updates
# zstyle ':omz:update' mode auto # update automatically without asking
# zstyle ':omz:update' mode reminder # just remind me to update when it's time
# Uncomment the following line to change how often to auto-update (in days).
# zstyle ':omz:update' frequency 13
# Uncomment the following line if pasting URLs and other text is messed up.
# DISABLE_MAGIC_FUNCTIONS="true"
# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"
# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"
# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"
# Uncomment the following line to display red dots whilst waiting for completion.
# You can also set it to another string to have that shown instead of the default red dots.
# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f"
# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765)
# COMPLETION_WAITING_DOTS="true"
# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"
# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# You can set one of the optional three formats:
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# or set a custom format using the strftime function format specifications,
# see 'man strftime' for details.
# HIST_STAMPS="mm/dd/yyyy"
# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder
# Which plugins would you like to load?
# Standard plugins can be found in $ZSH/plugins/
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(git zsh-autosuggestions zsh-syntax-highlighting copypath copyfile copybuffer jsontools)
source $ZSH/oh-my-zsh.sh
# User configuration
# export MANPATH="/usr/local/man:$MANPATH"
# You may need to manually set your language environment
# export LANG=en_US.UTF-8
# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
# export EDITOR='vim'
# else
# export EDITOR='mvim'
# fi
# Compilation flags
# export ARCHFLAGS="-arch x86_64"
# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
#
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
eval "$(ssh-agent -s)" &> /dev/null
ssh-add ~/.ssh/bitbucket_client1_personal_account_wsl2 &> /dev/null
ssh-add ~/.ssh/bitbucket_simplescloud_account_wsl2 &> /dev/null
ssh-add ~/.ssh/bitbucket_client2_account_wsl2 &> /dev/null