Odpowiedzi:
Możesz utworzyć usługę Automator, aby uruchomić ten skrypt Apple i dać mu skrót klawiaturowy w Preferencjach systemowych Skróty klawiaturowe
Spowoduje to zamknięcie Powiadomienia i banery
W Automatorze wybierz nową usługę
Dodaj akcję Uruchom Applescript
i zamień jego kod na:
my closeNotif()
on closeNotif()
tell application "System Events"
tell process "Notification Center"
set theWindows to every window
repeat with i from 1 to number of items in theWindows
set this_item to item i of theWindows
try
click button 1 of this_item
on error
my closeNotif()
end try
end repeat
end tell
end tell
end closeNotif
Ustaw „Usługa odbiera [brak danych] w [dowolnej aplikacji]”
Zapisz usługę.
Otwórz skróty klawiaturowe w Preferencjach systemowych i ustaw swoją usługę w sekcji „Usługi”
Teraz każda nowo uruchomiona aplikacja wybierze skrót.
(Uwaga: Skonstruowałem skrypt tak, aby przeciwdziałał zgłaszaniu błędu, który pojawi się, gdy powiadomienia / okna zaczną się zamykać.
powiadomienia / okno są ponumerowane od 1 do całkowitej liczby. Ale kiedy się zamkną, skrypt nadal będzie działał według starej wersji. Ale system będzie ponownie przypisywać indeks okien.
Więc gdy mówimy, zacznij od 1 -6, skrypt spróbuje zamknąć okno 1, okno 2, okno 3 i tak dalej. Ale system przypisał numery okien 1,2,3 do ostatnich pozostałych okien. Ale skrypt spróbuje zamknąć okno 4 i zgłosić błąd, ponieważ nie istnieje. Skrypt złapie to i poradzi sobie z tym. )
Jeśli chcesz kliknąć przycisk „Pokaż” w powiadomieniu o alercie. zmieniasz kliknięty przycisk z 1 na 2.
click button 2 of this_item
Powiadomienia banerowe nie mają przycisku 2.
Ale możesz po prostu kliknąć okno.
Więc ten kod powinien zająć się Pokazywaniem.
my closeNotif()
on closeNotif()
tell application "System Events"
tell process "Notification Center"
set theWindows to every window
repeat with i from 1 to number of items in theWindows
set this_item to item i of theWindows
set cnt to count buttons of this_item
try
if cnt > 1 then
click button 2 of this_item
else
click this_item
end if
on error
closeNotif()
end try
end repeat
end tell
end tell
end closeNotif
Niezupełnie o co prosisz:
Możesz ograniczyć czas wyświetlania banerów za pomocą
Zakończ i wklej poniżej
defaults write com.apple.notificationcenterui bannerTime #
ze znakiem # zamienionym na liczbę sekund, przez które powiadomienia mają pozostać, a następnie wyloguj się i zaloguj ponownie.
Aby przywrócić oryginalną funkcję (5 sekund), użyj defaults delete com.apple.notificationcenterui bannerTime
Wiem, że nie powiedział: ale można cykl Powiadomienie ON / OFF ze skryptu i przypisać skrót klawiaturowy do niego. Czy tymczasowo wyłączyć Centrum powiadomień w Mountain Lion z wiersza polecenia?
Oryginalny skrypt markhunte działa, ale zatrzymuje się po kilku oknach. Może się zdarzyć, że lista okien obejmuje tylko te, które są obecnie widoczne. Jeśli masz ich zbyt wiele, to nie zamknie wszystkich. Dodałem pętlę poza główną pętlą, aby wysłać zapytanie do okien, dopóki nie otrzymamy liczby okien równej zero. Oto kod:
my closeNotif () on closeNotif ()
tell application "System Events"
tell process "Notification Center"
set theWindows to every window
set nWindows to number of items in theWindows
repeat until nWindows is 0
repeat with i from 1 to number of items in theWindows
set this_item to item i of theWindows
try
click button 1 of this_item
delay 0.2
on error
my closeNotif()
end try
end repeat
set theWindows to every window
set nWindows to number of items in theWindows
end repeat
end tell
end tell
koniec zamknij Uwaga