Dispensar alarme iCal sem mouse?

3

Agora que o Snow Leopard chegou, parei de usar o Entourage (woo hoo!) e agora estou usando o iCal.

Existe uma maneira de descartar um alarme iCal (por exemplo, "reunião às 11:00 começa em 10 minutos") sem usar o mouse?

Eu não posso - Tab para a janela. Se eu mudar para o iCal, a janela de alarme não está em foco. Eu não posso - ' para essa janela também.

    
por Doug Harris 23.09.2009 / 16:53

5 respostas

4

No Editor AppleScript, crie o seguinte script:

tell application "iCal Helper" to quit
delay 2
tell application "iCal Helper" to launch

Usando um aplicativo como o Quicksilver, o Butler, o FastScripts (lite), o Controllermate, etc., crie uma ação / atalho para iniciar o script.

A razão pela qual eu relançar o aplicativo é que queremos que ele seja aberto em segundo plano para o próximo evento / mensagem.

    
por 30.11.2009 / 20:00
1

Você pode usar o applescript. Isso ativará o alarme do iCal:

tell application "iCal Helper"
 activate
end tell

Você pode usar algo como FastScripts, QuickSilver, LaunchBar ou o aplicativo de atalho de teclado de sua escolha para iniciar o script com um atalho de teclado de sua escolha e, em seguida, digitar escape para descartá-lo.

Eu não acho que o aplicativo iCal Helper é scriptable além deste como eu não consegui obter uma chave de escape ou um clique do mouse via coordenadas do mouse para passar para ele. Ainda assim, você poderia dar ao script um atalho como Option-Escape, e depois seguir com outro escape manualmente para descartá-lo.

Eu não consegui fazer isso funcionar no 10.5.8, mas talvez o iCal Helper seja mais programável em 10.6?

tell application "iCal Helper"
 activate
 click at {1062, 300}
end tell

Eu tenho as coordenadas, digitando Command Shift 4 como o aplicativo de captura de tela dá coordenadas. Os alarmes aparecem convenientemente no mesmo local, mas a resolução do seu monitor fará com que suas coordenadas sejam diferentes das minhas. Se alguém tiver mais conhecimento sobre o AppleScript do que eu, estou curioso para saber por que exatamente a linha "clique em" acima não funciona.

    
por 29.10.2009 / 06:13
0

Encontrado este

But of course, if you click on the “x” button, Mac OS X actually brings iCal to the foreground, whether you like it or not. In other words, there is no way to dismiss an iCal alarm without switching to iCal. It’s… irritating.

    
por 23.09.2009 / 17:04
0

Você pode gravar a ação no automator e ver se isso funcionará. Acho que você terá que "ativar o acesso para dispositivos de assistência" no painel de preferência de acessibilidade universal. Eu tentei isso com um aplicativo de terceiros e funcionou muito bem, embora os controles não foram nomeados. Espero que a Apple siga suas próprias diretrizes. Depois de ter o script do automator funcionando, você pode iniciá-lo através do Quicksilver, como o ridogi mencionou.

    
por 03.11.2009 / 17:12
0

Nenhuma das outras respostas aqui funcionou para mim. Estou usando o código abaixo (encontrado aqui ) e funciona perfeitamente no OSX Yosemite (10.10.2 ).

Eu também ajustei o código um pouco para fazê-lo funcionar como um Workflow do Alfred v2 e o postou no GitHub aqui .

on run
    closeNotifications()
end run

on closeNotifications()
    try
        -- This function closes all currently displaying notification alerts. It used to also return the titles of each notification, which I have commented out to disable.
        tell application "System Events"
            tell process "Notification Center"
                set theseWindows to every window whose subrole is "AXNotificationCenterAlert" or subrole is "AXNotificationCenterBanner"
                --set theseTitles to {}
                repeat with thisWindow in theseWindows
                    try
                        -- Save the title of each alert window:
                        --set thisTitle to the value of static text 1 of scroll area 1 of thisWindow
                        --set the end of theseTitles to thisTitle

                        -- Close each alert:
                        click button "Close" of thisWindow
                    end try
                end repeat --"theseWindows"
                --return theseTitles
            end tell -- "NotCenter"
        end tell -- "SysEvents"

    on error errorMessage number errorNumber
        if errorNumber is errorNumber then
            my addAppletToAccessibilityList()
            error number -128
        end if
    end try
end closeNotifications

on addAppletToAccessibilityList()
    -- This function gets the user to enable Accessibility, for scripting the UI interface (hitting buttons etc.)
    set thisAppletFile to (path to me)
    tell application "Finder" to reveal thisAppletFile
    tell application "System Preferences"
        launch
        activate

        reveal anchor "Privacy_Assistive" of pane id "com.apple.preference.security"

        activate

        display alert ¬
            "Add Applet to Accessibility" message "In order to respond to user clicks on Notification panels and alerts, this applet must be added to the lost of apps approved to use accessibility controls of the OS." & return & return & ¬
            "To add this app:" & return & return & ¬
            "1) Click the lock icon (if it is locked) and enter your password." & return & return & ¬
            "2) If 'SystemUIServer.app' is in the list, check the box next to it's name." & return & return & ¬
            "Otherwise, if the applet's name is in the list, check the box next to it's name. If it's not in the list, drag the applet (currently shown in the Finder) into the list area." & return & return & ¬
            "3) Click the lock to re-lock the preference pane, close System Preferences."
    end tell
end addAppletToAccessibilityList
    
por 02.02.2015 / 20:05