Estoy usando OS X y quiero saber si hay algún mensaje no leído en mi Mail.app? Quiero poner ese número en mi indicador de shell.
¿Cómo lo hago?
Estoy usando OS X y quiero saber si hay algún mensaje no leído en mi Mail.app? Quiero poner ese número en mi indicador de shell.
¿Cómo lo hago?
Respuestas:
Primero, configure su solicitud para realizar sustituciones como se explica aquí: ¿ Obtener función en PS1 (Zsh)?
Simplemente agregue lo siguiente en su .zshrc
archivo.
setopt PROMPT_SUBST
Luego, busque un AppleScript que cuente su correo no leído, por ejemplo, este de Geeklets de Matt Swain . Descargue el .scpt
archivo y colóquelo en algún lugar, por ejemplo ~/Scripts/mail_count.scpt
.
Tenga en cuenta que Mail.app debe estar ejecutándose para que todo esto funcione. En su .zshrc
, cree una función que llame al AppleScript:
function mail_count {
osascript ~/Scripts/mail_count.scpt
}
Finalmente, redefina su solicitud en función de la nueva función. El siguiente sería el enfoque más básico, pero siéntase libre de agregar sus propias variables según sea necesario:
PROMPT='$(mail_count) '
Si no desea meterse con su solicitud o usar uno de los estilos oh-my-zsh, o incluso el promptinit
módulo, también puede usar la precmd()
función, en la que define cualquier cosa que deba ejecutarse antes de ejecutar otro comando . En ese caso, no necesitarías la PROMPT_SUBST
opción.
precmd() {
mail_count
}
Cualquiera que sea el método que utilice, su recuento de correo no leído se generará en texto sin formato. Si desea cambiar los mensajes, eche un vistazo a la fuente del .scpt
archivo y modifíquelo en consecuencia.
unread count of every mailbox
como se explica aquí .
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
Encontré esto más eficiente.