By João Peterson on 21 Mar 2023 | 01:00 .
Categories | Linux | Tutorials | Embedded
Tempo de leitura: #
Visualizações: #
O Powerlevel10k é um tema para a shell zsh muito utilizado por usuários unix/linux e powershell no windows para dar um ar mais cool na hora de utilizar o terminal, e este mesmo possibilita de forma livre a configuração da linha de prompt, onde veremos que é muito fácil adicionar informações visuais condicionalmente.
Sumário
Pré passos
Instalar Powerlevel10k
Como em: https://github.com/romkatv/powerlevel10k#installation
Instalar esp-idf
Segmento ESP-IDF
Como pode se ver este será o objetivo, mostrar a versão e o nome do framework quando estivermos dentro de um repositório que utiliza o framework. Para isto vamos primeiro dar um jeito de pegar a versão do framework:
$ git -C "$IDF_PATH" branch 2> /dev/null | sed -E -n 's/.+ (v[0-9\.]+).*/\1/p')
Onde utilizamos o git
para pegar a branch atual do framework, dado em IDF_PATH
após o script IDF_PATH/export.sh ser executado, e realizar um regex com o uso do sed
para retirar somente a versão no formato v0.0.0
.
Pode se também utilizar:
$ idf.py --version
Mas eu vi que este processo é lento e como o comando de versão será executado toda vez que a prompt atualizar isso se tornará chato e lento para quem usar o terminal, sendo o comando git
assim mais viável.
Agora editando o arquivo:
~/.p10k.zsh
:
...
####################################[ esp-idf: esp idf sdk prompt ]####################################
function prompt_espidf(){
# check for .git dir on dir
if ! zstat -A size +size ".git" 2>/dev/null; then
return
fi
# check for sdk file on dir
if ! zstat -A size +size "sdkconfig" 2>/dev/null; then
return
fi
# check for idf path env var
if [[ ! -v IDF_PATH ]]; then
p10k segment -b 124 -f 15 -i "✘ " -t "esp-idf"
else
local version=$(git -C "$IDF_PATH" describe)
p10k segment -b 124 -f 15 -i " " -t "esp-idf $version"
fi
}
...
Onde checamos usando zstat
se o arquivo sdkconfig
existe, sendo este arquivo criado pelo sdk esp-idf e identificando assim uma pasta como desejável para apresentação do prompt, se este não existir, retornamos, assim o segmento não será exibido.
Sendo este código podendo ser localizado em qualquer lugar no arquivo após a definição:
...
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
...
)
...
Se o script export.sh
, que exporta as variáveis de ambiente do esp-idf, for executado, IDF_PATH
será definido e a prompt normal com versão será exibida.
- O ícone
é o ícone de microchip visto na figura mais acima
Caso IDF_PATH
não existir, um ✘
será exibido sem versão, indicando assim para você que o script deve ser executado, ou seja, um indicador visual para facilitar sua vida.
Falta ainda adicionar a nossa configuração para ser exibida a direta do prompt, para isso basta adicionar as seguintes linhas:
...
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
# =========================[ Line #1 ]=========================
...
espidf # esp-idf framework
# =========================[ Line #2 ]=========================
newline
...
)
...
- Lembrando que que nossa função deve se chamar
function prompt_NOME()
e a definição emPOWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
deve ser apenasNOME
.
Rápidex este, para maiores informações utilize o seguinte comando:
$ p10k help segment
E leia o próprio arquivo ~/.p10k.zsh
, bem como as referências que eu segui abaixo. Valeu gurizada até a próxima.