Personalizando o Terminal com Powerlevel10k

Andre Luis Gomes
Opensanca
Published in
5 min readJun 22, 2020

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

.zshrc

Por fim, reinicie o seu terminal…

Configurando o Tema

O Powerlevel10k possui um wizard de configuração, basta digitar

$ p10k configure
p10k configure wizard

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

Ram and Swap
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.

--

--

Andre Luis Gomes
Opensanca

Software Engineering Specialist, Brazil. Developer as job and hobby. Blogger, and Podcaster.