JB

Customizing the terminal the way I like it: Terminal on MacOS with Oh My Zsh, Powerlevel10k, iTerm2, Dracula, Plugins and more

terminaldraculaoh my zshiterm2
Jan 26, 2022

-- Translation In Progress

Some time ago I started a new cycle in my career as a developer working for a big company, IBM. In that, I got a new machine, which this time is a 16-inch Macbook Pro 2019, my first MacOS operating system (OS)! I'm excited about the new OS to simply have my experiences and opinions on.

I've had a lot of demand since I started this new cycle and so far I haven't stopped to customize the machine the way I like it. So, now I'm going to configure the terminal and comment on some more tools that I think are interesting for using a MacOS, being a large part for any Unix system.

For more details about Visual Studio Code (Vscode), browsers and other quick setup tips on Windows, read my other article related to setting up a Windows machine here. The big difference is that I'm using Homebrew as a macOS package manager, this software is like an APT on Linux or a Chocolatey on Windows.

Para instalação do homebrew, utilize o comando:

/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Assumindo que você acessou o outro artigo e já está com o seu GIT, Vscode, Homebrew ou APT instalado, bora começar a por para brilhar esse terminal!

Instalando o ZSH

O ZSH é uma ferramenta responsável por interpretar comandos de shell scripting com o objetivo de facilitar o uso, possibilitando uma gama de personalizações relacionadas a interface, plugins de produtividade e otimizações para terminal e etc...

Como estou utilizando o MacOS Big Sur, que já está com o ZSH instalado, vou apenas descrever como fazer para caso você queira instalar no seu sistema Unix. Basta utilizar o Homebrew que acaba de instalar com o comando:

brew install zsh

Após instalar o ZSH, deve ser possível verificar a versão instalada, com o comando:

zsh — version

Deve ser exibidor algo como a imagem abaixo:

Versão do ZSH: zsh 5.8 (x86_64-apple-darwin20.0)

Caso você tiver problemas com o ZSH, verifique o guia completo de instalação que eles fizeram em: https://github.com/ohmyzsh/ohmyzsh/wiki/Installing-ZSH.

Instalando o Oh My ZSH!

O Oh My ZSH possibilitará a configuração de temas para o nosso terminal, dentre outras funcionalidades.

Basta rodar o seguinte comando para seguir com a instalação do Oh my ZSH:

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

Provavelmente, você receberá uma tela como essa:

Output da instalação do ZSH

Repare que estou dentro de um repositório GIT e além de mudar a disposição das informações no Terminal, algumas cores foram adicionadas para facilitar a visualização das informações.

Caso as cores do seu terminal não mudem, tente fechar e abrir novamente, ou rodar o comando:

source ~/.zshrc

Pode tentar utilizar também o comando para reiniciar apenas o ZSH:

exec zsh

Agora que você possui o ZSH e o Oh my ZSH, todas as configurações que você for fazer como adicionar variáveis ambientes ou configurar seu terminal é interessante utilizar o arquivo ~/.zshrc e não mais o ~/.bash_profile ou semelhantes.

Caso tenha problemas com esse passo, tente acessar o guia oficial de instalação: https://github.com/ohmyzsh/ohmyzsh/.

Mudando o tema padrão para o PowerLevel10K

Existem uma infinidade de temas do ZSH que mudam a disposição do layout das informações e da quantidade delas no terminal, eu utilizo o tema do powerlevel10k por causa que ele mantém a interface limpa mostrando uma quantidade útil de informações sobre pastas, GIT e horário.

Existem duas formas de instalar esse tema, pode ser executando esse comando:

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >> ~/.zshrc

Após isso, o tema do power level 10k fará uma série de perguntas para sua configuração.

CLI de configuração do tema powerlevel10k

Caso tu queira reconfigurar, basta executar o comando:

p10k configure

E a outra foram que eu prefiro primeiro, é clonar o repositório para do powerlevel10k para dentro dos temas do ZSH com o comando:

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

E alterar a variável ZSH_THEME no arquivo ~/.zshrc

ZSH_THEME=”powerlevel10k/powerlevel10k”

Enfim, basta reiniciar o ZSH e reconfigurar o tema para como você preferir.

Caso tenha algum problema na configuração do tema, eu indico verificar o guia oficial dos criadores desse tema: https://github.com/romkatv/powerlevel10k

Tema Dracula no Terminal default do MacOS

O Dracula é um tema que segue uma paleta de cores que eu considero bem agradável e está disponível para muitos terminais e você pode conferir todos aqui: https://draculatheme.com na seção Terminal.

