terminal

Windows Terminal: como customizar o seu terminal

Um ano após seu anúncio na build 2019, foi lançada a primeira versão estável do Windows Terminal. Dentre as novidades anunciadas, temos primeiramente o tão aguardado suporte a abas, além do suporte a panes, temas e múltiplos profiles, todos customizáveis de acordo com suas preferências.

Windows Terminal 1.0

Disponível para Windows 10, a instalação do Windows Terminal pode ser feita pela Microsoft Store. Novas atualizações serão lançadas com o tempo, e a atualização será automática e independente da versão do Windows, como acontecia com a linha de comando clássica.

No Windows Terminal temos muitas opções de customizações possíveis que alteram desde os atalhos do teclado até suas configurações, permitindo que você tenha um terminal único e ao mesmo tempo que atenda seu gosto. Vamos conhecer adiante algumas dessas configurações e como podemos customizar nosso Windows Terminal.

Configurações do Windows Terminal

Como já venho usando o Windows Terminal a algum tempo, acabei testando várias configurações possíveis. Minha configuração atual se encontra nesse gist aqui.

Ainda não temos uma interface gráfica para configurar nosso terminal, tudo é feito por um arquivo json. Entretanto, esse arquivo tem um schema bem configurado e com isso você pode usar autocomplete com o VS Code:

Autocomplete de configurações

Windows - Fundamentos para desenvolvedores
Curso de Windows - Fundamentos para desenvolvedores
CONHEÇA O CURSO

Estrutura do arquivo de configurações

As customizações do Windows Terminal são divididas em diferentes seções. Em primeiro lugar, temos algumas configurações globais em nosso arquivo. Nessa seção podemos configurar qual será nosso profile padrão com defaultProfile, qual o tamanho das abas com tabWidthMode, e o tamanho e posição da janela (initialPosition, initialCols e initialRows).

A segunda seção que encontramos no nosso arquivo de configurações são os profiles. Cada profile é associado com um shell específico e você pode customizar visualmente cada profile de uma forma. O Windows Terminal também reconhece automaticamente as distribuições WSL instaladas na sua máquina:

Distribuições WSL reconhecidas pelo Windows Terminal

Em seguida, temos a seção schemes, onde é possível salvar esquemas de cores que podem ser utilizados pelos profiles definidos anteriormente. Além dos esquemas padrões que podem ser encontrados na documentação do Windows Terminal, você pode adicionar seus próprios esquemas.

E por fim, temos a seção keybindings, onde podemos configurar atalhos de teclado que estamos mais acostumados. Por exemplo, por muito tempo eu usei o Gnome Terminal com o Ubuntu, e para alternar entre as abas eu usava CRTL + PageUp e CRTL + PageDown. No Windows Terminal posso configurar esse atalho dessa forma:

    "keybindings":
    [
        { "command": "prevTab", "keys": ["ctrl+pgup"] },
        { "command": "nextTab", "keys": ["ctrl+pgdn"] }
    ]

Agora que apresentei as principais seções desse arquivo, vamos conhecer algumas configurações interessantes que podemos fazer.

Google Cloud - Primeiros Passos
Curso de Google Cloud - Primeiros Passos
CONHEÇA O CURSO

Customizações de profile

Boa parte das configurações que podemos fazer no Windows Terminal está dentro da seção de profiles. Nessa seção podemos configurar o tipo e tamanho da fonte, diretório inicial de cada profile, imagens de fundo, transparência, entre muitas outras opções.

Apesar das configurações serem independentes para cada profile, é possível alterar as configurações padrão de todos os profiles dentro do bloco defaults. Pessoalmente, eu acho o tamanho padrão da fonte muito grande, e também gosto de mudar iniciar uma aba no meu diretório de código. Para isso eu faço o seguinte:

    "profiles":
    {
        "defaults":
        {
            "startingDirectory": "%USERPROFILE%\\Code",
            "fontFace": "Cascadia Code",
            "fontSize" : 10
        },
        "list":
        [
            { ... },
            { ... },
            {
                "guid": "{c6eaf9f4-32a7-5fdc-b5cf-066e8a4b1e40}",
                "hidden": false,
                "name": "Ubuntu-18.04",
                "source": "Windows.Terminal.Wsl",
                "startingDirectory" : "//wsl$/Ubuntu-18.04/home/gmsantos/Code"
            },
            { ... },
        ]
    },

