Réponses:
Utilisez osascript
. Par exemple:
osascript -e 'tell app "Finder" to display dialog "Hello World"'
Remplacement de «Finder» par l'application de votre choix. Notez que si cette application est en arrière-plan, la boîte de dialogue apparaîtra également en arrière-plan. Pour toujours afficher au premier plan, utilisez "Événements système" comme application:
osascript -e 'tell app "System Events" to display dialog "Hello World"'
En savoir plus sur Mac OS X Hints .
Utilisez cette commande pour déclencher la notification du centre de notification depuis le terminal.
osascript -e 'display notification "Lorem ipsum dolor sit amet" with title "Title"'
Si vous utilisez une version de Mac OS X dotée du Centre de notifications, vous pouvez utiliser la gemme de notification de terminal . Installez-le d'abord (vous aurez peut-être besoin sudo
):
gem install terminal-notifier
et puis simplement:
terminal-notifier -message "Hello, this is my message" -title "Message Title"
Voir aussi cet article OS X Daily .
brew install terminal-notifier
fonctionne également si vous préférez brasser.
Cela rétablirait le focus sur l'application précédente et quitterait le script si la réponse était vide.
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
Si vous avez dit aux événements système d'afficher la boîte de dialogue, il y aurait un petit délai si elle n'était pas en cours d'exécution auparavant.
Pour obtenir de la documentation sur la boîte de dialogue d'affichage, ouvrez le dictionnaire des ajouts standard dans AppleScript Editor ou consultez le Guide du langage AppleScript .
Avec AppleScript :
display notification "Notification text" with title "Notification Title" subtitle "Notification sub-title" sound name "Submarine"
Avec terminal / bash et osascript
:
osascript -e 'display notification "Notification text" with title "Notification Title" subtitle "Notification sub-title" sound name "Submarine"'
Ne prend pas le sous-titre ni le son dur.
Avec AppleScript :
display alert "Alert title" message "Your message text line here."
Avec terminal / bash et osascript
:
osascript -e 'display alert "Alert title" message "Your message text line here."'
Ajoutez une ligne dans bash pour jouer le son après la ligne d'alerte:
afplay /System/Library/Sounds/Hero.aiff
Ajoutez la même ligne dans AppleScript , en laissant le script shell faire le travail:
do shell script ("afplay /System/Library/Sounds/Hero.aiff")
Liste des sons intégrés à macOS à choisir ici .
Paraphrasé à partir d'un article pratique sur les notifications de terminal et d'applescript .
Et mes 15 centimes. Une seule ligne pour le terminal mac, etc. il suffit de définir MIN = sur n'importe quoi et un message
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"'
Un exemple supplémentaire d'inspiration pour combiner plus de commandes; cela mettra également un mac en veille sur le message :) la connexion sudo est alors nécessaire, une multiplication comme le 60 * 2 pendant deux heures va également
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
Une question et une réponse simulaires sont disponibles à l' adresse : /superuser/246353/how-to-make-the-terminal-do-a-pop-up-alert-in-osx
J'ai fait un script pour résoudre ce problème qui est ici . Vous n'avez besoin d'aucun logiciel supplémentaire pour cela. Installation:
brew install akashaggarwal7/tools/tsay
utilisation:
sleep 5; tsay
N'hésitez pas à contribuer!