Antworten:
Stellen Sie zunächst Ihre Eingabeaufforderung ein, um Ersetzungen durchzuführen, wie hier erläutert: Funktion in PS1 (Zsh) übernehmen?
Fügen Sie einfach folgendes in Ihr Formular ein .zshrc
Datei.
setopt PROMPT_SUBST
Suchen Sie dann beispielsweise ein AppleScript, das Ihre ungelesenen E-Mails zählt dieses von Geeklets von Matt Swain . Herunterladen das .scpt
Datei und platziere es irgendwo, z.B. ~/Scripts/mail_count.scpt
.
Beachten Sie, dass Mail.app ausgeführt werden muss, damit all dies funktioniert. In deiner .zshrc
Erstellen Sie eine Funktion, die das AppleScript aufruft:
function mail_count {
osascript ~/Scripts/mail_count.scpt
}
Definieren Sie abschließend Ihre Eingabeaufforderung basierend auf der neuen Funktion neu. Das Folgende wäre der grundlegendste Ansatz - aber Sie können ihn gerne hinzufügen Ihre eigenen Variablen wie benötigt:
PROMPT='$(mail_count) '
Wenn Sie sich nicht mit Ihrer Eingabeaufforderung anlegen oder einen der oh-my-zsh-Stile oder sogar den verwenden möchten promptinit
Sie können auch einfach das precmd()
Funktion, in der Sie alles definieren, was ausgeführt werden soll, bevor ein anderer Befehl ausgeführt wird. In diesem Fall würden Sie das nicht benötigen PROMPT_SUBST
Möglichkeit.
precmd() {
mail_count
}
Unabhängig davon, welche Methode Sie verwenden, wird die Anzahl Ihrer ungelesenen E-Mails im Klartext ausgegeben. Wenn Sie die Nachrichten ändern möchten, werfen Sie einen Blick auf die Quelle der .scpt
Datei und ändern Sie es entsprechend.
unread count of every mailbox
wie hier erklärt .
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
Ich fand das am effizientesten.