Respostas:
Use osascript
. Por exemplo:
osascript -e 'tell app "Finder" to display dialog "Hello World"'
Substituindo “Finder” por qualquer aplicativo que você deseja. Observe que, se esse aplicativo estiver em segundo plano, a caixa de diálogo também aparecerá em segundo plano. Para sempre mostrar em primeiro plano, use “Eventos do sistema” como o aplicativo:
osascript -e 'tell app "System Events" to display dialog "Hello World"'
Leia mais em Dicas Mac OS X .
Use este comando para acionar a notificação do centro de notificação a partir do terminal.
osascript -e 'display notification "Lorem ipsum dolor sit amet" with title "Title"'
Se você estiver usando qualquer versão do Mac OS X que tenha o Notification Center, você pode usar o terminal-notifier gem. Primeiro instale-o (pode ser necessário sudo
):
gem install terminal-notifier
e então simplesmente:
terminal-notifier -message "Hello, this is my message" -title "Message Title"
Veja também esta postagem do OS X Daily .
brew install terminal-notifier
também funciona se você preferir preparar.
Isso restauraria o foco para o aplicativo anterior e sairia do script se a resposta estivesse vazia.
a=$(osascript -e 'try
tell app "SystemUIServer"
set answer to text returned of (display dialog "" default answer "")
end
end
activate app (path to frontmost application as text)
answer' | tr '\r' ' ')
[[ -z "$a" ]] && exit
Se você instruir os eventos do sistema a exibir a caixa de diálogo, haverá um pequeno atraso se não estiver em execução antes.
Para obter a documentação sobre a caixa de diálogo de exibição, abra o dicionário de Adições padrão no Editor AppleScript ou consulte o Guia de linguagem AppleScript .
Com AppleScript :
display notification "Notification text" with title "Notification Title" subtitle "Notification sub-title" sound name "Submarine"
Com terminal / bash e osascript
:
osascript -e 'display notification "Notification text" with title "Notification Title" subtitle "Notification sub-title" sound name "Submarine"'
Não leva o subtítulo nem o som forte.
Com AppleScript :
display alert "Alert title" message "Your message text line here."
Com terminal / bash e osascript
:
osascript -e 'display alert "Alert title" message "Your message text line here."'
Adicione uma linha em bash para reproduzir o som após a linha de alerta:
afplay /System/Library/Sounds/Hero.aiff
Adicione a mesma linha em AppleScript , permitindo que o shell script faça o trabalho:
do shell script ("afplay /System/Library/Sounds/Hero.aiff")
Lista de sons integrados do macOS para escolher aqui .
Paráfrase de um artigo útil sobre notificações de terminal e applecript .
E meus 15 centavos. Um liner para o terminal mac etc, basta definir o MIN = para qualquer coisa e uma mensagem
MIN=15 && for i in $(seq $(($MIN*60)) -1 1); do echo "$i, "; sleep 1; done; echo -e "\n\nMac Finder should show a popup" afplay /System/Library/Sounds/Funk.aiff; osascript -e 'tell app "Finder" to display dialog "Look away. Rest your eyes"'
Um exemplo de bônus para inspiração para combinar mais comandos; isso vai colocar um mac em espera hibernar após a mensagem também :) o login do sudo é necessário então, uma multiplicação como 60 * 2 por duas horas também vai
sudo su
clear; echo "\n\nPreparing for a sleep when timers done \n"; MIN=60*2 && for i in $(seq $(($MIN*60)) -1 1); do printf "\r%02d:%02d:%02d" $((i/3600)) $(( (i/60)%60)) $((i%60)); sleep 1; done; echo "\n\n Time to sleep zzZZ"; afplay /System/Library/Sounds/Funk.aiff; osascript -e 'tell app "Finder" to display dialog "Time to sleep zzZZ"'; shutdown -h +1 -s
Uma pergunta e resposta semelhantes estão disponíveis em: /superuser/246353/how-to-make-the-terminal-do-a-pop-up-alert-in-osx
Fiz um script para resolver isso que está aqui . Você não precisa de nenhum software extra para isso. Instalação:
brew install akashaggarwal7/tools/tsay
Uso:
sleep 5; tsay
Sinta-se à vontade para contribuir!