Atajo de teclado para descartar notificaciones

20

Me gustaría poder descartar y abrir notificaciones con el teclado

(No se trata de abrir / cerrar el centro de notificaciones)

¿Es esto posible? Y si es así, ¿cómo?

    
pregunta Drewdavid 10.11.2014 - 18:02

3 respuestas

22

Puedes crear el servicio Automator para ejecutar este Applescript y asignarle un atajo de teclado en los atajos de teclado de Preferencias del sistema

Esto cerrará la notificación de alertas y banners

En Automator elige un nuevo servicio

AñadirunaacciónEjecutarApplecript

y reemplaza su código 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

Establezca 'El servicio recibe [sin entrada] en [cualquier aplicación]'

Guarda el servicio.

Abra los atajos de teclado en las preferencias del sistema y configure su servicio en "Servicios"

Ahora,cualquieraplicaciónreciénlanzadarecogeráelaccesodirecto.

(Nota:estructuréelscriptparacontrarrestarellanzamientodeunerrorqueseproducirácuandolasnotificaciones/ventanasempiecenacerrarse.

Lasotificaciones/ventanaestánnumeradasdel1alrecuentototal.Peroamedidaquecierranelguióntodavíaestaríafuncionandoelantiguoconde.Peroelsistemavolveráaasignarelíndicedelasventanas.

Entonces,dondedecimosquecomienceen1-6,elscriptintentarácerrarlaventana1,laventana2,laventana3yasísucesivamente.Peroelsistemahareasignadolosnúmerosdeventana1,2,3alasúltimasventanasrestantes.Peroelscriptintentarácerrarlaventana4yarrojaráunerrorporquenoexiste.Elguióncaptaráestoyseocuparádeello.)

Sideseahacerclicenelbotón'Mostrar'enunaNotificacióndealerta.cambiaelbotónenelquehaceclicde1a2.

clickbutton2ofthis_item

Lasnotificacionesdebannernotienenunbotón2.

Perosolopuedeshacerclicenlaventana.

Asíqueestecódigodeberíahacersecargodemostrar.

mycloseNotif()oncloseNotif()tellapplication"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
    
respondido por el markhunte 10.11.2014 - 23:52
5

No es exactamente lo que estás pidiendo:

Puede limitar el tiempo que se muestra para el tipo de banners con

Terminar y pegar lo siguiente

defaults write com.apple.notificationcenterui bannerTime #

con el signo de número # reemplazado por la cantidad de segundos que desea que se mantengan las notificaciones de banner, luego cierre la sesión y vuelva a iniciarla.

Para restaurar la función original (5 segundos) usa defaults delete com.apple.notificationcenterui bannerTime

Sé que dijiste que no: pero podrías ciclar la activación / desactivación de la notificación con un script y asignarle un atajo de teclado. ¿Deshabilitar temporalmente el Centro de notificaciones en Mountain Lion desde la línea de comandos?

    
respondido por el Buscar웃 10.11.2014 - 19:18
0

El script original de markhunte funciona pero se detiene después de unas pocas ventanas. Puede ser que la lista de ventanas solo incluya las que están visibles actualmente. Cuando tienes demasiados esto no cerrará todo. Agregué un bucle fuera del bucle principal para consultar las ventanas hasta que obtengamos un conteo de cero de ventanas. Aquí está el código:

mi closeNotif () en 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

    
respondido por el Sandhitsu Das 24.11.2018 - 15:46

Lea otras preguntas en las etiquetas