Personalizando o Terminal com Powerlevel10k
Olá novamente, no post anterior apresentei algumas ferramentas que uso na tentativa de dar um pouco mais de produtividade ao uso do terminal no Linux. Neste post, vou mostrar um pouco do tema que uso para torná-lo mais amigável.
Powerlevel10k
O Powerlevel10k é um tema extremamente flexível e customizável para Zsh que pode ser instalado usando algum plugin ou manualmente.
Não estranhe caso ache alguma referência na documentação ou nas configurações ao Powerlevel9k, ele foi arquivado em favor ao uso do Powerlevel10k.
Como sou um usuário do Oh-my-Zsh, vou mostrar a configuração que uso nele.
Requisitos
- Zsh instalado e setado como shell padrão
- Oh-my-Zsh instalado
Instalação usando o Oh-my-Zsh
A instalação é muito bem documentada, siga as instruções corretamente e tudo dará certo. Mas, vou mostrar um passo a passo.
Primeiro você precisa clonar o repositório dentro do diretório ~/.oh-my-zsh/themes
. Lembra quando mencionei a versatilidade do framework? Pois é, muito fácil.
$ git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/.oh-my-zsh/themes/powerlevel10k
Agora para habilitar o tema, basta editar o .zshrc
.
ZSH_THEME=powerlevel10k/powerlevel10k
Por fim, reinicie o seu terminal…
Configurando o Tema
O Powerlevel10k possui um wizard de configuração, basta digitar
$ p10k configure
A configuração pelo wizard é bem completa e irá gerar um arquivo na sua home ~/.p10k.zsh
contendo todo o setup. A qualquer momento você poderá alterar as configurações editando esse arquivo.
Minhas configurações
A partir de agora irei mostrar cada uma das principais funcionalidades que eu uso no tema. Você pode conferir minhas configurações aqui nesse gist.
O P10k divide as informações entre itens da direita e itens da esquerda conforme a imagem abaixo:
Podemos observar as seguintes informações separadas por um pipe |
.
Itens da esquerda
Linha 1: Sistema operacional | Diretório atual | Status do repositório Git
Linha 2: Símbolo de comando
# Arquivo ~/.p10k.zshtypeset -ga POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
# =========================[ Line #1 ]=========================
os_icon # os identifier
dir # current directory
vcs # git status
# =========================[ Line #2 ]=========================
newline
prompt_char # prompt symbol
)
Git — vcs
A sessão de git nos itens da esquerda merece uma explicação:
- temos qual a branch atual
master
- quantos commits ela esta atrás da origin
↓1
- quantos commits a frente da origin
↑1
- quantos arquivos modificados
!1
- quantos arquivos em stage
+1
Símbolo de comando — Prompt Char
Por padrão o símbolo fica verde. Caso o último comando execute com erro, ele ficará vermelho.
Itens da direita
Linha 1: Versão do Golang | Versão do PHP | Versão do Java
Linha 2: Uso de Memória Ram | Uso de Swap
# Arquivo ~/.p10k.zshtypeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
# =========================[ Line #1 ]=========================
status # exit code of the last command
command_execution_time # duration of the last command
background_jobs # presence of background jobs context # user@host go_version
php_version
java_version
# =========================[ Line #2 ]=========================
newline
ram
swap
)
Status da última execução — status
Na imagem acima podemos ver o status em vermelho 0|0|0|127
- docker images retornou
0
- grep php retornou
0
- awk retornou
0
- xargs retornou
127
Tempo de execução — command_execution_time
Quando um comando leva mais que 3 segundos, ele aparece. Esse tempo pode ser configurado como quaisquer outros itens.
# Arquivo ~/.p10k.zsh
# Show duration of the last command if takes longer than this many seconds.
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3
Fontes, Cores e Ícones
Fontes
Mudar a fonte é bem simples, e para essa demostração estou usando uma específica que baixei do Nerdfonts chamada BitstreamVeraSansMono.
Basta baixar e descompactar no diretório ~/.fonts
na sua home
.
$ mkdir ~/.fonts$ wget -P ~/.fonts 'https://github.com/ryanoasis/nerd-fonts/releases/download/v2.1.0/BitstreamVeraSansMono.zip' $ unzip ~/.fonts/BitstreamVeraSansMono.zip -d ~/.fonts
Em seguida é necessário habilitar a fonte no ~/.p10k.zsh
A fonte de fato pode não aparecer ou mudar, pois, o seu terminal faz o override da configuração. Desta forma faço o setup manual no Terminator.
No momento uso a fonte da JetBrains, por ser a mesma que uso nas IDEs, Goland, PHPStorm e IntelliJ. Mas aqui fica ao seu critério.
Mas não se preocupe, o Powerlevel10k irá usar a Nerdfonts para os ícones ;)
Cores e Ícones
Cada cor e ícone pode ser alterada, basta ajustar a variáveis no arquivo ~/.p10k.zsh
Cores vão de 0 a 255, nessa exemplo 160 é vermelho e 32 é esse tom de azul
typeset -g POWERLEVEL9K_SWAP_FOREGROUND=160
typeset -g POWERLEVEL9K_SWAP_BACKGROUND=32
typeset -g POWERLEVEL9K_SWAP_ICON='\uf85a'
O mapa de ícones pertence à fonte, e você pode usar o site nerdfonts.com/cheat-sheet para procurar de forma fácil por ícones. Dessa forma achei o f85a
que é uma memória e usei em POWERLEVEL9K_SWAP_ICON=’\uf85a'
É isso ai! Com isso entramos em alguns detalhes do Powerlevel10k que irá permitir uma customização bem completa com informações úteis para o dia-a-dia, sendo capaz de editar tudo que é apresentado.
Não se assuste, pois o arquivo ~/.p10k.zsk
tem quase 700 linhas, a maioria são comentários explicando as variáveis e definições de setup.