Nesse caso, eu reduzi a fonte em todos os profiles com fontSize em 10, alterei a fonte padrão para Cascadia Code com fontFace para ter suporte a ligaduras, e por fim mudei o diretório inicial com startingDirectory.

Repare que no meu perfil do Ubuntu eu sobrescrevo novamente essa configuração, pois o sistema de arquivos do Windows não reconhece diretamente o sistema de arquivos do WSL.

Com isso, não é possível definir algo como ~/Code. A solução nesse caso é usar o mapeamento de rede disponibilizado pelo WSL ("//wsl$//home// por exemplo).

Customizações visuais

Como vocês podem ver na minha configuração eu não sou muito fã de muitas configurações visuais. Entretanto o Windows Terminal permite configurar praticamente tudo, seja com transparências, imagens de fundo e até mesmo gifs!

Abaixo temos alguns temas bem legais que encontrei e que possuem sua configuração publicada.

Endjin theme:

Endjin com imagem de fundo

{
    "profiles": {
        "list": [
            {
                "guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
                "hidden": false,
                "name": "PowerShell Core",
                "source": "Windows.Terminal.PowershellCore",
                "backgroundImage": "https://compass-ssl.xbox.com/assets/84/9f/849fc619-fa6a-4706-be03-50246091b48d.jpg?n=OWotW_gallery-0_1350x759_09.jpg",
                "backgroundImageOpacity": 0.8,
                "backgroundImageAlignment": "top",
                "backgroundImageStretchMode": "fill"
            }
        ]
    }
}

Forest Glass Theme:

Frosted Glass Theme

{
    "theme": "light",
    "profiles": [
        {
            "name" : "PowerShell",
            "source" : "Windows.Terminal.PowershellCore",
            "acrylicOpacity": 0.7,
            "colorScheme" : "Frost",
            "cursorColor" : "#000000",
            "fontFace" : "Cascadia Code PL",
            "useAcrylic": true
        }
    ],
    "schemes": [
        {
            "name" : "Frost",
            "background" : "#FFFFFF",
            "black" : "#3C5712",
            "blue" : "#17b2ff",
            "brightBlack" : "#749B36",
            "brightBlue" : "#27B2F6",
            "brightCyan" : "#13A8C0",
            "brightGreen" : "#89AF50",
            "brightPurple" : "#F2A20A",
            "brightRed" : "#F49B36",
            "brightWhite" : "#741274",
            "brightYellow" : "#991070",
            "cyan" : "#3C96A6",
            "foreground" : "#000000",
            "green" : "#6AAE08",
            "purple" : "#991070",
            "red" : "#8D0C0C",
            "white" : "#6E386E",
            "yellow" : "#991070"
        }
    ]
}

Retro Command Prompt:

Retro Command Prompt

{
    "theme": "dark",
    "profiles": [
        {
            "name": "Command Prompt",
            "commandline": "cmd.exe",
            "closeOnExit" : true,
            "colorScheme" : "Retro",
            "cursorColor" : "#FFFFFF",
            "cursorShape": "filledBox",
            "fontSize" : 16,
            "padding" : "5, 5, 5, 5",
            "tabTitle" : "Command Prompt",
            "fontFace": "PxPlus IBM VGA8",
            "experimental.retroTerminalEffect": true
        }
    ],
    "schemes": [
        {
            "name": "Retro",
            "background": "#000000",
            "black": "#00ff00",
            "blue": "#00ff00",
            "brightBlack": "#00ff00",
            "brightBlue": "#00ff00",
            "brightCyan": "#00ff00",
            "brightGreen": "#00ff00",
            "brightPurple": "#00ff00",
            "brightRed": "#00ff00",
            "brightWhite": "#00ff00",
            "brightYellow": "#00ff00",
            "cyan": "#00ff00",
            "foreground": "#00ff00",
            "green": "#00ff00",
            "purple": "#00ff00",
            "red": "#00ff00",
            "white": "#00ff00",
            "yellow": "#00ff00"
        }
    ]
}

As possibilidades de como customizar o Windows Terminal são inúmeras! Como dito anteriormente, você pode baixar o Windows Terminal pela Microsoft Store. E então, o que achou dessas configurações? Deixe aqui nos comentários qual funcionalidade você mais gostou, e quem sabe, compartilhar suas configurações?

Fiquem ligados e nos sigam nas nossas redes sociais, como Twitter, Instagram, Facebook e LinkedIn para mais novidades!

Hyper + OhMyZSH: O melhor terminal para desenvolvedores

Todo desenvolvedor utiliza (ou já utilizou) um terminal em sua carreira. É com eles que utilizamos comandos para executar determinada tarefa em um projeto ou aplicação.
Dentre diversas opções disponíveis na internet, uma que particularmente gosto muito é o Hyper em conjunto com o OhMyZSH.
Neste artigo veremos como instalá-las e o quanto este terminal pode nos auxiliar em nosso dia-a-dia.

Ferramentas utilizadas

O Hyper é uma interface de terminal desenvolvida utilizando o Electron, framework javascript para criação de aplicações desktop, ou seja, toda sua interface é criada utilizando tecnologias web (html, css e javascript). Ele é, basicamente, uma alternativa que substitui a interface do prompt de comandos (no windows) ou o terminal (no linux e macos).

Já o OhMyZSH é um framework open-source mantido pela comunidade para gerenciar a configuração do ZSH, um interpretador de comandos UNIX (shell) que pode ser utilizado como processador de comandos de script, e melhorar o workflow de desenvolvimento.

Linux - Fundamentos para desenvolvedores
Curso de Linux - Fundamentos para desenvolvedores
CONHEÇA O CURSO

Sendo assim, essas duas ferramentas, em conjunto, proporcionarão um terminal altamente personalizável e com uma interface muito mais bonita e intuitiva.

Hyper

A instalação do Hyper é muito simples, basta acessar o site da ferramenta em seu site oficial, selecionar a versão com base no sistema operacional que você utiliza e fazer a instalação. Ao final deste processo, o Hyper já estará disponível e pronto para ser utilizado, com a aparência similar ao da imagem abaixo:


Porém, o Hyper irá utilizar o shell padrão do sistema operacional, então precisamos alterá-lo.

OhMyZSH

O primeiro passo para instalar o OhMyZSH é instalar o ZSH, seu shell. Há várias formas de realizar este processo de instalação e todos eles podem ser vistos em seu repositório.

A instalação mais trabalhosa é no Windows, que você terá que utilizar o WSL. Todo processo de instalação pode ser visto aqui no blog.

Windows - Fundamentos para desenvolvedores
Curso de Windows - Fundamentos para desenvolvedores
CONHEÇA O CURSO

Com o ZSH instalado, podemos executar o comando abaixo:

zsh --version

E receber a seguinte resposta:

zsh --version
zsh 5.7.1 (x86_64-apple-darwin19.0)

Com o ZSH instalado, já estamos prontos para a instalação do OhMyZSH, framework open-source gerenciado pela comunidade para gerenciar a configuração do ZSH.

Sua instalação também é bastante simples, bastando apenas ter instalado o curl ou wget e o git. Com essas ferramentas instaladas, basta utilizar o comando abaixo no terminal:

via curl

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

via wget

sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Feito isso, o OhMyZSH estará instalado e funcionando, com um resultado similar ao da imagem abaixo:


Claro que na imagem acima há vários plugins instalados que personalizam ainda mais o Hyper e o ZSH, mas a instalação destes plugins veremos em um outro artigo. O importante aqui é que, agora, você tem um terminal altamente personalizável, podendo instalar diversos plugins (https://github.com/ohmyzsh/ohmyzsh/wiki/Plugins) e temas, tanto para o shell (https://github.com/ohmyzsh/ohmyzsh/wiki/Themes), quanto para o terminal (https://hyper.is/themes).

O Windows Terminal

Em maio de 2019 foi anunciado o Windows Terminal, um novo terminal que promete melhorar a experiência com a interface de linha de comandos no Windows 10. Já disponível como preview no Microsoft Store, vamos conhecer as suas principais funcionalidades.

O Windows Terminal

Durante a build 2019 que aconteceu em maio, foi anunciado o Windows Terminal, um terminal para Windows 10 que tem como objetivo entregar funcionalidades tão aguardadas como suporte a abas, temas, texto unicode (incluindo emojis 😄) e mais opções de configuração.

Mesmo com melhorias que foram incluídas nos últimos releases do Windows 10, como alterar o formato do cursor, suporte a atalhos na tecla CTRL (como CTRL+C CRTL+V), inclusão de um novo motor para parsear sequências ANSI/VT (fundamental para aplicações Linux rodando com Windows Subsystem for Linux, como tmux) e até a alteração do tema padrão do Console junto com a disponibilização de uma ferramenta para alterar as cores do console, ainda assim a experiência no Windows era inferior se comparada com terminais do Linux e Mac.

Windows - Fundamentos para desenvolvedores
Curso de Windows - Fundamentos para desenvolvedores
CONHEÇA O CURSO

Incluir todas essas funcionalidades esperadas como suporte a abas, transparência, entre outros precisariam de alterações tão profundas que precisariam quebrar a retro compatibilidade do terminal atual. Como manter a compatibilidade com aplicações antigas é algo levado a sério pela Microsoft, foi decidido criar um novo projeto para isso.

Durante a build 2019 foi anunciado o Windows Terminal, um novo terminal que permite uma experiência moderna com múltiplos shells.

O que muda com o Windows Terminal

O Windows Terminal será uma aplicação opcional e terá suporte a outros shells como prompt de comando, Powershell e o WSL. Assim todos os seus scripts continuarão funcionando como antes, porém em uma interface mais moderna.

Para ficar mais claro, precisamos entender qual a diferença entre o terminal, console e shell. Embora possam parecer a mesmo coisa, cada um tem um significado diferente.

No contexto histórico, o console se refere ao hardware que era capaz de se conectar com um servidor para executar comandos. Atualmente não utilizamos um hardware específico para isso, isso acaba sendo abstraído na forma de um console virtual, que no Linux pode ser acessado pela combinação de teclas como CTRL+ALT+F1 até F4. Atualmente esse termo tem entrado em desuso, mas é comum se referir ao console como uma interface via linha de comandos.

O terminal é um software que recebe os comandos do usuário e encaminha os mesmos para o shell. Ele é responsável por ser essa ponte entre o usuário e o sistema, enviando comandos e exibindo a sua saída para o usuário. O Windows Terminal se encaixa nessa categoria, juntamente com o gnome-terminal para Linux, iTerm para Mac e também o ConEmu para Windows.

O shell por sua vez é responsável por receber os comandos enviados pelo terminal e processar esses comandos junto ao Sistema Operacional. Como exemplos podemos citar o bash, zsh, powershell e até o cmd clássico do Windows.

O Windows Terminal permite que você configure diferentes profiles diferentes para utilizar diferentes shells. Para cada um desses profiles é possível ter configurações diferentes de fonte, transparência, temas, cursores, entre outros. Ele permite também a configuração de atalhos e da sua interface para se adaptar as necessidades do usuário.

Ao instalar o Windows Terminal, ele irá identificar automaticamente quais os diferentes shells disponíveis para você utilizar. Caso você tenha o WSL ou o Powershell Core instalado, ele irá possibilitar que você o utilize sem precisar configurar tudo do zero.

Como instalar

O Windows Terminal está disponível como preview no Windows Store. Mesmo estando em preview ele está em sua quarta versão (v0.4) e já se mostra bem estável.

Para os mais apressados, também é possível clonar o código do Terminal e fazer o build diretamente da sua máquina. O código do Windows Terminal é open source, e está disponível no GitHub de forma que você possa testa-lo e contribuir com seu desenvolvimento, sugerindo melhorias, reportando bugs ou até mesmo enviando pull requests!

Estou utilizando o Windows Terminal no meu dia a dia desde o primeiro preview e é visível a sua evolução. No próximo preview por exemplo, será possível simplificar seu arquivo de configurações, alterando somente as modificações que são diferentes do padrão:

No meu dia a dia utilizo o Powershell Core e também o WSL com Ubuntu e zsh como shell. Se comparado com o gnome-terminal do Ubuntu, não senti nenhuma diferença.

Windows - Fundamentos para desenvolvedores
Curso de Windows - Fundamentos para desenvolvedores
CONHEÇA O CURSO

E você, já conhecia o Windows Terminal? O que você achou desse novo terminal? Sentiu falta de alguma funcionalidade presente em algum outro terminal? Responda nos comentários abaixo 🙂

© 2004 - 2019 TreinaWeb Tecnologia LTDA - CNPJ: 06.156.637/0001-58 Av. Paulista, 1765, Conj 71 e 72 - Bela Vista - São Paulo - SP - 01311-200