Rimuovi il badge di notifica del dock per le app non presenti nel centro notifiche


12

Per le app di disturbo che impostano un'icona di notifica badge, ma che non si trovano nel centro Notifiche impostazioni, c'è un modo per bloccare l'icona del badge?


Spotify, ad esempio, crea una notifica per ogni evento insignificante, senza alcun modo per bloccarlo in app.

Personalmente non capisco come le app possano mostrare l'icona di un badge senza essere nel Centro Notifiche in primo luogo.


Esempio:

inserisci qui la descrizione dell'immagine


Le app che identificano le loro icone, come nel tuo screenshot, hanno da tempo preceduto l'inclusione di Notification Center in OS X. Per fare ciò non è necessario utilizzare la funzionalità di notifica.
tubedogg,


Inoltre, questa è la soluzione migliore che abbia mai trovato: nascondi lo stato dell'app in esecuzione durante l'esecuzione (che nasconde anche il badge): apple.stackexchange.com/questions/68915/…
y3sh

Risposte:


27

Ho una soluzione che sono stato in grado di decodificare. L'ho provato sulla mia macchina, eseguendo Yosemite 10.10.4 (14E46). Se riesci a trovare l'ID del pacchetto (nel file Info.plist per il pacchetto dell'app), puoi utilizzare questo script per forzare la visualizzazione dell'app nel riquadro delle preferenze delle notifiche.

# "Usernoted" seems to be the "user notifications daemon", so get it's PID.
pid=$(ps aux | grep -i [u]sernoted | awk '{print $2}')

# Find the sqlite3 database that this program has open. It's in a "private" folder (app sandboxing).
db="$(lsof -p $pid | grep com.apple.notificationcenter/db/db\$ | awk '{print $9}')"

# I got the bundleid from Spotify.app/Contents/Info.plist
bundleid="com.spotify.client"

# I use 0 as the flags because you can change all the settings in System Preferences
# 5 seems to be the default for show_count
# Grab the next-highest sort order
sql="INSERT INTO app_info (bundleid, flags, show_count, sort_order) VALUES ( '$bundleid', 0, 5, (SELECT MAX(sort_order) + 1 FROM app_info) );"

# Run the command
sqlite3 "$db" "$sql"

# Restart usernoted to make the changes take effect
killall usernoted

A questo punto puoi aprire Preferenze di Sistema -> Notifiche e troverai l'app che hai appena aggiunto in fondo all'elenco. È possibile abilitare / disabilitare il badge icona da questa pagina.


2
Soluzione molto intelligente, grazie Ryan! (Anche se ora l'ho risolto rilasciando Spotify e passando ad Apple Music.)
Jon Cox,

1
FINALMENTE, una soluzione per questo orribile niggle. Grazie * 1000.
Josh Harrison,

1
Tu sei l'uomo.
Udi,

1
Voglio solo confermare che questa soluzione funziona ancora!
23,

1
Devo sostituirlo grep com.apple.notificationcenter/db/db\$con grep 'com.apple.notificationcenter/db2/db$'Mac OS 10.14.1 (possibilmente prima, vedo che ha già più di 3 anni)
Alex S

0

Per quelle persone che sono Mac Noobs come me, per creare ed eseguire lo script sopra:

1. Apri TextEdit,
2. Metti l'editor in modalità Testo normale - Formato> Crea testo normale.
(Se si salta questo passaggio, non sarà possibile salvarlo come script.)
3. Incollare lo script sopra nella finestra TextEdit
4. Salvare il file come script - File> Salva con nome in TextEdit. Immettere il nome file seguito dall'estensione del file ".sh", quindi salvare il documento sul desktop.
5. Aprire l'applicazione Terminale
6. Navigare sul desktop in Terminale - Digitare (quindi premere Invio):

cd Desktop
7. Impostare le autorizzazioni per il file appena creato in modo da poterlo eseguire - Digitare Terminal (quindi premere en):
sudo chmod 700 file.sh
(Sostituisci "file.sh" con il nome del tuo script.)
8. Esegui il file - Digita Terminal:
./file.sh
(Ancora una volta, sostituisci "file.sh" con il nome del tuo script.)
9. Apri Notifiche nelle Preferenze di Sistema. Dovresti essere in grado di trovare l'app Spotify e disattivare le notifiche.

Fonte per la creazione di uno script: Terminal 101: automatizza il terminale con script Bash


1
Un buon tutorial su come creare uno script di shell eseguibile, ma per la soluzione aggiornata non è necessario uno script bash. Basta aprire il terminale e incollare i comandi. Salta le righe che iniziano con un #, perché quello è un commento in bash.
3
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.