Como receber notificações do zsh no Fedora

 

Já faz um tempo que tenho preferido usar o zsh ao invés do bash como meu shell padrão.

Ao utilizar o Fedora eu notei que, utilizando o zsh, não conseguia receber notificações de algumas ações no emulador de terminal. Acho estas notificações bastante úteis quando estou aguardando alguma coisa iniciada no terminal, como um backup ou uma atualização do sistema que, inclusive está sendo feita enquanto escrevo esse post.

Solução

Vasculhando o fórum do Fedora eu encontrei uma solução. Basta editar o seu arquivo .zshrc (que fica no seu home) e adicionar as seguintes linhas:

zsh__vte_prompt_command () {
local command=$(HISTTIMEFORMAT= fc -l -1 | sed 's/^ *[0-9]\+ *//')
command="${command//;/ }"
local pwd='~'
[ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/}
printf "\033]777;notify;Command completed;%s\007\033]0;%s@%s:%s\007%s" "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)"
}

precmd () {
if which __vte_prompt_command &> /dev/null; then
zsh__vte_prompt_command
fi
}

Por aqui ficou assim:

Referências

Enable terminal notification in zsh