Risposte:
È possibile creare il servizio Automator per eseguire questo Applescript e dargli una scorciatoia da tastiera nelle scorciatoie da tastiera Preferenze di Sistema
Ciò chiuderà la notifica di avviso e banner
In Automator scegli un nuovo servizio
Aggiungi un'azione Esegui Applescript
e sostituisci il suo codice con:
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
Impostare il 'Servizio riceve [nessun input] in [qualsiasi applicazione]'
Salva il servizio.
Apri le scorciatoie da tastiera in Preferenze di sistema e imposta il tuo servizio in "Servizi"
Ora qualsiasi app appena lanciata prenderà il collegamento.
(Nota: ho strutturato lo script per contrastare il lancio di un errore che si verificherà quando le notifiche / finestre iniziano a chiudersi.
le otifiche / finestre sono numerate da 1 fino al conteggio totale. Ma quando chiudono la sceneggiatura funzionerebbe ancora del vecchio conteggio. Ma il sistema riassegnerà l'indice delle finestre.
Quindi, quando diciamo che inizia da 1 a 6, lo script proverà a chiudere la finestra 1, la finestra 2, la finestra 3 e così via. Ma il sistema ha assegnato nuovamente i numeri di finestra 1,2,3 alle ultime finestre rimanenti. Ma lo script proverà a chiudere la finestra 4 e genererà un errore perché non esiste. La sceneggiatura lo afferrerà e lo affronterà. )
Se si desidera fare clic sul pulsante "Mostra" in una notifica di avviso. si cambia il pulsante su cui si fa clic da 1 a 2.
click button 2 of this_item
Le notifiche banner non hanno un pulsante 2.
Ma puoi semplicemente fare clic sulla finestra.
Quindi questo codice dovrebbe occuparsi di Mostrare.
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
Non proprio quello che stai chiedendo:
È possibile limitare il tempo visualizzato per il tipo di banner con
Terminare e incollare quanto segue
defaults write com.apple.notificationcenterui bannerTime #
con il segno del numero # sostituito con la quantità di secondi in cui si desidera che le notifiche banner rimangano, quindi disconnettersi e riconnettersi.
Per ripristinare la funzione originale (5 secondi) utilizzare defaults delete com.apple.notificationcenterui bannerTime
So che non ha detto: Ma si potrebbe ciclo la notifica on / off con uno script e assegnare una scorciatoia di tastiera ad esso. Disabilitare temporaneamente il Centro notifiche in Mountain Lion dalla riga di comando?
La sceneggiatura originale di Markhunte funziona ma si interrompe dopo alcune finestre. È possibile che l'elenco di finestre includa solo quelle attualmente visibili. Quando ne hai troppi, questo non chiuderà tutto. Ho aggiunto un ciclo al di fuori del ciclo principale per interrogare le finestre fino a quando non otteniamo un conteggio delle finestre pari a zero. Ecco il codice:
my closeNotif () su 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
end closeNotif