Respostas:
Você pode criar o serviço Automator para executar este Applescript e atribuir um atalho de teclado nos atalhos de teclado de Preferências do sistema.
Isso fechará o alerta e os banners de notificação
No Automator, escolha um novo serviço
Adicionar uma ação Executar Applescript
e substitua seu código por:
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
Defina o 'Serviço recebe [sem entrada] em [qualquer aplicativo]'
Salve o serviço.
Abra os atalhos do teclado em Preferências do sistema e defina o seu serviço em 'Serviços'
Agora, qualquer aplicativo recém-lançado selecionará o atalho.
(Observação: estruturei o script para combater o lançamento de um erro que ocorrerá quando as notificações / janelas começarem a fechar.
otificações / janela são numeradas de 1 a contagem total. Mas, ao fecharem, o script continuaria funcionando com o antigo conde. Mas o sistema estará atribuindo o índice das janelas.
Então, onde dizemos iniciar de 1 a 6, o script tentará fechar a janela 1, janela 2, janela 3 e assim por diante. Mas o sistema atribuiu os números de janela 1,2,3 às últimas janelas restantes. Mas o script tenta fechar a janela 4 e gera um erro porque não existe. O script vai pegar isso e lidar com isso. )
Se você deseja clicar no botão 'Mostrar' em uma notificação de alerta. você altera o botão em que você clica de 1 a 2.
click button 2 of this_item
As notificações de faixa não têm um botão 2.
Mas você pode simplesmente clicar na janela.
Portanto, esse código deve cuidar da exibição.
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
Não é exatamente o que você está pedindo:
Você pode limitar o tempo exibido para o tipo de banners com
Terminal e cole no seguinte
defaults write com.apple.notificationcenterui bannerTime #
com o sinal de número # substituído pela quantidade de segundos que você deseja que as notificações do banner permaneçam, depois faça logoff e logon novamente.
Para restaurar a função original (5 segundos), use defaults delete com.apple.notificationcenterui bannerTime
Eu sei que você não disse: mas você pode ciclo de notificação on / off com um script e atribuir um atalho de teclado para ele. Desativar temporariamente o Notification Center no Mountain Lion na linha de comando?
O script original de markhunte funciona, mas para após algumas janelas. Pode ser que a lista de janelas inclua apenas as que estão atualmente visíveis. Quando você tem muitos, isso não fecha tudo. Adicionei um loop fora do loop principal para consultar as janelas até obter uma contagem de zero. Aqui está o código:
meu closeNotif () em 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
fim closeNotif