Olá pessoal!
Quero compartilhar com vocês uma experiência recente de customização do shell.
Sempre usei bash e, por muito tempo, tive uma ótima experiência com o oh-my-bash. Porém, ao começar a usar o Alpine Linux (que não vem com bash por padrão), acabei me motivando a testar o Zsh.
Pesquisando na internet, a recomendação mais comum foi o Oh My Zsh, então instalei o framework, junto com os plugins de autosuggestions e syntax-highlighting. Usei essa configuração por um tempo, tudo funcionando bem.
Mas depois descobri que o Alpine possui esses plugins empacotados oficialmente: zsh-autosuggestions e zsh-syntax-highlighting. E aí bateu aquela coceira de testar novas formas de fazer as coisas. ![]()
Resolvi então experimentar o Zsh usando apenas os pacotes da própria distro, sem frameworks externos. Deletei o Oh My Zsh e comecei a configurar tudo do zero.
Instalei os plugins pelo APK; eles ficam em /usr/share/zsh/plugins. Em algum lugar (que agora não lembro onde
) li que bastava criar links simbólicos para ~/.local/share/zsh/plugins/ para ativá-los. Então fiz:
$ mkdir -p ~/.local/share/zsh
$ ln -s /usr/share/zsh/plugins/ ~/.local/share/zsh/plugins/
Depois rodei o assistente de configuração inicial:
$ autoload -Uz zsh-newuser-install
$ zsh-newuser-install -f
E… funcionou! ![]()
Com os plugins ativos, só faltava deixar o prompt bonitinho. Primeiro testei o powerlevel10k, que também está nos repositórios do Alpine. Funcionou muito bem, achei bonito, mas não gostei da quantidade de arquivos que ele cria na home.
Depois testei o Starship (https://starship.rs). Muito bonito, leve, prático e super personalizável — mas fiquei com aquela pulga atrás da orelha de instalar mais um programa só para cuidar do prompt.
Hoje me veio a pergunta:
“Será que dá pra configurar um prompt legal só com o Zsh puro, sem instalar nada?”
Fui pesquisar e encontrei este link:
https://amitosh.medium.com/building-a-custom-zsh-prompt-from-scratch-3ff9fcbad67e
Baseado nisso, fiz minha pequena peripécia aqui e adicionei este trecho ao meu ~/.zshrc
PROMPT="╭╴%F{blue}%n@%m%f %F{yellow}%~%f
╰╴%B%(?:%F{green}$:%F{red}$)%b "
Ficou simples, leve e exatamente como eu queria.
[Atualizado] Como ficou meu arquivo:
# ~/.zshrc
# Lines configured by zsh-newuser-install
HISTFILE=~/.histfile
HISTSIZE=1000
SAVEHIST=1000
bindkey -e
# End of lines configured by zsh-newuser-install
# The following lines were added by compinstall
zstyle :compinstall filename '/home/bruno/.zshrc'
autoload -Uz compinit
compinit
# End of lines added by compinstall
# Prompt Customizado
PROMPT="╭╴%F{blue}%n@%m%f %F{yellow}%~%f
╰╴%B%(?:%F{green}$:%F{red}$)%b "
# Alias
alias ls='eza --color=auto --icons --hyperlink'
alias grep='grep --color=auto'
Medindo o tempo de inicialização do Zsh:
$ time zsh -i -c exit
zsh -i -c exit 0.02s user 0.01s system 99% cpu 0.030 total
Queria saber o que vocês acharam — e também ouvir experiências, dicas e sugestões sobre como vocês customizam o Zsh.
Abraços!



