<rudneyrodrigues />

Terminal com o Zsh, Oh My Zsh, Spaceship, Omni theme e mais

7 de agosto de 2022

RR

Rúdney Rodrigues do Nascimento

Este post tem como objetivo mostrar exatamente todas configurações que faço em meu terminal como tema, plugins, configurações, etc.

Neste post, farei as configurações utilizando um sistema Unix (Max ou Linux) já que no Windows fica bem inviável configurar o que eu menciono nesse post a não ser que você crie um subsistema Linux dentro dele.

Instalando o ZSH

Antes de conseguirmos iniciar com qualquer configuração precisamos instalar o Zsh. Como existem várias formas de instalação dependendo do sistema operacional que você está, leia esse guia de configuração.

Para verificar a versão do ZSH, execute:

zsh --version

Você receberá na saída algo como: zsh 5.8.1 (x86_64-ubuntu-linux-gnu).

Instalando Oh My Zsh

Para instalar o Oh My Zsh execute o comando abaixo (certifique-se de ter o Curl instalado em sua máquina para poder executa-lo):

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

A partir de agora todas configurações que você quer fazer como adicionar variáveis ambientes ou configurar seu terminal de qualquer forma utilize o arquivo ~/.zshrc e não mais o ~/.bash-profile ou derivados.

Após reiniciar seu terminal, ele terá uma aparencia diferente do convencional, algo parecido com:

Lembrando que ainda vamos realizar configurações de cores, informações que aparecem em tela, etc.

Utilizando o Omni Theme

Omni Theme é um padrão de cores disponivel atualmente para 34 aplicações. Utilizo este esquema em boa parte dos apps e sistemas do meu dia a dia.

O Omni Theme está disponível para muitos terminais e você pode conferir todos aqui: https://github.com/getomni/omni na seção "Terminal Emulators".

Tema Spaceship

Agora vamos instalar o tema Spaceship que vai modificar um pouco as informações que são exibidas no terminal, com ele podemos mostrar a versão do Node atual, do Docker, etc.

Instalando a JetBrains Mono

Antes de iniciar a configuração do Spaceship precisamos instalar a fonte JetBrains Mono que possui diversos ícones dos quais são utilizados nesse tema. Baixe o arquivo .zip da última versão da fonte disponível aqui: https://www.jetbrains.com/pt-br/lp/mono/

Descompacte o arquivo baixado e na pasta fonts/ttf/ copie os arquivos de fonte para as fontes do seu sistema (cada sistema operacional possui uma forma de fazer isso, você precisa descobrir como funciona em seu sistema).

Depois disso será necessário configurar seu terminal com essa fonte, abaixo mostro uma imagem de como configurei no Gnome:

Instalando o Spaceship

Vamos começar clonando o repositório do Spaceship em nossa pasta de themes do Oh My Zsh (é necessário ter instalado o Git pra isso):

git clone https://github.com/denysdovhan/spaceship-prompt.git "$ZSH_CUSTOM/themes/spaceship-prompt"

Agora vamos criar um link simbólico para o arquivo do tema do Spaceship na pasta dos temas do Oh My Zsh:

ln -s "$ZSH_CUSTOM/themes/spaceship-prompt/spaceship.zsh-theme" "$ZSH_CUSTOM/themes/spaceship.zsh-theme"

Agora dentro do arquivo ~/.zshrc vamos alterar a variável ZSH_THEME ficando dessa forma:

ZSH_THEME="spaceship"

Agora reinicie o terminal e você verá uma interface bem mais limpa, parecida com essa:

Configurações adicionais

Por mais que seja muito interessante mostrar as versões do Node, Docker e outros itens no nosso terminal geralmente isso consome processamento e pode tornar mais lento o carregamento de pastas, por isso eu gosto de desabilitar a maioria dessas opções.

No fim do arquivo ~/.zshrc adiciono o seguinte conteúdo:

SPACESHIP_PROMPT_ORDER=(
  user          # Username section
  dir           # Current directory section
  host          # Hostname section
  git           # Git section (git_branch + git_status)
  hg            # Mercurial section (hg_branch  + hg_status)
  exec_time     # Execution time
  line_sep      # Line break
  jobs          # Background jobs indicator
  exit_code     # Exit code section
  char          # Prompt character
)
SPACESHIP_USER_SHOW=always
SPACESHIP_PROMPT_ADD_NEWLINE=false
SPACESHIP_CHAR_SYMBOL="❯"
SPACESHIP_CHAR_SUFFIX=" "

Plugins do ZSH

Utilizo alguns plugins bem legais para o Oh My Zsh que facilitam muito na hora de executar comandos comuns, realizar autocompletes, etc...

Para instalar plugins precisamos configurar o Zinit, ferramenta que facilita a instalação e remoção de plugins no Zsh.

bash -c "$(curl --fail --show-error --silent --location https://raw.githubusercontent.com/zdharma-continuum/zinit/HEAD/scripts/install.sh)"

Após essa instalação, vamos abrir o arquivo ~/.zshrc novamente e abaixo da linha ### End of Zinit's installer chunk que foi adicionada automaticamente no arquivo, adicionamos:

zinit light zdharma-continuum/fast-syntax-highlighting
zinit light zsh-users/zsh-autosuggestions
zinit light zsh-users/zsh-completions

Esses são os plugins que utilizo e abaixo explico como funciona cada um deles

  • zdharma-continuum/fast-syntax-highlighting: Adiciona syntax highlighting na hora da escrita de comandos que facilita principalmente em reconhecer comandos que foram digitados de forma incorreta;
  • zsh-users/zsh-autosuggestions: Sugere comandos baseados no histórico de execução conforme você vai digitando;
  • zsh-users/zsh-completions: Adiciona milhares de completitions para ferramentas comuns como Yarn, Homebrew, NVM, Node, etc, para você precisar apenas apertar TAB para completar comandos;

Concluindo

Pronto, se você configurou todos passos acima então seu terminal deve estar exatamente igual o meu. Se gostou do post, compartilhe com amigos 😊.

Terminal com o Zsh, Oh My Zsh, Spaceship, Omni theme e mais