Ответы:
Сначала установите подсказку для выполнения замен, как описано здесь: Получить функцию в PS1 (Zsh)?
Просто добавьте следующее в ваш .zshrc
файл.
setopt PROMPT_SUBST
Затем найдите AppleScript, который считает вашу непрочитанную почту, например этот от Geeklets Мэттом Суэйном , Скачать .scpt
файл и поместите это где-нибудь, например ~/Scripts/mail_count.scpt
,
Обратите внимание, что Mail.app должен быть запущен, чтобы все это работало. В вашем .zshrc
создайте функцию, которая вызывает AppleScript:
function mail_count {
osascript ~/Scripts/mail_count.scpt
}
Наконец, переопределите ваш запрос на основе новой функции. Следующее было бы самым основным подходом - но не стесняйтесь добавлять ваши собственные переменные по мере необходимости:
PROMPT='$(mail_count) '
Если вы не хотите возиться с вашим приглашением или использовать один из стилей oh-my-zsh, или даже promptinit
модуль, вы также можете просто использовать precmd()
функция, в которой вы определяете все, что должно быть выполнено до выполнения другой команды. В этом случае вам не понадобится PROMPT_SUBST
вариант.
precmd() {
mail_count
}
Какой бы метод вы ни использовали, ваш счетчик непрочитанных писем будет выводиться в виде простого текста. Если вы хотите изменить сообщения, посмотрите на источник .scpt
файл и измените его соответственно.
unread count of every mailbox
как объяснил здесь ,
set output_string to ""
tell application "Mail"
set Unread_Count to unread count of inbox
if Unread_Count is 0 then
set output_string to ""
else if Unread_Count is 1 then
set output_string to "1 message"
else
set output_string to ("" & (get Unread_Count) & " messages")
end if
end tell
return output_string
Я нашел это наиболее эффективным.