Disabilita badge per app specifiche con uno script

2

So che posso attivare / disattivare il badge dal centro notifiche, ma esiste un modo per farlo con uno script?

Se possibile mi piacerebbe farlo per un'app specifica, altrimenti sarà divertente disattivarlo per tutte le app.

Finora sono stato in grado di farlo:

tell application "System Preferences"
activate
set the current pane to pane id "com.apple.preference.notifications"
tell application "System Events"
   tell process "System Preferences"
        select row 2 of table 1 of scroll area 1 of window "Notifications" 
        click checkbox "Badge app icon"  of group 1 of window "Notifications" 
   end tell
end tell

fine tell

Ha solo un problema :

  • la lista deve rimanere la stessa e devi conoscere l'indice. C'è un modo per accedere per nome?

PS: ho utilizzato il molto utile link per scoprire come identificare gli oggetti

    
posta EsseTi 01.03.2018 - 14:24
fonte

1 risposta

1

Il seguente esempio codice AppleScript funziona per me in macOS High Sierra :

Nota: modifica "Calendar" in set appName to "Calendar" nell'app di destinazione appropriata.

set appName to "Calendar"

if running of application "System Preferences" then
    quit application "System Preferences"
    delay 1
end if
tell application "System Preferences"
    set the current pane to pane id "com.apple.preference.notifications"
    delay 1
    tell application "System Events"
        tell table 1 of scroll area 1 of window 1 of application process "System Preferences"
            repeat with i from 2 to (count rows)
                if value of static text 1 of group 1 of UI element 1 of row i is appName then
                    select row i
                    exit repeat
                end if
            end repeat
        end tell
        delay 0.2
        click checkbox "Badge app icon" of group 1 of window 1 of application process "System Preferences"
    end tell
    quit
end tell

Le preferenze di sistema non devono essere visibili affinché funzioni e perché non ci sia activate comando nell'esempio AppleScript codice . Inoltre, se Preferenze di sistema è già aperto, viene prima chiuso prima che venga elaborato il resto del codice . Questo viene fatto per un paio di motivi, il primo dei quali è già stato affermato e in secondo luogo vedere gli UI degli eventi elaborati è una distrazione visiva e può essere fastidioso.

Nota anche che il valore dei delay comandi potrebbe dover essere regolato per il tuo sistema, o altri delay comandi potrebbe o non potrebbe essere necessario. Regola valori di e o aggiungi / rimuovi i delay comandi come appropriato.

Per una versione che agisce su più applicazioni e tutte le applicazioni in Centro notifiche in Preferenze di sistema , vedi la mia risposta a: Rimuovi più icone di badge di app con uno script?

Nota: il esempio codice AppleScript è proprio questo e non impiega alcuna gestione degli errori e si intende solo per mostrare uno dei molti modi in cui eseguire un compito. L'onere è sempre sull'utente di aggiungere / utilizzare la gestione degli errori appropriata come necessario / voluto.

    
risposta data 01.03.2018 - 16:40
fonte

Leggi altre domande sui tag