Primeiro, defina seu prompt para executar substituições, conforme explicado aqui: Obtenha a função no PS1 (Zsh) ?
Basta acrescentar o seguinte no seu arquivo .zshrc
.
setopt PROMPT_SUBST
Em seguida, encontre um AppleScript que conte seu e-mail não lido, por exemplo este de Geeklets de Matt Swain . Faça o download do arquivo .scpt
e coloque-o em algum lugar, por exemplo, ~/Scripts/mail_count.scpt
.
Observe que o Mail.app precisa estar em execução para que tudo isso funcione. No seu .zshrc
, crie uma função que chama o AppleScript:
function mail_count {
osascript ~/Scripts/mail_count.scpt
}
Por fim, redefina seu prompt com base na nova função. O seguinte seria a abordagem mais básica - mas sinta-se à vontade para adicionar suas próprias variáveis necessário:
PROMPT='$(mail_count) '
Se você não quer mexer com o seu prompt ou usar um dos estilos de oh-my-zsh, ou mesmo o módulo promptinit
, você também pode usar apenas a função precmd()
, na qual você define qualquer coisa que deve ser executado antes que outro comando seja executado. Nesse caso, você não precisaria da opção PROMPT_SUBST
.
precmd() {
mail_count
}
Qualquer que seja o método usado, sua contagem de emails não lidos será enviada em texto simples. Se você quiser alterar as mensagens, dê uma olhada na fonte do arquivo .scpt
e modifique-o de acordo.