Customizing the terminal the way I like it: Terminal on MacOS with Oh My Zsh, Powerlevel10k, iTerm2, Dracula, Plugins and more
-- 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:
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:
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.
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:
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:
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:
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:
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.