Tasto di scelta rapida per ignorare le notifiche

21

Mi piacerebbe essere in grado di chiudere e aprire le notifiche con la tastiera

(Non si parla dell'apertura / chiusura del centro notifiche)

È possibile? E se sì, come?

    
posta Drewdavid 10.11.2014 - 18:02
fonte

3 risposte

22

Puoi creare il servizio Automator per eseguire questo Applescript e assegnargli una scorciatoia da tastiera nelle scorciatoie da tastiera Preferenze di sistema

Questo chiuderà Notifica di avvisi e banner

In Automator scegli un nuovo servizio

Aggiungiun'azioneEseguiApplescript

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

Imposta 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"

Oraqualsiasiappappenaavviataselezioneràilcollegamento.

(Nota:hostrutturatoloscriptpercontrastareillanciodiunerrorechesiverificaquandolenotifiche/windowsinizianoachiudersi.

otifiche/finestrasononumeratida1afinoalconteggiototale.Mamentrechiudono,lasceneggiaturafunzionerebbeancoraconilvecchioconteggio.Mailsistemaassegneràdinuovol'indicedellefinestre.

Quindi,quandodiciamocheinizida1a6,loscriptproveràachiuderelafinestra1,lafinestra2,lafinestra3ecosìvia.Mailsistemahaassegnatonuovamenteinumeridifinestra1,2,3alleultimefinestrerimanenti.Maloscriptproveràechiuderàlafinestra4egenereràunerroreperchénonesiste.Loscriptprenderàquestoelogestirà.)

Sesidesiderafareclicsulpulsante"Mostra" su una notifica di avviso. cambia il pulsante su cui fai 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
    
risposta data 10.11.2014 - 23:52
fonte
5

Non proprio quello che stai chiedendo:

Potresti limitare il tempo visualizzato per il tipo di banner con

Terminale e incolla il seguente

defaults write com.apple.notificationcenterui bannerTime #

con il simbolo del numero # sostituito con il numero di secondi in cui desideri che le notifiche del banner rimangano incollati, quindi disconnetti e riaccendi.

Per ripristinare la funzione originale (5 secondi) usa defaults delete com.apple.notificationcenterui bannerTime

So che hai detto di no: ma puoi avviare la notifica on / off con uno script e assegnargli una scorciatoia da tastiera. Disattiva temporaneamente il Centro notifiche di Mountain Lion dalla riga di comando?

    
risposta data 10.11.2014 - 19:18
fonte
0

Lo script originale di markhunte funziona ma si ferma dopo alcune finestre. È possibile che l'elenco di finestre includa solo quelli 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 ottenere 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

fine closeNotif

    
risposta data 24.11.2018 - 15:46
fonte

Leggi altre domande sui tag