Nesse tópico irei configurar o terminal padrão do Mac, então utilizarei esse: https://draculatheme.com/terminal.

Se você estiver no Windows usando Windows Terminal, pode utilizar: https://draculatheme.com/windows-terminal.

Se você estiver no Linux com uma distribuição que usa Gnome, vai utilizar: https://github.com/dracula/gnome-terminal.

Para instalar o Tema Dracula no Terminal padrão, basta clonar o repositório com:

git clone https://github.com/dracula/terminal-app.git ~/Documents/themes/terminal

Eu clonei para minha pasta documents/terminal, mas você coloque onde quiser.

E depois basta importar as cores para dentro do Terminal:

Menu de importar paleta de cores do Terminal default do MacOS

E selecionar como o terminal padrão, clicando no tema que surgirá e em padrão, também vou aproveitar que estou nessa tela e vou mudar o Cursor para uma barra vertical de cor: #50fa7b, e trocar a fonte para  de tamanho 18, que instalei manualmente, segue a imagem dessas configurações:

Menu de perfis do terminal com quadrados azuis ao redor das configurações citadas.

Instalando iTerm2 com o tema Dracula

Por mais que eu tenha configurado o Terminal do MacOS, pretendo experimentar o iTerm2.

Uma alternativa interessante ao iTerm2 é o Hyper.

Para instalar, execute o comando:

brew install iterm2 — cask

Agora, vamos baixar o tema do Dracula para iTerm, irei colocar na mesma pasta que a do Terminal da Apple.

git clone https://github.com/dracula/iterm.git ~/Documents/themes/iterm

Apenas falta abrir o iTerm e ir em iTerm2 > Preferences > Profiles > Colors Tab e importar as cores do arquivo Dracula.itermcolors na pasta que baixamos. Segue um print do menu de importar:

Menu de importar paleta de cores do iTerm2

Resta selecionar o perfil de cores do Dracula e na aba de "Text" mudar o cursor e a fonte igual foi feito no Terminal padrão do MacOS.

Plugins do ZSH

Eu uso apenas 2 plugins do ZSH, sendo eles:

  • zsh-users/zsh-autosuggestions: Sugere comandos baseados no histórico de execução de comandos que você já digitou.
  • zdharma-continuum/fast-syntax-highlighting: Que adiciona sintaxe highlight no Terminal.

Para instalar esses plugins, eu instalarei um gerenciador de Plugins do ZSH chamado ZInit com o comando:

# instala zinit
sh -c "$(curl -fsSL https://git.io/zinit-install)"# reinicia zsh
exec zsh# atualiza zinit
zinit self-update

Agora abrirei o arquivo ~/.zshrc e após as linhas "### End of Zinit’s installer chunk", adicionarei as duas seguintes linhas:

zinit wait lucid light-mode for \
  atinit"zicompinit; zicdreplay" \
      zdharma-continuum/fast-syntax-highlighting \
  atload"_zsh_autosuggest_start" \
      zsh-users/zsh-autosuggestions \
  blockf atpull'zinit creinstall -q .' \
      zsh-users/zsh-completions

Finalmente, temos sintaxe highlight e auto complete de comandos já executados:

Demonstração de auto complete

Terminal integrado do VSCode

Se você utiliza o VSCode pode adicionar a seguinte configuração no seu settings.json para utilizar o Oh My Zsh no terminal integrado:

"terminal.integrated.shell.osx": "/bin/zsh"

Recomendações extras

Existem algumas ferramentas que utilizo que são uma mão na roda e recomendo que teste:

  • Insomnia, API Client para REST, GraphQL, GRPC e ferramenta de modelagem de OpenAPI para desenvolvedores.
  • Beekeeper Studio, SQL client para MySQL, Postgres, SQLite, SQL Server e outras bases de dados.
  • iStat Menus, ferramenta que facilita monitorar o uso do hardware no MacOS.

Conclusão

Finalizei a configuração do meu terminal e por hora eu faço dessa forma, provavelmente conhecerei ferramentas novas e em Setup futuros farei posts sobre essas novidades. Com essa demonstração de configuração, espero que você tenha tido ao menos alguma ideia de como pode fazer para mudar o seu Terminal, adicionando novos plugins e as suas paletas de cores favoritas.

Acredito que vale a pena ter um terminal agradável à sua subjetividade do que é bom, afinal passamos bastante tempo utilizando essa ferramenta.

Sapere aude.